var ControlTab=function(c,d,b,a){this.widget=c;this.el=$(d);this.content=$(b);if(a instanceof Object){Object.extend(this,a)}this.el.observe("click",(function(e){this.el.blur();this.activate()}).bindAsEventListener(this))};ControlTab.prototype.activate=function(){if(this.content&&!this.content.visible()){this.widget.notify(this.widget.evtTabActivate,this);this.content.show();if(Object.isFunction(this.onActivate)){this.onActivate()}}else{this.widget.notify(this.widget.evtTabActivate,null)}};ControlTab.prototype.deactivate=function(){if(this.content){this.content.hide()}if(Object.isFunction(this.onDeactivate)){this.onDeactivate()}};ControlTab.prototype.update=function(c,b,a){if(a!=this){this.deactivate()}};var GMapMarkerManager=function(widget,container,settings){this.onMarkerClick="";this.onMarkerChoose="";this.minLat=0;this.minLng=0;this.maxLat=0;this.maxLng=0;this.widget=widget;this.map=widget.map;this.list=null;if(Object.isElement(container)){var list=container.select("ol")[0];if(!list){this.list=new Element("ol").addClassName(settings.listClass||"");container.appendChild(this.list)}else{this.list=list}}this.markers={};this.infoWindowClass=settings.popupClass||"";this.editable=!!settings.editable;this.backend=settings.backend||"";this.parameters=(settings.parameters instanceof Object)?settings.parameters:{};this.form=Object.isElement(settings.form)?settings.form:null;this.getFormAction=settings.getFormAction||"";this.parent=settings.parentMarker instanceof GMarker?settings.parentMarker:null;this.onMarkerClick=eval(settings.onMarkerClick);this.onMarkerChoose=eval(settings.onMarkerChoose)};GMapMarkerManager.prototype=new Observable();GMapMarkerManager.prototype.setHiddenOne=function(b,d,a){b="location["+b+"]";if(a){Element.select(this.form,"input[type = 'hidden']").each(function(e){if(e.readAttribute("name")==b){e.remove()}})}var c=new Element("input");this.form.appendChild(c);c.writeAttribute("type","hidden");c.writeAttribute("name",b);c.writeAttribute("value",d)};GMapMarkerManager.prototype.fillHiddens=function(a){if(Object.isElement(this.form)){Element.select(this.form,"input[type = 'hidden']").each(function(c){if(c.readAttribute("name")==null){return}if(c.readAttribute("name").indexOf("location[")===0){c.remove()}});if(a instanceof Object){for(var b in a){if(!Object.isUndefined(a[b])){this.setHiddenOne(b,a[b])}}}}};GMapMarkerManager.prototype.flattenGeoInfo=function(c){var a={};if(c instanceof Object){if(c.Point instanceof Object&&Object.isArray(c.Point.coordinates)){a.longitude=c.Point.coordinates[0];a.latitude=c.Point.coordinates[1];a.altitude=c.Point.coordinates[2]}if(c.AddressDetails instanceof Object){a.countryCode=Try.these(function(){return c.AddressDetails.Country.CountryNameCode});a.area=Try.these(function(){return c.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName});if(a.area){a.subarea=Try.these(function(){return c.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName});var b=a.subarea?c.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea:c.AddressDetails.Country.AdministrativeArea;a.locality=Try.these(function(){return b.Locality.LocalityName});if(a.locality){a.thoroughfare=Try.these(function(){return b.Locality.Thoroughfare.ThoroughfareName})}}}}return a};GMapMarkerManager.prototype.initSaveForm=function(e,n){var l=e.popupNode;l.style.width="";if(e instanceof GMarker&&Object.isElement(l)&&n instanceof Object){var d=Try.these(function(){return Element.select(l,"."+n.submitClass)[0]});var o=Try.these(function(){return Element.select(l,"."+n.submitClass)[1]});var j=Object.extend({action:n.action,place_id:e.place_id,favouriteMode:this.widget.favouriteMode},this.parameters);var a=(function(){if(n.placeSelect instanceof Object){GMapWidget.prototype.setChangePlaceHandler.call(this.widget,l,n.placeSelect.countryCtrlClass,null,n.placeSelect.placeCtrlClass,n.placeSelect.getPlaceCtrl,null,null,0)}}).bind(this);var g=(function(){if(Object.isElement(d)){d.observe("click",(function(){var q=Object.extend(this.flattenGeoInfo(e.geoDetails),e.searchDetails);Element.select(l,"input","select").each(function(p){if(!p.disabled&&p.type!="checkbox"&&p.name&&0!=p.value){q[p.name]=p.value}});Element.select(l,'input[type="checkbox"]').each(function(p){if(!p.disabled&&p.name&&true==p.checked){q.sports=(Object.isUndefined(q.sports)?"":q.sports+",")+p.value}});q.latitude=e.draggingEnabled()?e.getPoint().lat():q.latitude;q.longitude=e.draggingEnabled()?e.getPoint().lng():q.longitude;q.manual=e.manual?1:0;for(var r in q){j["data["+r+"]"]=q[r]}new Ajax.Request(this.backend,{method:"post",parameters:j,onSuccess:(function(u,t){var s=ParseAjaxResponse(u.responseXML);var p=s.json;if(p){if(p.result){if(Object.isFunction(this.onMarkerChoose)&&p.locations.length){this.onMarkerChoose(p.locations[0].place_id)}this.widget.UpdateHidden(p.locations[0].place_id,1);this.removeMarker(e.place_id);this.fillHiddens(q);p.locations.reload=this.widget.singleLocationMode;this.removeRecommendMarkers();this.removeSearchMarkers();this.notify(this.widget.evtLoadLocations,p.locations)}else{if(p.message){alert(p.message)}}}}).bind(this)})}).bind(this))}}).bind(this);if(o){var f=Try.these(function(){return Element.select(l,"div."+n.dataBlockClass)[0]});var i=Try.these(function(){return Element.select(l,"a."+n.detailDataBlockClass)[0]});var c=Try.these(function(){return Element.select(l,"."+n.submitClass)[2]});var h=Try.these(function(){return Element.select(l,"."+n.submitClass)[3]});var b=function(p){if(Object.isElement(p)&&Object.isElement(o)){o.observe("click",(function(){if(p.visible()){p.hide()}else{p.show();o.hide()}GEvent.trigger(e,"click")}))}};if(Object.isElement(c)&&Object.isElement(f)){var m=0;c.observe("click",(function(){if(!m){var q=new Element("div");q.update('<img src="/res/8anidot4a.gif">&nbsp;&nbsp;'+n.pleaseWaitMsg);var p=c.parentNode;p.innerHTML="";p.appendChild(q);new Ajax.Request(this.backend,{method:"get",parameters:Object.extend({action:n.getDetailSave,lat:e.getPoint().lat(),lng:e.getPoint().lng()},this.widget.parameters),onSuccess:(function(x,u){var t=ParseAjaxResponse(x.responseXML);var v=t.html;q.parentNode.style.height="auto";q.parentNode.removeChild(q);Prototype.LoadScripts(v.extractSrcScripts());var w=new Element("div");f.insert({top:w});w.update(v);var r=Try.these(function(){return Element.select(l,"div."+n.detailDataBlockClass)[0]});g();b(r);a();var s=Element.select(e.popupNode,".popupForm")[0];if(s){s.update(n.draggableMarkerDescr)}if(f.visible()){f.hide()}else{f.show()}GEvent.trigger(e,"click")}).bind(this)});m=1}else{if(f.visible()){f.hide()}else{f.show()}GEvent.trigger(e,"click")}}).bind(this))}if(Object.isElement(h)){h.observe("click",(function(){this.widget.notify(this.widget.evtLoadRecomendations,e)}).bind(this))}}else{g()}}};GMapMarkerManager.prototype.initEditForm=function(c,n){var l=c.popupNode;if(c instanceof GMarker&&Object.isElement(l)&&n instanceof Object){var m=Try.these(function(){return Element.select(l,"."+n.deleteClass)[0]});var j=Object.extend({action:n.action,place_id:c.place_id},this.parameters);if(Object.isElement(m)){m.observe("click",(function(){if(confirm(n.confirm)){this.removeMarker(c.place_id);if(Object.isFunction(this.onMarkerChoose)){this.onMarkerChoose(null)}this.widget.UpdateHidden(c.place_id,0)}}).bind(this))}var e=Try.these(function(){return Element.select(c.popupNode,"h3")[0]});if(Object.isElement(e)){e=Try.these(function(){return Element.select(e,"a")[0]})}if(Object.isElement(e)&&n.edit instanceof Object&&n.edit.action){e.innerHTML=e.innerHTML.replace(/^\(/,"").replace(/\)$/,"");var a=e.parentNode;var b=Try.these(function(){return Element.select(l,"."+n.editClass)[0]});b.setStyle({marginRight:"12px"});var d=new Element("div").hide();var f=new Element("span").hide();a.appendChild(d);b.parentNode.insertBefore(f,b);var g=new Element("a").addClassName("link");f.appendChild(g);g.update(n.edit.okTitle||"Ok");var i=new Element("input",{type:"text"}).addClassName("textbox");d.appendChild(i);var h=new Element("a").addClassName("link_red_dashed");f.appendChild(h);h.setStyle({marginLeft:"12px",marginRight:"12px"});h.update(n.edit.cancelTitle||"Cancel");b.observe("click",(function(){i.value=e.innerHTML;d.show();e.hide();b.hide();f.show()}).bind(this));h.observe("click",(function(){d.hide();e.show();b.show();f.hide()}).bind(this));g.observe("click",(function(){if(n.exists){new Ajax.Request(this.backend,{method:"post",parameters:Object.extend({action:n.edit.action,place_id:c.place_id,descr:i.value},this.parameters),onSuccess:(function(q,p){var p=ParseAjaxResponse(q.responseXML);var o=p.json;if(o){if(o.result){if(Object.isFunction(this.onMarkerChoose)){this.onMarkerChoose(o.locations[0].place_id)}this.widget.UpdateHidden(c.place_id,0);this.removeMarker(c.place_id);this.widget.UpdateHidden(o.locations[0].place_id,1);o.locations.reload=this.widget.singleLocationMode;this.notify(this.widget.evtLoadLocations,o.locations)}else{if(o.message){alert(o.message)}}}}).bind(this)})}else{this.setHiddenOne(n.edit.descrId,i.value,true);e.innerHTML=i.value;d.hide();a.show();b.show();f.hide()}}).bind(this))}}};GMapMarkerManager.prototype.initChooseForm=function(a,d){var c=a.popupNode;if(a instanceof GMarker&&Object.isElement(c)&&d instanceof Object){var b=Try.these(function(){return Element.select(c,"."+d.submitClass)[0]});var e=Object.extend({action:d.action,place_id:a.place_id},this.parameters);if(Object.isElement(b)){b.observe("click",(function(){new Ajax.Request(this.backend,{method:"post",parameters:e,onSuccess:(function(i,h){var g=ParseAjaxResponse(i.responseXML);var f=g.json;if(f){if(f.result){if(Object.isFunction(this.onMarkerChoose)){this.onMarkerChoose(a.place_id)}this.widget.UpdateHidden(a.place_id,1);f.locations.reload=this.widget.singleLocationMode;if(this.widget.singleLocationMode){this.clear()}else{this.removeAllButExistingMarkers()}this.notify(this.widget.evtLoadLocations,f.locations)}else{if(f.message){alert(f.message)}}}}).bind(this)})}).bind(this))}}};GMapMarkerManager.prototype.createMarkerForm=function(a,e,c,b){if(a instanceof GMarker&&Object.isElement(a.popupNode)){Prototype.LoadScripts(e.extractSrcScripts());var d=Element.extend(a.popupNode).update(e);if(b){a.openInfoWindowHtml(d)}if(a.editable){if(a.choose_place){this.initChooseForm(a,c)}else{if(c.exists){this.initEditForm(a,c)}else{this.initSaveForm(a,c)}}}}};GMapMarkerManager.prototype.initFavouriteLocationLink=function(a,c,b){if(b){a.innerHTML=b.fav_link_html;favLinkEl=a.select("span")[0];favLinkEl.observe("click",(function(){var d=Object.extend({action:b.fav_action,place_id:c},this.parameters);new Ajax.Request(this.backend,{method:"post",parameters:d,onSuccess:(function(h,g){var f=ParseAjaxResponse(h.responseXML);var e=f.json;if(e){if(e.result){this.initFavouriteLocationLink(a,c,e.fav_link)}else{if(e.message){alert(e.message)}}if(this.widget&&this.widget.widgetBigPaneControl){this.widget.widgetBigPaneControl.chooseBtnReset(e.numUserLocations)}}return false}).bind(this)})}).bind(this))}};GMapMarkerManager.prototype.addMarker=function(d,g,m,c){if(typeof(GMap2)=="function"&&this.map instanceof GMap2){var b=!!(d.Point instanceof Object);var f=!b?d.lat:d.Point.coordinates[1];var h=!b?d.lng:d.Point.coordinates[0];var i=new GLatLng(f,h);if(d.place_id&&this.markers[Trim(d.place_id)] instanceof GMarker){return null}var l=new GIcon(G_DEFAULT_ICON);if(d.icon){l.image=d.icon;l.shadow=d.shadow;l.iconSize=GSize(30,30)}var e=new GMarker(i,{draggable:!!m,icon:l});e.exists=!!d.exists;e.place_id=d.place_id;e.is_search=d.is_search;e.editable=this.editable;e.choose_place=d.choose_place;e.geoDetails=b?d:null;e.searchDetails=(g instanceof Object)?g:null;e.manual=!!c;var a=new Element("div").addClassName(this.infoWindowClass);e.popupNode=a;e.bindInfoWindow(a);if(d.html){this.createMarkerForm(e,d.html,d);e.formLoaded=true}var j=Element.select(e.popupNode,".favouriteCtrl")[0];if(!this.widget.favouriteMode&&j){this.initFavouriteLocationLink(j,e.place_id,d.fav_link)}GEvent.addListener(e,"infowindowopen",(function(){if(e.formLoaded){return}Element.extend(e.popupNode).update(new Element("img",{src:"/res/8anidot4a.gif"}));e.formLoaded=true;var n={action:this.getFormAction,place_id:d.is_search?0:e.place_id,manual:!!e.manual?1:0,no_form:d.noForm?1:0,choose_place:!!d.choose_place?1:0,lat:i.lat(),lng:i.lng()};if(e.searchDetails instanceof Object){n=Object.extend(n,{searchDetails:Object.toJSON(e.searchDetails)})}n=Object.extend(n,this.parameters);new Ajax.Request(this.backend,{method:"get",parameters:n,onSuccess:(function(q,p){var o=ParseAjaxResponse(q.responseXML);this.createMarkerForm(e,o.html,o.json,true)}).bind(this)})}).bind(this));GEvent.addListener(e,"dragstart",function(){this.closeInfoWindow()});GEvent.addListener(e,"dragend",function(){GEvent.trigger(this,"click")});GEvent.addListener(e,"click",(function(){if(Object.isFunction(this.onMarkerClick)){this.onMarkerClick.bind(e,d.place_id).call()}}).bind(this));this.markers[Trim(d.place_id)]=e;this.map.addOverlay(e);return e}};GMapMarkerManager.prototype.add=function(b,c,d){var a=null;minLat=minLng=maxLat=maxLng=midLat=midLng=0;if(Object.isArray(b)){b.each(function(f){a=this.addMarker(f,c||f.AddressDetails,!!f.is_search);if(a instanceof GMarker&&Object.isElement(this.list)){var e=new Element("li",{place_id:f.place_id});this.list.appendChild(e);var g=new Element("div");g.update(f.brief);g.select("a").each(function(h){h.removeAttribute("href");e.appendChild(h)});e.appendChild(new Element("a").update("<br />"+g.innerHTML.toString().replace(/(<([^>]+)>)/ig,"")));e.select("a").each(function(h){Element.extend(h).observe("click",(function(i){GEvent.trigger(i,"click")}).curry(a))});a.listItem=e}},this)}return a};GMapMarkerManager.prototype.removeMarker=function(b){var a=this.markers[b];if(typeof(GMap2)=="function"&&a instanceof GMarker){GEvent.clearInstanceListeners(a);this.map.removeOverlay(a);if(Object.isElement(a.listItem)){Element.extend(a.listItem).remove()}delete (this.markers[b])}};GMapMarkerManager.prototype.getParent=function(){return this.parent};GMapMarkerManager.prototype.destructor=function(){if(this.destructed){return}this.destructed=true;this.clear();this.detachObservers();if(this.list!=null){this.list.remove()}};GMapMarkerManager.prototype.focusOnMarker=function(a,b){if(Object.isUndefined(b)){b=10}a+="";marker=this.markers[a];if(marker instanceof GMarker){if(b){this.map.setCenter(marker.getPoint(),b)}GEvent.trigger(marker,"click")}};GMapMarkerManager.prototype.observeMarkerOnClick=function(b,a){b+="";marker=this.markers[b];if(marker instanceof GMarker){GEvent.addListener(marker,"click",a)}};GMapMarkerManager.prototype.setDefaultViewPort=function(){this.calcBounds();var a=new GLatLngBounds(new GLatLng(this.minLat,this.minLng),new GLatLng(this.maxLat,this.maxLng));midLat=(this.minLat+this.maxLat)/2;midLng=(this.minLng+this.maxLng)/2;if(midLat||minLat){this.map.setCenter(new GLatLng(midLat,midLng),this.map.getBoundsZoomLevel(a))}else{this.map.setCenter(new GLatLng(this.widget.defaults.lat,this.widget.defaults.lng),this.widget.defaults.scale)}this.viewPortSet=true};GMapMarkerManager.prototype.calcBounds=function(){this.minLat=this.minLng=10000;this.maxLat=this.maxLng=-10000;var a=0;$H(this.markers).each(function(b){b=b.value;lat=parseFloat(b.getLatLng().lat());lng=parseFloat(b.getLatLng().lng());if(lat<this.minLat){this.minLat=lat}if(lat>this.maxLat){this.maxLat=lat}if(lng<this.minLng){this.minLng=lng}if(lng>this.maxLng){this.maxLng=lng}a++},this);if(a>0){this.minLat-=0.0015;this.minLng-=0.0015;this.maxLat+=0.0015;this.maxLng+=0.0015}};GMapMarkerManager.prototype.clear=function(a){if(Object.isUndefined(a)){a=Array()}$H(this.markers).keys().each(function(b){if(!a.grep(b).length){this.removeMarker(b)}},this);this.calcBounds()};GMapMarkerManager.prototype.removeRecommendMarkers=function(){$H(this.markers).each(function(a){a=a.value;if(a.choose_place){this.removeMarker(a.place_id)}},this)};GMapMarkerManager.prototype.removeSearchMarkers=function(){$H(this.markers).each(function(a){a=a.value;if(a.is_search){this.removeMarker(a.place_id)}},this)};GMapMarkerManager.prototype.removeAllButExistingMarkers=function(){$H(this.markers).each(function(a){a=a.value;if(!a.exists||a.choose_place){this.removeMarker(a.place_id)}},this)};var GMapWidget=function(settings){this.defaults={scale:10,lat:0,lng:0},this.onMarkerClick="";this.onMarkerChoose="";this.hiddenFieldName=null;this.favouriteMode=0;this.viewSettings={};if(settings instanceof Object){var mapNode=$(settings.mapId);if(mapNode&&settings.googleKey&&settings.backend){this.map=null;this.markerManager=null;this.backend=settings.backend;this.parameters={};this.parameters.location_ids=settings.locationIds;this.parameters.map_id=settings.mapId;this.parameters.can_manage=parseInt(settings.canManage);this.parameters.single_location_mode=settings.singleLocationMode;this.parameters.direct_edit_mode=settings.directEditMode;this.parameters.favourite_mode=settings.favouriteMode;this.singleLocationMode=!!parseInt(settings.singleLocationMode);this.evtToggleSearchControl=settings.mapId+"EVENT_GMAP_TOGGLE_SEARCH_CONTROL";this.evtToggleFilterControl=settings.mapId+"EVENT_GMAP_TOGGLE_FILTER_CONTROL";this.evtTabActivate=settings.mapId+"EVENT_GMAP_TAB_ACTIVATE";this.evtSuccessSearch=settings.mapId+"EVENT_GMAP_SUCCESS_SEARCH";this.evtLoadLocations=settings.mapId+"EVENT_GMAP_LOAD_LOCATIONS";this.evtLoadRecomendations=settings.mapId+"EVENT_GMAP_LOAD_RECOMENDATIONS";this.evtLoadUserLocations=settings.mapId+"EVENT_GMAP_LOAD_USER_LOCATIONS";this.evtGetStepPointBlock=settings.mapId+"EVENT_GMAP_LOAD_STEP_POINT_BLOCK";if(settings.readonly){this.parameters.readonly=1}this.form=$(settings.backendForm);this.defaults.scale=parseInt(settings.scale)||10;this.defaults.lat=parseFloat(settings.lat)||0;this.defaults.lng=parseFloat(settings.lng)||0;this.onMarkerClick=settings.onMarkerClick;this.onMarkerChoose=settings.onMarkerChoose;this.onLocationSelect=settings.onLocationSelect?function(sender){eval(settings.onLocationSelect)}:null;this.hiddenFieldName=settings.hiddenFieldName;this.defaultRecomendMode=settings.defaultRecomendMode;this.favouriteMode=settings.favouriteMode;this.openBigPanel=settings.openBigPanel;this.noResultPanel=settings.noResultPanel;this.recomendLocationIds=settings.recomendLocationIds;this.viewSettings.popupClass=Try.these(function(){return settings.popup.className})||"";var callbackName="loadGMap_"+settings.mapId;window[callbackName]=this.createMap.bind(this,mapNode,Try.these(function(){return settings.actions.renderControl}),settings.initXml);if(typeof(GMap2)!="function"){var path="http://maps.google.com/maps?file=api&v=2&key=#{key}&c&async=2&callback=#{callback}".interpolate({key:settings.googleKey,callback:callbackName});var script=new Element("script",{src:path,type:"text/javascript"});(Try.these(function(){return $$("head")[0]})||$(document.documentElement).firstDescendant()).appendChild(script)}else{window[callbackName]()}}}};GMapWidget.prototype=new Observable();GMapWidget.prototype.search=function(c,a){if(typeof(GMap2)=="function"&&this.map instanceof GMap2&&this.markerManager instanceof GMapMarkerManager){if(this.singleLocationMode){this.markerManager.clear()}else{this.markerManager.removeSearchMarkers()}var b=Array();var g=0;var h=c[0];var j=h+" not found";var d=(function(l,o,p){if(!Object.isArray(l)){alert(p);return 0}if(!(l.length>0)){alert(p);return 0}this.notify(this.evtSuccessSearch);var n=0;l.each(function(q){if(!q.place_id){q.place_id="search"+n++}q.is_search=1});this.markerManager.clear();var m=this.markerManager.add(l,o);this.markerManager.setDefaultViewPort();this.widgetBigPaneControl.hideControl();if((m instanceof GMarker)&&(l.length==1)){(function(){GEvent.trigger(m,"click")}).defer()}return 1}).bind(this);var f="";c.each(function(l){f+=l+", "});new Ajax.Request(this.backend,{method:"get",parameters:Object.extend({action:this.searchLocations,query:f},this.parameters),onSuccess:(function(n,m){var l=ParseAjaxResponse(n.responseXML);m=l.json;if(m.result){m.locations.each(function(o){b[b.length]=o})}if(g==1){d(b,a,j)}g=1}).bind(this)});var i=(function(l){var m=c[e++];if(!l||l.Status.code!=200){if(e>=c.length){place_id=Try.these(function(){return parseInt(a.step_place_id)});if(place_id){new Ajax.Request(this.backend,{method:"get",parameters:Object.extend({action:this.getPlaceDataAction,place_id:place_id},this.parameters),onSuccess:(function(p,o){var n=ParseAjaxResponse(p.responseXML);o=n.json;if(o.result){b[b.length]=Object.extend({is_search:1},o)}if(g==1){d(b,a,j)}g=1}).bind(this)})}else{if(g==1){d(b,a,j)}g=1}}else{var m=c[e];this.geocoder.getLocations(m,i)}}else{l.Placemark.each(function(n){b[b.length]=n});if(g==1){d(b,a,j)}g=1}}).bind(this);var e=0;this.geocoder.getLocations(h,i)}};GMapWidget.prototype.searchDatabaseLocations=function(a){var b="";a.each(function(c){b+=c+", "});new Ajax.Request(this.backend,{method:"get",parameters:Object.extend({action:this.searchLocations,query:b},this.parameters),onSuccess:(function(e,d){var c=ParseAjaxResponse(e.responseXML);d=c.json;alert(d.result);if(d.result){return d.locations}else{alert(baseQuery+" not found")}}).bind(this)})};GMapWidget.prototype.setChangePlaceHandler=function(b,e,g,c,d,i,f,h){if(Object.isElement(b)){var a=Try.these(function(){return e?Element.select(b,'[classtitle="'+e+'"]')[0]:null});var l=Try.these(function(){return g?Element.select(b,"."+g)[0]:null});var j=Try.these(function(){return c?Element.select(b,"."+c)[0]:null});if(a&&j&&d){$(a).observe("change",(function(m){Element.select(j,"input","select").invoke("disable");var o=l?Element.select(l,"input","select"):null;if(o){o.invoke("disable")}var n=o?Object.extend({action:f,for_search_form:h,country:m.element().value,render_place_select:1},this.parameters):Object.extend({action:d,for_search_form:h,country:m.element().value},this.parameters);new Ajax.Request(this.backend,{method:"get",parameters:n,onSuccess:(function(s,q){var p=ParseAjaxResponse(s.responseXML);q=p.json;if(o){l.update(p.html);var r=Element.select(l,"#"+q.placeCtrlBlockId)[0];if(r){j.innerHTML=r.innerHTML;r.parentNode.removeChild(r)}}else{j.update(p.html)}if(o){this.setChangeRegionHandler(b,e,g,c,i,f,h)}}).bind(this)})}).bind(this))}this.setChangeRegionHandler(b,e,g,c,i,f,h)}};GMapWidget.prototype.setChangeRegionHandler=function(b,d,f,c,h,e,g){if(Object.isElement(b)){var a=Try.these(function(){return d?Element.select(b,'[classtitle="'+d+'"]')[0]:null});var l=Try.these(function(){return f?Element.select(b,"."+f)[0]:null});var j=Try.these(function(){return c?Element.select(b,"."+c)[0]:null});if(a&&l&&e){var i=Element.select(l,"input","select")[0];$(i).observe("change",(function(m){Element.select(j,"input","select").invoke("disable");var n=a.options[a.selectedIndex].value;new Ajax.Request(this.backend,{method:"get",parameters:Object.extend({action:h,for_search_form:g,country:n,region:m.element().value},this.parameters),onSuccess:function(q,p){var o=ParseAjaxResponse(q.responseXML);p=o.json;j.update(o.html)}})}).bind(this))}}};GMapWidget.prototype.initMarkerManagerTab=function(c){if(c instanceof Object&&c.tabs instanceof Object&&this.tabs instanceof Object){var d=this.tabs[c.tabs.searchTab];var b=this.tabs[c.tabs.resultTab];if(d instanceof ControlTab){d.el.observe("click",(function(f){this.widgetBigPaneControl.showControl();return}).bind(this))}if(b instanceof ControlTab){var e={popupClass:this.viewSettings.popupClass,editable:this.editable,backend:this.backend,parameters:this.parameters,form:this.form,getFormAction:c.actions.getLocForm,onMarkerClick:this.onMarkerClick,onMarkerChoose:this.onMarkerChoose};this.markerManager=new GMapMarkerManager(this,b.content,e);this.attachObserver(this.evtSuccessSearch,function(g,f){b.activate()});this.attachObserver(this.evtLoadRecomendations,(function(p,l,h){if(h instanceof GMarker){if(this.markerManager instanceof GMapMarkerManager){var f=Array();$H(this.markerManager.markers).each(function(i){f[f.length]=i.value.place_id},this);this.markerManager.removeRecommendMarkers();var m=125;var o=this.map.getZoom();if(o<3){o=3}var n=1;for(var g=0;g<(17-o);g++){n*=2}var j=m*n;new Ajax.Request(this.backend,{method:"get",parameters:Object.extend({action:c.actions.getRecomendLocations,lat:h.getPoint().lat(),lng:h.getPoint().lng(),radius:j},this.parameters),onSuccess:(function(s,r){var q=ParseAjaxResponse(s.responseXML);responseJson=q.json;if(responseJson&&responseJson.result){this.markerManager.add(responseJson.locations);this.widgetControl.showControl();var i=this.tabs[c.tabs.resultTab];if(i instanceof ControlTab){i.activate()}}else{alert(c.nothingFoundMsg)}}).bind(this)})}}}).bind(this));this.attachObserver(this.evtLoadUserLocations,(function(f,g,h){new Ajax.Request(this.backend,{method:"get",parameters:Object.extend({action:c.actions.getUserLocations},this.parameters),onSuccess:(function(l,j){var i=ParseAjaxResponse(l.responseXML);responseJson=i.json;if(responseJson&&responseJson.result&&responseJson.locations.length){this.widgetBigPaneControl.hideControl();this.markerManager.clear();this.markerManager.add(responseJson.locations);this.markerManager.setDefaultViewPort();this.widgetControl.showControl();this.widgetBigPaneControl.hideControl()}else{if(h){alert(c.noFavLocationsMsg)}else{this.widgetBigPaneControl.showControl()}}}).bind(this)})}).bind(this));var a=!Object.isArray(c.locations)&&this.defaultRecomendMode;if(a){if(this.recomendLocationIds.result>0){this.markerManager.add(this.recomendLocationIds.locations);this.markerManager.setDefaultViewPort();this.widgetControl.showControl()}else{this.notify(this.evtLoadUserLocations)}}this.markerManager.attachObserver(this.evtLoadLocations,(function(g,h,i){if(i&&i.reload){this.markerManager.clear()}var f=this.markerManager.add(i);this.markerManager.setDefaultViewPort();this.widgetControl.showControl();if(Object.isArray(i)&&f instanceof GMarker){if(i.length==1){(function(){GEvent.trigger(f,"click")}).bind(this).defer();if(!this.editable){this.widgetControl.hideControl()}}else{if(b instanceof ControlTab){b.activate()}}}}).bind(this));(function(){this.markerManager.notify(this.evtLoadLocations,c.locations)}).bind(this).defer()}}};GMapWidget.prototype.initTabs=function(a,c){var b=null;var d=c.tabs.activeTabClass;this.tabs={};Element.select(a,c.tabs.items).each(function(f){var g=$(f.id+c.tabs.contentSuffix);if(g){Element.extend(g).hide()}var e=new ControlTab(this,f,g,{onActivate:(function(h){if(h){this.el.addClassName(h)}}).curry(d),onDeactivate:(function(h){if(h){this.el.removeClassName(h)}}).curry(d)});this.tabs[f.id]=e;this.attachObserver(this.evtTabActivate,e);if(f.hasClassName(d)){b=e}},this);this.initMarkerManagerTab(c);if(b){b.activate()}};GMapWidget.prototype.createControl=function(d,c){var e=d;var b=c;this.editable=this.parameters.can_manage;if(typeof(GMap2)=="function"&&this.map instanceof GMap2&&e!=""){var a=new Element("div").hide();var f=function(){};f.prototype=new GControl();f.prototype.initialize=(function(g){g.getContainer().appendChild(a);a.update(e);this.editable=this.parameters.can_manage;if(b instanceof Object&&b.tabs){this.resultItemClass=b.resultItemClass||"";this.initTabs(a,b)}return a}).bind(this);f.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(0,0))};f.prototype.hideControl=function(){a.hide()};f.prototype.showControl=(function(){if(!this.noResultPanel){a.show()}}).bind(this);this.widgetControl=new f();this.map.addControl(this.widgetControl);this.geocoder=new GClientGeocoder();this.attachObserver("focusOnMarker",(function(g,h,i){if(i[0]==this.parameters.map_id){this.focusOnMarker(i[1],i[2])}}).bind(this))}};GMapWidget.prototype.initMapControls=function(c){var b=ParseAjaxResponse(c);var a=b.json;this.getPlaceDataAction=a.actions.getPlaceData;this.searchLocations=a.actions.searchLocations;this.createControl(b.html,a);this.createPutMarkerControl(a);this.createBigPaneControl(a);if(this.openBigPanel||!Object.isArray(a.locations)&&!this.defaultRecomendMode){if(this.widgetBigPaneControl){this.widgetBigPaneControl.showControl()}}};GMapWidget.prototype.createMap=function(b,a,c){if(typeof(GMap2)=="function"&&GBrowserIsCompatible()){this.map=new GMap2(b);this.map.addControl(new GSmallZoomControl());this.map.addControl(new GMapTypeControl(),new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(10,15)));GEvent.addListener(this.map,"click",(function(){this.notify(this.evtTabActivate,null)}).bind(this));if(a){if(c){this.initMapControls(ParseXmlString(c))}else{new Ajax.Request(this.backend,{method:"get",parameters:Object.extend({action:a},this.parameters),onSuccess:(function(e,d){this.initMapControls(e.responseXML)}).bind(this)})}}}};GMapWidget.prototype.destructor=function(){if(this.destructed){return}this.destructed=true;this.detachObservers();if(this.markerManager instanceof GMapMarkerManager){this.markerManager.destructor()}GEvent.clearInstanceListeners(this.map);this.map.clearOverlays();this.map.removeControl(this.widgetControl);delete (this.widgetControl);delete (this.map);delete (this.geocoder)};GMapWidget.prototype.focusOnMarker=function(a,b){if(this.markerManager instanceof GMapMarkerManager){this.markerManager.focusOnMarker(a,b)}};GMapWidget.prototype.observeMarkerOnClick=function(b,a){if(this.markerManager instanceof GMapMarkerManager){this.observeMarkerOnClick(b,a)}};GMapWidget.prototype.setDefaultViewPort=function(){var f=minLng=10000;var e=maxLng=-10000;if(this.markerManager instanceof GMapMarkerManager){this.markerManager.calcBounds();if(f>this.markerManager.minLat){f=this.markerManager.minLat}if(minLng>this.markerManager.minLng){minLng=this.markerManager.minLng}if(e<this.markerManager.maxLat){e=this.markerManager.maxLat}if(maxLng<this.markerManager.maxLng){maxLng=this.markerManager.maxLng}}if(f==10000){f=minLng=e=maxLng=0}var c=new GLatLngBounds(new GLatLng(f,minLng),new GLatLng(e,maxLng));this.geocoder.setViewport(c);var d=(f+e)/2;var a=(minLng+maxLng)/2;if(d||a){var b=this.map.getBoundsZoomLevel(c);if(b>15){b=15}this.map.setCenter(new GLatLng(d,a),b)}else{this.map.setCenter(new GLatLng(this.defaults.lat,this.defaults.lng),this.defaults.scale)}this.viewPortSet=true};GMapWidget.prototype.UpdateHidden=function(locationId,add){locationId=parseInt(locationId);var IdsStr=this.parameters.location_ids.toString();if(this.singleLocationMode){IdsStr=locationId.toString()}else{IdsStr=IdsStr.gsub("(,*\\s*)$","");var IdsArr=eval("["+IdsStr+"]");var index=IdsArr.indexOf(locationId);if(add&&index==-1){IdsStr=IdsStr+", "+locationId.toString()}else{if(!add&&index!=-1){IdsStr="";IdsArr.each(function(val){val=parseInt(val);if(val&&val!=locationId){IdsStr+=val+","}})}}}if($(this.hiddenFieldName)){$(this.hiddenFieldName).value=IdsStr}this.parameters.location_ids=IdsStr;if(Object.isFunction(this.onLocationSelect)){this.onLocationSelect(this)}return IdsStr};GMapWidget.prototype.GetLocationIdsStr=function(){return this.parameters.location_ids};GMapWidget.prototype.initBigPaneControl=function(c,i){var g=Try.these(function(){return i.pointBtnClass?Element.select(c,"."+i.pointBtnClass)[0]:null});var a=Try.these(function(){return i.manualBtnClass?Element.select(c,"."+i.manualBtnClass)[0]:null});var f=Try.these(function(){return i.chooseBtnClass?Element.select(c,"."+i.chooseBtnClass)[0]:null});var h=Try.these(function(){return Element.select(c,".cancelBtn")[0]});var e=Try.these(function(){return i.pointBtnClass?Element.select(c,"."+i.contentsBlockClass)[0]:null});var d=Try.these(function(){return i.pointBtnClass?Element.select(c,"."+i.stepPointsBlockClass)[0]:null});this.attachObserver(this.evtGetStepPointBlock,(function(l,m,o){var r=o.country_id;var n=o.full_country?1:0;var p=o.region_id;var j=o.place_id;var q=o.page;d.innerHTML='<img src="/res/8anidot4a.gif">';new Ajax.Request(this.backend,{method:"get",parameters:Object.extend({action:i.actions.getStepPointBlock,country_id:r,full_country:n,region_id:p,place_id:j,page:q},this.parameters),onSuccess:(function(s,A){var t=ParseAjaxResponse(s.responseXML);A=t.json;d.update(t.html);Element.select(d,"a[href*=/?page=]").each((function(C){var B=C.onclick;if(Object.isFunction(B)){C.stopObserving();C.observe("click",B.bind(this))}}).bind(this));var w=Element.select(d,"a.backLink")[0];if(w){if(!r){w.observe("click",(function(){d.hide();e.show()}).bind(this))}else{w.observe("click",(function(){var B={full_country:n};if(j){B.region_id=p}if(p){B.country_id=r}this.notify(this.evtGetStepPointBlock,B)}).bind(this))}}Element.select(d,"div.stepPointLine").each((function(D){var C=0;var B={full_country:n};D.select("a").each((function(E){E.observe("click",(function(F){if(F==1){B.country_id=r}else{if(F==2){B.region_id=p}}this.notify(this.evtGetStepPointBlock,B)}).bind(this,C));C++}).bind(this))}).bind(this));if(j){var x=Element.select(d,"input[type = 'button']")[0];var y=Try.these(function(){return(Element.select(d,".queryValue")[0]).value});var u=[];Element.select(d,".queryValue").each((function(B){u[u.length]=B.value}).bind(this));if(x){x.observe("click",(function(){var C={};Element.select(d,"input[type = 'hidden']").each(function(F){if(0!=F.value&&-1!=F.value&&!F.disabled&&F.name){C[F.name]=F.value}});var E=Try.these(function(){return(Element.select(d,"input[type = 'text']")[0])});var B="";if(E){B=E.value.toString()}if(B.length){C[E.name]=B}C.region_id=p;B=B==""?B:", "+B;var D=[];for(k=0;k<u.length;k++){D[k]=u[k]+B}this.search(D,C)}).bind(this))}}else{var z={};if(p){z.region_id=p}if(r){z.country_id=r}var v=p?"place_id":(r?"region_id":"country_id");param={full_country:n};Element.select(d,"a").each((function(B){if(B.name){B.observe("click",(function(){param[v]=B.name;this.notify(this.evtGetStepPointBlock,Object.extend(param,z))}).bind(this))}else{if(B.hasClassName("showAll")){B.observe("click",(function(){this.notify(this.evtGetStepPointBlock,{full_country:1})}).bind(this))}}}).bind(this))}}).bind(this)})}).bind(this));if(h){h.observe("click",(function(){this.widgetBigPaneControl.hideControl()}).bind(this))}if(g&&e&&d){g.observe("click",(function(){e.hide();d.show();this.notify(this.evtGetStepPointBlock,{});this.widgetPutMarkerControl.hideControl()}).bind(this))}if(a){a.observe("click",(function(){this.widgetPutMarkerControl.selectMode("point");if(!this.viewPortSet&&!this.markerManager.viewPortSet){this.setDefaultViewPort()}}).bind(this))}var b=Element.select(e,"input[type = 'button']")[0];if(b){b.observe("click",(function(){var j=Try.these(function(){return((Element.select(c,"input[type = 'text']")[0]).value).toString()});this.search([j],null)}).bind(this))}this.widgetBigPaneControl.chooseBtnReset(i.numUserLocations)};GMapWidget.prototype.createBigPaneControl=function(c){if(!this.parameters.can_manage){return}var b=c;var d=b.controlPaneHtml;if(typeof(GMap2)=="function"&&this.map instanceof GMap2&&d!=""){var a=new Element("div");var e=function(){};e.prototype=new GControl();e.prototype.initialize=(function(f){a.clonePosition(f.getContainer());f.getContainer().appendChild(a);a.update(d);if(b instanceof Object){this.initBigPaneControl(a,b)}Event.observe(window,"resize",(function(){a.clonePosition(f.getContainer())}));return a}).bind(this);e.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(0,0))};e.prototype.hideControl=function(){a.hide()};e.prototype.showControl=(function(){var g=Try.these(function(){return b.pointBtnClass?Element.select(a,"."+b.contentsBlockClass)[0]:null});var f=Try.these(function(){return b.pointBtnClass?Element.select(a,"."+b.stepPointsBlockClass)[0]:null});a.show();if(g){g.show()}if(f){f.hide()}}).bind(this);e.prototype.chooseBtnReset=(function(i){var f=Try.these(function(){return c.chooseBtnClass?Element.select(a,"."+c.chooseBtnClass)[0]:null});var h=Try.these(function(){return Element.select(a,"[id='noFavLocationsMsg']")[0]});var g=f?(function(){this.widgetPutMarkerControl.hideControl();this.notify(this.evtLoadUserLocations,c.noFavLocationsMsg)}).bind(this):null;if(g){if(parseInt(i)){Event.observe(f,"click",g);if(h){h.hide()}}else{Event.stopObserving(f,"click",g);if(h){h.show()}}}}).bind(this);this.widgetBigPaneControl=new e();this.widgetBigPaneControl.hideControl();this.map.addControl(this.widgetBigPaneControl)}};GMapWidget.prototype.setManualMarkerMode=function(a){this.widgetBigPaneControl.hideControl();this.manualClickListener=GEvent.bind(this.map,"click",this,(function(c,b){if(b){if(this.singleLocationMode){this.markerManager.clear()}else{this.markerManager.removeAllButExistingMarkers()}this.notify(this.evtTabActivate);var c=this.markerManager.addMarker(Object.extend(a.draggable.data,{lat:b.lat(),lng:b.lng(),html:a.draggable.html}),null,true,true);GEvent.trigger(c,"click");this.mapClickCounter++}GEvent.removeListener(this.manualClickListener);if(this.widgetPutMarkerControl){this.widgetPutMarkerControl.selectMode("view")}}).bind(this))};GMapWidget.prototype.createPutMarkerControl=function(a){if(!this.parameters.can_manage){return}var b=this;var d=function(){};d.prototype=new GControl();var c=new Element("div");d.prototype.initialize=function(g){var f=this;f.buttons_=[];var j={img_url:"http://www.google.com/intl/en_us/mapfiles/ms/t/Bsu.png",img_hover_url:"http://www.google.com/intl/en_us/mapfiles/ms/t/Bsd.png",name:"view"};var h=this.createButton_(j);var e={img_url:"http://www.google.com/intl/en_us/mapfiles/ms/t/Bmu.png",img_hover_url:"http://www.google.com/intl/en_us/mapfiles/ms/t/Bmd.png",name:"point"};var i=this.createButton_(e);GEvent.trigger(h.img,"click");c.appendChild(h.img);c.appendChild(i.img);g.getContainer().appendChild(c);return c};d.prototype.hideControl=function(){c.hide()};d.prototype.showControl=function(){c.show()};d.prototype.createButton_=function(f){var h=this;var g={};g.opts=f;var e=new Element("img",{src:f.img_url});e.setStyle({cursor:"pointer",width:"33px",height:"33px",border:0});GEvent.addDomListener(e,"click",function(){for(var j=0;j<h.buttons_.length;j++){h.buttons_[j].img.src=h.buttons_[j].opts.img_url}e.src=f.img_hover_url;GEvent.trigger(h,f.name)});g.img=e;g.name=f.name;h.buttons_.push(g);return g};d.prototype.selectMode=function(f){me=this;for(var e=0;e<me.buttons_.length;e++){if(me.buttons_[e].name==f){GEvent.trigger(me.buttons_[e].img,"click");return}}};d.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(38,8))};this.widgetPutMarkerControl=new d();this.widgetPutMarkerControl.hideControl();this.map.addControl(this.widgetPutMarkerControl);GEvent.addListener(this.widgetPutMarkerControl,"point",(function(){this.setManualMarkerMode(a);this.widgetPutMarkerControl.showControl()}).bind(this));GEvent.addListener(this.widgetPutMarkerControl,"view",(function(){GEvent.removeListener(this.manualClickListener)}).bind(this))};function GMapPageObserve(e,b,d,f,a,c){if(!(e instanceof GMapWidget)){return}e.notify(e.evtGetStepPointBlock,{full_country:d,country_id:b,region_id:f,place_id:a,page:c+1})}function GMapUnload(a){if(a){a.destructor();delete (a)}GUnload()}function OnTypeListChange(a,e){if(!(e=$(e))){return}if(e.options[e.selectedIndex].value!=-1){return}for(var c=1;c<e.options.length;c++){e.options[c].style.fontWeight="600"}var d=e.selectedIndex;e.remove(e.selectedIndex);var b=$H(a);b.each(function(g){var f=new Element("OPTION",{text:g.value,value:g.key}).update(g.value);e.options.add(f)});e.selectedIndex=d;e.onchange=null};
