﻿//RESERVAS ***********************************************************
function openAvailability(secureHost,nChannel,nContent, typerooms,rooms,grownups,children,checkin,checkout,lang, nameHotel)
{  
     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.toLowerCase();
    
    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 slhould 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 slhould be filled.' + '\n' 
        }		    
        else if ( lang == 'sp' ) {
		    msg = msg + 'la fecha de Check-out tien que ser digitada.' + '\n' 
        }		    
	} 

    if ( checkin != ""  && checkout != "" ) {	    
        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'
            }		    
            else if ( lang == 'sp' ) {
		        msg = msg + 'La fecha de Check-in es mas baja que a fecha de hoy.' + '\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 ( lang == 'sp' ) {
		        msg = msg + 'La fecha de Check-out es mas baja que a fecha de hoy.' + '\n'
            }		    
        }
        else if ( !CompareCheckInCheckOut(checkin,checkout) ) {
            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 ( checkin == 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);		
        }		    
	    return;
	}
    else {    
        if ( nameHotel == 'MVHS' )
        {
            window.location.href = secureHost + "Reserva.aspx?channelid=" + nChannel + "&contentid=" + nContent + "&rooms=" + rooms + "&grownups=" + grownups + "&children=" + children + "&checkin=" + checkin + "&checkout=" + checkout + "&lang=" + lang;
        }
        else if ( nameHotel == 'MALRS' )
        {
			window.location.href = secureHost + "Reserves.aspx?channelid=" + nChannel + "&contentid=" + nContent + "&rooms=" + rooms + "&grownups=" + grownups + "&children=" + children + "&checkin=" + checkin + "&checkout=" + checkout + "&lang=" + lang;
			
        }
        else if ( nameHotel == 'HCI' )
        {
            window.location.href = secureHost + "Reserva.aspx?channelid=" + nChannel + "&contentid=" + nContent + "&rooms=" + rooms + "&grownups=" + grownups + "&children=" + children + "&checkin=" + checkin + "&checkout=" + checkout + "&lang=" + lang;
        }
        else if ( nameHotel == 'HPM' )
        {
			window.location.href = secureHost + "Reserva.aspx?pid=0&cid=" + nChannel + "&typerooms=" + typerooms + "&rooms=" + rooms + "&grownups=" + grownups + "&children=" + children + "&checkin=" + checkin + "&checkout=" + checkout + "&auxLang=" + lang.toUpperCase();
        }
        else if ( nameHotel == 'HPP' )
        {
			window.location.href = secureHost + "Reserva.aspx?pid=0&cid=" + nChannel + "&rooms=" + rooms + "&grownups=" + grownups + "&checkin=" + checkin + "&checkout=" + checkout + "&auxLang=" + lang.toUpperCase();
        }
    }
}

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);

     if ( parseFloat(vReservationDateY) == parseFloat(strYear))
     {
        if (parseFloat(vReservationDateM) > parseFloat(strMM))
        {
            //se  mes for no futuro a data é sempre maior e não precisamos de testar o dia
            return true;
        }//mes
        else
        {
            if (parseFloat(vReservationDateM) == parseFloat(strMM)) //mesmo mes que a data de hoje
            {
                if (parseFloat(vReservationDateD) >= parseFloat(strDD))//testar o dia
                {
                    return true;
                }
                else// mes inferior
                {
                    return false;
                }
            
            }else
            {
            //mes inferior
                return false;
            }
        }
     } //ano

     //maior que data corrente
     else if ( parseFloat(vReservationDateY) > parseFloat(strYear))
     {
        return true;
     } //ano
     else
     {
        return false;
     }  
}

function CompareCheckInCheckOut(sDateIn, sDateOut)
{
          
     var vReservationDateInD = sDateIn.substring(0,2);
     var vReservationDateInM = sDateIn.substring(3,5);
     var vReservationDateInY = sDateIn.substring(6,10);
     
     //Data check out a validar
     var vReservationDateOutD = sDateOut.substring(0,2);
     var vReservationDateOutM = 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  mes for no futuro a data é sempre maior e não precisamos de testar o dia
            return true;
        }//mes
        else
        {
            if (parseFloat(vReservationDateOutM) == parseFloat(vReservationDateInM)) //mesmo mes que a data de hoje
            {
                if (parseFloat(vReservationDateOutD) >= parseFloat(vReservationDateInD))//testar o dia
                {
                    return true;
                }
                else// mes inferior
                {
                    return false;
                }
            
            }else
            {
            //mes inferior
                return false;
            }
        }
     } //ano

     //maior que data corrente
     else if ( parseFloat(vReservationDateOutY) > parseFloat(vReservationDateInY))
     {
        return true;
     } //ano
     else
     {
        return false;
     }  
}
