function validateGetMoreInfoForm() {

	var wMissingFieldsErrorMessages = new Array();
	var wOtherErrorMessages = new Array();
	
	if (!validateSalutation()) {
		wMissingFieldsErrorMessages.push("Salutation");
	}
	
	if (!validateFirstName()) {
		wMissingFieldsErrorMessages.push("First Name");
	}
	
	if (!validateLastName()) {
		wMissingFieldsErrorMessages.push("Last Name");
	}
	
	if (!validateTitle()) {
		wMissingFieldsErrorMessages.push("Title");
	}
	
	if (document.getElementById("email").value != "") {
		
		document.getElementById("lbl_email").className = "";
		
		if (!validateEmail()) {
			wOtherErrorMessages.push("The email you provided is not a valid address.");
		} else {
		
			if (!validateConfirmEmail()) {
				if (document.getElementById("confirm_email").value == "") {
					wMissingFieldsErrorMessages.push("Confirm Email");
				} else {
					wOtherErrorMessages.push("The emails you entered did not match.");
				}
			}
		}
	} else {
		wMissingFieldsErrorMessages.push("Email");
		document.getElementById("lbl_email").className = "error";
		document.getElementById("lbl_confirm_email").className = "error";
	}
	
	
	
	if (!validatePhone()) {
		wMissingFieldsErrorMessages.push("Phone");
	}
	
	if (!validateCompany()) {
		wMissingFieldsErrorMessages.push("Company");
	}

	if (!validateTypeOfEnterprise()) {
		wMissingFieldsErrorMessages.push("Type of Enterprise");
	}
	
	if (!validateSizeOfCompany()) {
		wMissingFieldsErrorMessages.push("Size of Company");
	}
	
	if (!validateChosenSolutions()) {
		wMissingFieldsErrorMessages.push("Chosen Solutions");
	}

	if (!validateImplementationTime()) {
		wMissingFieldsErrorMessages.push("Implementation Time");
	}
	
	
	if (wMissingFieldsErrorMessages.length > 0 || wOtherErrorMessages.length > 0) {
		
		var wErrorMessageContainer = document.getElementById("errorMessages");
		var wErrorMessageContent = "";
		
		if (wMissingFieldsErrorMessages.length > 0) {
			
			if (wMissingFieldsErrorMessages.length > 1) {
				wErrorMessageContent += "<p class=\"error\">The fields ";
			} else {
				wErrorMessageContent += "<p class=\"error\">The field ";
			}
				
			for (var i = 0; i < wMissingFieldsErrorMessages.length; i++) {
				wErrorMessageContent += wMissingFieldsErrorMessages[i];
				
				if (i < wMissingFieldsErrorMessages.length - 1) {
					wErrorMessageContent += ", ";
				}
				
			}
			
			if (wMissingFieldsErrorMessages.length > 1) {
				wErrorMessageContent += " are not complete.</p>";
			} else {
				wErrorMessageContent += " is not complete.</p>";
			}
			
		}
		
		if (wOtherErrorMessages.length > 0) {
			
			for (var i = 0; i < wOtherErrorMessages.length; i++) {
				wErrorMessageContent += "<p class=\"error\">" + wOtherErrorMessages[i] + "</p>";
			}
			
		}
		
        wErrorMessageContent += "<p style=\"margin-top: 10px;\" class=\"error\">Please fill in the information and resubmit the form.</p>"
		
		wErrorMessageContainer.innerHTML = wErrorMessageContent;
        wErrorMessageContainer.style.display = "block";
        window.scrollTo(0, 0);
		
        return false;
		
	}

	return true;
	
}

function trim(str) {
	return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

function validateFirstName() {
	
	var str = trim(document.getElementById("first_name").value);
	
	if (str.length > 0 && str.length <= 40) {
		document.getElementById("lbl_first_name").className = "";
		return true;
	} else {
		document.getElementById("lbl_first_name").className = "error";
	}
	return false;
	
}

function validateLastName() {
	
	var str = trim(document.getElementById("last_name").value);
	
	if (str.length > 0 && str.length <= 80) {
		document.getElementById("lbl_last_name").className = "";
		return true;
	} else {
		document.getElementById("lbl_last_name").className = "error";
	}
	return false;
	
}

function validateTitle() {
	
	var str = trim(document.getElementById("title").value);
	
	if (str.length > 0 && str.length <= 40) {
		document.getElementById("lbl_title").className = "";
		return true;
	} else {
		document.getElementById("lbl_title").className = "error";
	}
	return false;
	
}

function validateEmail() {
	
	var str = trim(document.getElementById("email").value);
	
	if (checkEmail(str)) {
		document.getElementById("lbl_email").className = "";
		return true;
	} else {
		document.getElementById("lbl_email").className = "error";
	}
	return false;
	
}

function validatePhone() {
	
	var str = trim(document.getElementById("phone").value);
	
	if (str.length > 0 && str.length <= 40) {
		document.getElementById("lbl_phone").className = "";
		return true;
	} else {
		document.getElementById("lbl_phone").className = "error";
	}
	
	return false;
	
}

function validateConfirmEmail() {
	
	if (trim(document.getElementById("confirm_email").value) != trim(document.getElementById("email").value)) {
		document.getElementById("lbl_confirm_email").className = "error";
		return false;
	} else {
		document.getElementById("lbl_confirm_email").className = "";
	}
	
	return true;
	
}

function validateCompany() {
	
	var str = trim(document.getElementById("company").value);
	
	if (str.length > 0 && str.length <= 40) {
		document.getElementById("lbl_company").className = "";
		return true;
	} else {
		document.getElementById("lbl_company").className = "error";
	}
	
	return false;
	
}

function validateTypeOfEnterprise() {
	
	var select = document.getElementById("type_of_enterprise");
	
	if (select.selectedIndex > 0) {
		document.getElementById("lbl_type_of_enterprise").className = "";
		return true;
	} else {
		document.getElementById("lbl_type_of_enterprise").className = "error";
	}
	
	return false;
	
}

function validateSizeOfCompany() {
	
	var select = document.getElementById("size_of_company");
	
	if (select.selectedIndex > 0) {
		document.getElementById("lbl_size_of_company").className = "";
		return true;
	} else {
		document.getElementById("lbl_size_of_company").className = "error";
	}
	
	return false;
	
}

function validateSalutation() {
	
	var wForm = document.getElementById("contact_form");
	
	var wSalutation = -1;
	
	for (var i = 0; i < wForm.salutation.length; i++) {
		if (wForm.salutation[i].checked) {
			wSalutation = wForm.salutation[i].value;
		}
		
	}
	
	if (wSalutation == -1) {
		document.getElementById("lbl_salutation").className = "error";
		return false;
	} else {
		document.getElementById("lbl_salutation").className = "";
		return true;
	}
	
}

function validateChosenSolutions() {
	
	var select = document.getElementById("chosen_solutions");
	
	if (select.value != "") {
		document.getElementById("lbl_chosen_solutions").className = "";
		return true;
	} else {
		document.getElementById("lbl_chosen_solutions").className = "error";
	}
	
	return false;
	
}

function validateImplementationTime() {
	
	var wTimeArray = new Array();
	
	wTimeArray[0] = document.getElementById("In_1-3_months");
	wTimeArray[1] = document.getElementById("In_4-6_months");
	wTimeArray[2] = document.getElementById("In_7-12_months");
	
	var wImplementationTime = 0;
	
	for (var i = 0; i < wTimeArray.length; i++) {
		if (wTimeArray[i].checked) {
			wImplementationTime = 1;
		}
		
	}
	
	if (wImplementationTime == 0) {
		document.getElementById("lbl_implementation_time").className = "error";
		return false;
	} else {
		document.getElementById("lbl_implementation_time").className = "";
		return true;
	}
	
}

function checkEmail(str) {

	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1) {
	   return false;
	}

	if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) {
	   return false;
	}

	if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) {
	    return false;
	}

	 if (str.indexOf(at,(lat+1)) != -1) {
	    return false;
	 }

	 if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot) {
	    return false;
	 }

	 if (str.indexOf(dot,(lat + 2)) == -1) {
	    return false;
	 }
	
	 if (str.indexOf(" ") != -1) {
	    return false;
	 }

	 return true;				
}