var searchWait=300,site=null,search=null,utils=null,yamap=null,flats=null,lmarks=null;
(function($){site={specButtonTimeout:1E4,specButtonTimer:null,panel:null,panelHeight:0,init:function(opts){for(opt in opts)this[opt]=opts[opt];$("ul.select li.active a").click(function(){var p=$(this).parent().parent();if(p.hasClass("active"))p.removeClass("active").children("li:not(.active)").hide();else p.addClass("active").children().show();return false});$(".aside a.button").click(function(){if($(this).hasClass("active")){$(this).parent().animate({width:0},function(){$(this).children(".wrapper").hide()});
$(this).removeClass("active");return false}var w=$(this).parent().children(".wrapper").width()+40;var h=$(this).parent().children(".wrapper").height()+5;$(this).parent().css({height:h}).animate({width:w},function(){$(this).children("div").fadeIn();$(this).removeAttr("style")});$(this).addClass("active");return false});$(".aside a.button").hover(function(){clearTimeout(site.specButtonTimer);$(this).removeAttr("style");return true});this.specButtonTimer=setTimeout(function(){site.specButton(10)},this.specButtonTimeout);
this.panel=$("#panel-wrapper");this.panelHeight=this.panel.height();if(this.panel.length){$(window).scroll(function(){if($(window).scrollTop()){var sm=site.panelHeight-$(window).scrollTop();if(sm<0)sm=0;site.panel.css({height:sm});site.panel.children().css({height:sm-7,overflow:"hidden"});site.panel.prev().children("h4").css({cursor:"pointer"}).unbind().click(function(){site.panel.animate({height:site.panelHeight},function(){site.panel.children().removeAttr("style");site.panel.prev().children("h4").unbind().click(function(){$(window).scroll()})})}).children().css({cursor:"pointer"})}else{site.panel.css({height:site.panelHeight});
site.panel.children().removeAttr("style");site.panel.prev().removeAttr("style").unbind().children().removeAttr("style")}});$(window).resize(function(){site.panel.parent().css({position:"fixed",left:site.panel.parent().parent().offset().left+site.panel.parent().parent().width()-site.panel.parent().width(),overflow:"hidden"});if(search&&search.flatsContainer)if($(window).width()>1500){var css={width:1500,marginLeft:-250};search.flatsContainer.css(css)}else search.flatsContainer.attr("style",search.flatsContainer.css("display")==
"none"?"display:none":"");yamap.resize()});$(window).resize();$(document).click(function(e){if(!($(e.target).attr("id")=="site-menu"||$(e.target).parents("#site-menu").length))site.hideMenu()});this.panel.parent().find("h4").children("a.js").click(function(){if($(this).hasClass("exit"))return true;if($(this).hasClass("active")){$(this).parent().click();return false}site.panel.animate({height:site.panelHeight});var act=$(this).parent().children(".active").removeClass("active");$(this).addClass("active");
site.panel.parent().find(act.attr("data-target")).removeClass("active");site.panel.parent().find($(this).attr("data-target")).fadeIn(function(){$(this).addClass("active");var blk=$(this);$(this).removeAttr("style")});return false})}$('.gallery a[data-group="fancy"]').attr("rel","fancy").fancybox(site.fancy());$('.gallery a[data-group="fancy-print"]').attr("rel","fancy-print").fancybox(site.fancy({onComplete:function(){var out=$("#fancybox-outer"),a=out.children("a.print"),link=$("#fancybox-content img").attr("src");
if(a.length)a.attr({href:link});else $("#fancybox-outer").append(a=$('<a class="print" target="_blank">\u0412\u0435\u0440\u0441\u0438\u044f \u0434\u043b\u044f \u043f\u0435\u0447\u0430\u0442\u0438</a>').attr({href:link}));a.css({left:(out.width()-a.width())/2-8})}}));$("ul.gallery + a.js").click(function(){if($(this).hasClass("a"))$(this).removeClass("a").prev().children(".hidden").fadeOut();else $(this).addClass("a").prev().children(".hidden").fadeIn();var atext=$(this).text();$(this).text($(this).attr("data-atext")).attr("data-atext",
atext);return false});$("a.fancy").each(function(){var options={onComplete:function(){var form=$("#fancybox-content form");form.addClass("ajax");site.initForm(form)}};if($(this).attr("data-target"))options.content=$("#"+$(this).attr("data-target"));$(this).fancybox(site.fancy(options))});$(document).keyup(function(e){if((e.keyCode==113||e.keyCode==117)&&!$("a.exit").length)$("#footer").append($('<a href="/login/" class="login"></a>').fancybox(site.fancy({onComplete:function(){$("#fancybox-content input:first").focus()}})).click())});
$(".article .price span, .gallery .price span, .aside .price span").each(function(){if(!($(this).hasClass("night")||$(this).hasClass("grey"))){var price=parseInt($(this).text());$(this).addClass(flats.getPriceClass(price))}});$("tbody").each(function(){$(this).children("tr:even").addClass("g")});$("a.out").attr("target","_blank");if(!site.yakey)$("a.open-map").hide();else $("a.open-map").each(function(){site.initMapLink($(this))});var mapContainer=$("div.map");if(mapContainer.length){yamap.container=
mapContainer.attr({id:"map-container"});yamap.fullScreen=1;mapContainer.after($('<div id="flats" style="display:none" data-price="0"></div>'));search.hideNav=true;search.initFlats();yamap.load()}$("#content form").submit(function(){return site.formSubmit($(this))});$(".more-flats > a, a.popup-menu").click(function(){site.showMenu($(this),$(this).next().clone());return false});$("a[data-action=silentPhones]").click(function(){$(this).remove()});this.rotateWidgets(true);$("div.social:first").show();
if(typeof $.fn.favorite!="undefined")$("#slogan .favorite").favorite()},hideMenu:function(){$("#site-menu").fadeOut();return false},showMenu:function(obj,menu){var l=obj.offset().left,mcont;menu.removeAttr("class");if($("#site-menu").length)$("#site-menu").remove();$("#footer").after(mcont=$('<div id="site-menu"></div>').append($('<a class="close">\u00d7</a>')).prepend(menu));$("#site-menu .close").click(site.hideMenu);if($(window).width()-l<mcont.width()+65)l=$(window).width()-(mcont.width()+65);
mcont.css({left:l,top:obj.offset().top}).fadeIn("fast");return false},initMapLink:function(obj){var coords=obj.attr("data-point").split(",");obj.fancybox(site.fancy({content:'<div class="map" id="map-popup"></div>',onComplete:function(){yamap.destruct();if(obj.hasClass("flats")&&!$("#flats").length){$("#fancybox-content > div").append($('<div id="flats"></div>').hide());search.initFlats()}else yamap.flats=false;yamap.container=$("#fancybox-content div.map");yamap.lng=parseFloat(coords[0]);yamap.lat=
parseFloat(coords[1]);yamap.zoom=16;yamap.load();var showMap=function(){if(!yamap.active){setTimeout(showMap,100);return}var cls=obj.attr("data-class");if(!cls)cls="violet";var placemark=new YMaps.Placemark(new YMaps.GeoPoint(yamap.lng,yamap.lat),{style:"plain#"+cls+"Point",hasBalloon:false,draggable:true,zIndex:YMaps.ZIndex.OVERLAY_HOVER});YMaps.Events.observe(placemark,placemark.Events.DragEnd,function(){this.setGeoPoint(new YMaps.GeoPoint(yamap.lng,yamap.lat))},placemark);placemark.setIconContent(obj.parent().children("span").text());
yamap.map.addOverlay(placemark);if(yamap.flats){var i,ids=[];for(i in flats.get())ids.push(i);yamap.show(ids)}yamap.map.redraw()};showMap()},onClosed:function(){yamap.destruct()}}))},initForm:function(form){form.submit(function(){return site.formSubmit(form)}).find("input.date").datepicker();return this},formSubmit:function(form){var errors=false;form.find("label").each(function(){var field=$(this).next("input, textarea");if($(this).hasClass("required")&&(!field.val()||field.val()==field.attr("placeholder"))){field.unbind("keyup").keyup(function(){if($(this).val())$(this).prev().removeClass("error");
else $(this).prev().addClass("error")}).prev().addClass("error");errors=true}else if($(this).attr("data-validation"))$.post(form.attr("action"),"value="+field.val()+"&field="+field.attr("name"),function(data){if(data){errors=true;field.keyup(function(){$(this).prev().removeClass("error");$(this).unbind("keyup")}).prev().addClass("error").children("small").html(data)}})});if(errors)return false;if(form.hasClass("ajax")){site.showLoader();var container=form.parent();$.post(form.attr("action"),form.serialize(),
function(data){container.html(data);form=container.children("form");if(form.lenght){form.addClass("ajax");site.initForm(form)}site.hideLoader()});return false}return true},pageNav:function(){$(document).bind("keydown.fb",function(e){if(e.target.tagName==="INPUT"||e.target.tagName==="TEXTAREA"&&e.target.tagName==="SELECT")return true;var p={};if(e.keyCode==37)p=$(".pages").children("a.active").prev("a");else if(e.keyCode==39)p=$(".pages").children("a.active").next("a");if(p.length)p.click();return true})},
specButton:function(dw){w=32;l=-40;$(".aside a.button").animate({width:w+dw,left:l-dw},dw*10,function(){$(this).animate({width:w,left:l},dw*10);if(1<dw)site.specButtonTimer=setTimeout(function(){site.specButton(dw/2)},dw);else site.specButtonTimer=setTimeout(function(){site.specButton(10)},site.specButtonTimeout*2)})},fancy:function(params){var fancy={autoScale:true,centerOnScroll:true,transitionIn:"elastic",transitionOut:"elastic",onComplete:function(){$("#fancybox-content .close").click(function(){$.fancybox.close();
return false})},overlayShow:true};if(typeof params!="undefined")for(p in params)fancy[p]=params[p];return fancy},showLoader:function(container,style){$.fancybox.showActivity()},hideLoader:function(){$.fancybox.hideActivity()},rotateWidgets:function(random){$(".widgets-group").each(function(){var act=$(this).children(".active");if(act.length)if(random){var i=Math.floor(Math.random()*11%$(this).children().length);act.removeClass("active");$($(this).children()[i]).addClass("active")}else{act.removeClass("active");
if(act.next().length)act.next().addClass("active");else $(this).children(":first").addClass("active")}})}};yamap={active:false,script:false,errormsg:"",map:null,container:null,lng:0,lat:0,zoom:0,flatIds:null,collection:null,overlay:null,flats:true,showFlats:false,fullScreen:0,minimap:true,fButton:null,landmarks:true,lOverlay:null,lButton:null,loadScript:function(callback){$.getScript("http://api-maps.yandex.ru/1.1/index.xml?loadByRequire=1&key="+site.yakey+"&onerror=yamap.error",function(){yamap.script=
true;callback()})},load:function(){yamap.container.show();if(yamap.active)return;site.showLoader();if(!yamap.script){yamap.loadScript(yamap.load);return}if(typeof YMaps=="undefined"&&!yamap.errormsg)yamap.errormsg="\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c API \u043a\u0430\u0440\u0442. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443.";
if(yamap.errormsg){yamap.container.html('<div class="clear"><p class="align-center">'+yamap.errormsg+"</p></div>");site.hideLoader();return}YMaps.load(["plainstyle"],function(){yamap.init()})},init:function(){if(this.map)return this.show(null);if(!this.lng)this.lng=site.mapLng;if(!this.lat)this.lat=site.mapLat;this.map=new YMaps.Map("#"+$(this.container).attr("id"));this.map.setCenter(new YMaps.GeoPoint(this.lng,this.lat),this.zoom);function Button(optionsOff,optionsOn,actionOn,actionOff){var b=new YMaps.ToolBarToggleButton(optionsOff);
YMaps.Events.observe(b,b.Events.Select,function(){actionOn();if(optionsOn)this.setContent(optionsOn)},b);YMaps.Events.observe(b,b.Events.Deselect,function(){actionOff();this.setContent(optionsOff)},b);return b}this.map.addControl(new YMaps.TypeControl);var tb=new YMaps.ToolBar,lb=null;this.map.addControl(tb);this.map.addControl(new YMaps.Zoom);if(this.minimap){this.minimap=new YMaps.MiniMap;this.map.addControl(this.minimap)}this.map.addControl(new YMaps.ScaleLine);this.map.enableScrollZoom();if(this.fullScreen)tb.add(this.fButton=
new Button({icon:"/themes/default/img/fscr-up.png",width:18,hint:"\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043a\u0430\u0440\u0442\u0443 \u043d\u0430 \u0432\u0435\u0441\u044c \u044d\u043a\u0440\u0430\u043d"},{icon:"/themes/default/img/fscr-down.png",width:18,hint:"\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043a\u0430\u0440\u0442\u0443"},function(){yamap.expand();yamap.fullScreen=2},function(){yamap.container.removeAttr("style");yamap.fullScreen=1;$(window).resize()}));
if(this.landmarks)this.map.addControl(new YMaps.ToolBar(this.lButton=new Button({caption:"\u041e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u044b"},null,yamap.showLandmarks,yamap.hideLandmarks)),new YMaps.ControlPosition(YMaps.ControlPosition.TOP_RIGHT,new YMaps.Point(5,37)));if(this.flats){this.collection=[],this.flatIds=[];var fls=flats.get();for(i in fls){var placemark=new YMaps.Placemark(new YMaps.GeoPoint(fls[i][8][0],fls[i][8][1]));if(flats.active){var fobj=$("#flat-"+i);var cls=flats.getPriceClass(fls[i][2][0]);
placemark.fidx=i;placemark.setOptions({style:"plain#"+cls+"Point"});placemark.setIconContent(fls[i][4][0].toString()[0]);YMaps.Events.observe(placemark,placemark.Events.BalloonOpen,function(){var fobj=$("#flat-"+this.fidx).clone();fobj.find("a").each(function(){$(this).removeClass("js");if($(this).attr("href")==document.location.pathname)$(this).removeAttr("href").addClass("inactive")});search.showFlat(fobj);this.setBalloonContent('<div class="flat">'+fobj.html()+"</div>")},placemark)}else{placemark.name=
'<a href="'+fls[i][0]+'/">'+fls[i][7]+"</a>";placemark.description='<a href="'+site.usersUrl+flats.getUser(fls[i][1])[0]+'/">'+flats.getUser(fls[i][1])[1]+"</a>";placemark.setOptions({style:"plain#whitePoint"})}this.collection.push(placemark)}if(this.showFlats)this.show(flats.find(search))}YMaps.Events.observe(this.map,this.map.Events.Click,function(){this.closeBalloon()},this.map);this.active=true;site.hideLoader();return this},show:function(ids){if(ids)this.flatIds=ids;if(!(this.collection&&this.flatIds))return this;
var overlay=new YMaps.GeoObjectCollection,fls=flats.get(),lng={min:fls[0][8][0],max:0},lat={min:fls[0][8][1],max:0},j;for(var i=0;i<this.flatIds.length;i++){j=this.flatIds[i];if(fls[j][8][0]){overlay.add(this.collection[j]);if(!lng.min||lng.min>fls[j][8][0])lng.min=fls[j][8][0];if(lng.max<fls[j][8][0])lng.max=fls[j][8][0];if(!lat.min||lat.min>fls[j][8][1])lat.min=fls[j][8][1];if(lat.max<fls[j][8][1])lat.max=fls[j][8][1]}}if(this.overlay)this.map.removeOverlay(this.overlay);this.overlay=overlay;this.map.addOverlay(this.overlay);
if(!this.zoom)if(i==1)this.map.setCenter(this.collection[j].getGeoPoint(),16);else this.map.setBounds(new YMaps.GeoBounds(new YMaps.GeoPoint(lng.min,lat.min),new YMaps.GeoPoint(lng.max,lat.max)));return this},toggleLandmarks:function(){if(this.lButton)map.Events.notify(this.lButton,"click");return this},showLandmarks:function(){if(lmarks===null){search.loadLandmarks(yamap.showLandmarks);return yamap}var lms=lmarks.get(),i,objManager=new YMaps.ObjectManager;for(i in lms){var placemark=new YMaps.Placemark(new YMaps.GeoPoint(lms[i][1],
lms[i][2]));var title=lms[i][4]?'<a href="/'+lms[i][4]+'/">'+lms[i][3]+"</a>":lms[i][3],img=lms[i][5]?'<p><img src="'+site.imagesPath+lms[i][5]+'" alt=""></p>':"";placemark.bc='<div class="align-center"><strong>'+title+"</strong><br />"+img+"</div>";YMaps.Events.observe(placemark,placemark.Events.BalloonOpen,function(){this.setBalloonContent(this.bc)},placemark);placemark.setOptions({style:"plain#lightbluePoint"});placemark.setIconContent('<img src="/themes/default/img/icons/'+(lms[i][6]?lms[i][6]:
"default")+'.png" alt="">');objManager.add(placemark,lms[i][7]?lms[i][7]:15,17)}yamap.lOverlay=objManager;yamap.map.addOverlay(yamap.lOverlay);return yamap},hideLandmarks:function(){yamap.map.removeOverlay(yamap.lOverlay);return yamap},addPlacemark:function(style){this.map.addOverlay(new YMaps.Placemark(new YMaps.GeoPoint(this.lng,this.lat),style))},append:function(id){this.container.appendTo("#"+id)},error:function(e){this.errormsg=e},resize:function(){if(!(this.container&&this.fullScreen))return;
if($(window).width()>1500)if(this.fullScreen==2)this.container.css({width:$(window).width(),height:$(window).height()});else this.container.css({width:1500,height:$(window).height()-235-yamap.container.position().top,marginLeft:-250});else if(yamap.fullScreen!=2)this.container.attr("style",yamap.container.css("display")=="none"?"display:none":"")},toggleFullScreen:function(){if(this.fButton)map.Events.notify(this.fButton,"click");return this},expand:function(){$("#content").css({height:1,overflow:"hidden"});
this.container.css({position:"fixed",width:$(document).width(),height:$(window).height(),top:0,left:0,margin:0});$("#content").removeAttr("style");this.map.redraw();return this},destruct:function(){if(this.map)this.map.destructor();this.collection=null;this.flatIds=null;this.lng=0;this.lat=0;this.zoom=0;this.fullScreen=0;this.map=null;this.active=false;this.flats=true}};utils={cnt2str:function(cnt){cnt=parseInt(cnt);cnt=cnt<1?1:cnt;return cnt<8?this.cnts[--cnt]:cnt+"-"},setCookie:function(name,value,
days){if(typeof days=="undefined")days=0;else{var date=new Date;date.setDate(date.getDate()+days)}value=escape(value)+(days?";expires="+date.toUTCString():"");document.cookie=name+"="+value+";path=/"},getCookie:function(name){var i,cname,cvalue,ac=document.cookie.split(";");for(i=0;i<ac.length;i++){cname=ac[i].substr(0,ac[i].indexOf("="));cvalue=ac[i].substr(ac[i].indexOf("=")+1);cname=cname.replace(/^\s+|\s+$/g,"");if(cname==name)return unescape(cvalue)}return null},shuffle:function(arr){for(var j,
x,i=arr.length;i;j=parseInt(Math.random()*i),x=arr[--i],arr[i]=arr[j],arr[j]=x);return arr},uniq:function(arr){arr.sort();for(var res=[arr[0]],i=1;i<arr.length;i++)if(arr[i]!=arr[i-1])res.push(arr[i]);return res},defaultValueFocus:function(obj){obj.addClass("active");if(obj.val()==obj.attr("placeholder"))obj.val("")},defaultValueBlur:function(obj){obj.removeClass("active");if(!obj.val()&&obj.attr("type")!="search")obj.val(obj.attr("placeholder"))},acRequest:function(request,response){var term=request.term;
if(term in utils.acCache){response(utils.acCache[term]);return}var url="?r=place/landmark&str="+term;lastXhr=$.getJSON(url,request,function(data,status,xhr){utils.acCache[term]=data;if(xhr===lastXhr)response(data)})},addFilter:function(inp,msg){if(inp.val()&&inp.val()!=inp.attr("placeholder")){this.filter.value=inp.val();if(this.filter.timer)clearTimeout(this.filter.timer);this.filter.target=inp.parent().parent();this.filter.timer=setTimeout(function(){utils.filter.target.find("h3").addClass("hidden");
utils.filter.target.find("li").each(function(){var v=new RegExp(utils.filter.value,"i");if(!v.test($(this).children("a").text()))$(this).addClass("hidden");else $(this).removeClass("hidden")});utils.filter.target.children(".content").children("p.comment").remove();if(!utils.filter.target.find("li:not(.hidden)").length)utils.filter.target.children(".content").append('<p class="comment">'+msg+"</p>")},this.filter.timeout)}else if(this.filter.target){clearTimeout(this.filter.timer);utils.filter.target.children(".content").children("p.comment").remove();
this.filter.target.find("li,h3").removeClass("hidden")}},addClearLinkAfter:function(obj,tgt){obj.parent().find("a.clear").remove();obj.after($('<a href="#" class="clear" data-target="'+tgt+'">\u00d7</a>').click(function(){var target=$(this).attr("data-target");search[target]=[];search.ready();$(this).prev().html("&nbsp;");$(this).remove()}))},getInputType:function(type){var i=document.createElement("input");i.setAttribute("type",type);return i.type},sk:function(num,sk0,sk1,sk2){var m10=num%10;if(m10==
0||m10>4||num>10&&num<20)return sk0;if(m10==1)return sk1;return sk2},cnts:["\u043e\u0434\u043d\u043e","\u0434\u0432\u0443\u0445","\u0442\u0440\u0451\u0445","\u0447\u0435\u0442\u044b\u0440\u0451\u0445","\u043f\u044f\u0442\u0438","\u0448\u0435\u0441\u0442\u0438","\u0441\u0435\u043c\u0438"],lastXhr:null,acCache:{},filter:{timer:null,timeout:300,target:null,value:""}};$(function(){site.init(siteOptions)});$.fn.defaultValueToggle=function(){$(this).attr("placeholder",$(this).val());if($(this).attr("type")==
"search")$(this).val("");$(this).focus(function(){utils.defaultValueFocus($(this))});$(this).blur(function(){utils.defaultValueBlur($(this))});return $(this)}})(jQuery);
