a:4:{i:0;s:16465:"					<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>1 BHK Flats & Apartments for Sale in Dharuhera</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.brightbuildmore.com/" title="Home">Home</a>
						
						<b class="ffv p2px">&rsaquo;</b><a href="http://www.brightbuildmore.com/property-in-rewari.htm" title="Property in Rewari">Rewari</a><b class="ffv p2px">&rsaquo;</b><a href="http://www.brightbuildmore.com/property-for-sale-in-dharuhera-rewari.htm" title="Property for Sale in Dharuhera, Rewari">Dharuhera</a>						
						<b class="ffv p2px">&rsaquo;</b>1 BHK Flats & Apartments for Sale in Dharuhera</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//556729_1.jpg); background-repeat:no-repeat;"></div>
								<a  data-fancybox="showZoomImage"  title="1 BHK Flats & Apartments for Sale in Dharuhera" href="https://rei.wlimg.com/prop_images/918369/556729_1.jpg"><img src="https://rei.wlimg.com/prop_images/918369/556729_1-350x350.jpg"  alt="1 BHK Flats & Apartments for Sale in Dharuhera"  /></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">Parasnath City, Dharuhera, Rewari							<br>
							<span class="gray">By Bright Buildmore & Realtech Pvt.ltd</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=~~Dharuhera~~Rewari~~Haryana&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">7 L</span></div>
						<div class="xsmall ml15px dib">@ Rs 1400 per Sq.ft.</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">REI556729</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">Built Up Area</p>
						<p class="fl mr30px">:</p>
						<div class="fl b">
						<script type="text/javascript">
						function convert(basetext,baseindex,baseunit){
						     if(500 > 0 )  updateArea(basetext,baseindex,500,'builtupArea','Y',baseunit,'DrpDownTab');   }
						</script>  
						<span id="builtupArea_span">500</span>
						<span class="pr">
						<a onClick="jQuery('#builtUp').show();event.stopPropagation();" class="headVr pl5px pr5px small dib vam ml5px" id="DrpDownTab">Sq.ft. &#9660;</a>
						<div id="builtUp" 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="builtupAreaLabel">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:convert('Sq.%20Feet',1,'Sq.ft.');">Sq. Feet</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Cent',19,'Sq.ft.');">Cent</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Sq.%20Yards',2,'Sq.ft.');">Sq. Yards</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Ares',10,'Sq.ft.');">Ares</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Acre',12,'Sq.ft.');">Acres</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Sq.%20Meter',3,'Sq.ft.');">Sq. Meter</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Bigha',13,'Sq.ft.');">Bigha</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Hectares',15,'Sq.ft.');">Hectares</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Guntha',9,'Sq.ft.');">Guntha</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Marla',16,'Sq.ft.');">Marla</a></li>
						</ul>
						</div>
						</span>
						<script>
						jQuery(document).ready(function(e) {
							jQuery('body').click(function(){
								jQuery('#builtUp').hide();
								
							})
						});
						</script>
						</div>
						</li>
												<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(540 > 0 )  updateArea(basetext,baseindex,540,'landArea','Y',baseunit,'DrpDownTab1'); }
						</script>  
						<span id="landArea_span">540</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>
						</div>			
						</li>
											</ul>
											<form class="inquiry-form" name="frmpropertydetail" method="post" action="http://www.brightbuildmore.com/enquiry-form-10017.htm">
						<input type="hidden" name="enqtype" value="property" />
						<input type="hidden" name="subject" value="Inquiry For Property - 1 BHK Flats & Apartments for Sale in Dharuhera - REI556729" />
						<input type="hidden" name="property_id" value="556729" />
						</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>Property Age :</b> New Construction</li>
																<li><b>Furnishing :</b> Semi-Furnished</li>
																<li><b>Transaction :</b> Resale Property</li>
																<li><b>Bedrooms :</b> 1</li>
																<li><b>Bathrooms :</b> 1</li>
																<li><b>No. of Floors :</b> 3</li>
																<li><b>Property On Floor :</b> 1</li>
														</ul>
			            <p class="cb"></p>
			            <br />
												<div class="bdrB xxlarge b dif pb5px mt10px mb7px">Amenities</div>
	                    <ul class="lsn m0px p0px wp33 lh2em">
													<li><i class="si w24px icon-pb" title="Power Back Up"></i> Power Back Up</li>
														<li><i class="si w24px icon-ws" title="Water Storage"></i> Water Storage</li>
														<li><i class="si w24px icon-rp" title="Reserved Parking"></i> Reserved Parking</li>
														<li><i class="si w24px icon-pk" title="Park"></i> Park</li>
													</ul>
			            <p class="cb"></p>
			        	<br>
			        							<br />
						<div class="bdrB xxlarge b dif pb5px mt10px mb7px">Property Description </div>
						<p class="aj">Huda Housing Board Society Flat Dharuhera in Parasnath City Prime Location  On Nh.8  Jaipur  Delhi Highway</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"> Aditya  </p>
					<p class="alpha75 mb5px"> brightbuildmorenrealtech@gmail.com </p>
					<p> <i class="fa xxxlarge vam mr5px fa-mobile" aria-hidden="true"></i> +91-9205116068, +91-9711160011 </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.brightbuildmore.com/property-in-gurgaon.htm" class="dif" title="Property in Gurgaon">Gurgaon</a> <b class="alpha50 bn small">(75)</b></span>
												<span class="dib p5px10px c2px headVr mr7px mb7px "><a href="http://www.brightbuildmore.com/property-in-faridabad.htm" class="dif" title="Property in Faridabad">Faridabad</a> <b class="alpha50 bn small">(4)</b></span>
												<span class="dib p5px10px c2px headVr mr7px mb7px "><a href="http://www.brightbuildmore.com/property-in-bahadurgarh.htm" class="dif" title="Property in Bahadurgarh">Bahadurgarh</a> <b class="alpha50 bn small">(1)</b></span>
												<span class="dib p5px10px c2px headVr mr7px mb7px "><a href="http://www.brightbuildmore.com/property-in-rewari.htm" class="dif" title="Property in Rewari">Rewari</a> <b class="alpha50 bn small">(1)</b></span>
											
					</div>
					</div>
					</div>
					</div>
					
										
					</div>
					</div>
					
										</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:46:"1 BHK Flats & Apartments for Sale in Dharuhera";i:2;s:256:"Property for Sale in Dharuhera, Rewari, Haryana, 1 Bedrooms, 1 Bath Rooms, 3 Total Floor, 500 Sq.ft. Flats & Apartments in Dharuhera, Rewari, Haryana, Bright Buildmore & Realtech Pvt.ltd deal in all type of Flats & Apartments in Dharuhera, Rewari, Haryana.";i:3;s:256:"Property for Sale in Dharuhera, Rewari, Haryana, 1 Bedrooms, 1 Bath Rooms, 3 Total Floor, 500 Sq.ft. Flats & Apartments in Dharuhera, Rewari, Haryana, Bright Buildmore & Realtech Pvt.ltd deal in all type of Flats & Apartments in Dharuhera, Rewari, Haryana.";}