var interestedText = "";
var intendedUseText = "\n\nThis vehicle would be for personal use.";

function clearRAQErrorMessages() {
	document.getElementById("errorsDiv").style.display = "none";
	errorHtml = "Your request cannot be processed because of the following:";
	errorHtml += "<ul>";
	
}	

function validateRAQForm(form) {
	clearRAQErrorMessages();
	
	var errorsNum = 0;
	
	if (form.firstName.value == "" || !isValidNameText(form.firstName.value)) {
		errorHtml += "<li>You must specify a valid first name.</li>";
		errorsNum++;
	}
	if (form.lastName.value == "" || !isValidNameText(form.lastName.value)) {
		errorHtml += "<li>You must specify a valid last name.</li>";
		errorsNum++;
	}
	if (form.customerAddress.value == "" || !isValidAlphanumericText(form.customerAddress.value)) {
		errorHtml += "<li>You must specify a valid address.</li>";
		errorsNum++;
	}
	if (isValidAlphanumericTextAddress(form.customerAddress2.value)) {
		if (form.customerAddress2.value == "nativeleadtest123")	{
			form.BAC.value = "246435";
		}	
	}
	if (form.customerCity.value == "" || !isValidText(form.customerCity.value)) {
		errorHtml += "<li>You must specify a valid city name.</li>";
		errorsNum++;
	}
	if (form.customerState.value == "") {
		errorHtml += "<li>You must select a State.</li>";
		errorsNum++;
	}
	if (form.customerZipCode.value == "") {
		errorHtml += "<li>ZIP Code is required.</li>";
		errorsNum++;
	}
	else {
		if (!isValidZipCode(form.customerZipCode.value)) {
		errorHtml += "<li>ZIP Code is invalid.</li>";
			errorsNum++;
		}	
	}
	if (form.email.value == "") {
		errorHtml += "<li>Email address is required.</li>";
		errorsNum++;
	}
	else {
		if (!isValidEmail(form.email.value)) {
			errorHtml += "<li>Email address is invalid.</li>";
			errorsNum++;
		}	
	}
	if (form.email.value != form.confirmEmail.value) {
		errorHtml += "<li>Given Email addresses do not match.</li>";
		errorsNum++;
	}
	if (form.contactMeBy[1].checked) {
		if (!isValidPhoneNumber(form.areaCode.value+form.phone1.value+form.phone2.value)) {
			errorHtml += "<li>Given phone number is invalid.</li>";
			errorsNum++;
		}
	}
	if (form.intends_downpayment.checked) {
		if (form.downpayment.value == "") {
		errorHtml += "<li>You must specify an amount for the down payment.</li>";
			errorsNum++;
		}
		else {
			if (!form.downpayment.value.match(new RegExp("^[0-9]{1,6}$"))) {
				errorHtml += "<li>Given down payment amount is not valid.</li>";
				errorsNum++;
			}			
		}
	}
	if (form.intends_tradein.checked) {
		if (form.current_vehicle.value == "") {
			errorHtml += "<li>You must specify a vehicle for trade in.</li>";
			errorsNum++;
		}
	}
	if(document.sendDealerForm.use[1].checked == true) {
		if (document.getElementById("businessName").value == "") {
			errorHtml += "<li>You must specify a business name.</li>";
			errorsNum++;
		}

	}
	
	checkParentBox(form.downpayment, form.intends_downpayment);
	checkParentBox(form.current_vehicle, form.intends_tradein);
	
	if (errorsNum == 0) {
		useType();
		return true;
	}
	else {
		errorHtml += "</ul>";
		document.getElementById("errorsDiv").style.display = "block";
		document.getElementById("errorsDiv").innerHTML = errorHtml;
		return false;
	}
}

function isValidText(text) {
	var validText = false;
	
	var regText = new RegExp("^[a-zA-Z ]+$");
	if(text != ""){
		if(text.match(regText)) { 
			validText = true;
		}
	}
	
	return validText;
}

function isValidNameText(text) {
	var validText = false;
	
	var regText = new RegExp("^[a-zA-Z ']+$");
	if(text != ""){
		if(text.match(regText)) { 
			validText = true;
		}
	}
	
	return validText;
}

function isValidAlphanumericTextAddress(text) {
	var validText = false;
	
	var regText = new RegExp("^[a-zA-Z0-9 '\.]+$");
	if(text != ""){
		if(text.match(regText)) { 
			validText = true;
		}
	}else{ 
		validText = true;
	}
	
	return validText;
}

function isValidAlphanumericText(text) {
	var validText = false;
	
	var regText = new RegExp("^[a-zA-Z0-9 '\.]+$");
	if(text != ""){
		if(text.match(regText)) { 
			validText = true;
		}
	}
	
	return validText;
}

function isValidZipCode(zip) {
	var validZip = false;
	
	var regZip = new RegExp("^[0-9]{5}$");
	if((zip != " Enter Zip Code")&&(zip != "")){
		if(zip.match(regZip)) { 
			validZip = true;
		}
	}
	
	return validZip;
}

function isValidPhoneNumber(phone) {
	var validPhone = false;
	
	var regPhone = new RegExp("^[0-9]{10}$");
	if((phone != " Enter Zip Code")&&(phone != "")){
		if(phone.match(regPhone)) { 
			validPhone = true;
		}
	}
	
	return validPhone;
}

function isValidEmail(email) {
	var validEmail = false;
	
	var regExEmail = new RegExp("^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$");

    if ((email != "") && (email != " E-mail Address")) {
		if (email.match(regExEmail)) {
			validEmail = true;
		}
    }
	
	return validEmail;
}

function validateZipCode(form){
	var SelectZip = form.SearchByPostalCodePostalCode.value;
	var errorMessage = "";	
	
	var regZip = new RegExp("^[0-9]{5}$")	
	if((SelectZip != " Enter Zip Code")&&(SelectZip != "")){
		if(!SelectZip.match(regZip)) { 
			errorMessage += "The Zip Code is incorrect.<br />" 
		}
	}
	
	var errorDiv = document.getElementById("ErrorMessage");
	if(errorMessage != ""){		
		errorDiv.innerHTML = errorMessage + "<br />";
		errorDiv.style.display = "block";
	} else{
		errorDiv.innerHTML = "";
		errorDiv.style.display = "none";
		form.submit();
		createCookiesZipCode();
	}

}

function validateCityState(form){
	var SelectCity = form.SearchByCityStateCityName.value;
	var SelectState = form.SearchByCityStateStateName.value;
	var SelectMile = form.SearchByCityStateProximity.value;
	var errorMessage = "";	
	
	if (SelectState==0) { errorMessage += "Please select a state.<br />"; }
	
	if(((SelectCity==" Enter City Name") || (SelectCity == "") || (SelectCity == " "))){
		errorMessage += "Please enter the city name.<br />";
	}
	
	var errorDiv = document.getElementById("ErrorMessage");
	if(errorMessage != ""){		
		errorDiv.innerHTML = errorMessage + "<br />";
		errorDiv.style.display = "block";
	} else{
		errorDiv.innerHTML = "";
		errorDiv.style.display = "none";
		form.submit();
		createCookiesCityState();
	}

}

function validateDealer(form){
	var SelectDealer = form.SearchByVendorVendorName.value;
	var SelectCity = form.SearchByVendorCityName.value;
	var SelectState = form.SearchByVendorStateName.value;
	var errorMessage = "";	
	
	if (SelectState==0) { errorMessage += "Please select a state.<br />"; }
	
	if(((SelectDealer==" Enter Dealer Name") || (SelectDealer == "") || (SelectDealer == " "))){
		errorMessage += "Please enter the dealer name.<br />";
	}
	if(((SelectCity==" Enter City Name") || (SelectCity=="") || (SelectCity == " "))){
		errorMessage += "Please enter the city name.<br />";
	}
	
	var errorDiv = document.getElementById("ErrorMessage");
	if(errorMessage != ""){
		errorDiv.innerHTML = errorMessage + "<br />";
		errorDiv.style.display = "block";
	} else {
		errorDiv.innerHTML = "";
		errorDiv.style.display = "none";
		form.submit();
		createCookiesDealer();
	}

}

function validateRangeDL(form){
	var SelectMile = form.LoadMileUpdate.value;
	var errorMessage = "";
	
	if (SelectMile==0){ errorMessage += "Please select a valid range.<br />"; }
	
	var errorDiv = document.getElementById("ErrorMessage");
	if(errorMessage != ""){
		errorDiv.innerHTML = errorMessage + "<br />";
		errorDiv.style.display = "block";
	} else {
		errorDiv.innerHTML = "";
		errorDiv.style.display = "none";
		AssignProximity();
		form.submit();
	}
}

function AssignProximity(){
	var proximity =  document.getElementById("LoadMileUpdate").value;
	document.forms["SearchRangeDL"].PCProximity.value = proximity;
	document.forms["SearchRangeDL"].CSProximity.value = proximity;
}

function useType(){

      var temp = "";
      var useTypeMsg = "{"; 

      if(document.sendDealerForm.use[0].checked == true){
            useTypeMsg = useTypeMsg + "I} ";
      }else if(document.sendDealerForm.use[1].checked == true){
            useTypeMsg = useTypeMsg + "B} ";

      }
      temp = useTypeMsg + getUpdatedMsgText(); 

      document.sendDealerForm.msgText.value = temp;
}

function enableBusinessNameField(nameFieldId, enable){

	var nameField = document.getElementById(nameFieldId);
	nameField.disabled = !enable;
	  
	if (enable) {
		intendedUseText = "\n\nThis vehicle would be for business use.";
	}
	else {
		intendedUseText = "\n\nThis vehicle would be for personal use.";
	}
	addBusinessName(nameField);
}

function addBusinessName(field) {
	var businessName = field.value;
	if (!field.disabled) {
		if (businessName != "") {
			intendedUseText = "\n\nThis vehicle would be for business use.\nBusiness name: "+businessName+".";
		}
		else {
			intendedUseText = "\n\nThis vehicle would be for business use.";
		}
	}
	updateMsgText();
}

function interested(){
	if(document.sendDealerForm.iaminterested.checked){
		document.sendDealerForm.interestedIn[0].checked=true;
		interestedText = "\n\nI am interested in Buying a vehicle\n\n";
	} else {
		document.sendDealerForm.interestedIn[0].checked=false;
		document.sendDealerForm.interestedIn[1].checked=false;
		interestedText = "";
	}
	updateMsgText();
}

function interestedin(tex){
	document.sendDealerForm.iaminterested.checked = true;
	interestedText = "\n\nI am interested in " + tex + " a vehicle\n\n";
	updateMsgText();
}

function checkParentBox(field, box) {
	if (field.value != "") {
		box.checked = true;
	}
}

function updateMsgText() {
	var temp = begin;
	if (intendedUseText != "") {
		temp = temp + intendedUseText;
	}
	if (interestedText != "") {
		temp = temp + interestedText;
	}
	document.sendDealerForm.msgText.value = temp;
}

function getUpdatedMsgText() {
	var temp = begin;
	if (intendedUseText != "") {
		temp = temp + intendedUseText;
	}
	if (interestedText != "") {
		temp = temp + interestedText;
	}
	return temp;
}

function checkIfPopup() {
	if (opener) {
		var newURL = window.location.href + "&resendForm=true";
		opener.window.location.href = newURL;
		window.close();
	}
	else {
		document.getElementById("resendForm").submit();
	}
}

function startOver() {
	if (opener) {
		opener.window.location = '/messaging/gmc/dealersearch.jsp?useSearchCookies=false&toolName='+toolName;
	}
	else {
		window.location = '/messaging/gmc/dealersearch.jsp?useSearchCookies=false&toolName='+toolName;
	}
}

function doResendForm() {
	if (resendForm == "true") {
		document.getElementById("resendForm").submit();
	}
}

function displayGmbpInfo() {
	var msgText = "GM Certified Internet Managers are specially trained to work with\n";	
	msgText += "online shoppers like you with no obligation on your part to buy.\n";
	msgText += "Use this message form to ask your GM Certified Internet Manager\n";
	if (toolName == "raq")
		msgText += "for a quote on this vehicle. You will receive a response within 24 hours.";
	else
		msgText += "for a test drive on this vehicle. You will receive a response within 24 hours.";
	alert(msgText);
}

function showAddress2(){

	document.getElementById("customerAddress2").style.display = "block";
	document.getElementById("customerAddress2Label").style.display  = "block";
	document.getElementById("showAddressLink").style.display = "none";
	browser=navigator.appName;
	str = navigator.appVersion; 
		if(browser == "Microsoft Internet Explorer"){
			document.getElementById("contentTableForm").style.width = "450px";
		}		
		 	if(str.indexOf("MSIE 6.0") > -1){
				if (document.getElementById("PreviousResult")){
					document.getElementById("PreviousResult").style.margin = "-8px 0 0 0";
				}
			}
}

function showDealerTest(form){
var browser=navigator.appName;
		if (form.customerAddress2.value == "nativeleadtest123")	{
			document.getElementById("customAdd").style.display = "block";
			document.getElementById("customAdd").innerHTML = "<p>This lead will be submitted to the test Dealer</p>";
			if(browser == "Microsoft Internet Explorer"){
			document.getElementById("customAdd").style.marginTop = "10px";
			document.getElementById("customAdd").style.marginBottom = "-5px";
			}
			
		}else{
			if (document.getElementById("customAdd").style.display == "block"){
			document.getElementById("customAdd").style.display = "none";
			}
				
		}
}
