window.dhtmlHistory={isIE:false,isOpera:false,isSafari:false,isKonquerer:false,isGecko:false,isSupported:false,create:function(d){var g=this;var f=navigator.userAgent.toLowerCase();var a=navigator.platform.toLowerCase();var h=navigator.vendor||"";if(h==="KDE"){this.isKonqueror=true;this.isSupported=false}else{if(typeof window.opera!=="undefined"){this.isOpera=true;this.isSupported=true}else{if(typeof document.all!=="undefined"){this.isIE=true;this.isSupported=true}else{if(h.indexOf("Apple Computer, Inc.")>-1){this.isSafari=true;this.isSupported=(a.indexOf("mac")>-1)}else{if(f.indexOf("gecko")!=-1){this.isGecko=true;this.isSupported=true}}}}}window.historyStorage.setup(d);if(this.isSafari){this.createSafari()}else{if(this.isOpera){this.createOpera()}}var b=this.getCurrentLocation();this.currentLocation=b;if(this.isIE){this.createIE(b)}var e=function(){g.firstLoad=null};this.addEventListener(window,"unload",e);if(this.isIE){this.ignoreLocationChange=true}else{if(!historyStorage.hasKey(this.PAGELOADEDSTRING)){this.ignoreLocationChange=true;this.firstLoad=true;historyStorage.put(this.PAGELOADEDSTRING,true)}else{this.ignoreLocationChange=false;this.fireOnNewListener=true}}var c=function(){g.checkLocation()};setInterval(c,100)},initialize:function(){if(this.isIE){if(!historyStorage.hasKey(this.PAGELOADEDSTRING)){this.fireOnNewListener=false;this.firstLoad=true;historyStorage.put(this.PAGELOADEDSTRING,true)}else{this.fireOnNewListener=true;this.firstLoad=false}}},addListener:function(a){this.listener=a;if(this.fireOnNewListener){this.fireHistoryEvent(this.currentLocation);this.fireOnNewListener=false}},addEventListener:function(c,b,a){if(c.addEventListener){c.addEventListener(b,a,false)}else{if(c.attachEvent){c.attachEvent("on"+b,function(){a(window.event)})}}},add:function(c,d){if(this.isSafari){c=this.removeHash(c);historyStorage.put(c,d);this.currentLocation=c;window.location.hash=c;this.putSafariState(c)}else{var b=this;var a=function(){if(b.currentWaitTime>0){b.currentWaitTime=b.currentWaitTime-b.waitTime}c=b.removeHash(c);if(document.getElementById(c)&&b.debugMode){var f="Exception: History locations can not have the same value as _any_ IDs that might be in the document, due to a bug in IE; please ask the developer to choose a history location that does not match any HTML IDs in this document. The following ID is already taken and cannot be a location: "+c;throw new Error(f)}historyStorage.put(c,d);b.ignoreLocationChange=true;b.ieAtomicLocationChange=true;b.currentLocation=c;window.location.hash=c;if(b.isIE){b.iframe.src="/static/blank.html?"+c}b.ieAtomicLocationChange=false};window.setTimeout(a,this.currentWaitTime);this.currentWaitTime=this.currentWaitTime+this.waitTime}},isFirstLoad:function(){return this.firstLoad},getVersion:function(){return"0.6"},getCurrentLocation:function(){var a=(this.isSafari?this.getSafariState():this.getCurrentHash());return a},getCurrentHash:function(){var b=window.location.href;var a=b.indexOf("#");return(a>=0?b.substr(a+1):"")},PAGELOADEDSTRING:"DhtmlHistory_pageLoaded",listener:null,waitTime:200,currentWaitTime:0,currentLocation:null,iframe:null,safariHistoryStartPoint:null,safariStack:null,safariLength:null,ignoreLocationChange:null,fireOnNewListener:null,firstLoad:null,ieAtomicLocationChange:null,createIE:function(a){this.waitTime=400;var b=(historyStorage.debugMode?"width: 800px;height:80px;border:1px solid black;":historyStorage.hideStyles);var d="rshHistoryFrame";var c='<iframe frameborder="0" id="'+d+'" style="'+b+'" src="/static/blank.html?'+a+'"></iframe>';document.write(c);this.iframe=document.getElementById(d)},createOpera:function(){this.waitTime=400;var a='<img src="javascript:location.href=\'javascript:dhtmlHistory.checkLocation();\';" style="'+historyStorage.hideStyles+'" />';document.write(a)},createSafari:function(){var e="rshSafariForm";var d="rshSafariStack";var c="rshSafariLength";var b=historyStorage.debugMode?historyStorage.showStyles:historyStorage.hideStyles;var a=(historyStorage.debugMode?"width:800px;height:20px;border:1px solid black;margin:0;padding:0;":historyStorage.hideStyles);var f='<form id="'+e+'" style="'+b+'"><input type="text" style="'+a+'" id="'+d+'" value="[]"/><input type="text" style="'+a+'" id="'+c+'" value=""/></form>';document.write(f);this.safariStack=document.getElementById(d);this.safariLength=document.getElementById(c);if(!historyStorage.hasKey(this.PAGELOADEDSTRING)){this.safariHistoryStartPoint=history.length;this.safariLength.value=this.safariHistoryStartPoint}else{this.safariHistoryStartPoint=this.safariLength.value}},getSafariStack:function(){var a=this.safariStack.value;return historyStorage.fromJSON(a)},getSafariState:function(){var a=this.getSafariStack();var b=a[history.length-this.safariHistoryStartPoint-1];return b},putSafariState:function(b){var a=this.getSafariStack();a[history.length-this.safariHistoryStartPoint]=b;this.safariStack.value=historyStorage.toJSON(a)},fireHistoryEvent:function(a){var b=historyStorage.get(a);this.listener.call(null,a,b)},checkLocation:function(){if(!this.isIE&&this.ignoreLocationChange){this.ignoreLocationChange=false;return}if(!this.isIE&&this.ieAtomicLocationChange){return}var a=this.getCurrentLocation();if(a==this.currentLocation){return}this.ieAtomicLocationChange=true;if(this.isIE&&this.getIframeHash()!=a){this.iframe.src="/static/blank.html?"+a}else{if(this.isIE){return}}this.currentLocation=a;this.ieAtomicLocationChange=false;this.fireHistoryEvent(a)},getIframeHash:function(){var b=this.iframe.contentWindow.document;var a=String(b.location.search);if(a.length==1&&a.charAt(0)=="?"){a=""}else{if(a.length>=2&&a.charAt(0)=="?"){a=a.substring(1)}}return a},removeHash:function(b){var a;if(b===null||b===undefined){a=null}else{if(b===""){a=""}else{if(b.length==1&&b.charAt(0)=="#"){a=""}else{if(b.length>1&&b.charAt(0)=="#"){a=b.substring(1)}else{a=b}}}}return a},iframeLoaded:function(a){if(this.ignoreLocationChange){this.ignoreLocationChange=false;return}var b=String(a.search);if(b.length==1&&b.charAt(0)=="?"){b=""}else{if(b.length>=2&&b.charAt(0)=="?"){b=b.substring(1)}}window.location.hash=b;this.fireHistoryEvent(b)}};window.historyStorage={setup:function(b){if(typeof b!=="undefined"){if(b.debugMode){this.debugMode=b.debugMode}if(b.toJSON){this.toJSON=b.toJSON}if(b.fromJSON){this.fromJSON=b.fromJSON}}var d="rshStorageForm";var f="rshStorageField";var a=this.debugMode?historyStorage.showStyles:historyStorage.hideStyles;var e=(historyStorage.debugMode?"width: 800px;height:80px;border:1px solid black;":historyStorage.hideStyles);var c='<form id="'+d+'" style="'+a+'"><textarea id="'+f+'" style="'+e+'"></textarea></form>';document.write(c);this.storageField=document.getElementById(f);if(typeof window.opera!=="undefined"){this.storageField.focus()}},put:function(a,b){this.assertValidKey(a);if(this.hasKey(a)){this.remove(a)}this.storageHash[a]=b;this.saveHashTable()},get:function(a){this.assertValidKey(a);this.loadHashTable();var b=this.storageHash[a];if(b===undefined){b=null}return b},remove:function(a){this.assertValidKey(a);this.loadHashTable();delete this.storageHash[a];this.saveHashTable()},reset:function(){this.storageField.value="";this.storageHash={}},hasKey:function(a){this.assertValidKey(a);this.loadHashTable();return(typeof this.storageHash[a]!=="undefined")},isValidKey:function(a){return(typeof a==="string")},showStyles:"border:0;margin:0;padding:0;",hideStyles:"left:-1000px;top:-1000px;width:1px;height:1px;border:0;position:absolute;",debugMode:false,storageHash:{},hashLoaded:false,storageField:null,assertValidKey:function(a){var b=this.isValidKey(a);if(!b&&this.debugMode){throw new Error("Please provide a valid key for window.historyStorage. Invalid key = "+a+".")}},loadHashTable:function(){if(!this.hashLoaded){var a=this.storageField.value;if(a!==""&&a!==null){this.storageHash=this.fromJSON(a);this.hashLoaded=true}}},saveHashTable:function(){this.loadHashTable();var a=this.toJSON(this.storageHash);this.storageField.value=a},toJSON:function(a){return a.toJSONString()},fromJSON:function(a){return a.parseJSON()}};if(window.GControl){function IndicatorControl(){}IndicatorControl.prototype=new GControl();IndicatorControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(0,0))};IndicatorControl.prototype.initialize=function(a){this.searchResultsWord=Dic.word("searchResults");this.callersCount=0;this.searching=Builder.node("h3.loading",Dic.word("searching"));this.loadingMarkers=Builder.node("h3.loading",Dic.word("loadingMarkers"));this.nothingFound=Builder.node("h3.nothing",Dic.word("nothingFound"));this.resultHeader=Builder.node("h3",this.searchResultsWord);this.close=Builder.node("a",Dic.word("hide_search_results"));this.children=$A([this.searching,this.loadingMarkers,this.nothingFound]);this.container=Builder.node("div#map_messages",[this.resultHeader,this.close,this.searching,this.loadingMarkers,this.nothingFound]);this.hide();this.container.hide();[this.resultHeader,this.close].invoke("hide");a.getContainer().appendChild(this.container);GEvent.addDomListener(this.container,"click",(function(b){if(!Event.isLeftClick(b)){return}this.hideSearch();$("search_form").reset();window.Anchor.remove("search");window.map.setZoom(window.map.getZoom())}).bind(this));this.hide=this.hide.bind(this);this.show=this.show.bind(this);this.setResults=this.setResults.bind(this);return this.container};IndicatorControl.prototype.hide=function(a){a=a||this.callersCount;if(a!=this.callersCount){return}if(this.resultHeader.visible()){this.children.invoke("hide")}else{this.container.hide();this.children.invoke("hide")}};IndicatorControl.prototype.hideSearch=function(){[this.resultHeader,this.close].invoke("hide");this.hide()};IndicatorControl.prototype.disable=function(a){this.disabled=true};IndicatorControl.prototype.show=function(a){if(this.disabled){return}this.children.invoke("hide");if(this[a]&&this[a].show){this[a].show();this.container.show();return ++this.callersCount}};IndicatorControl.prototype.setResults=function(a){this.children.invoke("hide");this.show("resultHeader");this.resultHeader.show().update(this.searchResultsWord.format(a));this.close.show()};function MapTypeControl(){}MapTypeControl.prototype=new GControl();MapTypeControl.prototype.enableList=function(b){this.buttons.last().show().up().up().id="mapTypeControlsContainerLink";GEvent.addListener(map,"moveend",a);GEvent.addListener(map,"zoomend",a);var c=this.listLink,d=this.mapObject;function a(){var e={json:Object.toJSON($H(getGeoBox()))},f=window.location.href;f=f.replace(/\bplaces\b/,"places/search").replace(/\/fullscreen\/?/,"").replace(/\/map\/?/,"").replace(/#.*/,"").replace(/(\?|&)?json=[^&]/,"");f+=(f.match(/\?/)?"&":"?")+$H(e).toQueryString();c.href=f;if(window.location.href.match("fullscreen")){c.target="_blank"}}};MapTypeControl.prototype.initialize=function(a){var c=Builder.node("span",Dic.word("map")),e=Builder.node("span",Dic.word("yandex_map")),j=Builder.node("span",Dic.word("satellite")),k=this.listLink=Builder.node("a",Dic.word("list")),h=Builder.node("span",k).hide(),i=this.buttons=window.yandexMap?$A([c,e,j,h]):$A([c,j,h]);mapContainer=$("realMap");this.mapObject=a;var m=function(n){return function(o){var p;var q=c;switch(n){case G_NORMAL_MAP:p="normal";q=c;break;case G_HYBRID_MAP:p="satellite";q=j;break}Cookie.set("map",p);if(window.yandexMap){if(activeMapIsYandex()){l("hide")}if(g!=null){paintZoomers(f,g-1)}}a.setMapType(n);i.invoke("removeClassName","active");q.addClassName("active");loadMarkersData.ignore=1}};var f=window.yandexMap&&mapContainer.down(mapZoomControlsNode),g=null;GEvent.addListener(a,"maptypechanged",function(){var n=a.getCurrentMapType();var o=c;switch(n){case G_NORMAL_MAP:o=c;break;case G_HYBRID_MAP:o=j;break}i.invoke("removeClassName","active");o.addClassName("active")});var b=Builder.node("div",i);var d=Builder.node("div.mapTypeControlsContainer",Builder.node("div",i));GEvent.addDomListener(c,"click",m(G_NORMAL_MAP));GEvent.addDomListener(j,"click",m(G_HYBRID_MAP));window.yandexMap&&e.observe("click",function(o){if(!o.isLeftClick()){return}var n=activeMapIsYandex()?window.yandexMap.getZoom():0;if(mapContainer&&mapContainer.down(yandexMapNode)){var q=window.location.hash,p=q.substring(1).split(/&/);lng=q?parseFloat(p[2]):37.64,lat=q?parseFloat(p[1]):55.76,zoom=q?parseInt(p[3]):10;window.yandexMap.setCenter(new YMaps.GeoPoint(lng,lat),zoom);l("show")}else{initYandexMap()}i.invoke("removeClassName","active");this.addClassName("active");g=f.down(".active").previousSiblings().size();paintZoomers(f,16-(n||10))});function l(n){[mapContainer.down(yandexMapNode),mapContainer.down("div.YMaps-logo"),mapContainer.down("div.YMaps-copyrights")].invoke(n)}a.getContainer().appendChild(d);return d};MapTypeControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(5,5))};function MapZoomControl(a){this.zoomersCount=a}MapZoomControl.prototype=new GControl();MapZoomControl.prototype.initialize=function(a){var c=(this.zoomersCount!=undefined)?this.zoomersCount:16;var h={17:"house",15:"street",12:"rayon",8:"city",4:"country"};var j=$A();var i=18;c.times(function(k){var l=Builder.node("span.zoomer","".nbsp);if(h[i-k]){h[i-k]={node:Builder.node("span",Builder.node("span",Dic.word("map_zoomer_"+h[i-k]))),parent:l,text:h[i-k]}}GEvent.addDomListener(l,"click",function(){if(activeMapIsYandex()){window.yandexMap.setZoom(i-k-1)}else{a.setZoom(i-k)}});j.push(l)});var e=Builder.node("span.zoomIn","".nbsp);var f=Builder.node("span.zoomOut","".nbsp);var g=Builder.node("div",j);var b=Builder.node(mapZoomControlsNode,[e,g,f]);GEvent.addListener(a,"zoomend",function(){var l=a.getZoom();var k=0;var m="removeClassName";c.times(function(n){if(n+l>=i){m="addClassName"}j[n][m]("active")})});GEvent.addDomListener(e,"click",function(){d(1)});GEvent.addDomListener(f,"click",function(){d(-1)});function d(l){var k=activeMapIsYandex()?window.yandexMap:a;k.setZoom(k.getZoom()+l)}b.delayedHover(function(k){if(!h[17].node){return}$(h[17].node.parentNode)[k?"show":"hide"]();if(!k){return}h[17].node.parentNode.show();$H(h).each(function(l){l=l.value;var m=l.parent.cumulativeOffset();l.node.setStyle({position:"absolute",left:m[0]-70+"px",top:m[1]-5+"px"})})});(function(){document.body.appendChild(Builder.node("div.map_zoom_tooltips",$H(h).values().pluck("node")).hide())}).defer();a.getContainer().appendChild(b);return b};function paintZoomers(a,b,c){a.adjacent(".zoomer").each(function(e,d){e[(c?d>=b:d>b)?"addClassName":"removeClassName"]("active")})}MapZoomControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(5,38))};function MapDirectionsControl(){}MapDirectionsControl.prototype=new GControl();MapDirectionsControl.prototype.initialize=function(e){var d=Builder.node("a.button_green_xsm",Dic.word("map_create_route")),a=Builder.node("div.map_route",[Builder.node("div"),d]),b=$A([{domain:"framemsk",zoom:10,bounds:new GBounds([new GLatLng(55.547280698640805,37.231292724609375),new GLatLng(55.94458588614092,38.0181884765625)])}]);function c(){var f=map.getCenter(),h=map.getZoom(),g;if(g=b.find(function(i){return h>=i.zoom&&(i.bounds.containsPoint(f))})){a.show();d.href="/directions?clat="+f.lat()+"&clng="+f.lng()+"&mscale="+h+"&domain="+g.domain;if(window.location.href.match("fullscreen")){d.target="_blank"}}else{a.hide()}}GEvent.addListener(e,"dragend",c);GEvent.addListener(e,"zoomend",c);e.getContainer().appendChild(a);return a};MapDirectionsControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(window.yandexMap?248:208,5))}}if(window.GOverlay){function MTMarkerProto(a){var b=new GOverlay();b.markerType=a;b.zIndex=0;b.initialize=function(c){this.map=c};b.getLatLng=b.getPoint=function(){return this.center};b.setLatLng=b.setPoint=function(c){this.center=c;return this};b.getKey=function(){return this.id};b.copy=function(){return new window[a](this.center,this.name)};b.append=function(){this.map.getPane(G_MAP_MARKER_PANE).appendChild(this.div)};b.remove=function(){if(this.div.parentNode){this.div.remove()}if(this.completedSizes){delete this.completedSizes.l}};b.makeClickable=function(){this.div.observe("click",function(c){if(!c.isLeftClick()){return}var h=c.findElement(".overlay"),j=h.up("div").up("div");var i=parseFloat(j.style.top)+parseFloat(h.style.top),g=parseFloat(j.style.left)+parseFloat(h.style.left),l=window.type=="people"?192:208,d=509,k=10,m=362,f=i-l<0?i-l:(i>d?i-d:0),e=g-k<0?g-k:(g>m?g-m:0);if(f!=0||e!=0){this.map.panBy(new GSize(-e,-f))}this.setSize("l")}.bind(this))};b.realMouseClick=function(){var c=true;function d(){c=false}$(this.div).observe("mousedown",function(){c=true;document.observe("mousemove",d)});this.div.observe("click",function(e){e.stop();document.stopObserving("mousemove",d);if(c){Event.fire.delay(0,e.element(),"mouse:click")}})};b.makeHoverable=function(){return this.div.delayedHover(function(c){if(this.size=="l"){return}this.setSize(c?"m":"s")}.bind(this))};b.checkZeroHeight=function(c){if(!c){setTimeout(function(){this.redraw(true)}.bind(this),20)}};b.raise=function(c){if(c==undefined){c=true}if(!this.div.parentNode){return}this.div.style.zIndex=this.div.parentNode.style.zIndex*2+b.zIndex++};b.setSize=function(c,d){if(!d&&this.props.unresizable){return}if(c=="l"){window.map.infoWindow(this)}this.size=c;this.redraw(true)};b.redraw=function(d){if(!d){return}var c=this.map.fromLatLngToDivPixel(this.center);this.div.style.left=c.x+"px";this.div.style.top=c.y+"px"};return b}function PersonChatMarker(a,b){this.center=a;this.id=b.id;this.props=b}PersonChatMarker.prototype=MTMarkerProto("PersonChatMarker");PersonChatMarker.prototype.initialize=function(a){this.map=a};PersonChatMarker.prototype.getDom=function(a){this.div=$(a)};PersonChatMarker.prototype.redraw=function(b){if(!b){return}if(!this.div){return}var a=this.map.fromLatLngToDivPixel(this.center);this.div.style.left=a.x-12+"px";this.div.style.top=a.y-12+"px"};function LiveMarker(a,b){this.center=a;this.id=b.id;this.name=b.name;this.text=b.text;this.props=b}LiveMarker.prototype=MTMarkerProto("LiveMarker");LiveMarker.prototype.initialize=function(a){this.map=a;this.div=Builder.node("div.portrait_marker",[Builder.node("p",Builder.node("a",{href:this.props.page_url},Builder.node("img",{src:this.props.photo_url,width:48,height:48}))),Builder.node("div.hidden blockquote",Builder.node("a",{href:this.props.post_url},this.text))])};LiveMarker.prototype.showQuote=function(a){this.div.lastChild[a?"removeClassName":"addClassName"]("hidden");return this};LiveMarker.prototype.redraw=function(b){if(!b){return}var a=this.map.fromLatLngToDivPixel(this.center);this.div.style.left=a.x-30+"px";this.div.style.top=a.y-70+"px"};function NoticeMarker(a,b){this.center=a;this.props=b}NoticeMarker.prototype=MTMarkerProto("LiveMarker");NoticeMarker.prototype.initialize=function(a){this.map=a;this.div=Builder.node("div.notice_marker",Builder.node("img",{src:"/static/images/adv_balloon.gif"}))};NoticeMarker.prototype.redraw=function(b){if(!b){return}var a=this.map.fromLatLngToDivPixel(this.center);this.div.style.left=a.x-80+"px";this.div.style.top=a.y-65+"px"};function PlacesAddMarker(a,b){this.center=a;this.props=b;this.id=b.id;this.name=b.name.replace(/\s+/g,"".nbsp);this.isHouse=this.props.isHouse;this.isPoint=(window.type=="pointsadd");this.size=(this.isHouse?"s":"m");if(b.size){this.size=b.size}if(!this.isHouse){this.props.unresizable=true}this.completedSizes={s:true,m:true};this.sizeClassNames={s:"house_marker_small",m:"house_marker_medium",l:"house_marker_large"};this.elements={}}PlacesAddMarker.getHtml=function(a){return HtmlBuilder.node("div",HtmlBuilder.node("div",[HtmlBuilder.node("a.title",a.name),HtmlBuilder.node("img.rightBorder",{src:"/static/images/bg_balloon_sm_right.gif"})]))};PlacesAddMarker.prototype=MTMarkerProto("PlacesAddMarker");PlacesAddMarker.prototype.getDom=function(a){var b=this.div=$(a)};PlacesAddMarker.prototype.initialize=function(a){this.map=a;this.div.observe("click",function(b){if(!b.isLeftClick()){return}if(b.element().match("a.close")){b.stop();this.setSize("s");return}if(!this.isHouse){a.setCenter(this.center,this.props.zoomTo)}else{this.setSize("l")}}.bind(this));this.makeHoverable()};PlacesAddMarker.prototype.largeElements=function(c){if(this.completedSizes[this.size]){return}this.completedSizes[this.size]=true;var b;if(this.isPoint){if(window.location.href.match(/\d+/)){b=window.location.href.replace(/#.*$/,"")+"?house_id="+this.id}else{b="/places/create/?house_id="+this.props.id}}else{b=window.location.href.add2url(this.props.id)}var f=Dic.word(this.isPoint?"add_point_balloon_button":"add_place_balloon_button");var a,d,e;if(PlacesAddMarker.needsName){a=Builder.node("form.simple",{method:"post"},[Builder.node("input",{type:"hidden",name:"csrf",value:PlacesAddMarker.csrf}),Builder.node("input",{type:"hidden",name:"geo[geo_id]",value:this.props.id}),Builder.node("input",{type:"hidden",name:"geo[lat]",value:this.props.lat}),Builder.node("input",{type:"hidden",name:"geo[lng]",value:this.props.lng}),Builder.node("input",{name:"place[name]"}).observe("click",function(){(function(){a.focus()}).defer()})]);e=Builder.node("p.content",[Builder.node("span",Dic.word("place_marker_address_label")+": "),Builder.node("br"),this.name]);d=Builder.node("p",Builder.node("label",[Builder.node("span",Dic.word("place_marker_name_label")+": "),a]))}else{a="";e="";d=Builder.node("p",this.name)}this.div.appendChild(Builder.node("div.add_place_balloon",[Builder.node("a.close"),d,e,Builder.node("div",Builder.node("a.button_dark",{href:b},f).observe("click",function(g){if(!g.isLeftClick()){return}if(a&&a.value.empty()){g.stop();EffectHighlight(a);return}if(a){g.stop();a.form.submit();return}if(!this.clickHandler){return}g.stop();this.clickHandler(this.id)}.bind(this)))]));if(PlacesAddMarker.needsName){a=a["place[name]"]}};PlacesAddMarker.prototype.redraw=function(b){if(!b){return}if(!this.div){return}if(!this.props.hidden){this.div.show()}if(this.size!="s"){this.raise()}if(!this.completedSizes[this.size]&&this.size=="l"){this.largeElements()}$(this.div[(this.size=="l")?"firstChild":"lastChild"]).hide();$(this.div[(this.size!="l")?"firstChild":"lastChild"]).show();this.div.className=this.sizeClassNames[this.size];var a=this.map.fromLatLngToDivPixel(this.center);this.div.style.left=a.x-((this.size!="l")?15:23)+"px";this.div.style.top=a.y-((this.size!="l")?30:this.div.lastChild.offsetHeight-this.div.style.padding-17)+"px";this.checkZeroHeight(this.div.offsetHeight)};ArrowIcon=new GIcon();ArrowIcon.image="/static/images/map_arrow.png";ArrowIcon.iconSize=new GSize(32,32);ArrowIcon.iconAnchor=new GPoint(16,29);FirTreeIcon=new GIcon();FirTreeIcon.image="/static/images/plc_ny2008.png";FirTreeIcon.iconSize=new GSize(32,32);FirTreeIcon.iconAnchor=new GPoint(16,29);function PhotoMarker(a,d){d.size="l";var c='<a href="'+d.page_url+'"><img src="'+d.photo_url+'" width="48" height="48" /></a>';var b=new HoverMarker(a,d,c,{s:"photo_marker_small",l:"photo_marker"});b.redraw=function(f){if(!f){return}if(this.div.className!=this.classes.s){this.raise()}var e=this.map.fromLatLngToDivPixel(this.center);this.div.style.left=e.x-((this.div.className==this.classes.l)?24:9)+"px";this.div.style.top=e.y-((this.div.className==this.classes.l)?62:20)+"px"};return b}function HuMarker(a,c){c.size="l";c.xOffset=-19;c.yOffset=-37;if(c.name){c.name=c.name.truncate(8)}c.href=c.id?'href="/people/'+c.id+'/"':"";var b=new Template('<p><a #{href}><img src="#{photo_url}" width="48" height="48" /></a></p>');return new HoverMarker(a,c,b.evaluate(c),{s:"portrait_marker",l:"portrait_marker stub"})}function BlogMarker(a,c){c.size="l";c.name=c.name.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");var b='<img src="/static/images/icon_blog_balloon.gif" class="icon" /><a class="title" href="'+c.page_url+'">'+c.name+'</a><img src="/static/images/bg_balloon_sm_right.gif" class="rightBorder" />';return new HoverMarker(a,c,b,{s:"blog_marker_small",l:"blog_marker"})}function PlaceMarker(a,c){c.size="s";c.yOffset=-11;c.line1=c.line1.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");c.line2=c.line2.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");var b;if(!window.fullscreen){b='<p class="'+c.type+'"><span>'+c.line1+"<br />"+c.line2+"</span></p>"}else{b=('<p class="#{type}"><a style="text-decoration: none;" href="/world#goto&#{lat}&#{lng}&12"><span>#{line1}<br />#{line2}</span></a></p>').interpolate(c)}return new HoverMarker(a,c,b,{s:"place_marker_small",l:"place_marker"})}function NewyearMarker(a,c){c.size="s";c.yOffset=-11;c.name=c.name.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");var b=('<p class="place_ny2008"><a href="#{page_url}">#{name}</span></p>').interpolate(c);return new HoverMarker(a,c,b,{s:"place_marker_small",l:"place_marker"})}function HoverMarker(a,c,d,b){this.center=a;this.inner=d;this.classes=b;this.props=c;this.xOffset=c.xOffset||0;this.yOffset=c.yOffset||0;this.id=c.id;this.name=c.name?c.name.replace(/\s+/g,"".nbsp):""}HoverMarker.prototype=MTMarkerProto("HoverMarker");HoverMarker.prototype.initialize=function(a){this.map=a;var b=this.div=Builder.node("div",{className:this.classes[this.props.size],id:(this.props.isMain?"main_marker":"")});b.innerHTML=this.inner;b.delayedHover(function(c){if(this.props.size!="l"){b.className=c?this.classes.l:this.classes.s}this.redraw(c)}.bind(this));b.observe("click",function(d){if(!d.isLeftClick()){return}var c=b.down("a");if(c&&c.href){window.top.location.href=c.href}})};HoverMarker.prototype.redraw=function(b){if(!b){return}if(this.div&&this.div.className!=this.classes.s){this.raise()}var a=this.map.fromLatLngToDivPixel(this.center);this.div.style.left=a.x-15+this.xOffset+"px";this.div.style.top=a.y-30+this.yOffset+"px"};function getMarkerType(c,a){var b={blogs:"BlogMarker",friends:"HumanMarker",groups:"GroupMarker",world:"HumanMarker",live:"LiveMarker",places:"PlaceMarker",newyear:"NewyearMarker",people:"HumanMarker",photos:"PhotoMarker",placesadd:"PlacesAddMarker",pointsadd:"PlacesAddMarker",points:"PointMarker",chat:"ChatMarker",start:"HuMarker",igoogle:"IgoogleMarker",generic:"GenericMarker"};return b[c]||"LongMarker"}function LongMarker(a,b){this.center=a;this.id=b.id;this.name=b.name?b.name.replace(/\s+/g,"".nbsp):"";this.zoomTo=b.zoomTo;this.props=b}LongMarker.getHtml=function(a){var b={className:"title"};if(a.page_url){b.href=a.page_url}return HtmlBuilder.node("div.geo_marker",[HtmlBuilder.node("a",b,a.name),HtmlBuilder.node("img.rightBorder",{src:"/static/images/bg_balloon_sm_right.gif"})])};LongMarker.prototype=MTMarkerProto("LongMarker");LongMarker.prototype.getDom=function(a){var b=this.div=a;b.observe("click",function(c){if(!c.isLeftClick()){return}window.map.setCenter(this.center,this.zoomTo)}.bind(this));b.delayedHover(function(c){if(c){this.raise()}}.bind(this))};LongMarker.prototype.redraw=function(b){if(!b){return}var a=this.map.fromLatLngToDivPixel(this.center);this.div.style.left=a.x-15+"px";this.div.style.top=a.y-30+"px"};function IgoogleMicroMarker(a,b){this.center=a;this.div=Builder.node("div",{style:"position: absolute;"},Builder.node("div.igoogle_marker",Builder.node("a",Builder.node("img",{src:b.photo_url}))))}IgoogleMicroMarker.prototype=MTMarkerProto("IgoogleMicroMarker");function IgoogleMarker(a,b){this.center=a;this.id=b.id;this.props=b}IgoogleMarker.getHtml=function(a){var b={className:"title"};if(a.page_url){b.href=a.page_url}return HtmlBuilder.node("div",{style:"position: absolute;"},HtmlBuilder.node("div.igoogle_marker",HtmlBuilder.node("a",{href:a.page_url,target:"_blank"},HtmlBuilder.node("img",{src:a.photo_url,height:48,width:48}))))};IgoogleMarker.prototype=MTMarkerProto("IgoogleMarker");IgoogleMarker.prototype.getDom=function(a){var b=this.div=a;this.realMouseClick();b.observe("mouse:click",function(c){document.fire("igoogleMarker:clicked",this)}.bind(this));b.delayedHover(function(c){if(c){this.raise()}}.bind(this))};function GroupMarker(a,b){this.center=a;this.props=b;this.id=b.id;this.name=b.name.replace(/\s+/g,"".nbsp);this.size=b.size||"s";this.completedSizes={s:true,m:true,l:false};this.largeClass="group_popup";this.xOffsets={s:16,m:16,l:29}}GroupMarker.getHtml=function(a){return HtmlBuilder.node("div",{style:"position:absolute;"},HtmlBuilder.node("div.geo_marker",[HtmlBuilder.node("a.title",{href:a.page_url},a.name),HtmlBuilder.node("img.rightBorder",{src:"/static/images/bg_balloon_sm_right.gif"})]))};GroupMarker.prototype=MTMarkerProto("GroupMarker");GroupMarker.prototype.getDom=function(a){var b=this.div=$(a);a.down().down().observe("click",function(c){if(!c.isLeftClick()){return}c.stop();this.setSize("l")}.bind(this));this.smallDiv=$(this.div.firstChild)};GroupMarker.prototype.initialize=function(a){this.map=a;this.makeHoverable();this.makeClickable()};GroupMarker.prototype.largeElements=function(){if(this.completedSizes.l){this.smallDiv.hide();this.largeDiv.show();return}this.completedSizes.l=true;if(!this.largeDiv){this.smallDiv.insert({after:'<div class="balloon '+this.largeClass+'"><div class="top"><div><hr /></div></div><div class="content"><span class="loading">'+Dic.word("baloon_loading")+'</span></div><div class="bottom"><div class="map"><hr /></div></div></div>'});this.largeDiv=this.smallDiv.next();this.largeDiv.style.bottom="0"}this.redraw(true);setTimeout(function(){var b=$(this.largeDiv).down().next();if(this.props.baloon_url){var a=this.props.baloon_url}else{var a=this.props.page_url.add2url("baloon")}new Ajax.Updater(b,a,{method:"get",onComplete:function(){var c=b.down();if(c){c.observe("click",function(d){if(!d.isLeftClick()){return}d.stop();this.setSize("s")}.bind(this))}}.bind(this)});window.urchinTracker&&window.urchinTracker(a.replace(/^https?:\/\/.*?(?=\/)/,""))}.bind(this),50)};GroupMarker.prototype.redraw=function(b){if(!b){return}if(!this.div){return}if(this.size!="s"){this.raise()}if(this.size=="l"){this.largeElements()}else{if(this.largeDiv){this.largeDiv.hide()}this.smallDiv.show()}if(this.sizeClassNames){this.smallDiv.className=this.sizeClassNames[this.size]}var a=this.map.fromLatLngToDivPixel(this.center);this.div.style.left=a.x-this.xOffsets[this.size]+"px";this.div.style.top=a.y-3+"px";this.div.firstChild.style.bottom="0"};function HumanMarker(a,b){if(b.name&&b.name.length>7&&!(b.lost&&b.photo==0)){b.name=b.name.truncate(8)}this.center=a;this.props=b;this.id=b.id;this.name=b.name.replace(/\s+/g,"".nbsp);this.size=b.size||"s";this.completedSizes={s:true,m:true,l:false};this.largeClass="user_popup";this.xOffsets={s:29,m:29,l:29}}HumanMarker.getHtml=function(a){return HtmlBuilder.node("div.overlay",{style:"position:absolute;"},HtmlBuilder.node("div.portrait_marker"+(a.lost?" lost_marker":""),HtmlBuilder.node("p",[HtmlBuilder.node("img",{src:a.photo_url,height:((a.lost&&a.photo==0)?32:48),width:48}),HtmlBuilder.node("a.title",{href:a.page_url},a.name)])))};Object.extend(HumanMarker.prototype,GroupMarker.prototype);HumanMarker.prototype.copy=function(){return new HumanMarker(this.center,this.props)};HumanMarker.prototype.getDom=function(a){var d=this.div=$(a);var b=this.image=a.down().down().down();var c=b.next();if(!this.props.lost){c.observe("click",function(e){if(!e.isLeftClick()){return}e.stop();this.setSize("l")}.bind(this))}if(this.props.lost&&this.props.photo==1){b.parentNode.insertBefore(Builder.node("img.magnifier",{src:"/static/images/icon_magnifier.gif"}),b)}this.smallDiv=$(this.div.firstChild)};HumanMarker.prototype.initialize=function(a){this.map=a;this.image.observe("load",function(){this.redraw(true)}.bind(this));this.makeHoverable();if(!this.props.lost){this.makeClickable()}};function PointMarker(a,b){this.center=a;this.props=b;this.id=b.id;this.name=b.name.replace(/\s+/g,"".nbsp);this.size=b.size||"s";this.completedSizes={s:true,m:true,l:false};this.largeClass="poi_popup";this.xOffsets={s:16,m:16,l:29};this.sizeClassNames={s:"poi_marker_small",m:"poi_marker",l:"poi_marker"}}PointMarker.getHtml=function(a){return HtmlBuilder.node("div",{style:"position:absolute;"},HtmlBuilder.node("div.poi_marker_small",[HtmlBuilder.node("p.place_category_"+a.cat,HtmlBuilder.node("span",a.name))]))};Object.extend(PointMarker.prototype,GroupMarker.prototype);PointMarker.prototype.copy=function(){return new PointMarker(this.center,this.props)};PointMarker.prototype.getDom=function(a){var b=this.div=$(a);this.smallDiv=$(this.div.firstChild)};PointMarker.prototype.initialize=function(a){this.map=a;this.makeHoverable();this.makeClickable()};function ChatMarker(a,b){this.center=a;this.props=b;this.id=b.id;this.name=(b.name||"").replace(/\s+/g,"".nbsp);this.size=b.size||"s";this.completedSizes={s:true,m:true,l:true};this.largeClass="chat_popup";this.xOffsets={s:42,m:42,l:42};this.sizeClassNames={s:"chat_marker",m:"chat_marker",l:"chat_marker chat_marker_active"}}ChatMarker.getCounter=function(a){return[a.online_count?"online":"offline",a.online_count?Dic.word("chat_marker_people_counter").format(a.online_count):Dic.word("chat_marker_people_counter_empty")]};ChatMarker.timeDiff=function(b){var a=new Date(b.updated*1000),c=new Date();return Math.floor(Math.max((c-a)/(15*60*1000),0))};ChatMarker.getColor=function(a){var c=ChatMarker.timeDiff(a),b="rgb(77,77,77)";if(c<6){b="rgb("+$R(1,3).collect(function(){return(c+2)*11}).join(",")+")"}return b};ChatMarker.getHtml=function(b){var a=ChatMarker.getCounter(b);var c={style:"background: "+ChatMarker.getColor(b)};return HtmlBuilder.node("div",{style:"position:absolute;"},HtmlBuilder.node("div.chat_marker",c,[HtmlBuilder.node("span.pointer"),HtmlBuilder.node("div.main",[HtmlBuilder.node("a.photo",HtmlBuilder.node("img",{src:b.leader_photo_url})),HtmlBuilder.node("p",[HtmlBuilder.node("a.header",String.replaceSmiles(b.leader_text.escapeHTML())),HtmlBuilder.node("span.counter "+a[0],a[1]),HtmlBuilder.node("span.messages_notice ",Dic.word("mapchat_new_messages"))])]),HtmlBuilder.node("div.reply",{style:"display:none"},[HtmlBuilder.node("a.photo",HtmlBuilder.node("img",{src:b.follower_photo_url})),HtmlBuilder.node("p",[HtmlBuilder.node("a.header",b.follower_text)])])]))};Object.extend(ChatMarker.prototype,GroupMarker.prototype);ChatMarker.prototype.copy=function(){return new ChatMarker(this.center,this.props)};ChatMarker.prototype.getDom=function(a){var b=this.div=$(a);this.smallDiv=this.largeDiv=$(this.div.firstChild)};ChatMarker.prototype.initialize=function(a){this.map=a;this.makeHoverable();this.makeClickable()};ChatMarker.prototype.update2=function(b){var a=ChatMarker.getCounter(b);this.smallDiv.setStyle({background:ChatMarker.getColor(b)}).down().next().down().next().down().next().removeClassName("online").removeClassName("offline").addClassName(a[0]).update(a[1])};ChatMarker.prototype.update=function(d){this.update2(d);this.div.fire("marker:updated",d);if(this.props.updated>=d.updated){return}var c=$(this.smallDiv.lastChild);var a=c.previous();var b=true;c.down().down().writeAttribute("src",d.follower_photo_url).up().next().down().update(String.replaceSmiles(d.follower_text.escapeHTML()));if(this.size=="l"){return}$A([10,200,400,600,800,4000]).each(function(e){(function(){a[b?"hide":"show"]();c[b?"show":"hide"]();b=!b}).delay(e/1000)});a.addClassName("new_messages");this.props=d};ChatMarker.prototype.redraw=ChatMarker.prototype.redraw.wrap(function(a,b){a.call(this,b);if(!this.map){return}this.div.style.top=this.map.fromLatLngToDivPixel(this.center).y-20+"px";if(this.div.parentNode&&this.div.parentNode.style){this.div.style.zIndex=this.div.parentNode.style.zIndex*2+this.constructor.prototype.zIndex+++3000-10*Math.min(ChatMarker.timeDiff(this.props),200);this.constructor.prototype.zIndex=Math.max(this.constructor.prototype.zIndex,this.div.style.zIndex)}});ChatMarker.prototype.setSize=ChatMarker.prototype.setSize.wrap(function(b,a){var c=this.size;b.call(this,a);if(a!="l"){if(Anchor.data.show==this.id){Chat.hideChat(true);this.map.enableScrollWheelZoom()}return}if(c!=a){Chat.showChat(Object.extend({center:this.center},this.props),this)}this.map.disableScrollWheelZoom();this.smallDiv.down().next().removeClassName("new_messages")});ChatMarker.prototype.largeElements=function(){};function GenericMarker(a,b){this.center=a;this.props=b;this.id=b.id;this.name=(b.name||"").replace(/\s+/g,"".nbsp);this.size=b.size||"s";this.completedSizes={s:true};this.xOffsets={s:16};this.yOffsets={s:32};this.sizeClassNames={s:"generic_marker"}}GenericMarker.prototype=MTMarkerProto("GenericMarker");GenericMarker.prototype.initialize=function(a){this.map=a;this.div=Builder.node("div.generic_marker")};GenericMarker.prototype.showQuote=function(a){this.div.lastChild[a?"removeClassName":"addClassName"]("hidden");return this};GenericMarker.prototype.redraw=function(b){if(!b){return}var a=this.map.fromLatLngToDivPixel(this.center);this.div.style.left=a.x-16+"px";this.div.style.top=a.y-32+"px"}}if(window.yandexMap){function createOverlay(a){return new SimpleOverlay(a.point,a.html)}function SimpleOverlay(a,c){var d,f=this,e=new YMaps.Point(-10,-29);this.onAddToMap=function(h,g){d=h;b().appendTo(g);this.onMapUpdate()};this.onRemoveFromMap=function(){if(b().parent()){b().remove()}};this.onMapUpdate=function(){var g=d.converter.coordinatesToMapPixels(a).moveBy(e);b().css({left:parseInt(g.x)+10,top:parseInt(g.y)+29})};this.openBalloon=function(){b().addClass("active")};function b(){var g=YMaps.jQuery('<div class="overlay">'+c+"</div>");g.css("z-index",YMaps.ZIndex.Overlay);g.bind("click",function(){f.openBalloon()});return(b=function(){return g})()}}}var MarkerManager=Class.create({initialize:function(b){this.map=b;this.enabled=true;this.allMarkers={};this.markerZooms={};this.displayedMarkers={};this.coordsOfMarkers={};this.halfBoundsWidth=0.5;this.expireTimeout=15000;this.minZoom2Expire=15;this.placeMarkerSpiral=true;this.loadRect={sw:{lat:0,lng:0},ne:{lat:0,lng:0}};this.tilesRect={sw:{lat:0,lng:0},ne:{lat:0,lng:0},latCount:0,lngCount:0,tileSize:0};var a=this;document.observe("markerManager:toggle",function(c){a[c.memo.state?"enable":"disable"]()})},attach:function(){var a=this.refresh.bind(this);GEvent.addListener(this.map,"zoomend",a);GEvent.addListener(this.map,"moveend",a)},enable:function(){this.enabled=true;this.refresh()},disable:function(){this.enabled=false;$H(this.allMarkers).values().each(this.hideMarker,this)},hasMarker:function(a){return !!(this.allMarkers["_"+a.id])},__addMarker:function(c,b){var d="_"+c.getKey();b=c.zoomRange||b;if(this.allMarkers[d]){if(this.allMarkers[d].update&&c.props){this.allMarkers[d].update(c.props)}this.markerZooms[d]=b||this.markerZooms[d]||[];return false}this.allMarkers[d]=c;this.markerZooms[d]=b||[];var e=c.getPoint();e=" "+e.lat()+e.lng();var a=this.coordsOfMarkers[e];if(this.placeMarkerSpiral){switch(true){case (a instanceof MarkerSpiral):a.addMarker(c);break;case (a!=undefined):this.coordsOfMarkers[e]=new MarkerSpiral(a,[c]);break;default:this.coordsOfMarkers[e]=c;break}}else{this.coordsOfMarkers[e]=c}return d},addMarker:function(b,a){var c=this.__addMarker(b,a);this.checkMarker([c,b])},removeMarker:function(a){var b="_"+a.getKey();if(!this.allMarkers[b]){return}if(this.map.infoWindow.current==a){this.map.infoWindow.current=undefined}this.map.removeOverlay(this.allMarkers[b]);delete this.allMarkers[b];delete this.displayedMarkers[b];delete this.markerZooms[b];delete this.coordsOfMarkers[b]},replaceKey:function(a,b){a="_"+a;b="_"+b;if(!this.allMarkers[a]){return}this.allMarkers[b]=this.allMarkers[a];this.displayedMarkers[b]=this.displayedMarkers[a];this.markerZooms[b]=this.markerZooms[a];delete this.allMarkers[a];delete this.displayedMarkers[a];delete this.markerZooms[a]},addMarkers:function(d,a,b){$A(d).each(function(e){this.__addMarker(e,a)},this);if(b){return}var c=1;c=setInterval(function(){this.expireMarkers(d,c)}.bind(this),this.expireTimeout)},expireMarkers:function(c,b){var a=false;$A(c).each(function(d){var e="_"+d.getKey();var f=this.markerZooms[e];if(f&&f[0]<this.minZoom2Expire){return}if(this.displayedMarkers[e]){a=true;return}delete this.allMarkers[e]},this);if(!a){clearTimeout(b)}},checkMarker:function(g){var f=g[0],c=g[1],a=c.getPoint(),h=a.lat(),e=a.lng();var b=this.markerZooms[f]||[];if(!b[0]){b[0]=-1}if(!b[1]){b[1]=1000}var d;if(this.loadRect.sw.lng<this.loadRect.ne.lng){d=(e<this.loadRect.ne.lng)&&(e>this.loadRect.sw.lng)}else{d=(e>this.loadRect.ne.lng)||(e<this.loadRect.sw.lng)}if((h<this.loadRect.ne.lat)&&(h>this.loadRect.sw.lat)&&d&&(this.currentZoom>=b[0])&&(this.currentZoom<=b[1])){this.showMarker(c)}else{this.hideMarker(c)}},showMarker:function(a){if(!this.enabled){return}var b="_"+a.getKey();if(this.displayedMarkers[b]){return}this.displayedMarkers[b]=true;this.map.addOverlay(a);a.append()},hideMarker:function(a){var b="_"+a.getKey();if(!this.displayedMarkers[b]){return}delete this.displayedMarkers[b];this.map.removeOverlay(a)},refresh:function(){this.loadRectRefresh();this.currentZoom=this.map.getZoom();$H(this.allMarkers).each(this.checkMarker,this)},loadRectRefresh:function(){var f=this.map.getBounds(),c,g,b=this.loadRect.sw=f.getSouthWest(),h=this.loadRect.ne=f.getNorthEast();this.loadRect.latSpan=(h.lat()-b.lat());this.loadRect.lngSpan=(h.lng()-b.lng());g=this.tilesRect.tileSize=360/Math.pow(2,this.map.getZoom()+1);c=this.tilesRect.splitted=this.loadRect.lngSpan<0;this.tilesRect.lat={s:Math.floor(b.lat()/g)*g,n:Math.ceil(h.lat()/g)*g};this.tilesRect.latCount=(this.tilesRect.lat.n-this.tilesRect.lat.s)/g;if(!c){this.tilesRect.lng={w:Math.floor(b.lng()/g)*g,e:Math.ceil(h.lng()/g)*g};this.tilesRect.lngCount=(this.tilesRect.lng.e-this.tilesRect.lng.w)/g}else{this.tilesRect.lng={w:Math.floor(b.lng()/g)*g,e:180};this.tilesRect.lngCount=(180-this.tilesRect.lng.w)/g;this.tilesRect.lng2={w:-180,e:Math.ceil(h.lng()/g)*g};this.tilesRect.lngCount2=(this.tilesRect.lng2.e+180)/g}var e=this.loadRect.latSpan*this.halfBoundsWidth,d=this.loadRect.lngSpan*this.halfBoundsWidth;this.loadRect.sw={lat:a(b.lat()-e),lng:a(b.lng()-d)};this.loadRect.ne={lat:a(h.lat()+e),lng:a(h.lng()+d)};function a(i){if(i>180){return 180}if(i<-180){return -180}return i}},clear:function(){$H(this.displayedMarkers).each(function(a){map.removeOverlay(this.allMarkers[a.key])},this);this.displayedMarkers={};this.allMarkers={};this.markerZooms={};this.coordsOfMarkers={}},getDisplayedMarker:function(a){var b="_"+a.getKey();if(this.displayedMarkers[b]){return this.allMarkers[b]}else{return}}});var ChatMarkerManager=Class.create(MarkerManager,{refresh:function(){this.loadRectRefresh();this.currentZoom=this.map.getZoom();if(this.currentZoom>17){$H(this.allMarkers).each(this.checkMarker,this);return}this.fillMap={};$H(this.allMarkers).values().each(this.isCluttering,this);var a=$H(this.fillMap).values().collect(function(b){return $H(b).values()}).flatten();$H(this.allMarkers).each(function(b){this[(a.indexOf(b.value)>-1)?"showMarker":"hideMarker"](b.value)},this)},isCluttering:function(c){var b=c.getLatLng(),e=this.tilesRect.splitted,g=Math.floor((b.lat()-this.tilesRect.lat.s)/this.tilesRect.tileSize),a=Math.floor((b.lng()-this.tilesRect.lng.w)/this.tilesRect.tileSize),d=e?Math.floor((b.lng()+180)/this.tilesRect.tileSize):undefined;if(g<0||g>this.tilesRect.latCount){return}if(!e){if(a<0||a>this.tilesRect.lngCount){return}}else{if(a<0||a>this.tilesRect.lngCount){if(d<0||d>this.tilesRect.lngCount2){return}a=d+this.tilesRect.lngCount+this.tilesRect.lngCount2+10}}this.fillMap[a]=this.fillMap[a]||{};var f=this.fillMap[a][g];if(f&&f.id==Anchor.data.show){return}if(!f||f.props.updated<c.props.updated||c.id==Anchor.data.show){this.fillMap[a][g]=c}}});var mapContainer,yandexMapNode="div.YMaps-layer-container",mapZoomControlsNode="div.mapZoomControlsContainer",yandexMarkers=$A();function initBigMap(params){var mapDiv=$("map");if(!mapDiv||!GBrowserIsCompatible()){return}if(Prototype.Browser.IE&&window.GUnload){document.observe("unload",GUnload)}window.defaultMapParams=params;var realMapDiv=$("realMap");if(realMapDiv&&!mapDiv.hasClassName("smallMap")){realMapDiv.show().className=mapDiv.className;mapDiv.style.border="";function updateMapDivPosition(){realMapDiv.clonePosition(mapDiv)}try{updateMapDivPosition()}catch(e){updateMapDivPosition.defer()}Event.observe(window,"resize",updateMapDivPosition);document.observe("map:resized",updateMapDivPosition)}else{realMapDiv=mapDiv}var mapOptions={};if(params.gMapOptions){$H(params.gMapOptions).each(function(pair){if(pair.value instanceof Array){try{eval('mapOptions["'+pair.key+'"] = new '+pair.value[0]+"("+pair.value[1]+");")}catch(e){}}else{mapOptions[pair.key]=pair.value}})}window.map=new GMap2(realMapDiv,mapOptions);window.manager=new window[params.manager||"MarkerManager"](map);window.manager.attach();if(!mapDiv.hasClassName("smallMap")){patchWheel(realMapDiv);addBigMapControls();if(!window.type.match(/^(friends|places|live|groupsitem|riddles|groupsinvite|generic)$/)){initMarkerLoader()}if(window.location&&window.location.hash){Anchor.hasHashOnload=true;mapHistoryListener(window.location.hash)}initSearch();updateMenuLinks(location.hash.substring(1));if(window.type=="friends"&&window.friends){setMarkersCenter(friends,"HumanMarker")}if(window.type=="places"&&window.places){setMarkersCenter(places,"PlaceMarker")}map.isLoaded()||map.setCenter(new GLatLng(params.latitude,params.longitude),params.zoom);if(!params.noHistory){if(dhtmlHistory.currentLocation===null){dhtmlHistory.create();dhtmlHistory.initialize()}dhtmlHistory.addListener(mapHistoryListener)}GEvent.addListener(map,"maptypechanged",saveMapStep);GEvent.addListener(map,"dragend",function(){Anchor.remove("show")})}else{map.addControl(new MapZoomControl(0));map.addControl(new MapTypeControl());map.setCenter(new GLatLng(params.latitude,params.longitude),params.zoom);function maxZoomDetector(message){var delayed=(function(hover){if(hover){window.map.setZoom(window.map.getZoom()-1)}}).getDelayedHandlers({over:300,out:0});return function(){delayed.handlers.out();delayed.handlers.over();return message}}G_NORMAL_MAP.getErrorMessage=maxZoomDetector(G_NORMAL_MAP.getErrorMessage());G_HYBRID_MAP.getErrorMessage=maxZoomDetector(G_HYBRID_MAP.getErrorMessage())}var containterHeight=$(map.getContainer()).getStyle("height").parseInt();if(containterHeight<$(map.getContainer()).getWidth()){while(containterHeight>256*Math.pow(2,map.getZoom())){map.setZoom(map.getZoom()+1)}if(containterHeight==256*Math.pow(2,map.getZoom())){map.setCenter(new GLatLng(0,map.getCenter().lng()))}}if(Anchor.data.go&&Anchor.data.go.type=="satellite"){map.setMapType(G_HYBRID_MAP)}if(!Anchor.data.go&&params.type=="satellite"){map.setMapType(G_HYBRID_MAP)}map.infoWindow=function(marker){if(map.infoWindow.current===marker){return}if(map.infoWindow.current){map.infoWindow.current.setSize("s")}map.infoWindow.current=marker};$A(window.mapReady).invoke("call")}function myPlacesSwitch(){var b=$("my_places");if(!b){return}var c=false;function a(){if(!window.map||b.value=="0"){return}var e=b.options[b.selectedIndex];if(!e){return}var g=e.className.split("|");var h=parseFloat(g[0]),d=parseFloat(g[1]),f=parseInt(g[2]);if(activeMapIsYandex()){window.yandexMap.setCenter(new YMaps.GeoPoint(d,h),f)}else{window.map.setCenter(new GLatLng(h,d),f)}c||GEvent.addListener(map,"dragend",function(){b.value=0});c=true;breadCrumbs.update(e.innerHTML)}b.observe(["change","click","keypress"],a)}function setMarkersCenter(f,a,c){if(f.length==0){return}var e=$A();var g=$A();var d=[];$A(f).each(function(i){var h=new GLatLng(i.lat,i.lng);e.push(h);g.push(new window[a](h,i));if(window[a].getHtml){d.push(window[a].getHtml(i))}});if(d.length){var b=Builder.node("div").hide();b.innerHTML=d.join("");document.body.appendChild(b)}(function(){if(d.length){g.each(function(h,i){h.getDom(b.childNodes[i])})}manager.addMarkers(g,undefined,true);manager.refresh()}).defer();showPoints(e)}function saveMapStep(){if(Anchor.forbidSaving){return}Anchor.update("go",{lat:map.getCenter().y,lng:map.getCenter().x,zoom:map.getZoom(),type:(map.getCurrentMapType()==G_NORMAL_MAP?"normal":"satellite")}).save();updateMenuLinks(Anchor.get())}function getGeoBox(){var d=activeMapIsYandex(),c=d?window.yandexMap:map;var f=c.getBounds(),b=f[d?"getLeftBottom":"getSouthWest"](),g=f[d?"getRightTop":"getNorthEast"](),e=b[d?"getLat":"lat"](),a=b[d?"getLng":"lng"]();ne_lat=g[d?"getLat":"lat"](),ne_lng=g[d?"getLng":"lng"]();return{sw:{lat:e,lng:a},ne:{lat:ne_lat,lng:ne_lng},zoom:c.getZoom(),type:c[d?"getType":"getCurrentMapType"]()==(d?YMaps.MapType.MAP:G_NORMAL_MAP)?"normal":"satellite"}}function updateMenuLinks(a){if(map.getCenter()){var e=Object.toJSON($H(getGeoBox()));updateMenuLinks.links=updateMenuLinks.links||$A(document.getElementsByName("map_url"));updateMenuLinks.links.each(function(f){f._href=f._href||f.href;f.href=f._href+"&json="+e})}if(!$("menu")){return}if(a&&a.length>0){a="?"+a}var d=$("place_create");if(d&&Anchor.data.go){d.href=d.href.replace(/\?.*/,"")+"?geo[lat]="+Anchor.data.go.lat+"&geo[lng]="+Anchor.data.go.lng+"&geo[zoom]="+Anchor.data.go.zoom}var b=$("view_selector");if(updateMenuLinks.layers||b){updateMenuLinks.layers=updateMenuLinks.layers||b.childElements();var c=Anchor.get();updateMenuLinks.layers.each(function(f){f._href=f._href||f.href;f.href=f._href+"#"+c})}}function mapHistoryListener(){var d=Anchor.data;var b=d.search;Anchor.parse();d=Anchor.data;if(Anchor.parseCount==1&&Anchor.hasHashOnload){b=[]}else{Anchor.forbidSaving++}if(d.search){var c=$("search_form");if(c.q&&d.search[0]){c.q.value=d.search[0]}if(c.addr&&d.search[1]){c.addr.value=d.search[1]}if(d.search[0]){window.map.indicator.setResults(d.search[0])}if(!d.go){window.map.setCenter(new GLatLng(defaultMapParams.latitude,defaultMapParams.longitude),defaultMapParams.zoom);activeMapIsYandex()&&window.yandexMap.setCenter(new YMaps.GeoPoint(defaultMapParams.longitude,defaultMapParams.latitude),defaultMapParams.zoom)}}if(d.go){var a=window.map.getMapTypes();window.map.setCenter(new GLatLng(d.go.lat,d.go.lng),d.go.zoom);activeMapIsYandex()&&window.yandexMap.setCenter(new YMaps.GeoPoint(d.go.lng,d.go.lat),d.go.zoom);if(d.go.type){window.map.setMapType(d.go.type=="normal"?a[0]:a[1])}}if(Anchor.empty&&window.defaultMapParams&&window.dhtmlHistory.firstLoad){window.map.setCenter(new GLatLng(defaultMapParams.latitude,defaultMapParams.longitude),defaultMapParams.zoom);activeMapIsYandex()&&window.yandexMap.setCenter(new YMaps.GeoPoint(defaultMapParams.longitude,defaultMapParams.latitude),defaultMapParams.zoom)}}function addBigMapControls(){window.breadCrumbs=new Breadcrumbs("breadcrumbs_search",window.map);if(window.type=="chat"){var b=new GLargeMapControl();b.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(20,50))};map.addControl(b);map.addControl(new GMapTypeControl())}else{map.addControl(new MapZoomControl());var a=new MapTypeControl();map.addControl(a);if(/^(people|groups|photos|points)$/.test(window.type)){a.enableList();map.addControl(new MapDirectionsControl())}}map.indicator=new IndicatorControl();map.addControl(map.indicator);map.enableDoubleClickZoom();map.enableScrollWheelZoom();map.enableContinuousZoom()}function patchWheel(a){Event.observe(Prototype.Browser.IE?document:window,Event.SCROLL,function(b){if(!b.element().descendantOf(a)){return}b.stop()})}function initMarkerLoader(){loadMarkersData.indicatorHandle=-1;var a=(function(b){if(!b){return}if(loadMarkersData.ignore-->0){return}loadMarkersData();if(Anchor.data.search){Anchor.forbidSaving++}}).getDelayedHandlers({out:0});GEvent.addListener(map,"movestart",a.handlers.out);GEvent.addListener(map,"moveend",function(){a.handlers.out();a.handlers.over()});GEvent.addListener(map,"zoomstart",a.handlers.out);GEvent.addListener(map,"zoomend",function(){a.handlers.out();a.handlers.over()})}function initSearch(){var c=$("search_form");if(!c){return}var d,b,a=!!(window.type=="pointsadd");e();c.observe("submit",function(f){f.stop();if(c.addr&&!a){d=d||Builder.node("ul.address_search").hide();if(d.firstChild){d.update()}c.addr.parentNode.insertBefore(d,c.addr.nextSibling)}Anchor.update("search",[c.q&&c.q.value,c.addr&&c.addr.value]);if(Anchor.data.search[0]){window.map.indicator.setResults(Anchor.data.search[0])}else{window.map.indicator.hideSearch()}window.manager.clear();if(!Anchor.data.search[1]){loadMarkersData()}else{b&&b.transport&&b.transport.abort();d.update(Builder.node("li.loading")).show();b=new Ajax.Request("/resolver/json",{method:"get",parameters:{addr:c.addr.value},onSuccess:function(h){d.hide().update();var g=Ajax.parseResult(h);if(!g.results){return}if(g.results.length==0){if(!a){d.show().appendChild(Builder.node("li",Dic.word("no_address_found")))}return}if(g.results.length==1||a){d.hide();window.map.setCenter(new GLatLng(parseFloat(g.results[0].lat),parseFloat(g.results[0].lng)),parseInt(g.results[0].zoom));return}$A(g.results).each(function(i){d.show().appendChild(Builder.node("li",i.name).observe("click",function(j){if(!j.isLeftClick()){return}window.map.setCenter(new GLatLng(parseFloat(i.lat),parseFloat(i.lng)),parseInt(i.zoom))}))})}})}});function e(){var f=$("view_selector"),g="?"+c.serialize();if(!f||!/=(?!&|$)/.test(g)){return}f.childElements().each(function(h){if(!/^a$/i.test(h.nodeName)){return}h.href=h.href.replace(/(\?.*)|$/,g)})}c.style.visibility="visible"}function showPoints(e,g){var d=activeMapIsYandex(),f=d?new YMaps.Bounds:new GLatLngBounds();e.each(function(i){f.extend(i)});var c=d?window.yandexMap:window.map;c.setCenter(f.getCenter(),g||c.getBoundsZoomLevel(f));function h(j){var i=j[d?"getLeftBottom":"getSouthWest"](),k=j[d?"getRightTop":"getNorthEast"]();return[k[d?"getLat":"lat"]()-i[d?"getLat":"lat"](),k[d?"getLat":"lng"]()-i[d?"getLng":"lng"]()]}var b=h(f),a=h(map.getBounds());if((a[0]-b[0])/a[0]<0.15||(a[1]-b[1])/a[1]<0.15){map.setZoom(map.getZoom()-1)}}function loadMarkers(h,d){d=d||{};var f=[],c;var b=Ajax.parseResult(h,function(){map.indicator.hide(d.indicatorHandle)});if(b.world){Object.extend(b,b.people)}if(b.loadEvents){$A(b.loadEvents).each(function(i){document.fire(i[0],i[1])})}var g=$A(),a=$A(),e=$A();$A(b.markers.reverse()).each(function(j,k){if(activeMapIsYandex()){if(yandexMarkers.pluck("id").indexOf(j.id)==-1){yandexMarkers.push(j);e.push(j)}}else{var i=new GLatLng(parseFloat(j.lat),parseFloat(j.lng));a.push(i);j.zoomTo=j.zoomTo||b.zoomTo;d.markerType=d.markerType||getMarkerType(window.type,j);var m=window[d.markerType];var l=new m(i,j);g.push(l);if(j.zoom){l.zoomRange=j.zoom}if(m.getHtml){f.push(m.getHtml(j))}}});if(activeMapIsYandex()&&e.size()){e.each(function(j){var o;switch(window.type){case"people":var k='<img src="'+j.photo_url+'" width="48" height="'+((j.lost&&j.photo==0)?32:48)+'" />',l='<a href="'+j.page_url+'" class="title">'+j.name.truncate(8)+"</a>",n="portrait_marker"+(j.lost?" lost_marker":"");o='<div class="'+n+'" id="'+j.id+'"><p>'+k+l+"</p></div>";break;case"points":var i='<p class="place_category_'+j.cat+'"><span>'+j.name+"</span></p>",l='<a href="'+j.page_url+'"></a>';o='<div class="poi_marker_small">'+i+l+"</div>";break;case"photos":var k='<img src="'+j.photo_url+'" width="48" height="48" alt="" />',l='<a href="'+j.page_url+'">'+k+"</a>";o='<div class="photo_marker">'+l+"</div>";break;case"groups":var l='<a href="'+j.baloon_url+'"></a>',k='<img src="/static/images/bg_balloon_sm_right.gif" alt="" class="rightBorder" />',m='<a href="'+j.page_url+'" class="title" id="'+j.id+'">'+j.name+"</a>";o='<div class="geo_marker">'+l+m+k+"</div>";break}window.yandexMap.addOverlay(createOverlay({point:new YMaps.GeoPoint(parseFloat(j.lng),parseFloat(j.lat)),html:o}))})}else{if(f.length){var c=Builder.node("div").hide();c.innerHTML=f.join("");document.body.appendChild(c)}(function(){f.length&&g.each(function(i,j){i.getDom(c.childNodes[j])});manager.addMarkers(g,b.zoom);manager.refresh();if(f.length){g.each(function(i){if(Anchor.data.show!=i.id){return}var i=manager.getDisplayedMarker(i);i&&i.setSize("l")})}}).defer()}if(map.indicator){map.indicator.hide(loadMarkersData.indicatorHandle)}return b}function loadMarkersData(){if(Anchor.forbidSaving){Anchor.forbidSaving--}else{saveMapStep()}if(map.indicator){loadMarkersData.indicatorHandle=map.indicator.show("loadingMarkers")}var c=getGeoBox();c.type=window.type;c.full=(window.type=="world")?1:0;if(window.type=="newyear"){c.tp="ny_2008"}if(window.type=="world"){c.longName=1}if(Anchor.data.show){c.show=Anchor.data.show}if(Anchor.data.cat){c.cat=Anchor.data.cat}loadMarkersData.searchForm=loadMarkersData.searchForm||$("search_form");if(loadMarkersData.searchForm){Object.extend(c,loadMarkersData.searchForm.serialize(true))}if(loadMarkersData.background){c.background=true}var b,a=window.location.href.match(/\?(.*?)(#|$)/);if(a){b=$A(a[1].split(/&/)).inject({},function(e,f){var d=f.indexOf("=");if(d){e[f.substring(0,d)]=f.substring(d+1)}return e})}if(b&&b.pp){$A(b.pp.split(/,/)).each(function(d){c[d]=b[d]})}if(!window.mapMarkersUrl&&window.notify){notify("no mapMarkersUrl given for page")}new Ajax.Request(window.mapMarkersUrl,{method:"get",parameters:{json:Object.toJSON($H(c))},onSuccess:function(e){var d=loadMarkers(e,{indicatorHandle:loadMarkersData.indicatorHandle});if(window.type=="world"&&window.updateWorldPage){updateWorldPage(d)}if(DoublePost){window.DoublePost.hide()}}})}window.dhtmlHistory.create=window.dhtmlHistory.create.wrap(function(a){return a.call(this,{toJSON:Object.toJSON,fromJSON:function(b){return b.evalJSON()}})});function instaMaps(){if(!window.GMap2){return}var b=Anchor.clone();var a=function(){if(Prototype.Browser.IE&&window.GUnload){document.observe("unload",GUnload)}a=Prototype.emptyFunction};document.observe("mouseup",function(f){if(!f.isLeftClick()){return}var e=f.findElement("div.post a");if(!e||!e.href){return}var g=e.href.match(/#.*/);if(!g){return}b.parse(g[0]);var d=b.data.go;if(!d){return}var i=Builder.node("div.postMap");e.replace(i);var h=new GMap2(i);var c=new GLatLng(d.lat,d.lng);h.addControl(new MapZoomControl());h.addControl(new MapTypeControl());h.setCenter(c,d.zoom);a()})}function showMarker(e,d,c,b){var a=Builder.node("div");a.innerHTML=window[d].getHtml(c);(function(){b.getDom(a.firstChild);e.addOverlay(b);b.append()}).defer()}function fitObjectOnMap(l,e,b,d){var g=b.width;var f=b.height;var j=d.fromLatLngToContainerPixel(l);var n=j.x+e.x;var m=j.y+e.y-f;var i=$(d.getContainer());var c=i.getWidth();var a=i.getHeight();var k=0,h=0;if(n<0){k=40-n}if(m<0){h=40-m}if(n+g+k>c){k=(c-(n+g))}if(m+f+h>a){h=(a-(m+f))}if(!k&&!h){return}d.setCenter(d.fromContainerPixelToLatLng(new GPoint(c/2-k,a/2-h)))}function activatePolygon(){var c;var b=$("riddle_area"),d=$("delete_polygon")||null;if(!b.value.empty()){c=new GPolygon($A(b.value.split("|")).collect(function(e){e=e.split(":");return new GLatLng(parseFloat(e[0]),parseFloat(e[1]))}),"#f00",3,1,"#600",0.3);if(d){d.show()}var a=c.getBounds();map.setCenter(a.getCenter());map.setZoom(map.getBoundsZoomLevel(a));map.addOverlay(c);c.enableEditing()}else{c=new GPolygon([],"#f00",3,1,"#600",0.3);map.addOverlay(c);c.enableDrawing()}GPolygon.prototype.getData=function(){var e=this;vertexCount=this.getVertexCount();for(vertexData=[];vertexCount>0;vertexCount--){currentVertex=e.getVertex(vertexCount-1);vertexData.push(currentVertex.lat()+":"+currentVertex.lng())}return vertexData.join("|")};d.observe("click",function(){c.disableEditing();map.removeOverlay(c);if(b.value){b.value=""}d.hide();c=new GPolygon([],"#f00",3,1,"#600",0.3);map.addOverlay(c);GEvent.addListener(c,"endline",function(){c.enableEditing();b.value=c.getData()});GEvent.addListener(c,"lineupdated",function(){d.show()});c.enableDrawing()});GEvent.addListener(c,"endline",function(){c.enableEditing();b.value=c.getData()});GEvent.addListener(c,"lineupdated",function(){d.show()});Event.SCROLL=(Prototype.Browser.IE||Prototype.Browser.Opera||Prototype.Browser.WebKit)?"mousewheel":"DOMMouseScroll";Event.observe(Prototype.Browser.IE?document:window,Event.SCROLL,function(e){if(!e.element().descendantOf(mapDiv)){return}e.stop()})}function showPolygon(){var c;var b=$("riddle_area");if(!b.value.empty()){c=new GPolygon($A(b.value.split("|")).collect(function(d){d=d.split(":");return new GLatLng(parseFloat(d[0]),parseFloat(d[1]))}),"#f00",3,1,"#600",0.3);var a=c.getBounds();map.setCenter(a.getCenter());map.setZoom(map.getBoundsZoomLevel(a));map.addOverlay(c)}}function initYandexMap(){var c=$("realMap"),f=new YMaps.Map(c),e=window.location.hash,d=e.substring(1).split(/&/);lng=e?parseFloat(d[2]):37.64,lat=e?parseFloat(d[1]):55.76,zoom=e?parseInt(d[3]):10;window.yandexMap=f;f.setCenter(new YMaps.GeoPoint(lng,lat),zoom);$F("breadcrumbs_search").blank()||window.searcher();loadMarkersData();YMaps.Events.observe(f,f.Events.Update,function(){loadMarkersData();paintZoomers(c.down(mapZoomControlsNode),16-f.getZoom())});YMaps.Events.observe(f,f.Events.MoveEnd,function(){loadMarkersData()});c.down(yandexMapNode).observe("click",function(i){var j=i.element(),g=j.up(".overlay"),h=this.down(".YMaps-common-object-layer");if(i.findElement(".portrait_marker")||i.findElement(".poi_marker")||i.findElement(".geo_marker")){a(i,j,g,h)}else{if(i.findElement(".balloon")){if(!j.hasClassName("close")){return}g.removeClassName("active")}}}).observe("mouseover",function(g){var h=g.findElement(".poi_marker_small");if(h){h.className="poi_marker";h.up("div").style.zIndex=2}}).observe("mouseout",function(g){var h=g.findElement(".poi_marker");if(h){h.className="poi_marker_small";h.up("div").style.zIndex=1}});function a(l,k,g,i){l.findElement("a")&&l.stop();var j=(window.type=="people"?"portrait":(window.type=="points"?"poi":"geo"))+"_marker",h=(window.type=="people"?"user":(window.type=="points"?"poi":"group"))+"_popup";i.adjacent(".active").each(function(m){if(m!=g){m.removeClassName("active")}});b(function(){var r=k.hasClassName(j)||k.hasClassName(j+"_small")?k:k.up("."+j)||k.up("."+j+"_small"),p=r.next(".balloon");if(p){g.addClassName("active")}else{var s=r.down("a").href,o=s.indexOf("baloon")!=-1?s:s.add2url("baloon"),n=Builder.node("div.top",Builder.node("div",Builder.node("hr"))),m=Builder.node("div.content",Builder.node("div.loading",Dic.word("baloon_loading"))),q=Builder.node("div.bottom",Builder.node("div.map",Builder.node("hr"))),p=Builder.node("div",{className:"balloon "+h},[n,m,q]);r.insert({after:p});new Ajax.Request(o,{method:"get",onSuccess:function(t){m.update(t.responseText)}})}},g,i)}function b(g,l,n){var m=parseFloat(n.style.top)+parseFloat(l.style.top),k=parseFloat(n.style.left)+parseFloat(l.style.left),p=window.type=="people"?182:208,h=509,o=32,q=392,j=m-p<0?m-p:(m>h?m-h:0),i=k-o<0?k-o:(k>q?k-q:0);if(j!=0||i!=0){f.moveBy(new YMaps.Point(i,j),true,{speed:20,startSpeed:10,speedUpTime:200,callback:function(r){if(r==YMaps.State.SUCCESS){g()}}})}else{g()}}}function activeMapIsYandex(){var b=$("realMap"),c=b&&b.down("div.YMaps-layer-container"),a=c&&c.visible();return a}function placeCategories(){var b=$("place_categories"),a=$("search_category");if(Anchor.data.cat){a.value=Anchor.data.cat;var c=b.childElements().find(function(d){var e=d.down().href.match(new RegExp("/"+Anchor.data.cat+"/?$","i"));return e});if(c){c.addClassName("act").siblings().invoke("removeClassName","act")}}b.observe("click",function(d){if(!d.isLeftClick()){return}var e=d.element();if(!/^a$/i.test(e.nodeName)){return}d.stop();e.up().siblings().invoke("removeClassName","act");if(e.up().hasClassName("any_link")){Anchor.remove("cat").save();a.value="";b.childElements().first().hide()}else{if(!e.href.match(/(\w+)\/?$/)){return}e.up().addClassName("act");b.childElements().first().show();Anchor.update("cat",RegExp.$1).save();a.value=RegExp.$1}manager.clear();map.setZoom(map.getZoom())})}function markerCreator(a){var e=$("map_arrow");(function b(){var j=e.up();e.observe("mousedown",function(){if(e.hasClassName("inactive")){e.removeClassName("inactive")}window.placeMarker.hide();document.fire("marker:dragstart")});var g;var i=[e.offsetLeft,e.offsetTop];function f(){g=j.cumulativeOffset();g=[g[0]+i[0],g[1]+i[1]];if(window.placeArrow&&!window.placeArrow.dragging){placeArrow.returnBack()}}f();setInterval(f,100);var h=e.cumulativeOffset();window.placeArrow=new GDraggableObject(e,{delayDrag:true,left:h.left,top:h.top});GEvent.addListener(window.placeArrow,"dragstart",function(){window.placeArrow.dragging=true});GEvent.addListener(window.placeArrow,"dragend",function(k){window.placeArrow.dragging=false;c(Event.extend(k))});window.placeArrow.returnBack=function(){window.placeArrow.moveTo(new GPoint(g[0],g[1]))};document.body.appendChild(e);placeArrow.returnBack();e.removeClassName("inactive")})();(function d(){window.placeMarker=new GMarker(new GLatLng($F("geo_other_lat"),$F("geo_other_lng")),{icon:a||ArrowIcon,bouncy:false,draggable:true});window.mapReady.push(function(){window.map.addOverlay(window.placeMarker);if(!$F("geo_other_lat")){placeMarker.hide()}})})();function c(j){if(this&&this.getPoint){var g=this.getPoint()}else{Position.prepare();if(!Position.withinIncludingScrolloffsets(window.map.getContainer(),j.pointerX(),j.pointerY())){placeArrow.returnBack();e.removeClassName("inactive");return}var h=$(window.map.getContainer()).cumulativeOffset();var f=j.pointerX()-h[0];var m=j.pointerY()-h[1]+12;var g=window.map.fromContainerPixelToLatLng(new GPoint(f,m))}placeArrow.returnBack();e.addClassName("inactive");var l=20;var i;if(map.getZoom()>=17){$H(manager.displayedMarkers).each(function(o){var n=manager.allMarkers[o.key];var p=g.distanceFrom(n.getPoint());if(p<l){i=o.key;l=p}})}var k=$("geo_other_point_is_custom");marker=manager.allMarkers[i];if(l<20&&marker.markerType=="PlacesAddMarker"){marker.div.show();placeMarker.hide();if(marker.setSize){marker.setSize("l")}e.removeClassName("inactive");if(k){k.value=0}}else{placeMarker.setPoint(g);placeMarker.show();$("geo_other_lat").value=g.lat();$("geo_other_lng").value=g.lng();if(k){k.value=1}document.fire("marker:placed",g)}document.fire("placesNearby:update")}GEvent.addListener(placeMarker,"dragend",c);GEvent.addListener(placeMarker,"dragstart",function(){document.fire("marker:dragstart")});return window.mapReady.last()}function updateGeoparentsList(a,d){var c=$("radios");var b=c.up("div.balloon");document.observe("marker:placed",function(e){b.show();c.update().up().addClassName("loading");(function(){document.fire("marker:resized")}).defer();$("geo_other_zoom").value=map.getZoom();new Ajax.Request(a,{method:"get",parameters:{lat:$F("geo_other_lat"),lng:$F("geo_other_lng"),type:window.type},onSuccess:function(g){var f=Ajax.parseResult(g);$A(f.markers).each(function(h){c.appendChild(Builder.node("label",[Builder.node("input.checker",{name:"geo[geo_id]",type:"radio",value:h.id})," "+h.name]))});(function(){document.fire("marker:resized")}).defer()},onComplete:function(){c.up().removeClassName("loading")}})})}function detectGeoparent(){var g=$("radios");var f=g.up("div.balloon");if(Prototype.Browser.IE){document.body.appendChild(f)}var c,b,e;window.mapReady.push(function(){c=$(window.map.getContainer());e=c.down().down();b=c.cumulativeOffset();var h=f.getOffsetParent().cumulativeOffset();b=[b[0]-h[0],b[1]-h[1]];GEvent.addListener(window.map,"dragstart",function(){f.addClassName("hidden")});GEvent.addListener(window.map,"zoomstart",function(){f.addClassName("hidden")});GEvent.addListener(window.map,"dragend",function(){f.removeClassName("hidden");a()});GEvent.addListener(window.map,"zoomend",function(){f.removeClassName("hidden");a()})});function a(){var k=window.placeMarker.getPoint();if(k.lat()==0&&k.lng()==0){return}var i=window.map.fromLatLngToDivPixel(k);var h=i.x+parseInt(e.getStyle("left"));var l=i.y+parseInt(e.getStyle("top"));if(0>h||h>c.getWidth()||0>l||l>c.getHeight()){f.hide();return}else{f.show()}var j={top:l+b[1]-f.getHeight()-24,left:h+b[0]-29};f.setStyle({left:j.left+"px",top:j.top+"px"})}var d=new Helper(Dic.word("error_required_missed"));$("button").observe("click",function(h){if(!g.childElements().find(function(i){return i.down().checked})){h.stop();d.show($("button"))}else{d.hide()}});f.down("a.close").observe("click",function(){f.hide()});document.observe("marker:dragstart",function(){f.hide()});document.observe(["marker:placed","marker:resized"],function(h){a()});return window.mapReady.last()}Breadcrumbs=Class.create();Breadcrumbs.prototype={initialize:function(a,e){this.update=this.update.bind(this);var c=this.container=$(a);if(!this.container){return}this.map=e;this.untouchable=false;this.container.observe("focus",function(f){this.untouchable=true}.bind(this));this.container.observe("blur",function(f){this.untouchable=false}.bind(this));var d,b=this;window.searcher=(function(){d&&d.transport&&d.transport.abort();this.container.addClassName("loading");d=new Ajax.Request("/resolver/json",{method:"get",parameters:{addr:c.value},onSuccess:function(j){var f=Ajax.parseResult(j);f=f.results;if(!f||f.length<1){EffectHighlight(b.container,{startColor:["ff","88","88"]});return}var i=f[0].lat.parseFloat(),g=f[0].lng.parseFloat(),h=parseInt(f[0].zoom);if(activeMapIsYandex()){window.yandexMap.setCenter(new YMaps.GeoPoint(g,i),h)}else{e.setCenter(new GLatLng(i,g),h)}if(typeof window.breadcrumbsHandler=="function"){breadcrumbsHandler(f)}document.fire("breadcrumbs:mapcentered")},onComplete:(function(){this.container.removeClassName("loading")}).bind(this)})}).bind(this);this.container.next().observe("click",window.searcher);this.container.observe("keypress",function(f){if(f.keyCode==Event.KEY_RETURN){f.stop();window.searcher()}})},update:function(a){if(this.untouchable||!a||!a.length){return}this.container.value=Object.isString(a)?a:$A(a).pluck("name").join(", ")}};var MarkerSpiral=Class.create();MarkerSpiral.prototype={lat:undefined,lng:undefined,central:undefined,markers:$A(),defaults:{angle:90,radius:0.0002,deltaRadius:0.00008},initialize:function(a,b){this.central=a;this.lat=parseFloat(this.central.getPoint().lat());this.lng=parseFloat(this.central.getPoint().lng());if(!b){return}this.markers=$A(b);this.recalc()},addMarker:function(a){this.markers.push(a);if(this.markers.length>9){a.setLatLng(this.nextStep()).redraw()}else{this.recalc()}},nextStep:function(){var a=new GLatLng(this.lat+this.radius*Math.sin(this.angle),this.lng+2*this.radius*Math.cos(this.angle));this.angle+=this.deltaAngle;this.radius+=this.deltaRadius;this.deltaAngle*=0.95;return a},recalc:function(){Object.extend(this,this.defaults);this.deltaAngle=2*Math.PI/Math.min(9,this.markers.length);this.markers.each(function(a){a.setLatLng(this.nextStep()).redraw()},this)}};Anchor={data:{},empty:true,forbidSaving:1,parseCount:0,hasHashOnload:false,clone:function(){var a=Object.clone(Anchor);a.data={};return a},parse:function(a){this.data={};this.empty=true;this.parseCount++;a=a||window.location.hash;a.substring(1).split(/[\/^](?=search|goto|show|cat)/).each(function(d){var c=d.split(/&/);var b;switch(c[0]){case"goto":b={lat:parseFloat(c[1]),lng:parseFloat(c[2]),zoom:parseInt(c[3])};c[0]="go";if(b.zoom==undefined||b.zoom==NaN){b.zoom=14}if(c.length==5&&$A(["normal","satellite"]).indexOf(c[4])>=0){b.type=c[4]}break;case"cat":case"show":b=c.slice(1).join("&");break;case"search":b=$A(c.slice(1)).map(decodeURIComponent);break}if(b!=undefined){this.data[c[0]]=b;this.empty=false}},this);return this},get:function(){var a=[];$H(this.data).each(function(b){switch(b.key){case"go":b.key=["goto",b.value.lat,b.value.lng,b.value.zoom,b.value.type].join("&");break;case"cat":case"show":b.key+="&"+b.value;break;case"search":b.key+="&"+b.value.join("&");break}a.push(b.key)});return a.join("/")},set:function(b,a){this.empty=false;this.data={};this.data[b]=a;return this},update:function(b,a){this.empty=false;this.data[b]=a;return this},remove:function(a){delete this.data[a];if($H(this.data).keys().length==0){this.empty=true}return this},save:function(){var a=this.get();if(this.forbidSaving||a==window.location.hash){return this}window.dhtmlHistory.add(a);return this}};Anchor.parse();Anchor.parseCount=0;function initIGoogle(a){var I=$("searchToggle"),F=$("advanced_search"),G,D=[],L=$("address_advanced"),s=$("address_search"),M=$("address_options"),P=$("address_options_none"),t=$("address_options_hide"),e=$("profile"),f=$("profilePreview"),m=$("nextProfile"),H=$("hideProfile"),C=$("backOnMap"),J=$("befriend"),h=$("searchAgain"),i=$("friends"),z=$("unreadMessageLink"),x=$("toggleFriends"),p=$("messages"),j=$("toggleMessages"),v=$("controls"),n=$("map"),d=n.up(),b,N=$("main_tabs"),o=$("personal_stream"),A=$("login_form");if(!GBrowserIsCompatible()){return}if(Prototype.Browser.IE&&window.GUnload){document.observe("unload",GUnload)}N.observe("click",function(Q){Q.stop();var R=Q.element();if(!R.match("a")){return}R=R.up();if(R.hasClassName("act")){return}R.addClassName("act").siblings().invoke("removeClassName","act");p&&p.hide();if(R.hasClassName("tab_friends")){if(window.isGuest){A.up().up().show();$(A["auth[login]"]).focus()}else{o.up().show()}document.cookie="tab=person_stream;path=/igoogle"}else{o&&o.up().hide();window.isGuest&&A.up().up().hide();document.cookie="tab=;path=/igoogle"}});A&&A.observe("submit",function l(R){R.stop();A.request({add2url:"json",onSuccess:function(S){Ajax.parseResult(S);window.location.reload()},onFailure:Q,onException:Q});function Q(){A.stopObserving("submit",l);A.submit()}});x&&x.observe("click",function(Q){Q.stop();i.toggleClassName("small")});document.observe("click",function(Q){var R=Q.element();if(!R.match(".popout")){return}Q.stop();R.fire("popout:clicked")});o&&o.up().observe("click",function(Q){if(!Q.element().match("a")){return}Q.element().target="_blank"});j.observe("click",function(Q){Q.stop();if(window.isGuest){A.up().up().show();$(A["auth[login]"]).focus()}else{p.show()}N.childElements().invoke("removeClassName","act");document.cookie="tab=messages;path=/igoogle"});$(L.form).observe("submit",function(Q){Q.stop();g()});L.observe("focus",function(Q){if(!M.down()||M.down()==P){return}M.show();t.show()});t.observe("click",function(Q){Q.stop();M.hide();t.hide()});function g(){var Q;t.hide();M.hide().update();F.addr.value=L.value;new Ajax.Request("/resolver/json",{method:"get",parameters:{addr:L.value},onSuccess:function(S){var R=Ajax.parseResult(S);if(!R.results){return}if(R.results.length==1&&(Q=R.results[0])){window.map.setCenter(new GLatLng(parseFloat(Q.lat),parseFloat(Q.lng)),parseInt(Q.zoom));return}M.show();t.show();if(R.results.length==0){M.appendChild(P);return}$A(R.results).each(function(T){M.appendChild(Builder.node("li",T.name).observe("click",function(U){if(!U.isLeftClick()){return}window.map.setCenter(new GLatLng(parseFloat(T.lat),parseFloat(T.lng)),parseInt(T.zoom));this.addClassName("act").siblings().invoke("removeClassName","act")}))})}})}document.observe("keypress",function(Q){if(Q.keyCode!=Event.KEY_ESC){return}F.removeClassName("advanced");manager.enable();k(true);f.hide();M.hide();t.hide()});F.down().observe("click",function(Q){Q.stop();F.removeClassName("advanced");manager.enable()});I.observe("click",function(Q){Q.stop();if(window.isGuest){A.up().up().show();$(A["auth[login]"]).focus()}else{F.show().addClassName("advanced")}});F.observe("submit",function(Q){Q.stop();G=0;D=[];r()});if(!window.isGuest){popout(J)}m.observe("click",function(Q){Q.stop();G++;r()});document.observe("igoogleMarker:clicked",function(Q){u(Q.memo.props.page_url,Q.memo.getLatLng())});$A([H,C]).invoke("observe","click",function(){b&&w.removeOverlay(b);manager.enable();k(true);f.hide()});h.observe("click",function(Q){k(true);f.hide();F.show().addClassName("advanced")});function r(){manager.disable();k(false);b&&w.removeOverlay(b);e.addClassName("loading");f.removeClassName("empty").addClassName("from_search").show();F.hide();L.value=F.addr.value;var T=Object.extend(F.serialize(true),{offset:G});if(!$F("address")){var Q=w.getCenter(),R=Q.lat(),U=Q.lng(),S=0.5;T=Object.extend(T,{sw:{lat:R-S,lng:U-S}});T=Object.extend(T,{ne:{lat:R+S,lng:U+S}})}if(D&&D.length){T.id={not_in:D}}new Ajax.Request(F.action,{method:"get",parameters:{json:Object.toJSON($H(T))},onSuccess:function(X){var W=Ajax.parseResult(X);e.removeClassName("loading").update(W.html);J.href=W.message_url;b=undefined;if(!W.lat){f.addClassName("empty");return}D.push(W.id);var V=new GLatLng(parseFloat(W.lat),parseFloat(W.lng));K(V,W);w.panTo(O(V))}})}function u(R,Q){manager.disable();k(false,O(Q));e.addClassName("loading");f.removeClassName("empty").removeClassName("from_search").show();new Ajax.Request(F.action,{method:"get",parameters:{json:Object.toJSON($H({id:R.match(/\d+/)[0]}))},onSuccess:function(T){var S=Ajax.parseResult(T);e.update(S.html).removeClassName("loading");J.href=S.message_url;K(Q,S)}})}function k(R,Q){Q=Q||w.getCenter();if(R){d.addClassName("large")}else{d.removeClassName("large")}w.checkResize();w.setCenter(Q)}function K(R,Q){b=new IgoogleMicroMarker(R,{page_url:Q.page_url,photo_url:Q.photo_url});w.addOverlay(b);b.append()}function O(Q){var R=w.fromLatLngToContainerPixel(Q);return w.fromContainerPixelToLatLng(new GPoint(R.x,R.y-30))}Anchor.forbidSaving=10000;var w=window.map=new GMap2(n);window.manager=new window[a.manager||"MarkerManager"](w);window.manager.attach();v.down().down().observe("click",function(){w.setMapType(G_NORMAL_MAP)}).next().observe("click",function(){w.setMapType(G_HYBRID_MAP)}).up().next().down().next().observe("click",function(){w.zoomOut()}).next().observe("click",function(){w.zoomIn()});$("top").observe("click",function(){w.panDirection(0,1)});$("left").observe("click",function(){w.panDirection(1,0)});$("right").observe("click",function(){w.panDirection(-1,0)});$("bottom").observe("click",function(){w.panDirection(0,-1)});GEvent.addListener(w,"maptypechanged",function(){var Q;switch(w.getCurrentMapType()){case G_HYBRID_MAP:Q=v.down().down().next();Cookie.set("map","satellite");break;default:Q=v.down().down();Cookie.set("map","normal");break}Q.siblings().invoke("removeClassName","active");Q.addClassName("active")});initMarkerLoader();if(w.getCurrentMapType()==G_NORMAL_MAP&&a.type=="satellite"){w.setMapType(G_HYBRID_MAP)}w.setCenter(new GLatLng(a.latitude,a.longitude),a.zoom);var c=20000,q=$("igoogle_unmarkedCount"),B=$("unreadMessagesList"),y=$("friendsList");if(!y){return}y=y.childElements();function E(){new Ajax.Request("/im/json",{method:"get",parameters:{background:true},onSuccess:function(S){var Q=Ajax.parseResult(S),R=Q.messages&&Q.messages.length||0;q.update(R?"("+R+")":"");q.up()[R?"addClassName":"removeClassName"]("mail_new");B.next()[R?"hide":"show"]();B.update(contactListHandler.makeUnreadMessagesHtml(Q.messages));y.each(function(V,T){var U=a.friendsIds;V.down().next().next().replaceClassNameWith("online|away|offline",Q.onlineFriends[U]||"offline")})},on403:function(){A.up().up().show();$(A["auth[login]"]).focus()}});c*=1.5;setTimeout(E,c)}setTimeout(E,c);B.observe("click",function(){E.delay(3)})}window.domReady.push(function(){var a=$("chat_starter"),k=$("chat_starter_button");if(!k){return}var l=true,e,j,f=$("chat_start_marker").up(),d=$("chat_start_area"),p=$("chat_chooser"),o=p.down().next().next(),i=o.down(),g=i.down(),h=false;k.observe("click",function(q){targetSpan=k.down();if(targetSpan.hasClassName("disabled")){alert(targetSpan.title);return}Chat.hideChat();if(j){map.removeOverlay(j)}j=undefined;if(l){c(q);a.show();document.observe("mousemove",c);e=GEvent.addListener(map,"click",m);document.fire("markerManager:toggle",{state:false});this.addClassName("shouting")}else{n()}l=!l});function c(q){a.style.top=(q.pointerY()-52)+"px";a.style.left=(q.pointerX()-42)+"px"}function n(){a.hide();document.stopObserving("mousemove",c);GEvent.removeListener(e);document.fire("markerManager:toggle",{state:true});k.removeClassName("shouting")}function m(r,w){n();if(j){map.removeOverlay(j)}j=undefined;l=true;var q=map.getBounds(),x=q.getSouthWest(),t=q.getNorthEast(),v=0.05,s=v*(t.lat()-x.lat()),u=v*(t.lng()-x.lng()),z={sw:{lat:w.lat()-s,lng:w.lng()-u},ne:{lat:w.lat()+s,lng:w.lng()+u},startChat:true};new Ajax.Request(window.mapMarkersUrl,{method:"get",parameters:{json:Object.toJSON($H(z))},onSuccess:function(E){loadMarkers(E);var D;(function(){D=Object.clone(window.manager.allMarkers)}).defer();var A=Ajax.parseResult(E);if(A.markers.length==0){y();return}if(!h){h=true;p.down().observe("click",function(){p.hide()});o.observe("submit",function(G){G.stop();var H=o.getElements().find(function(I){return I.checked});if(!H){return}p.hide();if(H.value==-1){y();return}var F=D["_"+H.value];Chat.showChat(Object.extend({center:F.getLatLng()},F.props),F)})}var C=$A();$A(A.markers).sortBy(function(F){return F.online_count}).reverse().each(function(G,F){if(F>7){return}C.push(Builder.node("li",Builder.node("label",[Builder.node("input",{type:"radio",value:G.id,name:"chat[id]"}),Builder.node("span.online counter").update(G.online_count),Builder.node("span.text").update(String.replaceSmiles(G.leader_text.escapeHTML()))])))});if(C.length==0){y();return}g.remove();i.update();C.each(function(F){i.appendChild(F)});i.appendChild(g);var B=map.fromLatLngToContainerPixel(w);p.setStyle({left:B.x-42+"px",top:B.y-20-p.getHeight()+"px"}).show()}});function y(){j=new StartChatMarker(w,f);map.addOverlay(j);d.focus()}}f.down().down().observe("click",function(){if(j){map.removeOverlay(j)}j=undefined;n();l=true});d.observe("click",function(){(function(){d.focus()}).defer()}).observe("keypress",function(q){if(!Event.isCtrlEnter(q)){return}q.stop();Chat.postMessage(d,j,b)});$("chat_start_submit").observe("click",function(q){q.stop();Chat.postMessage(d,j,b)});function b(t,q){var s=new ChatMarker(j.getPoint(),t);s.size="l";var r=Builder.node("div");r.update(ChatMarker.getHtml(t));document.body.appendChild(r);(function(){s.getDom(r.firstChild);manager.addMarker(s);Chat.showChat(Object.extend({center:s.getPoint()},t),s,q)}).defer();map.removeOverlay(j);j=undefined;d.value="";return s}$("smileys_start").observe("click",function(q){var r=q.element();if(r.match("div")){return}if(r.match("img")){r=r.parentNode}$("chat_start_area").value+=" "+r.title+" ";$("chat_start_area").focus()});$("shoutbox_holder").down().observe("click",function(q){var r=q.element();if(r.match("a.collapse")){r.up().toggleClassName("collapsed");return}})});if(window.isGuest){window.domReady.push(function(){var d=$("lightbox_holder");if(!d){return}var b=$("registration_form");var c=$("login_form");var a=$("auth_nav")?$("auth_nav").childElements():undefined;window.manageAuth=function(f,e){if(!e){if(a){if(a[0].hasClassName("act")){a[0].removeClassName("act")}else{a[1].removeClassName("act")}}d.hide();b&&b.hide();c&&c.hide();$$("#chat .chat_users").first().show()}else{manageAuth(0,0);a&&a[f].addClassName("act");d.show();if(f==0){b&&b.show()}else{c&&c.show()}$$("#chat .chat_users").first().hide()}};d.down().next().down().observe("click",function(){manageAuth(0,0)});if(!c){return}if(a[0]){a[0].observe("click",function(){manageAuth(0,1)})}if($("avatar1")){$("avatar1").observe("click",function(){manageAuth(0,1)})}if(a[1]){a[1].observe("click",function(){manageAuth(1,1)})}$("user_name").makeRequired();$("user_email").makeRequired();$("user_password2").makeRequiredEqualTo("user_password",function(f,g,e){g.up(".required")[f?"addClassName":"removeClassName"]("requirementsMet")});(new Helper()).input("user_password");$($("user_name").form).observe("submit",function(e){if($("user_name","user_email","user_password","user_password2").find(function(f){return !f.up(".required").hasClassName("requirementsMet")})){e.stop();alert(Dic.word("error_fill_in_required_fields"))}})})}window.mapReady&&window.mapReady.push(function(){if(window==window.top){parentDomain=window.location.domain}var g=$("onlineCount");if(!g){return}map.removeMapType(G_SATELLITE_MAP);var a=new MarkerManager(map);setInterval(function(){GEvent.trigger(map,"zoomend")},15000);GEvent.addListener(map,"zoomend",function(h,i){if(i>18){map.setZoom(18)}});if(window!=window.parent&&parentDomain){GEvent.addListener(map,"zoomend",c);GEvent.addListener(map,"dragend",c);c()}var f=$("quest_text");document.observe("quest:changed",function(h){if(!f){return}f.update(h.memo.riddleText.escapeHTML());if(!h.memo.riddleText){f.up(".quest_banner").hide()}});document.observe("chat:peopleNumbersUpdated",function(h){g.update(h.memo.online).up().show()});document.observe("chat:peopleMarkersUpdated",function(k){var j=k.memo.people;if(!Object.isArray(j)){return}var i=$A(j).collect(function(m){return'<div class="chat_person_marker"><a target="_blank" href="'+m.page_url+'"><img src="'+m.photo_url+'" alt="" /></a></div>'});var l=$A();j.each(function(n){var m=new GLatLng(parseFloat(n.lat),parseFloat(n.lng));var o=new PersonChatMarker(m,n);l.push(o)});var h=Builder.node("div").hide();h.innerHTML=i.join("");document.body.appendChild(h);(function(){l.each(function(m,n){m.getDom(h.childNodes[n])});a.addMarkers(l);a.refresh()}).defer()});function c(){var i=map.getCurrentMapType()==G_NORMAL_MAP?"normal":"satellite";var j=["http://mirtesen.ru/chat?export=on#goto",map.getCenter().lat(),map.getCenter().lng(),map.getZoom(),i].join("&");var h=Builder.node("iframe",{style:"width:0; height:0;",src:"http://"+parentDomain+"/static/cdm.html#"+encodeURIComponent(j)});document.body.appendChild(h)}var b="",e=$("chat_shoutbox");function d(){new Ajax.Request("/chat/shoutbox/json",{method:"get",parameters:{background:true,time:new Date(),global:true,latest:b},onSuccess:function(i){var h=Ajax.parseResult(i);b=h.latest;if(!h.html){return}e.update(h.html.replace(/target="\w+"/g,""))},on403:Prototype.emptyFunction})}d();setInterval(d,14000)});window.domReady.push(function(){window.Chat=(function(){var y=$("chat");if(!y){return}var a=y.down(),r=a.next(),h=r.next(),E=h.next(),w=E.next(),f=w.next(),m=f.next().next(),t=m.next(),u=t.next(),b=$("chat_form"),o=b.up(),l=$("smileys"),z=$(b["message[text]"]),x=$(b["message[initial_message_id]"]),B,C,n="",e,j;l.observe("click",function(F){var G=F.element();if(G.match("div")){return}if(G.match("img")){G=G.parentNode}z.value+=" "+G.title+" ";z.focus()});z.observe("keypress",function(F){if(Event.isCtrlEnter(F)&&!z.value.empty()){b.submit.click()}});a.observe("click",function(){v()});window.mapReady.push(function(){GEvent.addListener(map,"movestart",function(){v()})});Event.observe(window,"resize",k);popout(r);function v(F){q();y.hide();window.map&&Anchor.remove("show").save();F||j&&j.setSize("s");map.enableScrollWheelZoom()}function i(I,G,F){q();j=G;window.map&&Anchor.update("show",j.id).save();window.MyChats.noNew&&window.MyChats.noNew(j.id);w.update(String.replaceSmiles(I.leader_text.escapeHTML()));E.update();f.update();h.href=I.leader_page_url;h.down().src=I.leader_photo_url;var H=ChatMarker.getCounter(I);m.update(H[1]);r.href=I.popout_url;r.className=r.className.replace(/popout_name_chat_\w+/,"")+" popout_name_chat_"+j.id;u.update();z.value="";x.value=I.id;b["message[lat]"].value=I.center.lat();b["message[lng]"].value=I.center.lng();b["message[zoom]"].value=map.getZoom();g(F);y.show();z.focus();k();window.map&&D(I.center,j)}function g(F){if(F){c(F,true)}else{p(true)}e=setInterval(p,3000)}function D(G,H){var I=y.cumulativeOffset();I.top+=y.getHeight()+H.div.getHeight()+20;I.left+=43;var F=map.fromContainerPixelToLatLng(new GPoint(I.left,I.top));map.setCenter(new GLatLng(map.getCenter().lat()-(F.lat()-G.lat()),map.getCenter().lng()-(F.lng()-G.lng())))}function q(){clearInterval(e);e=undefined;B=A(B,true);C=A(C);n=""}function A(F,G){if(!F){return}G&&F.transport.abort();return undefined}b.observe("submit",function(F){F.stop();d(z,j);z.focus()});y.observe("click",function(F){if(F.element().match("a.register")){manageAuth(0,1)}});function d(H,F,G){if(C||H.value.empty()){return}B=A(B);b.historyBefore.value=n;if(window.map){x.value=F.props&&F.props.initial_message_id||"";b["message[lat]"].value=F.center.lat();b["message[lng]"].value=F.center.lng();if(b["message[text]"].value!=H.value){b["message[text]"].value=H.value}if(!b["message[zoom]"].value){b["message[zoom]"].value=map.getZoom()}}C=b.request({onSuccess:function(M){try{var I=Ajax.parseResult(M)}catch(L){if(!(L instanceof AppJsException)){throw L}if(L.data&&L.data.parsed&&L.data.parsed.result&&L.data.parsed.result.chat_anonymous_messages_left<=0){manageAuth(0,1);return}throw L}if(I.banned){manageAuth(0,1);alert(Dic.word("chat_address_banned"));return}x.value=x.value||I.initial_message_id;if(F&&F.props){F.props.updated=I.updated}s(I);var J,K=$("logged_url");if(G){J=G({id:I.initial_message_id,initial_message_id:I.initial_message_id,leader_text:H.value,leader_page_url:K.href,leader_photo_url:K.down().src,online_count:I.online_count||1,updated:I.updated,popout_url:I.popout_url},I)}else{c(I)}window.MyChats.newChat&&window.MyChats.newChat(F.id||I.initial_message_id,J||F);if(F){F.update2&&F.update2({online_count:I.online_count||1,updated:I.updated});if(F.props){F.props.updated=I.updated}}H.value="";Cookie.set(I.initial_message_id,I.updated,10)},onComplete:function(){b.enable();H.focus();C=undefined},onException:function(){b.enable();H.focus()}});b.disable()}function p(F){if(B||C||!x.value){return}var G={initial_message_id:x.value,background:true};if(n){G.historyBefore=n}B=new Ajax.Request(b.action,{method:"get",parameters:G,onSuccess:function(I){var H=Ajax.parseResult(I);c(H,F);s(H);if(Cookie.get(x.value)){Cookie.set(x.value,H.updated,10)}Cookie.erase("chat_unread_messages")},onComplete:function(){B=undefined}})}function s(F){if(!("riddleText" in F)){return}if(F.riddleText){document.fire("quest:changed",F)}if(!F.riddleText){$("quest_text")&&$("quest_text").up(".quest_banner").hide()}}function c(F,G){if(!F){return}if(F.html){G=G||(u.getHeight()+u.scrollTop+10>u.scrollHeight);u.insert({bottom:F.html});if(G){(function(){u.scrollTop=10000000}).defer()}}if(F.participants){m.update(ChatMarker.getCounter({online_count:F.participants.length})[1]);var H=HtmlBuilder.node,I=t.scrollTop;t.update($A(F.participants).collect(function(J){return H("p",[H("a.photo",{href:J.page_url},H("img",{src:J.photo_url})),H("a.name online",{href:J.page_url,title:J.name},J.name),H("br"),H("span",(J.distance)?(J.distance+" "+Dic.word("mapchat_user_direction_"+J.direction)):"")])}).join(""));t.scrollTop=I;(function(){t.scrollTop=I}).defer()}if(F.supertitle){E.update().insert(F.supertitle+": ")}if(F.place){f.update().insert(F.place[0]);f.insert(" "+Dic.word("mapchat_user_direction_"+F.place[1]))}n=F.historyBefore||n}function k(){if(Prototype.Browser.IE){u.setStyle({height:y.offsetHeight-o.offsetHeight-80+"px",width:y.offsetWidth-190+"px"});t.setStyle({height:y.offsetHeight-o.offsetHeight-95+"px"})}else{$(u,t).invoke("setStyle",{bottom:o.offsetHeight+14+"px"})}}return{showChat:i,hideChat:v,postMessage:d,start:g,setChatDimensions:k}})();window.MyChats=(function(){var b=$("my_chats"),l="chats1",d=Cookie.get(l),o=$A(d?d.split(/,/):[]).uniq(),e={},a={},f=Builder.node("span.no_items",Dic.word("my_chats_no_items"));if(!b){return{}}function j(){Cookie.set(l,o.uniq().join(","),100)}function i(q,p){e[q]=p;if(o.indexOf(q)>-1){return}n(q,p)}function n(q,p){e[q]=p;o.push(q);a[q]=Builder.node("div.item",Builder.node("p",[Builder.node("a.close","x"),Builder.node("a.link"),Builder.node("span.messages_notice",Dic.word("mapchat_new_messages"))]));a[q].down().down().next().innerHTML=String.replaceSmiles(p.props.leader_text.escapeHTML());b.show().down().next().appendChild(a[q]);j();m()}function g(p){o=o.without(p);a[p]&&a[p].remove();delete e[p];delete a[p];j();Cookie.erase(p);Cookie.erase("chat_unread_messages");m()}function k(q){a[q].removeClassName("new_messages");var p=e[q];Chat.showChat(Object.extend({center:p.center},p.props),p)}function h(q,p){if(!e[q.id]||e[q.id].props.updated>=q.updated){return}if(!p){e[q.id].update(q)}if(Anchor.data.show!=q.id){a[q.id].addClassName("new_messages")}}function m(p){if(o.length==0){b.down().next().appendChild(f);return}else{if(f.parentNode){f.remove()}}new Ajax.Request("/chat/json",{method:"get",parameters:{json:Object.toJSON($H({id:o,background:true}))},onSuccess:function(r){var q=Ajax.parseResult(r);if(p===true){loadMarkers(r);(function(){$A(q.markers).each(function(t){n(t.id,manager.allMarkers["_"+t.id]);var s=Cookie.get(t.id);if(s){e[t.id].props.updated=s}});b.show()}).delay(0.02);return}$A(q.markers).each(h)}})}function c(p){if(!a[p]){return}a[p].removeClassName("new_messages")}b.observe("click",function(q){var r=q.element(),p=r.up("div.item"),s=o.find(function(t){return a[t]==p});if(r.match("a.close")){g(s);return}if(r.match("a.collapse")){r.up().toggleClassName("collapsed");return}k(s)});document.observe("marker:updated",function(p){h(p.memo,true)});m(true);setInterval(m,10000);return{newChat:i,noNew:c}})()});if(window.GOverlay){function StartChatMarker(a,b){this.center=a;this.div=b}StartChatMarker.prototype=MTMarkerProto("StartChatMarker");StartChatMarker.prototype.initialize=function(a){this.map=a;this.map.getPane(G_MAP_MARKER_PANE).appendChild(this.div.show())};StartChatMarker.prototype.redraw=function(b){if(!b){return}var a=this.map.fromLatLngToDivPixel(this.center);this.div.down().setStyle({marginLeft:0,left:0});this.div.style.left=a.x-42+"px";this.div.style.top=a.y-20+"px"}};
