/**********************************************/
/***************BackEnd**********************/
/*******************************************/
//Validate the customer form and fill the hidden form
//Param Na -> validate each value of the form
//Return True to submit, False to error
function validateForm(form, action){

	//alert("Validating Form");
	$(RAQ_MSG_TEXT_HIDDEN).value="";
	var tmp;
	if(!(isVehicleSelected())){
		alert(VEHICLES_UNSELECTED);
		return false;
	}

	//Alert for form
	if (!validateFormat($(RAQ_FIRST_NAME),FORMAT_FIRST_NAME,FIELD_FIRST_NAME)){
		return false;
	}
	if (!validateFormat($(RAQ_LAST_NAME),FORMAT_LAST_NAME,FIELD_LAST_NAME)){
		return false;
	}
	if (!validateFormat($(RAQ_CUSTOMER_ADDRESS),FORMAT_CUSTOMER_ADDRESS,FIELD_CUSTOMER_ADDRESS)){
		return false;
	}
	if($(RAQ_CUSTOMER_ADDRESS2).value != ""){
		if (!validateFormat($(RAQ_CUSTOMER_ADDRESS2),FORMAT_CUSTOMER_ADDRESS,FIELD_CUSTOMER_ADDRESS_OPTIONAL)){
			return false;
		}
	}
	if (!validateFormat($(RAQ_CUSTOMER_CITY),FORMAT_CUSTOMER_CITY,FIELD_CUSTOMER_CITY)){
		return false;
	}
	if($(RAQ_CUSTOMER_STATE).selectedIndex==0){
		alert(SELECT_FORM_STATE);
		$(RAQ_CUSTOMER_STATE).focus();
		return false;
	}
	if (!validateFormat($(RAQ_CUSTOMER_ZIP_CODE),FORMAT_CUSTOMER_ZIP_CODE,FIELD_CUSTOMER_ZIP_CODE)){
		return false;
	}
	if (!validateFormat($(RAQ_EMAIL),FORMAT_EMAIL,FIELD_EMAIL)){
		return false;
	}
	if (!validateFormat($(RAQ_CONFIRM_EMAIL),FORMAT_CONFIRM_EMAIL,FIELD_CONFIRM_EMAIL)){
		return false;
	}
	if ($(RAQ_EMAIL).value!=$(RAQ_CONFIRM_EMAIL).value){
		alert(EMAIL_NOT_MATCH);
		$(RAQ_CONFIRM_EMAIL).focus();
		return false
	}
	if($(RAQ_CONTACT_ME_PHONE).checked){
		if($(RAQ_AREA_CODE).value == BLANK || $(RAQ_PHONE1).value == BLANK || $(RAQ_PHONE2).value == BLANK){
			alert(VALID_PHONE_NUMBER);
			$(RAQ_AREA_CODE).focus();
			return false;
		}
	}
	
	
	

	//alert("[11]:"+$(RAQ_REQUEST_QUOTE));

	if ($(RAQ_REQUEST_QUOTE).value !=""){
		$(RAQ_MSG_TEXT_HIDDEN).value = $(RAQ_MSG_TEXT_HIDDEN).value + "\nRequest for:" + "Request a Quote";
	}
	if ($(RAQ_SCHEDULE_TEST_DRIVE).value !=""){
		$(RAQ_MSG_TEXT_HIDDEN).value = $(RAQ_MSG_TEXT_HIDDEN).value + "\nRequest for:" + "Schedule a Test Drive";
	}

	//alert("[12]");
	if($(RAQ_BUSINESS_USE).checked){
		if (!validateFormat($(RAQ_BUSINESS_NAME),FORMAT_CONFIRM_BUSINESS,FIELD_BUSINESS_NAME))
			return false;
		else{
			$(RAQ_MSG_TEXT_HIDDEN).value = $(RAQ_MSG_TEXT_HIDDEN).value + " " + MSG_LABEL_TYPE_REQUEST + MSG_LABEL_BUSINESS_USE;
			$(RAQ_MSG_TEXT_HIDDEN).value = $(RAQ_MSG_TEXT_HIDDEN).value + MSG_LABEL_BUSINESS_NAME + $(RAQ_BUSINESS_NAME).value;
		}
	}else{
		$(RAQ_MSG_TEXT_HIDDEN).value = MSG_LABEL_TYPE_REQUEST + MSG_LABEL_PERSONAL_USE + " " + $(RAQ_MSG_TEXT_HIDDEN).value;
	}
	/*if($(RAQ_BUSINESS_USE).checked){
		if (!validateFormat($(RAQ_BUSINESS_NAME),FORMAT_CONFIRM_BUSINESS,FIELD_BUSINESS_NAME))
			return false;
		else
			$(RAQ_MSG_TEXT_HIDDEN).value = $(RAQ_MSG_TEXT_HIDDEN).value + MSG_LABEL_BUSINESS_NAME + $(RAQ_BUSINESS_NAME).value;
	}*/
	//alert("$(RAQ_SCHEDULE_TEST_DRIVE).checked="+$(RAQ_SCHEDULE_TEST_DRIVE).checked);
	//if($(RAQ_SCHEDULE_TEST_DRIVE).checked){
		//alert("RAQ_TDAT_HOME="+$(RAQ_TDAT_HOME)+"; RAQ_TDAT_OFFICE="+$(RAQ_TDAT_OFFICE)+"; RAQ_TDAT_RETAILER="+$(RAQ_TDAT_RETAILER)+"; RAQ_TDAT_OTHER="+$(RAQ_TDAT_OTHER));
		if($(RAQ_TDAT_HOME)!=null && $(RAQ_TDAT_HOME).checked){
				$(RAQ_MSG_TEXT_HIDDEN).value = $(RAQ_MSG_TEXT_HIDDEN).value + MSG_LABEL_TDAT + $(RAQ_TDAT_HOME).value;
		} else if($(RAQ_TDAT_OFFICE)!=null  && $(RAQ_TDAT_OFFICE).checked){
				$(RAQ_MSG_TEXT_HIDDEN).value = $(RAQ_MSG_TEXT_HIDDEN).value + MSG_LABEL_TDAT + $(RAQ_TDAT_OFFICE).value;
		} else if($(RAQ_TDAT_RETAILER)!=null && $(RAQ_TDAT_RETAILER).checked){
				$(RAQ_MSG_TEXT_HIDDEN).value = $(RAQ_MSG_TEXT_HIDDEN).value + MSG_LABEL_TDAT + $(RAQ_TDAT_RETAILER).value;
		} else if($(RAQ_TDAT_OTHER)!=null && $(RAQ_TDAT_OTHER).checked){
				$(RAQ_MSG_TEXT_HIDDEN).value = $(RAQ_MSG_TEXT_HIDDEN).value + MSG_LABEL_TDAT + $(RAQ_TDAT_OTHER).value;
		}
	//}
	//alert("RAQ_MSG_TEXT="+$(RAQ_MSG_TEXT).value);
	if(!isDealerSelected()){
		alert(DELEAR_UNSELECTED);
		return false;
	}
	
	//Auto Fields
	$(RAQ_DIVISION_CODE).value = DIVISION_CODE;
	if (DUMMY_DEALER_TEST) {
		$(RAQ_BAC).value = 246435;           // Set test dealer BAC ID
		$(RAQ_CUSTOMER_ADDRESS2).value = ""; // Clear address2 field.
	} else {
		$(RAQ_BAC).value = dealerData[indexDealer][INDEX_DEALER_BAC];
	}
	$(RAQ_MAKE_DESC).value = MAKE_DESC;
	$(RAQ_DEALER_NAME).value = dealerData[indexDealer][INDEX_DEALER_NAME];
	$(RAQ_DEALER_ADDRESS).value = dealerData[indexDealer][INDEX_DEALER_STREET];
	$(RAQ_DEALER_CITY).value = dealerData[indexDealer][INDEX_DEALER_CITY];
	$(RAQ_DEALER_ZIP_CODE).value = dealerData[indexDealer][INDEX_DEALER_POSTAL_CODE];
	$(RAQ_ERROR_URL).value = FORM_URL_ERROR;
	$(RAQ_MODEL).value = VehicleData[INDEX_VEHICLE_NAME];
	$(RAQ_YEAR).value = VehicleData[INDEX_VEHICLE_YEAR];
	$(RAQ_OLA_ID).value = generateUTag();	
	
	//Cookies from Form
	dataForm = new Array();
	dataForm[INDEX_FORM_VEHICLE_TYPE] = VehicleData[INDEX_VEHICLE_TYPE];
	if($(RAQ_REQUEST_QUOTE).value="Yes")
		dataForm[INDEX_FORM_REQUEST_QUOTE] = true;
	else
		dataForm[INDEX_FORM_REQUEST_QUOTE] = false;

	if($(RAQ_SCHEDULE_TEST_DRIVE).value=="Yes")
		dataForm[INDEX_FORM_TEST_DRIVE] = true;
	else
		dataForm[INDEX_FORM_TEST_DRIVE] = false;

	dataForm[INDEX_FORM_ASK_QUESTION] = false;//$(RAQ_ASK_QUESTION).checked;

	dataForm[INDEX_FORM_FIRST_NAME] = $(RAQ_FIRST_NAME).value;
	dataForm[INDEX_FORM_LAST_NAME] = $(RAQ_LAST_NAME).value;
	dataForm[INDEX_FORM_CUSTOMER_ADDRESS] = $(RAQ_CUSTOMER_ADDRESS).value;
	dataForm[INDEX_FORM_CUSTOMER_CITY] = $(RAQ_CUSTOMER_CITY).value;
	dataForm[INDEX_FORM_CUSTOMER_ZIP_CODE] = $(RAQ_CUSTOMER_ZIP_CODE).value;
	dataForm[INDEX_FORM_CUSTOMER_STATE] = getSelectValue(RAQ_CUSTOMER_STATE);
	dataForm[INDEX_FORM_EMAIL] = $(RAQ_EMAIL).value;
	dataForm[INDEX_FORM_CONFIRM_EMAIL] = $(RAQ_CONFIRM_EMAIL).value;
	if($(RAQ_CONTACT_ME_EMAIL).checked)
		dataForm[INDEX_FORM_CONTACT_BY] = $(RAQ_CONTACT_ME_EMAIL).value;
	else
		dataForm[INDEX_FORM_CONTACT_BY] = $(RAQ_CONTACT_ME_PHONE).value;

	dataForm[INDEX_FORM_AREA_CODE] = $(RAQ_AREA_CODE).value;
	dataForm[INDEX_FORM_PHONE1] = $(RAQ_PHONE1).value;
	dataForm[INDEX_FORM_PHONE2] = $(RAQ_PHONE2).value;
	dataForm[INDEX_FORM_DIVISION_CODE] = $(RAQ_DIVISION_CODE).value;
	dataForm[INDEX_FORM_PVC] = $(RAQ_PVC).value;
	dataForm[INDEX_FORM_PVC_DESC] = $(RAQ_PVC_DESC).value;
	dataForm[INDEX_FORM_BAC] = $(RAQ_BAC).value;
	dataForm[INDEX_FORM_DEALER_NAME] = $(RAQ_DEALER_NAME).value;
	dataForm[INDEX_FORM_DEALER_ADDRESS] = $(RAQ_DEALER_ADDRESS).value;
	dataForm[INDEX_FORM_DEALER_CITY] = $(RAQ_DEALER_CITY).value;
	dataForm[INDEX_FORM_DEALER_ZIP_CODE] = $(RAQ_DEALER_ZIP_CODE).value;
	dataForm[INDEX_FORM_SUCCESS_URL] = FORM_URL_SUCCESS;
	dataForm[INDEX_FORM_ERROR_URL] = $(RAQ_ERROR_URL).value;
	dataForm[INDEX_FORM_MODEL] = $(RAQ_MODEL).value;
	dataForm[INDEX_FORM_YEAR] = $(RAQ_YEAR).value;
	dataForm[INDEX_FORM_CUSTOMER_ADDRESS2] = $(RAQ_CUSTOMER_ADDRESS2).value;
	dataForm[INDEX_FORM_REQUEST_FOR] = "";
	dataForm[INDEX_FORM_REF] = referencePage;
	dataForm[INDEX_FORM_OLA_ID] = $(RAQ_OLA_ID).value;
	if($(RAQ_PERSONAL_USE).checked)
		dataForm[INDEX_FORM_BI] = $(RAQ_PERSONAL_USE).value;
	else
		dataForm[INDEX_FORM_BI] =  $(RAQ_BUSINESS_USE).value;
	//Concate both hidden and visible textarea.
	$(RAQ_MSG_TEXT_HIDDEN).value = $(RAQ_MSG_TEXT_HIDDEN).value + $(RAQ_MSG_TEXT).value;
	//alert("RAQ_MSG_TEXT_HIDDEN:"+$(RAQ_MSG_TEXT_HIDDEN).value);
	dataForm[INDEX_FORM_MSG_TEXT] = replaceChar($(RAQ_MSG_TEXT_HIDDEN).value,"=","*");
	//alert(dataForm[INDEX_FORM_MSG_TEXT]);
	dataForm[INDEX_FORM_MAKE_DESC] = $(RAQ_MAKE_DESC).value;
	//dataForm[INDEX_FORM_DEALER_SELECTED] = indexDealer;
	dataForm[INDEX_FORM_DEALER_SELECTED] = 0;

	if($(RAQ_BUSINESS_NAME).value !=""){
		dataForm[INDEX_FORM_BUSINESS_NAME] = $(RAQ_BUSINESS_NAME).value;
	}
	else{
		dataForm[INDEX_FORM_BUSINESS_NAME] = "NA";
	}
	if(!((VehicleData[INDEX_VEHICLE_INTCOLOR] == null || VehicleData[INDEX_VEHICLE_INTCOLOR] == "") || (dataForm[INDEX_FORM_REF] == "lad" || dataForm[INDEX_FORM_REF] == "default"))){
		$(RAQ_EXT_COLOR).value = VehicleData[INDEX_VEHICLE_EXTCOLOR];
		$(RAQ_INT_COLOR).value = VehicleData[INDEX_VEHICLE_INTCOLOR];
	}
//	rpoList =  new Array();
//	if(form.msgUserSelectedOptions != undefined) {
//		rpoSelectedOptions = $A(form.msgUserSelectedOptions);
//		rpoSelectedOptions.each(function(item, index){
//			var rpo = {
//				"code": item.value.substring(0,item.value.indexOf('-')),
//				"description": item.value.substring(item.value.indexOf('-')+1)
//			};
//			rpoList.extend([rpo]);
//		});
//	}
//	
//	VehicleData[INDEX_VEHICLE_RPO_LIST] = rpoList;
	//Change  below by unknown are preventing the list of Dealers to be shown in the thank you page, only storing the first dealer in dealerData1
	
	//Following changes made to avoid large dealer data to be set in Cookie which was failing
	dealerData1 = new Array();
	dealerData1[0] = dealerData[indexDealer]; //<--- only first dealer, not all retrieved
	var cookieArr = new Array(dealerData1,VehicleData,dataForm);
	
	//Test for IE version < 8, which appears to have a problem retrieving the location cookies consistently
	//in this case will continue to send cookie but also encode json as querystring parameter.
	var method = ( mrm.$.browser.msie && (parseInt(mrm.$.browser.version, 10) < 8))?"ie7":METHOD_TO_INTERACTIVE_THK;
	switch (method){
		case "u":
			var replaces = {JSON : JSON.encode(cookieArr)};
			$(RAQ_SUCCESS_URL).value = replaceChar(FORM_URL_SUCCESS + FORM_URL_SUCCESS_PARAM.substitute(replaces),"\"","'");

			break;
		case "ie7":
			gmds.setCookie(COOKIE_RAQ_DATA,JSON.encode(cookieArr).replace(/@/g,'%40'),COOKIE_RAQ_EXPIRE_MS, "/", RAQ_COOKIE_HOSTNAME);
			gmds.setCookie(COOKIE_RAQ_DEALERS_DATA,JSON.encode(dealerData).replace(/@/g,'%40'),COOKIE_RAQ_EXPIRE_MS, "/", RAQ_COOKIE_HOSTNAME);
			var sUrl = FORM_URL_SUCCESS+"?json="+encodeURIComponent(Ext.encode(cookieArr));
			postFormData(form,action);
			location.href = sUrl;
			break;
		default :
			gmds.setCookie(COOKIE_RAQ_DATA,JSON.encode(cookieArr).replace(/@/g,'%40'),COOKIE_RAQ_EXPIRE_MS, "/", RAQ_COOKIE_HOSTNAME);
			gmds.setCookie(COOKIE_RAQ_DEALERS_DATA,JSON.encode(dealerData).replace(/@/g,'%40'),COOKIE_RAQ_EXPIRE_MS, "/", RAQ_COOKIE_HOSTNAME);
			$(RAQ_SUCCESS_URL).value = FORM_URL_SUCCESS;	
			form.action = action;	
			form.submit();
	}
	if(document.MessagingDealerForm.intends_downpayment.checked && !(validateAmount(document.MessagingDealerForm.downpayment,document.MessagingDealerForm.intends_downpayment.checked, 'Down Payment'))){
		return false;
	}
	
	return true;
}

function submitForm(){
	var zipCode = $('raqcustomerzipcode').value;
	if(!validateForm(document.MessagingDealerForm) || !isRealZipCode(zipCode, true)){
		return false;
	}
	//document.MessagingDealerForm.submit();
}

//Onchange function of personal Use
//Param Na -> Enable business name value
function onChangePersonalUse(){
	$(RAQ_BUSINESS_NAME).disabled = true;
}

//Onchange function of business use
//Param Na -> Disable the name value
function onChangeBusinessUse(){
	$(RAQ_BUSINESS_NAME).disabled = false;
}

function isSelectedText(field) {
	var selectedText= "";
	if (document.selection != undefined) // I.E.
	  {
	    var sel = document.selection.createRange();
	    selectedText = sel.text;
	  }
	  else if (field.selectionStart != undefined) // Mozilla
	  {
	  	 var startPos = field.selectionStart;
	     var endPos = field.selectionEnd;
	   	 selectedText = field.value.substring(startPos, endPos);
	  }
	  if (selectedText != "") {
	  	return true;
	  }
	  return false;
}

function inputValueF(src, len, evt, target) {
	try {
		var charCode = (evt.which) ? evt.which : event.keyCode;
		if (!isSelectedText(src)) { // Did user highlighted some text from the input?
			if (charCode < 31) {
				return true;
			}
			if ((charCode > 31 && (charCode < 48 || charCode > 57))) {
				return false;
			} else if (src.value.length >= len) {
				target.focus();
				target.value = String.fromCharCode(charCode);
				return false;
			}else{
				return true;
			}
		} else if(isDigit(String.fromCharCode(charCode))){ // Check if replacing char is a digit.
			return true;
		} else { return false; }
	} catch (e) {
		return true;
	}
}

// Following code manages the event when user pastes a full phone number in the area code.

function managePhonePaste(from) {
	window.setTimeout("checkPastedValue('"+from+"');", 10);
}

function checkPastedValue(from) {

	var pastedValue="";
	if(from=="area")
	 pastedValue = $('raqareacode').value;
	 if(from=="p1")//phone1
	 pastedValue = $('raqphone1').value;
	 if(from=="p2")//phone2
	 pastedValue = $('raqphone2').value;

	var areaCode='';
	var phone1='';
	var phone2='';

	for(i=0; i < pastedValue.length; i++) {
		if (isDigit(pastedValue.charAt(i)))	 {
			if (areaCode.length < 3 && (from=="area")) {
				areaCode += pastedValue.charAt(i);
			} else if(phone1.length < 3 && (from=="area"||from=="p1")) {
				phone1 += pastedValue.charAt(i);
			} else if (phone2.length < 4) {
				phone2 += pastedValue.charAt(i);
			}
		}
	}


	if (areaCode.length > 0) {
		$('raqareacode').value = areaCode;
		$('raqareacode').focus();
	} else if(from=="area") {
		$('raqareacode').value = "";
	}
	if (phone1.length > 0) {
		$('raqphone1').value = phone1;
		$('raqphone1').focus();
	}else if(from=="p1")$('raqphone1').value = "";
	if (phone2.length > 0) {
		$('raqphone2').value = phone2;
		$('raqphone2').focus();
	}else if(from=="p2") $('raqphone2').value = "";
}

function isDigit(num) {
	var string="1234567890";
	if (string.indexOf(num)!=-1){
		return true;
	}
	return false;
}

// end of manaing phone paste event.

function inputValue(src, len, mode, evt){
	try{
		var charCode = (evt.which) ? evt.which : event.keyCode;
		if (!isSelectedText(src)) {
			if (charCode<31)
				return true;
			if (src.value.length>=len)
				return false;
			switch (mode){
				case 1: //Alphanumeric
					if ((charCode >=48 && charCode <=57) ||	(charCode >=65 && charCode <=90) ||	(charCode >=97 && charCode <=122))
						return true
					else
						return false;
				break;
				case 2: //Numeric
					if ( (charCode > 31 && (charCode < 48 || charCode > 57)))
						return false;
					else
						return true;
				break;
				case 3: //Letters
					if ( (charCode >=65 && charCode <=90) || (charCode >=97 && charCode <=122) )
						return true;
					else
						return false;
				break;
				case 4: //Blocks comma and dot
					if ( (charCode !=46) && (charCode !=44) )
						return true;
					else
						return false;
				break;
				case 5: //Letters and space
					if ( (charCode >=65 && charCode <=90) || (charCode >=97 && charCode <=122) || charCode == 32 )
						return true;
					else
						return false;
				break;
				case 6: //Letters, space and period.
					if ( (charCode >=65 && charCode <=90) || (charCode >=97 && charCode <=122) || charCode == 32 || charCode == 46 )
						return true;
					else
						return false;
				break;
				case 7: //all.
					if ( (charCode >=31 && charCode <=122))
						return true;
					else
						return false;
				break;
			}
		}else if(isDigit(String.fromCharCode(charCode))){
			return true;
		} else { return false; }
		return true;
	}catch(e){
		//TODO:// Revise for tabbing to work on form
		//return false;
		return true;
	}
}

function setSelRange(inputEl, selStart, selEnd) {
	if (inputEl.setSelectionRange) {
			inputEl.focus();
			inputEl.setSelectionRange(selStart, selEnd);
		}else
			if (inputEl.createTextRange) {
				var range = inputEl.createTextRange();
				range.collapse(true);
				range.moveEnd('character', selEnd);
				range.moveStart('character', selStart);
				range.select();
			}
}

function limitChars(textArea, length) {
	if (textArea.value.length > length) {
		textArea.value = textArea.value.substr(0,length);
	}
}

function validateFormat(element,format,field){
	if (element.value==''){
		alert(YOU_MUST_ENTER+field);
		element.focus();
		return false;
	}
	if (format!=''){
		var regex = format;
		if(!regex.test(element.value)){
			alert(PLEASE_ENTER_VALID+field);
			element.focus();
			return false;
		}
	}
	return true;
}

function paramHandler(){
	var bac = getURLParam(PARAM_BAC);
	var pvc = getURLParam(PARAM_PVC);
	if(pvc != ""){
		$(RAQ_PVC).value = pvc;//alert("paramHandler(), pvc="+$(RAQ_PVC).value);
	}
	var year = getURLParam(PARAM_YEAR);
	var st = getURLParam(PARAM_ST);
	//var zip = getURLParam(PARAM_ZIP);
	var zip = null; //Requeriment changed
	var reg = null;
	var loc = null;
	try{
		loc = mrm.cmp.zc.getLocation();
		zip = loc.zipcode;
		$(LOCATE_ZIP).value = zip;
	}catch(e){
		loc = null;
	}
	//$(LOCATE_REGION).length = 0;
	//$(LOCATE_COUNTY).length = 0;
	/*
	//TODO: Check this logic if required then enable and add corresponding hidden variable
	if(st == "true"){
		$(RAQ_SCHEDULE_TEST_DRIVE).checked = "true";
		selectTD();
	}else{
		$(RAQ_REQUEST_QUOTE).checked = "true";
	}
	*/
	if(zip != "" && zip != "Zip" && zip != null){
		setZipCodeData(zip,true);
		if(bac=="")
			insertDealers();
	}else{
		if(loc!=null){
			try{
				reg = loc.region;
				setZipCodeData(loc.zipcode,true);
				setRegionCodeData(reg.code);
				$(LOCATE_ZIP).value = $(ZIP_CODE).value;
				if(bac=="")
					insertDealers();
			}catch(e){}
		}
	}
	if(pvc != "" && year != "" && bac!=""){
		if(getZipCodeData()!=null){
			SELECTED_PVC = pvc;
			SELECTED_YEAR = year;
			inserVehicle(year,pvc);
			insertDealers(bac);
		}else{
			$(NAME_DIV_VEHICLES).innerHTML = LOADING_IMG;
			$(NAME_DIV_VEHICLES).style.display="block";
			$(NAME_DIV_DROPDOWNS).style.display="none";
			setRefreshVehicle(true);
			insertDealers(bac);
		}
	}else{
		if(pvc != "" && year != ""){
			SELECTED_PVC = pvc;
			SELECTED_YEAR = year;
			inserVehicle(year,pvc);
		}
		if(bac != ""){
			insertDealers(bac);
		}
	}
	try{
		if(getDefaultLocation().region.code!=undefined){
			setRegionCodeData(getDefaultLocation().region.code);
		}
	}catch(e){}
	checkToHidden();
}

//Hide the from with alpha
//Param, boolean -> true hide, false show
function hiddenForm(value){
	if(value){
		//$(NAME_DIV_HIDDEN).style.display="none";
		//$(NAME_DIV_HIDDEN).style.opacity = 5/10;
		//$(NAME_DIV_HIDDEN).style.filter = 'alpha(opacity=' + 5*10 + ')';
		$(RAQ_CUSTOMER_ZIP_CODE).value = getZipCodeData();
		//$(RAQ_CUSTOMER_STATE).disabled = false;

		$(NAME_DIV_MESSAGE).style.display="none";
		$(NAME_STATE_DROPDOWN).style.visibility="visible";
	}else{
		//$(NAME_DIV_MESSAGE).style.display="block";
		//$(NAME_STATE_DROPDOWN).style.visibility="hidden";

		//$(NAME_DIV_HIDDEN).style.display="block";
		//$(NAME_DIV_HIDDEN).style.opacity = 5/10;
		//$(NAME_DIV_HIDDEN).style.filter = 'alpha(opacity=' + 5*10 + ')';
		//$(RAQ_CUSTOMER_STATE).disabled = true;
		/*
		if(isVehicleSelected()){
			$(NAME_MSG_VEHICLE).style.display="none";
		}
		else{
			$(NAME_MSG_VEHICLE).style.display="block";
		}

		if(isDealerSelected()){
			$(NAME_MSG_DEALER).style.display="none";
		}
		else{
			$(NAME_MSG_DEALER).style.display="block";
		}
		*/

	}
}

//Evaluate if the form need to hide or not
//Param Na
function checkToHidden(){
	hiddenForm(false);
	if(isVehicleSelected() && isDealerSelected()){
		//hiddenForm(true);
	}else{
		//hiddenForm(false);
	}
}
//Show the information referente to new zipcode
//Param Na -> Validate the the zipcode
function ziplocate(){
	if(validateZip($(ZIP_CODE).value)){
		$(LOCATE_SELECT_CONTY).length = 0;
		$(LOCATE_SELECT_REGION).length = 0;
		setDealerSelected(false);
		checkToHidden();
		$(LOCATE_ZIP).value = $(ZIP_CODE).value;
		$(NAME_DIV_LOCATE_ZIPCODE).style.display="block";
		$(NAME_DIV_DEALERS).style.display="none";
		$(NAME_LBL_COUNTY).style.display="none";
		$(NAME_LBL_REGION).style.display="none";
		//getNextCOStep('dlDialog','zipcode');
		$(NAME_ZIP_CHANGE).style.visibility="hidden";
		$(NAME_ZIP_CHANGE).style.display="none";
	}
}

function locateDealerOnZipChange(fld){
	if($(NAME_DIV_LOCATE_ZIPCODE).style.display =="block" || $(NAME_DIV_LOCATE_ZIPCODE).style.display ==""){
		if(fld.value != ""){
			// First we need to empty all remaining fields but the zip code
			$(FORM_DEALER_NAME_2).value = "";
			$(FORM_CITY_NAME_2).value = "";
			$(FORM_STATE_NAME_2).selectedIndex = 0;
			$(FORM_CITY_NAME_1).value = "";
			$(FORM_STATE_NAME_1).selectedIndex = 0;
			// Then we assign the zip and perform the search
			$(LOCATE_ZIP).value=fld.value;
			loadinglocate();
		}
	}
}

//Set the new cookie with the information request. (Update the cookie with the new data)
//Param Na
function loadinglocate(){
	var zipValidated=false;
	showDealerResultsForAdvanceSearch = false;
	flag = false;
	if($(NAME_DIV_ADVANCE_SEARCH).style.display=="block" ){
		if($(FORM_DEALER_NAME_2).value !=""){
			//alert("Validate dealer name search");
			if($(FORM_CITY_NAME_2).value ==""){
				alert(PLEASE_SELECT_CITY);
				$(FORM_CITY_NAME_2).focus();
				showDealerResultsForAdvanceSearch = false;
				return false;
			}
			if ($(FORM_STATE_NAME_2).selectedIndex == 0){
				alert(DIRECTIONS_STATE_UNSELECTED);
				$(FORM_STATE_NAME_2).focus();
				showDealerResultsForAdvanceSearch = false;
				return false;
			}
			showDealerResultsForAdvanceSearch = true;
			insertDealers();
			return true;
		}
		else if ($(FORM_CITY_NAME_1).value !="" || $(FORM_STATE_NAME_1).selectedIndex > 0){
			if($(FORM_CITY_NAME_1).value ==""){
				alert(PLEASE_SELECT_CITY);
				$(FORM_CITY_NAME_1).focus();
				showDealerResultsForAdvanceSearch = false;
				return false;
			}
			if ($(FORM_STATE_NAME_1).selectedIndex == 0){
				alert(DIRECTIONS_STATE_UNSELECTED);
				$(FORM_STATE_NAME_1).focus();
				showDealerResultsForAdvanceSearch = false;
				return false;
			}
			showDealerResultsForAdvanceSearch = true;
			insertDealers();
			return true;
		}
		//else if($(LOCATE_ZIP).value =="" || $(LOCATE_ZIP).value == SHORT_ZIP_TEXT){ // this cause an error on all browsers
		else if($(LOCATE_ZIP).value ==""){
			alert(PLEASE_ENTER_CRITERIA);
			$(LOCATE_ZIP).focus();
			showDealerResultsForAdvanceSearch = false;
			return false;
		}
		else{
			showDealerResultsForAdvanceSearch = false;
			setZipCodeData($(LOCATE_ZIP).value,true);
			zipValidated=true;//in line 569 insertDealers() is called again so this will control it.
			insertDealers();
			
		}

	}
	else{
		if (!validateFormat($(LOCATE_ZIP),FORMAT_CUSTOMER_ZIP_CODE,FIELD_CUSTOMER_ZIP_CODE)){
			showDealerResultsForAdvanceSearch = false;
			return false;
		}
	}

	//if($(LOCATE_REGION).style.display=="block" || getNextCOStep('dlDialog','zipcode')!=null){

		setZipCodeData($(LOCATE_ZIP).value,true);
		showDealerResultsForAdvanceSearch = false;
		
		if(!zipValidated){
			insertDealers();			
		}
		
		/* removed for zcpp 2.0 
		zipDialogLocation = new Location();
		var counties = vZipInfo.getCounties();
		if ( counties.length ) {
			var regions = vZipInfo.getRegions(counties[0].code);
			if (regions.length ) {
				zipDialogLocation.zipcode = $(LOCATE_ZIP).value;
				zipDialogLocation.county = new County(counties[0].code,counties[0].description);
				zipDialogLocation.region = new Region(regions[0].code,regions[0].description, vZipInfo.getDmaByRegion(regions[0].code));
				zipDialogLocation.isMultiCounty = vZipInfo.isMultiCounty;
				zipDialogLocation.isMultiRegion = vZipInfo.isMultiRegion;
				
						
				if (vZipInfo.isMultiCounty) {			
			    	saveDefaultLocation(zipDialogLocation.zipcode,"", "", zipDialogLocation.isMultiCounty, zipDialogLocation.isMultiRegion);
			    }else{
					saveDefaultLocation(zipDialogLocation.zipcode, zipDialogLocation.region, zipDialogLocation.county, zipDialogLocation.isMultiCounty, zipDialogLocation.isMultiRegion);
				}
			}
		}*/
		
	//}
}

function sellAllDealers(){
	flag = true;
	insertDealers("SEEALL");		
	$('sellAllDealersLink').setStyle('display','none');
}
//Get the region selected
//Param NA
//Return the Region
function getRegion(){
	if($(LOCATE_REGION).length==0)
		return "";
	else
		return getSelectValue(LOCATE_REGION);
}

//Get the region selected
//Param NA
//Return the County
function getCounty(){
	if($(LOCATE_COUNTY).length==0)
		return "";
	else
		return getSelectValue(LOCATE_COUNTY);
}

//Onload event
AttachEvent(window, "load", paramHandler);

