a:4:{i:0;s:21132:"					<div class="h1"><h1>1 BHK Flats & Apartments for Rent in Koramangala, Bangalore South</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.bangaloreuptownproperty.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.bangaloreuptownproperty.com/find-property.htm" title="Find Property">Find Property</a>  			
											
					
					<b class="ffv p2px">&rsaquo;</b>1 BHK Flats & Apartments for Rent in Koramangala, Bangalore South</p> 
					<br />
					
											<p class="aj">1 bhk fully furnished apartment flat available  for rent rs.25000 + (maintenance) at  a posh locality in koramangala (bangalore).modern construction beautiful rooms with ac, led tv, fridge, cooking range, microwave, bed, mattress, sofa, wardrobes, electric fittings, bath fittings, modern western bathrooms and geysers..lift, car parking, power backup, security, maintenance etc.brokerage: 1 (one) month brokerage applicable as commission...we have different properties in different ranges.</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">REI641198</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">Rent</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">25 K</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(2400 > 0 )  updateArea(basetext,baseindex,2400,'landArea','Y',baseunit,'DrpDownTab1'); }
						</script>  
						<span id="landArea_span">2400</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>
											<td class="vat pl15px w175px">
													<div class="w150px imgWidth150 m0a" id="thumbContainer0" >
							<div class="ac lh0 mt10px">
							<a  data-fancybox="showZoomImage"  title="1 BHK Flats & Apartments for Rent in Koramangala, Bangalore South" href="https://rei.wlimg.com/prop_images/1046890/641198_2.jpg"><div class="imgWidth" style="background-image:url(https://rei.wlimg.com/prop_images/1046890/641198_2-350x350.jpg);background-size:cover;background-position:center;width:150px;height:150px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/1046890/641198_2-350x350.jpg"  alt="1 BHK Flats & Apartments for Rent in Koramangala, Bangalore South"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div></a>							</div>
							</div>
														<div class="w150px imgWidth150 m0a" id="thumbContainer1"  style="display:none;">
							<div class="ac lh0 mt10px">
							<a  data-fancybox="showZoomImage"  title="1 BHK Flats & Apartments for Rent in Koramangala, Bangalore South" href="https://rei.wlimg.com/prop_images/1046890/641198_1.jpg"><div class="imgWidth" style="background-image:url(https://rei.wlimg.com/prop_images/1046890/641198_1-350x350.jpg);background-size:cover;background-position:center;width:150px;height:150px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/1046890/641198_1-350x350.jpg"  alt="1 BHK Flats & Apartments for Rent in Koramangala, Bangalore South"  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; 
														<a href="javascript:void(0);" class="bdr dib w15px" onclick="imgDisplay('1')" title="">2</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>Property Age :</b> New Construction</li>
																<li class="p2px"><b>Furnishing :</b> Furnished</li>
																<li class="p2px"><b>Bedrooms :</b> 1</li>
																<li class="p2px"><b>Bathrooms :</b> 1</li>
																<li class="p2px"><b>No. of Floors :</b> 4</li>
																<li class="p2px"><b>Property On Floor :</b> 2</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-pb" title="Power Back Up"></i> Power Back Up</li>
														<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-lf" title="Lift"></i> Lift</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>
														<li class="p2px vat"><i class="si w24px icon-ms" title="Maintenance Staff"></i> Maintenance Staff</li>
														<li class="p2px vat"><i class="si w24px icon-pk" title="Park"></i> Park</li>
													</ul>
			            <p class="cb"></p>
			        	<br>
			        								<div class="bdrB xxlarge b dif lh14em mb7px">Property Address</div>
							<p>Koramangala, Bylahalli, Bangalore, Bangalore, Karnataka</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=~~Koramangala~~Bangalore~~Karnataka, Bylahalli,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. Kumar 								</td>
								</tr>
																<tr>
								<td class="ar b p5px">Mobile :</td>
								<td  class="p5px">
								+91-9611831007								</td>
								</tr>
																<tr>
								<td class="ar b p5px">Contact Address :</td>
								<td  class="p5px">
								Kormangala Indranagar, Bylahalli, Bangalore, Karnataka, India								</td>
								</tr>
															</table>
													<form name="frmpropertydetail" method="post" action="http://www.bangaloreuptownproperty.com/property-inquiry.htm">
						<p class="p10px ac">
						<input type="hidden" name="enqtype" value="property" />
						<input type="hidden" name="subject" value="Inquiry For Property - 1 BHK Flats & Apartments for Rent in Koramangala, Bangalore South - REI641198" />
						<input class="button p5px10px b" type="submit" value="SEND ENQUIRY" />
						<input type="hidden" name="property_id" value="641198" />
						</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/1046890/636213_1-350x350.jpeg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/1046890/636213_1-350x350.jpeg"  alt="1 BHK Flats & Apartments for Rent in Koramangala, Bangalore South"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.bangaloreuptownproperty.com/rent/1-bhk-flats-apartments-koramangala-bangalore-south_636213.htm" title="1 BHK Flats & Apartments for Rent in Koramangala, Bangalore South" class="dif b">1 BHK Flats & Apartments for Rent in Koramangala, Bangalore South</a></p>
							<p class="mb5px"> (Bylahalli, Bangalore/Bangalore)   Area: 900 Sq.ft. / 1200 Sq.ft. | 1 Bedrooms | 1 Floor | 1 Bathrooms | 15 K</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/1046890/663921_1-350x350.jpg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/1046890/663921_1-350x350.jpg"  alt="2 BHK Flats & Apartments for Rent in Koramangala, Bangalore"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.bangaloreuptownproperty.com/rent/2-bhk-flats-apartments-koramangala-bangalore_663921.htm" title="2 BHK Flats & Apartments for Rent in Koramangala, Bangalore" class="dif b">2 BHK Flats & Apartments for Rent in Koramangala, Bangalore</a></p>
							<p class="mb5px"> (Bylahalli, Bangalore/Bangalore)  650 Sq.ft. | 2 Bedrooms | 1 Bathrooms | 16 K</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/1046890/663922_1-350x350.jpg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/1046890/663922_1-350x350.jpg"  alt="2 BHK Flats & Apartments for Rent in Koramangala, Bangalore"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.bangaloreuptownproperty.com/rent/2-bhk-flats-apartments-koramangala-bangalore_663922.htm" title="2 BHK Flats & Apartments for Rent in Koramangala, Bangalore" class="dif b">2 BHK Flats & Apartments for Rent in Koramangala, Bangalore</a></p>
							<p class="mb5px"> (Bylahalli, Bangalore/Bangalore)  3000 Sq.ft. | 2 Bedrooms | 2 Floor | 2 Bathrooms | 25 K</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/1046890/672264_1-350x350.jpg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/1046890/672264_1-350x350.jpg"  alt="3 BHK Individual House for Rent in Koramangala, Bangalore"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.bangaloreuptownproperty.com/rent/3-bhk-individual-houses-villas-koramangala-bangalore_672264.htm" title="3 BHK Individual House for Rent in Koramangala, Bangalore" class="dif b">3 BHK Individual House for Rent in Koramangala, Bangalore</a></p>
							<p class="mb5px"> (Bylahalli, Bangalore/Bangalore)  2000 Sq.ft. | 3 Bedrooms | 5 Bathrooms | 45 K</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/1046890/636218_2-350x350.jpg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/1046890/636218_2-350x350.jpg"  alt="2 BHK Flats & Apartments for Rent in Koramangala, Bangalore South"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.bangaloreuptownproperty.com/rent/2-bhk-flats-apartments-koramangala-bangalore-south_636218.htm" title="2 BHK Flats & Apartments for Rent in Koramangala, Bangalore South" class="dif b">2 BHK Flats & Apartments for Rent in Koramangala, Bangalore South</a></p>
							<p class="mb5px"> (Bylahalli, Bangalore/Bangalore)   Area: 1200 Sq.ft. / 1250 Sq.ft. | 2 Bedrooms | 1 Floor | 2 Bathrooms | 27 K</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/1046890/636217_1-350x350.jpeg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/1046890/636217_1-350x350.jpeg"  alt="3 BHK Flats & Apartments for Rent in Koramangala, Bangalore South"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.bangaloreuptownproperty.com/rent/3-bhk-flats-apartments-koramangala-bangalore-south_636217.htm" title="3 BHK Flats & Apartments for Rent in Koramangala, Bangalore South" class="dif b">3 BHK Flats & Apartments for Rent in Koramangala, Bangalore South</a></p>
							<p class="mb5px"> (Bylahalli, Bangalore/Bangalore)   Area: 2400 Sq.ft. / 1250 Sq.ft. | 3 Bedrooms | 2 Floor | 3 Bathrooms | 35 K</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:65:"1 BHK Flats & Apartments for Rent in Koramangala, Bangalore South";i:2;s:249:"Property for Rent in Bylahalli, Bangalore, Karnataka, 1 Bedrooms, 1 Bath Rooms, 4 Total Floor Flats & Apartments in Bylahalli, Bangalore, Karnataka, Bangalore Uptown Property deal in all type of Flats & Apartments in Bylahalli, Bangalore, Karnataka.";i:3;s:249:"Property for Rent in Bylahalli, Bangalore, Karnataka, 1 Bedrooms, 1 Bath Rooms, 4 Total Floor Flats & Apartments in Bylahalli, Bangalore, Karnataka, Bangalore Uptown Property deal in all type of Flats & Apartments in Bylahalli, Bangalore, Karnataka.";}