a:4:{i:0;s:20244:"					<div class="h1"><h1>3 BHK Flat For Sale In Govardhan Hills, Anand</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.khushilandproperty.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.khushilandproperty.com/find-property.htm" title="Find Property">Find Property</a>  			
											
					
					<b class="ffv p2px">&rsaquo;</b>3 BHK Flat For Sale In Govardhan Hills, Anand</p> 
					<br />
					
											<p class="aj">3 BHK Apartment For Sale In Govardhan Hills Shreejinagar Society Behind D Z School 80 Feet Road ANAND 388001. Build up Area - 1500 sq.ft, New Property, 3 Bedroom, 2 Bathroom, 1 Balcony, Fully Furnished, East Facing, 1 Car Parking, Amount - 45 lac.<br/>
<br/>
Property Description<br/>
<br/>
Thoughtfully designed, modern, a 3BHK residential apartment is available for sale in Govardhan Hills, Vivekanand Wadi. <br/>
<br/>
Designed and conceptualized to suit your lifestyle, this apartment provides simple, functional, private, and light-filled spaces for a family. It is well distributed in 3 bedrooms, 2 bathrooms, 1 kitchen, and 1 balcony to gather fresh air and enjoy the view over the residential area. <br/>
<br/>
Open to sunlight and ventilation, the apartment is furnished with Samsung 48 Led smart TV with camera, Yamaha Receiver with sub-woofer and Bose 5 speakers, Samsung Washer Dryer, Godrej  Eon NXW 380 LITER refrigerator with bottom freezer, Samsung Convection oven with microwave, 100 liter electric geyser ( A O Smith), Pressure pump for water supply, One two tons and two one tonight air conditioners of Trade  (USA), TWO Crompton designer fans in living room and Five regular ceiling fans by Crompton.<br/>
<br/>
Resting within a gated privacy, it offers facilities such as 24-hour security, lift, power back up, upgraded water and electrical fittings, custom made windows and doors, box beds and parking space for your convenience. <br/>
<br/>
The property is conveniently located nearby main road and is served by all forms of transport. All basic utilities are also within easy reach. <br/>
<br/>
The most striking feature of this beautiful apartment is that the occupants have to bring only their personal belongings as it is fully furnished and fully loaded. Cheers!!!</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">REI762865</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">45 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>Built Up Area</b>: </td>
						
						<td class="vat p2px5px">
						<script type="text/javascript">
						function convert(basetext,baseindex,baseunit){
						     if(1500 > 0 )  updateArea(basetext,baseindex,1500,'builtupArea','Y',baseunit,'DrpDownTab');   }
						</script>  
						<span id="builtupArea_span">1500</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>
						</td>
						</tr>
						<tr><td colspan="3"><p class="hr"></p></td></tr>
											</table>
					</td>
											<td class="vat pl15px w175px">
													<div class="w150px imgWidth150 m0a" id="thumbContainer0" >
							<div class="ac lh0 mt10px">
							<a  data-fancybox="showZoomImage"  title="3 BHK Flat For Sale In Govardhan Hills, Anand" href="https://rei.wlimg.com/prop_images/749625/762865_1.jpg"><div class="imgWidth" style="background-image:url(https://rei.wlimg.com/prop_images/749625/762865_1-350x350.jpg);background-size:cover;background-position:center;width:150px;height:150px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/749625/762865_1-350x350.jpg"  alt="3 BHK Flat For Sale In Govardhan Hills, Anand"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div></a>							</div>
							</div>
													<p class="paging ac p10px small" id="propertyThumbLinks">
													<a href="javascript:void(0);" class="on w15px bdr dib b" onclick="imgDisplay('0')" title="">1</a> &nbsp; 
													</p>
						<script type="text/javascript">
						// <![CDATA[
						function imgDisplay(num) {
						as=document.getElementById('propertyThumbLinks').getElementsByTagName('a');
						for (i=0; i<as.length; i++) {
						as[i].className='p2px5px';
						document.getElementById('thumbContainer'+i).style.display='none';
						}
						as[num].className='on p2px5px'
						document.getElementById('thumbContainer'+num).style.display='';
						}
						//]]>
						</script>
						</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>Furnishing :</b> Furnished</li>
																<li class="p2px"><b>Transaction :</b> New Property</li>
																<li class="p2px"><b>Bedrooms :</b> 3</li>
																<li class="p2px"><b>Bathrooms :</b> 2</li>
																<li class="p2px"><b>Reserved Parking :</b> 1</li>
																<li class="p2px"><b>Property On Floor :</b> 5</li>
																<li class="p2px"><b>Property Face :</b> East</li>
														</ul>
			            <p class="cb"></p>
			            <br />
												<div class="bdrB xxlarge b dif lh14em mb7px">Amenities</div>
						<ul class="lsn m0px p0px wp33">
													<li class="p2px vat"><i class="si w24px icon-ws" title="Water Storage"></i> Water Storage</li>
														<li class="p2px vat"><i class="si w24px icon-rp" title="Reserved Parking"></i> Reserved Parking</li>
														<li class="p2px vat"><i class="si w24px icon-fa" title="Security"></i> Security</li>
													</ul>
			            <p class="cb"></p>
			        	<br>
			        								<div class="bdrB xxlarge b dif lh14em mb7px">Property Address</div>
							<p>Shreejinagar Society, Govardhan Hills, Behind D Z School 80 Feet Road, Anand, Gujarat</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=~~Anand, Govardhan Hills, Gujarat,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. Makbul S Madhuliwala 								</td>
								</tr>
																	<tr>
									<td class="ar b p5px">Phone :</td>
									<td class="p5px">+91-2692-269222</td>
									</tr>
																	<tr>
								<td class="ar b p5px">Mobile :</td>
								<td  class="p5px">
								+91-9537920001								</td>
								</tr>
																<tr>
								<td class="ar b p5px">Contact Address :</td>
								<td  class="p5px">
								F/5, Platinum Complex, Near MRF Show Room, 100Ft Road, Anand Amul City, Amul Dairy Road, Anand, Gujarat, India								</td>
								</tr>
															</table>
													<form name="frmpropertydetail" method="post" action="http://www.khushilandproperty.com/property-inquiry.htm">
						<p class="p10px ac">
						<input type="hidden" name="enqtype" value="property" />
						<input type="hidden" name="subject" value="Inquiry For Property - 3 BHK Flat For Sale In Govardhan Hills, Anand - REI762865" />
						<input class="button p5px10px b" type="submit" value="SEND ENQUIRY" />
						<input type="hidden" name="property_id" value="762865" />
						</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://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.khushilandproperty.com/sell/office-space-anand_520459.htm" title="Office Space Available for Sale" class="dif b">Office Space Available for Sale</a></p>
							<p class="mb5px"> (Amul Dairy Road, Anand/Anand)   Area: 2500 Sq.ft. | 2 Floor | 1.05 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.khushilandproperty.com/sell/office-space-anand_752150.htm" title="Office Space Available For Sale In Anand" class="dif b">Office Space Available For Sale In Anand</a></p>
							<p class="mb5px"> (Anand/Gujarat)   Area: 3200 Sq.ft. | 2 Floor | 1.60 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.khushilandproperty.com/sell/3-bhk-flats-apartments-anand_520439.htm" title="3 BHK Flat For Sale in Anand" class="dif b">3 BHK Flat For Sale in Anand</a></p>
							<p class="mb5px"> (Anand/Gujarat)   Area: 1600 Sq.ft. | 3 Bedrooms | 5 Floor | 55 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.khushilandproperty.com/sell/residential-plot-anand_521853.htm" title="Residential Plot Available for Sale in  Gujarat" class="dif b">Residential Plot Available for Sale in  Gujarat</a></p>
							<p class="mb5px"> (Amul Dairy Road, Anand/Anand)  1200 Sq.ft. | 38 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.khushilandproperty.com/sell/industrial-land-plot-anand_550310.htm" title="Industrial Land / Plot For Sale in Anand" class="dif b">Industrial Land / Plot For Sale in Anand</a></p>
							<p class="mb5px"> (Chikhodra, Anand/Anand)  10000 Sq.ft. | 1.50 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.khushilandproperty.com/sell/4-bhk-bungalows-villas-anand_520299.htm" title="4 Bhk Bangalow At Anand, Gujarat." class="dif b">4 Bhk Bangalow At Anand, Gujarat.</a></p>
							<p class="mb5px"> (Amul Dairy Road, Anand/Anand)   Area: 2030 Sq. Meter | 4 Bedrooms | 2 Floor | 4 Bathrooms | 1.20 Cr</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:42:"3 BHK Flats & Apartments for Sale in Anand";i:2;s:259:"Property for Sale in Govardhan Hills, , Anand, Gujarat, 3 Bedrooms, 2 Bath Rooms, 1 Parking, 1500 Sq.ft. Flats & Apartments in Govardhan Hills, , Anand, Gujarat, Khushi Land Property deal in all type of Flats & Apartments in Govardhan Hills, , Anand, Gujarat.";i:3;s:259:"Property for Sale in Govardhan Hills, , Anand, Gujarat, 3 Bedrooms, 2 Bath Rooms, 1 Parking, 1500 Sq.ft. Flats & Apartments in Govardhan Hills, , Anand, Gujarat, Khushi Land Property deal in all type of Flats & Apartments in Govardhan Hills, , Anand, Gujarat.";}