function validateCompanyDonorForm(form) {
	
	var wrapper;
	var accountType = "I";
	
	/* ensure that if a company account type is chosen, that a company has been entered */
	for (var i = 0; i < form.type.length; i ++) {
		if (form.type[i].checked) {
			accountType = form.type[i].value;
		}
	}
	if (accountType == "C") {
		/* pull the company */
		if (form.company.value == "") {
			
			/* get a handle to the element */
			wrapper = document.getElementById("company-input");
			if (wrapper != null ) {
				/* display the error */
				wrapper.setAttribute("class", "form-error");
				
				/* class name for IE, since it doesn't like standards */
				wrapper.setAttribute("className", "form-error");
			}
			/* we have an error */
			displayError("A Company Name is required when creating a Company Account.  Please enter a Company");
			return false;
		}
	}
	
	if (form.state.value == "State") {
		/* get a handle to the element */
		wrapper = document.getElementById("state-input");
		
		if (wrapper != null ) {
			/* display the error */
			wrapper.setAttribute("class", "form-error");
			
			/* class name for IE, since it doesn't like standards */
			wrapper.setAttribute("className", "form-error");
		}
		/* we have an error */
		displayError("A State is Required");
		
		return false;
	}

	zipReg = /^[0-9]{5}([-][0-9]{4})?$/;

	if (!zipReg.test(form.zip.value)) {
		/* get a handle to the element */
		wrapper = document.getElementById("zip-required-input");
		
		if (wrapper != null ) {
			/* display the error */
			wrapper.setAttribute("class", "form-error");
			
			/* class name for IE, since it doesn't like standards */
			wrapper.setAttribute("className", "form-error");
		}
		/* we have an error */
		displayError("Please enter a Valid Zip-Code");
		
		return false;
	}

	phoneReg = /^[0-9]{3}[-][0-9]{3}[-][0-9]{4}$/;

	/* only validate the phone if it is entered */
	if (form.phone.value != "") {
		if (!phoneReg.test(form.phone.value)) {
			/* get a handle to the element */
			wrapper = document.getElementById("phone-input");
			
			if (wrapper != null ) {
				/* display the error */
				wrapper.setAttribute("class", "form-error");
				
				/* class name for IE, since it doesn't like standards */
				wrapper.setAttribute("className", "form-error");
			}
			/* we have an error */
			displayError("Please Enter A Valid Phone Number");
		
			return false;
		}
	}

	if (form.ext.value != "") {
		phoneExtReg = /^[0-9]{1,6}$/;
		if (!phoneExtReg.test(form.ext.value)) {
			/* get a handle to the element */
			wrapper = document.getElementById("phone-input");
			
			if (wrapper != null ) {
				/* display the error */
				wrapper.setAttribute("class", "form-error");
				
				/* class name for IE, since it doesn't like standards */
				wrapper.setAttribute("className", "form-error");
			}
			/* we have an error */
			displayError("Please enter a valid extension.");
		
			return false;
		}
	}

	if (form.login.value.length < 6) {
		/* get a handle to the element */
		wrapper = document.getElementById("login-required-input");
		
		if (wrapper != null ) {
			/* display the error */
			wrapper.setAttribute("class", "form-error");
			
			/* class name for IE, since it doesn't like standards */
			wrapper.setAttribute("className", "form-error");
		}
		/* we have an error */
		displayError("Please Enter a Valid Login.  Login must be at least 6 characters long.");
		
		return false;
	}

	var password1_str = form.password1.value;
	var password2_str = form.password2.value;
	var pass_len = password1_str.length;

	if (pass_len < 6) {
		/* get a handle to the element */
		wrapper = document.getElementById("password1-required-input");
		
		if (wrapper != null ) {
			/* display the error */
			wrapper.setAttribute("class", "form-error");
			
			/* class name for IE, since it doesn't like standards */
			wrapper.setAttribute("className", "form-error");
		}
		/* we have an error */
		displayError("Please Enter a Valid Password.  Password must be at least 6 characters long.");
		return false;
	}
	if (password1_str != password2_str) {
		/* get a handle to the element */
		wrapper = document.getElementById("password2-required-input");
		
		if (wrapper != null ) {
			/* display the error */
			wrapper.setAttribute("class", "form-error");
			
			/* class name for IE, since it doesn't like standards */
			wrapper.setAttribute("className", "form-error");
		}
		
		/* we have an error */
		displayError("Please Enter a Valid Password.  Passwords Do Not Match.");
		
		return false;
	}

	var emailReg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var emailReg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,6}|[0-9]{1,3})(\]?)$/; // valid
	if (emailReg1.test(form.email.value)
			|| !emailReg2.test(form.email.value)) {
		
		/* get a handle to the element */
		wrapper = document.getElementById("email-required-input");
		
		if (wrapper != null ) {
			/* display the error */
			wrapper.setAttribute("class", "form-error");
			
			/* class name for IE, since it doesn't like standards */
			wrapper.setAttribute("className", "form-error");
		}
		
		/* we have an error */
		displayError("Please Enter a E-Mail Address");
		return false;
	}
	return true;
}
