function submitForm(form,target) {
	var client = new HttpClient();
	client.isAsync = true;
	client.requestType = 'POST';
	
	// urlencode the payload
	payload = "ajax=true";
	for(var i =0; i < form.elements.length; i++) {
		if (form.elements[i].name) {
			if (payload != "")  {
				payload += "&";
			}
			payload +=  encodeURIComponent(form.elements[i].name) + '=' + encodeURIComponent(form.elements[i].value);
		}
	}
	client.callback = function(result) {
		document.getElementById(target).innerHTML = result;
	}
	if (form.elements['source'].value == 'customer_form') {
		if (validateForm(form)) {
			client.makeRequest('http://www.razor.com/recall/process.php',payload,'application/x-www-form-urlencoded');
		}
	} else {
		client.makeRequest('http://www.razor.com/recall/process.php',payload,'application/x-www-form-urlencoded');
	}
	return false;
}

function validateForm(form) {
	//Check product ID
	var intProdIDSwitch = 0;
	var prodID = parseInt(form.elements['id1'].value,10);
	//product sub ID
	var intSubIDSwitch = 0;
	var subID = parseInt(form.elements['id2'].value,10);
	if (prodID == 100620) {
		//It's good
		intProdIDSwitch = 1;
		//check sub
		if (subID >= 3 && subID <= 9) {
			//It's good
			intSubIDSwitch = 1;
		}
	}
	if (prodID == 103110) {
		//It's good
		intProdIDSwitch = 1;
		//check sub
		if (subID >= 1 && subID <= 2) {
			//It's good
			intSubIDSwitch = 1;
		}
	}
	//flag prod id issues
	if (intProdIDSwitch != 1) {
		alert('Your product ID is not affected.  No recall parts are necessary.');
		return false;
	} else if (intSubIDSwitch != 1) {
		//flag prod sub id issues
		alert('Your product sub ID is not affected.  No recall parts are necessary.');
		return false;
	}
	//Check product serial number
	if ((form.elements['id3'].value.length < 11) || (!IsNumeric(form.elements['id3'].value))) {
		alert('Your serial number appears invalid, please double-check and try again.');
		return false;
	}
	//Validate remaining fields
	if (IsEmpty(form.elements['firstName'])) {
		alert('Please enter your first name.');
		return false;
	} else if (IsEmpty(form.elements['lastName'])) {
		alert('Please enter your last name.');
		return false;
	} else if (IsEmpty(form.elements['address1'])) {
		alert('Please enter your street address.');
		return false;
	} else if (IsEmpty(form.elements['city'])) {
		alert('Please enter your city.');
		return false;
	} else if (IsEmpty(form.elements['usstate'])) {
		alert('Please select your state.');
		return false;
	} else if (IsEmpty(form.elements['zipcode'])) {
		alert('Please enter your zipcode.');
		return false;
	} else if (!IsValidEmail(form.elements['email'].value)) {
		alert('Please enter a valid email address.');
		return false;
	} else if (IsEmpty(form.elements['phone'])) {
		alert('Please enter a valid phone number.');
		return false;
	}
	return true;
}

function IsEmpty(aTextField) {
   if ((aTextField.value.length==0) || (aTextField.value==null)) {
      return true;
   }
   else { return false; }
}

function IsNumeric(sText) {
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
 
	for (i = 0; i < sText.length && IsNumber == true; i++) { 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
			IsNumber = false;
		}
	}
	return IsNumber;
}

function IsValidEmail(str) {
	if ((str.indexOf(".") > 2) && (str.indexOf("@") > 0)) {
		return true;
	} else {
		return false;
	}
}

function restoreForm() {
	document.getElementById('HttpClientStatus').innerHTML = formPlaceholder;
	return;
}

function saveForm() {
	formPlaceholder = document.getElementById('HttpClientStatus').innerHTML;
	return;
}