a:6:{i:0;s:11510:"				<div class="h1"><h1>8 Nights 9 Days Andaman Family Special Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.andamantourntravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.andamantourntravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>8 Nights 9 Days Andaman Family Special 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">
						8 Nights / 9 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.andamantourntravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="8 Nights 9 Days Andaman Family Special 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="82826"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<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_14/397291/146749.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/397291/146749.jpg"  width="150" height="150"    alt="8 Nights 9 Days Andaman Family Special Tour" title="8 Nights 9 Days Andaman Family Special Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<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> Arrival at Port Blair Stay at Port Blair
								</p>
								<p class="aj">On arrival at Port Blair in the morning /after noon by flight, you<br />
will be received and transfer to your hotel.after Launch start for a<br />
tour of places in and around Port Blair covering Rajiv Gandhi Water<br />
sports, Corbyns cove Beach,Light & Sound show at Cellular Jail, Night<br />
Stay at 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> Port Blair To Havelock Island
								</p>
								<p class="aj">Early morning departure by inter-island GOVT Ferry Or PVT Ferry To<br />
Havelock Island (54 Kms by sea from Port Blair). In the afternoon<br />
hours sightseeing to Beach No.7(Radha Nagar Beach) which is rated as<br />
the Asia’s beautiful beach by Times Magazine. Night Stay at Havelock<br />
Island.</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> Over Night Stay at Havelock Island
								</p>
								<p class="aj">In Morning after breakfast at 8.30 AM we will move for Elephanta Beach (Elephanta Beach is further north from Radhanagar and is popular with Indian tourists. The shoreline here was largely swept away by the 2004 tsunami and the beach is a fraction of what it used to be; however, the coral here is probably the best on the island, making this an excellent spot for snorkeling. It's reachable on foot from Beach #7 or by fishing boat from the east side of the island; many resorts arrange snorkeling and diving trips here.) via Speed Boat(Glass Boat) In Elephant Beach lots of water activity is there like Snorkeling and Glass Boat we will go there and after water sports we will move back to via boat and have our lunch in havelock around 2.30 pm,Once the lunch is finish we will move to our receptive hotel for overnight Stay, Night Stay at Havelock Island.</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> Havelock Island To Neil Island
								</p>
								<p class="aj">In the morning 8:30AM 10:15AM departure from your hotel Neil To depart by PVT Ferry Or GOVT Ferry To NEIL ISLAND Afterwards proceed to hotel.than you go Lakshmanpur beach No.1Laksmanpour beach NO#<br />
2.,Bharatpur Beach, & Natural Bridge formations on the sea-shore are<br />
fascinating, Night Stay at Neil Island.</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> Neil Island To Port Blair
								</p>
								<p class="aj">Morning at 9:00AM By GOVT Ferry Or PVT Ferry. we are proceed From Neil island to port Blair hotel and at 3:00PM after lunch go to Chiditappu<br />
Munda pahard Beach, Night Stay at 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 6:</b> Port Blair To Ross Island - North Bay Island (Coral Island)
								</p>
								<p class="aj">Harbour Cruise (Viper Island) Today, after breakfast we will proceed for a full day cruising towards Ross Island, North Bay(Coral Island) and Viper Island (Harbour Cruise) Ross Island : First we starts the exhilarating journey(by boat) to Ross Island the erstwhile capital of Port Blair during the British regime, it now stands an imposing relic, with the structure almost in debris. A small museum displays photographs and other antiques of the Britishers, relevant to these islands.North Bay (Coral Island) : From Ross Island, we proceed for a joyful trip to North Bay island (Coral Island) offering exotic coral, colorful fishes and underwater marine life. We can view these colorful corals & underwater marine life via in glass bottom boat and snorkeling (optional).Harbour Cruise (Viper Island) : Afternoon, we proceed for a cruise of Harbour, the panoramic view of seven points from sea ie; Harbour, floating docks, etc including a trip to Viper Island the place of execution. Night stay at 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 7:</b> Port Blair To Baratang Island
								</p>
								<p class="aj">At early morning 6AM will move towards To BARATANG ISLAND which is<br />
situated between South & Middle Andaman 107km from Port Blair by road there you will be going to see the lime stone cave passing through a beautiful mangrove creeks, Nnight Stay at Port Balir.</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 8:</b> Port Blair - City Tour
								</p>
								<p class="aj">In the morning at 9:30 AM we start for a tour of places in and around<br />
Port Blair - covering the Cellular Jail, Chatham Saw Mill (one of the<br />
oldest and largest in Asia), Anthropological Museum, Naval Marine<br />
Museum and Cottage Industries Emporium. And evening for shopping at<br />
local shops, Night stay at 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 9:</b> Departure
								</p>
								<p class="aj">At appropriate time transfer to Airport/Harbor to reach your home<br />
destination with lovely memories to cherish.</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>
															</ul>
						<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.~^#^~* Upon cancellation, refund will be made after deducting the Retention Amount. 
* Retention Amount varies as per the number of days left before your package start date. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.andamantourntravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="8 Nights 9 Days Andaman Family Special 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="82826"/>
						</form>
						</div>
						
						";i:1;s:82:"Book 8 Nights 9 Days Andaman Family Special Tour - 8 Nights / 9 Days Tour Packages";i:2;s:141:"book 8 nights 9 days andaman family special tour - 8 nights / 9 days tour packages, beach and islands tour packages, port blair tour packages";i:3;s:179:"Halder Tour & Travels offers 8 Nights 9 Days Andaman Family Special Tour - 8 Nights / 9 Days tour package, budget Beach and Islands tour packages for Port Blair at exciting price.";i:4;s:425:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair"        
		                 },
		      "description": "",
		      "name": "8 Nights 9 Days Andaman Family Special Tour",
		      "telephone": "+91-9679532700"
		    }
		    </script>
			";i:5;N;}