﻿var Header = new Object();
Header.HideAllTitleItemBlocks = function () {
    var titleBlocks = $("div[titleitemblock=true]");
    var len = titleBlocks.length;
    for (var i = 0; i < len; i++) {
        titleBlocks[i].style.display = "none";
    }
    var items = Header.Items;
    for (var i in items) {
        items[i].Visible = false;
    }
    var titleLinks = $("a[titleitemlink=true]");
    len = titleLinks.length;
    for (var i = 0; i < len; i++) {
        var item = $(titleLinks[i]);
        item.removeClass();
        var titleDefaultClass = item.attr("defaultcssclass");
        item.addClass(titleDefaultClass);
    }
    Header.RemoveClickListener();
}

Header.AddClickListener = function () {
    if (document.addEventListener) {
        document.addEventListener('click', Header.HideAllTitleItemBlocks, true);
    }
    else if (document.attachEvent) {
        document.attachEvent('onclick', Header.HideAllTitleItemBlocks);
        window.event.cancelBubble = true;
    }
}

Header.RemoveClickListener = function () {
    if (document.addEventListener) {
        document.removeEventListener('click', Header.HideAllTitleItemBlocks, true);
    }
    else if (document.detachEvent) {
        document.detachEvent('onclick', Header.HideAllTitleItemBlocks);
        if (window.event != null)
            window.event.cancelBubble = false;
    }
}

Header.Items = [];

Header.ShowTitleItemBlock = function (titleItemLink, titleBlockId, titleBlockCssToSet) {
    if (typeof (titleBlockId) != "undefined") {
        if (Header.IsVisible(titleBlockId)) {
            Header.HideAllTitleItemBlocks();
        }
        else {
            var titleBlock = $("div#" + titleBlockId);
            Header.HideAllTitleItemBlocks();
            titleBlock.css("display", "block");
            $(titleItemLink).addClass(titleBlockCssToSet);
            Header.SetVisible(titleBlockId, true);
        }
    }
    else {
        Header.HideAllTitleItemBlocks();
    }
}

Header.HasDefaultCssClass = function (element) {
    var defaultCss = $(element).attr("defaultcssclass");
    if (typeof (defaultCss) != "undefined") {
        return defaultCss == $(element).attr("class");
    }
    return true;
}

Header._initializeVisible = function (titleBlockId) {
    if (typeof (Header.Items[titleBlockId]) == "undefined") {
        Header.Items[titleBlockId] = { Visible: false };
    }
}

Header.IsVisible = function (titleBlockId) {
    var result = false;
    if (typeof (titleBlockId) != "undefined") {
        Header._initializeVisible(titleBlockId);
        result = Header.Items[titleBlockId].Visible;
    }
    return result;
}

Header.SetVisible = function (titleBlockId, visible) {
    if (typeof (titleBlockId) != "undefined") {
        Header._initializeVisible(titleBlockId);
        Header.Items[titleBlockId].Visible = visible;
    }
}
