

/* **********************************************
* 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
********************************************** */
// toggle visibility
function toggle(id1)
{
	if (document.getElementById)
	{
		item1 = document.getElementById(id1);
		//item2 = document.getElementById(id2);

		// Visible
		if (item1.style.display == "none")
		{
			item1.style.display = "";
			//item2.style.display ="none";
		}
		else
		{
			// Hide
			item1.style.display = "none";
			//item2.style.display ="";
		}
	}
}
