	//Validates the data entered by the user
	function validateForm(onlyValidate){
		resetForm();
		var valid = false;
		var required = true;
		var optional = true;
		var styleObject;
		var i = 0;
		var checked = false;
		var regExpPhone = new RegExp;
		var regExpEmail = new RegExp;
		var regExpStory = new RegExp;
		var regExpReg = new RegExp;
		var regExpPostal = new RegExp;
		var regExpNumber = new RegExp;
		var regExpProv = new RegExp;
		regExpPhone = /^\(\d{3}\)\s\d{3}\-\d{4}$/;
		regExpEmail= /^[a-z0-9\!\#\$\%\&\*\+\-\~\,\.]+\@[a-z0-9\!\#\$\%\&\*\+\-\~\,\.]+\.[a-z]{2,3}$/i;
		regExpStory = /^[\x20-\x7E\x0A\x0D\x05]+$/;
		regExpReg = /^[\x20-\x3B\x3D\x3F-\x7F]+$/;
		regExpPostal = /^[a-z]\d[a-z]\s\d[a-z]\d$|^\d{5}$|^\d{9}$/i;
		regExpNumber = /^\d+$/;
		regExpProv = /^[a-z]{2}$/i;
	//Form data
		var cname = document.sendinfo.cname.value;
		var company = document.sendinfo.company.value;
		var position = document.sendinfo.position.value;
		var phone = document.sendinfo.phone.value;
		var fax = document.sendinfo.fax.value;
		var cell = document.sendinfo.cell.value;
		var email = document.sendinfo.email.value;
		var briefinfo = document.sendinfo.briefinfo.value;
		var postal = document.sendinfo.postal.value;
		var ext = document.sendinfo.ext.value;
		var noTrucks = document.sendinfo.notrucks.value;
		var prov = document.sendinfo.prov[document.sendinfo.prov.selectedIndex].value;
		var cntry = document.sendinfo.country.selectedIndex;
		var licenses = document.sendinfo.licenses.selectedIndex;
		var city = document.sendinfo.city.value;
		var address = document.sendinfo.address.value;
	//Lets make sure all of the required fields are filled out
		if (cname.length < 2 || cname.length > 40 || !regExpReg.test(cname)){
			required = false;
			styleObject = document.getElementById("cname");
			if (styleObject != null){
				styleObject.className="invalidData";
			}
		}
		if (company.length < 2 || company.length > 30 || !regExpReg.test(company)){
			required = false;
			styleObject = document.getElementById("company");
			if (styleObject != null){
				styleObject.className="invalidData";
			}
		}
		if (position.length < 2 || position.length > 25 || !regExpReg.test(position)){
			required = false;
			styleObject = document.getElementById("position");
			if (styleObject != null){
				styleObject.className="invalidData";
			}
		}
		if (!regExpPhone.test(phone)){
			required = false;
			styleObject = document.getElementById("phone");
			if (styleObject != null){
				styleObject.className="invalidData";
			}
		}
		if (!regExpPhone.test(fax) && fax.length > 0){
			required = false;
			styleObject = document.getElementById("fax");
			if (styleObject != null){
				styleObject.className="invalidData";
			}
		}
		if (!regExpPhone.test(cell) && cell.length > 0){
			required = false;
			styleObject = document.getElementById("cell");
			if (styleObject != null){
				styleObject.className="invalidData";
			}
		}

		if (!regExpPostal.test(postal)){
			required = false;
			styleObject = document.getElementById("postal");
			if (styleObject != null){
				styleObject.className="invalidData";
			}
		}
		if (!regExpNumber.test(noTrucks)){
			optional = false;
			styleObject = document.getElementById("notrucks");
			if (styleObject != null){
				styleObject.className="invalidData";
			}						
		}
		if (!regExpEmail.test(email)){
			required = false;
			styleObject = document.getElementById("email");
			if (styleObject != null){
				styleObject.className="invalidData";
			}				
		}
		if (!regExpProv.test(prov)){
			required = false;
			styleObject = document.getElementById("prov");
			if (styleObject != null){
				styleObject.className="invalidData";
			}				
		}
		if (cntry < 1){
			required = false;
			styleObject = document.getElementById("country");
			if (styleObject != null){
				styleObject.className="invalidData";
			}				
		}
		if (licenses < 1){
			required = false;
			styleObject = document.getElementById("licenses");
			if (styleObject != null){
				styleObject.className="invalidData";
			}				
		}
		if (city.length < 2 || city.length > 50){
			required = false;
			styleObject = document.getElementById("city");
			if (styleObject != null){
				styleObject.className="invalidData";
			}				
		}
		if (address.length < 2 || address.length > 75){
			required = false;
			styleObject = document.getElementById("address");
			if (styleObject != null){
				styleObject.className="invalidData";
			}				
		}
		checked = false;
		for (i = 0; i < document.sendinfo.operation.length; i++){
			if (document.sendinfo.operation[i].checked){
				checked=true;
				i = document.sendinfo.operation.length;
			}
		}
		if (!checked){
			required = false
			styleObject = document.getElementById("operation");
			if (styleObject != null){
				styleObject.className="invalidData";
			}	
		}
		checked = false;
		for (i = 0; i < document.sendinfo.business.length; i++){
			if (document.sendinfo.business[i].checked){
				checked=true;
				i = document.sendinfo.business.length;
			}
		}
		if (!checked){
			required = false
			styleObject = document.getElementById("business2");
			if (styleObject != null){
				styleObject.className="invalidData";
			}	
		}
		checked = false;
		for (i = 0; i < document.sendinfo.areas.length; i++){
			if (document.sendinfo.areas[i].checked){
				checked=true;
				i = document.sendinfo.areas.length;
			}
		}
		if (!checked){
			required = false
			styleObject = document.getElementById("service");
			if (styleObject != null){
				styleObject.className="invalidData";
			}	
		}
		checked = false;
		for (i = 0; i < document.sendinfo.urequest.length; i++){
			if (document.sendinfo.urequest[i].checked){
				checked=true;
				i = document.sendinfo.urequest.length;
			}
		}
		if (!checked){
			required = false
			styleObject = document.getElementById("request");
			if (styleObject != null){
				styleObject.className="invalidData";
			}	
		}

	//Now lets check the optional fields
		if (briefinfo.length > 500 || briefinfo.length > 0 && !regExpStory.test(briefinfo)){
			optional = false;
			styleObject = document.getElementById("briefinfo");
			if (styleObject != null){
				styleObject.className="invalidData";
			}				
		}
		if (!regExpNumber.test(ext) && ext.length > 0){
			optional = false;
			styleObject = document.getElementById("ext");
			if (styleObject != null){
				styleObject.className="invalidData";
			}						
		}
		if (required && optional){
			valid = true;
		}
		if (onlyValidate){
			valid = false;
		}
		if (!valid){
			alert("Some problems with your form data have been found.  Please fix the problems and re-submit your request.  Mouse over the fields for a description of the data that can be entered.  Invalid fields appear in red.");
			return valid;
		}	
	}


