// formTools.js contains misc utilities for managing form elements, required fields, etc.
// it does not contain validation functions- look to form_validation.js for those.

// !! requires csspBaseTools.js

// THIS F needs to be optimized and cleaned up, it's twice as big as it should be..
function toggleRequired(category, mode)
	{
	if (document.images && isIE)
		{
		// the category could be more than one required flag- so treat it as an array
		var flagArray = eval("self.document." + category);

		// loop thru the array of images and turn on or off based on mode requested
		for (var i = 0; i < flagArray.length; i++)
			{

			if (mode == "on" && flagArray[i].src)
				{
				flagArray[i].src = requiredFlagOn.src;
				}
			else
				{
				flagArray[i].src = requiredFlagOff.src;
				}

			}
		}
	else if (document.images && isNav)
		{
		// the category could be more than one required flag- so treat it as an array
		var pageImagesArray = document.images;

		// loop thru the array of images and turn on or off based on mode requested
		for (var i = 0; i < pageImagesArray.length; i++)
			{

			if (mode == "on" && pageImagesArray[i].name == category && pageImagesArray[i].src)
				{
				pageImagesArray[i].src = requiredFlagOn.src;
				}
			else if (mode == "off" && pageImagesArray[i].name == category && pageImagesArray[i].src)
				{
				pageImagesArray[i].src = requiredFlagOff.src;
				}

			}
		}
	}



// written by mParnham 12/27/2000
// returns the selected value of a select object !!!!!!!!!!!!! depricated to getSelectValue !!!! use that instead!
function selectionValue(theSelector)
	{
	return theSelector[theSelector.selectedIndex].value;
	}




function getSelectValue(theSelectObject)
	{
	return theSelectObject[theSelectObject.selectedIndex].value;
	}


function getSelectValueAt(theSelectObject, index)
	{
	return theSelectObject[index].value;
	}

function setSelectValueAt(theSelectObject, index, value)
	{
	theSelectObject[index].value = value;
	}

function getSelectText(theSelectObject)
	{
	return theSelectObject[theSelectObject.selectedIndex].text;
	}



function getSelectTextAt(theSelectObject, index)
	{
	return theSelectObject[index].text;
	}


function makeSelectFromValue(theSelectObj, theValue)
	{
	for (var i = 0; i < theSelectObj.length; i++)
		{
		if (theSelectObj[i].value == theValue)
			{
			theSelectObj.selectedIndex = i;
			return;
			}
		}
	}

function makeSelectFromIndex(theSelectObj, theIndex)
	{
	theSelectObj.selectedIndex = theIndex
	}


function clearSelect(theSelectObj)
	{
	for (var i = 0; i < theSelectObj.length; i++)
		{
		theSelectObj[i].checked = false;
		}
	}

function wipeSelect(theSelectObj)
	{

	for (var i = 0; i < theSelectObj.length; i++)
		{
		theSelectObj[i].text = "";
		theSelectObj[i].value = "";

		}
	}

function isARadioChecked(theRadioObj)
	{
	// does this radio group have more than one?
	if(theRadioObj.length)
		{
		for (var i = 0; i < theRadioObj.length; i++)
			{
			if(theRadioObj[i].checked)
				{
				return true;
				}
			}
		return false;
		}
	else
		{
		if(theRadioObj.checked)
			{
			return true;
			}
		return false;
		}

	}

// same function as above, just dif name
function isRadioChecked(theRadioObj)
	{
	// does this radio group have more than one?
	if(theRadioObj.length)
		{
		for (var i = 0; i < theRadioObj.length; i++)
			{
			if(theRadioObj[i].checked)
				{
				return true;
				}
			}
		return false;
		}
	else
		{
		if(theRadioObj.checked)
			{
			return true;
			}
		return false;
		}

	}


function getRadioValue(theRadioObj)
	{
	for (var i = 0; i < theRadioObj.length; i++)
		{
		if(theRadioObj[i].checked)
			{
			return theRadioObj[i].value;
			}
		}
	return false;
	}

function checkRadioFromIndex(theRadioObj, theIndex)
	{
	theRadioObj[theIndex].checked = true;
	}


function checkRadioFromValue(theRadioObj, theValue)
	{
	for (var i = 0; i < theRadioObj.length; i++)
		{
		if (theRadioObj[i].value == theValue)
			{
			theRadioObj[i].checked = true;
			return;
			}
		}
	}


function getNumberOfCheckedBoxes(theCheckBoxObj)
	{
	var numberChecked = 0;
	for (var i = 0; i < theCheckBoxObj.length; i++)
		{
		if (theCheckBoxObj[i].checked)
			{
			numberChecked++;
			}
		}
	return numberChecked;
	}



function isAllCheckBoxesChecked(theCheckBoxObj)
	{
	for (var i = 0; i < theCheckBoxObj.length; i++)
		{
		if (!theCheckBoxObj[i].checked)
			{
			return false;
			}
		}
	return true;
	}


function isSelectSingle(theFormObj)
	{
	if (theFormObj.type == "select-one")
		{
		return true;
		}
	else
		{
		return false;
		}
	}



function focusOnField(theFormObj)
	{
	if (theFormObj && theFormObj.focus)
		{
		theFormObj.focus();
		}
	}


function clearRadio(theRadioObj)
	{
	for (var i = 0; i < theRadioObj.length; i++)
		{
		theRadioObj[i].checked = false;
		}
	}

function clearCheckboxes(theCheckboxObj)
	{
	for (var i = 0; i < theCheckboxObj.length; i++)
		{
		theCheckboxObj[i].checked = false;
		}
	}
