var viaggioattuale=0;
var customIcons = [];
var markerarray=[];
var numerotappe=0;
//var arrayrighe=[];
var arraypoly=[];
//var c1=true;
//var c2=true;
//var c3=true;
var overlaypoly=[];
//var xml;
//var icone;
//var vedidata;


function mmicon() {
	this.gmicon=null;
	this.Nome=null;
	this.id=null;
	this.Tipo=null;
	this.Prezzo=null;
	this.NotaBreve=null;
	this.Contatti=null;
	this.DefaultText=null;
}


function creaicone(idviaggio)  {
//alert('entrato');
viaggioattuale=idviaggio;
GDownloadUrl("http://www.cronachediviaggio.it/includes/creaicone.php", function(data) {
  //vedidata=data;
  //alert(vedidata);
  xml = GXml.parse(data);
  icone = xml.documentElement.getElementsByTagName("icona");
  for (var i = 0; i < icone.length; i++) {
	var Deficon = new mmicon();
		Deficon.gmicon=new GIcon();
		Deficon.gmicon.image = icone[i].getAttribute("file");
   		Deficon.gmicon.iconSize = new GSize(35, 29);
   		//Deficon.gmicon.shadowSize = new GSize(22, 20);
   		Deficon.gmicon.iconAnchor = new GPoint(17, 29);
   		Deficon.gmicon.infoWindowAnchor = new GPoint(5, 1);
   		customIcons[icone[i].getAttribute("id")]=Deficon;
  }
  initialize();
});
}
/*
function informazioni() {
      if (c1) {
		c1=false;
        with (document) { if (getElementById) {
 		obj = getElementById('collapse1');
  		obj.style.display="none";
		obj = getElementById('collapse2');
  		obj.style.display="none";
		obj = getElementById('collapse3');
  		obj.style.display="none";
		obj = getElementById('collapse4');
  		obj.style.display="none";
		obj = getElementById('collapse5');
  		obj.style.display="none";
		obj = getElementById('collapse6');
  		obj.style.display="none";
		obj = getElementById('collapse7');
  		obj.style.display="none";
		obj = getElementById('triangolo1');
  		obj.src="http://www.cronachediviaggio.it/images/arrowright.png";
  	    }
		}
      }
	  else {
		c1=true;
        with (document) { if (getElementById) {
 		obj = getElementById('collapse1');
  		obj.style.display="block";
		obj = getElementById('collapse2');
  		obj.style.display="block";
		obj = getElementById('collapse3');
  		obj.style.display="block";
		obj = getElementById('collapse4');
  		obj.style.display="block";
		obj = getElementById('collapse5');
  		obj.style.display="block";
		obj = getElementById('collapse6');
  		obj.style.display="block";
		obj = getElementById('collapse7');
  		obj.style.display="block";
		obj = getElementById('triangolo1');
  		obj.src="http://www.cronachediviaggio.it/images/arrowdown.png";
		}
		}
      }
}

function mappa() {
      if (c2) {
		c2=false;
        with (document) { if (getElementById) {
 		obj = getElementById('collapse8');
  		obj.style.display="none";
		obj = getElementById('triangolo2');
  		obj.src="http://www.cronachediviaggio.it/images/arrowright.png";
  	    }
		}
      }
	  else {
		c2=true;
        with (document) { if (getElementById) {
 		obj = getElementById('collapse8');
  		obj.style.display="block";
		obj = getElementById('triangolo2');
  		obj.src="http://www.cronachediviaggio.it/images/arrowdown.png";
		}
		}
      }
}

function diario() {
      if (c3) {
		c3=false;
        with (document) { if (getElementById) {
 		obj = getElementById('collapse9');
  		obj.style.display="none";
		obj = getElementById('triangolo3');
  		obj.src="http://www.cronachediviaggio.it/images/arrowright.png";
  	    }
		}
      }
	  else {
		c3=true;
        with (document) { if (getElementById) {
 		obj = getElementById('collapse9');
  		obj.style.display="block";
		obj = getElementById('triangolo3');
  		obj.src="http://www.cronachediviaggio.it/images/arrowdown.png";
		}
		}
      }
}*/


function initialize() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_canvasfront"));
        map.setCenter(new GLatLng(0,0), 2);
		map.addControl(new GLargeMapControl());
		map.enableDoubleClickZoom()
		gdlu();
      }
}

function gdlu()  {
  var gb=new GLatLngBounds();
GDownloadUrl("http://www.cronachediviaggio.it/includes/pxmlfront.php?idviaggio="+viaggioattuale, function(data) {															  
  var xml = GXml.parse(data);
  var markers = xml.documentElement.getElementsByTagName("marker");
 
  for (var i = 0; i < markers.length; i++) {
	 var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                          		  parseFloat(markers[i].getAttribute("lng")));
	    gb.extend(point);
	 	markervar= createMarker(point,markers[i].getAttribute("type"));
		 markervar.id=markers[i].getAttribute("id");
		 //alert(markervar.id);
		 markervar.pos=markers[i].getAttribute("pos");
		 if (parseInt(markervar.pos)) {
			 numerotappe++; 
		 	 markervar.plt=markers[i].getAttribute("plt");
			 }
		 markervar.type=markers[i].getAttribute("type");
		 //markervar.text=markers[i].getAttribute("text");
		 markervar.invi=markers[i].getAttribute("invi");
		 markervar.bindInfoWindowHtml(markers[i].getAttribute("text"),{maxWidth:'550'});
		 markerarray[markervar.id]=markervar;
		 //alert(markerarray.length);
    if (!parseInt(markervar.invi)) map.addOverlay(markervar);
	//map.addOverlay(markervar);
  }
  //disegnapercorso();
  caricaarraypoly();
  map.setCenter(gb.getCenter(), map.getBoundsZoomLevel(gb));
});
}

function caricaarraypoly()  {
GDownloadUrl("http://www.cronachediviaggio.it//includes/pxmlpoly.php?idviaggio="+viaggioattuale, function(data) {
  var xml = GXml.parse(data);
  var polys = xml.documentElement.getElementsByTagName("poly");
  for (var i = 0; i < polys.length; i++) {
	 //var fpoint = new GLatLng(parseFloat(polys[i].getAttribute("flat")),
       //                   		  parseFloat(polys[i].getAttribute("flng")));
	 
	 var polyvar=[]; 
     polyvar.flat=polys[i].getAttribute("flat");
	 polyvar.flng=polys[i].getAttribute("flng");
	 polyvar.slat=polys[i].getAttribute("slat");
	 polyvar.slng=polys[i].getAttribute("slng");
	 polyvar.striscia=polys[i].getAttribute("vertex");
	 polyvar.type=10;
	 arraypoly.push(polyvar);
  }
  disegnapercorso();
  //nerizza();
});
}
/*
function nerizza() {
for (attuale in markerarray) {
	if (parseInt(markerarray[attuale].invi)){
		markerarray[attuale].hide();	
	}
}
}*/

function mns(val) {
if (val) {
	for (attuale in overlaypoly) {
		map.addOverlay(overlaypoly[attuale]);
	}
}
else {
	for (attuale in overlaypoly) {
		map.removeOverlay(overlaypoly[attuale]);
	}
}
}

function createMarker(point, type) {
  var marker = new GMarker(point,{icon:customIcons[type].gmicon});
  GEvent.addListener(marker, "infowindowopen", function() {
          //if(maract) {maract.closeInfoWindow(); }
		  maract=marker;
        });
  return marker;
}


function disegnapercorso() {
	var arrayverticidopo=[];
	if (numerotappe>1) {
		var coordinate=[];
		for (attuale in markerarray) {if (parseInt(markerarray[attuale].pos)){
			coordinate[markerarray[attuale].pos]=[];
			coordinate[markerarray[attuale].pos]['lat']=markerarray[attuale].getLatLng().lat();
			coordinate[markerarray[attuale].pos]['lng']=markerarray[attuale].getLatLng().lng();
			coordinate[markerarray[attuale].pos]['plt']=markerarray[attuale].plt;
			}
			}
		preclat=coordinate[1]['lat'];
		preclng=coordinate[1]['lng'];
		for (i=2;i<coordinate.length;i++) {
			if (parseInt(coordinate[i]['plt'])==0) {
				var polyline = new GPolyline([
          			new GLatLng(preclat, preclng),
          			new GLatLng(coordinate[i]['lat'],coordinate[i]['lng'])
        			], "#ff0000", 1, 1);
				map.addOverlay(polyline);
				overlaypoly.push(polyline);
				preclat=coordinate[i]['lat'];
				preclng=coordinate[i]['lng'];
				//var v=arrayrighe.push(polyline);
				}
			else if (parseInt(coordinate[i]['plt'])==1) {
				//var trovata=false;
				for (j=0;j<arraypoly.length;j++) {
					if ((arraypoly[j].flat==preclat && arraypoly[j].flng==preclng && arraypoly[j].slat==coordinate[i]['lat'] && arraypoly[j].slng==coordinate[i]['lng']) || (arraypoly[j].slat==preclat && arraypoly[j].slng==preclng && arraypoly[j].flat==coordinate[i]['lat'] && arraypoly[j].flng==coordinate[i]['lng'])) {
						//trovata=true;
							var elencovertex=arraypoly[j].striscia.substring(0,arraypoly[j].striscia.length-1);
							var arrayverticiprima=elencovertex.split(";");
							//var arrayverticidopo=[];
							for (k=0;k<arrayverticiprima.length;k++) {
								var singolovertexprima=arrayverticiprima[k].split(",");
								var singolovertexdopo=new GLatLng(singolovertexprima[0],singolovertexprima[1]);
								arrayverticidopo.push(singolovertexdopo);
							}
							if (i<coordinate.length-1) {
							if (parseInt(coordinate[i+1]['plt'])!=1) {
							polystrada = new GPolyline(arrayverticidopo, "#0000ff", 3, 0.45);
							map.addOverlay(polystrada);
							overlaypoly.push(polystrada);
							arrayverticidopo=[];
							//var v=arrayrighe.push(polystrada);
							//arraypoly[j].type=1;
							//arraypoly[j].pl=polystrada;
							}
							}
							else {
							polystrada = new GPolyline(arrayverticidopo, "#0000ff", 3, 0.45);
							map.addOverlay(polystrada);
							overlaypoly.push(polystrada);
							//arrayverticidopo=[];
							//var v=arrayrighe.push(polystrada);
							//arraypoly[j].type=1;
							//arraypoly[j].pl=polystrada;
							}
				    }
				}
				preclat=coordinate[i]['lat'];
				preclng=coordinate[i]['lng'];
			}
			else if (parseInt(coordinate[i]['plt'])==2) {
				//var trovata=false;
				for (j=0;j<arraypoly.length;j++) {
					if ((arraypoly[j].flat==preclat && arraypoly[j].flng==preclng && arraypoly[j].slat==coordinate[i]['lat'] && arraypoly[j].slng==coordinate[i]['lng']) || (arraypoly[j].slat==preclat && arraypoly[j].slng==preclng && arraypoly[j].flat==coordinate[i]['lat'] && arraypoly[j].flng==coordinate[i]['lng'])) {
						//trovata=true;
							var elencovertex=arraypoly[j].striscia.substring(0,arraypoly[j].striscia.length-1);
							var arrayverticiprima=elencovertex.split(";");
							//var arrayverticidopo=[];
							for (k=0;k<arrayverticiprima.length;k++) {
								var singolovertexprima=arrayverticiprima[k].split(",");
								var singolovertexdopo=new GLatLng(singolovertexprima[0],singolovertexprima[1]);
								arrayverticidopo.push(singolovertexdopo);
							}
							if (i<coordinate.length-1) {
							if (parseInt(coordinate[i+1]['plt'])!=2) {
							polystrada = new GPolyline(arrayverticidopo, "#ff0000", 3, 0.45);
							map.addOverlay(polystrada);
							overlaypoly.push(polystrada);
							arrayverticidopo=[];
							//var v=arrayrighe.push(polystrada);
							//arraypoly[j].type=2;
							//arraypoly[j].pl=polystrada;
							 }
							 }
							 else {
							polystrada = new GPolyline(arrayverticidopo, "#ff0000", 3, 0.45);
							map.addOverlay(polystrada);
							overlaypoly.push(polystrada);
							//arrayverticidopo=[];
							//var v=arrayrighe.push(polystrada);
							//arraypoly[j].type=2;
							//arraypoly[j].pl=polystrada;
							 }
				    }
				}
				preclat=coordinate[i]['lat'];
				preclng=coordinate[i]['lng'];
			}
			else  {
				preclat=coordinate[i]['lat'];
				preclng=coordinate[i]['lng'];
			}
	}
	}
arraypoly=[];
customIcons=[];
}

function handleErrors() {
	alert(this.getStatus().code);
	}
/*
function onGDirectionsLoad() {
	polystrada=this.getPolyline();
	map.addOverlay(polystrada);
	arrayrighe[i]=polystrada;
	}*/
	
function Avanti(att,tot) {
  brow=navigator.appName+navigator.appVersion;
  if (brow.indexOf('Safari')!=(-1)) {
  maract.openInfoWindowHtml(maract.text,{maxWidth:'550'});
  }
  prox=att+1;
  if (prox>tot) {prox=0;}
  icatt='ic'+att;
  icprox='ic'+prox;
  changeclass(icatt,'n');
  changeclass(icprox,'v');  
}

function Indietro(att,tot) {
  brow=navigator.appName+navigator.appVersion;
  if (brow.indexOf('Safari')!=(-1)) {
  maract.openInfoWindowHtml(maract.text,{maxWidth:'550'});
  } 
  prox=att-1;
  if (prox<0) {prox=tot;}
  icatt='ic'+att;
  icprox='ic'+prox;
  changeclass(icatt,'n');
  changeclass(icprox,'v');   
}

function changeclass(id,newclass) {
  var obj = null;
  with (document) { if (getElementById) {
  obj = getElementById(id);
  obj.className=newclass;
  }
  }
}




