YAHOO.namespace("hs");YAHOO.hs.map=function(){var n=YAHOO.util.Connect;var m=YAHOO.util.Dom;var l=YAHOO.util.Event;var i=YAHOO.lang.JSON;var M=null;var z=null;var U=null;var e=null;var b=null;var A=null;var c=null;var S=new GTrafficOverlay();var N=false;var K=null;var t=[];var o=[];var G=null;var W=null;var u=function(){var C,E,D;C=BASE_URL+"/services/getevents/format/json?count=3&locale="+z;E={success:V,failure:f};D=n.asyncRequest("GET",C,E)};var V=function(E){var C,D;if(E.responseText!==undefined){C=E.responseText;D=i.parse(C);if(D.result.status.toLowerCase()=="success"){b=D.result.events;p()}else{f()}}};var f=function(C){};var p=function(){var C,E,D;C=BASE_URL+"/services/getplaces/format/json?locale="+z;E={success:F,failure:w};D=n.asyncRequest("GET",C,E)};var F=function(E){var C,D;if(E.responseText!==undefined){C=E.responseText;D=i.parse(C);if(D.result.status.toLowerCase()=="success"){e=D.result.places;j()}else{w()}}};var w=function(C){};var j=function(){var D,C;B();D=location.hash.substr(1);C=k(D);if(C!=""){g(C)}else{P()}h()};var k=function(C){return C.split("-")[0]};var B=function(){var D,J,Z,Y,E,C=e.length,X;for(Y=0;Y<C;Y++){E=e[Y];X=E.isActive==="0"?' <span class="highlight">(closed)</span>':"";Z='<h4><a href="'+BASE_URL+"/"+U+"/places/"+E.slug+'" title="View details for &quot;'+E.name+'&quot;">'+E.name+X+"</a></h4>";Z+='<p style="margin-bottom:0;">'+E.address;if(E.link!=""){Z+='<br /><a href="'+E.link+'" title="Link" target="_blank" class="ext smallTextLink">Link</a>'}Z+="</p>";D=new GLatLng(E.lat,E.lon);J=O(D,E.name,Z,E.id);t.push(J);o.push({loaded:false})}c=new ClusterMarker(A,{markers:t,intersectPadding:-4,fitMapMaxZoom:11,clusterMarkerTitle:"Click to zoom in and see %count locations"});c.refresh()};var O=function(C,X,J,Y){var E,D;E={title:X};D=new GMarker(C,E);GEvent.addListener(D,"click",function(){if(W){GEvent.removeListener(W);W=null}D.openInfoWindowHtml(J,{maxWidth:200});H(Y)});return D};var T=function(){if(N){A.removeOverlay(S);N=false;M.mapEvent.fire({pageEvent:YAHOO.hs.constants.MAP_TRAFFIC_OFF})}else{A.addOverlay(S);N=true;M.mapEvent.fire({pageEvent:YAHOO.hs.constants.MAP_TRAFFIC_ON})}x()};var x=function(){var C=N?"Hide traffic?":"Show traffic?";m.get("divTraffic").innerHTML='<p><a href="'+BASE_URL+"/"+U+'/map" title="'+C+'" onclick="YAHOO.hs.map.toggleTraffic(); return false;">'+C+"</a></p>"};var H=function(C){if(W==null){W=GEvent.addListener(A,"infowindowclose",function(){P()})}K=I(C);if(K!=-1){location.href="#"+e[K].slug;M.mapEvent.fire({pageEvent:YAHOO.hs.constants.MAP_ITEM_DETAIL,itemInfo:e[K].slug});if(o[K].loaded){r(o[K].events)}else{s("<h4>Loading events...</h4>");d(C)}}else{v()}};var d=function(J){var C,E,D;C=BASE_URL+"/services/getplaceevents/format/json?id="+J;E={success:L,failure:R};D=n.asyncRequest("GET",C,E)};var L=function(J){var C,E,D;if(J.responseText!==undefined){C=J.responseText;E=i.parse(C);if(E.result.status.toLowerCase()=="success"){D=E.result.events;o[K].loaded=true;o[K].events=D;r(D)}else{R()}}};var R=function(){q()};var r=function(af){var aa="",ab=af.length,Z=0,ac,X,D,Y,ah,X,J,E,ae,ag,C,ad;if(ab>0){while(Z<ab){ac=af[Z];E=ac.id;Y=ac.slug;D=ac.name;C=ac.dateDisplay;ag=ac.peopleDisplay;ae=ac.summary;J=ac.image;ad=ac.link;X=BASE_URL+"/"+U+"/events/"+Y;aa+='<div class="event">';if(ag!=false){aa+="<h5>"+ag+"</h5>"}aa+='<h3><a href="'+X+'" title="View details for &quot;'+D+'&quot;">'+D+"</a></h3>";aa+="<p>"+C+"</p>";if(J!=null){ah=IMAGE_URL+"/0/"+E+"/"+J+"_s.jpg";aa+='<p><a href="'+X+'" title="View details for &quot;'+D+'&quot;" class="img"><img src="'+ah+'" alt="" class="bordered" /></a></p>'}if(ae!=""||ad!=""){aa+="<p>";if(ae!=""){aa+=ae}if(ad!=""){aa+=' <a href="'+ad+'" title="Link" class="ext" target="_blank">Link</a>'}aa+="</p>"}aa+="</div>";Z++}}else{if(e[K].isActive==="0"){aa+='<h3 class="instruct">The selected venue is no longer open or is operating under a new name</h3>'}else{aa+='<h3 class="instruct">There are no upcoming events for the selected location</h3>'}aa+=a();aa+=y()}s(aa)};var q=function(){var C="";C+='<h3 class="instruct">Unable to load events for selected location - try again or try another</h3>';C+=a();C+=y();s(C)};var v=function(){var C="";C+='<h3 class="instruct">The location specified can not be displayed - try again or try another</h3>';C+=a();C+=y();s(C)};var P=function(){var C="";C+='<h3 class="instruct">Select a location to view info and events</h3>';C+=a();C+=y();s(C);location.href="#";K=-1;if(W){GEvent.removeListener(W);W=null}};var h=function(){G=setInterval(Q,1000)};var Q=function(){var C=k(location.hash.substr(1));if(C===""){if(K!==-1){A.closeInfoWindow()}}else{if(K===-1||C!==e[K].id){g(C)}}};var a=function(){var C="";C+='<p class="legend"><img src="'+BASE_URL+'/images/map/arrow_small.png" align="absmiddle" width="16" height="20" alt="Arrow" class="legendArrow" /> = a group of items, click to zoom in</p>';return C};var y=function(){var E="",D,C=b.length,J;E+='<h4 class="recent">Recently updated events:</h4>';E+="<ul>";for(D=0;D<C;D++){J=b[D];E+='<li><h4><a href="'+BASE_URL+"/"+U+"/map#"+J.placeSlug+'" title="View location on map" onclick="YAHOO.hs.map.showInfo(\''+J.placeId+"', true); return false;\">"+J.name+"</a></h4>";if(J.peopleDisplay!=false){E+=J.peopleDisplay+"<br />"}E+=J.dateDisplay;if(J.placeDisplay!=false){E+=" at "+J.placeDisplay}E+="</li>"}E+="</ul>";return E};var g=function(E,C){if(C==true){M.mapEvent.fire({pageEvent:YAHOO.hs.constants.MAP_RECENT_CLICK})}var D=I(E);if(D!=-1){c.triggerClick(D)}else{v()}};var I=function(D){var C=e.length;while(C--){if(e[C].id==D){return C}}return -1};var s=function(C){m.get("mapEventsInner").innerHTML=C};return{mapEvent:new YAHOO.util.CustomEvent("mapEvent"),init:function(E,D,C){M=YAHOO.hs.map;l.addListener(window,"unload",GUnload);z=C.localeId;U=C.localePath;if(GBrowserIsCompatible()){A=new GMap2(m.get("mapCanvas"));A.addControl(new GLargeMapControl(),new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(10,10)));A.addControl(new GScaleControl());A.enableScrollWheelZoom();A.setCenter(new GLatLng(C.localeLat,C.localeLon),C.localeZoom);x();u()}},toggleTraffic:function(){T()},showInfo:function(D,C){g(D,C)}}}();YAHOO.hs.map.mapEvent.subscribe(YAHOO.hs.tracker.mapEvent);