google.load('search','1');google.load('maps','2');var gMap;var gLocalSearch;var gSelectedResults=[];var gCurrentResults=[];var gSearchForm;var combined=false;var gSmallIcon=null;var microtime='';function OnLoad(){gSmallIcon=new google.maps.Icon();gSmallIcon.iconSize=new google.maps.Size(12,20);gSmallIcon.shadowSize=new google.maps.Size(22,20);gSmallIcon.iconAnchor=new google.maps.Point(6,20);gSmallIcon.infoWindowAnchor=new google.maps.Point(5,1);gMap=new google.maps.Map2(document.getElementById("map"));gMap.addControl(new google.maps.SmallMapControl());gMap.addControl(new google.maps.MapTypeControl());gMap.setCenter(new google.maps.LatLng(55.1683,23.8773),3);if(document.getElementById('frmSearch')){gLocalSearch=new google.search.LocalSearch();gLocalSearch.setCenterPoint(gMap);gLocalSearch.setSearchCompleteCallback(null,OnLocalSearch);}$('form').submit(function(){var str=$('#search').val();gLocalSearch.execute(str);});};function OnLocalSearch(){if(!gLocalSearch.results||gLocalSearch.results==null||gLocalSearch.results==''){alert('No results found try to specify the query: <City>, <Country> \nExample #1: Madrid, Spain \nExample #2: Barmpton, Darlington, UK \nExample #3: Lisboa, pt');return false;}var first=gLocalSearch.results[0];gMap.panTo(new google.maps.LatLng(first.lat,first.lng));if(first.lat!=''){$('input[name=search]').val('');}dt[dt.length]=[first.lat,first.lng,first.title,first.country];dt[dt.length]=[0,0];var type='_NONE';each();marker=new GMarker(new google.maps.LatLng(first.lat,first.lng));gMap.addOverlay(marker);};function CaptureForm(searchForm){gLocalSearch.execute(searchForm.input.value);return false;};google.setOnLoadCallback(OnLoad,true);var dt=[];var ind=1;var directions;var directionsPanel;var bounds;var tmp=[];function each(){gMap.addControl(new GMapTypeControl());directions=new GDirections(gMap,document.getElementById("route"));GEvent.addListener(directions,"load",parseDistance);GEvent.addListener(directions,"error",function(err){combined=true;put_html();});for(ind=0;ind<dt.length;ind++){if(ind%2==0&&ind>1){lat1=dt[ind-2][0];lon1=dt[ind-2][1];lat2=dt[ind][0];lon2=dt[ind][1];dist=xMap.distance_direct(lat1,lon1,lat2,lon2);dt[ind-1][1]=dist;xMap.line_draw_simple(lat1,lon1,lat2,lon2);var req="from:start@"+lat1+","+lon1+" to:end@"+lat2+","+lon2;tmp[lat1+lon1+lat2+lon2]=ind-1;directions.load(req);if(ind==2){bounds=new GLatLngBounds(new GLatLng(lat1,lon1),new GLatLng(lat1,lon1));}bounds.extend(new GLatLng(lat2,lon2));xMap.zoomSmart(bounds);}}ind=1;put_html();};function parseDistance(resp){var dist='';try{dist=directions.getDistance().html;dist=dist.replace(/&nbsp;/,'');miles=dist.indexOf('mi');if(miles>0){dist=dist.replace(/mi/,'');dist=dist*1.609344;dist=dist.toFixed(1);}dist=dist.replace(/km/,'');}catch(e){combined=true;}var x=directions.getGeocode(0).Point.coordinates[1]+''+directions.getGeocode(0).Point.coordinates[0];x=x+''+directions.getGeocode(1).Point.coordinates[1]+''+directions.getGeocode(1).Point.coordinates[0];dist=dist.replace(/,/,'');dt[tmp[x]][0]=dist;if(dist==0){combined=true;}if(ind>1){if(ind%2==0){}}put_html();};function put_html(){var htm='';var html='';var sum_actual=0;var sum_direct=0;var sum_combined=0;var munit=$.cookie('munit');var convert=function(km){km=parseFloat(km);if(munit=='mi'){km=km*0.621371192;}return km.toFixed(1);};for(i=0;i<dt.length-1;i++){if(i%2==0){html='<li class="place">'+dt[i][2]+'</li>'+html;}else{sum_direct=sum_direct+parseFloat(convert(dt[i][1]));sum_actual=sum_actual+parseFloat(convert(dt[i][0]));if(parseFloat(dt[i][0])>0){sum_combined+=parseFloat(convert(dt[i][0]));}else{sum_combined+=parseFloat(convert(dt[i][1]));}html='<li class="distance"><span class="actual">'+convert(dt[i][0])+' '+munit+'.</span> / <span  class="direct">('+convert(dt[i][1])+' '+munit+'.)</span></li>'+html;}}htm='<ul class="total">';if(sum_actual!=''&&combined==false){htm+='<li class="actual"><span>'+sum_actual.toFixed(1)+' '+munit+'.</span> <sup>Total Actual distance</sup></li>';}if(combined==true&&sum_combined.toFixed(1)!=sum_direct.toFixed(1)){htm+='<li class="combined"><span>'+sum_combined.toFixed(1)+' '+munit+'.</span> <sup>Total Combined distance</sup></li>';}if(sum_direct!=''){htm+='<li class="direct"><span>'+sum_direct.toFixed(1)+' '+munit+'.</span> <sup>Total Direct distance</sup></li>';}htm+='</ul>';htm+='<div><input type="button" title="Clear Results" onclick="xMap.clear()" name="clear" value="Clear" /></div>';htm+='<ul class="places">'+html+"</ul>";if(dt.length>0){$('div#distancesBox').html(htm);}};xMap={distance_direct:function(lat1,lon1,lat2,lon2){var distance=0;polyPoints=[new GLatLng(lat1,lon1),new GLatLng(lat2,lon2)];polyShape=new GPolyline(polyPoints);var distance=polyShape.getLength()/1000;return distance.toFixed(1);},line_draw_simple:function(la1,lo1,la2,lo2){xMap.line_draw(la1,lo1,la2,lo2,"#fc0415",3);},line_draw:function(la1,lo1,la2,lo2,color,thikness){var polyline=new GPolyline([new GLatLng(la1,lo1),new GLatLng(la2,lo2)],color,thikness);gMap.addOverlay(polyline);},clear:function(){gMap.clearOverlays();dt=[];$('div#distancesBox').html('');$('input[name=search]').focus();microtime+=1;},pm:function(latitude,longitude,zoom,txt){gMap.setCenter(new GLatLng(latitude,longitude),zoom);gMap.openInfoWindow(gMap.getCenter(),txt);gMap.setMapType(G_HYBRID_MAP);},zoomSmart:function(bounds){var center=bounds.getCenter();var boundsFitZoom=gMap.getBoundsZoomLevel(bounds);gMap.setCenter(center,boundsFitZoom);}};function debug(o){var s=null;for(p in o)s+=p+' - '+o[p]+'\r\n';alert(s);};M={init:function(){$('a[rel=munit]').click(function(){var value=$(this).next('input[name=munit]').val();$.cookie('munit',value,{expire:1000,domain:'distancestool.com'});put_html();});M.init_cookie();M.set_radio();},init_cookie:function(){var val=$.cookie('munit');if(val==''||val==null){$.cookie('munit','km',{expire:1000,domain:'distancestool.com'});}},set_radio:function(){var value=$.cookie('munit');$('a.jqTransformRadio').each(function(){if($(this).next('input[name=munit]').val()==value){$(this).addClass('jqTransformChecked');}else{$(this).removeClass('jqTransformChecked');}});}};$(document).ready(function(){$("form").jqTransform();$('input[name=search]').focus();$('input[name=url]').click(function(){$(this).select();});M.init();});