﻿$(document).ready(function() {
    //MENU BLOCK
    $("#menucontainer div.menu_element").hover(
         function(event) {/*mouseover*/
             var submenu = $(this).children('span.submenu');
             if ($(submenu).children('a').length == 0)
                 return;
             var x = $("#menucontainer").offset().top + $("#menucontainer").height() - 2;
             var y = $(this).offset().left - 2;
             submenu.css('top', x).css('left', y).toggle();
         },
         function(event) { /*mouseout*/
             //Hide menu's associated submenu
             var submenu = $(this).children('span.submenu');
             if ($(submenu).children('a').length == 0)
                 return;

             submenu.toggle();
         });
    //END OF MENU BLOCK

    //css fixes for browsers
    if (jQuery.browser.msie) {
        if (jQuery.browser.version.substring(0, 1) < '8') {
            $('div.details_footer').css("width", "100%");
            $('#CircuitSearch').css("height", "192px");
            $('#menucontainer').css("height", "21px");
        }

        if (jQuery.browser.version.substring(0, 1) < '7') {
            $("#title").click(function() { window.top.location = "/about-us"; });
            $("#title").html('');
            $('#title').addClass("IE6");
        }
    }
    else if (jQuery.browser.safari) {
        $('#CircuitSearch').css("height", "200px");
    }
    else if (jQuery.browser.mozilla) {
        if(navigator.userAgent.indexOf('Macintosh') > -1)
            $('#CircuitSearch').css("height", "200px");
    }

    //json automation for dynamic dropdown filling
    FillSearchCriterias();
    $('#ddlDestinations').change(function() { FillSearchCriterias(this) });
    $('#ddlMonths').change(function() { FillSearchCriterias(this) });
    $('#ddlProductTypes').change(function() { FillSearchCriterias(this) });

    //Adjust menu and header elements based on language
    $('#top').addClass(DEFAULT_LANGUAGE);
    $('#menucontainer').addClass(DEFAULT_LANGUAGE);
    $('#title').addClass(DEFAULT_LANGUAGE);

    //Start TOs logos loop
    if(DEFAULT_LANGUAGE == 'fr')
        iterate_TO_logo();
});

//Reset search criterias values based on selected ones
function FillSearchCriterias(sender) {
    var sender_id = (sender != null) ? sender.id : "All";

    $("#ddlMonths").attr('disabled', 'disabled');
    $("#ddlProductTypes").attr('disabled', 'disabled');
    $("#ddlDestinations").attr('disabled', 'disabled');
    
    var url = "/Circuit/FillSearchCriterias";
    url += "/" + sender_id;
    url += "/" + DEFAULT_LANGUAGE;
    url += "/" + DEFAULT_TO_ID;
    url += "/" + DEFAULT_CONTINENT_ID;
    url += "/" + $("#ddlDestinations").val();
    url += "/" + $("#ddlMonths").val();
    url += "/" + $("#ddlProductTypes").val();

    $.getJSON(url, null,
        function(json) {
            if (typeof (json) == "string")
                alert(json);
            else {
                FillDropDown("ddlDestinations", json[0]);
                FillDropDown("ddlMonths", json[1]);
                FillDropDown("ddlProductTypes", json[2]);
            }
        });
    }

    function FillDropDown(ctl_id, data) {        
    $("#" + ctl_id).removeAttr('disabled');
    if (data != null) {
        var selectedValue = $('#' + ctl_id).val();//hold last selected value
        $("#" + ctl_id).fillSelect(data);
        $('#' + ctl_id).val(selectedValue);//reset selected value (if still exists)
    }
}

//Adjust url to fit selected TO
function ShowTOInfos(to_id) {
    if (window.top.location.href.indexOf(DEFAULT_TO_ID) > -1) {
        var url = window.top.location.href.replace(DEFAULT_TO_ID, to_id);
        window.top.location = url;
    }
    else
        window.top.location = "/" + to_id;
}

////Adjust url to fit selected continent
//function Filter_ByContinent(continent_id) {
//   window.top.location = GetURL(DEFAULT_TO_ID, continent_id, null, null, null);
//}

//Adjust url to fit selected TO and Continent
function ShowTOInfosContinent(to_id, continent_id) {

    var url = window.top.location.href;
    
    if (window.top.location.href.indexOf(DEFAULT_TO_ID) == -1
        && window.top.location.href.indexOf(DEFAULT_CONTINENT_ID) == -1)
        url = "/" + to_id + "/" + continent_id;
    else 
    {
        if (window.top.location.href.indexOf(DEFAULT_TO_ID) > -1) {
            url = url.replace(DEFAULT_TO_ID, to_id);
        }

        if (window.top.location.href.indexOf(DEFAULT_CONTINENT_ID) > -1) {
            url = url.replace(DEFAULT_CONTINENT_ID, continent_id);
        }
    }

    window.top.location = url;    
}

//Reload page with proper controller's parameters
function Search(target_page) {
    var navigate_in_search_results = (target_page != null);
    var destination_id = $("#ddlDestinations").val();
    var month_id = $("#ddlMonths").val();
    var product_type_id = $("#ddlProductTypes").val();
    var to_id = DEFAULT_TO_ID;

    //var continent_id = DEFAULT_CONTINENT_ID; //(destination_id == ALL_CONTINENTS) ? ALL : DEFAULT_CONTINENT_ID;
    var continent_id = DEFAULT_CONTINENT_ID;
    if (destination_id == DEFAULT_CONTINENT) {
        continent_id = DEFAULT_CONTINENT;
        destination_id = DEFAULT_DESTINATION;
    }
    var url_parameters = escape(GetURL(to_id, continent_id, destination_id, month_id, product_type_id));

    if (!navigate_in_search_results)
        window.location = url_parameters;
    else
        $('#OffersList_details').load("/Circuit/ucCircuitTemplate_Refresh/" + target_page + url_parameters, function() { $("div.otherpage").click(function() { RefreshSearchResults(this); }); InitFancyBoxes(); document.body.style.cursor = 'default'; search_in_progress = false; window.status = 'Terminé!'; });
}

///Returns adjusted URL
function GetURL(to_id, continent_id, destination_id, month_id, product_type_id) {

    //Set default values
    if(to_id == null)
        to_id = DEFAULT_TO_ID;
    if(continent_id == null)
        continent_id = DEFAULT_CONTINENT_ID;
    if(destination_id == null)
        destination_id = DEFAULT_DESTINATION;
    if(month_id == null)
        month_id = DEFAULT_SEARCH_ALL_ELEMENT_TEXT;
    if(product_type_id == null)
        product_type_id = DEFAULT_PRODUCT_TYPE_ID;

    return "/" + to_id + "/" + continent_id + "/" + destination_id + "/" + month_id + "/" + product_type_id;
}

function ShowTOInfos(to_id) {
    alert('to ' + to_id + ' clicked!');
}

function switchCulture() {
    var days = 15;
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    var expires = "; expires=" + date.toGMTString();

    document.cookie = "switchCulture=true;expires=" + date.toGMTString() + ";path=/";

    //window.top.location = (DEFAULT_LANGUAGE == "fr") ? ENGLISH_SITE_URL : FRENCH_SITE_URL;
}

/////////////////////////////////////////////////////////////////////////
///////////////////////// HEADERS ROTATING TOS //////////////////////////
/////////////////////////////////////////////////////////////////////////
var logos = new Array();
logos[0] = new logo("traf-logo-fr-sm.jpg", "25px", "26px");
logos[1] = new logo("insight_logo-sm.jpg", "26px", "34px");
logos[2] = new logo("contiki_logo-sm.jpg", "15px", "16px");

var logo_index = -1;
function iterate_TO_logo() {
    if (logo_index == logos.length - 1)
        logo_index = 0;
    else
        logo_index++;

    var logo = logos[logo_index];

    //jQuery("#header #title .content img").css("padding-top", logo.paddingTop);
    jQuery("#header #title .content img").fadeOut(1000, function() {
        jQuery("#header #title .content img").attr("src", "/Content/_img/" + logos[logo_index].src);
        jQuery("#header #title .content img").css("padding-top", logo.paddingTop);
    });
    jQuery("#header #title .content img").fadeIn(1000);

    window.setTimeout(function() { iterate_TO_logo(); }, 3000);
}

//Logo object
function logo(url, paddingTop_fr, paddingTop_en) {
    this.src = url;
    this.paddingTop = (DEFAULT_LANGUAGE == "en") ? paddingTop_en : paddingTop_fr;
}
/////////////////////////////////////////////////////////////////////////
///////////////////////// HEADERS ROTATING TOS //////////////////////////
/////////////////////////////////////////////////////////////////////////
