﻿/// <reference name="MicrosoftAjax.js"/>
/// <reference path="Common/Componets/Helpers/miniMaskHelper.js" />
/// <reference path="JQuery.Intellisense.js" />

var PoweredAvailabilityConst = "PoweredAvailability";
var CalendarSearchConst = "CalendarSearch";
var ScheduleConst = "Schedule";
var FareFamiliesConst = "FareFamilies";
var IncludeLccYesConst = "yes";
var IncludeLccNoConst = "no";

var _globalUrlToRedirect;

function initKeyUp(searchBtnId) {
    GlobalSearchBtnId = searchBtnId;
    addEvent(document, "keydown", searchKeyUp);
}

function searchKeyUp(evt) {
    // If it’s Mozilla/FF use evt; else use window.event
    evt = evt ? evt : event;
    var keyCode = evt.keyCode;
    // figure out which key code goes with which key
    // alert(evt.keyCode);
    if (keyCode == "13") {
        // do this if it IS the enter key
        var btn = document.getElementById(GlobalSearchBtnId);
        btn.click();
    }
    else {
        // do this if it is NOT the enter key
    }
}

function redirect() {
    addEvent(document, "load", clickToRedirect);
}

function clickToRedirect(evt) {
    var btn = document.getElementById(GlobalSearchBtnId);
    btn.click();
}

function addEvent(_href, _event, _function) {
    if (_href.addEventListener) {
        _href.addEventListener(_event, _function, false);
    }
    else {
        _href.attachEvent("on" + _event, _function);
    }
}

function ManageIncludeLccRBL(includeLccRadioButtonList, searchTypeRadioButtonList) {
    var searchTypeRBLSelectedValue = GetSelectedValueFromRBL(searchTypeRadioButtonList);
    SetIncludeLccVisibility(includeLccRadioButtonList, searchTypeRBLSelectedValue);
}

function ManageSearchTypeRBL(includeLccRadioButtonList, searchTypeRadioButtonList) {
    var includeLccRBLSelectedValue = GetSelectedValueFromRBL(includeLccRadioButtonList);
    var isLccSelected = includeLccRBLSelectedValue == IncludeLccYesConst;

    SetVisibility(searchTypeRadioButtonList, PoweredAvailabilityConst, true);
    SetVisibility(searchTypeRadioButtonList, ScheduleConst, !isLccSelected);
    SetVisibility(searchTypeRadioButtonList, CalendarSearchConst, !isLccSelected);
    SetVisibility(searchTypeRadioButtonList, FareFamiliesConst, !isLccSelected);
}

function InitializeSearchTypeRBLEnability(searchTypeRadioButtonList, includeLccRadioButtonList) {
    var searchTypeRBLSelectedValue = GetSelectedValueFromRBL(searchTypeRadioButtonList);
    var includeLccRBLSelectedValue = GetSelectedValueFromRBL(includeLccRadioButtonList);
    var isPoweredAvailabilitySelected = searchTypeRBLSelectedValue == PoweredAvailabilityConst;
    var isLccSelected = includeLccRBLSelectedValue == IncludeLccYesConst;

    if (isPoweredAvailabilitySelected && isLccSelected) {
        SetVisibility(searchTypeRadioButtonList, PoweredAvailabilityConst, true);
        SetVisibility(searchTypeRadioButtonList, ScheduleConst, false);
        SetVisibility(searchTypeRadioButtonList, CalendarSearchConst, false);
        SetVisibility(searchTypeRadioButtonList, FareFamiliesConst, false);
    }
    else {
        EnableAllItems(searchTypeRadioButtonList);
    }
}

function InitializeIncludeLccRBLEnability(includeLccRadioButtonList, searchTypeRadioButtonList) {
    var searchTypeRBLSelectedValue = GetSelectedValueFromRBL(searchTypeRadioButtonList);
    SetIncludeLccVisibility(includeLccRadioButtonList, searchTypeRBLSelectedValue);
}

function SetIncludeLccVisibility(includeLccRadioButtonList, searchTypeRBLSelectedValue) {
    var isPoweredAvailabilitySelected = searchTypeRBLSelectedValue == PoweredAvailabilityConst;
    SetVisibility(includeLccRadioButtonList, IncludeLccYesConst, isPoweredAvailabilitySelected);
    SetVisibility(includeLccRadioButtonList, IncludeLccNoConst, isPoweredAvailabilitySelected);
}

function SetCabinClassSelectorVisibility(searchTypeRadioButtonListName) {
    var _isFareFamilySearchSelected = GetSelectedValueFromRBL(searchTypeRadioButtonListName) == FareFamiliesConst;
    Common.Componets.Helpers.MiniMaskHelper.SetCabinClassSelectorVisibility(
        {
            cabinClassDivId: "cabinClass",
            isFareFamilySearchSelected: _isFareFamilySearchSelected
        });
}

function GetSelectedValueFromRBL(radioButtonList) {
    var rbl = document.getElementsByName(radioButtonList);
    for (var item = 0; item < rbl.length; item++) {
        if (rbl[item].checked) {
            return rbl[item].value;
        }
    }
}

function GetElementFromRBL(rbl, value) {
    for (var item = 0; item < rbl.length; item++) {
        if (rbl[item].value == value) {
            return rbl[item];
        }
    }
}

function SetVisibility(radioButtonList, value, visibility) {
    var rbl = document.getElementsByName(radioButtonList);
    if (rbl != null) {
        var element = GetElementFromRBL(rbl, value);
        if (element != undefined) {
            element.disabled = !visibility;
            element.parentNode.disabled = false;
        }
    }
}

function EnableAllItems(radioButtonList) {
    var rbl = document.getElementsByName(radioButtonList);
    if (rbl != null) {
        for (var item = 0; item < rbl.length; item++) {
            rbl[item].disabled = false;
            rbl[item].parentNode.disabled = false;
        }
    }
}

$(document).ready(function() {
    $('.globusIcon').hover(
        function() {
            $(this).next('.globusIcon_text').stop(true, true).fadeIn('fast');
        },
        function() {
            $(this).next('.globusIcon_text').stop(true, true).fadeOut('fast');
        }
    );
});
