a:6:{i:0;s:11973:"				<div class="h1"><h1>Majestic Dubai Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.rajastravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.rajastravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Majestic Dubai 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.rajastravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Majestic Dubai 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="79275"/>
						</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_13/370602/139596.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/370602/139596.jpg"  width="150" height="150"    alt="Majestic Dubai Tour" title="Majestic Dubai 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 in Dubai - Abu Dhabi
								</p>
								<p class="aj">As you will arrive in Dubai, you will be received by our tour representative and further escorted to the city of Abu Dhabi. Upon reaching Abu Dhabi, guests would be transferred to one of our listed hotels. Relax in your cozy rooms as the rest of the day is at leisure. If you wish to explore the nearby surroundings and market, make sure you do that in the evening.<br />
<br />
Overnight in Abu Dhabi.</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">Right after the morning breakfast, guests would be embarked on a city tour of Abu Dhabi. This will include visit to the Grand Mosque. Rightfully named as the Sheikh Zayed Grand Mosque, the spectacular site is considered to be the most sacred in the country. Post this visit, you would be heading for a tour of the Ferrari World.<br />
<br />
Claimed to be world's largest Indoor theme park, the Ferrai world is located on the Yas Island in Abu Dhabi. The theme park is renowned for its unique rides that count to more than 20. From thrilling speed rides, stimulating rides to family friendly attractions, the indoor park suits tourists of all ages and tastes. Moreover, the theme park is also packed with a variety of Italian restaurants, international retail shops and entertainment joints.<br />
<br />
Overnight stay in Dubai.</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- Dhow Cruise
								</p>
								<p class="aj">Post breakfast, you would be transferred from Abu Dhabi to a hotel in Dubai. Rest of the day is to be spent at leisure, while the evenings are meant for a Dhow cruise ride along the beautiful Dubai Creek. As you would be gently cruising on the traditional wooden Dhow; wining and dining, spectacular views along the creek would be bound to pass by, making it a magical experience.<br />
<br />
The wooden Dhow would be cruising along the magnificently lit attractions of the city which include places like the National Bank of Dubai and the Chamber of Commerce Building. Guests would be served a sumptuous international buffet dinner. Post this cruise ride, return back to the hotel.<br />
<br />
Overnight stay in Dubai.</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- City tour- Desert Safari tour
								</p>
								<p class="aj">After being done with the morning breakfast, guests would be picked up by our tour representative for a half day city tour of Dubai. Now it is your chance to discover the traditional side of modern Dubai. The tour will start with the visit to Palm Jumeirah, which is also famed as the eighth wonder of the world. While on your drive, make a halt for a quick photo session at the Atlantis hotel. Post that, continue on your course to the mosque. Built in the year 1979 in the style of Fatimi mosques of Egypt, the Palm Jumeirah is amongst the prominent structures of the city. As you would be done with the visit to the mosque, proceed towards the famous Sheikh Zayed Road to admire the tallest building in the world; Burj Khalifa tower from a long distance.<br />
<br />
Drive to the old parts of the city will pass through majestic palaces of the ruling family of Dubai. Next on the journey would be the visit to Al Fahidi fort and Dubai Museum. Al Fahidi fort is a prominent historic structure that is highly reminiscent of Dubai's illustrious past. Next in the itinerary would be the renowned gold and spice souk. Following it would be the visit to the souvenir shop. Here you can buy a lot of antiques, souvenirs and art & craft items. The city tour of Dubai will end with the final stoppage at the Burj Al Arab hotel.<br />
<br />
In the second half of the day, guests would be picked up to enjoy a desert safari that includes a BBQ dinner and an Arabic Belly Dance program for the evening. You would be starting first with a thumping ride in the desert right over the sand dunes. Amidst this roller coaster ride, you can stop for clicking pictures. Post this, you would be moving for a short visit to Ali's Camel Farm. Later on, you would be arriving at the pre-booked desert camp. Do catch the sight of the beautiful desert sunset. Guests would be given a traditional welcome with Arabic tea, coffee and dates, as they will make their arrival at the desert camp. Feel free to relax in the specially furnished Arabic tents while the traditional oven is lit in preparation of the dinner. You can even get a henna tattoo done or simply embark on a camel ride as the arrangements of the evening dance show and performance get fully done.<br />
<br />
To make it an unforgettable evening, the highlights will include a Tannoura dance show and a belly dance performance to the beats and rhythm of Arabia. On the other hand, the evening cuisines will comprise a sumptuous three course barbeque meal teamed up with a variety of salad and meat. Post dinner, you would be driven back to the city hotel for an 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- Snow Park Ski Dubai
								</p>
								<p class="aj">Post breakfast, guests would be leaving for skiing at the world's largest indoor snow park known as Ski Dubai. The park is built over a sprawling area of 3000 sq meters. Fully covered with snow, the park offers an ultimate family fun time. Get in your snow boots and enjoy the Tobogganing hills, the Twin Track Bobsled runs and the snow cavern. The snow park also offers a Giant Ball ride, for that you have to go to the top of the upgrade station. This point also offers a perfect bird's eye view of the whole snow park. Post all the fun, return to the comforts of your hotel.<br />
<br />
Overnight in Dubai.</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">This brings the end of our amazing Dubai tour. Enjoy your breakfast at the hotel after which you would be transferred to the Dubai International Airport for your onward journey back home. The tour ends here.</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>
															</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.rajastravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Majestic Dubai 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="79275"/>
						</form>
						</div>
						
						";i:1;s:58:"Book Majestic Dubai Tour - 5 Nights / 6 Days Tour Packages";i:2;s:123:"book majestic dubai tour - 5 nights / 6 days tour packages, forts and palaces tour packages, dubai, abu dhabi tour packages";i:3;s:168:"Book Majestic Dubai Tour - 5 Nights / 6 Days tour packages from RAJAS TRAVELS - Get attractive 5 Nights / 6 Days Forts and Palaces  tour packages for  Dubai, Abu Dhabi.";i:4;s:407:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Dubai, Abu Dhabi"        
		                 },
		      "description": "",
		      "name": "Majestic Dubai Tour",
		      "telephone": "+91-9820123553"
		    }
		    </script>
			";i:5;N;}