// C.M. Attualmente non viene incluso, perchè serve per le form esterne.

function initForm(fname) {
	var frm = document.forms[fname];
	try {
	cleanList(frm.MACROREGIONE);
    } catch (e) {;}
   frm.MACROREGIONE.options[0] = new Option("===============", "");
   for (var i = 1; i <= lineePerDa.length; i++) {
     frm.MACROREGIONE.options[i] = new Option(lineePerDa[i-1].desc_area, lineePerDa[i-1].cod_area);
   }
}

//carica itinerari andata in una form esterna
function load_itiand(frm) {
	try {
	cleanList(frm.ITI_AND);
    } catch (e) {;}
	frm.ITI_AND.options[0] = new Option("===============", "");
	var index = frm.MACROREGIONE.selectedIndex;
	if(index == 0) return;
	var _area = frm.MACROREGIONE.options[index].value;
    for (var i = 0; i < tratte.length; ++i) {
      if(tratte[i].cod_area == _area) frm.ITI_AND.options.add(new Option(tratte[i].desc_lin, tratte[i].cod_lin));
    }
}

//carica itinerari ritorno in una form esterna
function load_itirit(frm) {
	if(! frm.ITI_RIT) return;
	try {
	cleanList(frm.ITI_RIT);
    } catch (e) {;}
	frm.ITI_RIT.options[0] = new Option("===============", "");
	var index = frm.ITI_AND.selectedIndex;
	if(index == 0) return;
	var _rit = tratte_rit[frm.ITI_AND.options[index].value].ritorni;
    for (var i = 0; i < _rit.length; ++i) {
      var rit = load_iti(frm, _rit[i]);
	  frm.ITI_RIT.options.add(new Option(rit.desc_lin, rit.cod_lin));
    }
}

//prende la tratta selezionata partendo dal codice
function load_iti(frm, clin) {
	// C.M. 25/02/2008
	var index = frm.MACROREGIONE.selectedIndex;
	var _area = frm.MACROREGIONE.options[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;
}

//carica tutti gli itinerari in una form esterna
function load_allitiand(frmName, macro) {
    var frm = document.forms[frmName];
	var string = "===============";
	if(frm.ITI_AND.options.length > 0) {
		string = frm.ITI_AND.options[0].innerHTML;
	}
	for (var i = 0; i < tratte.length; ++i) {
      if(tratte[i].cod_area == macro || macro=="") frm.ITI_AND.options.add(new Option(tratte[i].desc_lin, tratte[i].cod_lin));
    }
}


//validazione di una form esterna
function chkForm(frm, lng) 
{
   if(!lng) lng= "IT";
   //date
   if(!parseDate(frm.DATA_ANDATA)) {
	if(lng == "IT") {
        alert("Specificare la data di andata: gg-mm-aaaa");
        } else {
        alert("Please specify the departure date: dd-mm-yyyy");
        }
        frm.DATA_ANDATA.focus();
	return false;
   }
   
   var dataAnd = readDate(frm.DATA_ANDATA);
   if(frm.DATA_RITORNO.value != "" && !parseDate(frm.DATA_RITORNO)) {
		if(lng == "IT") {
                  alert("Verificare la data di ritorno: gg-mm-aaaa");
                } else {
                  alert("Please specify the return date: dd-mm-yyyy");
                }
                frm.DATA_RITORNO.focus();
		return false;
   }
   
   if(frm.DATA_RITORNO.value != "") {
	var dataRit = readDate(frm.DATA_RITORNO);
	if(dataRit < dataAnd) {
		if(lng == "IT") {
                alert("La data di ritorno non puo' essere minore della data di andata");
                } else {
                alert("The return date cannot preceed the departure date");
                }
                frm.DATA_RITORNO.focus();
		return false;
	}
   }
   //fine date
   //itinerari
   if(frm.ITI_AND.selectedIndex <= 0) {
		if(lng == "IT") {
                alert("Selezionare un itinerario di andata.");
                } else {
                alert("Please select at least one outbound route.");
                }
                frm.ITI_AND.focus();
		return false;
	}
   
   //itinerari ritorno
   if(frm.DATA_RITORNO.value != "" && frm.ITI_RIT && frm.ITI_RIT.selectedIndex <= 0) {
		if(lng == "IT") {
                alert("Selezionare un itinerario di ritorno.");
                } else {
                alert("Please select at least one return route.");
                }
                frm.ITI_RIT[0].focus();
		return false;
   } 
   return true;
}
