
if(!alikelist||alikelist=="undefined"){var alikelist={};}
alikelist.directional={gmap:null,gdir:null,geocoder:null,staticSize:280,staticZoom:14,mapZoom:14,markerIndex:0,routeColor:"0x0000FF80",routeWeight:"5",originMarker:null,startLocation:startLocation,endLocation:endLocation,apiKey:"ABQIAAAAr_IABLjnaNA-deKMi4StlhRQnvKCbdfMVzUhIPRhQiRCtt5ZOhQKHruLhpjX0zPoHRamOyqR-MX_Jw",staticMapUrl:"http://maps.google.com/staticmap",locale:"en_US",vertexCount:40,print:null,page_is_printVersion:false};alikelist.directional.attachMap=function(panel){if(GBrowserIsCompatible()){var direct=alikelist.directional;var map=direct.gmap=new GMap2(_gel("#map"));var mapControl=new GLargeMapControl();map.addControl(mapControl);if(direct.endLocation){direct.geocodeAddress(alikelist.directional.endLocation,true,false);}
alikelist.directional.initGDirection(null,panel);}};alikelist.directional.initPrintPage=function(panel){alikelist.directional.initGDirection(null,panel);alikelist.directional.getDirections();};alikelist.directional.initGDirection=function(map,panel){if(GBrowserIsCompatible()){var direct=alikelist.directional;direct.gdir=new GDirections(map,panel);GEvent.addListener(direct.gdir,"addoverlay",direct.handleGDirectionsLoad);GEvent.addListener(direct.gdir,"error",direct.handleGDirectionsError);}};alikelist.directional.checkStartDirectionInput=function(){var direct=alikelist.directional;var input=$('#startAddressInput').val();if(input){direct.startLocation={name:"input",address:input};direct.geocodeAddress(direct.startLocation,false,true);direct.getDirections();}else{$("#start_address_text").html("Please enter a Start Address").addClass("error_reg");$("#startAddressInput").addClass("input_error");}};function init_show_hide_map(map,svOverlay){$("#show_pano").live("click",function(){if($("#pano object").length){$("#pano_holder").slideDown();$("#show_pano").html("Hide street view").attr("id","hide_pano");map.addOverlay(svOverlay);}});$("#hide_pano").live("click",function(){$("#hide_pano").html("Show street view").attr("id","show_pano");$("#pano_holder").slideUp();map.removeOverlay(svOverlay);});}
alikelist.directional.geocodeAddress=function(waypointLocation,centerOnPoint,isOrigin){var direct=alikelist.directional;var point;if(waypointLocation.point){var points=waypointLocation.point.split(",");point=new GLatLng(points[0],points[1]);AL.Logger.info('Using lat/long from database');}else{if(waypointLocation.address){var geocoder=new GClientGeocoder();geocoder.getLatLng(waypointLocation.address,function(cpoint){point=cpoint;});AL.Logger.info('Using address to get lat/long');}}
if(point){point.x=geopoints[0][0];point.y=geopoints[0][1];point.Vd=geopoints[0][0];point.La=geopoints[0][1];AL.Logger.info('point = '+point);var map=direct.gmap;var marker=direct.originMarker;if(marker){direct.gmap.removeOverlay(marker)}
direct.originMarker=marker=direct.createMarker(point,alikelist.directional.markerIndex);map.addOverlay(marker);if(centerOnPoint){map.setCenter(point,alikelist.directional.mapZoom);}
svOverlay=new GStreetviewOverlay();map.addOverlay(svOverlay);var panoClient=new GStreetviewClient();panoClient.getNearestPanoramaLatLng(point,function(newPoint){AL.Logger.info('newPoint = '+newPoint);if(!newPoint){panoramaOptions={latlng:point};AL.Logger.info('no pano found nearby...')}else{AL.Logger.info("point = "+point+", newPoint = "+newPoint);var lat2=point.lat();var lon2=point.lng();var lat1=newPoint.lat();var lon1=newPoint.lng();function toRad(val){var pi=Math.PI;var de_ra=(val*(pi/180));return de_ra;}
function toDeg(val){var pi=Math.PI;var ra_de=(val*(180/pi));return ra_de;}
var dLat=toRad(lat2-lat1);var dLon=toRad(lon2-lon1);var y=Math.sin(dLon)*Math.cos(lat2);var x=Math.cos(lat1)*Math.sin(lat2)-
Math.sin(lat1)*Math.cos(lat2)*Math.cos(dLon);var brng=toDeg(Math.atan2(y,x));myPOV={yaw:brng,pitch:0};panoramaOptions={latlng:newPoint,pov:myPOV};$('#pano_holder, #hide_pano, #show_pano').removeClass('hidden');}
myPano=new GStreetviewPanorama(document.getElementById("pano"),panoramaOptions);GEvent.addListener(myPano,"error",function(errorCode){$('#pano_holder, #hide_pano, #show_pano').addClass('hidden');});});GEvent.addListener(map,"click",function(overlay,latlng){$('#pano_holder, #hide_pano').removeClass('hidden');myPano.setLocationAndPOV(latlng);});init_show_hide_map(map,svOverlay);direct.markerIndex++;}};alikelist.directional.getDirections=function(){var direct=alikelist.directional;var gdir=direct.gdir;var query="from: "+direct.startLocation.address+" to: "+direct.endLocation.address;gdir.load(query,{locale:direct.locale,getPolyline:true});};alikelist.directional.createMarker=function(point,index){var baseIcon=new GIcon(G_DEFAULT_ICON);baseIcon.shadow="http://www.google.com/mapfiles/shadow50.png";baseIcon.iconSize=new GSize(20,34);baseIcon.shadowSize=new GSize(37,34);baseIcon.iconAnchor=new GPoint(9,34);baseIcon.infoWindowAnchor=new GPoint(9,2);var letter=String.fromCharCode("A".charCodeAt(0)+index);var letteredIcon=new GIcon(baseIcon);letteredIcon.image="http://www.google.com/mapfiles/marker"+letter+".png";markerOptions={icon:letteredIcon};var marker=new GMarker(point,markerOptions);return marker;};alikelist.directional.handleGDirectionsError=function(){var gdir=alikelist.directional.gdir;var msg="";if(gdir.getStatus().code==G_GEO_UNKNOWN_ADDRESS)
msg=("No corresponding location could be found for the specified address.\nError code: "+gdir.getStatus().code);else if(gdir.getStatus().code==G_GEO_SERVER_ERROR)
msg=("A geocoding or directions request could not be successfully processed.\n Error code: "+gdir.getStatus().code);else if(gdir.getStatus().code==G_GEO_MISSING_QUERY)
msg=("The HTTP q parameter was either missing or had no value.\n Error code: "+gdir.getStatus().code);else if(gdir.getStatus().code==G_GEO_BAD_KEY)
msg=("The given key is either invalid or does not match the domain for which it was given. \n Error code: "+gdir.getStatus().code);else if(gdir.getStatus().code==G_GEO_BAD_REQUEST)
msg=("A directions request could not be successfully parsed.\n Error code: "+gdir.getStatus().code);else msg=("An unknown error occurred.");$("#status").html(msg).fadeIn("slow");alikelist.directional.setMapState();};alikelist.directional.handleGDirectionsLoad=function(){var direct=alikelist.directional;$("#status:visible").hide();$("#loader:visible").hide();var poly=direct.gdir.getPolyline();if(poly){direct.getDirectionImage(poly,"start",".static-map.start");direct.getDirectionImage(poly,"end",".static-map.end");}
direct.setDirectionState();};alikelist.directional.setDirectionState=function(){$("div#map").hide();$("div#statics").fadeIn("slow");$("div#directions").fadeIn("slow");$("div#container").height(650);$("#directions").find("a").removeAttr("href").removeAttr("jscontent").removeAttr("jstcache");setTimeout(function(){var buffer=40;var h=Math.max($("div#statics").height(),$("div#directions").height());$("div#container").height(h+buffer);if(alikelist.directional.page_is_printVersion){setTimeout(function(){window.print();},500);}},500);};alikelist.directional.setMapState=function(){$("div#container").removeAttr("height");$("div#map").show();$("div#statics").hide();$("div#directions").hide();};alikelist.directional.getDirectionImage=function(poly,type,selector){var direct=alikelist.directional;var vertexCount=direct.vertexCount;var baseUrl=direct.staticMapUrl;var polyParams="rgba:"+direct.routeColor+",weight:"+direct.routeWeight+"|";var polyLatLngs=[];var start=0;var len=0;switch(type){case"start":start=0;len=Math.min(poly.getVertexCount(),vertexCount);break;case"end":start=Math.max(0,poly.getVertexCount()-vertexCount);len=poly.getVertexCount();break;default:start=0;len=poly.getVertexCount();break;}
for(var j=start;j<len;j++){polyLatLngs.push(poly.getVertex(j).lat().toFixed(5)+","+poly.getVertex(j).lng().toFixed(5));}
var markersArray=[];markersArray.push(poly.getVertex(0).toUrlValue(5)+",greena");markersArray.push(poly.getVertex(poly.getVertexCount()-1).toUrlValue(5)+",greenb");var center=(type=="start")?poly.getVertex(0).toUrlValue(5):poly.getVertex(poly.getVertexCount()-1).toUrlValue(5);var query=direct._buildQuery({markers:markersArray.join('|'),path:polyParams+polyLatLngs.join("|"),size:alikelist.directional.staticSize+"x"+alikelist.directional.staticSize,key:alikelist.directional.apiKey,zoom:alikelist.directional.staticZoom,center:center});var mapUrl=baseUrl+query;direct.addStaticMapImage(mapUrl,selector);};alikelist.directional.addStaticMapImage=function(url,selector){var img=$("<img>");img.attr("src",url);$(selector).html("");$(selector).append(img);}
alikelist.directional._buildQuery=function(params){var query="?%s";var pairs=[];$.each(params,function(name,value){pairs.push(name+"="+value);});return query.replace(/%s/,pairs.join("&"));};var _gel=function(id){return $(id).get(0);};
