//funzioni calendario
function pickDate(buttonObj,inputObject, inputObjectRif) {
    if(inputObject.disabled) return;
	myCalendarModel.invalidDateRange = new Array();
	var now = new Date();
	myCalendarModel.addInvalidDateRange(false,{year: now.getFullYear(), month: now.getMonth() + 1,day: now.getDate()-1});
	myCalendarModel.addInvalidDateRange({year: now.getFullYear()+1,month: now.getMonth() + 1, day: now.getDate()},false);
	calendarObjForForm.setCalendarPositionByHTMLElement(inputObject,0,inputObject.offsetHeight+2); 
	var parse = parseDate(inputObject);
	calendarObjForForm.setInitialDateFromInput(inputObject,'dd-mm-yyyy');
	if(inputObjectRif && !parse){
		parseDate(inputObjectRif);
		calendarObjForForm.setInitialDateFromInput(inputObjectRif,'dd-mm-yyyy');
	}
	if(inputObjectRif && parseDate(inputObjectRif)) {
		var sp = inputObjectRif.value.split("-");
		var dt = new Date(sp[2], sp[1]-1, sp[0]);
		myCalendarModel.invalidDateRange = new Array();
		myCalendarModel.addInvalidDateRange(false,{year: dt.getFullYear(), month: dt.getMonth() + 1,day: dt.getDate()-1});
		myCalendarModel.addInvalidDateRange({year: now.getFullYear()+1,month: now.getMonth() + 1, day: now.getDate()},false);
	}
	calendarObjForForm.addHtmlElementReference('myDate',inputObject);
	if(calendarObjForForm.isVisible()){
		calendarObjForForm.hide();
	} else {
		calendarObjForForm.resetViewDisplayedMonth();
		calendarObjForForm.display();
	} 
	return true;
} 
//fine funzioni calendario

//reset dei dati
function resetData(area, collegamento, data_and, data_rit) {
	try {
		//macroregione e collegamento
		var isRadio;
		var opt;
		if(document.forms['sceltaviaggio'].MACROREGIONE.options) {
			isRadio = false;
			opt	= document.forms['sceltaviaggio'].MACROREGIONE.options;
		} else {
			isRadio = true;
			opt	= document.forms['sceltaviaggio'].MACROREGIONE;
		}
		var slc = false;
		for (var k=0; !slc && k < opt.length; ++k) {
			if(opt[k].value == area) {
				if(isRadio) {
					document.forms['sceltaviaggio'].MACROREGIONE[k].checked = true;
				} else {
					document.forms['sceltaviaggio'].MACROREGIONE.selectedIndex = k;
				}
				load_percorso();
				slc = true;
			}
		}
		if(slc && "" != collegamento && document.forms['sceltaviaggio'].PERCORSO) 
		{
			opt = document.forms['sceltaviaggio'].PERCORSO.options;
			slc = false;
			for (var k=0; !slc && k < opt.length; ++k) {
				if(opt[k].value == collegamento) {
					document.forms['sceltaviaggio'].PERCORSO.selectedIndex = k;
					slc = true;
				}
			}
		}
		load_tratte();
		//data andata
		document.forms['sceltaviaggio'].DATA_ANDATA.value = data_and;
		//data ritorno
		document.forms['sceltaviaggio'].DATA_RITORNO.value = data_rit;
		getRitorni();
	} catch (e) 
	{
	;
	}
}

function setItiner(itiand) {
		var itic;
		var citi;
		for(var k=0; k < document.forms['sceltaviaggio'].ITI_AND.length; ++k){
			for(var h=0; h<itiand.length; ++h) {
				citi = document.forms['sceltaviaggio'].ITI_AND[k];
				if(citi.value == itiand[h]) {
					citi.checked = true;
					itic = citi;
				}
			}
		}
		if(itic) {
		   andClick(itic);
		} else {
			andClick(citi);
		}
  }
  
function strInvert(cod) {
	var ini = cod.substring(0, 4);
	var fin = cod.substring(4, 8);
	return fin+ini;
}


//quando viene selezionato/desezionato un itinerario di andata
function andClick(chk) {
	var ctr = getTratta(chk.value);
	if(chk.checked) {
	   //tolgo le altre direzioni di andata
	   for(var k=0; k < document.forms["sceltaviaggio"].ITI_AND.length;  ++k) {
			ttr = getTratta(document.forms["sceltaviaggio"].ITI_AND[k].value);
			//alert(k);
			//alert(ttr.cod_gruppo + " " + ttr.cod_lin);
			if(ttr.cod_gruppo != ctr.cod_gruppo) document.forms["sceltaviaggio"].ITI_AND[k].parentNode.parentNode.style.display="none";
		}
		land = document.getElementById("list_itiand");
		for(var k=0; k<land.childNodes.length; ++k) {
			if(land.childNodes[k].className=="gruppi" && land.childNodes[k+1].style.display=="none")land.childNodes[k].style.display='none';
		}
	} else {
	    var onec = false;
	    for(var k=0; !onec && k < document.forms["sceltaviaggio"].ITI_AND.length;  ++k) {
			if(document.forms["sceltaviaggio"].ITI_AND[k].checked) onec=true;
		}
		//metto le altre direzioni di ritorno
		if(!onec) {
			for(var k=0; k<land.childNodes.length; ++k) {
			land.childNodes[k].style.display='block';
			}
		}
		
	}
	//riempie i ritorni
	getRitorni();
}

//prende la tratta selezionata partendo dal codice
function getTratta(clin) {
	// C.M. 25/02/2008 - D.P 21/04/2008
	var index;
	var _area;
	if(document.sceltaviaggio.MACROREGIONE.options) {
		index = document.sceltaviaggio.MACROREGIONE.selectedIndex;
		if (index < 0) index=0;
		_area = document.sceltaviaggio.MACROREGIONE.options[index].value;
	} else {
		index = checkedRadio(document.sceltaviaggio.MACROREGIONE);
		_area = document.sceltaviaggio.MACROREGIONE[index].value;
	}
	for(var k=0; k<tratte.length; ++k) {
		// C.M. 25/02/2008 aggiunto controllo macroregione per caricare l'elemento giusto dell'array
        if(tratte[k].cod_lin == clin && tratte[k].cod_area == _area) return tratte[k];	
	}
	return undefined;
}

//prende il percorso selezionato partendo dal codice
function getPercorso(gruppo) {
	for(var k=0; k<percorsi.length; ++k) {
        if(percorsi[k].cod_gruppo == gruppo) return percorsi[k];	
	}
	return undefined;
}

function getRitorni() {
	try {
	var t_rit = new Array();
	var itirit = "";
	var trit;
	var prevd = "";
	for(var k=0; k<document.forms["sceltaviaggio"].ITI_AND.length; ++k) {   
		
		if(document.forms["sceltaviaggio"].ITI_AND[k].checked) {
			var v = document.forms["sceltaviaggio"].ITI_AND[k].value;
			for (var i = 0; i < tratte_rit[v].ritorni.length; ++i) {
				var found = false;
				for(var j = 0; !found && j < t_rit.length; ++j) {
					if(t_rit[j] == tratte_rit[v].ritorni[i]) {
						found = true;
					}
				}
				if(!found) {
					trit = getTratta(tratte_rit[v].ritorni[i]);
					t_rit.push(tratte_rit[v].ritorni[i]);
					itirit += "<li><label><input type='checkbox' name='ITI_RIT' class='itinerari' value='"+trit.cod_lin+"'>&nbsp;&nbsp;"+trit.desc_lin+"</label></li>";
					if(trit) {
						agruppo = trit.cod_gruppo;
						var per = getPercorso(agruppo);
						if(per && per.desc_percorso != prevd) {
							itirit = "<li class='gruppi'>" + per.desc_percorso + "</li>" + itirit;				
							prevd = per.desc_percorso;
						}
					}
				}
			}
		}
	}
	
	if(document.forms["sceltaviaggio"].DATA_RITORNO.disabled) {
		document.getElementById("list_itirit").innerHTML = "";
	} else {
		document.getElementById("list_itirit").innerHTML = itirit;
		for(var k=0; k<document.forms["sceltaviaggio"].ITI_AND.length; ++k) {   
			if(document.forms["sceltaviaggio"].ITI_AND[k].checked) {
				var vr = strInvert(document.forms["sceltaviaggio"].ITI_AND[k].value);
				var found = false;
				if(document.forms["sceltaviaggio"].ITI_RIT.length) {
					for(var h=0; !found && h < document.forms["sceltaviaggio"].ITI_RIT.length; ++h) {
						if(document.forms["sceltaviaggio"].ITI_RIT[h].value == vr) {
						    document.forms["sceltaviaggio"].ITI_RIT[h].checked=true;
							found = true;
						}
					}
				} else if(document.forms["sceltaviaggio"].ITI_RIT.value == vr) {
				    document.forms["sceltaviaggio"].ITI_RIT.checked=true;
				}
			}
		}
	}
	} catch (e) {;}
}

//abilita disabilita ritorno
function enableRit(chk) {
	chk.form.DATA_RITORNO.disabled = !chk.checked;
	getRitorni();
	if(chk.checked) {
		   //document.getElementById('ritTit').className = '';
		   document.getElementById('list_itirit').style.backgroundColor='#FFFFFF';
		   document.getElementById('ritorno').style.display="block";
	} else {
			//document.getElementById('ritTit').className = 'rTit';
			document.getElementById('list_itirit').style.backgroundColor='#E0DFE3';
		   document.getElementById('ritorno').style.display="none";
	}
	try {
		for(var k=0; k < chk.form.ITI_RIT.length; ++k)chk.form.ITI_RIT[k].disabled=!chk.checked; 
	} catch (e) {;}
}
