/*****************************************************
**************** SEARCH BOX VALIDATION ***************
******************************************************/


function checkFlightForm()
{   
    if(!checkDepDate('flights') || !checkDiffDate('flights'))
    {
        return false;
    }
    document.getElementById('pre-loading-flights').style.display = "block";
return true;
}


function checkPackageForm()
{   
    if(!checkDepDate('packages') || !checkDiffDate('packages') || !checkPackageAdults())
    {
        return false;
    }
    document.getElementById('pre-loading-packages').style.display = "block";

return true;
}


function checkHotelForm()
{   
    if(!checkDepDate('hotels') || !checkHotelAdults())
    {
        return false;
    }
    document.getElementById('pre-loading-hotels').style.display = "block";
return true;
}


function checkVillaForm()
{   
    if(!checkDepDate('villas') || !checkVillaAdults())
    {
        return false;
    }
    document.getElementById('pre-loading-villas').style.display = "block";
return true;
}


// check whether selected date is at least 3 or 7 days before departure date
function checkDepDate(type)
{   
    var dep_date = depDate(type);
    
    var currentTime = new Date();
    
    if(type == 'flights')
    {
        var days_diff = 3;
        var type_name = 'Flight';
    }
    else if(type == 'packages')
    {
        var days_diff = 7;
        var type_name = 'Flight & Hotel';
    }
    else if(type == 'villas')
    {
        var days_diff = 7;
        var type_name = 'Villa';
    }
    else
    {
        var days_diff = 7;
        var type_name = 'Hotel';
    }

    // create date with 3 or 7 days further
    var set_day = currentTime.setDate(currentTime.getDate() + days_diff);

    var my_day = currentTime.getDate(); 
    var my_month = currentTime.getMonth();
    var my_year = currentTime.getFullYear();
    
    var my_date = new Date(my_year,my_month,my_day);
    
    if(Date.parse(dep_date) <= Date.parse(my_date))
    {
        alert(type_name + ' must be booked at least ' + days_diff + ' days before departure date');
        return false;
    }
    
return true;    
}



// check whether selected return date is not smaller than selected departure date
function checkDiffDate(type)
{   
    var dep_date = depDate(type);
    var ret_date = retDate(type);
    
    if(type == 'flights')
    var flight_type = returnFlight();
    else
    var flight_type = true;
    
    if(Date.parse(dep_date) > Date.parse(ret_date) && flight_type)
    {
        alert('Return date must be greater than departure date');
        return false;
    }
    
return true;    
}



// get selected departure date
function depDate(type)
{
    if(type == 'flights')
    {
        var selDay = document.getElementById('flights-departday');
        var selMonth = document.getElementById('flights-departmonth');
        var selYear = document.getElementById('flights-departyear');
    }
    else if(type == 'packages')
    {
        var selDay = document.getElementById('pkflights-departday');
        var selMonth = document.getElementById('pkflights-departmonth');
        var selYear = document.getElementById('pkflights-departyear');
    }
    else if(type == 'villas')
    {
        var selDay = document.getElementById('villas-day');
        var selMonth = document.getElementById('villas-month');
        var selYear = document.getElementById('villas-year');
    }
    else
    {
        var selDay = document.getElementById('hotels-day');
        var selMonth = document.getElementById('hotels-month');
        var selYear = document.getElementById('hotels-year');
    }

    
    var selIndexDay = selDay.selectedIndex;
    var selIndexMonth = selMonth.selectedIndex;
    var selIndexYear = selYear.selectedIndex;
        
    var dep_day = selDay.options[selIndexDay].value;
    var dep_month = selMonth.options[selIndexMonth].value - 1;
    var dep_year = selYear.options[selIndexYear].value;
    
return new Date(dep_year,dep_month,dep_day);
}



// get selected return date
function retDate(type)
{
    if(type == 'flights')
    {
        var selDay = document.getElementById('flights-returnday');
        var selMonth = document.getElementById('flights-returnmonth');
        var selYear = document.getElementById('flights-returnyear');
    }
    else if(type == 'packages')
    {
        var selDay = document.getElementById('pkflights-returnday');
        var selMonth = document.getElementById('pkflights-returnmonth');
        var selYear = document.getElementById('pkflights-returnyear');
    }
    else
    {
        var selDay = document.getElementById('hotels-day');
        var selMonth = document.getElementById('hotels-month');
        var selYear = document.getElementById('hotels-year');
    }
    
    
    var selIndexDay = selDay.selectedIndex;
    var selIndexMonth = selMonth.selectedIndex;
    var selIndexYear = selYear.selectedIndex;
        
    var ret_day = selDay.options[selIndexDay].value;
    var ret_month = selMonth.options[selIndexMonth].value - 1;
    var ret_year = selYear.options[selIndexYear].value;
    
return new Date(ret_year,ret_month,ret_day);
}


// if one way selected for flights, disable checkDiffDate function for flights
function returnFlight()
{
    var selType = document.getElementById('flights-type');
    var selIndexType = selType.selectedIndex;
    var flight_type = selType.options[selIndexType].value;
    
    if(flight_type == 'return')
    return true;
    else
    return false;
}

// do not allow start searching when any adult field is set to 0
function checkHotelAdults()
{

    if(document.getElementById('hotels-adults') && document.getElementById('hotels-adults1') == null)
    {
    var selType = document.getElementById('hotels-adults');
    var selIndexType = selType.selectedIndex;
    var adults = selType.options[selIndexType].value;
    }
    else
    var adults = 1;
    
    if(document.getElementById('hotels-adults1'))
    { 
    var selType1 = document.getElementById('hotels-adults1');
    var selIndexType1 = selType1.selectedIndex;
    var adults1 = selType1.options[selIndexType1].value;
    }
    else
    var adults1 = 1;
    
    if(document.getElementById('hotels-adults2'))
    {
    var selType2 = document.getElementById('hotels-adults2');
    var selIndexType2 = selType2.selectedIndex;
    var adults2 = selType2.options[selIndexType2].value;
    }
    else
    var adults2 = 1;
    
    if(document.getElementById('hotels-adults3'))
    {
    var selType3 = document.getElementById('hotels-adults3');
    var selIndexType3 = selType3.selectedIndex;
    var adults3 = selType3.options[selIndexType3].value;
    }
    else
    var adults3 = 1;
    
    if(document.getElementById('hotels-adults4'))
    {
    var selType4 = document.getElementById('hotels-adults4');
    var selIndexType4 = selType4.selectedIndex;
    var adults4 = selType4.options[selIndexType4].value;
    }
    else
    var adults4 = 1;
    
    if(document.getElementById('hotels-adults5'))
    {
    var selType5 = document.getElementById('hotels-adults5');
    var selIndexType5 = selType5.selectedIndex;
    var adults5 = selType5.options[selIndexType5].value;
    }
    else
    var adults5 = 1;
    
    if(document.getElementById('hotels-adults6'))
    {
    var selType6 = document.getElementById('hotels-adults6');
    var selIndexType6 = selType6.selectedIndex;
    var adults6 = selType6.options[selIndexType6].value;
    }
    else
    var adults6 = 1;

    
    if(adults > 0 && adults1 > 0 && adults2 > 0 && adults3 > 0 && adults4 > 0 && adults5 > 0 && adults6 > 0)
    return true;
    else
    {
    alert('There must be at least 1 adult in each room');
    return false;
    }
}

// do not allow start searching when any adult field is set to 0
function checkVillaAdults()
{

    if(document.getElementById('villas-adults') && document.getElementById('villas-adults1') == null)
    {
    var selType = document.getElementById('villas-adults');
    var selIndexType = selType.selectedIndex;
    var adults = selType.options[selIndexType].value;
    }
    else
    var adults = 1;
    
    if(document.getElementById('villas-adults1'))
    { 
    var selType1 = document.getElementById('villas-adults1');
    var selIndexType1 = selType1.selectedIndex;
    var adults1 = selType1.options[selIndexType1].value;
    }
    else
    var adults1 = 1;
    
    if(document.getElementById('villas-adults2'))
    {
    var selType2 = document.getElementById('villas-adults2');
    var selIndexType2 = selType2.selectedIndex;
    var adults2 = selType2.options[selIndexType2].value;
    }
    else
    var adults2 = 1;
    
    if(document.getElementById('villas-adults3'))
    {
    var selType3 = document.getElementById('villas-adults3');
    var selIndexType3 = selType3.selectedIndex;
    var adults3 = selType3.options[selIndexType3].value;
    }
    else
    var adults3 = 1;
    
    if(document.getElementById('villas-adults4'))
    {
    var selType4 = document.getElementById('villas-adults4');
    var selIndexType4 = selType4.selectedIndex;
    var adults4 = selType4.options[selIndexType4].value;
    }
    else
    var adults4 = 1;
    
    if(document.getElementById('villas-adults5'))
    {
    var selType5 = document.getElementById('villas-adults5');
    var selIndexType5 = selType5.selectedIndex;
    var adults5 = selType5.options[selIndexType5].value;
    }
    else
    var adults5 = 1;
    
    if(document.getElementById('villas-adults6'))
    {
    var selType6 = document.getElementById('villas-adults6');
    var selIndexType6 = selType6.selectedIndex;
    var adults6 = selType6.options[selIndexType6].value;
    }
    else
    var adults6 = 1;

    
    if(adults > 0 && adults1 > 0 && adults2 > 0 && adults3 > 0 && adults4 > 0 && adults5 > 0 && adults6 > 0)
    return true;
    else
    {
    alert('There must be at least 1 adult in each room');
    return false;
    }
}

// do not allow start searching when any adult field is set to 0
function checkPackageAdults()
{

    if(document.getElementById('packages-adults') && document.getElementById('packages-adults1') == null)
    {
    var selType = document.getElementById('packages-adults');
    var selIndexType = selType.selectedIndex;
    var p_adults = selType.options[selIndexType].value;
    }
    else
    var p_adults = 1;
    
    if(document.getElementById('packages-adults1'))
    { 
    var selType1 = document.getElementById('packages-adults1');
    var selIndexType1 = selType1.selectedIndex;
    var p_adults1 = selType1.options[selIndexType1].value;
    }
    else
    var p_adults1 = 1;
    
    if(document.getElementById('packages-adults2'))
    {
    var selType2 = document.getElementById('packages-adults2');
    var selIndexType2 = selType2.selectedIndex;
    var p_adults2 = selType2.options[selIndexType2].value;
    }
    else
    var p_adults2 = 1;
    
    if(document.getElementById('packages-adults3'))
    {
    var selType3 = document.getElementById('packages-adults3');
    var selIndexType3 = selType3.selectedIndex;
    var p_adults3 = selType3.options[selIndexType3].value;
    }
    else
    var p_adults3 = 1;
    
    if(document.getElementById('packages-adults4'))
    {
    var selType4 = document.getElementById('packages-adults4');
    var selIndexType4 = selType4.selectedIndex;
    var p_adults4 = selType4.options[selIndexType4].value;
    }
    else
    var p_adults4 = 1;
    
    if(document.getElementById('packages-adults5'))
    {
    var selType5 = document.getElementById('packages-adults5');
    var selIndexType5 = selType5.selectedIndex;
    var p_adults5 = selType5.options[selIndexType5].value;
    }
    else
    var p_adults5 = 1;
    
    if(document.getElementById('packages-adults6'))
    {
    var selType6 = document.getElementById('packages-adults6');
    var selIndexType6 = selType6.selectedIndex;
    var p_adults6 = selType6.options[selIndexType6].value;
    }
    else
    var p_adults6 = 1;

    
    if(p_adults > 0 && p_adults1 > 0 && p_adults2 > 0 && p_adults3 > 0 && p_adults4 > 0 && p_adults5 > 0 && p_adults6 > 0)
    return true;
    else
    {
    alert('There must be at least 1 adult in each room');
    return false;
    }
}