a:6:{i:0;s:10266:"				<div class="h1"><h1>Malaysia Singapore Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.chaturveditravels.com/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Malaysia Singapore 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">Tour Code </td>
						<td class="p5px pl0px vat">INTL03/2 Nights Sing</td>
						</tr>
												<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">Kuala Lumpur</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 61999 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.chaturveditravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Malaysia Singapore 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="28060"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
										</tr>
					</table>
					</div>
					<br />
					
					Visa for Malaysia and Singapore<br />
Travel insurance<br />
Items of personal nature viz, drinks, laundry, calls, etc.<br />
Meals anything not mentioned in the itinerary<br />
Peak season charges, if applicable<br />
Service tax of 3.09%  on the total package<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> Singapore Arrival
								</p>
								<p class="aj">Arrive at Singapore, after clearing the immigration, you will be met by our local representative and transferred to Hotel. Check in at the hotel .<br />
<br />
In the Evening take a tour of the world’s only ‘Night Safari’, The world’s first Night Safari  set in 40 hectares of secondary jungle will unfold the mystery and drama of the tropical jungle after dusk with stunning effect. See a myriad of nocturnal animals, from fierce predators to timid forest dwellers, in their natural habitat under subtle moon glow lighting. Roam the jungle in the complete safety and comfort of your  Tram  which takes you through the East and West Loop passing by a large reservoir and weaving through selected habitats designed specifically to replicate the natural environment from the Himalayan Foothills to the Southeast Asian Rainforest and Indian Subcontinent. On completion of the tram ride, your tour guide will lead you on a walking trail where you will be able to view some animals at closer quarters.<br />
Return back to hotel . Overnight in the hotel at Singapore.</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> Singapore
								</p>
								<p class="aj">After breakfast, proceed for the  Singapore city tour  explore the city by driving round the Civic District, passing by the Padang, Cricket Club, historic Parliament House, Supreme Court and City Hall. Next, stop at the MERLION PARK and enjoy the impressive views of Marina Bay. Do not miss out this picture-taking opportunity with The Merlin, a mythological creature that is part lion and part fish. Visit THIAN HOCK KENG TEMPLE, one of Singapore’s oldest Buddhist-Taoist temples, before driving past Chinatown. Stop by a LOCAL HANDICRAFT CENTRE and observe craftsmen at work up-close. Proceed to the NATIONAL ORCHID GARDEN, located within Singapore Botanic Gardens, which boasts a sprawling display of 60,000 orchid plants. Our final stop at LITTLE INDIA will entrance you with the scent of joss sticks, jasmine and spices.<br />
Return back to the hotel. Rest of the time free at leisure. Overnight in the hotel at Singapore.<br />
</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> Singapore - Kuala Lumpur (By Flight)
								</p>
								<p class="aj">After  Breakfast check out from the hotel and get transfer to the airport to board the flight for Kuala Lumpur. In Afternoon you will  arrive in Kuala Lumpur. Transfer and Check in  to the hotel. Rest of the day free at leisure. Overnight at hotel in Kuala lumpur.</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> Kuala Lumpur
								</p>
								<p class="aj">After breakfast, proceed for  half-day city tour covering Masjid Jamek (Jamek Mosque), which is the oldest mosque in Kuala Lumpur, Tugu Negara or War Memorial where we honor those who perished in the war which is inside Lake Garden, Chinatown located on Petaling Street is full of good bargains and deals, food of sorts and rich Chinese culture. See the Thien Hou Temple, Moorish-styled Federal Court, the Railway station which is a striking piece of Mohammedan architecture, the Tudor styled Cricket Club and the Kings Palace, Handicraft center where you can find fine and splendid  Jewelry making demonstrations. Return back to the hotel and Rest of the day at leisure. Overnight will be in the hotel in kuala Lumpur</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> Kuala Lumpur - Genting Highlands
								</p>
								<p class="aj">After breakfast, transfer to Genting Highlands, the most exciting hill resort, only 50 kms from Kuala Lumpur. Arrive at Genting hotel, then proceed for Genting indoor and outdoor theme park  Tour "The World's Best City Of Entertainment" Amidst the freshness of cool, Crisp Mountain airs about 6,000 feet (above sea level lies Malaysia's only casino resort and is a World-Class City of Entertainment). Fringed by one of the oldest tropical jungles in the world, you can enjoy yourselves with the numerous indoor and outdoor amusement triads, casino, cinemas, restaurants and shopping malls  Boating on the lake, fun rides on bumper cars and roller coasters are just a few of its attractions. Late night free to own enjoy the nightlife and international Dinner shows or try your luck at the world-class casino. Overnight in the hotel Genting Highlands.</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> Genting - Kuala Lumpur - Departure
								</p>
								<p class="aj">After breakfast, rest of the day free at leisure till check out and then transfer to Kuala Lumpur airport to board the flight back to 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>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Visa for Malaysia and Singapore</li><li>
Travel insurance</li><li>
Items of personal nature viz, drinks, laundry, calls, etc.</li><li>
Meals anything not mentioned in the itinerary</li><li>
Peak season charges, if applicable</li><li>
Service tax of 3.09%  on the total package</li></ul><br />
												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.chaturveditravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Malaysia Singapore 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="28060"/>
						</form>
						</div>
						
						";i:1;s:62:"Book Malaysia Singapore Tour - 5 Nights / 6 Days Tour Packages";i:2;s:123:"book malaysia singapore tour - 5 nights / 6 days tour packages, forts and palaces tour packages, kuala lumpur tour packages";i:3;s:168:"Chaturvedi Travels and Tours offers Malaysia Singapore Tour - 5 Nights / 6 Days tour package, budget Forts and Palaces tour packages for Kuala Lumpur at exciting price.";i:4;s:643:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kuala Lumpur"        
		                 },
		      "description": "Visa for Malaysia and Singapore
Travel insurance
Items of personal nature viz, drinks, laundry, calls, etc.
Meals anything not mentioned in the itinerary
Peak season charges, if applicable
Service tax of 3.09%  on the total package",
		      "name": "Malaysia Singapore Tour",
		      "telephone": "+91-9826355115"
		    }
		    </script>
			";i:5;N;}