﻿//properties
var hideMenuTimeout; //used to prevent the destination menu from closing when hovering over the menu or destination menu item


function HotelDetails_SwapImage(image) {
    $('#ytPlayer').hide();
    $('#hotel_details_image').show();
    $('#hotel_details_image').attr('src', image.src);
    $('#hotel_details_image').css('background-image', 'url(' + image.src + ')');
}

function HotelDetails_ShowVideo(image) {
    $('#hotel_details_image').hide();
    $('#ytPlayer').show();
}


function HotelDetails_SwapTab(tab) {
    $('.hotel_details_tab_selected').addClass('hotel_details_tab_notselected');
    $('.hotel_details_tab_selected').removeClass('hotel_details_tab_selected');
    $('#' + tab.id).removeClass('hotel_details_tab_notselected');
    $('#' + tab.id).addClass('hotel_details_tab_selected');    
    $('.hotel_details_tab_content').addClass('hotel_details_tab_hide');
    $('#' + tab.id + "_details").removeClass('hotel_details_tab_hide');
}

function DealOfWeek_SwapImage(image) {
    $('#dealofweek_control_big_image').attr('src', image.src.replace('_thumb',''));
}


function HomeDesc_SwapImage(image, destinationNumber) {
    if (destinationNumber == null)
        destinationNumber = 1;
    $('#homedesc_dest_image_big_' + destinationNumber).css('background-image', 'url(' + image.src.replace('_thumb', '') + ')');
}


function InitialiseTabs() {
    $('.tab').click(function() {
        SwapTab(this)
    });
}

function SwapTab(tab){
    $('.tab_selected').addClass('tab_notselected');
    $('.tab_selected').removeClass('tab_selected');
    $('#' + tab.id).removeClass('tab_notselected');
    $('#' + tab.id).addClass('tab_selected');
    $('.tab_content').addClass('hide');
    $('#' + tab.id + "_content").removeClass('hide');
    $('#' + tab.id + "_details").removeClass('hotel_details_tab_hide');
}

function LoadYouTube(videoId, elementIdToLoadInto) {
    // Lets Flash from another domain call JavaScript
    var params = { allowScriptAccess: "always" };
    // The element id of the Flash embed
    var atts = { id: "ytPlayer" };
    // All of the magic handled by SWFObject (http://code.google.com/p/swfobject/)
    swfobject.embedSWF("http://www.youtube.com/v/" + videoId + "&enablejsapi=1&playerapiid=player1",
                   elementIdToLoadInto, "500", "300", "8", null, null, params, atts);
}

function InitialiseHotelDetails(youtubeId) {
    InitialiseTabs();
    
    if(youtubeId.length != 0)
        LoadYouTube(youtubeId,'hotel_details_you_tube');
}

function QuoteChangeChildren() {
    var amountSelected = $('#QuoteChildren').val()

    for (var i = 0; i < 10; i++) {
        $('#quoteChild' + i).hide();
    }

    for (var i = 0; i < amountSelected; i++) {
        $('#quoteChild' + i).show();
    }   
}

function QuoteChangeInfant() {
    var amountSelected = $('#QuoteInfant').val()

    for (var i = 0; i < 10; i++) {
        $('#quoteInfant' + i).hide();
    }

    for (var i = 0; i < amountSelected; i++) {
        $('#quoteInfant' + i).show();
    }  
}

function QuoteOnLoad() {
    $('#quoteDepart').datepicker({ buttonImage: '/Content/Images/Global/Calendar/calendar_icon.gif', dateFormat: 'dd/mm/yy', showOn: 'button', minDate: '+4d', maxDate: '+331d', buttonImageOnly: true, buttonText: 'Choose a departure date' });
    $('#quoteReturn').datepicker({ buttonImage: '/Content/Images/Global/Calendar/calendar_icon.gif', dateFormat: 'dd/mm/yy', showOn: 'button', minDate: '+4d', maxDate: '+331d', buttonImageOnly: true, buttonText: 'Choose a return date' });
    QuoteChangeChildren();
    QuoteChangeInfant();

    var ddlCountry = $('#quotes_country');
    var ddlDest = $('#quotes_destination');
    var ddlResort = $('#quotes_resort');

    //populate country
    ddlCountry.html('');
    $.each(countryData, function (key, value) {
        ddlCountry.append($('<option></option>').val(value).html(key));
    });

    //populate destination
    ddlDest.html('<option>Please Select...</option>');
    ddlDest.attr('disabled', 'true');

    //populate resort
    ddlResort.html('<option>Please Select...</option>');
    ddlResort.attr('disabled', 'true');

    //pre-populate country/destination/resort
    QuotePrePopulate();

    //hook up events
    ddlCountry.change(function () {
        QuoteCountryChanged();
    });

    ddlDest.change(function () {
        QuoteCityChanged();
    });

    ddlResort.change(function () {
        QuoteResortChanged();
    });
}

function QuotePrePopulate() {
    var countryVal = $('#quotes_country_pop').val();
    var destVal = $('#quotes_destination_pop').val();
    var resortVal = $('#quotes_resort_pop').val();

    countryVal = countryVal != null && countryVal != '' && countryVal != '-1' ? countryVal : null;
    destVal = destVal != null && destVal != '' && destVal != '-1' ? destVal : null;
    resortVal = resortVal != null && resortVal != '' && resortVal != '-1' ? resortVal : null;

    if (countryVal != null && $('#quotes_country option[value="' + countryVal + '"]').length > 0) {
        $('#quotes_country').val(countryVal);
        QuoteCountryChanged(destVal, resortVal);
    }
}

function QuoteCountryChanged(destVal, resortVal) {
    var ddlCountry = $('#quotes_country');
    var ddlDest = $('#quotes_destination');
    var ddlResort = $('#quotes_resort');
    
    ddlDest.html('<option>Please Wait...</option>');
    ddlDest.attr('disabled', 'true');

    ddlResort.html('<option>Please Select...</option>');
    ddlResort.attr('disabled', 'true');

    var countryCode = ddlCountry.val();
    if (countryCode != null && countryCode != -1) {
        Sys.Net.WebServiceProxy.invoke('/WebServices/AjaxHits.asmx', 'AccommodationFormCitiesGet', false, { "countryCode": countryCode }, function (results) { QuoteCountryChangedSuccess(results, destVal, resortVal); }, function (ex) { alert(ex.get_message()); });
    }

    var valText = $('#quotes_country option[value="' + countryCode + '"]').html();
    $('#quotes_country_value').val(valText);
}

function QuoteCountryChangedSuccess(results, destVal, resortVal) {
    var ddlDest = $('#quotes_destination');
    var ddlResort = $('quotes_resort');

    ddlDest.html('');

    if (results.length > 0) {
        for (var i = 0; i < results.length; i++) {
            ddlDest.append($('<option></option>').val(results[i].Value).html(results[i].Text));
        }

        ddlDest.removeAttr('disabled');

        ddlResort.html('<option>Please Wait...</option>');
        ddlResort.attr('disabled', 'disabled');

        if (destVal != 0 && $('#quotes_destination option[value="' + destVal + '"]').length > 0) {
            ddlDest.val(destVal);
            QuoteCityChanged(resortVal);
        }
    }
    else {
        ddlDest.append($('<option></option>').val(-1).html('Please Select...'));
        ddlDest.attr('disabled', 'disabled');
    }

    ddlResort.html('<option>Please Select...</option>');
    ddlResort.attr('disabled', 'disabled');
}

function QuoteCityChanged(resortVal) {
    var ddlResort = $('#quotes_resort');

    ddlResort.html('<option>Please Wait...</option>');
    ddlResort.attr('disabled', 'disabled');

    var cityCode = $('#quotes_destination').val();
    if (cityCode != null && cityCode != -1) {
        Sys.Net.WebServiceProxy.invoke('/WebServices/AjaxHits.asmx', 'AccommodationFormLocationsGet', false, { "cityCode": cityCode }, function (results) { QuoteCityChangedSuccess(results, resortVal); });
    }
    else {
        ddlResort.html('<option>Please Select...</option>');
        ddlResort.attr('disabled', 'disabled');
    }

    var valText = $('#quotes_destination option[value="' + cityCode + '"]').html();
    $('#quotes_destination_value').val(valText);
}

function QuoteCityChangedSuccess(results, resortVal) {
    var ddlResort = $('#quotes_resort');

    ddlResort.html('');
    if (results.length > 0) {
        for (var i = 0; i < results.length; i++) {
            ddlResort.append($('<option></option>').val(results[i].Value).html(results[i].Text));
        }

        if (resortVal != null && resortVal != -1 && $('#quotes_resort option[value="' + resortVal + '"]').length > 0) {
            ddlResort.val(resortVal);
        }

        QuoteResortChanged();

        ddlResort.removeAttr('disabled');
    }
    else {
        ddlResort.append($('<option></option>').val('-1').html('Please Select...'));
        ddlResort.attr('disabled', 'disabled');
    }
}

function QuoteResortChanged() {
    var resortCode = $('#quotes_resort').val();
    
    var valText = $('#quotes_resort option[value="' + resortCode + '"]').html();
    $('#quotes_resort_value').val(valText);
}

function InitialiseDestinationMenu() {
    $('#menu_item_destination').click(function(){
        ShowDestinationMenu();
    });

    $('#menu_item_destination').mouseout(function() {
        CloseDestinationMenu();
    });

    $('#menu_item_destination').mouseover(function() {
        clearTimeout(hideMenuTimeout);
    });

    $('#destination_menu').mouseover(function() {
        ShowDestinationMenu();
    });
}

function ShowDestinationMenu() {
    if (hideMenuTimeout != null)
        clearTimeout(hideMenuTimeout);

    //alert('open');
    $('#destination_menu').css('display', 'block');
}

function CloseDestinationMenu() {
    hideMenuTimeout = setTimeout('HideDestinationMenu()', 500);
}

function HideDestinationMenu() {
    $('#destination_menu').css('display', 'none');
}

function ToggleSimple(divId, textDivId, text1, text2) {
    if ($("#" + textDivId).text() == text1) {
        $("#" + divId).show();
        $("#" + textDivId).text(text2);
    }
    else {
        $("#" + textDivId).text(text1);
        $("#" + divId).hide();
    }
}

function ToggleMoreText() {
    return ToggleSimple("showMore", "viewMore", "[View More]", "[View Less]");
}


