<!-- 

var validateNormalStyle = 'formlabelnormallong';
var validateErrorStyle = 'formlabelerrorlong';
var elementErrorStyleColor = '#FF9999';
var elementNormalStyleColor = '#FFFFFF';
var validateErrorStyleColor = '#CC0000';
var validateNormalStyleColor = '#141A21';
var errFields = '';
var reqFields = new Array();


function validate(form)  {
	var errFields = '';
	
	for (var field in reqFields) {
		var element = form.elements['form['+field+']'];
		var val = '';
		
		//alert('checking '+field + ', ele='+ element + ', lbl='+ labelRef);

		if (element[0] && element[0].type == 'radio') {
			val = getRadioValue(element);
			element = element[0];
		} else {
			val = element.value;
		}
		
		var fieldLabel = reqFields[field];
		var labelRef = findLabelFor(element);
		
		var trimmed = trim(val);

		if (trimmed == '') {
			errFields += fieldLabel + ' is required.\n';
			labelRef.firstChild.nodeValue = fieldLabel + ' is required';
			labelRef.setAttribute('class', validateErrorStyle);
			labelRef.style.color = validateErrorStyleColor;
			element.style.background = elementErrorStyleColor;
		} else {
			labelRef.firstChild.nodeValue = fieldLabel + ' ';
			labelRef.setAttribute('class', validateNormalStyle);
			labelRef.style.color = validateNormalStyleColor;
			element.style.background = elementNormalStyleColor;
			if (!element[0]) {
				element.value = trimmed;
			}
		}
	}
	
	if (errFields) {
		//var canvasHeight = (window.innerHeight) ? window.innerHeight : document.body.offsetHeight;
		if (document.body.scrollTop && document.body.scrollTop > 0) {
			errTop = 'Your form is incomplete and cannot be sent:\n\n';
			errBot = '\nPlease enter this information and try again.';
			window.alert(errTop + errFields + errBot);
		}
		return false;
	} else {
		return true;
	}
}


function findLabelFor(element) {
	var el = typeof elOrId == 'string' ? document.getElementById(element) : element;
	var labels = document.getElementsByTagName('LABEL');
	var found = false;
	for (var l = 0; l < labels.length; l++) {
		if (found = el.id == labels[l].htmlFor) { break; }
	}
	if (found) {
		return labels[l];
	} else {
		return null;
	}
}


function findLabelTextFor(element) {
	var label = findLabelFor(element);
	if (label) {
		return findLabelFor(element).firstChild.nodeValue;
	} else {
		return '';
	}
}


function regexpTest(element,regexp,labeltext) {
	labelRef = findLabelFor(element);
	if (element.value != '') {
		if (regexp.test(element.value)) {
			labelRef.firstChild.nodeValue = labeltext;
			labelRef.setAttribute('class', validateNormalStyle);
			labelRef.style.color = validateNormalStyleColor;
			element.style.background = elementNormalStyleColor;
		}	
		else {
			labelRef.firstChild.nodeValue = labeltext +' is Invalid';
			labelRef.setAttribute('class', validateErrorStyle);
			labelRef.style.color = validateErrorStyleColor;
			element.style.background = elementErrorStyleColor;
			errFields += labeltext + " is invalid\n";
		}
	}
}

function trim(value) {
	var temp = value;
	var obj = /^(\s*)([\W\w]*)(\b\s*$)/;
	if (obj.test(temp)) { temp = temp.replace(obj, '$2'); }
	var obj = /Ê+/g;
	temp = temp.replace(obj, " ");
	if (temp == " ") { temp = ""; }
	return temp;
}

function getRadioValue(radioElement) {
	for (i = 0; i < radioElement.length; i++) {
		if (radioElement[i].checked == true) {
			return radioElement[i].value; 
		}
	} 
	// if it didn't find anything, return the .valueÊÊ(behaviour of single radio btn)
	return radioElement.value;
}



//-->
