
var map;var mgr;var artigiani=[];var tappe=[];var luoghi=[];var indexsw;function posizione(lat,lng,tiposede,indirizzo){this.latitudine=lat;this.longitudine=lng;this.tiposede=tiposede;this.indirizzo=indirizzo;this.marker='';}
function streetview(yaw,pitch,zoom){this.yaw=yaw;this.pitch=pitch;this.zoom=zoom;}
function artigiano(artigiano_id,nome,filenameico,latitudine,longitudine,yaw,pitch,zoom,tiposede,indirizzo,telefono,urldettaglio){this.posizione=new posizione(latitudine,longitudine,tiposede,indirizzo);this.streetview=new streetview(yaw,pitch,zoom);this.artigiano_id=artigiano_id;this.nome=nome;this.filenameico=filenameico;this.telefono=telefono
this.urldettaglio=urldettaglio;this.polyline='';}
function luogo(luogo_id,nome,filenameico,latitudine,longitudine,yaw,pitch,zoom,tipoluogo,indirizzo,urldettaglio){this.posizione=new posizione(latitudine,longitudine,tipoluogo,indirizzo);this.streetview=new streetview(yaw,pitch,zoom);this.posizione_id=luogo_id;this.nome=nome;this.filenameico=filenameico;this.telefono=''
this.urldettaglio=urldettaglio;this.polyline='';}
function tappa(tappa_id,nome,filenameico,latitudine,longitudine,yaw,pitch,zoom,tiposede,indirizzo,urldettaglio){this.posizione=new posizione(latitudine,longitudine,tiposede,indirizzo);this.streetview=new streetview(yaw,pitch,zoom);this.tappa_id=tappa_id;this.nome=nome;this.filenameico=filenameico;this.urldettaglio=urldettaglio;this.polyline='';}
function MostraMarkerArtigiano(indice){var icon=new GIcon();icon.shadowSize=new GSize(22,20);icon.iconAnchor=new GPoint(6,15);icon.infoWindowAnchor=new GPoint(5,1);icon.shadow="http://labs.google.com/ridefinder/images/mm_20_shadow.png"
var WindowHtml;WindowHtml="<img src='"+artigiani[indice].filenameico+"' class='img-window-marker' />"
+"<div class='window-marker'>"
+"  <div class='title-window-marker'>"+artigiani[indice].nome+"</div>"
+"  <div style='margin-top:4px;'><b>"+artigiani[indice].posizione.tiposede+"</b>&nbsp;"+artigiani[indice].posizione.indirizzo+"</div>"
+"  <div style='margin:0px;'><b>"+lexicon_telefono+"</b>&nbsp;"+artigiani[indice].telefono+"</div>"
if(artigiani[indice].urldettaglio!=""){WindowHtml+="  <div style='margin:0px;'><a href='"+artigiani[indice].urldettaglio+"'>"+lexicon_vai_alla_scheda+"</a></div>"}
+"</div><div class='clear'></div>";if(artigiani[indice].posizione.latitudine!=null&&artigiani[indice].posizione.longitudine!=null)
{icon.image="http://labs.google.com/ridefinder/images/mm_20_purple.png";var LatLng=new GLatLng(artigiani[indice].posizione.latitudine,artigiani[indice].posizione.longitudine)
var marker=new GMarker(LatLng,icon);map.addOverlay(marker);artigiani[indice].posizione.marker=marker;var streetView=true
panoClient=new GStreetviewClient();panoClient.getNearestPanoramaLatLng(LatLng,function(newLatLng){if(newLatLng==null){streetView=false
return;}});GEvent.addListener(marker,"click",function(){if(streetView)
{var regular=WindowHtml+'<div style="margin:2px 0;width:100%;text-align:left"><a href="javascript:void(0)" onclick="javascript:SetIndiceStreetWiew('+indice+');map.getInfoWindow().maximize()">'+lexicon_street_view+'</a></div>'
var summary='<div style="text-align:right;margin-right:10px;"><a href="javascript:void(0)" onclick="javascript:map.getInfoWindow().restore()">'+lexicon_chiudi_street_view+'</a></div>';var panoDiv=document.createElement('div');panoDiv.style.width="400px";panoDiv.style.width="200px";var tabs=[new MaxContentTab('streetviewartigiano',panoDiv)];map.openMaxContentTabsHtml(LatLng,regular,summary,tabs,{maxTitle:"<div class='title-window-streetview'>"+lexicon_street_view+" - <b>"+artigiani[indice].nome+"</b></div>",selectedTab:'streetviewartigiano',maxWidth:400,style:{tabOff:{backgroundColor:'#bbb'}},maximized:false});}
else
marker.openInfoWindowHtml(WindowHtml,{maxWidth:400});});GEvent.addListener(map.getInfoWindow(),'closeclick',function(){CentraMappa(artigiani);});GEvent.addListener(map.getTabbedMaxContent(),'selecttab',function(tab){var node=tab.getContentNode();var latlng=map.getInfoWindow().getPoint();switch(tab.getLabel()){case'streetviewartigiano':if(!node.pano){var pano=new GStreetviewPanorama(node);GEvent.addListener(pano,'error',function(errorCode){if(errorCode==603){node.innerHTML='StreetView requires flash plugin. Click <a href="http://get.adobe.com/flashplayer/" target="_blank"> here</a> to download';}
if(errorCode==600){node.innerHTML=lexicon_street_view_non_dispo;}});pano.setLocationAndPOV(latlng,{yaw:artigiani[indexsw].streetview.yaw,pitch:artigiani[indexsw].streetview.pitch,zoom:artigiani[indexsw].streetview.zoom});node.pano=pano;}
break;}});}}
function OpenInfoWindowArtigiano(indice){GEvent.trigger(artigiani[indice].posizione.marker,"click");}
function MostraMarkerLuogo(indice){var icon=new GIcon();icon.shadowSize=new GSize(22,20);icon.iconAnchor=new GPoint(6,15);icon.infoWindowAnchor=new GPoint(5,1);icon.image="http://labs.google.com/ridefinder/images/mm_20_yellow.png";icon.shadow="http://labs.google.com/ridefinder/images/mm_20_shadow.png"
var WindowHtml;WindowHtml="<img src='"+luoghi[indice].filenameico+"' class='img-window-marker'>"
+"<div class='window-marker'>"
+"  <div class='title-window-marker'>"+luoghi[indice].nome+"</div>"
+"  <div style='margin-top:4px;'><b>"+luoghi[indice].posizione.tiposede+"</b></div>"
+"  <div>"+luoghi[indice].posizione.indirizzo+"</div>"
if(luoghi[indice].urldettaglio!=""){WindowHtml+="  <div style='margin-top:4px;'><a href='"+luoghi[indice].urldettaglio+"'>"+lexicon_vai_alla_scheda+"</a></div>"}
+"</div><div class='clear'></div>";if(luoghi[indice].posizione.latitudine!=null&&luoghi[indice].posizione.longitudine!=null)
{var LatLng=new GLatLng(luoghi[indice].posizione.latitudine,luoghi[indice].posizione.longitudine)
var marker=new GMarker(LatLng,icon);map.addOverlay(marker);luoghi[indice].posizione.marker=marker;var streetView=true
panoClient=new GStreetviewClient();panoClient.getNearestPanoramaLatLng(LatLng,function(newLatLng){if(newLatLng==null){streetView=false
return;}});GEvent.addListener(marker,"click",function(){if(streetView)
{var regular=WindowHtml+'<div style="margin:2px 0;width:100%;text-align:left"><a href="javascript:void(0)" onclick="javascript:SetIndiceStreetWiew('+indice+');map.getInfoWindow().maximize()">'+lexicon_street_view+'</a></div>'
var summary='<div style="text-align:right;margin-right:10px;"><a href="javascript:void(0)" onclick="javascript:map.getInfoWindow().restore()">'+lexicon_chiudi_street_view+'</a></div>';var panoDiv=document.createElement('div');panoDiv.style.width="400px";panoDiv.style.width="200px";var tabs=[new MaxContentTab('streetwiewluogo',panoDiv)];map.openMaxContentTabsHtml(LatLng,regular,summary,tabs,{maxTitle:"<div class='title-window-streetview'>"+lexicon_street_view+" - <b>"+luoghi[indice].nome+"</b></div>",selectedTab:'streetwiewluogo',maxWidth:400,style:{tabOff:{backgroundColor:'#bbb'}},maximized:false});}
else
marker.openInfoWindowHtml(WindowHtml,{maxWidth:400});GEvent.addListener(map.getInfoWindow(),'closeclick',function(){CentraMappa(luoghi);});});GEvent.addListener(map.getTabbedMaxContent(),'selecttab',function(tab){var node=tab.getContentNode();var latlng=map.getInfoWindow().getPoint();switch(tab.getLabel()){case'streetwiewluogo':if(!node.pano){var pano=new GStreetviewPanorama(node);GEvent.addListener(pano,'error',function(errorCode){if(errorCode==603){node.innerHTML='StreetView requires flash plugin. Click <a href="http://get.adobe.com/flashplayer/" target="_blank"> here</a> to download';}
if(errorCode==600){node.innerHTML=lexicon_street_view_non_dispo;}});pano.setLocationAndPOV(latlng,{yaw:luoghi[indexsw].streetview.yaw,pitch:luoghi[indexsw].streetview.pitch,zoom:luoghi[indexsw].streetview.zoom});node.pano=pano;}
break;}});}}
function OpenInfoWindowLuogo(indice){GEvent.trigger(luoghi[indice].posizione.marker,"click");}
function MostraMarkerTappa(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='"+tappe[indice].filenameico+"' class='img-window-marker'>"
+"<div class='window-marker'>"
+"  <div class='title-window-marker'>"+tappe[indice].nome+"</div>"
+"  <div style='margin-top:4px;'><b>"+tappe[indice].posizione.tiposede+"</b>&nbsp;"+tappe[indice].posizione.indirizzo+"</div>"
if(tappe[indice].urldettaglio!=""){WindowHtml+="  <div style='margin:0px;'><a href='"+tappe[indice].urldettaglio+"'>"+lexicon_vai_alla_scheda+"</a></div>"}
+"</div><div class='clear'></div>";if(tappe[indice].posizione.latitudine!=null&&tappe[indice].posizione.longitudine!=null)
{arrLetter=new Array("A","B","C","D","E","F","G","H","I","L","M")
icon.image="http://www.google.com/mapfiles/icon_green"+arrLetter[indice]+".png";var LatLng=new GLatLng(tappe[indice].posizione.latitudine,tappe[indice].posizione.longitudine)
var marker=new GMarker(LatLng,icon);map.addOverlay(marker);tappe[indice].posizione.marker=marker;var streetView=true
panoClient=new GStreetviewClient();panoClient.getNearestPanoramaLatLng(LatLng,function(newLatLng){if(newLatLng==null){streetView=false
return;}});GEvent.addListener(marker,"click",function(){if(streetView)
{var regular=WindowHtml+'<div style="margin:2px 0;width:100%;text-align:left"><a href="javascript:void(0)" onclick="javascript:SetIndiceStreetWiew('+indice+');map.getInfoWindow().maximize()">'+lexicon_street_view+'</a></div>'
var summary='<div style="text-align:right;margin-right:10px;"><a href="javascript:void(0)" onclick="javascript:map.getInfoWindow().restore()">'+lexicon_chiudi_street_view+'</a></div>';var panoDiv=document.createElement('div');panoDiv.style.width="400px";panoDiv.style.width="200px";var tabs=[new MaxContentTab('streetviewtappa',panoDiv)];map.openMaxContentTabsHtml(LatLng,regular,summary,tabs,{maxTitle:"<div class='title-window-streetview'>"+lexicon_street_view+" - <b>"+tappe[indice].nome+"</b></div>",selectedTab:'streetviewtappa',maxWidth:400,style:{tabOff:{backgroundColor:'#bbb'}},maximized:false});}
else
marker.openInfoWindowHtml(WindowHtml,{maxWidth:400});GEvent.addListener(map.getInfoWindow(),'closeclick',function(){CentraMappa(tappe);});});GEvent.addListener(map.getTabbedMaxContent(),'selecttab',function(tab){var node=tab.getContentNode();var latlng=map.getInfoWindow().getPoint();switch(tab.getLabel()){case'streetviewtappa':if(!node.pano){var pano=new GStreetviewPanorama(node);GEvent.addListener(pano,'error',function(errorCode){if(errorCode==603){node.innerHTML='StreetView requires flash plugin. Click <a href="http://get.adobe.com/flashplayer/" target="_blank"> here</a> to download';}
if(errorCode==600){node.innerHTML=lexicon_street_view_non_dispo;}});pano.setLocationAndPOV(latlng,{yaw:tappe[indexsw].streetview.yaw,pitch:tappe[indexsw].streetview.pitch,zoom:tappe[indexsw].streetview.zoom});node.pano=pano;}
break;}});}}
function MostraPolylinePercorso(polyPointsDB){if(polyPointsDB!=null||polyPointsDB!=''){var polyPoints=new Array();var lines=polyPointsDB.split(";");for(var i=0;i<lines.length-1;i++){var lineArray=lines[i].split(",");var lat=lineArray[0]*1;var lng=lineArray[1]*1;var point=new GLatLng(lat,lng);if(!isNaN(lat+lng)){polyPoints.push(point);}}
var polyLine=new GPolyline(polyPoints,"#FF00FF",6,.7);map.addOverlay(polyLine);}}
function SetIndiceStreetWiew(i)
{indexsw=i;}
function GetBoundsObject(array){for(var i=0;i<array.length;i++){if(i==0){min_lat=array[i].posizione.latitudine;min_lng=array[i].posizione.longitudine;max_lat=array[i].posizione.latitudine;max_lng=array[i].posizione.longitudine;}
SetMinLatLng(array[i]);SetMaxLatLng(array[i]);}
return new GLatLngBounds(new GLatLng(min_lat-0.001,min_lng-0.001),new GLatLng(max_lat+0.001,max_lng+0.001));}
function SetMinLatLng(obj){if(obj.posizione.latitudine!=null&&min_lat>obj.posizione.latitudine)
min_lat=obj.posizione.latitudine;if(obj.posizione.longitudine!=null&&min_lng>obj.posizione.longitudine)
min_lng=obj.posizione.longitudine;}
function SetMaxLatLng(obj){if(obj.posizione.latitudine!=null&&max_lat<obj.posizione.latitudine)
max_lat=obj.posizione.latitudine;if(obj.posizione.longitudine!=null&&max_lng<obj.posizione.longitudine)
max_lng=obj.posizione.longitudine;}
function CentraMappa(arrayObj){var dacentrare=[];for(var i=0;i<arrayObj.length;i++){dacentrare.push(arrayObj[i]);}
var bounds=GetBoundsObject(dacentrare);map.setCenter(bounds.getCenter());}
