function highlightFieldLabel(formElement) {
	var lblId=getLabelId(formElement.name);
	var lblDiv=document.getElementById(lblId);
	lblDiv.style.color = "red";
}

function resetFieldLabel(formElement) {
	var lblId=getLabelId(formElement.name);
	var lblDiv=document.getElementById(lblId);
	if (typeof(lblDiv.style.color) == "string" && lblDiv.style.color == "red") {
		lblDiv.style.color = "";
	}
}

function isValidEmail(str) {
	return str.match(/^([a-zA-Z0-9_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/) != null;
}

function validateFields(theForm,requiredFields) {
	var testString = "";
	var focusIndex = -1;
	var warning = document.getElementById("warning");

	for (var i=0;i<theForm.elements.length;i++) {
		var formElement = theForm.elements[i];
		testString += + " " + formElement.type;

		for (var j=0;j<requiredFields.length;j++) {
			if (formElement.name == requiredFields[j]){
				resetFieldLabel(formElement);
				switch(formElement.type) {
					case "select-one":
						if (formElement.selectedIndex == -1 || formElement.options[formElement.selectedIndex].value=="") {
							highlightFieldLabel(formElement);
							if (focusIndex == -1) {focusIndex = i};
						}  else {
							resetFieldLabel(formElement);
						}
						break;
					case "radio":
						highlightMe = 1;
						arr = document.getElementsByName(formElement.name);
						for(n=0; n<arr.length; n++) {
							if(arr[n].checked == true){
								highlightMe = 0;
							}
						}
						if ( highlightMe == 1 ) {
							highlightFieldLabel(formElement);
							if (focusIndex == -1) {focusIndex = i};
						} else {
							resetFieldLabel(formElement);
						}
						break;
					case "checkbox":
						highlightMe = 0;
						if ( formElement.checked == false ) { highlightMe = 1; }
						if ( highlightMe == 1 ) {
							highlightFieldLabel(formElement);
							if (focusIndex == -1) {focusIndex = i};
						} else {
							resetFieldLabel(formElement);
						}
						break;
					default:
						if (formElement.value == "" || (formElement.name.toLowerCase().indexOf("mail")!=-1 && isValidEmail(formElement.value) == false)) {							highlightFieldLabel(formElement);
							if (focusIndex == -1) {
								focusIndex = i
							}
						} else {
							resetFieldLabel(formElement);
						}
						break;
				}
			} // end if

		} // end for
	} // end for
	if(disableSubmit) {
		warning.style.display="block";
		window.scrollTo(0, 0);
		return false;
	}
	if (focusIndex != -1) {
		theForm.elements[focusIndex].focus();
		warning.style.display="block";
		window.scrollTo(0, 0);
	} else {
		warning.style.display="none";
	}
	return focusIndex;
}
