function submitForm(url, target, params) {
	// Loading text
	var loadText = 'One moment...	';

  document.getElementById(target).innerHTML = loadText;
  if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (req != undefined) {
    req.onreadystatechange = function() {formDone(url, target);};
    req.open("post", url, true);
	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    req.send(params); 
  }
}  

function formDone(url, target) {
  if (req.readyState == 4) { // only if req is "loaded"
    if (req.status == 200) { // only if "OK"
      document.getElementById(target).innerHTML = req.responseText;
    } else {
	    document.getElementById(target).innerHTML = req.responseText;
	}
  }
}



function post(objName, url, target) { // This grabs all form data and converts it to a string which is sent to the submitForm function and sent to the action page
	var getstr = ''; //container var that will ultimately be the post request
	var obj = document.forms[objName];
	var errorStr = '';
	
	
	//Let's validate the form - make sure that all of the personal info is there - this is customized for the RFQ Forms -
	if ( objName != 'forgotLogin' ) { // don't validate the forgotLogin form
		var reqFields = new Array('first_name', 'last_name', 'company', 'address', 'city');
	
		//email validation
		var strng = obj.elements['email'].value;
		var emailFilter=/^.+@.+\..{2,3}$/;

		if (!emailFilter.test(strng)) {	
			errorStr += "<li>Your <b>email address</b> doesn't appear to be valid.</li>";
		}// end email validation
		
		// Business type validation
		if (obj.elements['Business|1']) {
			if (obj.elements['Business|1'].selectedIndex == 0) errorStr += "<li>Select your <b>business type</b></li>";			
		}
		
		// Phone validation
		if (obj.elements['phone'].value.length < 10 ) {
			errorStr += "<li>Your <b>phone number</b> doesn't appear to be valid</li>";	
		}

		for (q = 0; q < reqFields.length; q++) {

			if ( obj.elements[reqFields[q]].value.length < 2 ) {
				errorStr += "<li>Provide your <b>" + reqFields[q].replace(new RegExp(/_/g), ' ') + "</b></li>";	
			}
		}
	
		if ( obj.elements['state_id'].value == 0 || obj.elements['state_id'].value == 111 ) errorStr += "<li>Select a <b>state</b></li>";
		if ( obj.elements['zip'].value.length < 1 ) errorStr += "<li>Provide your <b>zip code</b></li>";
	}
	
	if ( errorStr != '' ) {
		document.getElementById('validationResults').style.visibility = 'visible';
		document.getElementById('validationResults').innerHTML = '<b>We were unable to process your request.</b> <br /><br />Please correct the following errors: <ul>' + errorStr + '</ul>';
	} else {//validation conditional
	
	for (i=0; i<obj.elements.length; i++) {
		
		if (obj.elements[i].type == "textarea") {
			getstr += obj.elements[i].name + "=" + obj.elements[i].value.replace(new RegExp(/&/g), 'and') + "&";	
		}

		if (obj.elements[i].type == "text") {
			getstr += obj.elements[i].name + "=" + obj.elements[i].value.replace(new RegExp(/&/g), 'and') + "&";
		}
		
		if (obj.elements[i].type == "hidden") {
			getstr += obj.elements[i].name + "=" + obj.elements[i].value.replace(new RegExp(/&/g), 'and') + "&";
		}		
			
		if (obj.elements[i].type == "checkbox") {
			if (obj.elements[i].checked) {
				getstr += obj.elements[i].name + "=" + obj.elements[i].value.replace(new RegExp(/&/g), 'and') + "&";
			} else {
				getstr += obj.elements[i].name.replace(new RegExp(/&/g), 'and') + "=&";
			}
		}

		if (obj.elements[i].type == "radio") {
			if (obj.elements[i].checked) {
				getstr += obj.elements[i].name + "=" + obj.elements[i].value.replace(new RegExp(/&/g), 'and') + "&";
			}
		}
            
		if (obj.elements[i].type == "select-one" || obj.elements[i].type == "select") {
			getstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";

			//var sel = obj.elements[i];
			//getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
		}
           //getstr += obj.elements[i].name + "=" + obj.elements[i].value + "&";
	}

	submitForm(url, target, getstr);
	}// end validation conditional
}
   
