a:4:{i:0;s:16575:"					<div class="h1"><h1>Residential Plot for Sale In Bhopal</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.sweethomeconsultant.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.sweethomeconsultant.com/find-property.htm" title="Find Property">Find Property</a>  			
											
					
					<b class="ffv p2px">&rsaquo;</b>Residential Plot for Sale In Bhopal</p> 
					<br />
					
											<p class="aj">1800 Sqft Plot for sale in New MLA Quarter colony and it is very near to New Market and all other residential societies. This plot is very good for investment also and if anybody wants to construct his house then the appreciation value will also be very high here. So it is really a decent option to take in thought so if anyone is interested then call us.....</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">REI661193</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">1.62 Cr</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(1800 > 0 )  updateArea(basetext,baseindex,1800,'landArea','Y',baseunit,'DrpDownTab1'); }
						</script>  
						<span id="landArea_span">1800</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> West</li>
														</ul>
			            <p class="cb"></p>
			            <br />
													<div class="bdrB xxlarge b dif lh14em mb7px">Property Address</div>
							<p>New MLA Quarter colony, Bhopal, Madhya Pradesh</p>
													<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=~~Bhopal~~Madhya Pradesh, MLA Quarter colony,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">
								Jeetendra 								</td>
								</tr>
																<tr>
								<td class="ar b p5px">Mobile :</td>
								<td  class="p5px">
								+91-9981966953								</td>
								</tr>
																<tr>
								<td class="ar b p5px">Contact Address :</td>
								<td  class="p5px">
								Mansarovar Complex MD-40 C Block, MP Nagar, Bhopal, Madhya Pradesh, India								</td>
								</tr>
															</table>
													<form name="frmpropertydetail" method="post" action="http://www.sweethomeconsultant.com/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 In Bhopal - REI661193" />
						<input class="button p5px10px b" type="submit" value="SEND ENQUIRY" />
						<input type="hidden" name="property_id" value="661193" />
						</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/334528/715250_1-350x350.jpg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/334528/715250_1-350x350.jpg"  alt="3 BHK Flat For Sale In M P Nagar, Bhopal"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.sweethomeconsultant.com/sell/3-bhk-flats-apartments-m-p-nagar-bhopal_715250.htm" title="3 BHK Flat For Sale In M P Nagar, Bhopal" class="dif b">3 BHK Flat For Sale In M P Nagar, Bhopal</a></p>
							<p class="mb5px"> (MP Nagar, Bhopal/Bhopal)   Area: 2074 Sq.ft. | 3 Bedrooms | 3 Floor | 3 Bathrooms | 1.24 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://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.sweethomeconsultant.com/sell/residential-land-plot-hoshangabad-road-bhopal_584464.htm" title="Residential Plot/Land for Sale in Bhopal" class="dif b">Residential Plot/Land for Sale in Bhopal</a></p>
							<p class="mb5px"> (Hoshangabad Road, Bhopal/Bhopal)  4000 Sq.ft. | 5 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://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.sweethomeconsultant.com/sell/penthouse-katara-hills-bhopal_686727.htm" title="3 BHK Penthouse For Sale In Katara Hills, Bhopal" class="dif b">3 BHK Penthouse For Sale In Katara Hills, Bhopal</a></p>
							<p class="mb5px"> (Katara Hills, Bhopal/Bhopal)   Area: 1950 Sq.ft. / 1950 Sq.ft. | 41 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.sweethomeconsultant.com/sell/residential-land-plot-kolar-road-bhopal_422255.htm" title="1100 sqft East Facing Plot for sale in Danish Hills Kolar road" class="dif b">1100 sqft East Facing Plot for sale in Danish Hills Kolar road</a></p>
							<p class="mb5px"> (Kolar Road, Bhopal/Bhopal)   Area: 1100 Sq.ft. / 1100 Sq.ft. | 23.65 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.sweethomeconsultant.com/sell/3-bhk-flats-apartments-kolar-road-bhopal_516649.htm" title="3 Bhk Flat for Sale in Bhopal" class="dif b">3 Bhk Flat for Sale in Bhopal</a></p>
							<p class="mb5px"> (Kolar Road, Bhopal/Bhopal)   Area: 1298 Sq.ft. / 950  Sq.ft. | 3 Bedrooms | 2 Floor | 2 Bathrooms | 28 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.sweethomeconsultant.com/sell/residential-land-plot-hoshangabad-road-bhopal_495543.htm" title="950 Sqft Corner Plot for Sale in Deepak Society" class="dif b">950 Sqft Corner Plot for Sale in Deepak Society</a></p>
							<p class="mb5px"> (Hoshangabad Road, Bhopal/Bhopal)  950 Sq.ft. | 35 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:35:"Residential Plot for Sale in Bhopal";i:2;s:231:"Property for Sale in MLA Quarter colony, , Bhopal, Madhya Pradesh,  Residential Plot in MLA Quarter colony, , Bhopal, Madhya Pradesh, Sweet Homes deal in all type of Residential Plot in MLA Quarter colony, , Bhopal, Madhya Pradesh.";i:3;s:231:"Property for Sale in MLA Quarter colony, , Bhopal, Madhya Pradesh,  Residential Plot in MLA Quarter colony, , Bhopal, Madhya Pradesh, Sweet Homes deal in all type of Residential Plot in MLA Quarter colony, , Bhopal, Madhya Pradesh.";}