
var $j=jQuery.noConflict();$j('#txtPlace').focus();var _map;var _markers=new Object();var degreesPerRadian=180.0/Math.PI;function bearing(from,to){var lat1=from.latRadians();var lon1=from.lngRadians();var lat2=to.latRadians();var lon2=to.lngRadians();var angle=-Math.atan2(Math.sin(lon1-lon2)*Math.cos(lat2),Math.cos(lat1)*Math.sin(lat2)-Math.sin(lat1)*Math.cos(lat2)*Math.cos(lon1-lon2));if(angle<0.0)
angle+=Math.PI*2.0;angle=angle*degreesPerRadian;angle=angle.toFixed(1);return angle;}
function arrowHead(points){var arrowIcon=new GIcon();arrowIcon.iconSize=new GSize(24,24);arrowIcon.shadowSize=new GSize(1,1);arrowIcon.iconAnchor=new GPoint(12,12);arrowIcon.infoWindowAnchor=new GPoint(0,0);var p1=points[points.length-1];var p2=points[points.length-2];var dir=bearing(p2,p1);var dir=Math.round(dir/3)*3;while(dir>=120){dir-=120;}
arrowIcon.image="http://www.google.com/intl/en_ALL/mapfiles/dir_"+dir+".png";var arrowMarker=new GMarker(p1,arrowIcon);_map.addOverlay(arrowMarker);return arrowMarker;}
function midArrows(points){for(var i=1;i<points.length-1;i++){var p1=points[i-1];var p2=points[i+1];var dir=bearing(p1,p2);var dir=Math.round(dir/3)*3;while(dir>=120){dir-=120;}
arrowIcon.image="http://www.google.com/intl/en_ALL/mapfiles/dir_"+dir+".png";_map.addOverlay(new GMarker(points[i],arrowIcon));}}
function loadMap(){if(GBrowserIsCompatible()){m=$("#map").get(0);_map=new GMap2(m);$.historyInit(historyChange);if($.historyCurrentHash.replace(/^#/,'')!=""){var place=$.historyCurrentHash.replace(/^#/,'').split("/");if(place.length==6){param_lat=place[1];param_lng=place[3];param_zoom=place[5];}else if(place.length==4){param_lat=place[1];param_lng=place[3];param_zoom=17;}}
var _geocoder=new GClientGeocoder();_map.addControl(new GLargeMapControl());_map.addControl(new GMapTypeControl());_map.enableContinuousZoom();_map.enableDoubleClickZoom();_map.enableScrollWheelZoom();if((param_lat!="-")&&(param_lng!="-")){if(param_zoom=="-")param_zoom=17;_map.setCenter(new GLatLng(parseFloat(param_lat),parseFloat(param_lng)),parseFloat(param_zoom));}else{param_lat=40.413496;param_lng=-3.032227;param_zoom=1;_map.setCenter(new GLatLng(40.413496,-3.032227),1);}
GEvent.addListener(_map,'moveend',function(){mapChangedListener();});GEvent.addDomListener(_map.getContainer(),"DOMMouseScroll",wheelevent);_map.getContainer().onmousewheel=wheelevent;loadMarkers();updateLinkToThisPage();}}
function wheelevent(e){if(!e){e=window.event;}
if(e.preventDefault){e.preventDefault();}
e.returnValue=false;}
function mapChangedListener(){$j("#divMaxTips").css("display","none");param_lat=_map.getCenter().lat();param_lng=_map.getCenter().lng();param_zoom=_map.getZoom();loadMarkers();updateLinkToThisPage();}
function loadMarkers(){bounds=_map.getBounds();southWest=bounds.getSouthWest();northEast=bounds.getNorthEast();sWLat=southWest.lat();sWLng=southWest.lng();nELat=northEast.lat();nELng=northEast.lng();$.ajax({url:base_url+"loadlocaltips/",type:"POST",data:"nELat="+nELat+"&nELng="+nELng+"&sWLat="+sWLat+"&sWLng="+sWLng,dataType:"html",success:function(html){process_loadMarkers(html);}});}
function process_loadMarkers(responseText){var markers=responseText.parseJSON();for(var markerID in _markers){marker=_markers[markerID];if(marker!=undefined){marker.visible=false;}}
if(markers.length==200){showMaxTips();}else{showTipsNumber(markers.length);}
if(markers.length>0){for(i=0;i<markers.length;i++){markerID=markers[i][0];if(_markers[markerID]==undefined){_markers[markerID]=new Object();_markers[markerID].visible=true;_markers[markerID].id=markerID;var icon=createIconWithImage(markers[i][3],markers[i][4],35,35);createMarker(markerID,markers[i][1],markers[i][2],icon);}else{_markers[markerID].visible=true;}}}
for(var markerID in _markers){marker=_markers[markerID];if(marker!=undefined){if(!marker.visible){_map.removeOverlay(marker.marker);_markers[markerID]=undefined;}}}}
function createIconWithImage(imageURL,shadowImageURL,x,y){var icon=new GIcon();icon.image=imageURL;icon.shadow=shadowImageURL,icon.iconSize=new GSize(x,y);icon.iconAnchor=new GPoint(x/2,y/2);icon.shadowSize=new GSize(x+(x/2),y);icon.infoWindowAnchor=new GPoint(31,8);return icon;}
function createMarker(markerID,lat,lng,icon){marker=new GMarker(new GLatLng(lat,lng),{icon:icon,draggable:true});_markers[markerID].marker=marker;_markers[markerID].polyline=null;_markers[markerID].arrow=null;GEvent.addListener(marker,"click",function(){if(_map.getInfoWindow().isHidden()){_markers[markerID].marker.openInfoWindowHtml("<div id='divLocalTipInfo"+markerID+"' class='gmaps-info'><i><img src='/img/loader.gif'> Loading tip...</i></div>");$j('#divLocalTipInfo'+markerID).load(base_url+"getLocalTipInfo/?id="+markerID);}else{_map.getInfoWindow().hide();if(!_map.getInfoWindow().getPoint().equals(_markers[markerID].marker.getPoint())){_markers[markerID].marker.openInfoWindowHtml("<div id='divLocalTipInfo"+markerID+"' class='gmaps-info'><i><img src='/img/loader.gif'> Loading tip...</i></div>");$j('#divLocalTipInfo'+markerID).load(base_url+"getLocalTipInfo/?id="+markerID);}}});GEvent.addListener(marker,"dragstart",function(){_map.getInfoWindow().hide();if(_markers[markerID].polyline!=null){_map.removeOverlay(_markers[markerID].polyline);_map.removeOverlay(_markers[markerID].arrow);_markers[markerID].polyline=null;_markers[markerID].arrow=null;}});GEvent.addListener(marker,"dragend",function(){var points=[_markers[markerID].marker.getPoint(),new GLatLng(lat,lng)];_markers[markerID].polyline=new GPolyline(points);_map.addOverlay(_markers[markerID].polyline);_markers[markerID].arrow=arrowHead(points);});_map.addOverlay(marker);}
function searchLocation(){$j("#pMapInfo").css("display","none");var geocoder=new GClientGeocoder();geocoder.getLatLng($j("#txtPlace").val(),function(point){if(!point){placeNotFound($j("#txtPlace").val());}else{_map.setCenter(point,17);}});}
function updateLinkToThisPage(){var hash="latitude/"+param_lat+"/longitude/"+param_lng+"/zoom/"+param_zoom;var currentHash=$.historyCurrentHash.replace(/^#/,'');if(hash!=currentHash)$.historyLoad(hash);}
function historyChange(newLocation){if(param_lat=="-")return;var place=newLocation.split("/");if(place.length==6){param_lat_new=parseFloat(place[1]);param_lng_new=parseFloat(place[3]);param_zoom_new=parseFloat(place[5]);}else if(place.length==4){param_lat_new=parseFloat(place[1]);param_lng_new=parseFloat(place[3]);param_zoom_new=parseFloat(17);}else{param_lat_new="-";param_lng_new="-";param_zoom_new="-";}
if((param_lat_new!="-")&&(param_lng_new!="-")&&((param_lat_new!=_map.getCenter().lat())||(param_lng_new!=_map.getCenter().lng())||(param_zoom_new!=_map.getZoom()))){_map.setCenter(new GLatLng(param_lat_new,param_lng_new),param_zoom_new);}}
