// Check if field is empty
function isEmpty(field) {
	with(field)
	{
		if (value == null || value == "" || value.length == 0) {
			return true;
		}
		
		// All spaces?
		for (var i = 0; i <= value.length-1; i++) {
			if (value.charAt(i) != " ") {
				return false;
			}			
		}
		return true;
	}
}

// If field is required for the form, set style accordingly
function isRequired(field) {
	if (isEmpty(field)) {
		field.className = "required" + " invalid";
	}
}

// Reset field style to input classStr
function resetField(field, classStr) {
	if (isEmpty(field)) {
		field.className = classStr;
	}
}

// Validate all fields against Regex patterns
// Dependent on name, alters formatting of field to alert user
function verifyFieldLive(field, classStr) {
	var regexString = "[^A-Za-z0-9'_#\\-\\,\\.\\(\\)\\[\\]\\!&\\s]";
	if (field.name == 'form_username' || field.name == 'form_login_username') {
		regexString = "[^A-Za-z0-9_-]";
	} else if (field.name == 'form_password' || field.name == 'form_password1' || field.name == 'form_password2' || field.name == 'form_oldpass' || field.name == 'form_login_password') {
		regexString = "[^A-Za-z0-9]";
	} else if (field.name == 'form_fname' || field.name == 'form_sname') {
		regexString = "[^A-Za-z'-]";
	} else if (field.name == 'form_company') {
		regexString = "[^A-Za-z0-9'\\-\\,\\.\\(\\)\\[\\]\\!&\\s]";
	} else if (field.name == 'form_add1' || field.name == 'form_add2' || field.name == 'form_add3') {
		regexString = "[^A-Za-z0-9'\\-\\,\\.\\(\\)\\[\\]\\!&\\s]";
	} else if (field.name == 'form_email' || field.name == 'form_email1' || field.name == 'form_email2') {
		regexString = "[^A-Za-z0-9\+\.\-\@\#\$\%\'\*\^\{\}\|\~]";
	}
	
	var re = new RegExp(regexString);
	with (field) {
		if (!value.match(re)) {
			className = classStr + " valid";
		} else {
			className = classStr + " invalid";
		}
	}
	
	if (isEmpty(field)) {
		field.className = field.className.substring(0,8);
	}
}

/* Test function to verify field when user exits it
function verifyUsernameBatch(fieldName) {
	var re = new RegExp("[^A-Za-z0-9_-]");
	if (fieldName.value.match(re)) {
		alert("Invalid character found in the Username field: Use only letters, underscores, hyphens and numbers!");
	}
}*/

// Check entire form for empty required fields and show alert to user
function validateForm(form) {
	for(var i = 0; i < form.elements.length; i++){
		if(form.elements[i].value.length == 0){
			if(form.elements[i].className.indexOf("required") != -1) {
				alert('A required field is empty!');
				form.elements[i].focus();
				return false;
			}
		}
	} 
	return true;
}