var map;var isDirectionsMap;var directionsRenderer;var directionsService;var googlestatuscodes;var mapPositionX;var mapCssPositionFixed;var mapMarkersArray=[];var markerImage;var markerImageSelected;var markerShadow;var markerShape;var markerLabelClass="map_mrkr_label";var markerLabelAnchor;var initialMapMarker;var mapMinimalZoomLevel=14;var mouseX=0;var mouseY=0;var personalMap=0;function loadMap(h,f){isDirectionsMap=(f)?true:false;googlestatuscodes=false;var g=10;initialMapMarker=mapMarkersData;var k=document.createElement("script");k.type="text/javascript";k.src="http://maps.google.com/maps/api/js?sensor=false&language="+lang+"&callback=initMap";document.body.appendChild(k);var d=h("#fixedFloat");if(h("#fixedFloat").length>0){var c=parseInt(d.offset().top)-g;mapPositionX=h("#main_body").offset().left+h("#main_body").width()-d.width()-h(window).scrollLeft();log("INIT mapPositionX: "+mapPositionX);d.css({position:"static"});var a;var b;var j;var e=false;var l;if(isDirectionsMap==false){h(window).resize(function(){var m=(e)?j:g;mapPositionX=h("#main_body").offset().left+h("#main_body").width()-d.width()-h(window).scrollLeft();onMapResize(d,mapPositionX,m)});h(window).scroll(function(){var p=h(window).scrollTop();var r=h(window).scrollLeft();var n=d.offset().top+d.height();var o=h(document).height()-n;if(d.length>0){if(p>c&&!mapCssPositionFixed){mapCssPositionFixed=true}else{if(p<c&&mapCssPositionFixed){d.css({position:"static",top:"auto",left:"auto"});mapCssPositionFixed=false}}if(mapCssPositionFixed){mapPositionX=h("#main_body").offset().left+h("#main_body").width()-d.width()-h(window).scrollLeft();var q=h("#global-footer").height()+35;j=(e)?j+(a-p):h(document).height()-q-n;a=p;var m=g;if(j<g){e=true;m=j}else{e=false}if(h("#columnRight").height()<h(".wrk_center").height()){d.css({position:"fixed",top:m,left:mapPositionX})}}}})}}}function onMapResize(b,a,c){if(mapCssPositionFixed){b.css({position:"fixed",left:a,top:c})}else{b.css({left:"auto",top:"auto"})}}function displayMarkers(){if(typeof MarkerWithLabel=="function"){addMarkers()}}function initMap(){var d=new google.maps.LatLng(54.059387886623576,-91.142578125);var e;if(isDirectionsMap==true){mapZoomControlSize=google.maps.ZoomControlStyle.LARGE;e=mapMinimalZoomLevel;d=new google.maps.LatLng(mapMarkersData.centerLat,mapMarkersData.centerLong)}else{mapZoomControlSize=google.maps.ZoomControlStyle.SMALL;e=2}var g=true;if(typeof(hideZoomControl)!="undefined"){g=!hideZoomControl}if(isDirectionsMap==true){var k={zoom:e,center:d,minZoom:4,disableDefaultUI:true,zoomControl:g,zoomControlOptions:{style:mapZoomControlSize,position:google.maps.ControlPosition.LEFT_TOP},mapTypeId:google.maps.MapTypeId.ROADMAP}}else{var k={zoom:e,center:d,disableDefaultUI:true,zoomControl:true,zoomControlOptions:{style:mapZoomControlSize,position:google.maps.ControlPosition.LEFT_TOP},mapTypeId:google.maps.MapTypeId.ROADMAP}}map=new google.maps.Map(document.getElementById("map_canvas"),k);var b=document.createElement("DIV");b.style.padding="4px";map.controls[google.maps.ControlPosition.TOP_LEFT].push(b);markerImage=new google.maps.MarkerImage("http://ui.411.ca/map_mrkr.png",new google.maps.Size(26,34),new google.maps.Point(0,0),new google.maps.Point(13,34));markerImageSelected=new google.maps.MarkerImage("http://ui.411.ca/map_mrkr_slctd.png",new google.maps.Size(26,34),new google.maps.Point(0,0),new google.maps.Point(13,34));markerShadow=new google.maps.MarkerImage("http://ui.411.ca/map_mrkr_shdw.png",new google.maps.Size(46,34),new google.maps.Point(0,0),new google.maps.Point(13,34));markerShape={coord:[18,0,20,1,22,2,23,3,23,4,24,5,25,6,25,7,25,8,25,9,25,10,25,11,25,12,25,13,25,14,24,15,24,16,23,17,22,18,20,19,18,20,16,21,15,22,15,23,15,24,15,25,15,26,15,27,15,28,15,29,15,30,15,31,15,32,15,33,14,33,14,32,14,31,13,30,13,29,13,28,13,27,13,26,13,25,12,24,12,23,12,22,10,21,7,20,5,19,4,18,3,17,2,16,1,15,1,14,1,13,0,12,0,11,0,10,0,9,0,8,0,7,1,6,1,5,2,4,3,3,4,2,5,1,7,0,18,0],type:"poly"};markerLabelAnchor=new google.maps.Point(12,30);var h=$("<script/>").attr("src","http://js.411.ca/js/1201272222/markerwithlabel_packed.js").appendTo("head");var f=50;var a=setInterval(function(){if(typeof MarkerWithLabel=="function"){clearInterval(a);h.remove();displayMarkers()}if(--f==0){clearInterval(a)}},100);var c=false;$("#mapExpand").css("cursor","pointer");$("#mapExpand").click(function(){var l=map.getCenter();var o=map.getZoom();var n=$("#map").width();var m=mapPositionX+n;if(c){$("#main_body").removeClass("page_has_large_map");$("#fixedFloat").width(220);c=false;$("#map_toggle_img").attr("src","http://ui.411.ca/map_expand.png");map.setOptions({zoomControlOptions:{style:google.maps.ZoomControlStyle.SMALL,position:google.maps.ControlPosition.LEFT_TOP}});o--;if(o<0){o=0}_gaq.push(["_trackEvent","Search Map","Minimize"])}else{$("#main_body").addClass("page_has_large_map");$("#fixedFloat").width(425);$("#map").attr("right",m);c=true;$("#map_toggle_img").attr("src","http://ui.411.ca/map_shrink.png");map.setOptions({zoomControlOptions:{style:google.maps.ZoomControlStyle.LARGE,position:google.maps.ControlPosition.LEFT_TOP}});o++;_gaq.push(["_trackEvent","Search Map","Maximize"]);google.maps.event.addListener(map,"zoom_changed",function(){zoomChangeBoundsListener=google.maps.event.addListener(map,"bounds_changed",function(p){if(this.getZoom()<3){this.setZoom(3)}google.maps.event.removeListener(zoomChangeBoundsListener)})})}mapPositionX=$("#main_body").offset().left+$("#main_body").width()-$("#fixedFloat").width()-$(window).scrollLeft();if(mapCssPositionFixed){$("#fixedFloat").css({left:mapPositionX})}google.maps.event.trigger(map,"resize");map.setCenter(l);map.setZoom(o)});var j={map:map,suppressMarkers:true};directionsService=new google.maps.DirectionsService();directionsRenderer=new google.maps.DirectionsRenderer(j);directionsRenderer.setMap(map);$("#directions_container input").keypress(function(m){if(m.which==13){var l=$("#map_get_directions").map(function(){return $.makeArray(this.elements)});if(l[0].value!=""&&l[1].value!=""){getMapDirections()}}})}function addMarkers(){if((mapMarkersData!=null)&&(typeof mapMarkersData=="object")&&(typeof MarkerWithLabel=="function")){if((mapMarkersData.markers!=null)&&(typeof mapMarkersData.markers=="object")){var a=null;var d=null;for(i in mapMarkersData.markers){var c=mapMarkersData.markers[i];if((c!=null)&&(typeof c=="object")){var b='<table class="map_mrkr_tooltip" cellpadding="0" cellspacing="0" border="0"><tr>'+((c.img!="")?'<td class="tooltip_image"><img src="'+c.img+'"></td>':"")+'<td valign="top" class="tooltip_info"><div class="tooltip_name">'+c.name+'</div><div class="tooltip_address">'+c.addr+"</div></td></tr></table>";addMarker(c.geoLat,c.geoLong,i,(!isDirectionsMap)?i:"",b,c.url,mapMarkersData.markers[i]["businessId"]);a=c.geoLat;d=c.geoLong}}setZoomAndCenter()}mapMarkersData=null}}function setZoomAndCenter(){if(isDirectionsMap==false){if(mapMarkersData.zoomLevel>mapMinimalZoomLevel){mapMarkersData.zoomLevel=mapMinimalZoomLevel}map.setZoom(mapMarkersData.zoomLevel);map.setCenter(new google.maps.LatLng(mapMarkersData.centerLat,mapMarkersData.centerLong))}else{if((typeof(mapMarkerGeoLat)!="undefined")&&mapMarkerGeoLat!=null){map.setCenter(new google.maps.LatLng(mapMarkerGeoLat,mapMarkerGeoLong))}}}function showToolTip(a){$("#mapToolTip").css("left",400);$("#mapToolTip").show();$("#mapToolTip").html(a);$("#mapToolTip").css("left",mouseX-$("#mapToolTip").width()-10);$("#mapToolTip").css("top",mouseY+20)}function addMarker(j,l,b,m,h,a,e){var k=3*(25-(b-1)%25);var n={};if((!isDirectionsMap)||(m!="")){n={labelContent:m,labelAnchor:markerLabelAnchor,labelClass:markerLabelClass}}var c={position:new google.maps.LatLng(j,l),map:map,icon:markerImage,shadow:markerShadow,shape:markerShape,zIndex:k,animation:google.maps.Animation.DROP,visible:true};c=$.extend(n,c);var f=new MarkerWithLabel(c);if(a){google.maps.event.addListener(f,"click",function(){var p=$("#total_result_found").attr("data-qid");var o=false;if(typeof(f.statsRecorded)=="undefined"){o=true}f.statsRecorded=true;if(o){_gaq.push(["_trackEvent","Map","Pin click","lat: "+j+" long: "+l]);updateRecordStat(f,e,"Map","Detail",p)}setTimeout("document.location = '"+a+(p?"?qid="+p:"")+"'",200)})}google.maps.event.addListener(f,"hover",function(){_gaq.push(["_trackEvent","Map","Pin hover","lat: "+j+" long: "+l])});var g=1000;var d=0;google.maps.event.addListener(f,"mouseover",function(){clearInterval(d);if(f.getZIndex()!=g){f.setIcon(markerImageSelected);f.setZIndex(g)}showToolTip(h)});google.maps.event.addListener(f,"mouseout",function(){$("#mapToolTip").hide();clearInterval(d);d=setInterval(function(){f.setIcon(markerImage);f.setZIndex(k);clearInterval(d)},30)});mapMarkersArray.push(f)}function clearOverlays(){if(typeof mapMarkersArray=="object"){for(i in mapMarkersArray){if(typeof mapMarkersArray[i]=="object"){mapMarkersArray[i].setMap(null)}}}}function showOverlays(){if(typeof mapMarkersArray=="object"){for(i in mapMarkersArray){if(typeof mapMarkersArray[i]=="object"){mapMarkersArray[i].setMap(map)}}}}function deleteOverlays(){if(typeof mapMarkersArray=="object"){clearOverlays();mapMarkersArray.length=0}}function processMapMarkersJSON(markersJSON){try{mapMarkersData=eval("("+markersJSON+")")}catch(err){mapMarkersData=null}if((typeof(map)!="undefined")&&(typeof(MarkerWithLabel)=="function")){deleteOverlays();$("#mapToolTip").hide();displayMarkers()}}function switchDirectionsAB(){var b=$("#map_get_directions").map(function(){return $.makeArray(this.elements)});var c=$("#start_address_container").html();$("#start_address_container").html($("#end_address_container").html());$("#end_address_container").html(c);var a=(b[0].value);b[0].value=b[1].value;b[1].value=a;if(a!=""&&b[0].value!=""){getMapDirections()}return false}function getMapDirections(){var a=$("#map_get_directions").map(function(){return $.makeArray(this.elements)});var b={origin:a[0].value,destination:a[1].value,provideRouteAlternatives:false,travelMode:google.maps.DirectionsTravelMode.DRIVING,unitSystem:google.maps.DirectionsUnitSystem.METRIC,region:"CA"};$("#text_directions_content").height("auto");directionsService.route(b,function(e,c){if(c==google.maps.DirectionsStatus.OK){if(!$("#main_body").hasClass("with_show_directions")){recenterMap(map)}makeDirectionsMarkers(e);directionsRenderer.setMap(map);directionsRenderer.setDirections(e);showSteps(e)}else{if(!$("#main_body").hasClass("with_show_directions")){recenterMap(map)}var d;if(!googlestatuscodes){$.ajax({url:"/Jsmessagebundle/googlestatuscodes",dataType:"json",data:"",async:false,cache:true,success:function(f,h,g){googlestatuscodes=f}})}switch(c){case google.maps.DirectionsStatus.NOT_FOUND:d=googlestatuscodes["map.directions.errorText.NOTFOUND"];break;case google.maps.DirectionsStatus.ZERO_RESULTS:d=googlestatuscodes["map.directions.errorText.ZERORESULTS"];break;case google.maps.DirectionsStatus.OVER_QUERY_LIMIT:d=googlestatuscodes["map.directions.errorText.OVERQUERYLIMIT"];break;default:d=googlestatuscodes["map.directions.errorText.DEFUALT"]}$("#text_directions_content").html(d);$("#google_directions_copyrights").html("");$("#dir_up_arrow").hide();$("#dir_down_arrow").hide();deleteOverlays();directionsRenderer.setMap(null);mapMarkersData=initialMapMarker;addMarkers()}});return false}function recenterMap(b){var a=b.getCenter();$("#main_body").addClass("with_show_directions");google.maps.event.trigger(b,"resize");b.setCenter(a)}function makeDirectionsMarkers(a){deleteOverlays();var b=a.routes[0].legs[0];if(!b){return false}addMarker(b.start_location.lat(),b.start_location.lng(),1,"A",null,null);addMarker(b.end_location.lat(),b.end_location.lng(),2,"B",null,null)}function showSteps(b){var m=b.routes[0].legs[0];var e=[];for(var c=0;c<m.steps.length;c++){var a=(m.steps[c].distance)?m.steps[c].distance.text:"-";e[c]='<tr><td class="enumeration">'+(c+1)+'.</td><td class="driving_instruction">'+m.steps[c].instructions+'</td><td class="driving_distance">'+a+"</td></tr>"}var d='<table><thead><tr><td class="driving_instructions_marker directions_address_A">A</td><td>'+m.start_address+'</td></tr></thead></table><table><tbody><tr><td colspan="3"><div class="driving_total_distance">'+m.distance.text+" ("+m.duration.text+")</td></tr>"+e.join("")+'</tbody></table><table><tfoot><tr><td class="driving_instructions_marker directions_address_B">B</td><td>'+m.end_address+"</td></tr></tfoot></table>";$("#text_directions_content").scrollTop(0);$("#text_directions_content").html(d);$("#google_directions_copyrights").html(b.routes[0].copyrights);var j=$("#render_text_directions_container").outerHeight();var k=502;var p=0;$("#render_text_directions_container").children(".measure").each(function(){p+=$(this).outerHeight()});if(j>k){$("#text_directions_content").css("overflow","hidden");var o=$("#text_directions_content").height();var h=k-p;var g=o-h;var n=30;var f=Math.round(o/n)*100;var l=0;$("#text_directions_content").height(h);$("#dir_up_arrow").show();$("#dir_up_arrow").unbind();pushEventToAnalytics("#dir_up_arrow","mouseover","Map","hover","Map directions up arrow");$("#dir_up_arrow").mouseenter(function(){$("#dir_up_arrow").addClass("semi_transparent");l=$("#text_directions_content").scrollTop();f=Math.round((l)/n)*100;$("#text_directions_content").animate({scrollTop:0},f,"linear")}).mouseleave(function(){$("#dir_up_arrow").removeClass("semi_transparent");$("#text_directions_content").stop()});$("#dir_down_arrow").show();$("#dir_down_arrow").unbind();pushEventToAnalytics("#dir_down_arrow","mouseover","Map","hover","Map directions down arrow");$("#dir_down_arrow").mouseenter(function(){$("#dir_down_arrow").addClass("semi_transparent");l=$("#text_directions_content").scrollTop();f=Math.round((o-l)/n)*100;$("#text_directions_content").animate({scrollTop:g},f,"linear")}).mouseleave(function(){$("#dir_down_arrow").removeClass("semi_transparent");$("#text_directions_content").stop()})}else{$("#dir_up_arrow").hide();$("#dir_down_arrow").hide()}};
