// --------------------------------------------------
// Function to validate FORM before submit.
// Called onSubmit of the form.
function ValidateForm() {

	// Error Div.
	var FieldErrorDiv = document.getElementById('errorDiv');
	var foundError = false;
	var errorMessage = '';
		
	// Clear out the error.
	FieldErrorDiv.innerHTML = '';
	FieldErrorDiv.style.display = "none";
	
	// Get error messages if any.
	errorMessage = FindErrors();//'<li class="errorLi">test</li>';
	
	// Custom Error Checking
	if (errorMessage != '') { foundError = true; }
	
	// If there was an error.
	if (foundError) {
	
		FieldErrorDiv.innerHTML = errorMessage;
		FieldErrorDiv.style.display = "block";
		
		return false;
	}
				
	return true;
}

// --------------------------------------------------
// Function to valide contact form
function FindErrors() {

	var errorMessage = "";
	
	//errorMessage += ValidateField("firstName", "First Name", "^.+$", "First Name is required.", false);
	errorMessage += ValidateField("lastName", "Last Name", "^.+$", "Last Name is required.", false);
	//errorMessage += ValidateField("company", "Company", "^.+$", "Company is required.", false);
	//errorMessage += ValidateField("title", "Title", "^.+$", "Title is required.", false);
	//errorMessage += ValidateField("address1", "Address", "^.+$", "Address is required.", false);
	//errorMessage += ValidateField("city", "City", "^.+$", "City is required.", false);
	//errorMessage += ValidateField("state", "State", "^.+$", "State is required.", false);
	//errorMessage += ValidateField("zip", "Zip", "^.+$", "Zip is required.", false);
	//errorMessage += ValidateField("country", "Country", "^.+$", "Country is required.", false);
	//errorMessage += ValidateField("phone", "Phone", "^.+$", "Phone is required.", false);
	errorMessage += ValidateField("email", "Email", "^.+$", "Email is required.", false);
	//errorMessage += ValidateField("info", "Information", "^.+$", "Information you'd like to receive is required.", false);
	
	return errorMessage;
}

// --------------------------------------------------
// Function to validate FIELDS using RegEx and display message if error occurs.
// Called onBlur of form fields.
function ValidateField(controlID, name, strRegex, errorScript, skipIfBlank) {

	// Fields for the element and error element.
	var Field = document.getElementById(controlID);

	if (Field != null) {
	    // Clear error stuff from element and error element.
	    Field.className = 'field';
    	
	    // Skip the reg ex check if the field is blank if the parameter set to true.
	    if ((Field.value == '') && (skipIfBlank))
		    return "";
    	
    	// If the regex check fails...
	    if (! RegExCheck(Field.value, strRegex, true))
	    {
		    // Set the error stuff for the element and error element.
		    Field.className = 'field fieldError';
    		
		    return '<li class="errorLi">' + errorScript + '</li>';
	    }
	}
	
	return "";
}

// Regular Expression Checker.
// Called by ValidateField and ValidateForm functions.
function RegExCheck(valueToCheck, strRegex)
{
	var regex = new RegExp(strRegex);
    var isValid = false;
    isValid = regex.test(valueToCheck);
    //alert(valueToCheck);
    //alert(strRegex);
    //alert(isValid);
    return isValid;
}

function DisableButton(buttonId) {
	var submitButtonEl = document.getElementById(buttonId);
	if (submitButtonEl != null) {
		submitButtonEl.value = "Please Wait";
		submitButtonEl.disabled = true;
	}
}

function ManuallySubmitForm(formId) {
	var formEl = document.getElementById(formId);
	if (formEl != null) {
		formEl.submit();
	}
}