a:6:{i:0;s:10946:"				<div class="h1"><h1>Majestic Dubai with Abu Dhabi Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.decenttravelenterprises.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.decenttravelenterprises.com/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Majestic Dubai with Abu Dhabi 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">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Dubai, Abu Dhabi</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.decenttravelenterprises.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Majestic Dubai with Abu Dhabi 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="106727"/>
						</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_16/469503/176954.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/469503/176954.jpg"  width="150" height="150"    alt="Majestic Dubai with Abu Dhabi Tour" title="Majestic Dubai with Abu Dhabi 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> Arrive Dubai - Abu Dhabi
								</p>
								<p class="aj">As you arrive in Dubai, you are cordially greeted by our   representative who then escorts you to Abu Dhabi to your designated hotel. Perform Check in and relax and rejuvenate in the comfortable settings of your room. The evening is free at your leisure. Enjoy the wonderful city atmosphere of Abu Dhabi. You can indulge in some shopping and sightseeing. Return to your hotel for the overnight stay.</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> Abu Dhabi-City Tour and Ferrari World
								</p>
								<p class="aj">Enjoy your breakfast in the morning and proceed towards the city tour of Abu Dhabi as well as the Grand Mosque. Enjoy a thrilling visit to Ferrari World, which is one of the most exciting destinations with more than 20 exclusive rides as well as draws for tourists of all ages. There are speed thrill rides as well as world's most advanced simulators to keep you inspired and entertained. In addition to this, visitors can also enjoy the delicacies of Italian restaurants as well revel in amazing shopping experiences. Return to your hotel for the overnight stay.</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> Abu Dhabi-Dubai-Top of Burj Khalifa Tour
								</p>
								<p class="aj">Post breakfast, check out of the hotel and get transferred to your hotel in Dubai. Perform Check in and relax in the peaceful and comfortable surroundings of your room. The evening is marked for your visit to Burj Khalifa, The world's tallest tower. Reach the top of the building to experience the amazing skyline of Dubai. Marvel at the astonishing architecture and tremendous engineering feat of the building from such a soaring height. Return to your hotel for a comfortable and luxurious overnight stay.</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> Dubai-Wild Wadi Water Park and Desert Safari Tour
								</p>
								<p class="aj">After breakfast, get transferred to Wild Wadi Water Park, an exciting water themed hotspot, situated between Burj Al Arab and Jumeirah Beach Hotel. Experience the excitement of Tantrum Alley, the tunnel of Doom, Burj-Surj, Breakers' Bay, Wipeout and Riptide Flow Riders and Juha journey etc. that takes you through the exciting twists and turns of the rides, leaving you completely thrilled. Get a hair-splitting experience of weightlessness on the "Jumeirah Sceirah" which is a speed slide that hurtles the visitor into a stupendous depth of 100 feet into the valley.<br />
<br />
The latter half of the day is spent in enjoying the desert safari along with a delicious BBQ dinner and the Belly Dance program towards evening. The desert tour starts off with a thrilling ride amidst the sand dunes. Catch all the experience of deserts, take stunning pictures and then proceed to Ali's camel farm for a short trip. Post this, proceed towards the desert camp. En route, watch the majestic sunset at a brief stopover. Move towards the camp where a warm welcome awaits you. Get treated with Arabic coffee, dates and tea and enjoy the amazing ambience as the charcoal fire and traditional oven is lit towards the preparation for the evening dinner. Relax in the Arabic tents with supreme comforts and chill besides the campfire. Also revel in the quintessential desert experience with a camel ride or get a henna tattoo. An exotic entertainment with Tanoura dance show and an attractive belly dance against the backdrop of the music of Arabia also waits you in the evening. The trip ends with a number of delicious courses including barbeques, meats and salads presented to you under the starlit sky along with enjoying amazing Arabic music. Post dinner, drive back to your hotel for the overnight stay.</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> Dubai
								</p>
								<p class="aj">Post breakfast, proceed for an exciting sojourn to Aquaventure Water Park. Set in a vast expanse of 42 acres, the park is a wonderful spot to have all the fun and adventure with family and friends. The park is full of most thrilling attractions such as speed slides, rivers, rapids, splashes children area, play area, lush tropical landscapes as well as a private beach.<br />
<br />
Visit to the Lost Chambers Aquarium, one of the most incredible destinations and a site to explore the mysterious ruins of Atlantis as well as nearly 65,000 different species of marine life. Moving through the maze of underwater halls and tunnels is a wonderfully rewarding experience, full of amazing encounters which will be forever etched in your memory. Return to your hotel for the overnight stay.</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> Depart Dubai
								</p>
								<p class="aj">The morning start off with breakfast. Thereafter, get transferred to Dubai International Airport to catch the flight back home.</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.decenttravelenterprises.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Majestic Dubai with Abu Dhabi 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="106727"/>
						</form>
						</div>
						
						";i:1;s:73:"Book Majestic Dubai with Abu Dhabi Tour - 5 Nights / 6 Days Tour Packages";i:2;s:127:"book majestic dubai with abu dhabi tour - 5 nights / 6 days tour packages, valley tour packages, dubai, abu dhabi tour packages";i:3;s:169:"Decent Travel Enterprises offers Majestic Dubai with Abu Dhabi Tour - 5 Nights / 6 Days tour package, budget Valley tour packages for Dubai, Abu Dhabi at exciting price.";i:4;s:422:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Dubai, Abu Dhabi"        
		                 },
		      "description": "",
		      "name": "Majestic Dubai with Abu Dhabi Tour",
		      "telephone": "+91-9494675564"
		    }
		    </script>
			";i:5;N;}