﻿function ACCTabPage(strID, strHeaderID, strContentID)
{
	this.strID = strID;
	this.strHeaderID = strHeaderID;
	this.strContentID = strContentID;
}


function ACCTabControl (btnChangeTabID, arrTabPages)
{
	this.btnChangeTabID = btnChangeTabID;
	this.arrTabPages = (arrTabPages != null ? arrTabPages : []);

	var me = this;

	var GetLabels = function(strID)
	{
		var myLabels = new Array();
		if(strID != null && strID.length > 0)
		{

			var allLabels = document.getElementsByTagName("label");
			for(var i=0; i<allLabels.length; i++)
			{
				if(allLabels[i].getAttribute("for") == strID)
					myLabels[myLabels.length] = allLabels[i];
				else if(allLabels[i].getAttribute("htmlFor") == strID)
					myLabels[myLabels.length] = allLabels[i];
			}
		}
		return myLabels;
	}
	
	this.SelectTab = function(strID)
	{
		for(var i=0; i<me.arrTabPages.length; i++)
		{
			var tabPage = me.arrTabPages[i];
			var input = GetBlock(tabPage.strHeaderID);
			var content = GetBlock(tabPage.strContentID);
			var labels = GetLabels(tabPage.strHeaderID);

			if(tabPage.strID == strID)
			{
				//input.className = "TAB_Selected";
				content.style.display = "";				
				ReplaceCSSClass(input, "TAB_UnSelected", "TAB_Selected");
				for(var j=0; j<labels.length; j++)
				{
					ReplaceCSSClass(labels[j], "TAB_UnSelected", "TAB_Selected");
				}
			}
			else
			{
				//input.className = "TAB_Unselected";
				content.style.display = "none";
				ReplaceCSSClass(input, "TAB_Selected", "TAB_UnSelected");
				for(var j=0; j<labels.length; j++)
				{
					ReplaceCSSClass(labels[j], "TAB_Selected", "TAB_UnSelected");
				}
			}
		}
	}

	this.SetOnClick = function(input, strID)
	{
		AddEvent(input, "click", function(pEvent) { me.SelectTab(strID); });				
	}

	this.Init = function()
	{
		var btn = GetBlock(me.btnChangeTabID);
		RemoveCssClassPostfix(btn.parentNode, "_noscript")
                // Opera Mini does not handle onclicks. Must use submit.
                if (navigator.appVersion.indexOf("Opera Mini") < 0)
		  btn.parentNode.removeChild(btn);
		for(var i=0; i<me.arrTabPages.length; i++)
		{
			var input = GetBlock(me.arrTabPages[i].strHeaderID);
			if(input != null)
			{
				me.SetOnClick(input, me.arrTabPages[i].strID);
			}
			
			var labels = GetLabels( me.arrTabPages[i].strHeaderID);
			for(var j=0; j<labels.length; j++)
			{
				var divCorner = NewTag("div", labels[j]);
				divCorner.className = "corner_top_left";
				divCorner = NewTag("div", labels[j]);
				divCorner.className = "corner_top_right";
			}
		}
	}
	me.Init();
}