a:4:{i:0;s:16371:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Residential Plot</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.manglampropmart.in/" title="Home">Home</a>
						
						<b class="ffv p2px">&rsaquo;</b><a href="http://www.manglampropmart.in/property-in-greater-noida.htm" title="Property in Greater Noida">Greater Noida</a><b class="ffv p2px">&rsaquo;</b><a href="http://www.manglampropmart.in/property-for-sale-in-alpha-1-greater-noida.htm" title="Property for Sale in Alpha 1, Greater Noida">Alpha 1</a>											
						<b class="ffv p2px">&rsaquo;</b> Residential Plot</p>
						</div>
						</div>
						</section>
											<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-->
										<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">
						<img  alt="Coming Soon Property" src="https://static.realestateindia.com/images/no_image.jpg" width="" height="" />						</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">alpha 1 gr noida, Alpha 1, Greater Noida							<br>
							<span class="gray">By Mangalam propmart</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=Alpha-I Society~~Alpha 1~~Greater Noida~~Uttar Pradesh&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">1.25 Cr</span></div>
						<div class="xsmall ml15px dib">@ Rs 50000 per Sq. Meter</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">REI846855</p>
						</li>
												<li>
						<p class="fl w130px">Property For</p>
						<p class="fl mr30px">:</p>
						<p class="ofh b">Sale</p>
						</li>
														<li>
								<p class="fl w130px">Society Name</p>
								<p class="fl mr30px">:</p>
								<p class="ofh b">Alpha-I Society</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(250 > 0 )  updateArea(basetext,baseindex,250,'landArea','Y',baseunit,'DrpDownTab1'); }
						</script>  
						<span id="landArea_span">250</span>
						<span class="pr">
						<a onClick="jQuery('#landArea').show();event.stopPropagation();" class="headVr pl5px pr5px small dib vam ml5px" id="DrpDownTab1">Sq. Meter &#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">Sq. Meter</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,'Sq. Meter');">Sq.Feet</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Cent',19,'Sq. Meter');">Cent</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Sq.%20Yards',2,'Sq. Meter');">Sq. Yards</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Ares',10,'Sq. Meter');">Ares</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Acre',12,'Sq. Meter');">Acres</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Sq.%20Meter',3,'Sq. Meter');">Sq. Meter</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Bigha',13,'Sq. Meter');">Bigha</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Hectares',15,'Sq. Meter');">Hectares</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Guntha',9,'Sq. Meter');">Guntha</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Marla',16,'Sq. Meter');">Marla</a></li>
						</ul>
						</div>
						</span>
						<script>
						jQuery(document).ready(function(e) {
							jQuery('body').click(function(){
								jQuery('#landArea').hide();
								
							})
						});
						</script>
						</div>			
						</li>
											</ul>
						
					</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">this is residential plot is ready to move</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"> Sanjeev kumar singh </p>
					<p class="alpha75 mb5px">  </p>
					<p> <i class="fa xxxlarge vam mr5px fa-mobile" aria-hidden="true"></i> 9990167698 </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="http://www.manglampropmart.in/property-in-greater-noida.htm" class="dif" title="Property in Greater Noida">Greater Noida</a> <b class="alpha50 bn small">(52)</b></span>
												<span class="dib p5px10px c2px headVr mr7px mb7px "><a href="http://www.manglampropmart.in/property-in-noida.htm" class="dif" title="Property in Noida">Noida</a> <b class="alpha50 bn small">(2)</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_5img mt30px">
							<ul class="lsn m0px p0px fo idv_eqheight">						
															
								<li>
								<div class="data ac dib cp"  onclick="location.href='http://www.manglampropmart.in/sell/2-bhk-individual-houses-villas-alpha-ii-greater-noida_807427.htm'">
								<div class="w200px bdrB vam dtc" style="height:140px;"><img src="https://rei.wlimg.com/prop_images/1454024/807427_1-350x350.jpg"  alt="2 BHK House For Sale In I Block Alpha 2, Greater Noida"  style="width:100%;height:140px;"  /></div>
								<div class="p10px al">
								<p class="b dif">2 BHK House For Sale In I...</p>
								<p class="mt5px">Individual Houses / Villas</p>
								<p class="alpha75 mt5px">
								2 BHK / 60 Sq. Meter								
								</p>    
								<p class="alpha75">Alpha II, Greater Noida</p>
								</div>
								</div>    
								</li>								
																
								<li>
								<div class="data ac dib cp"  onclick="location.href='http://www.manglampropmart.in/sell/3-bhk-individual-houses-villas-alpha-ii-greater-noida_807425.htm'">
								<div class="w200px bdrB vam dtc" style="height:140px;"><img src="https://rei.wlimg.com/prop_images/1454024/807425_1-350x350.jpg"  alt="3 BHK House For Sale In H Block Alpha 2, Greater Noida."  style="width:100%;height:140px;"  /></div>
								<div class="p10px al">
								<p class="b dif">3 BHK House For Sale In H...</p>
								<p class="mt5px">Individual Houses / Villas</p>
								<p class="alpha75 mt5px">
								3 BHK / 150 Sq. Meter								
								</p>    
								<p class="alpha75">Alpha II, Greater Noida</p>
								</div>
								</div>    
								</li>								
																
								<li>
								<div class="data ac dib cp"  onclick="location.href='http://www.manglampropmart.in/sell/residential-plot-sector-3-greater-noida_846959.htm'">
								<div class="w200px bdrB vam dtc" style="height:140px;"><img  alt="Coming Soon Property" src="https://static.realestateindia.com/images/no_image_180.jpg" width="200" height="140" /></div>
								<div class="p10px al">
								<p class="b dif">2 BHK Residential Plot fo...</p>
								<p class="mt5px">Residential Plot</p>
								<p class="alpha75 mt5px">
								220 Sq. Meter								
								</p>    
								<p class="alpha75">Sector 3 Greater Noida</p>
								</div>
								</div>    
								</li>								
																
								<li>
								<div class="data ac dib cp"  onclick="location.href='http://www.manglampropmart.in/sell/3-bhk-flats-apartments-omicron-1-greater-noida_850687.htm'">
								<div class="w200px bdrB vam dtc" style="height:140px;"><img  alt="Coming Soon Property" src="https://static.realestateindia.com/images/no_image_180.jpg" width="200" height="140" /></div>
								<div class="p10px al">
								<p class="b dif">flat</p>
								<p class="mt5px">Flats & Apartments</p>
								<p class="alpha75 mt5px">
								3 BHK / 1300 Sq.ft.								
								</p>    
								<p class="alpha75">Omicron 1, Greater Noida</p>
								</div>
								</div>    
								</li>								
																
								<li>
								<div class="data ac dib cp"  onclick="location.href='http://www.manglampropmart.in/sell/2-bhk-individual-houses-villas-alpha-1-greater-noida_847497.htm'">
								<div class="w200px bdrB vam dtc" style="height:140px;"><img  alt="Coming Soon Property" src="https://static.realestateindia.com/images/no_image_180.jpg" width="200" height="140" /></div>
								<div class="p10px al">
								<p class="b dif">ready to move</p>
								<p class="mt5px">Individual Houses / Villas</p>
								<p class="alpha75 mt5px">
								2 BHK / 100 Sq. Meter								
								</p>    
								<p class="alpha75">Alpha 1, Greater Noida</p>
								</div>
								</div>    
								</li>								
												
							</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:51:"Residential Plot for Sale in Alpha 1, Greater Noida";i:2;s:240:"Residential Plot having  in Alpha 1, Greater Noida, Uttar Pradesh Alpha 1, Greater Noida, Uttar Pradesh. Residential Plot Property for Sale in Alpha 1, Greater Noida, Uttar Pradesh Alpha 1, Greater Noida, Uttar Pradesh at Mangalam propmart.";i:3;s:240:"Residential Plot having  in Alpha 1, Greater Noida, Uttar Pradesh Alpha 1, Greater Noida, Uttar Pradesh. Residential Plot Property for Sale in Alpha 1, Greater Noida, Uttar Pradesh Alpha 1, Greater Noida, Uttar Pradesh at Mangalam propmart.";}