//Function to select all the entries in a given list from a given form
function changeElementSelectAll(passedName, passedForm) {
   var elementID, getForm;
   var numberForms = document.forms.length;
   var formIndex;
   function getWorkingForm(passedFormIndex) {return eval("document.forms[" + passedFormIndex + "]");};
   function getWorkingElement(passedElementIndex) {return eval("getForm.elements[" + passedElementIndex + "]");};
   elementID = eval("document." + passedForm + "." + passedName); 
   this.elementID = elementID;   

   for (formIndex = 0; formIndex < numberForms; formIndex++) {
      getForm = getWorkingForm(formIndex);
      this.getForm = getForm;
      for (i=0; i <= getForm.length - 1; i++) {
         getElement = getWorkingElement(i);
         this.getElement = getElement;
         if ((getElement.type == "checkbox")) {
            getElement.checked="true";
         }
      }
     }
     return;
}

// This function is used to change the background color of a table row associated with the selection or either a radio button or checkbox
//The function is called from an onClick event in the input tag for the radio button or checkbox
function changeElementSelect(passedID, passedName, passedForm) {
   var elementID, getForm;
   var numberForms = document.forms.length;
   var formIndex;
   function getWorkingForm(passedFormIndex) {return eval("document.forms[" + passedFormIndex + "]");};
   function getWorkingElement(passedElementIndex) {return eval("getForm.elements[" + passedElementIndex + "]");};
   elementID = eval("document." + passedForm + "." + passedName); 
   this.elementID = elementID;   

   if (document.getElementById) {
      for (formIndex = 0; formIndex < numberForms; formIndex++) {
         getForm = getWorkingForm(formIndex);
         this.getForm = getForm;
         for (i=0; i <= getForm.length - 1; i++) {
            getElement = getWorkingElement(i);
            this.getElement = getElement;
            if ((getElement.id == passedID) & (getElement.type == "checkbox")) {
               if (getElement.checked & document.getElementById(passedID).type != "checkbox") {
                   return document.getElementById(getElement.id).className = "tbliListItemON";
               } else if (getElement.checked == false & document.getElementById(passedID).type != "checkbox") {
                   return document.getElementById(getElement.id).className = "tbliListItemOFF";
               } else {
                   return;
               }
            } else if ((getElement.name == passedName) & (getElement.id == passedID) & (getElement.type == "radio")) {
               for (i = 0; i <= elementID.length-1; i++) {
               document.getElementById(elementID[i].id).className = "tbliListItemOFF";
               }
               if (document.getElementById(passedID).type != "radio"){
                  return document.getElementById(passedID).className = "tbliListItemON";
               } else {
                  return;
               }
            }
         }
      }
   } else {
       // Do not display for non-DOM browsers
       return;
   }
}

function checkBoxToList(checkBoxFormName, listFormName, selectName)
{
    //alert("Moving check boxes to list control");
    
   	var toForm = document.forms[checkBoxFormName];
   	var fromForm = document.forms[listFormName];
    var selectControl = fromForm[selectName];
	
	var index;
	for (index = 0; index < toForm.elements.length; index++)
	{
		var element = toForm.elements[index];
		
		if (element != null && element.type == "checkbox" && element.checked == true)
		{
		    if (!isValueInList(selectControl, element.name))
		    {
            	var length = selectControl.options.length;
								
				selectControl.options.length++;
	            selectControl.options[length].text = element.value;
	            selectControl.options[length].value = element.name;
	        }
	    }
	}
}

function isValueInList(selectControl, value)
{
    var length = selectControl.options.length;
	
	var index;
	for (index = 0; index < length; index++)
	{
	    if (selectControl.options[index].value == value)
	        return true;
	}
    return false;
}

function removeSelectedListElements(listFormName, listName)
{
	var	form = document.forms[listFormName];
	var	selectControl = form[listName];
	var	length = selectControl.options.length;
	var	index;

	for (index = length - 1; index >= 0; index--)
	{
		if ((selectControl.options[index] != null) && (selectControl.options[index].selected == true))
		{
			selectControl.options[index] = null;			
		}
	}
}

function submitForm(formName)
{
    selectMultiListBoxes(document.forms[formName]);
    document.forms[formName].submit();
}

// This function checks to see what key you pressed. If it was enter, then this submits the form
// containing the element in focus.
function submitWithEnter()
{

	// 13 is the keycode for "enter"
	if (window.event.keyCode == 13)
	{
		submitForm(window.event.srcElement.form.name);
	}
}
 
function selectMultiListBoxes(form)
{
	for (index = 0; index < form.elements.length; index++)
	{
		var element = form.elements[index];

		if (element != null && element.type == "select-multiple" && "selectedResults" == element.name )
		{
		    for (selectIndex = 0; selectIndex < element.length; selectIndex++)
		    {
	            element.options[selectIndex].selected = true;
	        }
	    }
	}
}

function selectMultiListBoxesByElement( form, elementName )
{
    var element = form.elements[ elementName ];
    if (element != null && element.type == 'select-multiple' )
	{ 
	    for (selectIndex = 0; selectIndex < element.length; selectIndex++)
	    {
            element.options[selectIndex].selected = true;
        }
    }
}

function selectCSS() {
	if (navigator.appName.indexOf('Netscape') > -1) {
		document.write('<LINK HREF="css/nn_style.css" REL="styleSheet" TYPE="text/css">');
	} else {
		document.write('<LINK HREF="css/styInternetExplorer5/general.css" REL="styleSheet" TYPE="text/css">');
	}
}

// This function is called after the user selects preferences. 
// It closes the preferences window and reloads the main page.

function prefsDone() {	
	//alert(opener.location);
	opener.history.go(0);

	window.close();	
}

// Open a new browser window using the /popup.do action. Format the window according to the supplied arguments.

function popupWindow(JSP, name, width, height)
{
	openWindow("popup.do?popupNav=" + JSP, name, width, height);
}

// Open a new browser window with any target URL. Format the window according to the supplied arguments.

function openWindow(URL, name, width, height)
{
	window.open(URL, name, "width=" + width + ", height=" + height + ",scrollbars=yes,resizable=1,top=10,left=10");
}

// Open KM window.
function openKMWindow(URL, name)
{
	window.open(URL, name);
}


// Functions used by datepicker 

function datePickerHideDaySelection(ID)
{
	return document.getElementById(ID).className = "calDatePickerOFF";
}

function datePickerShowDaySelection(ID)
{
	return document.getElementById(ID).className = "calDatePickerSelected";
}
