﻿var cbNodeArray = new Array();
var cbContainerId = "";

function cbOnCheckBoxClick() 
{
	var list = "";

	for(var index=0; index < cbNodeArray.length; index++)
	{
		var controlId = cbNodeArray[index];
		try 
		{
			var isIE = (navigator.userAgent.indexOf("MSIE")>-1) ? true : false;
			var isOpera = (navigator.userAgent.indexOf("Opera")>-1) ? true : false;

			var tableBody;
			if (isIE || isOpera)
				tableBody = document.getElementById(cbContainerId + '_cb' + controlId).childNodes[0]; 
			else
				tableBody = document.getElementById(cbContainerId + '_cb' + controlId).childNodes[1]; 

			for (var i=0;i<tableBody.childNodes.length; i++)
				for (var c=0;c<tableBody.childNodes[i].childNodes.length; c++)
					try
					{
						if (tableBody.childNodes[i].childNodes[c].childNodes[0].checked)
						{
							var checkboxValueId = tableBody.childNodes[i].childNodes[c].childNodes[0].id + "_val";
							list = list + document.getElementById(checkboxValueId).value + ",";
						}
					} catch (e) {}
		}
		catch(e) {}
	}

	if (list.length > 0) list = list.substr(0, list.length-1);	

	try
	{
		OnCategoryCheckBoxChange(list);
	}
	catch(e) {}
	
}

function cbCheckAllOn(containerId, controlId)
{
	var isIE = (navigator.userAgent.indexOf("MSIE")>-1) ? true : false;
	var isOpera = (navigator.userAgent.indexOf("Opera")>-1) ? true : false;
	
	var tableBody;
	if (isIE || isOpera)
		tableBody = document.getElementById(cbContainerId + '_cb' + controlId).childNodes[0]; 
	else
		tableBody = document.getElementById(cbContainerId + '_cb' + controlId).childNodes[1]; 

	for (var i=0;i<tableBody.childNodes.length; i++)
		for (var c=0;c<tableBody.childNodes[i].childNodes.length; c++)
			try 
			{
				tableBody.childNodes[i].childNodes[c].childNodes[0].checked = true;
			}
			catch (e) {}
			
	cbOnCheckBoxClick();
}

function cbCheckAllOff(containerId, controlId)
{
	var isIE = (navigator.userAgent.indexOf("MSIE")>-1) ? true : false;
	var isOpera = (navigator.userAgent.indexOf("Opera")>-1) ? true : false;
	
	var tableBody;
	if (isIE || isOpera)
		tableBody = document.getElementById(cbContainerId + '_cb' + controlId).childNodes[0]; 
	else
		tableBody = document.getElementById(cbContainerId + '_cb' + controlId).childNodes[1]; 

	for (var i=0;i<tableBody.childNodes.length; i++)
		for (var c=0;c<tableBody.childNodes[i].childNodes.length; c++)
			try 
			{
				tableBody.childNodes[i].childNodes[c].childNodes[0].checked = false;
			}
			catch (e) {}

	cbOnCheckBoxClick();
}

function cbShow(containerId, controlId)
{
	var header1 = document.getElementById(containerId + '_titlea' + controlId); 
	var header2 = document.getElementById(containerId + '_titleb' + controlId); 
	var div = document.getElementById(containerId + '_div' + controlId); 
	var divState = document.getElementById(containerId + '_divstate' + controlId); 

	header1.style.display = 'none';
	header2.style.display = 'block';
	div.style.display = 'block';
	divState.value = '1';
}

function cbHide(containerId, controlId)
{
	var header1 = document.getElementById(containerId + '_titlea' + controlId); 
	var header2 = document.getElementById(containerId + '_titleb' + controlId); 
	var div = document.getElementById(containerId + '_div' + controlId); 
	var divState = document.getElementById(containerId + '_divstate' + controlId); 

	header1.style.display = 'block';
	header2.style.display = 'none';
	div.style.display = 'none';
	divState.value = '0';
}

function cbRestoreNodeState()
{
	for(var index=0; index < cbNodeArray.length; index++)
	{
		var controlId = cbNodeArray[index];
			
		//Restores the control tree state
		var divState = document.getElementById(cbContainerId + '_divstate' + controlId); 
		if (divState.value=='1')
			cbShow(cbContainerId, controlId);
		else
			cbHide(cbContainerId, controlId);

		//Rigs our client side events
		try 
		{
			var isIE = (navigator.userAgent.indexOf("MSIE")>-1) ? true : false;
			var isOpera = (navigator.userAgent.indexOf("Opera")>-1) ? true : false;
			
			var tableBody;
			if (isIE || isOpera)
				tableBody = document.getElementById(cbContainerId + '_cb' + controlId).childNodes[0]; 
			else
				tableBody = document.getElementById(cbContainerId + '_cb' + controlId).childNodes[1]; 
			
			for (var i=0;i<tableBody.childNodes.length; i++)
				for (var c=0;c<tableBody.childNodes[i].childNodes.length; c++)
				{
					try 
					{
						var control = tableBody.childNodes[i].childNodes[c].childNodes[0];
						XBrowserAddHandler(control, "click", cbOnCheckBoxClick);
					} 
					catch(e) {}
				}

		} 
		catch (e) {}
	}
}

function XBrowserAddHandler(target,eventName,handlerName)
{
	if ( target.addEventListener )
		target.addEventListener(eventName, handlerName, false);
	else if ( target.attachEvent )
		target.attachEvent("on" + eventName, handlerName);
	else
		target["on" + eventName] = handlerName;
}
