﻿// JScript File

// RESERVAS 
// - A LIMPAR DATAS ENTRADA E SAÍDA
function CheckIn() {
    if ( document.getElementById("ctl00_tbCheckOut").value.length == 0) {
        document.getElementById("ctl00_tbCheckOut").value = "MM/DD/YYYY";
    }
    
    document.getElementById("calCheckIn").style.display = "block";
    document.getElementById("calCheckIn").style.visibility = "visible";    

    document.getElementById("ctl00_tbCheckIn").value = "";
    
    document.getElementById("calCheckOut").style.display = "none";
    document.getElementById("calCheckOut").style.visibility = "hidden";    

    document.getElementById("ifcalCheckIn").style.display = "block";
    document.getElementById("ifcalCheckIn").style.visibility = "visible";    

    document.getElementById("ifcalCheckOut").style.display = "none";
    document.getElementById("ifcalCheckOut").style.visibility = "hidden";    
    
}

function CheckInR() {
    if ( document.getElementById("ctl00_ContentReserves_tbCheckOut").value.length == 0) {
        document.getElementById("ctl00_ContentReserves_tbCheckOut").value = "MM/DD/YYYY";
    }
    
    document.getElementById("calCheckInR").style.display = "block";
    document.getElementById("calCheckInR").style.visibility = "visible";    
    
    document.getElementById("ctl00_ContentReserves_tbCheckIn").value = "";
    
    document.getElementById("calCheckOutR").style.display = "none";
    document.getElementById("calCheckOutR").style.visibility = "hidden";    
    
}

function CheckOut() {
    if ( document.getElementById("ctl00_tbCheckIn").value.length == 0) {
        document.getElementById("ctl00_tbCheckIn").value = "MM/DD/YYYY";
    }
    document.getElementById("calCheckOut").style.display = "block";
    document.getElementById("calCheckOut").style.visibility = "visible";    
    
    document.getElementById("ctl00_tbCheckOut").value = "";

    document.getElementById("calCheckIn").style.display = "none";
    document.getElementById("calCheckIn").style.visibility = "hidden";    
    
    document.getElementById("ifcalCheckIn").style.display = "none";
    document.getElementById("ifcalCheckIn").style.visibility = "hidden";    

    document.getElementById("ifcalCheckOut").style.display = "block";
    document.getElementById("ifcalCheckOut").style.visibility = "visible";    
    
}

function CheckOutR() {
    if ( document.getElementById("ctl00_ContentReserves_tbCheckIn").value.length == 0) {
        document.getElementById("ctl00_ContentReserves_tbCheckIn").value = "MM/DD/YYYY";
    }
                                 
    document.getElementById("calCheckOutR").style.display = "block";
    document.getElementById("calCheckOutR").style.visibility = "visible";    
    
    document.getElementById("ctl00_ContentReserves_tbCheckOut").value = "";

    document.getElementById("calCheckInR").style.display = "none";
    document.getElementById("calCheckInR").style.visibility = "hidden";    
}

function VisibleCalendar() {
    if ( document.getElementById("ctl00_hidMonthChangeIn").value == "1" ) {
        document.getElementById("calCheckIn").style.display = "block";
        document.getElementById("calCheckIn").style.visibility = "visible";    
        
        document.getElementById("ifcalCheckIn").style.display = "block";
        document.getElementById("ifcalCheckIn").style.visibility = "visible";    
        
    } else {
        document.getElementById("calCheckIn").style.display = "none";
        document.getElementById("calCheckIn").style.visibility = "hidden";    
        
        document.getElementById("ifcalCheckIn").style.display = "none";
        document.getElementById("ifcalCheckIn").style.visibility = "hidden";    
        
    }

    if ( document.getElementById("ctl00_hidMonthChangeOut").value == "1" ) {
        document.getElementById("calCheckOut").style.display = "block";
        document.getElementById("calCheckOut").style.visibility = "visible";    
        
        document.getElementById("ifcalCheckOut").style.display = "block";
        document.getElementById("ifcalCheckOut").style.visibility = "visible";    
        
    } else {
        document.getElementById("calCheckOut").style.display = "none";
        document.getElementById("calCheckOut").style.visibility = "hidden";    
        
        document.getElementById("ifcalCheckOut").style.display = "none";
        document.getElementById("ifcalCheckOut").style.visibility = "hidden";    
        
    }
}

function VisibleCalendarReserve() {

    /* CONTENT HOLDER */
    /* ------------------------------------------------- */
    /* FALTA CONTROLAR SE O FORMULÁRIO ESTÁ ESCONDIDO    */
    /* PORQUE APARECEU UM ERRO E NÃO SABE ONDE ESTÁ FORM */
    /* ------------------------------------------------- */
    if ( document.getElementById("ctl00_ContentReserves_hidMonthChangeInR").value == "1" ) {
        document.getElementById("calCheckInR").style.display = "block";
        document.getElementById("calCheckInR").style.visibility = "visible";    
    } else {
        //document.getElementById("calCheckInR").style.display = "none";
        //document.getElementById("calCheckInR").style.visibility = "hidden";    
    }

    if ( document.getElementById("ctl00_ContentReserves_hidMonthChangeOutR").value == "1" ) {
        document.getElementById("calCheckOutR").style.display = "block";
        document.getElementById("calCheckOutR").style.visibility = "visible";    
    } else {
        // document.getElementById("calCheckOutR").style.display = "none";
        // document.getElementById("calCheckOutR").style.visibility = "hidden";    
    }
}

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 vReservationDateM = sDate.substring(0,2);
     var vReservationDateD = sDate.substring(3,5);
     var vReservationDateY = sDate.substring(6,10);

     // Maior que data corrente
     if ( parseFloat(vReservationDateY) >= parseFloat(strYear))
     {
        if (parseFloat(vReservationDateM) > parseFloat(strMM))
        {
            // 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
                {
                    return true;
                }
                else // Mês inferior
                {
                    return false;
                }
            
            }else
            {
                // NEW JOBA - 20091203
                if ( ( parseFloat(vReservationDateY) >= parseFloat(strYear) ) && (parseFloat(vReservationDateM) < parseFloat(strMM)) )
                {
                    // ano superior e mes inferior é verdadeiro
                    return true;
                }
                else 
                {
                    //mes inferior
                    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 openAvailability()
{  
    var hotel = document.getElementById("ctl00_ddlHotels").selectedIndex;
    var rooms = document.getElementById("ctl00_ddlRooms").value;
    var grownups = document.getElementById("ctl00_ddlAdults").value;
    var children = 0;
    var checkin = document.getElementById("ctl00_tbCheckIn").value;
    var checkout = document.getElementById("ctl00_tbCheckOut").value;

     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 maxPersonInRoom = 3;
    var auxRoomPessoa = 0;
    
    auxRoomPessoa = (parseFloat(grownups) + parseFloat(children)) / rooms;

    if ( hotel == '' || hotel == 0 ) {
	    if ( lang == 'PT' ) {
		    msg = msg + 'O Hotel tem de estar preenchida.' + '\n' 
        }		    
        else if ( lang == 'EN' ) {
		    msg = msg + 'The Hotel slhould be filled.' + '\n' 
        }		    
	}  

    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';
        }		    
    }

    if ( checkin == '' || checkin == 'MM/DD/YYYY' ) {
	    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 slhould be filled.' + '\n' 
        }		    
	}  

	if ( checkout == '' || checkout == 'MM/DD/YYYY' ) {
	    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 slhould be filled.' + '\n' 
        }		    
	} 

    if ( checkin != "" && checkout != "" && checkin != 'MM/DD/YYYY' && checkout != 'MM/DD/YYYY') {	    
        if (!setReservationDates(checkin)) {
	        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'
            }		    
        }
            // }
        // }
        // Depois tens de compara a checkin e a checkout
        if (!setReservationDates(checkout)) {
	        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 ( !CompareCheckInCheckOut(checkin,checkout) ) {
        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 ( 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'
            }		    
        }
    }
	
    if (msg != '')	{
	    if ( lang == 'PT' ) {
		    alert('Por favor verificar:\n\n' + msg);
        }		    
        else if ( lang == 'EN' ) {
		    alert('Please check:\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;
		
        window.location.href= "https://www.visabeiraturismo.pt/secure/girassol/Reserves.aspx?pr=1&hotel=" + hotel + "&rooms=" + rooms + "&grownups=" + grownups + "&checkin=" + checkin + "&checkout=" + checkout + "&lang=" + lang;                
        // window.location.href= "http://www.visabeiraturismo.pt/girassol/Reserves.aspx?pr=1&hotel=" + hotel + "&rooms=" + rooms + "&grownups=" + grownups + "&checkin=" + checkin + "&checkout=" + checkout + "&lang=" + lang;
        // window.location.href= "Reserves.aspx?id=" + channelid + "&hotel=" + hotel + "&rooms=" + rooms + "&grownups=" + grownups + "&checkin=" + checkin + "&checkout=" + checkout + "&lang=" + lang;
        // window.location.href= "https://www.visabeiraturismo.pt/secure/girassol/Reserves.aspx?id=" + channelid + "&hotel=" + hotelid + "&rooms=" + rooms + "&grownups=" + grownups + "&checkin=" + checkin + "&checkout=" + checkout + "&lang=" + lang;
    }
}

function ValidFormsReservesDates()
{ 
    ValidFormsReservesRoomsWithAdults();
    
    var checkin = document.getElementById("ctl00_ContentReserves_tbCheckIn").value;
    var checkout = document.getElementById("ctl00_ContentReserves_tbCheckOut").value;

    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;

    if ( checkin == '' || checkin == 'MM/DD/YYYY' ) {
	    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 slhould be filled.' + '\n' 
        }		    
	}  

	if ( checkout == '' || checkout == 'MM/DD/YYYY' ) {
	    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 slhould be filled.' + '\n' 
        }		    
	} 
	
    if ( checkin != "" && checkout != "" && checkin != 'MM/DD/YYYY' && checkout != 'MM/DD/YYYY') {	    
        if (!setReservationDates(checkin)) {
	        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'
            }		    
        }
            // }
        // }
        // Depois tens de compara a checkin e a checkout
        if (!setReservationDates(checkout)) {
	        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 ( !CompareCheckInCheckOut(checkin,checkout) ) {
        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 ( 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'
            }		    
        }
    }
	
    if (msg != '')	{
	    if ( lang == 'PT' ) {
		    alert('Por favor verificar:\n\n' + msg);
        }		    
        else if ( lang == 'EN' ) {
		    alert('Please check:\n\n' + msg);
        }		    
        document.getElementById("ctl00_ContentReserves_btSend").disabled = true;
	    return;
	}
	else
        document.getElementById("ctl00_ContentReserves_btSend").disabled = false;	
	    
}


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';
        }		    
    }
    
    if (msg != '')	{
	    if ( lang == 'PT' ) {
		    alert('Por favor verificar:\n\n' + msg);
        }		    
        else if ( lang == 'EN' ) {
		    alert('Please check:\n\n' + msg);
        }		    
        document.getElementById("ctl00_ContentReserves_btSend").disabled = true;
	    return;
	}
	else
        document.getElementById("ctl00_ContentReserves_btSend").disabled = false;	
    
}


function DeleteCookie ( strCookieName )
{
    var CookieDate = new Date ( );  // current date & time
    document.cookie = strCookieName += "=; expires=-1";
}
