a:6:{i:0;s:12073:"				<div class="h1"><h1>Funtastic Andaman Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.arihanttours.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.arihanttours.in/india-tours.htm" title="India Tours">India Tours</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Funtastic Andaman Tour</p>
				<br />
				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						4 Nights / 5 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Port Blair</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat"><span class="dif">On Request</span></td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.arihanttours.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Funtastic Andaman Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="25204"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" id="detailslider1">
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_1/26194/51207.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/26194/51207.jpg"  width="150" height="150"    alt="Funtastic Andaman Tour" title="Funtastic Andaman Tour" /></a></p></div></li>
																		<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_1/26194/51208.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/26194/51208.jpg"  width="150" height="150"    alt="Funtastic Andaman Tour" title="Funtastic Andaman Tour" /></a></p></div></li>
																		<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_1/26194/51209.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/26194/51209.jpg"  width="150" height="150"    alt="Funtastic Andaman Tour" title="Funtastic Andaman Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					The Andaman & Nicobar Islands is one of the main union territory of India. This union territory of andaman and nicobar islands name is often abbreviated to A & N Islands, or ANI. It is located in the bay of bengal.. It comprises two island groups - the Andaman Islands and the Nicobar Islands - which separate the Andaman Sea to the east from the Indian Ocean.The Government Service Tax of 3.09% will be applicable on total bill<br />
Any Airfare, Insurance<br />
Expenses of personal nature like tips to waiters, drivers, laundry, alcoholic drinks, telephonic calls etc.<br />
Entry fees, camera fees to the monuments<br />
Any Loss / expenses incurred by unforeseen circumstances e.g. flight delays/cancellations, road blockage, vehicle breakdown strikes etc.<br />						<div class="headHr">
			            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
			            </div>
			            
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 1:</b> Port Blair
								</p>
								<p class="aj">Arrive at Port Blair & transfer to the hotel. After Lunch go for Harbour Cruise (Viper Island). Harbour Cruise is a leisurely cruise (for 2 hours) in a steamer along the sea encircling Port Blair - which also takes one to Viper Island; the first place of penal settlement in Andaman during British rule. In the evening enjoy the spectacular Sound & Light Show at Cellular Jail Sound and Light Show - is an hour long show held inside the cellular jail, where the heroic saga of the Indian freedom struggle is brought alive. Stay overnight at the hotel in Port Blair.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 2:</b> Havelock
								</p>
								<p class="aj">oday early morning transfer to jetty to board the ferry for Havelock Island by Private Ferry / Inter island Government Ferry. Havelock Island is 57 kms from Port Blair and reachable in 150 minutes. The island is well known for its two world famous beaches namely Beach No. 5 and 7. These beaches have received A+ rating from the World Tourism Organization (WTO). Hence, Havelock Island is an ideal destination for a relaxing beach holiday as well as a paradise for scuba diving and snorkelling. Trip to Radha Nagar Beach. Stay overnight at the hotel in Havelock Island.</p>					
									<p><b>Meals : </b> BREAKFAST</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 3:</b> Havelock
								</p>
								<p class="aj">Check out from the resort after breakfast leave your luggage at the reception and the day is free for optional activities (Snorkeling @ Elephant beach - @ Rs 1,000 per person extra) . In the evening return back to Port Blair.</p>					
									<p><b>Meals : </b> BREAKFAST</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 4:</b> Port Blair
								</p>
								<p class="aj">After breakfast enjoy city tour of Port Blair ( Closed Mondays ) Port Blair (City Tour) - covers the famous Cellular Jail, Chatham Saw Mill (one of the oldest and largest in Asia), Forest Museum, Anthropological Museum, Fisheries (Marine) Museum, Naval Marine Museum (Samudrika) & the Cottage Industries Emporium (Sagarika) - for shopping & souvenirs.</p>					
									<p><b>Meals : </b> BREAKFAST</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 5:</b> Departure
								</p>
								<p class="aj">fter breakfast, departure from Port Blair</p>					
									<p><b>Meals : </b> BREAKFAST</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Hotel</li>
																		<li>Sightseeing</li>
																		<li>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>The Government Service Tax of 3.09% will be applicable on total bill</li><li>
Any Airfare, Insurance</li><li>
Expenses of personal nature like tips to waiters, drivers, laundry, alcoholic drinks, telephonic calls etc.</li><li>
Entry fees, camera fees to the monuments</li><li>
Any Loss / expenses incurred by unforeseen circumstances e.g. flight delays/cancellations, road blockage, vehicle breakdown strikes etc.</li></ul><br />
												<p class="large b mb5px dif">Specific Departure Dates :</p>ANY TIME<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~Package valid only for Indian nationals.
Non-refundable booking fee of Rs.3000 required to confirm/ hold the booking.
Air tickets and hotels are subject to availability. It is mandatory for guests to present valid photo identification at the time of check-in.
The identification proofs accepted are Driving License, Voters Card, Passport, Ration Card. Without valid ID the guest will not be allowed to check in. Note-PAN Cards will not be accepted as a valid ID card.
All transfers and sightseeing are as per the Itinerary/package and in case of Air Conditioned vehicles, It will be switched off in the hills.
The inclusion of extra bed with a booking is facilitated with a folding cot or a mattress as an extra bed. Early check-in or late check-out is subject to availability and may be chargeable by the hotel. The standard check-in time is 1300hrs and the standard check-out time is 1000hrs.
Any kind of personal expenses (Laundry, room service etc..) or optional tours/ extra meals are not inclusive in the package cost.
The hotel reserves the right of admission. Accommodation can be denied to guests posing as a couple if suitable proof of identification is not presented at check-in. Arihant tours will not be responsible for any check-in denied by the hotel due to the aforesaid reason.
In case of non-availability of above mentioned hotels similar category hotel will be provided.
Arihant Tours reserves the right to change/modify or terminate the offer any time at its own discretion and without any prior notice.						
    	<p class="h dif xlarge b mb5px">Departure City</p>
    	<div class="otherDetails aj">EX- PORT BLAIR</div><br>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="data p5px">Package Type</td>
				<td class="data p5px">Rate per Adult</td>
			</tr>
			<tr>
				<td class="data p5px">Standerd</td>
				<td class="data p5px">12500/-</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.arihanttours.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Funtastic Andaman Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="25204"/>
						</form>
						</div>
						
						";i:1;s:61:"Book Funtastic Andaman Tour - 4 Nights / 5 Days Tour Packages";i:2;s:120:"book funtastic andaman tour - 4 nights / 5 days tour packages, beach and islands tour packages, port blair tour packages";i:3;s:150:"Arihant Tours offers Funtastic Andaman Tour - 4 Nights / 5 Days tour package, budget Beach and Islands tour packages for Port Blair at exciting price.";i:4;s:1145:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair"        
		                 },
		      "description": "The Andaman & Nicobar Islands is one of the main union territory of India. This union territory of andaman and nicobar islands name is often abbreviated to A & N Islands, or ANI. It is located in the bay of bengal.. It comprises two island groups - the Andaman Islands and the Nicobar Islands - which separate the Andaman Sea to the east from the Indian Ocean.The Government Service Tax of 3.09% will be applicable on total bill
Any Airfare, Insurance
Expenses of personal nature like tips to waiters, drivers, laundry, alcoholic drinks, telephonic calls etc.
Entry fees, camera fees to the monuments
Any Loss / expenses incurred by unforeseen circumstances e.g. flight delays/cancellations, road blockage, vehicle breakdown strikes etc.",
		      "name": "Funtastic Andaman Tour",
		      "telephone": "+91-8329797667"
		    }
		    </script>
			";i:5;N;}