var Crate=Crate||{};Crate.GoogleMapWrapper={settings:{mapCenterPoint:"",mapIcon:"",mapZoom:8,locale:"en_US",isInitialized:!1},mapObjects:{GMap2Obj:null,GDirectionsObj:null,GMarkerObj:null},callbackFunctions:{dbFunctions:[],addCallbackFunction:function(n){var t=Crate.GoogleMapWrapper.callbackFunctions.dbFunctions;t[t.length]=n},handleLoad:function(n,t){for(var r=Crate.GoogleMapWrapper.callbackFunctions.dbFunctions,i=0;i<r.length;i++)r[i](t,n)}},mapManipulation:{loadMapDirections:function(n,t){t===undefined&&(Crate.GoogleMapWrapper.mapObjects.GDirectionsObj!==null?t=Crate.GoogleMapWrapper.mapObjects.GDirectionsObj:Crate.GoogleMapWrapper.callbackFunctions.handleError("Settings not properly initialized, no GDirections object to act on.")),t.load("from: "+n+" to: "+Crate.GoogleMapWrapper.settings.mapCenterPoint,{locale:Crate.GoogleMapWrapper.settings.locale})},removeMapDirections:function(n){n===undefined&&(Crate.GoogleMapWrapper.mapObjects.GDirectionsObj!==null?n=Crate.GoogleMapWrapper.mapObjects.GDirectionsObj:Crate.GoogleMapWrapper.callbackFunctions.handleLoad("Settings not properly initialized, no GDirections object to act on.",!1)),n.clear()},addMarker:function(n,t,i){var r=Crate.GoogleMapWrapper.googleMapWrappers.getMarkerFromLatLangObject(n,t,i);map.addOverlay(r)},showMarker:function(n){n===undefined&&(n=Crate.GoogleMapWrapper.mapObjects.GMarkerObj),n.show()},hideMarker:function(n){n===undefined&&(n=Crate.GoogleMapWrapper.mapObjects.GMarkerObj),n.closeInfoWindow(),n.hide()},refreshMap:function(n){var t=Crate.GoogleMapWrapper.mapObjects.GMap2Obj;try{t.setCenter(Crate.GoogleMapWrapper.settings.mapCenterPoint,Crate.GoogleMapWrapper.settings.mapZoom),Crate.GoogleMapWrapper.mapManipulation.removeMapDirections(),Crate.GoogleMapWrapper.mapManipulation.showMarker(),n===!0&&Crate.GoogleMapWrapper.callbackFunctions.handleLoad("Map refreshed.",!0)}catch(i){Crate.GoogleMapWrapper.callbackFunctions.handleLoad(i.description,!1)}},checkResize:function(n){var t=Crate.GoogleMapWrapper.mapObjects.GMap2Obj,u=t.getCenter(),i=Crate.GoogleMapWrapper.settings.mapZoom,r;t.checkResize(),t.setCenter(u);if(n)try{r=Crate.GoogleMapWrapper.mapObjects.GDirectionsObj,i=t.getBoundsZoomLevel(r.getBounds())}catch(f){i=Crate.GoogleMapWrapper.settings.mapZoom}t.setZoom(i)},BuildDisplayText:function(n){var t=$(document.createElement("div"));return t.append($(document.createElement("strong")).html(n.Name)),t.append($(document.createElement("div")).html(n.Address1)),n.Address2.length>0&&t.append($(document.createElement("div")).html(n.Address2)),t.append($(document.createElement("div")).html(n.City+", "+n.State+" "+n.Zip)),t.append($(document.createElement("div")).addClass("phone").html(n.PhoneAreacode+"."+n.PhonePrefix+"."+n.PhoneSuffix)),t.append($(document.createElement("a")).attr("href","/Stores/Map.aspx?storeid="+n.Id).html("Get Directions")),$(document.createElement("div")).html(t)}},googleMapWrappers:{getMap:function(n){return GBrowserIsCompatible()&&n!==""?map=new GMap2(document.getElementById(n)):(Crate.GoogleMapWrapper.callbackFunctions.handleError("Browser is not compatible with google maps."),null)},getDirectionsObj:function(n,t){return t===undefined&&(t=Crate.GoogleMapWrapper.mapObjects.GMap2Obj),dirObj=new GDirections(t,document.getElementById(n)),GEvent.addListener(dirObj,"error",function(){Crate.GoogleMapWrapper.googleMapWrappers.directionsError(this)}),GEvent.addListener(dirObj,"load",function(){Crate.GoogleMapWrapper.callbackFunctions.handleLoad("directions loaded.",!0)}),dirObj},getMarkerFromLatLangObject:function(n,t,i){var r=new GIcon,u,f;return r.image=i!=undefined?"/assets/storeLocator/mapmarker/marker-"+i+".png":"/assets/storeLocator/mapmarker/marker.png",r.shadow="/assets/storeLocator/mapmarker/marker_shadow.png",r.iconSize=new GSize(48,62),r.shadowSize=new GSize(61,30),r.iconAnchor=new GPoint(10,48),r.infoWindowAnchor=new GPoint(21,50),r.infoShadowAnchor=new GPoint(18,25),u=new GMarker(n,r),t!=undefined&&t.length>0&&(f=[new GInfoWindowTab("Address",t)],GEvent.addListener(u,"click",function(){u.openInfoWindowTabsHtml(f)}),i===undefined&&u.openInfoWindowTabsHtml(f)),u},directionsError:function(n){var i=n.getStatus().code,t="";t=i==602?Crate.Messages.GM602:i==604?Crate.Messages.GM604:i==610||i==620?Crate.Messages.GMKey:Crate.Messages.defaultDirvingDirError,Crate.GoogleMapWrapper.callbackFunctions.handleLoad(t,!1)}},init:function(n,t,i,r,u,f){try{this.settings.mapCenterPoint=t,this.mapObjects.GMap2Obj=this.googleMapWrappers.getMap(n.replace("#","")),r!==undefined&&r!==""&&(this.settings.mapZoom=r),f!==undefined&&f!==""&&(this.mapObjects.GDirectionsObj=this.googleMapWrappers.getDirectionsObj(f.replace("#",""))),u!==undefined&&u!==""&&(this.settings.locale=u),map.addControl(new GSmallMapControl),map.setCenter(this.settings.mapCenterPoint,this.settings.mapZoom),i!==null&&i!==""&&(this.mapObjects.GMarkerObj=this.googleMapWrappers.getMarkerFromLatLangObject(map.getCenter(),i),map.addOverlay(this.mapObjects.GMarkerObj)),this.settings.isInitialized=!0,Crate.GoogleMapWrapper.callbackFunctions.handleLoad("Map initialized.",!0)}catch(e){this.settings.isInitialized=!1,Crate.GoogleMapWrapper.callbackFunctions.handleLoad(e.description,!1)}},init2:function(n){this.mapObjects.GMap2Obj=this.googleMapWrappers.getMap(n.replace("#","")),this.settings.mapZoom=Crate.GoogleMapWrapper.mapZoom,map.addControl(new GSmallMapControl),this.settings.isInitialized=!0,Crate.GoogleMapWrapper.callbackFunctions.handleLoad("Map initialized.",!0)}};
var Crate=Crate||{};Crate.StoreDrivingDirections={config:{mapID:"#googleMap",directionsID:"#directions",storeID:0,storeListingArray:"",fromAddress:"",toAddress:"",locale:"",submitButton:"#lnkGetDirections",errorDivLocation:"#divErrBox_DrivingDirections"},init:function(){this.loadGoogleMap()},loadGoogleMap:function(){var i=this.config.mapID,n=this.config.storeListingArray,u=this.getStoreMapPoint(n),r=this.getDisplayText(n),t=!Crate.GoogleMapWrapper.settings.isInitialized;t&&(Crate.StoreDrivingDirections.animations.mapToFullSize(),Crate.GoogleMapWrapper.init(i,u,r,14,this.config.locale,this.config.directionsID),Crate.GoogleMapWrapper.callbackFunctions.addCallbackFunction(this.mapLoadCallback)),this.config.fromAddress!==""?(Crate.GoogleMapWrapper.mapManipulation.hideMarker(),Crate.GoogleMapWrapper.mapManipulation.loadMapDirections(this.config.fromAddress)):t||($(Crate.StoreDrivingDirections.config.submitButton).removeClass("progressWheel"),Crate.StoreDrivingDirections.animations.mapToFullSize(!0))},submit:function(){var i=$("#txtFromAddress").val();this.config.fromAddress!=i&&($(this.config.submitButton).addClass("progressWheel"),this.config.fromAddress=i,Crate.StoreDrivingDirections.animations.directionsHide(),this.loadGoogleMap())},getStoreMapPoint:function(n){return new GLatLng(n[0],n[1])},getDisplayText:function(n){var i="<div style='text-align: left;font-size:90%;line-height:115%;'><B>"+n[2]+"</B><br/>"+n[3]+"<br/>"+n[4]+", "+n[5]+" "+n[6],t;return t=n[7].length<10?"":"<br />"+n[7],i+t+"</div>"},clearErrorMessages:function(){$(Crate.StoreDrivingDirections.config.errorDivLocation).empty(),$(Crate.StoreDrivingDirections.config.errorDivLocation).hide()},mapLoadCallback:function(n,t){Crate.StoreDrivingDirections.clearErrorMessages(),$(Crate.StoreDrivingDirections.config.submitButton).removeClass("progressWheel"),n?Crate.StoreDrivingDirections.animations.mapToSmallSize(function(){Crate.StoreDrivingDirections.animations.directionsShow()}):(Crate.Val.$.displayError(t,$(Crate.StoreDrivingDirections.config.errorDivLocation)),Crate.StoreDrivingDirections.animations.mapToFullSize(!0))},animations:{settings:{mapIsSmall:!0,directionsAreVisiable:!0},mapToFullSize:function(n){var t=$(Crate.StoreDrivingDirections.config.mapID);Crate.StoreDrivingDirections.animations.settings.mapIsSmall&&(Crate.StoreDrivingDirections.animations.settings.mapIsSmall=!1,n?t.animate({width:"925px"},"normal",function(){Crate.GoogleMapWrapper.mapManipulation.checkResize(),Crate.GoogleMapWrapper.mapManipulation.refreshMap(!1)}):t.addClass("width925"))},mapToSmallSize:function(n){var t=$(Crate.StoreDrivingDirections.config.mapID);Crate.StoreDrivingDirections.animations.settings.mapIsSmall?n!==undefined&&n():(Crate.StoreDrivingDirections.animations.settings.mapIsSmall=!0,t.animate({width:"610px"},"normal",n))},directionsShow:function(){var n=$(Crate.StoreDrivingDirections.config.directionsID);Crate.StoreDrivingDirections.animations.settings.directionsAreVisiable&&n.hide(),Crate.StoreDrivingDirections.animations.settings.directionsAreVisiable=!0,n.fadeIn("slow",function(){Crate.GoogleMapWrapper.mapManipulation.checkResize(!0)})},directionsHide:function(){var n=$(Crate.StoreDrivingDirections.config.directionsID);Crate.StoreDrivingDirections.animations.settings.directionsAreVisiable=!1,n.fadeOut("fast")}}};
var Crate=Crate||{};Crate.StoreLocator={init:function(){if(!Crate.Stores.StoreData||Crate.Stores.StoreData.length<=0)return;var n=new GLatLng(Crate.Stores.StoreData[0].StoreLat,Crate.Stores.StoreData[0].StoreLong);Crate.GoogleMapWrapper.init("#googleMap",n),$.each(Crate.Stores.StoreData,function(n,t){var r=String.fromCharCode("A".charCodeAt(0)+n),i=Crate.GoogleMapWrapper.mapManipulation.BuildDisplayText(t).html();Crate.GoogleMapWrapper.mapManipulation.addMarker(new GLatLng(t.StoreLat,t.StoreLong),i,r)})}};
var Crate=Crate||{};Crate.Stores={config:{mapDiv:"#googleMap",storeID:0,storeListingArray:""},init:function(){this.loadGoogleMap()},updateMyStore:function(){var n=new Crate.AJAX.Account("AccountUpdateStore|Account");n.MyStoreID=this.config.storeID,n.submit(function(){$("#featuredLocation").fadeIn(),$("#lnkSaveLocation").hide()})},loadGoogleMap:function(n,t){Crate.Stores.config.storeID=t,Crate.Stores.config.storeListingArray=n},loadGoogleMap:function(){var u=this.config.mapID,r=!Crate.GoogleMapWrapper.settings.isInitialized;if(r){var n=this.config.storeListingArray,t=this.getStoreMapPoint(n),i=this.getDisplayText(n);Crate.GoogleMapWrapper.init(this.config.mapDiv,t,i,14)}},getStoreMapPoint:function(n){return new GLatLng(n[0],n[1])},getDisplayText:function(n){var r="<div style='text-align: left;font-size:90%;line-height:115%;'><strong>"+n[2]+"</strong><br/>"+n[3]+"<br/>"+n[4]+", "+n[5]+" "+n[6],t,i;return t=n[7].length<10?"":"<br />"+n[7],i="<a href='/Stores/Map.aspx?storeid="+n[8]+"' target='_parent'>Get Directions</a>",r+t+"<p style='margin-top:5px;'>"+i+"</p></div>"}};

