
﻿
var Maps={unload:function(){GUnload();},createMap:function(mapid){var map=new google.maps.Map2(document.getElementById(mapid));map.addControl(new google.maps.LargeMapControl());map.enableScrollWheelZoom();return map;}}
google.load("maps","2");var Map=Class.create();Map.prototype={initialize:function(params){this.params=params;this.mapid=params.mapid;this.isPostBack=params.isPostBack;this.centerLatField=$(params.centerLatField);this.centerLngField=$(params.centerLngField);this.zoomField=$(params.zoomField);this.centerLat=parseFloat(this.centerLatField.value);this.centerLng=parseFloat(this.centerLngField.value);this.zoom=parseInt(this.zoomField.value);this.markers=this.createMarkers(params.markers);this.parseMarkers();},addMarkersToMap:function(){for(var x=0;x<this.markers.length;x++){if(this.markers[x].GMarker!=null){this.GMap.addOverlay(this.markers[x].GMarker);}}},createMap:function(){this.GMap=new google.maps.Map2($(this.mapid));this.GMap.addControl(new google.maps.SmallZoomControl3D);this.GMap.enableScrollWheelZoom();this.GMap.setCenter(new GLatLng(this.centerLat,this.centerLng),this.zoom);},setZoom:function(){},createMarkers:function(obj){var array=new Array();for(var x=0;x<obj.length;x++){array.push(new Marker(obj[x]));}
return array;},parseMarkers:function(){var app=this;for(var x=0;x<this.markers.length;x++){this.markers[x].parseComplete=function(marker){app.parseComplete();}
this.markers[x].parse();}
this.parseComplete();},parseComplete:function(){var isParsed=true;for(var x=0;x<this.markers.length;x++){isParsed=isParsed&&this.markers[x].isParsed;}
if(isParsed){this.createMap();this.addMarkersToMap();}
if(!this.isPostBack&&isParsed)
this.setViewport();},setViewport:function(){var bounds=new google.maps.LatLngBounds();var zoom=1;for(var x=0;x<this.markers.length;x++){if(this.markers[x].GMarker!=null)
bounds.extend(this.markers[x].GMarker.getLatLng());}
zoom=this.GMap.getBoundsZoomLevel(bounds);if(this.markers.length>0){if(this.markers.length==1){this.GMap.setCenter(bounds.getCenter(),zoom-2);}
else{this.GMap.setCenter(bounds.getCenter(),zoom);}}},onSubmit:function(){var center=this.GMap.getCenter();this.zoomField.value=this.GMap.getZoom();this.centerLatField.value=center.lat();this.centerLngField.value=center.lng();}}
var Marker=Class.create();Marker.prototype={initialize:function(params){this.params=params;this.address1=params.address1==null?"":params.address1;this.address2=params.address2==null?"":params.address2;this.suite=params.suite==null?"":params.suite;this.city=params.city==null?"":params.city;this.state=params.state==null?"":params.state;this.zip=params.zip==null?"":params.zip;this.country=params.country==null?"":params.country;this.phone=params.phone==null?"":params.phone;this.lat=params.lat;this.lng=params.lng;this.GMarker=null;this.parseComplete=null;this.isParsed=false;},parse:function(){if(this.lat!=null&&this.lng!=null){this.parseCallback(new google.maps.LatLng(this.lat,this.lng));}
else{var str=this.address1+" "+this.address2+" "+this.suite+" "+this.city+" "+this.state+" "+this.zip+" "+this.country;var geo=new google.maps.ClientGeocoder();var app=this;geo.getLatLng(str,function(point){app.parseCallback(point);});}},parseCallback:function(point){if(point!=null)
this.GMarker=new google.maps.Marker(point);this.isParsed=true;this.parseComplete(this);}}