a:6:{i:0;s:10005:"				<div class="h1"><h1>Jammu Dharamsala Manali Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.pptt.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.pptt.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Jammu Dharamsala Manali 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">
						3 Nights / 4 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Chamba, Dalhousie, Khajjiar, Dharamshala, Jammu</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.pptt.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Jammu Dharamsala Manali 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="62374"/>
						</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_8/228917/116392.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/228917/116392.jpg"  width="150" height="150"    alt="Jammu Dharamsala Manali Tour" title="Jammu Dharamsala Manali 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> Jammu - Dharamsala
								</p>
								<p class="aj">(3 h 12 min (193.9 km) via National Highway 1A and National Highway .<br />
pick up from Jammu city /Railway station & drive to Dharamshala for approx 2 hours.<br />
Check in at your hotel and day for rest or explore at your own. Dharamsala the name adopted for the town. Dharamsala stands at the foot of Dhauladhar and has a magnificent view of snowy peaks, Deodar and pine forests, tea gardens and beautiful hills. Picturesque Dharamsala, built on a spur of the Dhauladhar range, commands splendid view of the surrounding country. Originally a little hill resort built by the British, Dharamsala rambles up in levels to very near the snow line. While Lower Dharamsala (1,250 m) is the busy commercial area with government buildings, the bazaar and the bus stand, Upper Dharamsala (1,982 m) has suburbs with evocative names like Forsyth Ganj and Mc Leod Ganj that are quite fascinating.</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> Dharamsala - Dalhousie (143 kms)
								</p>
								<p class="aj">After brekfast drive to Dalhousie, Overnight at hotel.<br />
Dalhousie<br />
The popular hill station of Dalhousie is located in the Chamba Valley, at the foot of the spectacular Dhaula Dhar range of the Himalayas. The lush cover of vegetation that adorns the town comprises of towering pines, Deodar, oaks, and the beautiful rhododendron plants. Dalhousie is know for its old churches. Other tourist attractions are : Subhash Baoli situated at the height of 2085 Meters offers a panoramic view of mountains.<br />
<br />
Dhainkund<br />
10 Kms from Dalhousie from where one can obtained a clear view of Valleys of Beas, Chenab and Ravi rivers.<br />
<br />
Satdhara<br />
The seven sparkling springs flows at the height of 2030 meters, these springs contain of mica and medicinal properties.<br />
<br />
Barkota Hills<br />
At an altitude of 2085 meters and around 5Km from Dalhousie.</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> Dalhousie - Khajjiar - Chamba Dalhousie
								</p>
								<p class="aj">Drive to Khajjiar, approx an hour drive through dense forest area will take you to Khajjiar. This is a small town located in the beautiful Chamba Valley. It lies midway between Dalhousie and Chamba and is a perfect stopover for the tourists willing to visit the state of Himachal Pradesh. Fenced by the tall Deodar trees, Khajjiar is nestled well in the laps of Himalayas. Khajjiar is famous for the ancient, 12th century, golden-domed temple of Khajjinag.<br />
Other attractions are The Lake in the rolling green turf is a small lake<br />
<br />
Khajjinag Temple<br />
known as one of the most charming spots in the Himalayas, derives its name from its ancient, golden-domed temple of Khajjinag.<br />
<br />
Nine Hole Golf Course<br />
A nine-hole golf course is an added attraction at Khajjiar.<br />
Chamba originated in 6th century AD and is one of the oldest princely states. It is situated on the right side of the river Ravi. Located in the beautiful valley, surrounded by the Sivalik ranges, Chamba also has the district headquarters. It is famous for its medieval temples and Chaugan, a public promenade. The architecture of the buildings of Chamba reflects the artistic taste of its former rulers. Chamba is also famous for its local festivals.<br />
<br />
Other tourist attractions are Laxmi Narayan Temple : It is one of the major tourist attraction in Chamba. The six temples in this complex display the Hindu shikara style of architecture. Chowgan is the grassy promenade at the heart of the town and is the focus for local festivals. Brajeshwari Devi Temple Nearby the Laxmi Narayan Temple is the Brajreshwari Devi temple, dedicated to Goddess Durga.<br />
<br />
Chamunda Devi Temple<br />
This temple is located on a hill overlooking the town of Chamba and one has to climb for about 30 minutes to reach it.Sui Mata Temple Located between the Chamunda Devi temple and Brajreshwari Devi temple, the Sui Mata Temple is dedicated to Sui Mata (a local princess, who gave her life for the people in Chamba). The temple is decorated with colorful paintings depicting the life of Sui.</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> Dalhousie to Jammu Drop
								</p>
								<p class="aj">transfer to Jammu.<br />
3 h 36 min (195.3 km) via National Highway 1A.</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>
																		<li>Transfers</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.pptt.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Jammu Dharamsala Manali 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="62374"/>
						</form>
						</div>
						
						";i:1;s:67:"Book Jammu Dharamsala Manali Tour - 3 Nights / 4 Days Tour Packages";i:2;s:152:"book jammu dharamsala manali tour - 3 nights / 4 days tour packages, valley tour packages, chamba, dalhousie, khajjiar, dharamshala, jammu tour packages";i:3;s:197:"Pretty Planet Tour & Travels offers Jammu Dharamsala Manali Tour - 3 Nights / 4 Days tour package, budget Valley tour packages for Chamba, Dalhousie, Khajjiar, Dharamshala, Jammu at exciting price.";i:4;s:447:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Chamba, Dalhousie, Khajjiar, Dharamshala, Jammu"        
		                 },
		      "description": "",
		      "name": "Jammu Dharamsala Manali Tour",
		      "telephone": "+91-9906543070"
		    }
		    </script>
			";i:5;N;}