/******************BEGIN FORM VALIDATOR*********************/

//validates a form and generates error msg if necessary
function doValidation(elementsChecked, numElements, fieldErr) {
	var errMsg = "";		
	for(var i = 0; i < numElements; i++) {
		if(elementsChecked[i] != 1) {
			errMsg +=  fieldErr[i];
			errMsg+= "\n";
		}
	}
	if(errMsg != "") {
		alert(errMsg);
		return false;
	} else {
		document.forms[0].submit();
	}
	
	
	return true;
};
	
	
/************* FIELD VALIDATION FUCNTIONS *****************/



//validates a text field with chars only
function checkTextEntry(fieldNum, fieldDesc, err, num) {
	var curValue = document.forms[0][fieldNum].value;
	var curLength = document.forms[0][fieldNum].value.length;
	if(curValue == "") {
		err[num] = fieldDesc + " is required. Please, fill in the info.";
		return 0;
	}
	
	for(var i = 0; i < curLength; i++) {
		if(curValue.charCodeAt(i) < 39 || (curValue.charCodeAt(i) > 39 && curValue.charCodeAt(i) < 45) || (curValue.charCodeAt(i) > 45 && curValue.charCodeAt(i) < 65) || (curValue.charCodeAt(i) > 90 && curValue.charCodeAt(i) < 96) || curValue.charCodeAt(i) > 122) 	      {
			err[num] = fieldDesc + " contains invalid characters";
			return 0;
		}
	}
	
	return 1;
};


//validates text field with numbers only
function checkNumEntry(fieldNum, fieldDesc, err, num) {
	var curValue = document.forms[0][fieldNum].value;
	var curLength = document.forms[0][fieldNum].value.length;
	
	if(curValue == "") {
		err[num] = fieldDesc + " is required. Please, fill in the info.";
		return 0;
	}
		
	for(var i = 0; i < curLength; i++) {
		if(curValue.charCodeAt( i )< 48 || curValue.charCodeAt( i ) > 57) {
			err[num] = fieldDesc + " contains invalid characters";
			return 0;
		}
	}
		
	return 1;
};


//validates radio buttons for selection
function checkSelectedButtons(fieldName, fieldDesc, err, num) {
	formButtons = document.forms[0][fieldName];
	curLength = document.forms[0][fieldName].length;
	var selection = null;
	
	for(var i = 0; i < curLength; i++) {
		if(formButtons[i].checked) {
			selection = formButtons[i].value;
		}
	}
	
	if(selection == null) {
		err[num] = fieldDesc + " is required. Please, make a selection. ";
		return 0;
	} else {
		return 1;
	}
};


//validates a drop-down box for selection
function checkEmail(fieldNum, fieldDesc, err, num) {
	curValue  = document.forms[0][fieldNum].value;
	
	myRe = /^[a-zA-z0-9_]+@[a-zA-z0-9_]+\.[a-zA-z0-9_]+$/
	var boolTest = myRe.test(curValue);
	
	if(curValue == "") {
		err[num] = fieldDesc + " is required. Please, fill in the info.";
		return 0;
	}
	
	if(boolTest == 0) {
		err[num] = fieldDesc + " contains invalid characters.";
		return 0;
	}
	
	return 1;
	
};

/************* END FIELDS VALIDATION FUNCTIONS ************/



