function getAirEntryForm() {
	var f;
	
	if (navigator.userAgent.indexOf("MSIE") >= 0) {
		for (var i=0;i < document.forms.length;i++) {
			if (document.forms[i].name == "AIR_ENTRY_FORM") {
				f=document.forms[i];
			}
		}
	} 
	else {
		f=document.forms["AIR_ENTRY_FORM"];
	}

	return f;
} // getAirEntryForm

function getSearchUrl() {
    var f = getAirEntryForm();
    
    var origin = f.FlySearchUserControl_txtOrigin.value;
    var destiny = f.FlySearchUserControl_txtDestiny.value;
    
    if ((0 == origin.length) || (0 == destiny.length))
    {
        window.alert("Debe introducir una ciudad origen y destino.");
        f.FlySearchUserControl_txtOrigin.focus();
        return false;
    }
    
    var web = f.FlySearchUserControl_ddlCompany.value;    
    var numAdults = (f.FlySearchUserControl_ddlAdults.options.selectedIndex + 1);
    var numChilds = f.FlySearchUserControl_ddlChilds.options[f.FlySearchUserControl_ddlChilds.options.selectedIndex].value;
    var dayFrom = f.FlySearchUserControl_ddlDayFrom.options[f.FlySearchUserControl_ddlDayFrom.options.selectedIndex].value;
    var dayTo = f.FlySearchUserControl_ddlDayTo.options[f.FlySearchUserControl_ddlDayTo.options.selectedIndex].value;
    var monthFrom = f.FlySearchUserControl_ddlMonthFrom.options[f.FlySearchUserControl_ddlMonthFrom.options.selectedIndex].value
    var monthTo = f.FlySearchUserControl_ddlMonthTo.options[f.FlySearchUserControl_ddlMonthTo.options.selectedIndex].value;
    var yearFrom = f.FlySearchUserControl_ddlYearFrom.options[f.FlySearchUserControl_ddlYearFrom.options.selectedIndex].value;
    var yearTo = f.FlySearchUserControl_ddlYearTo.options[f.FlySearchUserControl_ddlYearTo.options.selectedIndex].value;
    var goOnly = (0 == f.FlySearchUserControl_rbtnList_0.selected ? "true" : "false");

    var url = "buscador.asp?" +
        "Web=" + web + "&DayFrom=" + dayFrom + "&DayTo=" + dayTo + "&MonthFrom=" + monthFrom + "&MonthTo=" + monthTo + "&YearFrom=" + yearFrom + "&YearTo=" + yearTo + "&" +
        "GoOnly=" + goOnly + "&Origin=" + origin + "&Destiny=" + destiny + "&numAdults=" + numAdults + "&numChilds=" + numChilds;
    
    window.open(url, '', "resizable=yes,scrollbars=yes,location=,toolbar=yes,directories=yes,menubar=yes,status=yes,width=" + window.screen.availWidth + ",height=" + window. screen.availHeight + ",left=0,top=0");
} // getSearchUrl

function addDate(date) {
    var year = date.getFullYear();
    var month = date.getMonth();
    var day = date.getDate();
    var dateReturn = new Date();
    
    day++;
    if(day > getDaysInMonth(month, year)) {
        day = 1;
        month++;
    }    
    
    if(month > 12) {
        month = 1;
        year++;
    }
    
    dateReturn.setFullYear(year);
    dateReturn.setMonth(month);
    dateReturn.setDate(day);
    
    return dateReturn;
} // addDate

function compareDate(dateTo, dateFrom) {
    var year = "";
    var month = "";
    var day = "";
    
    year = dateTo.getYear().toString();    
    month = dateTo.getMonth().toString();
    if(1 == month.length) month = "0" + month;
    day = dateTo.getDate().toString();    
    if(1 == day.length) day = "0" + day;
    var textTo = year + month + day;
    
    year = dateFrom.getYear().toString();  
    month = dateFrom.getMonth().toString();
    if(1 == month.length) month = "0" + month;
    day = dateFrom.getDate().toString();
    if(1 == day.length) day = "0" + day;
    var textFrom = year + month + day;
       
    if(textFrom == textTo)
        return 0;
    else if(textTo > textFrom)
        return 1;
    else
        return -1;
} // comparteDate

function initDate(initDays) {
	var myDate = new Date();
	var f = getAirEntryForm();
	
	var initDMonth = myDate.getMonth();
	var initRMonth = myDate.getMonth();
	var initDDay = myDate.getDate() + initDays;
	
	//Si pasamos del maximo de dias del mes actual
	if (initDDay > f.FlySearchUserControl_ddlDayFrom.options.length) {
		initDDay = initDDay - f.FlySearchUserControl_ddlDayFrom.options.length;
		initDMonth = initDMonth + 1;
		initRMonth = initRMonth + 1;
	}

	var initRDay = initDDay + 1;
	if (initRDay > f.FlySearchUserControl_ddlDayTo.options.length) {
		initRDay = initRDay - f.FlySearchUserControl_ddlDayTo.options.length;
		initRMonth = initRMonth + 1;
	}
	
	var year = myDate.getYear().toString().substring(2,4);
	f.dateeedep.value = initDDay + "/" + initDMonth + "/" + year;
	f.dateeeret.value = initRDay + "/" + initRMonth + "/" + year; 
} // initDate

function Check(){
	var f=document.forms['AIR_ENTRY_FORM'];
		var dYearMonthValue = f.td_D_Month.value;
		var dDayValue = f.td_D_Day.value;
		var dTimeIndex = f.td_D_Time.selectedIndex;

		var departureDate = new Date(dYearMonthValue.substring(0,4), parseInt(dYearMonthValue.substring(4,6),10)-1, dDayValue, dTimeIndex-1, 0, 0);
	var today=new Date();
	today.setTime(today.getTime()+(1000*60*60*24*3));
	today.setHours(7);
	alert(departureDate);
	alert(today);
	if(departureDate < today)
	{
		if(!confirm("Recuerda que sólo podrás hacer reservas con, al menos, 3 días de antelación al día de viaje"))
			return false;
	}
	return true;
} // Check

function isLeapYear (year) {
    var leapYear = false;
    if ((year % 400) == 0) {
        leapYear = true;
    } else if ((year % 100) == 0) {
        leapYear = false;
    } else if ((year % 4) == 0) {
        leapYear = true;
    } else {
        leapYear =false;
    }
    return leapYear;
} // isLeapYear

function popUp(URL) {
    day = new Date();
    id = day.getTime();
    eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=360,height=350,left = 100,top = 100');");
} // popUp

// from le goyen

function montre(id) {
    var d = document.getElementById(id);
	for (var i = 1; i<=10; i++) {
		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
	}
    if (d) {d.style.display='block';}
} // montre

function couleur(obj) {
     obj.style.backgroundColor = "#FFFFFF";
} // couleur

// Fin des scripts from Le goyen

function Day_todateee(typedate) {
	// Copie le numéro du jour dans la case dateeee	sur changement d'une liste jour 
	// Le paramètre typedate doit être 'D' ou 'R' pour depart et retour	
	var f = getAirEntryForm();	    
    var date = new Date();
    var dateCompare = new Date();
    var year = 0;
    var month = 0;
    var day = 0;

	if(typedate=='D')
	{	
	    // load DateTime values from lists
	    year = f.FlySearchUserControl_ddlYearFrom.value;	   	    
	    month = f.FlySearchUserControl_ddlMonthFrom.selectedIndex;	    	    
	    if(parseInt(f.FlySearchUserControl_ddlDayFrom.value) > parseInt(getDaysInMonth(f.FlySearchUserControl_ddlMonthFrom.value, year)))
		    f.FlySearchUserControl_ddlDayFrom.options[0].selected = true;
		day = f.FlySearchUserControl_ddlDayFrom.value;
			
		// sets DateFrom values        
		date.setFullYear(year);
		date.setMonth(month);
        date.setDate(day);
        
        // compare DateTo with DateTime.Now
		if (compareDate(date, dateCompare) < 0)
		{
		    year = dateCompare.getFullYear();
		    month = dateCompare.getMonth();
		    day = dateCompare.getDate();
		    		
		    // update DateFrom lists
		    f.FlySearchUserControl_ddlDayFrom.options[day - 1].selected = true;
		    f.FlySearchUserControl_ddlMonthFrom.options[month].selected = true;
		    f.FlySearchUserControl_ddlYearFrom.options[0].selected = true;
		    
		    // sets DateFrom values        
		    date.setFullYear(year);
		    date.setMonth(month);
            date.setDate(day);        
		}
		
		// format DateTime
		year = new String(year).substring(2,4);
		month++;
		if(month<10){month = "0" + month;}
		if(day<10){day = "0" + day;}
		
		f.dateeedep.value = day + "/" + month + "/" + year;
		
		// sets DateTo values	
	    dateCompare.setFullYear(f.FlySearchUserControl_ddlYearTo.value);
		dateCompare.setMonth(f.FlySearchUserControl_ddlMonthTo.selectedIndex);
        dateCompare.setDate(f.FlySearchUserControl_ddlDayTo.value);
        
		 // compare DateTo with DateFrom
		if (compareDate(date, dateCompare) > 0)
		{
		    // adds one day to DateFrom
		    year = date.getFullYear();
		    month = date.getMonth();
		    day = date.getDate();
		    		    
		    // update DateTo lists
		    f.FlySearchUserControl_ddlDayTo.options[day - 1].selected = true;
		    f.FlySearchUserControl_ddlMonthTo.options[month].selected = true;
		    f.FlySearchUserControl_ddlYearTo.options[0].selected = true;
		    
		    // format DateTime
		    year = new String(year).substring(2,4);
		    month++;
		    if(month<10){month = "0" + month;}
		    if(day<10){day = "0" + day;}
    		
		    f.dateeeret.value = day + "/" + month + "/" + year;
		}
	}
	else if(typedate=='R')
	{
	    // load DateTime values from lists
		year = f.FlySearchUserControl_ddlYearTo.value;	   	    
	    month = f.FlySearchUserControl_ddlMonthTo.selectedIndex;
	    if(parseInt(f.FlySearchUserControl_ddlDayTo.value) > parseInt(getDaysInMonth(f.FlySearchUserControl_ddlMonthTo.value, year)))
		    day = 1;
		else 
	    day = f.FlySearchUserControl_ddlDayTo.value;
	
	    // sets DateTo values
		date.setFullYear(year);
		date.setMonth(month);
        date.setDate(day);
		
		// sets DateFrom values	
	    dateCompare.setFullYear(f.FlySearchUserControl_ddlYearFrom.value);
		dateCompare.setMonth(f.FlySearchUserControl_ddlMonthFrom.selectedIndex);
        dateCompare.setDate(f.FlySearchUserControl_ddlDayFrom.value);
        
        // compare DateTo with DateFrom
		if (compareDate(date, dateCompare) < 0)
		{
		    // adds one day to DateFrom
		    year = dateCompare.getFullYear();
		    month = dateCompare.getMonth();
		    day = dateCompare.getDate();
		    		    
		    // update DateTo lists
		    f.FlySearchUserControl_ddlDayTo.options[day - 1].selected = true;
		    f.FlySearchUserControl_ddlMonthTo.options[month].selected = true;
		    f.FlySearchUserControl_ddlYearTo.options[0].selected = true;
		}
		
		// format DateTime
		year = new String(year).substring(2,4);
		month++;
		if(month<10){month = "0" + month;}
		if(day<10){day = "0" + day;}
		
		f.dateeeret.value = day + "/" + month + "/" + year;
	}	
} // Day_todateee

function update_lists(typedate) {
	// Function sert à mettre à jour les listes formant les dates a partir de 
	// la boite cachée dateee contenant la date issue du calendrier (boite centrale du sys de date)
	// Le paramètre typedate doit être 'D' ou 'R' pour depart et retour
	
	var f = getAirEntryForm();
	var now = new Date();
    var year = 0;
    
	if(typedate=='D')
	{
	    year = parseInt('20' + document.AIR_ENTRY_FORM.dateeedep.value.substring(6, 8));
	    
		f.FlySearchUserControl_ddlDayFrom.options[f.dateeedep.value.substring(0, 2) - 1].selected = true;
		f.FlySearchUserControl_ddlMonthFrom.options[f.dateeedep.value.substring(3, 5) - 1].selected = true;
		if(year > now.getFullYear())
		    f.FlySearchUserControl_ddlYearFrom.options[year - now.getFullYear()].selected = true;
		else
		    f.FlySearchUserControl_ddlYearFrom.options[0].selected = true;
	}
	
	if(typedate=='R')
	{
	    year = parseInt('20' + document.AIR_ENTRY_FORM.dateeeret.value.substring(6, 8));
	    
		f.FlySearchUserControl_ddlDayTo.options[f.dateeeret.value.substring(0, 2) - 1].selected = true;
		f.FlySearchUserControl_ddlMonthTo.options[f.dateeeret.value.substring(3, 5) - 1].selected = true;
		if(year > now.getFullYear())
		    f.FlySearchUserControl_ddlYearTo.options[year - now.getFullYear()].selected = true;
		else
		    f.FlySearchUserControl_ddlYearTo.options[0].selected = true;		
	}
	
	Day_todateee(typedate);
} // update_lists

function getDaysInMonth (month, year) {	
	var f = getAirEntryForm();
	
    // Si c'est un mois inférieur à 10, on enlève le 0 devant 
	if(month[0]=='0') {
		month = m.slice(1,2);
		month[0] = null;
	}
	monthdays = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	if (month != 2) {
		return monthdays[month];
	} 
	else {
		return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ? 29 : 28);
	}
} // getDaysInMonth