a:4:{i:0;s:16027:"					<script>	
						(function($){	
						  $(function(){
							$('[id^=slider1]').each(function(){
								$(this).DG_Slider({
									auto: true, mode:'fade', pager:false, pagerType:'short',controls:false
								});
							})
							$('a[rel=gall]').fancybox()
						  });	
						}(jQuery))		
					</script>
					<section id="middle"><br />
					<div class="wrap" id="bodyFormatNT">
					<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
					<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->
											<div class="h1"><h1>Agricultural/Farm Land for Sale in Katihar</h1></div>
						<p class="breadcrumb ar uu small"><a href="https://www.aairareality.in/" title="Home">Home</a>
						
						<b class="ffv p2px">&rsaquo;</b><a href="https://www.aairareality.in/property-in-katihar.htm" title="Property in Katihar">Katihar</a>						
						<b class="ffv p2px">&rsaquo;</b>Agricultural/Farm Land for Sale in Katihar</p> 
											<section class="fo pro_detail_n">
					<div class="w100 dt ac-dtr acac-dtc fl">
					<ul>
										<li class="vat pr30px vat w300px lh0">
                    <div class="demo-wrap slider300">
					<ul class="lsn m0px p0px" >
												<li class="bdr bw1px c5px p1px">
							<div class="">
							<p class="ac vam">
															<div class="lh0 blur-bg" style="background-image:url(https://rei.wlimg.com/prop_images//705598_1.jpg); background-repeat:no-repeat;"></div>
								<a  data-fancybox="showZoomImage"  title="Agricultural/Farm Land for Sale in Katihar" href="https://rei.wlimg.com/prop_images/1214374/705598_1.jpg"><img src="https://rei.wlimg.com/prop_images/1214374/705598_1-350x350.jpg"  alt="Agricultural/Farm Land for Sale in Katihar"  /></a>							</p>
							</div>
							</li>
												</ul>
					</div>
					</li>
					<li class="vat ffos">
					<div class="fo mb10px bdrb bdreee pb10px res_clr">
					<div class="">
												<div><i class="fa fa-map-marker pr7px fl"></i><p class="ofh">Dumaar, Katihar							<br>
							<span class="gray">By Aaira Reality</span></p>
							</div>
												</div>
					</div>
					<p class="pr"><span class="headHr dib c5px"><a data-fancybox data-type="iframe" data-src="https://www.realestateindia.com/view_map.php?gaddress=~~Katihar~~Bihar, Dumaar&goglepointer1=&goglepointer2=" href="javascript:void(0);" style="padding-left:50px;" class="b xlarge p7px pr20px dib ts0">Location Map</a></span>
					<span style="top:-10px;left:0;" class="pa dib lh0px"><img src="https://static.realestateindia.com/images/icon_loc_map.png" alt=""></span>
					</p>
					<script>
					$("[data-fancybox]").fancybox({
					    iframe : {
					        css : {
					            width : '860px'
					        }
					    }
					});
					</script>
					<br />
											<div class="xxlarge mb10px">
						<div class="xxlarge ffrr mb7px dib red"><i class="fa fa-inr"></i> <span itemprop="price">40 L</span></div>
													<div class="xsmall ml15px dib">@ Rs 20000 per Acre</div>
													</div>
											<ul class="fo ac-mb10px pb10px lsn bdrb large">
											<li>
						<p class="fl w130px">Property ID: </p>
						<p class="fl mr30px">:</p>
						<p class="ofh b">REI705598</p>
						</li>
												<li>
						<p class="fl w130px">Property For</p>
						<p class="fl mr30px">:</p>
						<p class="ofh b">Sale</p>
						</li>
												<script type="text/javascript">
						area_conversion=function(b,f,e){var c=createAreaArr();if(e==1){if(b<20&&b!=18){var a=f/c[b];return a}else{return 0}}else{if(e==2){if(b<20&&b!=18){var d=f*c[b];return d}else{return 0}}}};
						
						function createAreaArr(){
							var a={
								1:1,
								2:0.1111111111111,
								3:0.093,
								4:0.00041666667,
								5:0.013890889,
								6:0.000091810503,
								7:0.002222222222222223,
								8:0.0036724201,
								9:0.0009182736455464,
								10:0.00092936802973,
								11:0.0000028696051,
								12:0.00002295663,
								13:0.000057392103,
								14:0.0013888889,
								15:0.0000092904166,
								16:0.003673095,
								17:0.0000092605969,
								19:0.002295684
							};
							return a;
						}
						
						function updateArea(a,c,d,h,b,w,z){
							var g=createAreaArr();
							 
							var bu = {
						    'Sq.ft.':'1',
						    'Sq. Yards':'2',
						    'Sq. Meter':'3',
						    'Guntha':'9',
						    'Ares':'10',
						    'Acre':'12',
						    'Bigha':'13',
						    'Hectares':'15',
						    'Marla':'16',
						    'Cent':'19',
						    };
							if(w=='Sq. Feet'){
								var e=d*(parseFloat(g[c]));
							}
							else{
								var e=parseFloat(g[c])*(d/ parseFloat(g[bu[w]]));
							} 
							
							if(b=="Y"){
								jQuery("#"+h+"_span").html(e.toFixed(2));
							}else{
								if(b=="N"){
									jQuery("#"+h).html(jQuery("#"+h).html+e.toFixed(2));
									console.log("#"+h);
								}
							}
							jQuery("#"+h+"Label").html(" "+a);
							jQuery("#"+z).html(a+" &#9660;")
						}
						
						</script>						
												<li class="fo">
						<p class="fl w130px">Land / Plot Area</p>
						<p class="fl mr30px">:</p>
						<div class="fl b">
						<script type="text/javascript">
						function convert1(basetext,baseindex,baseunit){
						     if(200 > 0 )  updateArea(basetext,baseindex,200,'landArea','Y',baseunit,'DrpDownTab1'); }
						</script>  
						<span id="landArea_span">200</span>
						<span class="pr">
						<a onClick="jQuery('#landArea').show();event.stopPropagation();" class="headVr pl5px pr5px small dib vam ml5px" id="DrpDownTab1">Acre &#9660;</a>
						<div id="landArea" style="width:120px;display:none;top:-1px;left:0px;" class="pa">
						<span class="data p5px15px pb10px dib xlarge b pr" style="border-bottom:none;z-index:101;" id="landAreaLabel">Acre</span>
						<ul class="lsn m0px p0px data small bdrB0 pr uo" style="top:-1px;z-index:100;">
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Sq.%20Feet',1,'Acre');">Sq.Feet</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Cent',19,'Acre');">Cent</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Sq.%20Yards',2,'Acre');">Sq. Yards</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Ares',10,'Acre');">Ares</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Acre',12,'Acre');">Acres</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Sq.%20Meter',3,'Acre');">Sq. Meter</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Bigha',13,'Acre');">Bigha</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Hectares',15,'Acre');">Hectares</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Guntha',9,'Acre');">Guntha</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Marla',16,'Acre');">Marla</a></li>
						</ul>
						</div>
						</span>
						<script>
						jQuery(document).ready(function(e) {
							jQuery('body').click(function(){
								jQuery('#landArea').hide();
								
							})
						});
						</script>
						</div>			
						</li>
											</ul>
											<form class="inquiry-form" name="frmpropertydetail" method="post" action="https://www.aairareality.in/enquiry-form-10017.htm">
						<input type="hidden" name="enqtype" value="property" />
						<input type="hidden" name="subject" value="Inquiry For Property - Agricultural/Farm Land for Sale in Katihar - REI705598" />
						<input type="hidden" name="property_id" value="705598" />
						</form>
						<a href="javascript:void(0);" class="submit-inquiry buttonBig xxlarge ts0 p10px20px mt10px c5px">Send Enquiry</a>
							
					</li>
					</ul>
					</div>											
					</section>
					<br /> 
											<div class="bdrB xxlarge b dif pb5px mt10px mb7px">Additional Details</div>
	                    <ul class="lsn m0px p0px wp33 lh2em">
														<li><b>Transaction :</b> New Property</li>
														</ul>
			            <p class="cb"></p>
			            <br />
												<br />
						<div class="bdrB xxlarge b dif pb5px mt10px mb7px">Property Description </div>
						<p class="aj">Good property no litigation fresh property.</p>						
											</div>
					<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				    <div class="db p20px bdr large ac">
				    <div class="dib mb10px">
					<div class="propUser bdr bdrddd vam"><i class="fa fa-user"></i></div>
					</div>
					<p class="mb5px"> Prashant Sengupta  </p>
					<p class="alpha75 mb5px"> kumarsengupta206@gmail.com </p>
					<p> <i class="fa xxxlarge vam mr5px fa-mobile" aria-hidden="true"></i> +91-9572091213 </p>
					</div>
		
					<div class="column_Box mc">
					<div class="tcl bullet divider">
					<div class="h h2"><b class="plusMinus"></b>
					<h2>Property by City</h2>
					</div>
					<div class="ic showHide_rp">
					<div class="mt10px">
											<span class="dib p5px10px c2px headVr mr7px mb7px "><a href="https://www.aairareality.in/property-in-purnia.htm" class="dif" title="Property in Purnia">Purnia</a> <b class="alpha50 bn small">(10)</b></span>
												<span class="dib p5px10px c2px headVr mr7px mb7px "><a href="https://www.aairareality.in/property-in-katihar.htm" class="dif" title="Property in Katihar">Katihar</a> <b class="alpha50 bn small">(2)</b></span>
												<span class="dib p5px10px c2px headVr mr7px mb7px "><a href="https://www.aairareality.in/property-in-siliguri.htm" class="dif" title="Property in Siliguri">Siliguri</a> <b class="alpha50 bn small">(1)</b></span>
												<span class="dib p5px10px c2px headVr mr7px mb7px "><a href="https://www.aairareality.in/property-in-bhagalpur.htm" class="dif" title="Property in Bhagalpur">Bhagalpur</a> <b class="alpha50 bn small">(1)</b></span>
												<span class="dib p5px10px c2px headVr mr7px mb7px "><a href="https://www.aairareality.in/property-in-alipurduar.htm" class="dif" title="Property in Alipurduar">Alipurduar</a> <b class="alpha50 bn small">(1)</b></span>
											
					</div>
					</div>
					</div>
					</div>
					
										
					</div>
					</div>
					
												<br />
							<br />
							<section><br/>
							<div class="wrap fullFormat">	
							<div class="xxxlarge b mb30px ac"><h2>Similar Property</h2></div>
							<div class="cf_3img mt30px">
							<ul class="lsn m0px p0px fo idv_eqheight cols_similar">						
															<li>
								<div class="bdr mb15px">
								<div class="cp" onclick="location.href='https://www.aairareality.in/sell/agricultural-farm-land-katihar_789809.htm'">
								<p class="theme2 bdr0 p2px5px small">PROPERTY ID - REI789809</p>
								<div class="picBg lh0"><img src="https://rei.wlimg.com/prop_images/1214374/789809_1-350x350.jpg"  alt="Agricultural/Farm Land for Sale in Manihari, Katihar"  /></div>
								<p class="ffrr b large db headHr p5px10px"><a href="https://www.aairareality.in/sell/agricultural-farm-land-katihar_789809.htm">Agricultural/Farm Land for Sale in Manihari, Katih...</a></p>
								<div class="p10px headVr bdr0" style="min-height:188px;">
								<p class="b"><i class="fa fa-map-marker mr5px"></i> Manihari, Katihar </p>
																	<p class="mt5px b dull-text">Fresh and good property no ligtication <a href="https://www.aairareality.in/sell/agricultural-farm-land-katihar_789809.htm" title="Agricultural/Farm Land for Sale in Manihari, Katihar" class="dif u">Read More</a></p>
																	<div class="dt ac-dtr acac-dtc dul b mt10px">
																	<ul class="mb5px">
									<li class="dull-text">Cost </li>
									<li>: <b class="webrupee"></b> 10 Cr </li>
									</ul>
																		<ul class="mb5px">
									<li class="dull-text">Land / Plot Area </li>
									<li>: <b class="webrupee"></b> 7 Acre </li>
									</ul>
																	<ul class="mb5px">
								<li class="dull-text">Property Type </li>
								<li>: <b class="webrupee"></b> Agricultural/Farm Land </li>
								</ul>
																</div> 
								</div>
								</div>
								<div class="bdrT p5px ac">	
								<form class="inquiry-form" name="prop_789809" id="prop_789809" method="post" action="https://www.aairareality.in/enquiry-form-10017.htm">
								<input type="hidden" name="enqtype" value="property" />
								<input type="hidden" name="subject" value="Inquiry For Property - Agricultural/Farm Land for Sale in Manihari, Katihar - REI789809" />
								<input type="hidden" name="property_id" value="789809" />
								</form>			 
								<a href="https://www.aairareality.in/sell/agricultural-farm-land-katihar_789809.htm" class="button p5px10px c3px mt5px mb5px">View Detail</a> <a href="javascript:void(0);" class="submit-inquiry buttonBig p5px10px ml5px c3px mt5px mb5px">Send Enquiry</a></div>
								</div>
												
							</ul>
							</div>
							</div> 
							</section> 
												</div>
					</section>
									<div id="myModal" class="modal fade dn pf" role="dialog" style="z-index:9999;left:0;top:0%;width:100%;height:100%;background-color:rgba(0,0,0,0.6);overflow-x: hidden; overflow-y: auto;">
				    <!-- Modal content-->
				    <div style="max-width:700px;margin-top: 50px;min-height:400px;" class="modal-content data m0a p10px pr">
				      <div class="modal-header">
				        <a style="right:25px;top:25px;" class="pa b xxxlarge" data-dismiss="modal"><span class="xlarge">&times;</span></a>	        
				      </div>
				      <div class="modal-body">
				        <div class="ac" style="padding-top: 10%;"><p style="font-size:18px">Loading...</p></div>
				      </div>
				      <div class="modal-footer">
				        
				      </div>
				    </div>
				</div>
				<script type="text/javascript">
					jQuery(document).ready(function(){
						jQuery(document).on("click", ".submit-inquiry" , function(){
							var form = jQuery(this).parent().find(".inquiry-form");
							if(form.length){
								jQuery.ajax({
									url: form.attr("action"),
									type: form.attr("method"),
									data:form.serialize(),
									crossDomain:true,
									success:function(res){
										jQuery("#myModal .modal-body").html(res);
									}
								});
							}
						});
						jQuery(document).on("click", "[data-dismiss=modal]", function(){
							jQuery("#myModal .modal-body").html('<div class="ac" style="padding-top: 10%;"><p style="font-size:18px">Loading...</p></div>');
							jQuery("#myModal").hide();
						});
						jQuery(document).on("submit", "form[name=static_form]", function(e){				
							e.preventDefault();
							var isValidForm =static_inq_form_validate(jQuery(this).attr("form-id"));
							if(isValidForm == undefined){
								var form = jQuery(this);
								if(form.length){
									jQuery.ajax({
										url: form.attr("action"),
										type: form.attr("method"),
										data:form.serialize(),
										crossDomain:true,
										beforeSend:function(){
											jQuery("#myModal .modal-footer").html("");
										},
										success:function(res){
											jQuery("#myModal .modal-body").html(res);
											setTimeout(function(){
												jQuery("#myModal", document).hide();
												jQuery("#myModal .modal-body").html('<div class="ac" style="padding-top: 10%;"><p style="font-size:18px">Loading...</p></div>');
												},2000)
										}
									});
								}
							}
						});
						var modal = jQuery("#myModal", document);
			
						jQuery(document).on("click", ".submit-inquiry" , function(){
						    modal.show();
						});
			
						window.onclick = function(event) {
						    if (jQuery(event.target) == modal) {
						        modal.css("display","none");
						    }
						}
					});
				</script>
				";i:1;s:42:"Agricultural/Farm Land for Sale in Katihar";i:2;s:180:"Aaira Reality provide Agricultural/Farm Land for Sale with  in Dumaar, , Katihar, Bihar Dumaar, , Katihar, Bihar. Requirement of Agricultural/Farm Land in Dumaar, , Katihar, Bihar.";i:3;s:180:"Aaira Reality provide Agricultural/Farm Land for Sale with  in Dumaar, , Katihar, Bihar Dumaar, , Katihar, Bihar. Requirement of Agricultural/Farm Land in Dumaar, , Katihar, Bihar.";}