	if (!lang) var lang = "1";

	var txtNightsExceededArray = new Array(7);
	txtNightsExceededArray[1] = " Number of nights cannot exceed 99. \n Please adjust your dates.";
	txtNightsExceededArray[2] = " Le nombre de nuitées ne peut dépasser 99 nuits. \n Veuillez changer vos dates.";
	txtNightsExceededArray[3] = " Die Anzahl der Übernachtungen darf 99 nicht übersteigen. \n Bitte überprüfen Sie Ihre Angaben.";
	txtNightsExceededArray[4] = " El número de noches no puede ser superior a 99. \n Corrija sus datos.";
	txtNightsExceededArray[5] = " Il numero di notti non può essere superiore a 99. \n Controllare le date.";
	txtNightsExceededArray[6] = " Het aantal nachten mag 99 niet overschrijden. \n Pas a.u.b. uw gegevens aan.";
	txtNightsExceededArray[7] = " O número de noites não pode ultrapassar 99. \n Reveja as datas.";

	var txtInDatePriorOutDateArray = new Array(7);
	txtInDatePriorOutDateArray[1] = " Check-out date is prior to check-in date. \n Please adjust your dates.";
	txtInDatePriorOutDateArray[2] = " La date de départ est avant la date d'arrivée. \n Veuillez corriger vos dates.";
	txtInDatePriorOutDateArray[3] = " Das Abreisedatum liegt vor dem Anreisedatum. \n Bitte überprüfen Sie Ihre Angaben.";
	txtInDatePriorOutDateArray[4] = " La fecha de salida es anterior a la fecha de registro. \n Corrija sus datos.";
	txtInDatePriorOutDateArray[5] = " La data di partenza è precedente alla data di arrivo. \n Controllare le date.";
	txtInDatePriorOutDateArray[6] = " Datum van vertrek komt voor datum van aankomst. \n Pas a.u.b. uw gegevens aan.";
	txtInDatePriorOutDateArray[7] = " A data de saída é anterior à data de entrada. \n Reveja as datas.";

	var txtDatePassedArray = new Array(7);
	txtDatePassedArray[1] = " Check-in date has already passed. \n Please enter a future date.";
	txtDatePassedArray[2] = " La date d'arrivée a déjà été dépassée. \n Veuillez saisir une date future.";
	txtDatePassedArray[3] = " Das Anreisedatum ist bereits überschritten. \n Bitte geben Sie ein zukünftiges Datum ein.";
	txtDatePassedArray[4] = " La fecha de registro ya ha pasado. \n Introduzca una fecha futura.";
	txtDatePassedArray[5] = " La data di arrivo è già passata. \n Inserire una data non scaduta.";
	txtDatePassedArray[6] = " Datum van aankomst is reeds verstreken. \n Geef a.u.b. een datum in de toekomst aan.";
	txtDatePassedArray[7] = " A data de entrada já passou. \n Insira uma data futura.";

function checkDate(sSelectMonthIn, sSelectDayIn, sSelectMonthOut, sSelectDayOut){
    var errDates = false;
    var monthOutValue = sSelectMonthOut.options[sSelectMonthOut.selectedIndex].value;
    var monthInValue  = sSelectMonthIn.options[sSelectMonthIn.selectedIndex].value;
    var dayInValue    = sSelectDayIn.options[sSelectDayIn.selectedIndex].value;
    var dayOutValue   = sSelectDayOut.options[sSelectDayOut.selectedIndex].value;
    if (dayInValue == "" || dayOutValue ==""){
        errDates = true;
    }
    monthInValue  = parseInt(monthInValue);
    monthOutValue = parseInt(monthOutValue);
    dayInValue    = parseInt(dayInValue);
    dayOutValue   = parseInt(dayOutValue);
    if ((monthInValue > monthOutValue) || (monthInValue == monthOutValue && dayInValue >= dayOutValue)){
        errDates = true;
    }
    return errDates;
}

function computeNights(sSelectMonthIn, sSelectDayIn,sSelectMonthOut, sSelectDayOut){
    var sMonthOut = sSelectMonthOut.options[sSelectMonthOut.selectedIndex].value;
    var sMonthIn  = sSelectMonthIn.options[sSelectMonthIn.selectedIndex].value;
    var sDayIn    = sSelectDayIn.options[sSelectDayIn.selectedIndex].value;
    var sDayOut   = sSelectDayOut.options[sSelectDayOut.selectedIndex].value;
    var dDateIn   = retrieveDate(sMonthIn, sDayIn);
    var dDateOut  = retrieveDate(sMonthOut, sDayOut);
    var nMillsec  = dDateOut.getTime(dDateOut) - dDateIn.getTime(dDateIn);
    var nNights   = Math.ceil(nMillsec /1000/60/60/24);
	/*
    if (nNights >= '99')
	{
        alert(txtNightsExceededArray[lang]);
    }
	else 
	{
    	if (document.Fsearch.numofnights) {
        	document.Fsearch.numofnights.value = nNights;
    	}
		else
		{
        	document.Fsearch.NN.value = nNights;
        }
    }
	*/

}

function retrieveDate(selectMonthValue, selectDayValue){
    var sYear  = selectMonthValue.toString().substr(0,4);
    var sMonth = selectMonthValue.toString().substr(4,6);
    sMonth = (sMonth.substr(0,1) == "0"? sMonth.substr(1,1): sMonth);
    var dDay= new Date(sYear,sMonth - 1, selectDayValue, 12, 0, 0);
    return dDay;
}

function computeDays(sSelectMonth, sSelectDay){
    var nMonthValue = sSelectMonth.options[sSelectMonth.selectedIndex].value;
    var sYear = nMonthValue.toString().substr(0,4);
    var sMonth = nMonthValue.toString().substr(4,6);
    var nDays = 31;
    switch (sMonth){
        case "04":
        case "06":
        case "09":
        case "11":
            nDays = 30;
            sSelectDay.options[31].value = "";
            sSelectDay.options[31].text = "";
            if(sSelectDay.selectedIndex == 31) sSelectDay.selectedIndex = 1;
        break;
	    case "02":
            nDays = (sYear%4 == 0 ? 29: 28);
		for (var less = 31; less >= nDays+1; less --){
            sSelectDay.options[less].value = "";
            sSelectDay.options[less].text = "";
            if(sSelectDay.selectedIndex == less) sSelectDay.selectedIndex = 1;
		}
	    break;
    }
    for ( var count =1; count <nDays+1; count ++){
        sSelectDay.options[count].value = count;
        sSelectDay.options[count].text = count;
    }
}

/*
function displayNights(sSelectMonthIn, sSelectDayIn,sSelectMonthOut, sSelectDayOut ,sNoCheck)
{
    var errCheck = checkDate(sSelectMonthIn, sSelectDayIn,sSelectMonthOut, sSelectDayOut);
    if (errCheck == false)
	{
        computeNights(sSelectMonthIn, sSelectDayIn,sSelectMonthOut, sSelectDayOut);
	}
	else 
	{
	   	if (document.Fsearch.numofnights) {
        	document.Fsearch.numofnights.value = '';
    	} else {
			document.Fsearch.NN.value = '';
		}
//	    alert(txtInDatePriorOutDateArray[lang]);
	}
}
*/

function updateCheckOut(sSelectMonthIn, sSelectDayIn,sSelectMonthOut, sSelectDayOut)
{
	/*
   	if (document.Fsearch.numofnights) 
	{
       	var num = document.Fsearch.numofnights.value;
   	} 
	else 
	{
	    var num = document.Fsearch.NN.value;
	}
	*/
	var now = new Date();
//        if (num !="")
//		{
//            num = parseInt(num);
			num=1;
            var cin = sSelectMonthIn.options[sSelectMonthIn.selectedIndex].value;
            var din = sSelectDayIn.options[sSelectDayIn.selectedIndex].value;
            if (din == "")
			{
                sSelectDayIn.selectedIndex = 0;
            }
            var checkInDate = retrieveDate(cin, din);
	        var millsec = (num)*24*60*60*1000;
            var millsecIn = checkInDate.getTime();
           millsec = millsec + millsecIn;
            checkInDate.setTime(millsec);
            var day = checkInDate.getDate();
		    var month= checkInDate.getMonth();
		    var year = "";
            if ( (checkInDate.getMonth() == now.getMonth()) && (now.getFullYear() == checkInDate.getFullYear()) )
			{
                year = now.getFullYear();
            }
			else 
			{
                year = checkInDate.getFullYear();
            }

            month = (month< 9?"0":"").toString() + (month + 1).toString();
            var selectValue = year.toString() + month;
            for (var count = 0; count < sSelectMonthIn.length; count ++)
			{
		    	if (sSelectMonthOut.options[count].value == selectValue)
				{
					sSelectMonthOut.options[count].selected = true;
		        }
		    }

 		day = day - 1;
		sSelectDayOut.selectedIndex = day + 1;
        computeDays(sSelectMonthOut, document.Fsearch.OD);
//	}

}

function calcDays(){
        updateCheckOut(document.Fsearch.CMY, document.Fsearch.CD,document.Fsearch.OMY,document.Fsearch.OD);
//        displayNights(document.Fsearch.CMY, document.Fsearch.CD, document.Fsearch.OMY, document.Fsearch.OD);
}


function check4empty (sSelect)
{
        if (sSelect.selectedIndex == '0')
		{
                sSelect.selectedIndex = '1';
        }
}

function dateInThePast (monthYear, day){
	today = new Date();
	currDay = today.getDate();
    if((monthYear.selectedIndex == 1) && (day.options[day.selectedIndex].value < currDay)) alert(txtDatePassedArray[lang]);
}

function checkAll (sSelectMonthIn, sSelectDayIn,sSelectMonthOut, sSelectDayOut, iWhich)
{
//alert(sSelectMonthIn+" "+sSelectDayIn+" "+sSelectMonthOut+" "+sSelectDayOut+" "+iWhich)
	switch (iWhich) 
	{
        case 1:
        	if (sSelectDayIn.selectedIndex == '0')
			{
                	resetDate(sSelectMonthIn,sSelectDayIn,sSelectMonthOut,sSelectDayOut);
            }
			else 
			{
                	check4empty (sSelectMonthIn);check4empty (sSelectDayOut);check4empty (sSelectMonthOut);
                	updateCheckOut(sSelectMonthIn,sSelectDayIn,sSelectMonthOut,sSelectDayOut);
                	dateInThePast(sSelectMonthIn,sSelectDayIn);
        	}
        	break;
        case 2:
        	if (sSelectMonthIn.selectedIndex == '0'){
                	resetDate(sSelectMonthIn,sSelectDayIn,sSelectMonthOut,sSelectDayOut);
        	} else {
                	check4empty (sSelectDayIn);check4empty (sSelectDayOut);check4empty (sSelectMonthOut);
                	computeDays(sSelectMonthIn,sSelectDayIn);
                	updateCheckOut(sSelectMonthIn,sSelectDayIn,sSelectMonthOut,sSelectDayOut);
                	// dateInThePast(sSelectMonthIn,sSelectDayIn);
        	}
        	break;
        case 3:
        	if (sSelectDayOut.selectedIndex == '0')
			{

        		resetDate(sSelectMonthIn,sSelectDayIn,sSelectMonthOut,sSelectDayOut);
        	}
			else 
			{
//						alert(sSelectMonthIn.selectedIndex);
               		check4empty(sSelectMonthIn);check4empty (sSelectDayIn);check4empty (sSelectMonthOut);
//               		displayNights(sSelectMonthIn,sSelectDayIn,sSelectMonthOut,sSelectDayOut);
        	}
        	break;
        case 4:
        	if (sSelectMonthOut.selectedIndex == '0'){
        		resetDate(sSelectMonthIn,sSelectDayIn,sSelectMonthOut,sSelectDayOut);
        	} else {
                	check4empty (sSelectMonthIn);check4empty (sSelectDayOut);check4empty (sSelectDayIn);
                	computeDays(sSelectMonthOut,sSelectDayOut);
//                	displayNights(sSelectMonthIn,sSelectDayIn,sSelectMonthOut,sSelectDayOut);
        	}
        	break;
        }
}

function resetDate(sSelectMonthIn,sSelectDayIn,sSelectMonthOut,sSelectDayOut)
{
	sSelectDayIn.selectedIndex = '0';
	sSelectMonthIn.selectedIndex = '0';
	sSelectDayOut.selectedIndex = '0';
	sSelectMonthOut.selectedIndex = '0';
	/*
   	if (document.Fsearch.numofnights) 
	{
       	document.Fsearch.numofnights.value = 1;
   	} 
	else 
	{
		document.Fsearch.NN.value = 1;
	}
	*/
	computeDays(sSelectMonthIn, sSelectDayIn);
	computeDays(sSelectMonthOut, sSelectDayOut);
}
