﻿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);
		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;
	}
}