/*
'Client-side script for handling user entry on forms

' setTextFocus()
'	set focus to first text field
'	<BODY onLoad="setTextFocus()">

' setSelect()
'	set selected index
'	<BODY onLoad="setSelect('FieldName','Value')">

' validateFields()
'	validate mandatory form fields
'	form name="thisForm"
'	fieldnames passed in arrField array
'		arrField = new Array (); 
'		arrField[0] = "txtFirstName";
'		arrField[1] = "txtLastName";
'			if (validateFields(arrField, arrName) == false){
'				thisPage.cancelEvent = true;
'			}
'	fieldNames passed in arrName array
'		fieldNames used in error message
' -- or --
'		return validateFields(arrField, arrName);

*/

function setTextFocus() {
var i=0;
var j=0;
var currForm;
	if (document.forms.length > 0) {
		for (j = 0; j < document.forms.length; j++) {
			currForm = document.forms[j];
			if (currForm.length > 0) {
				for (i = 0; i < currForm.length; i++) {
					if (currForm.elements[i].type == 'text') {
						break;
					}
				}
			}
			break;
		}
		if (i != currForm.length) {
			currForm.elements[i].focus();
		}
	}
}

function replaceString(fullS,oldS,newS) {
// Replaces oldS with newS in the string fullS   
	for (var i=0; i<fullS.length; i++) {
		if (fullS.substring(i,i+oldS.length) == oldS) {
			fullS = fullS.substring(0,i)+newS+fullS.substring(i+oldS.length,fullS.length)
		}
	}
	return fullS;
}

function setSelect(sField, sValue) {
	var currField;
	currField = eval("document.thisForm." + sField);
	for (i = 0; i < currField.options.length; i ++) {
		if (currField.options[i].value == sValue) {
			currField.options.selectedIndex = i;
			break;
		}
	}

}

function setCheckbox(sField, sValue) {
	var currField;
	currField = eval("document.thisForm." + sField);
	if (currField.value == sValue) {
		currField.checked = 1;
	}
}

function validateFields(arrField, arrName) {
	var formField;
	for (i = 0; i < arrField.length; i ++) {
		formField = eval("document.thisForm." + arrField[i]);
		// validate email address format
		if (arrField[i].indexOf("email") != -1 || arrField[i].indexOf("Email") != -1) {
			if (formField.value == "" || formField.value.indexOf("@") == -1 || formField.value.indexOf('..') != -1 || formField.value.indexOf(' ') != -1 || formField.value.indexOf('.') == -1) {
				window.alert("Please enter a valid email address in " + arrName[i] + ".");
				formField.focus();
				return false;
				break;
			}		
		}
		// validate password length
		if (arrField[i].indexOf("password") != -1 || arrField[i].indexOf("Password") != -1) {
			if (formField.value == "" || formField.value.length < 4) {
				window.alert("Please enter a password that is at least 4 characters.");
				formField.focus();
				return false;
				break;
			}
		}
		// text, textarea, password or file
		if ((formField.type == "text" || formField.type == "textarea" || formField.type == "password" || formField.type == "file" ) && formField.value == ""){
			window.alert(arrName[i] + " is required.");
			formField.focus();
			return false;
			break;
		} 
		// radio buttons
		if (formField.type == "radio") {
			var radioValue;
			var radio = thisForm.elements;
			var radioName = formField;
			radio = radio[radioName.name];
			
			for (j = 0; j < radio.length; j ++) {
				if (radio[j].checked == true) {
					radioValue = radio[j].value;
				}
			}
			if (radioValue == "") {
				window.alert("An option choice is missing for " + arrName[i] + ".");
				formField.focus();
				return false;
				break;
			}
		} 
		// select	
		if (formField.type == "select" || formField.type == "select-one" || formField.type == "select-multiple") {
			if (formField.options[formField.selectedIndex].value == "" ) {
				window.alert("An option choice is missing for " + arrName[i] + ".");
				formField.focus();
				return false;
				break;
			}
		}
	}
	return true;
}

