var formName = "";

function showErrorAlert(){
	alert('The form is incomplete.  Please fill in required fields.');	
}

function clearMessages(){
	var elements = document.getElementsByTagName("SPAN");
	var output = "";
	var curid = "";
	for (var i in elements){
		curid = elements[i].id;
		if (typeof curid == "string"){
			if (curid.indexOf("error") != -1 || curid.indexOf("feedback") != -1){
				document.getElementById(curid).innerHTML = "";
			}
		}
	}
}

function passwordValidationWithConf(){
	var form = document.forms[formName];
	value = form.password.value;
	conf = form.password_confirmation.value;
	return validatePasswordField(value,conf,6,"password_error","*");
}

function passwordValidation(fieldName){
	var form = document.forms[formName];
	value = form[fieldName].value;
	return validateTextFieldLength(value,6,fieldName + "_error","*");
}

function inArray(haystack,needle){
	for (var i = 0; i < haystack.length; i++){
		if (needle == haystack[i]){
			return true;	
		}
	}
	return false;
}

function ValidateForm(_formName,requiredFields,validatePassword){
	
	formName = _formName;
	
	clearMessages();
	var errors = 0;
	var output="";
	var form = document.forms[formName];
	var set = form.elements;
	
	for (var i = 0; i < set.length; i+=1){
		
		var name = set[i].name;
		
		if (inArray(requiredFields,name)){
			var type = set[i].type;
			var value = "";
			var conf = "";
			switch (type){
				case "select-one":
					value = getSelectValue(set[i]);
					break;
				case "radio":
					value = getRadioValue(set[i]);
					break;
				case "password":
					errors += validatePassword();
					break;
				default:
					value = set[i].value;
					break;
			}
			
			if (name == "email"){
				errors += validateEmailField(value,name+"_error","*");
			} else if (type != "password") {
				errors += validateTextField(value,name + "_error","*");	
			}
			
		}
		
	}
	
	if (errors > 0){
		showErrorAlert();
		return false;	
	}
	return true;

}