//MENU OBJECTS////////////////////////////////////////////////////////////////////////////////////////
//Menu Constructors
function Menu_Properties(HTML_Element, Class_Name, Element_ID, Content_HTML_Element, Content_Class_Name, Content_Element_ID, BaseBackground, HighlightBackground, BaseFont, HighlightFont)
	{this.HTML=HTML_Element;
	this.Class=Class_Name;
	this.ID=Element_ID;
	this.Content_HTML=Content_HTML_Element;
	this.Content_Class=Content_Class_Name;
	this.Content_ID=Content_Element_ID;
	this.BaseBackground=BaseBackground;
	this.HighlightBackground=HighlightBackground;
	this.BaseFont=BaseFont;
	this.HighlightFont=HighlightFont;}

//MENU COMPONENT ACTION OBJECTS////////////////////////////////////////////////////////////////////////////////////////
//SHOW/HIDE ELEMENT
function ShowElement(ElementID)
	{document.getElementById(ElementID).style.display='block';}

function HideElement(ElementID)
	{document.getElementById(ElementID).style.display='none';}

function HideOnLoad(HTML_Element, ClassName)
	{var arrElements=document.getElementsByTagName(HTML_Element);
	for(i=0; i < arrElements.length; i ++)
	{if (arrElements[i].className==ClassName)
	{arrElements[i].style.display='none';}}}

function ShowOnLoad(HTML_Element, ClassName)
	{var arrElements=document.getElementsByTagName(HTML_Element);
	for(i=0; i < arrElements.length; i ++)
	{if (arrElements[i].className==ClassName)
	{arrElements[i].style.display='block';}}}

//HIGHLIGHTER
function ClearStyle(HTML_Element, ClassName, BaseColor, BaseFont)
	{var arrElements=document.getElementsByTagName(HTML_Element);
	for(i=0; i < arrElements.length; i ++)
	{if (arrElements[i].className==ClassName)
	{arrElements[i].style.background=BaseColor;
	arrElements[i].style.color=BaseFont;}}}

function Highlight(HTML_Element, ClassName, ElementID, BaseColor, Highlight, BaseFont, HighlightFont)
	{ClearStyle(HTML_Element, ClassName, BaseColor, BaseFont);
	document.getElementById(ElementID).style.background=Highlight;
	document.getElementById(ElementID).style.color=HighlightFont;}

//SUB NAVIGATION MENU OBJECT////////////////////////////////////////////////////////////////////////////////////////
function NavigationMenu(ExpandID, RetractID, SubMenuID, PropertyOverride)
	{document.write('<div title="Click to Expand Navigation" class="ExpandIcon" id="'+ExpandID+'" onclick="ShowOnLoad(\'div\', \'ExpandIcon\'); HideOnLoad(\'div\', \'RetractIcon\'); HideOnLoad(\'div\', \'CollapsibleMenu\'); SetCollapsibleMenu(\''+ExpandID+'\', \''+SubMenuID+'\', PropertyOverride); ShowElement(\''+RetractID+'\');">&nbsp;</div>');
	document.write('<div title="Click to Contract Navigation" class="RetractIcon" id="'+RetractID+'" onclick="HideOnLoad(\'div\', \'CollapsibleMenu\'); ShowOnLoad(\'div\', \'ExpandIcon\'); HideOnLoad(\'div\', \'RetractIcon\'); ShowElement(\''+ExpandID+'\')">&nbsp;</div>');}

function SubNavigationMenu(ExpandID, RetractID, SubMenuID)
	{ShowElement(SubMenuID);
	ShowElement(RetractID);
	HideElement(ExpandID);}

//COLLAPSIBLE MENU OBJECT////////////////////////////////////////////////////////////////////////////////////////

function ExpandContractAll(Bar_HTML, Bar_Class, Content_HTML, Content_Class)
	{document.write('<div class="' + Bar_Class + '"onclick="HideOnLoad(\'' + Bar_HTML + '\', \'' + Bar_Class + '\');ShowOnLoad(\'' + Content_HTML + '\', \'' + Content_Class + '\');"><div class="HideShowBar">Expand all</div></div>');
	document.write('<div class="' + Content_Class + '" onclick="HideOnLoad(\'' + Content_HTML + '\', \'' + Content_Class + '\'); ShowOnLoad(\'' + Bar_HTML + '\', \'' + Bar_Class + '\');"><div class="HideShowBar">Contract all</div></div>');}

function SetCollapsibleMenu(MenuBar_ID, Content_Element_ID, PropertyOverride)
{
	var SetCollapsibleMenuInstance=new Menu_Properties();
	SetCollapsibleMenuInstance.ID=MenuBar_ID;
	SetCollapsibleMenuInstance.Content_ID=Content_Element_ID;

if(typeof PropertyOverride!=='undefined')
	{SetCollapsibleMenuInstance.HTML=PropertyOverride['HTML'];
	SetCollapsibleMenuInstance.Class=PropertyOverride['Class'];
	SetCollapsibleMenuInstance.Content_HTML=PropertyOverride['Content_HTML'];
	SetCollapsibleMenuInstance.Content_Class=PropertyOverride['Content_Class'];}
else
	{SetCollapsibleMenuInstance.HTML='div';
	SetCollapsibleMenuInstance.Class='MenuBarDefault';
	SetCollapsibleMenuInstance.Content_HTML='div';
	SetCollapsibleMenuInstance.Content_Class='CollapsibleContent';}

HideElement(
	SetCollapsibleMenuInstance.ID);

ShowElement(
	SetCollapsibleMenuInstance.Content_ID, 
	SetCollapsibleMenuInstance.Content_HTML, 
	SetCollapsibleMenuInstance.Content_Class);
}

//TAB MENU OBJECT////////////////////////////////////////////////////////////////////////////////////////
function SetTabMenu(Tab_Element_ID, TabContent_Element_ID, PropertyOverride)
{
	var SetTabMenuInstance=new Menu_Properties();
	SetTabMenuInstance.ID=Tab_Element_ID;
	SetTabMenuInstance.Content_ID=TabContent_Element_ID;
	SetTabMenuInstance.HTML='li';
	SetTabMenuInstance.Class='Tab';
	SetTabMenuInstance.Content_HTML='div';
	SetTabMenuInstance.Content_Class='TabContent';

if(typeof PropertyOverride!=='undefined')
{//Override Default Tab Configuration
	SetTabMenuInstance.BaseBackground=PropertyOverride['BaseBackground'];
	SetTabMenuInstance.HighlightBackground=PropertyOverride['HighlightBackground'];
	SetTabMenuInstance.BaseFont=PropertyOverride['BaseFont'];
	SetTabMenuInstance.HighlightFont=PropertyOverride['HighlightFont'];}
else
{//Default Tab Configuration
	SetTabMenuInstance.BaseBackground='url(\'http://www.vita.virginia.gov/uploadedImages/_Template/TabBase(1).png\') no-repeat';
	SetTabMenuInstance.HighlightBackground='url(\'http://www.vita.virginia.gov/uploadedImages/_Template/TabHighlight.png\') no-repeat';
	SetTabMenuInstance.BaseFont='#fff';
	SetTabMenuInstance.HighlightFont='#0f2c92';}

//Tab Menu Actions
HideOnLoad(
	SetTabMenuInstance.Content_HTML, 
	SetTabMenuInstance.Content_Class);

Highlight(
	SetTabMenuInstance.HTML, 
	SetTabMenuInstance.Class, 
	SetTabMenuInstance.ID, 
	SetTabMenuInstance.BaseBackground, 
	SetTabMenuInstance.HighlightBackground, 
	SetTabMenuInstance.BaseFont, 
	SetTabMenuInstance.HighlightFont);

HideElement(
	SetTabMenuInstance.Content_ID);

ShowElement(
	SetTabMenuInstance.Content_ID, 
	SetTabMenuInstance.Content_HTML, 
	SetTabMenuInstance.Content_Class);}

//SELECTABLE REPORT OBJECT////////////////////////////////////////////////////////////////////////////////////////
function SetSelectableReport(ReportIcon_ID, ReportInfo_ID, PropertyOverride)
{
	var SetSelectableReportInstance=new Menu_Properties();
	SetSelectableReportInstance.ID=ReportIcon_ID;
	SetSelectableReportInstance.Content_ID=ReportInfo_ID;
	SetSelectableReportInstance.HTML='div';
	SetSelectableReportInstance.Class='SelectableDiv';
	SetSelectableReportInstance.Content_HTML='div';
	SetSelectableReportInstance.Content_Class='ShowInfo';

if(typeof PropertyOverride!=='undefined')
{//Override Default Selectable Report Configuration
	SetSelectableReportInstance.BaseBackground=PropertyOverride['BaseBackground'];
	SetSelectableReportInstance.HighlightBackground=PropertyOverride['HighlightBackground'];
	SetSelectableReportInstance.BaseFont=PropertyOverride['BaseFont'];
	SetSelectableReportInstance.HighlightFont=PropertyOverride['HighlightFont'];}
else
{//Default Selectable Report Configuration
	SetSelectableReportInstance.BaseBackground='#fff';
	SetSelectableReportInstance.HighlightBackground='#0099FF';
	SetSelectableReportInstance.BaseFont='#000';
	SetSelectableReportInstance.HighlightFont='#fff';}

//Selectable Report Actions
HideOnLoad(
	SetSelectableReportInstance.Content_HTML, 
	SetSelectableReportInstance.Content_Class);

Highlight(
	SetSelectableReportInstance.HTML, 
	SetSelectableReportInstance.Class, 
	SetSelectableReportInstance.ID, 
	SetSelectableReportInstance.BaseBackground, 
	SetSelectableReportInstance.HighlightBackground, 
	SetSelectableReportInstance.BaseFont, 
	SetSelectableReportInstance.HighlightFont);

HideElement(
	SetSelectableReportInstance.Content_ID);

ShowElement(
	SetSelectableReportInstance.Content_ID, 
	SetSelectableReportInstance.Content_HTML, 
	SetSelectableReportInstance.Content_Class);
}

//Preloader
function Preload(PreloadLayer)
	{document.getElementById(PreloadLayer).style.height=Full_Y_Resolution() + 'px';
	if(document.getElementById){document.getElementById(PreloadLayer).style.display='none';}// DOM3 = IE5, NS6
	else{if(document.layers){document.getElementById(PreloadLayer).style.display='none';}// Netscape 4
	else{document.getElementById(PreloadLayer).style.display='none';}}}// IE 4

//Compensate for client browser height resolution
function ResolutionCompensation(ElementID, MinimumMinHeight, MinusFooterHeight){
	var WindowHeight=window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;
		if(typeof MinimumMinHeight=='undefined'){MinimumMinHeight=200;}
	//Set this value to pull the content areas up above the footer
		if(typeof MinusFooterHeight=='undefined'){MinusFooterHeight=204;}
		if(WindowHeight>=MinimumMinHeight)
			{WindowHeight=WindowHeight-MinusFooterHeight+'px';
			document.getElementById(ElementID).style.height=WindowHeight;}}

//GET FULL HEIGHT OF PAGE INCLUDING SCROLL BARS
function Full_Y_Resolution()
	{if(window.innerHeight && window.scrollMaxY)
		{yWithScroll = window.innerHeight + window.scrollMaxY;}// Firefox
	else if(document.body.scrollHeight > document.body.offsetHeight)
		{yWithScroll = document.body.scrollHeight;}// all but Explorer Mac
	else
		{yWithScroll = document.body.offsetHeight;}// works in Explorer 6 Strict, Mozilla (not FF) and Safari
	return yWithScroll;}

//GET FULL WIDTH OF PAGE INCLUDING SCROLL BARS
function Full_X_Resolution()
	{if(window.innerHeight && window.scrollMaxY)
		{xWithScroll = window.innerWidth + window.scrollMaxX;}// Firefox
	else if(document.body.scrollHeight > document.body.offsetHeight)
		{xWithScroll = document.body.scrollWidth;}// all but Explorer Mac
	else
		{xWithScroll = document.body.offsetWidth;}// works in Explorer 6 Strict, Mozilla (not FF) and Safari
	return xWithScroll;}

//-->