a:6:{i:0;s:7937:"				<div class="h1"><h1>Birding Rajisthan Tours</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>Birding Rajisthan Tours</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">
						8 Nights / 9 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Bharatpur, Pushkar, Sawai Madhopur</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="Birding Rajisthan Tours - 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="99497"/>
						</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/167740.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/7828/167740.jpg"  width="150" height="150"    alt="Birding Rajisthan Tours" title="Birding Rajisthan Tours" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Chambal Wildlife Sanctuary<br />
The Chambal is a perennial river bordered by many steep ravines and the vegetation is typically scrub along the river bank. Specially gazetted under the Crocodile Conservation Project, this area is home to the endemic Gharial and marsh crocodiles (muggers). A birdwatchers' paradise, Chambal is one of the best places to watch the Indian Skimmer. Some other birds you see here are Thicknee, Comb Duck, Ruddy Shelduck, Bar-headed Geese, Spoonbill and Greater Flamingo. Chambal is also an excellent place to view the highly ndangered Gangetic River Dolphin.<br />
Bharatpur<br />
If UNESCO has acknowledged Bharatpur or Keoladeo as a World Heritage Site, it is for a good reason. Some 425 species of birds have been recorded in and around the 29 sq km park, making it an amazingly dense and diverse bird habitat. The diversity of birds is partly explained by the mixture of shallow marshy lakes, patches of mature woodland scrub and dry open grassland. It is one of those few places in the world where it is possible to see 150 species in a single morning of birding.<br />
Bharatpur is best known as the wintering ground of the western population of the Siberian Crane, which gets here after a 6400 km marathon flight from the Arctic. The Grey-lag Geese come from Siberia while the Bar-headed Geese, from China. Bharatpur is also considered the finest Heronry in the world as well as an unrivalled breeding site for the Painted Stork, Purple Heron, White Ibis and the Eurasian Spoonbill. The Indian Cormorants, Intermediate Egrets, flocks of Great White Pelicans and Night Herons form the bulk of the resident population. More than 20 species of ducks have been seen at Bharatpur, including Northern Pintail, Gargany, Northern Shovler and rarities such as the Falcated or Marbled Duck. This superb wetland also attracts many birds of prey like the Eurasian Marsh Harrier, Greater Spotted Eagle and the Steppe Eagle, which is perhaps the most common. Warbler fans will find Lesser Smoky and Booted & Brook's Leaf Warbler. Adjoining fields, scrub vegetation and irrigation tanks will reveal Oriental Skylark and Variable Wheatear. Subcontinent endemics like the Yellow-wattled Lapwing and the Black-capped Kingfisher are found mostly outside the park.<br />
The reservoir of Bund Baretha Sanctuary, an hour's drive away, is good for Indian Skimmers and other species like Eurasian Spoonbill, River Tern and Rufous-tailed Lark.<br />
Ranthambhore<br />
The habitat is mainly tropical dry deciduous with several lakes that attract water birds and species such as Black Storks, Brown Crake and Great Thicknee, usually not found in Bharatpur. Grasses should be probed for Yellow-leg Buttoned Quail and Jungle Bush Quail. The grand Ranthambhore Fort is a good place to watch out for raptors. The adjoining wetlands are visited by large flocks of Demoiselle Cranes, Spot-billed Pelicans, Greater Flamingos and various water birds.<br />
Sambhar Salt Lake<br />
The lake, along with the brackish water marshes around it, hosts an abundance of water birds. Some like the Lesser and Greater Flamingos, are migrants for whom Sambhar is one of the most important wintering areas.<br />
Sonkhaliya<br />
This is one of the best places in India to see the endangered Indian Bustard. Other notable species include Lesser Floricans, Indian Coursers, Stoliczka's Bush Chat and Rufous-fronted Prinia. The crop fields contain Common and Sarus Cranes.<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>
												</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="Birding Rajisthan Tours - 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="99497"/>
						</form>
						</div>
						
						";i:1;s:63:"Book Birding Rajisthan Tours - 8 Nights / 9 Days Tour Packages";i:2;s:154:"book birding rajisthan tours - 8 nights / 9 days tour packages, national parks tour packages, new delhi, bharatpur, pushkar, sawai madhopur tour packages";i:3;s:198:"Book Birding Rajisthan Tours - 8 Nights / 9 Days tour packages from Journey Asia - Get attractive 8 Nights / 9 Days National Parks  tour packages for  New Delhi, Bharatpur, Pushkar, Sawai Madhopur.";i:4;s:3848:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Bharatpur, Pushkar, Sawai Madhopur"        
		                 },
		      "description": "Chambal Wildlife Sanctuary
The Chambal is a perennial river bordered by many steep ravines and the vegetation is typically scrub along the river bank. Specially gazetted under the Crocodile Conservation Project, this area is home to the endemic Gharial and marsh crocodiles (muggers). A birdwatchers' paradise, Chambal is one of the best places to watch the Indian Skimmer. Some other birds you see here are Thicknee, Comb Duck, Ruddy Shelduck, Bar-headed Geese, Spoonbill and Greater Flamingo. Chambal is also an excellent place to view the highly ndangered Gangetic River Dolphin.
Bharatpur
If UNESCO has acknowledged Bharatpur or Keoladeo as a World Heritage Site, it is for a good reason. Some 425 species of birds have been recorded in and around the 29 sq km park, making it an amazingly dense and diverse bird habitat. The diversity of birds is partly explained by the mixture of shallow marshy lakes, patches of mature woodland scrub and dry open grassland. It is one of those few places in the world where it is possible to see 150 species in a single morning of birding.
Bharatpur is best known as the wintering ground of the western population of the Siberian Crane, which gets here after a 6400 km marathon flight from the Arctic. The Grey-lag Geese come from Siberia while the Bar-headed Geese, from China. Bharatpur is also considered the finest Heronry in the world as well as an unrivalled breeding site for the Painted Stork, Purple Heron, White Ibis and the Eurasian Spoonbill. The Indian Cormorants, Intermediate Egrets, flocks of Great White Pelicans and Night Herons form the bulk of the resident population. More than 20 species of ducks have been seen at Bharatpur, including Northern Pintail, Gargany, Northern Shovler and rarities such as the Falcated or Marbled Duck. This superb wetland also attracts many birds of prey like the Eurasian Marsh Harrier, Greater Spotted Eagle and the Steppe Eagle, which is perhaps the most common. Warbler fans will find Lesser Smoky and Booted & Brook's Leaf Warbler. Adjoining fields, scrub vegetation and irrigation tanks will reveal Oriental Skylark and Variable Wheatear. Subcontinent endemics like the Yellow-wattled Lapwing and the Black-capped Kingfisher are found mostly outside the park.
The reservoir of Bund Baretha Sanctuary, an hour's drive away, is good for Indian Skimmers and other species like Eurasian Spoonbill, River Tern and Rufous-tailed Lark.
Ranthambhore
The habitat is mainly tropical dry deciduous with several lakes that attract water birds and species such as Black Storks, Brown Crake and Great Thicknee, usually not found in Bharatpur. Grasses should be probed for Yellow-leg Buttoned Quail and Jungle Bush Quail. The grand Ranthambhore Fort is a good place to watch out for raptors. The adjoining wetlands are visited by large flocks of Demoiselle Cranes, Spot-billed Pelicans, Greater Flamingos and various water birds.
Sambhar Salt Lake
The lake, along with the brackish water marshes around it, hosts an abundance of water birds. Some like the Lesser and Greater Flamingos, are migrants for whom Sambhar is one of the most important wintering areas.
Sonkhaliya
This is one of the best places in India to see the endangered Indian Bustard. Other notable species include Lesser Floricans, Indian Coursers, Stoliczka's Bush Chat and Rufous-fronted Prinia. The crop fields contain Common and Sarus Cranes.",
		      "name": "Birding Rajisthan Tours",
		      "telephone": "+91-9910078863"
		    }
		    </script>
			";i:5;N;}