/*
 * VNO Office
 * Copyright 2010. All rights reserved.
 */
var Gv=new Hash({env:"pro",page:null,rpc:"/rpc/",ge:new Events(),hidden:"g_hidden",cloak:"g_cloak",clear:"g_clear",url:{login:"/login",register:"/register",ext:"/j/y/b/ext"},root:"vnooffice.com"});var global_map;var Core=new Class();Core.extend({idToPage:function(a){return"Page."+a.trim().capitalize()},addClear:function(b,c){var a=$pick(c,"bottom");return new Element("div",{"class":"g_clear"}).inject(b,c)},addIECache:function(){if(Browser.Engine.trident){document.execCommand("BackgroundImageCache",false,true)}},isIE6:function(){return((Browser.Engine.trident)&&(Browser.Engine.version<=4))},isIE7:function(){return((Browser.Engine.trident)&&(Browser.Engine.version==5))},isIE8:function(){return((Browser.Engine.trident)&&(Browser.Engine.version==6))},toUrl:function(a){window.location=a},warn:function(a){if(Gv.get("env")=="dev"){alert(a.fileName+"\nError: "+a.name+"\nLine: "+a.lineNumber+"\n"+a.message)}},setupPaginator:function(c,b){var a=$pick(b,".w_pagination"),d=c.getElement(a);
if($defined(d)){var g=d.getElement("div"),e=d.getSize(),f=g.getSize();g.setStyle("left",Math.floor((e.x-f.x)/2))}},loadPhotos:function(a,c,d,h,f){var g=$$(".srh_pt_ps"),b=a.getElements(d),i,e=[];h=$pick(h,-500);f=$pick(f,-140);g.each(function(k,j){c.grab(k);e.push(new PhotoShow(k,{off_x:h,off_y:f,hook:b[j]}));b[j].addEvent("click",function(l){l.stop();this.show();this.start()}.bind(e[j]))})},loadFp:function(c,a,b,g,e){var f=$$(".srh_fp_ps"),h=c.getElements(b),i,d=[];g=$pick(g,-500);e=$pick(e,-140);f.each(function(k,j){a.grab(k);d.push(new PhotoShow(k,{off_x:g,off_y:e,hook:h[j]}));h[j].addEvent("click",function(l){l.stop();this.show();this.start()}.bind(d[j]))})}});var DisplayObject=new Class({Implements:[Events],initialize:function(){this.build();return},build:function(){this.is_visible=false;this._element;this.fx_element=new Fx.Morph($(this),{link:"cancel"})},fade_in:function(a){this.stop_event(a);this.fx_element.start({opacity:1}).chain(this.fireEvent.bind(this,"onFadeIn"));return this
},fade_out:function(a){this.stop_event(a);this.fx_element.start({opacity:0}).chain(this.fireEvent.bind(this,"onFadeOut"));return this},hide:function(a){this.stop_event(a);$(this).setStyle("display","none");return this},show:function(a){this.stop_event(a);$(this).setStyle("display","block");return this},stop_event:function(a){if(a&&a.stop){a.stop()}},toElement:function(){return this._element}});var LazyLoader=new Class({Implements:[Events,Options],options:{auto_start:true,path:"{Klass}.js"},initialize:function(a,c,b){this.setOptions(b);var d=this.options;this.klass=a;this.args=c;this.instance;this.load()},instantiate:function(b){var a=this.args;return new b(a[0],a[1],a[2],a[3],a[4],a[5])}.protect(),load:function(){var b=this.options,a=b.path.substitute({Klass:this.klass});new Asset.javascript(a,{onload:this.loaded.bind(this)})},loaded:function(){this.fireEvent("load");if(this.options.auto_start){this.process()}},process:function(){var klass=null;this.fireEvent("processStart");if(!$defined(this.instance)){eval("this.Klass = "+this.klass)
}this.instance=this.instantiate(this.Klass);this.fireEvent("processEnd")},get_instance:function(){return this.instance}});LazyLoader.Multiple=new Class({Implements:[Events,Options],Extends:LazyLoader,initialize:function(b,a){this.setOptions(a);var c=this.options;this.klasses=b;this.load(0)},load:function(b){var c=this.options,a;if(b>this.klasses.length-1){this.fireEvent("load");return}a=c.path.substitute({Klass:this.klasses[b]});new Asset.javascript(a,{onload:this.load.bind(this,b+1)})}});var Page=new Class();var Remote=new Class({Implements:[Events,Options],options:{rpc_path:"",rpc:null,extra_query_string:null,autostart:true},initialize:function(a){this.setOptions(a);this.build();return},build:function(){this.data;this.has_data=false;this.rpc_count=0;this.rpc_url;this.rqt;this.statement;this.prepare();if(this.options.autostart){this.send()}return},prepare:function(b){var e=this.options,a=(b)?b:e.extra_query_string,a=(a)?a+"&":"",c,d="?";if(e.rpc.contains("?")){d="&"}this.qs=a+"rpc_count="+(++this.rpc_count);
this.statement=e.rpc_path+e.rpc+d+this.qs},send:function(){if($defined(this.rqt)){this.rqt.cancel()}this.rqt=new Request.JSON({data:this.qs,url:this.statement,noCache:true,onSuccess:function(a){this.has_data=true;this.set_data(a);this.fireEvent("onSuccess")}.bind(this)}).post();return},get_data:function(){return(this.has_data)?this.data:false},get_rpc:function(){return this.rpc},set_data:function(a){if(a instanceof Object){Log.log("Remote data is set: ");Log.log(a);this.data=a}else{Log.log("RPC: "+this.options.rpc+". Invalid data")}}});var Site=new Class({initialize:function(){this.pre();var bdy=$(document.body),id=bdy.get("id"),page;eval("page = new "+Core.idToPage(id)+"()");Gv.set("page",page);try{}catch(e){Core.warn(e)}this.post()},pre:function(){var a=$(document.body),b=a.getElement(".yui-ac-input");if(b){this.prefill(b)}if(Gv.get("env")=="dev"){window.addEvent("keyup",function(c){if(c.key=="esc"){Core.toUrl(".")}})}new UserNav($("nav"))},post:function(){Core.addIECache()},prefill:function(a){var d="value",c="Building Name, Address, or Unit #",b="stylize";
query_ac_on_blur_callback=function(){var e=query_autocomplete.getInputEl();if(e.get(d).trim()==""){e.removeClass(b);e.set(d,c)}};a.set(d,c);a.addEvents({focus:function(){a.set(d,"");a.addClass(b)}})}});Page.Ava=new Class({Extends:Page,initialize:function(){}});Page.Bft=new Class({Extends:Page,initialize:function(){}});Page.Con=new Class({Extends:Page,initialize:function(){}});Page.Fah=new Class({Extends:Page,initialize:function(){}});Page.Hom=new Class({Extends:Page,initialize:function(){}});Page.Mps=new Class({Extends:Page,initialize:function(){global_map=new AmenitiesMap.Cal555($("amenities_maps"),"global_map",{cls:"w_map",ext_path:gv_r+Gv.get("url").ext+"/{Klass}.js",ext_am_path:gv_r+Gv.get("url").ext+"/{Klass}.js"})}});Page.Nbh=new Class({Extends:Page,initialize:function(){}});Page.Osa=new Class({Extends:Page,initialize:function(){}});Page.Ovr=new Class({Extends:Page,initialize:function(){}});Page.Ptr=new Class({Extends:Page,initialize:function(){}});Page.Smp=new Class({Extends:Page,initialize:function(){}});
Page.Stm=new Class({Extends:Page,initialize:function(){}});Page.Sus=new Class({Extends:Page,initialize:function(){}});Page.Sva=new Class({initialize:function(){var d=$("streetview_map");if($defined(d)){var b=d.getElement(".w_map_data");var c="";if($defined(b)){c=b.get("text").trim()}var a="w_map";global_map=new StreetView.Cal555(d,"global_map",{cls:a,rpc:c,ext_path:gv_r+Gv.get("url").ext+"/{Klass}.js",ext_sv_path:gv_r+Gv.get("url").ext+"/{Klass}.js",distance:200,panorama_options:{zoomControl:false,navigationControl:false,pov:{heading:210,pitch:10,zoom:1}},bubble_options:{cls:"_overlay",offset_x:10,template:new Element("div",{"class":a+"_overlay_relative_wrapper",html:'<div class="'+a+'_overlay_tl"></div><div class="'+a+'_overlay_tr"></div><div class="'+a+'_overlay_bl"></div><div class="'+a+'_overlay_br"></div><div class="'+a+'_overlay_body"><div class="'+a+'_overlay_body_content"><div class="'+a+'_overlay_content"><h2 class="w_map_overlay_title"></h2><div class="w_map_overlay_info"></div></div></div></div>'})},label_options:{template:new Element("div",{"class":a+"_label_content_wrapper",html:'<div class="'+a+'_label_content"></div>'})}})
}}});Page.Tpr=new Class({Extends:Page,initialize:function(){}});Page.Tsv=new Class({Extends:Page,initialize:function(){}});Page.Vno=new Class({Extends:Page,initialize:function(){}});Page.T15=new Class({Extends:Page,initialize:function(){}});Page.T45=new Class({Extends:Page,initialize:function(){}});var GoogleMaps=new Class({Extends:DisplayObject,Implements:[Options,Events],options:{cls:"w_googlemaps",rpc:null,api:"http://maps.google.com/maps/api/js?sensor=false",ext_path:""},initialize:function(b,c,a){this._element=$(b);this.instance_name=$pick(c,false);if($defined($(this))&&this.instance_name){this.setOptions(a);this.parent();return}else{Log.log("Google Maps expects two parameters")}},build:function(){this.parent();var a=this.options;this.loader;this.markers=[];this._map=$(this).getElement("."+a.cls+"_map");this.load_dependencies()},defer_build:function(){this.map=new google.maps.Map(this._map,{zoom:10,center:new google.maps.LatLng(0,0),mapTypeId:google.maps.MapTypeId.ROADMAP});if(this.options.rpc){this.main_remote=new Remote({rpc:this.options.rpc,rpc_path:this.get_rpc_path(),onSuccess:this.process_rpc.bind(this)})
}},bound_overlays:function(){var a=new google.maps.LatLngBounds();this.markers.each(function(b){a.extend(b.get_object().getPosition())});this.map.fitBounds(a)},destroy_markers:function(a){var b=[];a=$pick(a,0);this.markers.each(function(c,d){if(d<a){b.push(c)}else{c.get_object().setMap(null);delete c}});this.markers=b},init_dependencies:function(){this.load_map_api()},load_dependencies:function(){var a=this.options;this.loader=new LazyLoader.Multiple(this.get_dependencies(),{path:a.ext_path});this.loader.addEvent("load",this.init_dependencies.bind(this));return},load_map_api:function(){var opts=this.options;if(eval(this.instance_name) instanceof GoogleMaps){new Asset.javascript(opts.api+"&callback="+this.instance_name+".defer_build");return this}Log.log("Not a GoogleMaps instance")},process_rpc:function(){Log.log(this.main_remote)},get_dependencies:function(){return["GoogleMaps.Bubble","GoogleMaps.Control","GoogleMaps.Control.Type","GoogleMaps.Control.Zoom","GoogleMaps.Marker","GoogleMaps.Overlay"]
},get_rpc_path:function(){return Gv.get("rpc")}});var AmenitiesMap=new Class({Extends:GoogleMaps,Implements:[Options,Events],options:{cls:"w_amenities",ext_am_path:null},bound_overlays:function(){this.parent();(function(){this.control_zoom.slider.set(this.map.getZoom())}).delay(500,this)},build:function(){this.parent();var b=this.options,a=$(this);this.am_loader;this.control_type;this.control_zoom;this.main_marker;this.place_markers=[];this.view;this._controls=a.getElement("."+b.cls+"_controls")},create_view:function(a){this.view=new AmenitiesMap.View.Main(a)},init_dependencies:function(){this.load_secondary_dependencies()},load_secondary_dependencies:function(){var a=this.options;this.am_loader=new LazyLoader.Multiple(this.get_secondary_dependencies(),{path:a.ext_am_path});this.am_loader.addEvent("load",this.load_map_api.bind(this));return},get_secondary_dependencies:function(){return["AmenitiesMap.Bubble"]},process_rpc:function(){var b=this.main_remote.get_data(),c=b.base_location,a=new google.maps.LatLng(b.ini.lat,b.ini.lng);
this.map.setCenter(a);this.main_marker=new GoogleMaps.Marker(this,{lat:c.lat,lng:c.lng,icon:b.ini.markers_path+c.icon});this.markers.push(this.main_marker);this.map.setOptions({mapTypeControl:true,navigationControl:false});this.control_zoom=new GoogleMaps.Control.Zoom(this);this.control_type=new GoogleMaps.Control.Type(this);this.create_view(this)}});var Location=new Class({Implements:Options,options:{api_key:null,api_add:"http://www.google.com/jsapi?key=",address:null,marker:null,custom_icons:null,show_more:false,current_cat_idx:null,rpc:null,zoom:14,isDrawMarkers:true,isInjected:false,tabNum:0},initialize:function(b,a){this.setOptions(a);this._element=$(b);this.data=null;this.isUnlocked=false;this.build();this.cat_idx=0},build:function(){var b=this.options,a=this._element;this.mapElement=$("w_area_maploc").getElement(".map");if(a.getElement(".map_cntrl_cat")){this.catElement=a.getElement(".map_cntrl_cat").getElement("ul")}if(a.getElement(".map_cntrl_desc")){this.catDescElement=a.getElement(".map_cntrl_desc").getElement("p")
}this.mapCntrl=a.getElement(".map_cntrl");this.categories=[];if(b.isDrawMarkers){this.sendRequest()}},dispatchRequest:function(a){this.options.tabNum=a;this.isUnlocked=true;this.categories=[];if(this.data==null){this.sendRequest()}else{this.loopData()}},sendRequest:function(){var b=this.options,a;a=Gv.get("rpc")+b.rpc;if($defined(this.rqt)){this.rqt.cancel()}this.rqt=new Request.JSON({url:a,noCache:true,onSuccess:function(c){this.data=c;this.loopData()}.bind(this)}).get()},loopData:function(){var c=this.data,b=this.options,a=0;c.categories.each(function(e,f){this.cat_idx=f;var d=[];this.categories.push(new Location.Category(e.title,d,e.desc));if(!b.isInjected){this.category_inject(e.title);this.orderPlaceItems(e,b.tabNum)}e.places.each(function(g){d.push(new Location.Place(a++-1));if(!b.isInjected){this.place_inject(g.name,g.phone,g.url,g.website,a-1)}}.bind(this))}.bind(this));b.isInjected=true;b.address=c.address;b.custom_icons.lat=c.base.lat;b.custom_icons.lng=c.base.lng;this.drawMap()
},orderPlaceItems:function(a){this.desc_inject(a.desc);this.build_ul_scaffold()},build_ul_scaffold:function(){var b=new Element("div",{id:"tab_"+this.options.tabNum+"_cat_"+this.cat_idx,"class":"map_cntrl_list"});var a=new Element("ul");a.inject(b);b.inject(this.mapCntrl)},category_inject:function(a){new Element("h4",{"class":"map_cntrl_cat"}).inject(this.mapCntrl).set("text",a)},desc_inject:function(a){if(a){new Element("div",{"class":"map_cntrl_desc"}).inject(this.mapCntrl).set("html","<p>"+a+"</p>")}},place_inject:function(d,a,c,b,g){var f=this.options;var e='<a href="#" class="place">'+d+"</a>";var h=new Element("li",{styles:{background:"url("+f.marker.image+(g+1)+"."+f.marker.ext+") left center no-repeat"}});h.inject(this.mapCntrl.getElement("#tab_"+f.tabNum+"_cat_"+this.cat_idx+" ul")).set("html",e)},drawMap:function(){var a=this.options;new Asset.javascript(a.api_add+a.api_key,{id:"gmap_api",onload:function(){this.mapLoad()}.bind(this)})},mapLoad:function(){google.load("maps","2",{callback:this.mapInit.bind(this)})
},mapInit:function(){var a,c,d,b=this.options;window.addEvent("unload",function(){try{google.maps.GUnload()}catch(e){}});d=new google.maps.ClientGeocoder();d.getLatLng(b.address,this.mapSetup.bind(this))},mapSetup:function(a){var c=this.options;if(c.isDrawMarkers||this.isUnlocked){var b,d,e,c=this.options;b=a;this.map=new google.maps.Map2(this.mapElement,d);this.map.setCenter(b,c.zoom);d=this.map.getDefaultUI();d.controls.maptypecontrol=false;d.controls.scalecontrol=false;this.map.setUI(d);this.drawMarkers()}},orderOfCreation:function(c,a){return 1},createMarker:function(b,l,d,g,i,f,j){var b,l,d,g,i,h,c,a,e;h=new GIcon(G_DEFAULT_ICON);h.iconSize=new GSize(b,l);h.shadow="";h.iconAnchor=new GPoint(((b-1)/2),((l-1)/2));if(f){h.infoWindowAnchor=new GPoint(b-7,b-24)}h.imageMap=[0,0,(b-1),0,(b-1),(l-1),0,(l-1)];c=new GIcon(h);c.image=d;markerOptions={icon:c,zIndexProcess:this.orderOfCreation};a=new GLatLng(g,i);e=new GMarker(a,markerOptions);this.map.addOverlay(e);if(f&&j){var m=this.createMarkerBubble.bind(this,[e,f.html]);
GEvent.addListener(e,"click",m);var k=this._element.getElements("a.place");k[j].removeEvents().addEvent("click",m)}else{if(f){var m=this.createMarkerBubble.bind(this,[e,f.html]);GEvent.addListener(e,"click",m)}}},drawMarkers:function(){var c=this.options;var b=new GLatLngBounds();this.map.clearOverlays();var a=0;this.categories.each(function(d,e){d.locations.each(function(m,i){var l=this.data.categories[e].places[i],k=this.options,h=this.buildBubbleContent(l),f=new GLatLng(l.lat,l.lng),g=k.marker.v_image+(a+1)+"."+k.marker.ext;b.extend(f);this.createMarker(k.marker.width,k.marker.height,g,l.lat,l.lng,{html:h,index:e},a++)}.bind(this))}.bind(this));this.map.setZoom(this.map.getBoundsZoomLevel(b));this.map.setCenter(b.getCenter());if(c.custom_icons){c.custom_icons.each(function(e){var d="<b>"+c.address+"</b>";this.createMarker(e.width,e.height,e.image,c.custom_icons.lat,c.custom_icons.lng,{html:d})}.bind(this))}},createMarkerBubble:function(a,c,b){b=$pick(b,true);if(b){return a.openInfoWindowHtml(c)
}},buildBubbleContent:function(b){var e=($defined(b["address-one"]))?"<span>"+b["address-one"]+"</span>":"",d=($defined(b.phone))?"<span>Phone: "+b.phone+"</span>":"",c=($defined(b.url))?b.url:"",a=($defined(b.website))?b.website:"";bubble='<div class="w_maploc_bubble"><span><b>'+b.name+"</b><span>"+e+d+'<span><a href="'+c+'" target="_blank">'+a+"</a><span></div>";return bubble}});Location.Category=new Class({Implements:Options,initialize:function(e,a,d,b){this.setOptions(b);var c=this.options;this.title=e;this.desc=d;this.locations=a}});Location.Place=new Class({Implements:Options,initialize:function(c,a){this.setOptions(a);var b=this.options;this.data=c}});Location.Table=new Class({Extends:Location,Implements:Options,initialize:function(b,a){this.setOptions(a);this.parent(b,a)},build_table_scaffold:function(){var h=new Element("div",{"class":"map_cntrl_table"});var i=new Element("table",{"class":"onsite_tenants",id:"table_id_"+this.cat_idx});var g=new Element("thead");var a=new Element("tr");
var e=new Element("th");var d=new Element("th",{text:"Name"});var c=new Element("th",{text:"Phone"});var b=new Element("th",{text:"Website"});var f=new Element("tbody");e.inject(a);d.inject(a);c.inject(a);b.inject(a);a.inject(g);g.inject(i);f.inject(i);i.inject(h);h.inject(this.mapCntrl)}});Location.Table.OnSite=new Class({Extends:Location.Table,Implements:Options,options:{isDrawMarkers:true},initialize:function(b,a){this.setOptions(a);this.parent(b,a)},orderPlaceItems:function(a){this.desc_inject(a.desc);this.build_table_scaffold()},place_inject:function(e,b,d,c,h){var g=this.options;var f='<td class="marker" style="background: url('+g.marker.image+(h+1)+"."+g.marker.ext+') left center no-repeat"></td><td class="place"><span><a href="#" class="place">'+e+'</a></span></td><td class="phone">'+b+'</td><td class="website"><a href="'+d+'" target="_blank">'+c+"</a></td>";var a=new Element("tr");a.inject(this.mapCntrl.getElement("#table_id_"+this.cat_idx+" tbody")).set("html",f)}});Location.Neighborhood=new Class({Extends:Location,Implements:Options,options:{isDrawMarkers:false},initialize:function(b,a){this.setOptions(a);
this.parent(b,a)},loopData:function(){var b=this.data,a=this.options;b.categories.each(function(d,e){this.cat_idx=e;var c=[];this.categories.push(new Location.Category(d.title,c,d.desc));if(!a.isInjected){this.category_inject(d.title);this.orderPlaceItems(d,e,a.tabNum)}d.places.each(function(f,g){c.push(new Location.Place(f));if(!a.isInjected){this.place_inject(f.name,f.phone,f.url,f.website,g)}}.bind(this))}.bind(this));a.isInjected=true;a.address=b.address;a.custom_icons.lat=b.base.lat;a.custom_icons.lng=b.base.lng;this.catLIs=this._element.getElements(".map_cntrl_cat ul li");this.catLIContents=this._element.getElements(".map_cntrl_cat_content");this.switch_to_category(0)},orderPlaceItems:function(a){this.build_cat_content_scaffold();this.desc_inject(a.desc);this.build_ul_scaffold()},build_cat_content_scaffold:function(){var a=new Element("div",{id:"cat_"+this.cat_idx,"class":"map_cntrl_cat_content"});a.inject(this.mapCntrl)},build_ul_scaffold:function(){var b=new Element("div",{id:"tab_"+this.options.tabNum+"_cat_"+this.cat_idx,"class":"map_cntrl_list"});
var a=new Element("ul");a.inject(b);b.inject(this.mapCntrl.getElement("#cat_"+this.cat_idx))},category_inject:function(a){var b=this.cat_idx;category_li=new Element("li",{id:"tab_cat_"+b});category_anchor=new Element("a",{href:"#",html:a,events:{click:function(c){c.stop();this.switch_to_category(b)}.bind(this)}}).inject(category_li);category_li.inject(this.catElement)},desc_inject:function(a){if(a){new Element("div",{"class":"map_cntrl_desc"}).inject(this.mapCntrl.getElement("#cat_"+this.cat_idx)).set("html","<p>"+a+"</p>")}},reset_categories:function(){this.catLIs.removeClass("selected");this.catLIContents.hide()},switch_to_category:function(a){this.current_cat_idx=a;this.reset_categories();this.mapCntrl.getElement("#tab_cat_"+a).addClass("selected");this.mapCntrl.getElements("#cat_"+a).show();this.drawMap()},drawMarkers:function(){var d=this.options;current_cat_idx=this.current_cat_idx;var c=new GLatLngBounds();this.map.clearOverlays();var e=0;this.categories.some(function(f,g){if(g==current_cat_idx){return true
}e+=(f.locations.length);return false});var a=0;var b=0+e;this.categories[current_cat_idx].locations.each(function(m,i){var l=this.data.categories[current_cat_idx].places[i],k=this.options,h=this.buildBubbleContent(l),f=new GLatLng(l.lat,l.lng),g=k.marker.v_image+(a+1)+"."+k.marker.ext;c.extend(f);a++;this.createMarker(k.marker.width,k.marker.height,g,l.lat,l.lng,{html:h,index:current_cat_idx},b++)}.bind(this));this.map.setZoom(this.map.getBoundsZoomLevel(c));this.map.setCenter(c.getCenter());if(d.custom_icons){d.custom_icons.each(function(g){var f="<b>"+d.address+"</b>";this.createMarker(g.width,g.height,g.image,d.custom_icons.lat,d.custom_icons.lng,{html:f})}.bind(this))}}});Location.Transportation=new Class({Extends:Location,Implements:Options,options:{isDrawMarkers:false},initialize:function(b,a){this.setOptions(a);this.parent(b,a)}});var StreetView=new Class({Extends:GoogleMaps,Implements:[Options,Events],options:{cls:"w_streetview",api:"http://maps.google.com/maps/api/js?sensor=false&libraries=geometry",has_custom_zoom_control:true,ext_sv_path:null,distance:100,panorama_options:{addressControl:false,enableCloseButton:false,pov:{heading:0,pitch:0,zoom:0}}},build:function(){this.parent();
var b=this.options,a=$(this);this.main_marker;this._pano=a.getElement("."+b.cls+"_pano");this._copy=a.getElement("."+b.cls+"_copy");this._controls=a.getElement("."+b.cls+"_controls")},create_zoom_control:function(){if(this.options.has_custom_zoom_control){this.control_zoom=new GoogleMaps.Control.StreetViewZoom(this)}},get_dependencies:function(){return["GoogleMaps.Control"]},get_secondary_dependencies:function(){return["GoogleMaps.Control.StreetViewZoom","GoogleMaps.StreetViewOverlay","GoogleMaps.StreetViewOverlay.Bubble","GoogleMaps.StreetViewOverlay.Label"]},init_dependencies:function(){this.load_secondary_dependencies()},load_secondary_dependencies:function(){var a=this.options;this.sv_loader=new LazyLoader.Multiple(this.get_secondary_dependencies(),{path:a.ext_sv_path});this.sv_loader.addEvent("load",this.load_map_api.bind(this));return},process_rpc:function(){var c=this.main_remote.get_data(),d=c.base_location,b=new google.maps.LatLng(c.ini.lat,c.ini.lng);this.map.setOptions({mapTypeControl:false,navigationControl:false,center:b,mapTypeId:google.maps.MapTypeId.ROADMAP,streetViewControl:false});
this.panorama=this.map.getStreetView();this.panorama.setOptions(this.options.panorama_options);this.panorama.setPosition(b);this.panorama.setVisible(true);this.create_zoom_control();var a=$(this.map.getDiv());this.map_size=a.getSize();this.create_bubble();this.create_labels()},create_bubble:function(){var a=this.options,b=new Hash({offset_x:12,distance:a.distance});if($defined(a.bubble_options)){b.extend(a.bubble_options)}this.bubble=new GoogleMaps.StreetViewOverlay.Bubble(this,b.getClean())},create_labels:function(){var b=this.options,a=new Hash({offset_x:12,distance:b.distance,onClick:this.handle_label_clicked.bind(this)});if($defined(b.label_options)){a.extend(b.label_options)}var c=this.main_remote.get_data();c.categories.each(function(e,d){e.index=d;if(e.places&&e.places.length>0){e.places.each(function(f,h){var g=a.getClean();g.place=f;g.category=e;var j=new GoogleMaps.StreetViewOverlay.Label(this,g)}.bind(this))}}.bind(this))},handle_label_clicked:function(a){this.bubble.set_anchor(a);
var b=this.bubble.get_position();this.bubble_dest_y=b.h+Math.floor((this.map_size.y-b.h)/2);this.bubble_dest_x=Math.floor(this.map_size.x/2);if(this.timer){$clear(this.timer)}this.prev_dif_x=0;this.prev_dif_y=0;this.timer=this.update_pov.bind(this).periodical(1)},update_pov:function(){var f=this.bubble.get_position();var b=this.bubble_dest_x-f.x;var a=this.bubble_dest_y-f.y;var e=0;var d=this.panorama.getPov();if(Math.ceil(Math.abs(b))>1&&b*this.prev_dif_x>=0){d.heading+=(b>0)?-2:2;e++;this.prev_dif_x=b}if(Math.ceil(Math.abs(a))>1&&a*this.prev_dif_y>=0){d.pitch+=(a>0)?2:-2;e++;this.prev_dif_y=a}if(e>0){this.panorama.setPov(d)}if(e==0){$clear(this.timer);this.prev_dif_y=this.prev_dif_x=0}}});var Tabs=new Class({Implements:[Options,Events],options:{seletedTabCssClass:"selected",seletedSectionCssClass:"selected",firstShow:0},tabs:[],initialize:function(c,b,a){this.setOptions(a);$$(b).each(function(e,d){this.addSection(e,$$(c)[d])},this);this.show(this.options.firstShow)},addSection:function(b,a){this.tabs.include(b);
b.store("container",a);this.attach(b)},attach:function(a){a.addEvent("click",function(b){b.stop();this.show(this.tabs.indexOf(a))}.bind(this))},show:function(a){if(this.current===a){return}this.tabs.each(function(d,c){var b=d.retrieve("container");if(a===c){d.addClass(this.options.seletedTabCssClass);b.addClass(this.options.seletedSectionCssClass);b.setStyle("display","block");this.fireEvent("onShow",[c,d,b])}else{d.removeClass(this.options.seletedSectionCssClass);b.removeClass(this.options.seletedSectionCssClass);b.setStyle("display","none");if(this.current===c||!$chk(this.current)){this.fireEvent("onHide",[c,d,b])}}},this);this.current=a}});var AjaxTabs=new Class({Extends:Tabs,Options:{cache:true,urls:[],requestOptions:{}},show:function(b,d){var c=this.tabs[b];var a=this.options.urls[b]||c.get("href");if(!a||d||(this.options.cache&&c.retrieve("loaded"))){this.parent(b)}else{this.fetchTabContent(b,a)}},fetchTabContent:function(c,b){var d=this.tabs[c];var a=d.retrieve("container");var e=d.retrieve("tabAjax");
if(!e){e=new Request.HTML($merge(this.options.requestOptions,{update:a,url:b})).addEvent("onSuccess",function(){d.store("loaded","true");this.show(c,true)}.bind(this));d.store("tabAjax",e)}e.send()}});var UserNav=new Class({initialize:function(a){if($defined(a)){a.getElements("li").each(function(b){if(b.get("ul")!="ul"){b.addEvents({mouseenter:function(c){this.addClass("active")},mouseleave:function(c){this.removeClass("active")}})}})}}});AmenitiesMap.Category=new Class({initialize:function(b,a){this.title=$pick(b,"");this.description=$pick(a,"");this.places=[]},add_place:function(a){if(a instanceof AmenitiesMap.Place){this.places.push(a)}}});AmenitiesMap.Place=new Class({initialize:function(g,d,h,m,e,n,i,c,f,j,b,a,k,l){if(g instanceof AmenitiesMap.Category){this.category=g;this.marker=null;this.name=d;this.address_one=h;this.address_two=m;this.photo=e;this.description=$pick(n,"");this.city=i;this.state=c;this.zip=f;this.phone=j;this.url=b;this.website=a;this.lat=k;this.lng=l}else{Log.log("Category requires valid category object instance")
}},get_marker:function(){return this.marker},set_marker:function(a){if(a instanceof GoogleMaps.Marker){this.marker=a}}});AmenitiesMap.View=new Class({Extends:DisplayObject,Implements:[Options,Events],options:{},initialize:function(b,a){if(b instanceof AmenitiesMap){this.setOptions(a);this.amenities_map=b;this.build()}},build:function(){var b=this.amenities_map,a=this.amenities_map.options;this.cls=a.cls+"_view";this.remote_data=b.main_remote.get_data();this.fx_to_top=new Fx.Scroll($(window),{link:"cancel"});this._element=new Element("div",{"class":this.cls}).inject($(b));this.categories=this.create_categories();this.places=this.create_places();this.parent()},create_categories:function(){var a=[];this.remote_data.categories.each(function(b){a.push(new AmenitiesMap.Category(b.title,b.description))});return a},create_places:function(){var b=[],a=this.categories;this.remote_data.categories.each(function(d,c){d.places.each(function(e){var e=new AmenitiesMap.Place(a[c],e.name,e.address_one,e.address_two,e.photo,e.description,e.city,e.state,e.zip,e.phone,e.url,e.website,e.lat,e.lng);
b.push(e);a[c].add_place(e)})});return b},go_to_top:function(){this.fx_to_top.toElement($(this.amenities_map))}});AmenitiesMap.Cal555=new Class({Extends:AmenitiesMap,defer_build:function(){var a=this._element.getElement("."+this.options.cls+"_data");if($defined(a)){this.options.rpc=a.get("text").trim()}this.map=new google.maps.Map(this._map,{streetViewControl:false,mapTypeControl:false,navigationControl:false,zoom:12});if(this.options.rpc){this.main_remote=new Remote({rpc:this.options.rpc,rpc_path:this.get_rpc_path(),onSuccess:this.process_rpc.bind(this)})}},create_view:function(a){this.view=new AmenitiesMap.View.Main_Cal555(a)},get_secondary_dependencies:function(){return["AmenitiesMap.Bubble","AmenitiesMap.Bubble.Cal555"]},bound_overlays:function(){var b=this.main_remote.get_data();if(b.ini.zoom){this.map.setZoom(b.ini.zoom);this.map.setCenter(new google.maps.LatLng(b.base_location.lat,b.base_location.lng))}else{var a=new google.maps.LatLngBounds();this.markers.each(function(c){a.extend(c.get_object().getPosition())
});this.map.fitBounds(a)}},process_rpc:function(){var b=this.main_remote.get_data(),c=b.base_location,a=new google.maps.LatLng(b.ini.lat,b.ini.lng);this.map.setCenter(a);this.main_marker=new GoogleMaps.Marker(this,{lat:c.lat,lng:c.lng,icon:b.ini.markers_path+c.icon});this.markers.push(this.main_marker);this.map.setOptions({mapTypeControl:false,navigationControl:false});this.control_zoom=new GoogleMaps.Control.Zoom(this);this.control_type=new GoogleMaps.Control.Type(this);this.create_view(this)},get_rpc_path:function(){return""}});StreetView.Cal555=new Class({Extends:StreetView,get_rpc_path:function(){return""}});AmenitiesMap.View.Main=new Class({Extends:AmenitiesMap.View,Implements:[Options,Events],options:{bubble_options:{disableAutoPan:true,pixelOffset:{width:0,height:-25}}},build:function(){this.parent();this.bubble=this.create_bubble();this.bubble.get_object().get_object().setOptions(this.options.bubble_options);this.active_category=null;this.active__category=null;this.current_idx=null;
this._categories=[];this._list;this._placesblocks=[];this._places=[];this.create_list();this.build_markers(this.categories[0],this._categories[0])},create_bubble:function(){return new AmenitiesMap.Bubble(this.amenities_map,this.amenities_map.main_marker)},build_markers:function(b,c){var d=this.remote_data,a;this.active_category=b;if(this.active__category){this.active__category.removeClass("active")}this.active__category=c;c.addClass("active");this.amenities_map.destroy_markers(1);this.bubble.close();b.places.each(function(e,f){a=new GoogleMaps.Marker(this.amenities_map,{lat:e.lat,lng:e.lng,icon:d.ini.markers_path+(f+1)+".png"});google.maps.event.addListener(a.get_object(),"click",this.open_bubble.bind(this,e));e.set_marker(a);this.amenities_map.markers.push(a)}.bind(this));this.amenities_map.bound_overlays()},create_category_block:function(b,a){var e,f,d,c;e=new Element("li").inject(this._list);f=new Element("div",{"class":this.cls+"_category "+this.cls+"_category_"+(a+1)}).inject(e);d=new Element("a",{href:"#",html:b.title,events:{click:this.trigger_build_markers.bindWithEvent(this,[b,e])}}).inject(f);
c=new Element("div",{"class":this.cls+"_places "+this.cls+"_places_"+(a+1)}).inject(e);return e},create_list:function(){if(this.categories.length>0){this._list=new Element("ul").inject($(this))}this.categories.each(function(b,a){this._categories.push(this.create_category_block(b,a));b.places.each(function(c,d){this._places.push(this.create_place_block(c,a,d))}.bind(this))}.bind(this))},create_place_block:function(b,d,c){var g,f,e,a,h=this.remote_data;f=this._categories[d].getElement("."+this.cls+"_places");if(this.current_idx!=d){this.current_idx=d;this._ul=new Element("ul").inject(f)}e=new Element("li",{"class":this.cls+"_place "+this.cls+"_place_"+(c+1)}).inject(this._ul);g=new Element("a",{href:"#",html:"<span>"+(c+1)+": "+b.name+"</span>",events:{click:this.trigger_open_bubble.bindWithEvent(this,b)}}).inject(e);return e},open_bubble:function(a){if(a.category===this.active_category){this.bubble.set_content(a).set_marker(a.get_marker()).open();this.go_to_top();if(!this.highest_zindex){this.highest_zindex=1000
}this.bubble.marker.get_object().setZIndex(this.highest_zindex++)}},trigger_build_markers:function(c,a,b){this.stop_event(c);this.build_markers(a,b)},trigger_open_bubble:function(b,a){this.stop_event(b);this.open_bubble(a)}});AmenitiesMap.View.Main_Cal555=new Class({Extends:AmenitiesMap.View.Main,options:{bubble_options:{disableAutoPan:true,pixelOffset:{width:0,height:-35}}},create_bubble:function(){return new AmenitiesMap.Bubble.Cal555(this.amenities_map,this.amenities_map.main_marker)},create_place_block:function(c,e,d){var k,g,h,f,b=this.remote_data;g=this._categories[e].getElement("."+this.cls+"_places");if(this.categories.length>1){var a=new Fx.Slide(g,{link:"cancel"}).hide();g.setStyle("display","block");this._categories[e].store("slidefx",a)}if(this.current_idx!=e){this.current_idx=e;this._ul=new Element("ul").inject(g)}h=new Element("li",{"class":this.cls+"_place "+this.cls+"_place_"+(d+1)}).inject(this._ul);k=new Element("a",{href:"#",html:"<span>"+c.name+"</span>",events:{click:this.trigger_open_bubble.bindWithEvent(this,c)}}).inject(h);
c.marker_url=b.ini.markers_path+(d+1)+".png";c._place=h;return h},build_markers:function(e,f){var g=this.remote_data,a;this.active_category=e;if(this.active__category){this.active__category.removeClass("active");var c=this.active__category.retrieve("slidefx");if($defined(c)){c.slideOut()}}if(this.active__category!=f){var d=f.retrieve("slidefx");if($defined(d)){d.slideIn()}f.addClass("active");this.active__category=f}else{this.active__category=null}if($defined(this._current_place)){this._current_place.removeClass("selected");this._current_place=null}this.amenities_map.destroy_markers(1);this.bubble.close();e.places.each(function(j,k){a=new GoogleMaps.Marker(this.amenities_map,{lat:j.lat,lng:j.lng,icon:g.ini.markers_path+(k+1)+".png"});google.maps.event.addListener(a.get_object(),"click",this.open_bubble.bind(this,j));j.set_marker(a);this.amenities_map.markers.push(a)}.bind(this));this.amenities_map.bound_overlays();var h=g.base_location,b=new google.maps.LatLng(g.ini.lat,g.ini.lng);this.amenities_map.main_marker=new GoogleMaps.Marker(this.amenities_map,{lat:h.lat,lng:h.lng,icon:g.ini.markers_path+h.icon});
this.amenities_map.markers.push(this.amenities_map.main_marker)},open_bubble:function(a){this.parent(a);if($defined(this._current_place)){this._current_place.removeClass("selected")}if($defined(a._place)){a._place.addClass("selected");this._current_place=a._place}}});window.addEvent("domready",function(){site=new Site()});
