a:6:{i:0;s:13822:"				<div class="h1"><h1>South India Sensation Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.journeyasia.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.journeyasia.co.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>South India Sensation 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">
						11 Nights / 12 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Thiruvananthapuram, Chennai, Kanchipuram, Madurai, Thanjavur, Tiruchirappalli, Tiruvannamalai, Pondicherry, Cuddalore</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.journeyasia.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="South India Sensation 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="106410"/>
						</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_1/7828/176586.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/7828/176586.jpg"  width="150" height="150"    alt="South India Sensation Tour" title="South India Sensation 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> Chennai 
								</p>
								<p class="aj">Arrive Chennai - the gateway to southern India, established in 1639 by the East India Company, is one of the oldest cities of the country. Assistance and transfer to hotel.<br />
After lunch at hotel, half day sightseeing tour, visiting Gandhi Memorial, Kala Kshetra, Mylapore temple and Marine beach. Dinner and overnite at hotel.</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> Chennai - Tirupathi
								</p>
								<p class="aj">After breakfast, proceed to Tirupathi. Lunch at local restaurant Tirupathi is a temple town known for the famous ancient temple of Lord Venkateswara (Lord of seven hills or Balaji, as he is affectionately known ) on the top of the 860mts high Tirumala hills. The temple of Lord Venkateswara is not only believed to be amongst the oldest temples in the country, but also the richest of them all. In the evening return to Chennai for dinner and overnite 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> Chennai - Kanchipuram - Mamallapooram 
								</p>
								<p class="aj">After breakfast drive to Kanchipuram ( 76 kms/01.50 hrs ) - is the ancient capital of the Pallavas famous as a city of 1000 Temples and still has 124 shrines. The first temple dedicated to Shiva was built in the 7th and 8th century and has paintings on the walls. Temples of Ekambaswara , Kailasanatha, Sri Kamakshi and Varadarajaswamy are of interest. Kanchipuram is also famous for its silks. Lunch at local restaurant and later drive to Mamallapooram and check in at hotel.<br />
Afternoon visit the city - built in 7th century, earlier called Mahabalipooram, this ancient Pallava port, is today the sight of several antique sculptural marvels. Dinner and overnite at hotel.</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> Mamallapooram - Tiruvannamalai - Pondicherry 
								</p>
								<p class="aj">After breakfast drive to Tiruvannamallai(112kms/03hrs)- a pilgrim centre with an ancient temple of Lord Shiva. After lunch at local restaurant, proceed to Pondicherry (131kms/ 3.5hrs), which carries a strong whiff of the French presence in India. This erstwhile French colony on the east coast of South India merged with the rest of the country in 1954. Legend says that Pondicherry is the place where St.Agasthaya settled down. Checkin ,dinner and overnite at hotel.</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> Pondicherry 
								</p>
								<p class="aj">After breakfast drive to visit Aurbindo Ashram, the city of dawn, which is 10kms north of Pondicherry. This ashram promotes Aurbindo's ideas in bringing about a synthesis of Yoga and modern science, so as to unite the spirit and matter. After lunch at hotel, visit Auroville - a unique experiment in international living and in creating a new environment where men and women of all nationalities live together in harmony. Dinner and overnite at hotel.</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>  Pondicherry - Chidambaram - Tanjore 
								</p>
								<p class="aj">After breakfast drive to Chidambaram(65kms/1.5hrs) also called as Thillai, which has the famous Nataraja temple with the root of the sanctum-sanctorum covered with golden plates is located in the centre of the town covering an area of 40 acres. In this temple, postures from the Bharatnatayam form of dance are depicted in sculpture. Natraja is Lord Shiva as a cosmic dancer. Checkin, dinner and overnite at hotel .</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>  Tanjore - Trichy
								</p>
								<p class="aj">After breakfast leave for Trichy, short name of Trichurapalli, situated on the banks of Kaveri River is a blend of history and tradition as well as pilgrim centre, it is famous for Ranganath temple at Srirangam. Checkin at hotel. After lunch city tour visiting Rock fort and its temple at a height of over 23mts. Also visit Srirangam and Jambukeshwar Temple. Dinner and overnite at hotel.</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>  Trichy - Madurai
								</p>
								<p class="aj">After breakfast proceed to Madurai and checkin at hotel. The ancient city of Madurai, some 2600 years old is laid out in the banks of river Vaigai as a lotus flower with the Meenakshi temple in the centre. After lunch city tour visiting - Meenakshi temple, King Tirumala's Palace, Great tank and Gandhi museum. Dinner and overnite at hotel.</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> Madurai - Rameshwaram
								</p>
								<p class="aj">After breakfast proceed to Rameshwaram- the most sacred temple town of India is an island hallowed by the epic Ramayana, where Lord Rama is said to have visited before going into battle of Srilanka. Legend has it that Lord Rama sent Hanuman to Mount Kailash to bring a Lingam for worship when he set foot after defeating Ravana. As Hanuman did not return when the auspicious hour was approaching, Sita made a sand Lingam so that worship could be performed in time, which is where the present day Ramanatha Swamy Temple stands close to sea on the eastern side of the island. Overnite stay at hotel.</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 10:</b> Madurai - Trivandrum 
								</p>
								<p class="aj">After breakfast drive to Trivandrum and check in at hotel. Afternoon at leisure.</p>
								</td>
								</tr>
								</table>					
								</div><div id="show_more_content" style="display:none;">
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 11:</b> Trivandrum - Kanyakumari 
									</p>
									<p class="aj">After breakfast proceed for Kanyakumari - is the land's end of India where the water of the Arabian Sea , the Bay of Bengal and the Indian Ocean meet. An important pilgrim centre of India , it is famous for the Amman Temples - a symbol of unity and sanctity - deidicated to the virgin Goddess , Kanya Kumari. To its South - East lies the famous Vivekananda Rock Memorial , a blend of all the architectural styles of India. Lunch at local restaurant. Evening enjoy the beautiful sun set and later return to Trivandrum. Dinner and overnite at hotel.</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 12:</b> Trivandrum - Chennai
									</p>
									<p class="aj">After breakfast transfer to airport to connect flight for onward journey. End of our services.</p>
									</td>	
									</tr>
									</table>				
									</div>					
							</div>							<p class="mt10px ac"><a class="buttonBig p5px10px dib b" id="more_button" href="javascript:topDestinationToggle('show_more_content','more_button');" >View More &#9660;</a></p>
													<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.journeyasia.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="South India Sensation 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="106410"/>
						</form>
						</div>
						
						";i:1;s:70:"Book South India Sensation Tour - 11 Nights / 12 Days Tour Packages";i:2;s:227:"book south india sensation tour - 11 nights / 12 days tour packages, heritage tour packages, thiruvananthapuram, chennai, kanchipuram, madurai, thanjavur, tiruchirappalli, tiruvannamalai, pondicherry, cuddalore tour packages";i:3;s:273:"Book South India Sensation Tour - 11 Nights / 12 Days tour packages from Journey Asia - Get attractive 11 Nights / 12 Days Heritage  tour packages for  Thiruvananthapuram, Chennai, Kanchipuram, Madurai, Thanjavur, Tiruchirappalli, Tiruvannamalai, Pondicherry, Cuddalore.";i:4;s:518:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Thiruvananthapuram, Chennai, Kanchipuram, Madurai, Thanjavur, Tiruchirappalli, Tiruvannamalai, Pondicherry, Cuddalore"        
		                 },
		      "description": "",
		      "name": "South India Sensation Tour",
		      "telephone": "+91-9910078863"
		    }
		    </script>
			";i:5;N;}