a:6:{i:0;s:11858:"				<div class="h1"><h1>4 Night/ 5 Days Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.andamanblueoceantravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.andamanblueoceantravels.com/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>4 Night/ 5 Days 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, Havelock</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.andamanblueoceantravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="4 Night/ 5 Days 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="104106"/>
						</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_17/484011/173745.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/484011/173745.jpg"  width="150" height="150"    alt="4 Night/ 5 Days Tour" title="4 Night/ 5 Days 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_17/484011/173746.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/484011/173746.jpg"  width="150" height="150"    alt="4 Night/ 5 Days Tour" title="4 Night/ 5 Days 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_17/484011/173751.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/484011/173751.jpg"  width="150" height="150"    alt="4 Night/ 5 Days Tour" title="4 Night/ 5 Days Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Tour Detail :<br />
3 Night at Port Blair, 1 Night at Havelock Island.Sea Walk.<br />
Snorkeling.<br />
Game Flshing.<br />
Jet-Ski.<br />
Scuba Diving.<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 will be received and transfer to your hotel.after Launch start for a tour of places in and around Port Blair covering Rajiv Gandhi Water sports, Corbyns cove Beach,Light & Sound show at Cellular Jail, Night Stay at Port Blair.</p>
								</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 <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_17/484011/173751.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/484011/173751.jpg"  width="150" height="150"    alt="4 Night/ 5 Days Tour" title="4 Night/ 5 Days Tour" /></a></p></div></li>
									</ul>
									</div>
									</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">Port Blair To Havelock Island<br />
Early morning departure by inter-island GOVT Ferry Or PVT Ferry To Havelock Island (54 Kms by sea from Port Blair). In the afternoon hours sightseeing to Beach No.7(Radha Nagar Beach) which is rated as the Asia’s beautiful beach by Times Magazine. 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 3:</b> Havelock Island To Port Blair
								</p>
								<p class="aj">Havelock Island To Port Blair<br />
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 have lock around 2.30 pm,Once the lunch is finish we will move to catch ferry form have lock Jetty, 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 4:</b> Ross & North Bay Coral Island
								</p>
								<p class="aj">Port Blair To Ross Island & North Bay Island<br />
In the morning 8:30AM start for a full day tour by boat to visit Ross sland from where Britisher's governed the entire Andaman and Nicobar Island, prior to India's Independence. Then visit to North Bay Island (Coral Island) a ideal spot for coral viewing by glass bottom boat (Optional activity: Snorkeling) 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 5:</b> Air Port Drop
								</p>
								<p class="aj">Departure<br />
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>Transport</li>
																		<li>Entry Tickets</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Sea Walk.</li><li>
Snorkeling.</li><li>
Game Flshing.</li><li>
Jet-Ski.</li><li>
Scuba Diving.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul>
	<li>All Tours subject to weather conditions</li>
	<li>This Rates are not valid on 01th December To 30th January.</li>
	<li>Most of the tourist place in port blair close in Monday.</li>
	<li>40% advance is to be paid at the time of booking tour.</li>
	<li>We shall not be responsible for any cancellation of boats due to bad weather &amp; are not liable for it.</li>
	<li>Children above 2 years will be charged full.</li>
	<li>Child below 2 years Entry permits/Entry tickets/Boat tickets/Ferry tickets. if applicable on direct payment basis.</li>
	<li>Adhere to the timings and instructions.</li>
	<li>If addational/Optional Tour - Charge will be apply.</li>
	<li>Check in time varies from hotels and it starts from 07:30 hours to 08:30 hours.</li>
	<li>The vehicle used will be exclusive for that group but will not be at their disposal. It will be as per contract &amp; will change sector wise.</li>
	<li>Extra charges are applicable for the vehicle used apart from the itinerary.</li>
	<li>Check - out time of the hotels in Port Blair is 08:30 hours. If you are going by the afternoon flight you can request the hotel for late check - out and they will provide the room subject to availability. Or else you will be requested to check - out by 08:30 hours and spend time in the hotel campus or can book extra tour from us.</li>
	<li>To and fro journey to Havelock Island will be by private catamaran&quot;M.V.Makruzz / M.V.Coastal Cruise&quot;. During bad weather M.V.Makruzz / M.V.Coastal Cruise cancels the sailing in short notice and also mostly M.V.Makruzz / M.V.Coastal Cruise is not operational from July to September every year. In such unavoidable circumstances the journey will be changed to Government ferry without prior notice.</li>
	<li>After Reach in Port Blair 1 Or 2 st Day, Tour Amount Should be Made in 100% to the Tour Operator.</li>
	<li>All the tour programmers are subject to whether condition Travel Executive SANJIB DEBNATH</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.andamanblueoceantravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="4 Night/ 5 Days 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="104106"/>
						</form>
						</div>
						
						";i:1;s:59:"Book 4 Night/ 5 Days Tour - 4 Nights / 5 Days Tour Packages";i:2;s:128:"book 4 night/ 5 days tour - 4 nights / 5 days tour packages, beach and islands tour packages, port blair, havelock tour packages";i:3;s:171:"Andaman Blue Ocean Travels offers 4 Night/ 5 Days Tour - 4 Nights / 5 Days tour package, budget Beach and Islands tour packages for Port Blair, Havelock at exciting price.";i:4;s:539:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair, Havelock"        
		                 },
		      "description": "Tour Detail :
3 Night at Port Blair, 1 Night at Havelock Island.Sea Walk.
Snorkeling.
Game Flshing.
Jet-Ski.
Scuba Diving.",
		      "name": "4 Night/ 5 Days Tour",
		      "telephone": "+91-9933250564"
		    }
		    </script>
			";i:5;N;}