
var map;var mgr;var percorsi=[];var eventi=[];function posizione(lat,lng,paese,citta){this.latitudine=lat;this.longitudine=lng;this.paese=paese;this.citta=citta;this.marker='';}
function percorso(percorso_guid,latpartenza,lngpartenza,paesepartenza,cittapartenza,latarrivo,lngarrivo,paesearrivo,cittaarrivo,periodovalidita,tipomezzo_id,pendolare,contributospese){this.partenza=new posizione(latpartenza,lngpartenza,paesepartenza,cittapartenza);this.arrivo=new posizione(latarrivo,lngarrivo,paesearrivo,cittaarrivo);this.percorso_guid=percorso_guid;this.periodo_validita=periodovalidita
this.tipomezzo_id=tipomezzo_id
this.pendolare=pendolare
this.contributospese=contributospese
this.polyline='';this.gdir='';}
function evento(evento_guid,nome,latitudine,longitudine,paese,citta,periodovalidita){this.luogo=new posizione(latitudine,longitudine,paese,citta);this.evento_guid=evento_guid;this.nome=nome;this.periodo_validita=periodovalidita
this.polyline='';this.gdir='';}
function MostraMarker(indice){var icon=new GIcon();icon.iconAnchor=new GPoint(8,32);icon.infoWindowAnchor=new GPoint(20,0);icon.shadow="http://www.google.com/mapfiles/shadow50.png"
var WindowHtml;WindowHtml="<img src='/img/flags/"+percorsi[indice].partenza.paese+".gif'>&nbsp;<b>"+percorsi[indice].partenza.citta+"</b><br/>"
+"<img src='/img/flags/"+percorsi[indice].arrivo.paese+".gif'>&nbsp;<b>"+percorsi[indice].arrivo.citta+"</b>"
+"<div style='margin-top:10px;'>"
+"<img src='/img/mezzo/"+percorsi[indice].tipomezzo_id+".gif'>"
if(percorsi[indice].pendolare)
WindowHtml+="<img src='/img/pendolare.gif'>"
if(percorsi[indice].contributospese)
WindowHtml+="<img src='/img/spese.gif'>"
+"</div>"
+"<div style='margin-top:10px;'>"+percorsi[indice].periodo_validita+"</div>";if(percorsi[indice].partenza.latitudine!=null&&percorsi[indice].partenza.longitudine!=null)
{icon.image="http://www.google.com/mapfiles/icon_greenA.png";var markerpartenza=new GMarker(new GLatLng(percorsi[indice].partenza.latitudine,percorsi[indice].partenza.longitudine),icon);map.addOverlay(markerpartenza);percorsi[indice].partenza.marker=markerpartenza;GEvent.addListener(markerpartenza,"click",function(){markerpartenza.openInfoWindowHtml(WindowHtml,{maxWidth:250});});}
if(percorsi[indice].arrivo.latitudine!=null&&percorsi[indice].arrivo.longitudine!=null)
{icon.image="http://www.google.com/mapfiles/markerB.png";var markerarrivo=new GMarker(new GLatLng(percorsi[indice].arrivo.latitudine,percorsi[indice].arrivo.longitudine),icon);map.addOverlay(markerarrivo);percorsi[indice].arrivo.marker=markerarrivo;GEvent.addListener(markerarrivo,"click",function(){markerarrivo.openInfoWindowHtml(WindowHtml,{maxWidth:250});});}}
function MostraPolyline(indice){var arrlocation=new Array(2);arrlocation[0]=new GLatLng(percorsi[indice].partenza.latitudine,percorsi[indice].partenza.longitudine);arrlocation[1]=new GLatLng(percorsi[indice].arrivo.latitudine,percorsi[indice].arrivo.longitudine);var gdir;gdir=new GDirections();GEvent.addListener(gdir,"load",function(){MostraPolylineLoad(indice)});GEvent.addListener(gdir,"error",function(){var polyOptions={geodesic:true};var polyline=new GPolyline([arrlocation[0],arrlocation[1]],"#3467B6",6,1,polyOptions);map.addOverlay(polyline);percorsi[indice].polyline=polyline;$("#distanza").html('-');$("#durata").html('-');$("#nostrada").show();});percorsi[indice].gdir=gdir;gdir.loadFromWaypoints(arrlocation,{getPolyline:true,getSteps:true});}
function MostraPolylineLoad(indice){var gdir=percorsi[indice].gdir;var polyline=gdir.getPolyline();var polylinecolor='';var polylineweight=7;polylinecolor="#3467B6";polylineweight=6;var style=new Object();style.color=polylinecolor;style.opacity=0.9;style.weight=polylineweight;polyline.setStrokeStyle(style);map.addOverlay(polyline);percorsi[indice].polyline=polyline;$("#distanza").show();$("#distanza").html(gdir.getDistance().html);$("#durata").show();$("#durata").html(gdir.getDuration().html);}
function RimuoviPolyline(indice){if(percorsi[indice].polyline!=null)
map.removeOverlay(percorsi[indice].polyline);}
function GetBoundsPercorsi(array_percorsi){for(var i=0;i<array_percorsi.length;i++){if(i==0){if(array_percorsi[i].partenza.latitudine==null&&array_percorsi[i].partenza.longitudine==null){min_lat=array_percorsi[i].arrivo.latitudine;min_lng=array_percorsi[i].arrivo.longitudine;max_lat=array_percorsi[i].arrivo.latitudine;max_lng=array_percorsi[i].arrivo.longitudine;}
else{min_lat=array_percorsi[i].partenza.latitudine;min_lng=array_percorsi[i].partenza.longitudine;max_lat=array_percorsi[i].partenza.latitudine;max_lng=array_percorsi[i].partenza.longitudine;}}
SetMinLatLng(array_percorsi[i]);SetMaxLatLng(array_percorsi[i]);}
return new GLatLngBounds(new GLatLng(min_lat,min_lng),new GLatLng(max_lat,max_lng));}
function SetMinLatLng(percorso){if(percorso.partenza.latitudine!=null&&min_lat>percorso.partenza.latitudine)
min_lat=percorso.partenza.latitudine;if(percorso.arrivo.latitudine!=null&&min_lat>percorso.arrivo.latitudine)
min_lat=percorso.arrivo.latitudine;if(percorso.partenza.longitudine!=null&&min_lng>percorso.partenza.longitudine)
min_lng=percorso.partenza.longitudine;if(percorso.arrivo.longitudine!=null&&min_lng>percorso.arrivo.longitudine)
min_lng=percorso.arrivo.longitudine;}
function SetMaxLatLng(percorso){if(percorso.partenza.latitudine!=null&&max_lat<percorso.partenza.latitudine)
max_lat=percorso.partenza.latitudine;if(percorso.arrivo.latitudine!=null&&max_lat<percorso.arrivo.latitudine)
max_lat=percorso.arrivo.latitudine;if(percorso.partenza.longitudine!=null&&max_lng<percorso.partenza.longitudine)
max_lng=percorso.partenza.longitudine;if(percorso.arrivo.longitudine!=null&&max_lng<percorso.arrivo.longitudine)
max_lng=percorso.arrivo.longitudine;}
function wheelZoom(a){if(typeof newcenter=="undefined"){newcenter=map.getCenter();}
if(a.detail){if(a.detail<0){map.zoomIn(newcenter,true);}
else if(a.detail>0){map.zoomOut(newcenter,true);}}
else if(a.wheelDelta){if(a.wheelDelta>0){map.zoomIn(newcenter,true);}
else if(a.wheelDelta<0){map.zoomOut(newcenter,true);}}}
function wheelevent(e){if(!e)e=window.event;if(e.preventDefault)e.preventDefault();e.returnValue=false;}