﻿// JScript File
function openAvailability() 
{
    var now = new Date();

    var strD = now.getDate();
    var strDD = (strD < 10) ? '0' + strD : strD;
    var strM = now.getMonth() + 1;
    var strMM = (strM < 10) ? '0' + strM : strM;
    var strYear = now.getYear();

     var strDate = strDD + "-" + strMM + "-" + strYear;

    var msg = new String('');
    var lang = "";
    lang = document.getElementById("hidLang").value;

    var hotel = document.getElementById("ctl00_ddlHotels").selectedIndex;
    
    var rooms = 1; // document.getElementById("ctl00_ddlRooms").value;
    var grownups = 0; // document.getElementById("ctl00_ddlAdults").value;
    var children = 0;
    var checkin = document.getElementById("ctl00_tbCheckIn").value;
    var checkout = document.getElementById("ctl00_tbCheckOut").value;

//    alert("Hotel: " + hotel + ", Rooms: " + rooms + ", Grownups: " + grownups + ", Checkin: " + checkin + ", Checkout: " + checkout);

    if (hotel == '' || hotel == 0) {
        if (lang == 'PT') {
            msg = msg + 'O Hotel tem de estar preenchida.' + '\n'
        }
        else if (lang == 'EN') {
            msg = msg + 'The Hotel should be filled.' + '\n'
        }
        else if (lang == 'SP') {
            msg = msg + 'El hotel debe subsanarse.' + '\n'
        }
    }

    var maxPersonInRoom = 3;
    var auxRoomPessoa = 0;
    auxRoomPessoa = (parseFloat(grownups) + parseFloat(children)) / rooms;

    if ( auxRoomPessoa > maxPersonInRoom ) 
    {
	    if ( lang == 'PT' ) {
		    msg = msg + 'Cada quarto apenas permite uma ocupação máxima de 3 pessoas. \n';
        }		    
        else if ( lang == 'EN' ) {
		    msg = msg + 'Each room only allows a maximum occupancy of 3 persons. \n';
        }		    
        else if ( lang == 'SP' ) {
		    msg = msg + 'Todas las habitaciones sólo permite una ocupación máxima de 3 personas. \n';
        }		          
    }

    if ( checkin == "" ) {
        if (lang == 'PT') {
            msg = msg + 'A data de Check-in tem de estar preenchida.' + '\n'
        }
        else if (lang == 'EN') {
            msg = msg + 'The Check-in date should be filled.' + '\n'
        }
        else if (lang == 'SP') {
            msg = msg + 'La fecha de Check-in tien que ser digitada.' + '\n'
        }		    
    }

	if ( checkout == "" ) {
        if (lang == 'PT') {
            msg = msg + 'A data de Check-out tem de estar preenchida.' + '\n'
        }
        else if (lang == 'EN') {
            msg = msg + 'The Check-out date should be filled.' + '\n'
        }
        else if (lang == 'SP') {
            msg = msg + 'la fecha de Check-out tien que ser digitada.' + '\n'
        }		    
    }

    if ( checkin != "" ) {
        if (setReservationDates(checkin) == false) {
            if (lang == 'PT') {
                msg = msg + 'A data de Check-in é inferior da data hoje.' + '\n'
            }
            else if (lang == 'EN') {
                msg = msg + 'The Check-in date is earlier than today.' + '\n'
            }
            else if (lang == 'SP') {
                msg = msg + 'La fecha de Check-in es mas baja que a fecha de hoy.' + '\n'
            }
        }
        else if (Date.parse(checkin) == Date.parse(checkout)) {
            if (lang == 'PT') {
                msg = msg + 'A data de Check-out tem de ser superior à data de Check-in.' + '\n'
            }
            else if (lang == 'EN') {
                msg = msg + 'The Check-out date must be higher than the Check-in date.' + '\n'
            }
            else if (lang == 'SP') {
                msg = msg + 'La fecha de Check-out tien que ser major que la fecha de Check-in.' + '\n'
            }
        }
    }

    if ( checkout != "" ) {
        if (setReservationDates(checkout) == false) {
            if (lang == 'PT') {
                msg = msg + 'A data de Check-out é inferior da data hoje.' + '\n'
            }
            else if (lang == 'EN') {
                msg = msg + 'The Check-out date is earlier than today.' + '\n'
            }
            else if (lang == 'SP') {
                msg = msg + 'La fecha de Check-out es mas baja que a fecha de hoy.' + '\n'
            }
        }
        else if (Date.parse(checkout) <= Date.parse(checkin)) {
                if (lang == 'PT') {
                    msg = msg + 'A data de Check-out tem de ser maior que a data de Check-in.' + '\n'
                }
                else if (lang == 'EN') {
                    msg = msg + 'The Check-out date should be higher than the Check-in date.' + '\n'
                }
                else if (lang == 'SP') {
                    msg = msg + 'La fecha de Check-out tien que ser major que la fecha de Check-in.' + '\n'
                }
            }

    }

    if (msg != '') {
        if (lang == 'PT') {
            alert('Por favor verificar:\n\n' + msg);
        }
        else if (lang == 'EN') {
            alert('Please check:\n\n' + msg);
        }
        else if (lang == 'SP') {
            alert('Por favor verifique:\n\n' + msg);
        }		    

        /*
        if (document.getElementById("ctl00_tbCheckOut").value.length == 0) {
            document.getElementById("ctl00_tbCheckOut").value = "MM/DD/YYYY";
        }
        if (document.getElementById("ctl00_tbCheckIn").value.length == 0) {
            document.getElementById("ctl00_tbCheckIn").value = "MM/DD/YYYY";
        }
        */
        return;
    }
    else {
        DeleteCookie("hotel");
        DeleteCookie("rooms");
        DeleteCookie("grownups");
        DeleteCookie("checkin");
        DeleteCookie("checkout");

        document.cookie = "hotel=" + hotel;
        document.cookie = "rooms=" + rooms;
        document.cookie = "grownups=" + grownups;
        document.cookie = "checkin=" + checkin;
        document.cookie = "checkout=" + checkout;

	// HTTPS:
        window.location.href = "http://www.visabeiraturismo.pt/secure/girassol_v2/Reserves.aspx?pr=0&hotel=" + hotel + "&rooms=" + rooms + "&grownups=" + grownups + "&checkin=" + checkin + "&checkout=" + checkout + "&lang=" + lang;
    }
}

// RESERVAS 
function setReservationDates(sDate) {
    
     var now = new Date();
     var strD = now.getDate();
     var strDD = (strD < 10) ? '0' + strD : strD;
     var strM = now.getMonth() + 1;
     var strMM = (strM < 10) ? '0' + strM : strM;
     var strYear = now.getYear();
     
     // Data a validar
     var vReservationDateD = sDate.substring(0,2);
     var vReservationDateM = sDate.substring(3,5);
     var vReservationDateY = sDate.substring(6,10);

     // Maior que data corrente
     if (parseFloat(vReservationDateY) >= parseFloat(strYear)) {
        if (parseFloat(vReservationDateM) > parseFloat(strMM)) {
            // alert(">");
            // Se Mês for no futuro a data é sempre maior e não precisamos de testar o dia
            return true;
        } // Mês
        else {
            
            if (parseFloat(vReservationDateM) == parseFloat(strMM)) // mesmo mes que a data de hoje
            {
                if (parseFloat(vReservationDateD) >= parseFloat(strDD)) // Testar o dia
                {
                    // alert(">>>");
                    return true;
                }
                else // Mês inferior
                {
                    // alert("FALSE");
                    return false;
                }
            
            } else {

                    return false;
               
            }
        }
     } // Ano
     else
     {
        return false;
     }  
}

function CompareCheckInCheckOut(sDateIn, sDateOut)
{
     var vReservationDateInM = sDateIn.substring(0,2);
     var vReservationDateInD = sDateIn.substring(3,5);
     var vReservationDateInY = sDateIn.substring(6,10);
     
     // Data check out a validar
     var vReservationDateOutM = sDateOut.substring(0,2);
     var vReservationDateOutD = sDateOut.substring(3,5);
     var vReservationDateOutY = sDateOut.substring(6,10);

     // Maior que data corrente
     if ( parseFloat(vReservationDateOutY) >= parseFloat(vReservationDateInY))
     {
        if (parseFloat(vReservationDateOutM) > parseFloat(vReservationDateInM))
        {
            // Se Mês for no futuro a data é sempre maior e não precisamos de testar o dia
            return true;
        } // Mês
        else
        {
            if (parseFloat(vReservationDateOutM) == parseFloat(vReservationDateInM)) // Mesmo mês que a data de hoje
            {
                if (parseFloat(vReservationDateOutD) >= parseFloat(vReservationDateInD)) // Testar o dia
                {
                    return true;
                }
                else // Mês inferior
                {
                    return false;
                }
            
            }else
            {
                // NEW JOBA - 20091203
                if ( ( parseFloat(vReservationDateOutY) >= parseFloat(vReservationDateInY) ) && (parseFloat(vReservationDateOutM) < parseFloat(vReservationDateInM)) )
                {
                    // ano superior e mes inferior é verdadeiro
                    return true;
                }
                else
                {            
                    //mes inferior
                    return false;
                }
            }
        }
     } // Ano
     else
     {
        return false;
     }  
}

function ValidFormsReservesDates()
{ 
    ValidFormsReservesRoomsWithAdults();

    var isValid = "true";

    var now = new Date();
     
    var strD = now.getDate();
    var strDD = (strD < 10) ? '0' + strD : strD;
    var strM = now.getMonth() + 1;
    var strMM = (strM < 10) ? '0' + strM : strM;
    var strYear = now.getYear();
     
    var strDate = strMM + "/" + strDD + "/" + strYear;
     
    var msg = new String('');
    var lang = "";
    lang = document.getElementById("hidLang").value;

    var checkin = document.getElementById("ctl00_ContentReserves_tbCheckIn").value;
    var checkout = document.getElementById("ctl00_ContentReserves_tbCheckOut").value;

    // alert("Checkin: " + checkin + ", Checkout: " + checkout);

    if (checkin == "") {
	    if ( lang == 'PT' ) {
		    msg = msg + 'A data de Check-in tem de estar preenchida.' + '\n' 
        }		    
        else if ( lang == 'EN' ) {
		    msg = msg + 'The Check-in date should be filled.' + '\n'
		}
		else if (lang == 'SP') {
		    msg = msg + 'La fecha de Check-in tien que ser digitada.' + '\n'
		}		    
	}

    if (checkout == "") {
	    if ( lang == 'PT' ) {
		    msg = msg + 'A data de Check-out tem de estar preenchida.' + '\n' 
        }		    
        else if ( lang == 'EN' ) {
		    msg = msg + 'The Check-out date should be filled.' + '\n'
		}
		else if (lang == 'SP') {
		    msg = msg + 'la fecha de Check-out tien que ser digitada.' + '\n'
		}		    
	}

    if (checkin != "") {
        if (setReservationDates(checkin) == false) {
            if (lang == 'PT') {
                msg = msg + 'A data de Check-in é inferior da data hoje.' + '\n'
            }
            else if (lang == 'EN') {
                msg = msg + 'The Check-in date is earlier than today.' + '\n'
            }
            else if (lang == 'SP') {
                msg = msg + 'La fecha de Check-in es mas baja que a fecha de hoy.' + '\n'
            }
        }
    }

    if (checkout != "") {
        if (setReservationDates(checkout) == false) {
            if (lang == 'PT') {
                msg = msg + 'A data de Check-out é inferior da data hoje.' + '\n'
            }
            else if (lang == 'EN') {
                msg = msg + 'The Check-out date is earlier than today.' + '\n'
            }
            else if (lang == 'SP') {
                msg = msg + 'La fecha de Check-out es mas baja que a fecha de hoy.' + '\n'
            }
        }
        else if (Date.parse(checkout) <= Date.parse(checkin)) {
            if (lang == 'PT') {
                msg = msg + 'A data de Check-out tem de ser maior que a data de Check-in.' + '\n'
            }
            else if (lang == 'EN') {
                msg = msg + 'The Check-out date should be higher than the Check-in date.' + '\n'
            }
            else if (lang == 'SP') {
                msg = msg + 'La fecha de Check-out tien que ser major que la fecha de Check-in.' + '\n'
            }
        }

    }
    else if (Date.parse(checkin) == Date.parse(checkout)) {
        if (lang == 'PT') {
            msg = msg + 'A data de Check-out tem de ser superior à data de Check-in.' + '\n'
        }
        else if (lang == 'EN') {
            msg = msg + 'The Check-out date must be higher than the Check-in date.' + '\n'
        }
        else if (lang == 'SP') {
            msg = msg + 'La fecha de Check-out tien que ser major que la fecha de Check-in.' + '\n'
        }
    }

    if (msg != '') {
        if (lang == 'PT') {
            alert('Por favor verificar:\n\n' + msg);
        }
        else if (lang == 'EN') {
            alert('Please check:\n\n' + msg);
        }
        else if (lang == 'SP') {
            alert('Por favor verifique:\n\n' + msg);
        }
        document.getElementById("ctl00_ContentReserves_isValid").value = "false";
        return false;
    }
    else {
        document.getElementById("ctl00_ContentReserves_isValid").value = "true";
        return true;
    }
}


function ValidFormsReservesRoomsWithAdults() {

    var rooms = document.getElementById("ctl00_ContentReserves_txtNumRooms").value;
    var grownups = document.getElementById("ctl00_ContentReserves_txtNumAdults").value;
    var children = 0;

    var msg = new String('');

    var lang = "";
    lang = document.getElementById("hidLang").value;

    var maxPersonInRoom = 3;
    var auxRoomPessoa = 0;

    auxRoomPessoa = (parseFloat(grownups) + parseFloat(children)) / rooms;

    if (auxRoomPessoa > maxPersonInRoom) {
        if (lang == 'PT') {
            msg = msg + 'Cada quarto apenas permite uma ocupação máxima de 3 pessoas. \n';
        }
        else if (lang == 'EN') {
            msg = msg + 'Each room only allows a maximum occupancy of 3 persons. \n';
        }
        else if (lang == 'SP') {
            msg = msg + 'Todas las habitaciones sólo permite una ocupación máxima de 3 personas. \n';
        }
    }

    if (msg != '') {
        if (lang == 'PT') {
            alert('Por favor verificar:\n\n' + msg);
        }
        else if (lang == 'EN') {
            alert('Please check:\n\n' + msg);
        }
        else if (lang == 'SP') {
            alert('Por favor verifique:\n\n' + msg);
        }

        isValid = "false";
        document.getElementById("ctl00_ContentReserves_isValid").value = "false";
        return false;
    }
    else {
        if (document.getElementById("ctl00_ContentReserves_isValid").value != "false") {
            isValid = "true";
            document.getElementById("ctl00_ContentReserves_isValid").value = "true";
        }
        else
            return false;
    }
    if (typeof (Page_ClientValidate) == 'function') {
        Page_ClientValidate();
        if (Page_IsValid && isValid == "true") {
            document.getElementById("ctl00_ContentReserves_isValid").value = "true";
            return true;
        }
        else {
            document.getElementById("ctl00_ContentReserves_isValid").value = "false";
            return false;
        }
    }
    else {
        return false;
    }

}

function DeleteCookie ( strCookieName )
{
    var CookieDate = new Date ( );  // current date & time
    document.cookie = strCookieName += "=; expires=-1";
}

