$j(document).ready(function(){$j(".continue").click(function(){$j("#welcome").hide();$j(".toolbars").show();});$j(".howto").click(function(){$j(".instruct").slideToggle();});$j(".welcome-button").click(function(){$j(".toolbars").hide();$j("#welcome").show();$j(".instruct").slideDown();});$j("#about, .help-close").click(function(){$j("#about").hide();$j(".toolbars").show();});$j(".about-button").click(function(){$j(".toolbars").hide();$j("#about").show();});$j(".my-map").click(function(){kit.setMyMarkers();$j(this).hide();$j(".full-map").show();$j("#share_box").fadeIn();});$j(".full-map").click(function(){kit.setAllMarkers();$j(this).hide();$j(".my-map").show();$j("#share_box").fadeOut();});});var MapKit=Class.create({initialize:function(C,B){var A=this;A.mapElement=C||"map";A.movedWindow=false;A.currentMarker=null;A.showDebug=true;A.markers=$H({});A.managers=$H({});A.managerMarkers=$H({});A.feeds=$H({});A.feedRefreshFlags=$H({});A.refreshPeopleFlag=true;A.refreshSessionFlag=true;A.myMarkersOnly=false;A.socialBrowsingFlag=false;A.myMarker=null;A.myLatLng=null;A.personIcon=1;A.adsManager=null;A.mapOptions=MapKit.mergeOptions({},A.mapOptions,B);MapKit.set(this);},initMapCenter:function(C,B,D){var A=this;if(A.mapOptions.mapCenter!=undefined){return ;}if(C!=""&&B!=""&&D!=""){A.mapOptions.mapCenter=[parseFloat(C),parseFloat(B)];A.mapOptions.mapZoom=parseInt(D);}},initViewCenter:function(C,B,D){var A=this;if(A.mapOptions.mapCenter!=undefined){return ;}if(C!=""&&B!=""&&D!=""){A.mapOptions.mapCenter=[parseFloat(C),parseFloat(B)];A.mapOptions.mapZoom=parseInt(D);}},enableSocialBrowsing:function(C,B){var A=this;A.socialBrowsingFlag=true;if(C!=""&&B!=""){A.myLatLng=[parseFloat(C),parseFloat(B)];}},setup:function(){var A=this;if(A.myLatLng){A.mapOptions.mapCenter=A.myLatLng;}if(A.mapOptions.mapCenter==undefined||A.mapOptions.mapZoom==undefined){A.mapOptions.mapCenter=[A.mapOptions.default_lat,A.mapOptions.default_lng];A.mapOptions.mapZoom=A.mapOptions.default_zoom;}A.initGoogleMap();if(A.mapOptions.enable_ads&&A.mapOptions.publisher_id!=undefined&&A.mapOptions.publisher_id!=""){A.adsManager=new GAdsManager(A.gmap,A.mapOptions.publisher_id,{max_ads_on_map:A.mapOptions.max_ads_on_map,minZoomLevel:A.mapOptions.min_zoom_level_for_ads});A.adsManager.enable();}if(A.mapOptions.refresh_session_interval>0){GEvent.addListener(A.gmap,"moveend",function(){A.refreshSessionFlag=true;});new PeriodicalExecuter(function(){A.refreshSession();},A.mapOptions.refresh_session_interval);}else{GEvent.addListener(A.gmap,"moveend",function(){A.refreshSessionFlag=true;A.refreshSession();});}if(A.mapOptions.refresh_feeds_interval>0){new PeriodicalExecuter(function(){A.refreshFeeds();},A.mapOptions.refresh_feeds_interval);}if(A.socialBrowsingFlag){if(A.mapOptions.refresh_people_interval>0){GEvent.addListener(A.gmap,"moveend",function(){A.refreshPeopleFlag=true;});new PeriodicalExecuter(function(){A.refreshPeople();},A.mapOptions.refresh_people_interval);}else{GEvent.addListener(A.gmap,"moveend",function(){A.refreshPeopleFlag=true;A.refreshPeople();});}A.createManager("people");A.refreshPeople();if(A.myLatLng==null){mapCenter=A.gmap.getCenter();A.myLatLng=[mapCenter.lat(),mapCenter.lng()];}var B=$j("#my_marker_content .marker").attr("title");if(B==""||B==undefined){B="My Marker";}A.myMarker=A.buildMarker("my_marker",{draggable:true,latLng:A.myLatLng,title:B,bubbleStyle:A.mapOptions.my_bubble_style,getHtml:function(){return"<div id='my_marker_bubble'>"+$j("#my_marker_content").html()+"</div>";}});GEvent.addListener(A.myMarker,"dragstart",function(){A.gmap.closeExtInfoWindow();});GEvent.addListener(A.myMarker,"dragend",function(){newCenter=A.myMarker.getPoint();A.myLatLng=[newCenter.lat(),newCenter.lng()];A.myMarker.openBubble();A.refreshSessionFlag=true;A.refreshSession();});A.gmap.addOverlay(A.myMarker);}A.createManager("default");A.bindUnload();return A.gmap;},addFeed:function(B){var A=this;A.feeds.set(B.id,B.href);var C=A.createManager(B.id);A.refreshFeed(B.id);if(A.mapOptions.refresh_feeds_interval>0){GEvent.addListener(A.gmap,"moveend",function(){A.feedRefreshFlags.set(B.id,true);});}else{GEvent.addListener(A.gmap,"moveend",function(){A.refreshFeed(B.id);});}},initGoogleMap:function(){var B=this;B.gmap=new GMap2(document.getElementById(B.mapElement));B.gmap.setCenter(new GLatLng(B.mapOptions.mapCenter[0],B.mapOptions.mapCenter[1]),B.mapOptions.mapZoom);var A=new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(75,5));switch(B.mapOptions.map_control_style){case"default-small":B.gmap.addControl(new GSmallMapControl());B.gmap.addControl(new GMapTypeControl(),A);if(B.mapOptions.map_enable_scale_control){B.gmap.addControl(new GScaleControl());}break;case"default-large":B.gmap.addControl(new GLargeMapControl());B.gmap.addControl(new GMapTypeControl(),A);if(B.mapOptions.map_enable_scale_control){B.gmap.addControl(new GScaleControl());}break;default:B.gmap.addControl(new MapKitZoomControl({color:B.mapOptions.map_control_color}));B.gmap.addControl(new MapKitPanControl({color:B.mapOptions.map_control_color}));B.gmap.addControl(new MapKitMapTypeControl({color:B.mapOptions.map_control_color}));}var C=G_NORMAL_MAP;switch(B.mapOptions.mapType){case"sat":C=G_SATELLITE_MAP;break;case"hybrid":C=G_HYBRID_MAP;break;}B.gmap.setMapType(C);if(B.mapOptions.map_enable_overview){B.gmap.addControl(new GOverviewMapControl());}if(B.mapOptions.map_enable_double_click_zoom){B.gmap.enableDoubleClickZoom();}if(B.mapOptions.map_enable_smooth_zoom){B.gmap.enableContinuousZoom();}if(B.mapOptions.map_enable_google_bar){B.gmap.enableGoogleBar();}if(B.mapOptions.map_enable_scroll_zoom){B.gmap.enableScrollWheelZoom();}},refreshFeeds:function(){var A=this;A.feedRefreshFlags.each(function(B){if(A.feedRefreshFlags.get(B.key)){A.refreshFeed(B.key);}});},addContainer:function(A){var B=this;var D=A.id;var C=B.createManager(D);$j("#"+D+" .marker").livequery(function(){$marker=$j(this);B.log("\nAdding Marker from: "+D);B.log(this);markerOptions={latLng:MapKit.parseLatLng($marker.attr("rel")),html:$marker.find(".bubbleHTML").html(),icon:B.buildIcon($marker.attr("icon")),managerName:D,title:""};if($marker.find(".title").size()>0){markerOptions.title=$marker.find(".title").html();}if($marker.attr("min")){markerOptions.minZoom=parseInt($marker.attr("min"));}if($marker.attr("max")){markerOptions.maxZoom=parseInt($marker.attr("max"));}if($marker.attr("expand")){markerOptions.expand=($marker.attr("expand")=="true");}if($marker.attr("bubbleStyle")){markerOptions.bubbleStyle=$marker.attr("bubbleStyle");}B.addMarker($marker.attr("id"),markerOptions);},function(){$marker=$j(this);B.log("\nRemoving Marker from: "+D);B.log(this);B.removeMarker(B.markers.get($marker.attr("id")),D);C.refresh();});if($j(A).attr("autozoom")=="true"){setTimeout(function(){B.zoomFit();},1000);}},addMarker:function(E,C){var B=this;var C=MapKit.mergeOptions({},B.markerDefaults,C);var A=B.buildMarker(E,C);if(C.managerName!=undefined){var D=B.managers.get(C.managerName);D.addMarker(A,C.minZoom,C.maxZoom);B.managerMarkers.get(C.managerName).push(A);}else{B.gmap.addOverlay(A);}B.markers.set(E,A);return A;},buildMarker:function(D,C){var B=this;var C=MapKit.mergeOptions({},B.markerDefaults,C);var A=new GMarker(new GLatLng(C.latLng[0],C.latLng[1]),C);A.id=D;A.expand=C.expand;A.title=C.title;A.bubbleStyle=C.bubbleStyle;A.ajaxUrl=C.ajaxUrl;GEvent.addListener(A,"infowindowopen",function(E){B.currentMarker=E;});GEvent.addListener(A,"infowindowclose",function(E){B.currentMarker=undefined;});if(C.html){A.openBubble=function(){B.openBubble(A,A.bubbleStyle,C.html);};}else{if(C.getHtml){A.openBubble=function(){var E=C.getHtml();B.openBubble(A,A.bubbleStyle,E);};}else{A.openBubble=function(){};}}GEvent.addListener(A,C.htmlOpenEvent,A.openBubble);return A;},openBubble:function(A,E,C){var B=this;var D="<div class='infoWindowView'><h3 class='title'>"+A.title+"</h3><div class='content'>"+C+"</div></div>";if(E==null||E==""){E=B.mapOptions.default_bubble_style;}A.openExtInfoWindow(B.gmap,E,D,{beakOffset:0,ajaxUrl:A.ajaxUrl,maxContent:A.expand?"/map/expand_content/"+A.id:null,maxWidth:500,maxHeight:250,maximizeEnabled:A.expand});},buildIcon:function(H){var E=this;try{iconElement=$("icon_"+H);if(iconElement==undefined){E.log("Unable to find icon element for: icon_"+H);return ;}iconImage=iconElement.down("img.marker-icon");shadowImage=iconElement.down("img.marker-shadow");if(iconImage!=undefined){var G=new GIcon();G.image=iconImage.src;var D=parseInt($j(iconImage).attr("w"));var B=parseInt($j(iconImage).attr("h"));G.iconAnchor=new GPoint(D/2,B/2);G.infoWindowAnchor=new GPoint(D/2,0);G.iconSize=new GSize(D,B);if(shadowImage!=undefined){G.shadow=shadowImage.src;var A=parseInt($j(shadowImage).attr("w"));var C=parseInt($j(shadowImage).attr("h"));G.shadowSize=new GSize(A,C);}return G;}else{return new GIcon(G_DEFAULT_ICON);}}catch(F){console.error(F);}},zoomFit:function(C){var A=this;var B=new GLatLngBounds();A.markers.each(function(D){B.extend(D.value.getPoint());});if(A.myLatLng==undefined){A.gmap.setCenter(B.getCenter(),A.gmap.getBoundsZoomLevel(B));}},refreshPeople:function(){var A=this;if(A.refreshPeopleFlag){A.log("Refreshing Map People...");var D=A.gmap.getBounds();var B=D.getNorthEast();var C=D.getSouthWest();new Ajax.Request("/map_sessions",{method:"get",parameters:{max_lat:B.lat(),max_lng:B.lng(),min_lat:C.lat(),min_lng:C.lng()},onSuccess:function(H){try{var F=H.responseText.evalJSON();var G=$A([]);F.each(function(I){G.push(A.buildMarker("marker_"+I.id,{latLng:[I.marker_lat,I.marker_lng],ajaxUrl:"/map_session/?id="+I.id,title:I.name,html:"Loading...",bubbleStyle:I.bubble_style,icon:A.buildIcon(A.personIcon)}));});A.log("People Markers: "+G.size());A.replaceManagerMarkers("people",G,0,17);}catch(E){console.error(E);}}});A.refreshPeopleFlag=false;}},refreshSession:function(){var B=this;if(B.refreshSessionFlag){var A={"map_session[lat]":B.gmap.getCenter().lat(),"map_session[lng]":B.gmap.getCenter().lng(),"map_session[zoom_level]":B.gmap.getZoom(),"_method":"put"};if(B.myLatLng){A["map_session[marker_lat]"]=B.myLatLng[0];A["map_session[marker_lng]"]=B.myLatLng[1];}new Ajax.Request("/map_session",{method:"post",parameters:A,onSuccess:function(D){var C=D.responseText.evalJSON();C.each(function(E){mapkit_viewmessage_open(E.id);});}});B.refreshSessionFlag=false;}},createManager:function(C,B){var A=this;var B=MapKit.mergeOptions({},A.managerDefaults,B);var D=new MarkerManager(A.gmap,B);A.managers.set(C,D);A.managerMarkers.set(C,$A([]));return D;},refreshFeed:function(C){var A=this;var E=A.managers.get(C);var G=C;var F=A.gmap.getBounds();var B=F.getNorthEast();var D=F.getSouthWest();var H=A.feeds.get(C);new Ajax.Request(H,{method:"get",parameters:{"bounds[max_lat]":B.lat(),"bounds[max_lng]":B.lng(),"bounds[min_lat]":D.lat(),"bounds[min_lng]":D.lng(),"current_zoom":A.gmap.getZoom(),"scope":A.scope},onSuccess:function(M){var J=M.responseText.evalJSON();var K=$A([]);var L=0;var I=17;J.each(function(O){var P={latLng:[O.lat,O.lng],html:O.bubble_html,icon:A.buildIcon(O.icon_id),title:O.title,bubbleStyle:O.bubble_style};if(O.expanded_html!=null&&O.expanded_html!=""){P.maxContent=O.expanded_html;P.expand=true;}var N=A.buildMarker("marker_"+O.id,P);if(A.mapOptions.ajaxMarkers){N.ajaxUrl="/map/marker_content/"+N.id;}K.push(N);L=O.min_zoom;I=O.max_zoom;});A.log("New Markers: "+K.size());A.replaceManagerMarkers(G,K,L,I);}});A.feedRefreshFlags.set(C,false);},replaceManagerMarkers:function(I,E,A,F){var H=this;var C=H.managers.get(I);var D=H.managerMarkers.get(I);var G=E.reject(function(J){return D.map(function(K){return K.id;}).include(J.id);});var B=D.reject(function(J){return E.map(function(K){return K.id;}).include(J.id);});G.each(function(J){C.addMarker(J,A,F);H.markers.set(J.id,J);D.push(J);});B.each(function(J){H.removeMarker(J,I);});},removeMarker:function(A,E){try{var B=this;if(B.currentMarker!=undefined&&A.id==B.currentMarker.id){return false;}if(E!=undefined){var D=B.managers.get(E);D.removeMarker(A);B.managerMarkers.set(E,B.managerMarkers.get(E).without(A));}else{B.gmap.removeOverlay(A);}B.markers.unset(A.id);return true;}catch(C){console.error(C);}},bindUnload:function(){document.body.onunload=function(){if(GBrowserIsCompatible()){GUnload();}};},log:function(A){if(this.showDebug){console.log(A);}},log_array:function(A,B){this.log("\n"+message+": "+B.size());this.log(B.toArray());},setMyMarkers:function(){var A=this;A.scope="my";A.refreshFeed("map_2");},setAllMarkers:function(){var A=this;A.scope=null;A.refreshFeed("map_2");},mapOptions:{map_control_style:"mapkit",map_control_color:"black",mapType:"normal",default_bubble_style:"bubble_default",my_bubble_style:"bubble_red",people_bubble_style:"bubble_blue",map_enable_scroll_zoom:true,map_enable_smooth_zoom:true,map_enable_google_bar:true,map_enable_double_click_zoom:true,map_enable_type_position:true,map_enable_overview:true,map_enable_scale_control:false,refresh_people_interval:0,refresh_session_interval:0,refresh_feeds_interval:0,enable_ads:false,publisher_id:"",max_ads_on_map:5,min_zoom_level_for_ads:6},markerDefaults:{latLng:[],html:null,htmlOpenEvent:"click",draggable:false,minZoom:0,maxZoom:17,icon:null,maxContent:null},managerDefaults:{borderPadding:100,maxZoom:17,trackMarkers:false}});Object.extend(MapKit,{set:function(A){MapKit.instance=A;},get:function(){if(MapKit.instance==null){MapKit.instance=new MapKit();}return MapKit.instance;},mergeOptions:function(){var F=arguments[0]||{},D=1,E=arguments.length,A=false,C;if(F.constructor==Boolean){A=F;F=arguments[1]||{};D=2;}if(typeof F!="object"&&typeof F!="function"){F={};}if(E==D){F=this;--D;}for(;D<E;D++){if((C=arguments[D])!=null){for(var B in C){var G=F[B],H=C[B];if(F===H){continue;}if(A&&H&&typeof H=="object"&&!H.nodeType){F[B]=jQuery.extend(A,G||(H.length!=null?[]:{}),H);}else{if(H!==undefined){F[B]=H;}}}}}return F;},parseLatLng:function(A){parts=[];if(A){parts=A.split("x");parts[0]=parseFloat(parts[0]);parts[1]=parseFloat(parts[1]);}return parts;}});function addMarker(B){console.log("Adding Marker");try{$el=$j(B);$el.before("<img src='/images/loading.gif' /> ");$el.hide();$infoWindow=$el.parents(".infoWindowView");$infoWindow.load($el.attr("href"),{expanded:$infoWindow.hasClass("expanded")});}catch(A){console.error(A);}return false;}function removeMarker(B){console.log("Remove Marker");try{$el=$j(B);$el.before("<img src='/images/loading.gif' /> ");$el.hide();$infoWindow=$el.parents(".infoWindowView");$infoWindow.load($el.attr("href"),{expanded:$infoWindow.hasClass("expanded")});}catch(A){console.error(A);}return false;}