

/* **********************************************
* Form Element Functions
********************************************** */

/*
* Sets the value of a selector
*/
function setSelector(selectorID, targetValue)
{
	selector = document.getElementById(selectorID);

	if(!selector)
	{
		alert('setSelector could not find ' + selectorID);
		return false;
	}

	for(var i = 0; i < selector.length; ++i)
	{
		if (selector[i].value == targetValue)
		{
			selector.selectedIndex = i;
			return true;
		}
	}
	return false;
}

/*
* Check if field is checked
*/
function isFieldChecked(field, value)
{
	var found = false;
	for (var i = 0; i < document.forms[0].elements.length; i++)
	{
		q = document.forms[0].elements[i];		
		if(q.name == field && q.value == value && q.checked == true)
		{
			found = true;
		}
	}
	//alert(found);
	return found;
}

/*
* "Select All" or "Deselect All" from a checkbox list  
*/
function checkAll(theForm, cName, allNo_stat) 
{
	var n=theForm.elements.length;
	for (var i=0;i<n;i++)
	{
		if (theForm.elements[i].className.indexOf(cName) !=-1)
		{
			if (allNo_stat.checked) 
			{
				theForm.elements[i].checked = true;
			} 
			else 
			{
				theForm.elements[i].checked = false;
			}
		}
	}
}


/* **********************************************
* CSS Functions
********************************************** */

/* 
* Alter CSS Style of an element
*/
function setCSSPropertyByID(elementID, property, value) 
{
	obj = document.getElementById(elementID);
	obj.style[property] = value;
}

/* 
* Alter CSS Style of an class
*/
function setCSSPropertyByClass(className, property, value) 
{

	 var cssRules;
	 if (document.all) 
	 {
	 	cssRules = 'rules';
	 }
	 else if (document.getElementById) 
	 {
	 	cssRules = 'cssRules';
	 }
	 for (var i = 0; i < document.styleSheets.length; i++)
	 {
	 	for (var e = 0; e < document.styleSheets[i][cssRules].length; e++) 
	 	{
	   	iClassName = new RegExp(className, "i");
	   	if (document.styleSheets[i][cssRules][e].selectorText.match(iClassName)) 
	  	{
	   		document.styleSheets[i][cssRules][e].style[propery] = value;
	  	}
	  }
	}	
}

/*
* Hide or Show things marked with a specific CSS Class
*/
function toggleClass(className)
{
	if(isClassElementValue(className, "display", "block"))
	{
		setCSSPropertyByID(className, "display", "none");
	}
	else
	{
		setCSSPropertyByID(className, "display", "block");
	}
}

function isClassElementValue(className, element, value)
{
	var found = false;
	var cssRules;
	if (document.all) 
	{
		cssRules = 'rules';
	}
	else if (document.getElementById) 
	{
	 	cssRules = 'cssRules';
	}
	for (var i = 0; i < document.styleSheets.length; i++)
	{
		for (var e = 0; e < document.styleSheets[i][cssRules].length; e++) 
	 	{
	   		iClassName = new RegExp(className, "i");
	   		if (document.styleSheets[i][cssRules][e].selectorText.match(iClassName) && document.styleSheets[i][cssRules][e].style[element] == value) 
	   		{
	    		found = true;
	   		}
	  	}
	}
	return found;
}

/* **********************************************
* Other Functions
********************************************** */

/*
	Expandable Listmenu Script
*/

function initMenus() {
	if (!document.getElementsByTagName) return;
	
	var aMenus = document.getElementsByTagName("LI");
	for (var i = 0; i < aMenus.length; i++) {
		var mclass = aMenus[i].className;
		if (mclass.indexOf("treenode") > -1) {
			var submenu = aMenus[i].childNodes;
			for (var j = 0; j < submenu.length; j++) {
				if (submenu[j].tagName == "A") {
					
					submenu[j].onclick = function() {
						var node = this.nextSibling;
											
						while (1) {
							if (node != null) {
								if (node.tagName == "UL") {
									var d = (node.style.display == "none")
									node.style.display = (d) ? "block" : "none";
									this.className = (d) ? "treeopen" : "treeclosed";
									return false;
								}
								node = node.nextSibling;
							} else {
								return false;
							}
						}
						return false;
					}
					
					submenu[j].className = (mclass.indexOf("open") > -1) ? "treeopen" : "treeclosed";
				}
				
				if (submenu[j].tagName == "UL")
					submenu[j].style.display = (mclass.indexOf("open") > -1) ? "block" : "none";
			}
		}
	}
}

//window.onload = initMenus;
