
//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;
} 

function getDateFromCalendar(inputArray) {
	var references = calendarObjForForm.getHtmlElementReferences();
	references.myDate.value = inputArray.day + '-' + inputArray.month + '-' + inputArray.year;
	calendarObjForForm.hide();
	// C.M. 15/04/2008
    //getRitorni();	
}

function readDate(inputObject) {
	var val = inputObject.value.split("-");
	var obDate = new Date(val[2], val[1]-1, val[0]);
	return obDate;
}	

//fine funzioni calendario

//prende la tratta selezionata partendo dal codice
function getTratta(clin) {
	for(var k=0; k<tratte.length; ++k) {
        if(tratte[k].cod_lin == clin) return tratte[k];	
	}
	return undefined;
}

//inizializzazione di 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.options.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.options.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 = getTratta(_rit[i]);
	  frm.ITI_RIT.options.add(new Option(rit.desc_lin, rit.cod_lin));
    }
}


//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;
}




