a:4:{i:0;s:16654:"					<div class="h1"><h1>Residential Plot for sale at Omax City</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.propertyways.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.propertyways.in/find-property.htm" title="Find Property">Find Property</a>  			
											
					
					<b class="ffv p2px">&rsaquo;</b>Residential Plot for sale at Omax City</p> 
					<br />
					
											<p class="aj">It's a plot spread over an area of 430 Sq-ft. It overlooks Garden/Park and faces North - East direction. Additionally, the plot has boundary walls and is in a gated community. The plot is 2 sides open. The width of facing road is 9 meter(s). The booking amount is Rs 2,00,000. The plot is approved by Development Authority.</p>
						<br />
											<div class="headVr p10px">
					<p class="xxlarge b mb10px">Property Details</p>
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="vat data p10px">
					<table class="w100">
											<tr>
						<td class="vat p2px5px w175px"><b>Property ID</b>:</td>
						<td class="vat p2px5px">REI621322</td>
						</tr>
						<tr><td colspan="3"><p class="hr"></p></td></tr>
												<tr>
						<td class="vat p2px5px"><b>Property For </b>:</td>
						<td class="vat p2px5px">Sale</td>
						</tr>
						<tr><td colspan="3"><p class="hr"></p></td></tr>
												<tr>
						<td class="vat p2px5px"><b>Price</b>: </td>
						<td class="vat p2px5px">19 L</td>
						</tr>
						<tr><td colspan="3"><p class="hr"></p></td></tr>
												<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>						
												<tr>
						<td class="vat p2px5px"><b>Land / Plot Area</b>: </td>
						
						<td class="vat p2px5px">
						<script type="text/javascript">
						function convert1(basetext,baseindex,baseunit){
						     if(430 > 0 )  updateArea(basetext,baseindex,430,'landArea','Y',baseunit,'DrpDownTab1'); }
						</script>  
						<span id="landArea_span">430</span>
						<span class="pr">
						<a onClick="jQuery('#landArea').show();event.stopPropagation();" class="headVr pl5px pr5px small dib vam ml5px" id="DrpDownTab1">Sq.ft. &#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.ft.</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.ft.');">Sq.Feet</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Cent',19,'Sq.ft.');">Cent</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Sq.%20Yards',2,'Sq.ft.');">Sq. Yards</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Ares',10,'Sq.ft.');">Ares</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Acre',12,'Sq.ft.');">Acres</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Sq.%20Meter',3,'Sq.ft.');">Sq. Meter</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Bigha',13,'Sq.ft.');">Bigha</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Hectares',15,'Sq.ft.');">Hectares</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Guntha',9,'Sq.ft.');">Guntha</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert1('Marla',16,'Sq.ft.');">Marla</a></li>
						</ul>
						</div>
						</span>
						<script>
						jQuery(document).ready(function(e) {
							jQuery('body').click(function(){
								jQuery('#landArea').hide();
								
							})
						});
						</script>			
						</td>
						</tr>
						<tr><td colspan="3"><p class="hr"></p></td></tr>
											</table>
					</td>
										</tr>
					</table>
					</div>
					<br />
											<div class="bdrB xxlarge b dif lh14em mb7px">Additional Details</div>
						<ul class="lsn m0px p0px wp33">
														<li class="p2px"><b>Transaction :</b> Resale Property</li>
																<li class="p2px"><b>Property Face :</b> North East</li>
														</ul>
			            <p class="cb"></p>
			            <br />
												<br />
						<div class="bdrB xxlarge b dif lh14em mb7px">Location Map</div>
						<div class="bdr p2px lh0 mt10px"> 
						<iframe width="100%" height="300" frameborder="0"  marginheight="0" marginwidth="0"
						src="https://www.google.com/maps/embed/v1/place?key=AIzaSyAN_m_CqOOtgmiF9crPBw9oSbiFBPNwn5o&q=~~Omaxe City~~Lucknow~~Uttar Pradesh,India">
						</iframe>
						</div>
												<br />
						
						<table class="w100 formTable">
						<tr>
						<td class="headVr b p5px" colspan="2">Property Seller Detail</td>
						</tr>
														<tr>
								<td class="ar b p5px w30">Contact Person :</td>
								<td class="p5px">
								Mr. Shah Mohsin Kamaal 								</td>
								</tr>
																	<tr>
									<td class="ar b p5px">Phone :</td>
									<td class="p5px">+91-522-4044478</td>
									</tr>
																	<tr>
								<td class="ar b p5px">Mobile :</td>
								<td  class="p5px">
								+91-9838203144, +91-9335905429								</td>
								</tr>
																<tr>
								<td class="ar b p5px">Contact Address :</td>
								<td  class="p5px">
								Ground Floor, 118, Khazana Complex, Ashiana, Kanpur Road, Lucknow, Uttar Pradesh, India								</td>
								</tr>
															</table>
													<form name="frmpropertydetail" method="post" action="http://www.propertyways.in/property-inquiry.htm">
						<p class="p10px ac">
						<input type="hidden" name="enqtype" value="property" />
						<input type="hidden" name="subject" value="Inquiry For Property - Residential Plot for sale at Omax City - REI621322" />
						<input class="button p5px10px b" type="submit" value="SEND ENQUIRY" />
						<input type="hidden" name="property_id" value="621322" />
						</p>
						</form>
												<br />
						<br />
						<div class="headHr xlarge p7px pl10px">Properties you might be Interested</div>
						
						<div class="p10px">
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight">
													<li class="imgWidth200 ac">
							<div class="imgFrame dib bdr">
							<div class="imgFrame picBg dtc ac vam lh0">
							<div class="imgWidth" style="background-image:url(https://rei.wlimg.com/prop_images/18279/717359_1-350x350.jpg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/18279/717359_1-350x350.jpg"  alt="3 BHK Flat For Sale In Gomti Nagar Extn, Lucknow"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.propertyways.in/sell/3-bhk-flats-apartments-lucknow_717359.htm" title="3 BHK Flat For Sale In Gomti Nagar Extn, Lucknow" class="dif b">3 BHK Flat For Sale In Gomti Nagar Extn, Lucknow</a></p>
							<p class="mb5px"> (Sector 7, Gomti Nagar Extension, Lucknow/Lucknow)   Area: 1775 Sq.ft. | 3 Bedrooms | 5 Floor | 3 Bathrooms | 58 L</p>
							<br />
							</li>
														<li class="imgWidth200 ac">
							<div class="imgFrame dib bdr">
							<div class="imgFrame picBg dtc ac vam lh0">
							<div class="imgWidth" style="background-image:url(https://rei.wlimg.com/prop_images/18279/546821_1-350x350.jpg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/18279/546821_1-350x350.jpg"  alt="3 BHK Residential House for Sale in Lucknow"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.propertyways.in/sell/3-bhk-individual-house-home-ashiyana-lucknow_546821.htm" title="3 BHK Residential House for Sale in Lucknow" class="dif b">3 BHK Residential House for Sale in Lucknow</a></p>
							<p class="mb5px"> (Ashiyana, Lucknow/Lucknow)   Area: 3000 Sq.ft. / 1935 Sq.ft. | 3 Bedrooms | 3 Bathrooms | 1.25 Cr</p>
							<br />
							</li>
														<li class="imgWidth200 ac">
							<div class="imgFrame dib bdr">
							<div class="imgFrame picBg dtc ac vam lh0">
							<div class="imgWidth" style="background-image:url(https://rei.wlimg.com/prop_images/18279/694926_1-350x350.jpg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/18279/694926_1-350x350.jpg"  alt="2 bhk Flats for sale at Vibhuti Khand"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.propertyways.in/sell/2-bhk-flats-apartments-lucknow_694926.htm" title="2 bhk Flats for sale at Vibhuti Khand" class="dif b">2 bhk Flats for sale at Vibhuti Khand</a></p>
							<p class="mb5px"> (Vibhuti Khand, Gomti Nagar, Lucknow/Lucknow)   Area: 1288 Sq.ft. | 2 Bedrooms | 1 Floor | 2 Bathrooms | 71 L</p>
							<br />
							</li>
														<li class="imgWidth200 ac">
							<div class="imgFrame dib bdr">
							<div class="imgFrame picBg dtc ac vam lh0">
							<div class="imgWidth" style="background-image:url(https://rei.wlimg.com/prop_images/18279/523485_1-350x350.jpg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/18279/523485_1-350x350.jpg"  alt="2 BHK Apartment for Sale in Lucknow"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.propertyways.in/sell/2-bhk-flats-apartments-sultanpur-road-lucknow_523485.htm" title="2 BHK Apartment for Sale in Lucknow" class="dif b">2 BHK Apartment for Sale in Lucknow</a></p>
							<p class="mb5px"> (Sultanpur Road, Lucknow/Lucknow)   Area: 1669 Sq.ft. | 2 Bedrooms | 3 Floor | 2 Bathrooms | 55.01 L</p>
							<br />
							</li>
														<li class="imgWidth200 ac">
							<div class="imgFrame dib bdr">
							<div class="imgFrame picBg dtc ac vam lh0">
							<div class="imgWidth" style="background-image:url(https://static.realestateindia.com/images/no_image.jpg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img  alt="Coming Soon Property" src="https://static.realestateindia.com/images/no_image.jpg" style="max-height:200px;max-width:200px;z-index: -1;margin-left: -1000px;" /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.propertyways.in/sell/residential-land-plot-lucknow_583549.htm" title="Residential Plot/Land for Sale in Lucknow" class="dif b">Residential Plot/Land for Sale in Lucknow</a></p>
							<p class="mb5px"> (LDA Colony, Lucknow/Lucknow)  1210 Sq.ft. | 46 L</p>
							<br />
							</li>
														<li class="imgWidth200 ac">
							<div class="imgFrame dib bdr">
							<div class="imgFrame picBg dtc ac vam lh0">
							<div class="imgWidth" style="background-image:url(https://rei.wlimg.com/prop_images/18279/654422_1-350x350.jpeg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/18279/654422_1-350x350.jpeg"  alt="3 BHK Flat for sale at Lucknow"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.propertyways.in/sell/3-bhk-flats-apartments-lucknow_654422.htm" title="3 BHK Flat for sale at Lucknow" class="dif b">3 BHK Flat for sale at Lucknow</a></p>
							<p class="mb5px"> (LDA Colony, Lucknow/Lucknow)   Area: 1250 Sq.ft. | 3 Bedrooms | 6 Floor | 2 Bathrooms | 55 L</p>
							<br />
							</li>
											
						</ul>
						</div>
						</div>
										<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:48:"Residential Plot for Sale in Omaxe City, Lucknow";i:2;s:202:"Property for Sale in Omaxe City, Lucknow, Uttar Pradesh,  Residential Plot in Omaxe City, Lucknow, Uttar Pradesh, Propertyways deal in all type of Residential Plot in Omaxe City, Lucknow, Uttar Pradesh.";i:3;s:202:"Property for Sale in Omaxe City, Lucknow, Uttar Pradesh,  Residential Plot in Omaxe City, Lucknow, Uttar Pradesh, Propertyways deal in all type of Residential Plot in Omaxe City, Lucknow, Uttar Pradesh.";}