a:4:{i:0;s:18879:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>2 BHK Flats & Apartments For Rent In Omicron 1, Greater Noida</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.manglampropmart.in/" title="Home">Home</a>
						
						<b class="ffv p2px">&rsaquo;</b><a href="http://www.manglampropmart.in/property-in-greater-noida.htm" title="Property in Greater Noida">Greater Noida</a><b class="ffv p2px">&rsaquo;</b><a href="http://www.manglampropmart.in/property-for-rent-in-omicron-1-greater-noida.htm" title="Property for Rent in Omicron 1, Greater Noida">Omicron 1</a>											
						<b class="ffv p2px">&rsaquo;</b> 2 BHK Flats & Apartments For Rent In Omicron 1, Greater Noida</p>
						</div>
						</div>
						</section>
											<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-->
										<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">
						<img  alt="Coming Soon Property" src="https://static.realestateindia.com/images/no_image.jpg" width="" height="" />						</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">omicron 1 gr noida, Omicron 1, Greater Noida							<br>
							<span class="gray">By Mangalam propmart</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=Gaur Atulyam~~Omicron 1~~Greater Noida~~Uttar Pradesh&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">11 K</span></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">REI850693</p>
						</li>
												<li>
						<p class="fl w130px">Property For</p>
						<p class="fl mr30px">:</p>
						<p class="ofh b">Rent</p>
						</li>
														<li>
								<p class="fl w130px">Society Name</p>
								<p class="fl mr30px">:</p>
								<p class="ofh b">Gaur Atulyam</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(1046 > 0 )  updateArea(basetext,baseindex,1046,'builtupArea','Y',baseunit,'DrpDownTab');   }
						</script>  
						<span id="builtupArea_span">1046</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(1046 > 0 )  updateArea(basetext,baseindex,1046,'landArea','Y',baseunit,'DrpDownTab1'); }
						</script>  
						<span id="landArea_span">1046</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>
						
					</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>Bedrooms :</b> 2</li>
																<li><b>Bathrooms :</b> 2</li>
																<li><b>Property On Floor :</b> 7</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-rp" title="Reserved Parking"></i> Reserved Parking</li>
														<li><i class="si w24px icon-pb" title="Power Back Up"></i> Power Back Up</li>
														<li><i class="si w24px icon-fa" title="Security"></i> Security</li>
														<li><i class="si w24px icon-lf" title="Lift"></i> Lift</li>
														<li><i class="si w24px icon-ccc" title="Club House"></i> Club House</li>
														<li><i class="si w24px icon-rain-water" title="Rain Water Harvesting"></i> Rain Water Harvesting</li>
														<li><i class="si w24px icon-security-fire-alarm" title="Security / Fire Alarm"></i> Security / Fire Alarm</li>
													</ul>
			            <p class="cb"></p>
			        	<br>
			        							<br />
						<div class="bdrB xxlarge b dif pb5px mt10px mb7px">Property Description </div>
						<p class="aj">flat on rent in gaur autylum on 7th floor ..having car parking facilites nd lift also there</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"> Sanjeev kumar singh </p>
					<p class="alpha75 mb5px">  </p>
					<p> <i class="fa xxxlarge vam mr5px fa-mobile" aria-hidden="true"></i> 9990167698 </p>
					</div>
		
					<div class="column_Box mc">
					<div class="tcl bullet divider">
					<div class="h h2"><b class="plusMinus"></b>
					<p class="b dif rHead">Property by City</p>
					</div>
					<div class="ic showHide_rp">
					<div class="mt10px">
											<span class="dib p5px10px c2px headVr mr7px mb7px "><a href="http://www.manglampropmart.in/property-in-greater-noida.htm" class="dif" title="Property in Greater Noida">Greater Noida</a> <b class="alpha50 bn small">(41)</b></span>
												<span class="dib p5px10px c2px headVr mr7px mb7px "><a href="http://www.manglampropmart.in/property-in-noida.htm" class="dif" title="Property in Noida">Noida</a> <b class="alpha50 bn small">(3)</b></span>
											
					</div>
					</div>
					</div>
					</div>
					
										
					</div>
					</div>
					
												<br />
							<br />
							<section><br/>
							<div class="wrap fullFormat">	
							<div class="xxxlarge b mb30px ac">Similar Property</div>
							<div class="cf_5img mt30px">
							<ul class="lsn m0px p0px fo idv_eqheight">						
															
								<li>
								<div class="data ac dib cp"  onclick="location.href='http://www.manglampropmart.in/rent/2-bhk-flats-apartments-alpha-ii-greater-noida_811282.htm'">
								<div class="w200px bdrB vam dtc" style="height:140px;"><img src="https://rei.wlimg.com/prop_images/1454024/811282_1-350x350.jpg"  alt="2 BHK Flat For Rent In Alpha 2, Greater Noida"  style="width:100%;height:140px;"  /></div>
								<div class="p10px al">
								<p class="b dif">2 BHK Flat For Rent In Al...</p>
								<p class="mt5px">Flats & Apartments</p>
								<p class="alpha75 mt5px">
								2 BHK / 1000 Sq. Meter								
								</p>    
								<p class="alpha75">Alpha II, Greater Noida</p>
								</div>
								</div>    
								</li>								
																
								<li>
								<div class="data ac dib cp"  onclick="location.href='http://www.manglampropmart.in/rent/industrial-land-plot-surajpur-site-c-industrial-greater-noida_846939.htm'">
								<div class="w200px bdrB vam dtc" style="height:140px;"><img  alt="Coming Soon Property" src="https://static.realestateindia.com/images/no_image_180.jpg" width="200" height="140" /></div>
								<div class="p10px al">
								<p class="b dif">Industrial Land / Plot fo...</p>
								<p class="mt5px">Industrial Land / Plot</p>
								<p class="alpha75 mt5px">
								1559 Sq.ft.								
								</p>    
								<p class="alpha75">Surajpur Site C Industrial, Greater Noida</p>
								</div>
								</div>    
								</li>								
																
								<li>
								<div class="data ac dib cp"  onclick="location.href='http://www.manglampropmart.in/rent/3-bhk-flats-apartments-alpha-ii-greater-noida_811283.htm'">
								<div class="w200px bdrB vam dtc" style="height:140px;"><img src="https://rei.wlimg.com/prop_images/1454024/811283_1-350x350.jpg"  alt="3 BHK Flat For Rent In Alpha 2, Greater Noida"  style="width:100%;height:140px;"  /></div>
								<div class="p10px al">
								<p class="b dif">3 BHK Flat For Rent In Al...</p>
								<p class="mt5px">Flats & Apartments</p>
								<p class="alpha75 mt5px">
								3 BHK / 1600 Sq. Meter								
								</p>    
								<p class="alpha75">Alpha II, Greater Noida</p>
								</div>
								</div>    
								</li>								
																
								<li>
								<div class="data ac dib cp"  onclick="location.href='http://www.manglampropmart.in/rent/3-bhk-flats-apartments-sector-zeta-1-greater-noida_850700.htm'">
								<div class="w200px bdrB vam dtc" style="height:140px;"><img  alt="Coming Soon Property" src="https://static.realestateindia.com/images/no_image_180.jpg" width="200" height="140" /></div>
								<div class="p10px al">
								<p class="b dif">flat</p>
								<p class="mt5px">Flats & Apartments</p>
								<p class="alpha75 mt5px">
								3 BHK / 1200 Sq.ft.								
								</p>    
								<p class="alpha75">Sector Zeta 1 Greater Noida</p>
								</div>
								</div>    
								</li>								
												
							</ul>
							</div>
							</div> 
							</section> 
												</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:61:"2 BHK Flats & Apartments for Rent in Omicron 1, Greater Noida";i:2;s:263:"Property for Rent in Omicron 1, Greater Noida, Uttar Pradesh, 2 Bedrooms, 2 Bath Rooms, 1046 Sq.ft. Flats & Apartments in Omicron 1, Greater Noida, Uttar Pradesh, Mangalam propmart deal in all type of Flats & Apartments in Omicron 1, Greater Noida, Uttar Pradesh.";i:3;s:263:"Property for Rent in Omicron 1, Greater Noida, Uttar Pradesh, 2 Bedrooms, 2 Bath Rooms, 1046 Sq.ft. Flats & Apartments in Omicron 1, Greater Noida, Uttar Pradesh, Mangalam propmart deal in all type of Flats & Apartments in Omicron 1, Greater Noida, Uttar Pradesh.";}