a:4:{i:0;s:16970:"					<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>Commercial Lands /Inst. Land for Sale in Talasari, Palghar</h1></div>
						<p class="breadcrumb ar uu small"><a href="https://www.adproperties.in/" title="Home">Home</a>
						
						<b class="ffv p2px">&rsaquo;</b><a href="https://www.adproperties.in/property-in-palghar.htm" title="Property in Palghar">Palghar</a><b class="ffv p2px">&rsaquo;</b><a href="https://www.adproperties.in/property-for-sale-in-talasari-palghar.htm" title="Property for Sale in Talasari, Palghar">Talasari</a>						
						<b class="ffv p2px">&rsaquo;</b>Commercial Lands /Inst. Land for Sale in Talasari, Palghar</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//711920_1.jpg); background-repeat:no-repeat;"></div>
								<a  data-fancybox="showZoomImage"  title="Commercial Lands /Inst. Land for Sale in Talasari, Palghar" href="https://rei.wlimg.com/prop_images/997709/711920_1.jpg"><img src="https://rei.wlimg.com/prop_images/997709/711920_1-350x350.jpg"  alt="Commercial Lands /Inst. Land for Sale in Talasari, Palghar"  /></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">Talasari, Talasari, Palghar							<br>
							<span class="gray">By AD Properties</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=~~Talasari~~Palghar~~Maharashtra&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 />
										<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">REI711920</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(500 > 0 )  updateArea(basetext,baseindex,500,'landArea','Y',baseunit,'DrpDownTab1'); }
						</script>  
						<span id="landArea_span">500</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.adproperties.in/enquiry-form-10017.htm">
						<input type="hidden" name="enqtype" value="property" />
						<input type="hidden" name="subject" value="Inquiry For Property - Commercial Lands /Inst. Land for Sale in Talasari, Palghar - REI711920" />
						<input type="hidden" name="property_id" value="711920" />
						</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> Resale Property</li>
														</ul>
			            <p class="cb"></p>
			            <br />
												<br />
						<div class="bdrB xxlarge b dif pb5px mt10px mb7px">Property Description </div>
						<p class="aj">AD Properties <br/>
Real Estate Consultant<br/>
Vapi - Daman - Sarigam - Umbergaon - Silvassa - Valsad<br/>
<br/>
<br/>
NA Land for SALE near Talasari, Maharashtra<br/>
<br/>
10 Kms. from Gujarat Border<br/>
<br/>
200 Mtrs. deep from National Highway No. 8<br/>
<br/>
500 Acers NA Land. <br/>
<br/>
SALE Price Rs. 60.00 Lacs per Acers.<br/>
<br/>
Brokerage (Service Charges) : 1% Applicable from buyer side.<br/>
<br/>
For more details call or visit our site adproperties</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"> Mr. Deepak  </p>
					<p class="alpha75 mb5px"> adpropertiess@gmail.com </p>
					<p> <i class="fa xxxlarge vam mr5px fa-mobile" aria-hidden="true"></i> +91-7046838202 </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.adproperties.in/property-in-silvassa.htm" class="dif" title="Property in Silvassa">Silvassa</a> <b class="alpha50 bn small">(142)</b></span>
												<span class="dib p5px10px c2px headVr mr7px mb7px "><a href="https://www.adproperties.in/property-in-vapi.htm" class="dif" title="Property in Vapi">Vapi</a> <b class="alpha50 bn small">(98)</b></span>
												<span class="dib p5px10px c2px headVr mr7px mb7px "><a href="https://www.adproperties.in/property-in-valsad.htm" class="dif" title="Property in Valsad">Valsad</a> <b class="alpha50 bn small">(33)</b></span>
												<span class="dib p5px10px c2px headVr mr7px mb7px "><a href="https://www.adproperties.in/property-in-daman.htm" class="dif" title="Property in Daman">Daman</a> <b class="alpha50 bn small">(12)</b></span>
												<span class="dib p5px10px c2px headVr mr7px mb7px "><a href="https://www.adproperties.in/property-in-palghar.htm" class="dif" title="Property in Palghar">Palghar</a> <b class="alpha50 bn small">(2)</b></span>
												<span class="dib p5px10px c2px headVr mr7px mb7px "><a href="https://www.adproperties.in/property-in-dadra.htm" class="dif" title="Property in Dadra">Dadra</a> <b class="alpha50 bn small">(2)</b></span>
												<span class="dib p5px10px c2px headVr mr7px mb7px "><a href="https://www.adproperties.in/property-in-moti-daman.htm" class="dif" title="Property in Moti Daman">Moti Daman</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.adproperties.in/sell/agricultural-farm-land-talasari-palghar_711924.htm'">
								<p class="theme2 bdr0 p2px5px small">PROPERTY ID - REI711924</p>
								<div class="picBg lh0"><img src="https://rei.wlimg.com/prop_images/997709/711924_1-350x350.jpg"  alt="Agricultural/Farm Land for Sale in Talasari, Palghar"  /></div>
								<p class="ffrr b large db headHr p5px10px"><a href="https://www.adproperties.in/sell/agricultural-farm-land-talasari-palghar_711924.htm">Agricultural/Farm Land for Sale in Talasari, Palgh...</a></p>
								<div class="p10px headVr bdr0" style="min-height:188px;">
								<p class="b"><i class="fa fa-map-marker mr5px"></i> Talasari, Palghar </p>
																	<p class="mt5px b dull-text">AD Properties 
Real Estate Consultant
Vapi - Daman - Sarigam - Umbergaon  <a href="https://www.adproperties.in/sell/agricultural-farm-land-talasari-palghar_711924.htm" title="Agricultural/Farm Land for Sale in Talasari, Palghar" 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>   75 Crore  </li>
									</ul>
																		<ul class="mb5px">
									<li class="dull-text">Land / Plot Area </li>
									<li>: <b class="webrupee"></b> 350 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_711924" id="prop_711924" method="post" action="https://www.adproperties.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 Talasari, Palghar - REI711924" />
								<input type="hidden" name="property_id" value="711924" />
								</form>			 
								<a href="https://www.adproperties.in/sell/agricultural-farm-land-talasari-palghar_711924.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:58:"Commercial Lands /Inst. Land for Sale in Talasari, Palghar";i:2;s:232:"Commercial Lands /Inst. Land having  in Talasari, Palghar, Maharashtra Talasari, Palghar, Maharashtra. Commercial Lands /Inst. Land Property for Sale in Talasari, Palghar, Maharashtra Talasari, Palghar, Maharashtra at AD Properties.";i:3;s:232:"Commercial Lands /Inst. Land having  in Talasari, Palghar, Maharashtra Talasari, Palghar, Maharashtra. Commercial Lands /Inst. Land Property for Sale in Talasari, Palghar, Maharashtra Talasari, Palghar, Maharashtra at AD Properties.";}