
function submitNewsletterForm()
{
//this function swaps on/off the error message div blocks as necessary for the Email Newsletter signup form


//get all the ids of the error divs and assign them to a variable
var opttarget = document.getElementById( "optdiv" );
var ziptarget = document.getElementById( "zipdiv" );
//var ziptext = document.getElementById( "ziptext" );
var emailtarget = document.getElementById( "emaildiv" );
var fnametarget = document.getElementById( "fnamediv" );
var lnametarget = document.getElementById( "lnamediv" );
var titletarget = document.getElementById( "titlediv" );

//test the zip code using the regular expression
var zip=document.gmsurvey.Zip.value;
var reZip = new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);
if (!reZip.test(zip))
{
 ziptarget.style.display='block';
document.getElementById( "ziptext" ).style.color='#CC0000';
   }
else
{
ziptarget.style.display='none';
document.getElementById( "ziptext" ).style.color='#585858';
}

//check email using email validation function
var email=document.gmsurvey.Email.value;
var validEmail=isValidEmail(email,true);
if (!validEmail)
{
emailtarget.style.display='block';
document.getElementById( "emailtext" ).style.color='#CC0000';
}
else
{
 emailtarget.style.display='none';
document.getElementById( "emailtext" ).style.color='#585858';
 }

//check for empty values in the rest of the fields
if(document.gmsurvey.Fname.value=="")
{
fnametarget.style.display='block';
document.getElementById( "fnametext" ).style.color='#CC0000';
  }
else {
fnametarget.style.display='none';
document.getElementById( "fnametext" ).style.color='#585858';
}
if(document.gmsurvey.Lname.value=="")
{
 lnametarget.style.display='block';
document.getElementById( "lnametext" ).style.color='#CC0000';
}
else {
 lnametarget.style.display='none';
document.getElementById( "lnametext" ).style.color='#585858';
 }
if (document.gmsurvey.UDValue1.value=="")
{
 titletarget.style.display='block';
document.getElementById( "titletext" ).style.color='#CC0000';
 }
else {
 titletarget.style.display='none';
document.getElementById( "titletext" ).style.color='#585858';
 }
if (!document.gmsurvey.UDValue2.checked)
{
 opttarget.style.display='block';
document.getElementById( "opttext" ).style.color='#CC0000';
 }
else {
 opttarget.style.display='none';
document.getElementById( "opttext" ).style.color='#585858';
 }

setTimeout('trySubmit(\"newsletter\")',1000);

}

function submitMovinPartsForm()
{
//this function swaps on/off the error message div blocks as necessary for the Email Newsletter signup form
var zip=document.form1.Zip.value;
var reZip = new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);
var rePhone = new RegExp(/(^\d{10}$)/);
//get all div ids
var ziptarget = document.getElementById( "zipdiv" );
var emailtarget = document.getElementById( "emaildiv" );
var fnametarget = document.getElementById( "fnamediv" );
var lnametarget = document.getElementById( "lnamediv" );
var biznametarget = document.getElementById( "biznamediv" );
var bizaddytarget = document.getElementById( "bizaddydiv" );
var citytarget = document.getElementById( "citydiv" );
var statetarget = document.getElementById( "statediv" );
var dealertarget = document.getElementById( "dealernamediv" );
var dealercontacttarget = document.getElementById( "dealercontactdiv" );
var dealerphonetarget = document.getElementById( "dealerphonediv" );
var bizphonetarget = document.getElementById( "bizphonediv" );

//concat the 3 phone number fields and verify them using a regular expression
var concatDealerPhone = document.form1.dlArea.value + document.form1.dlPrefix.value + document.form1.dlSuffix.value;
var concatBizPhone = document.form1.DayArea.value + document.form1.DayPrefix.value + document.form1.DaySuffix.value;
if (!rePhone.test(concatBizPhone)) { bizphonetarget.style.display='block';
document.getElementById( "bizphonetext" ).style.color='#CC0000';}
else { bizphonetarget.style.display='none';
document.getElementById( "bizphonetext" ).style.color='#585858'; }
if (!rePhone.test(concatDealerPhone)) { dealerphonetarget.style.display='block';
document.getElementById( "dealerphonetext" ).style.color='#CC0000';}
else {
document.getElementById( "dealerphonetext" ).style.color='#585858';
	dealerphonetarget.style.display='none';
	document.form1.UDValue4.value=concatDealerPhone;
}

//do the rest of the validation
if (!reZip.test(zip)) { ziptarget.style.display='block';
document.getElementById( "ziptext" ).style.color='#CC0000';}
else { ziptarget.style.display='none';
document.getElementById( "ziptext" ).style.color='#585858';  }
var email=document.form1.Email.value;
var validEmail=isValidEmail(email,true);
if (!validEmail){ emailtarget.style.display='block';
document.getElementById( "emailtext" ).style.color='#CC0000'; }
else { emailtarget.style.display='none';
document.getElementById( "emailtext" ).style.color='#585858'; }
if(document.form1.Fname.value==""){ fnametarget.style.display='block';
document.getElementById( "fnametext" ).style.color='#CC0000';  }
else { fnametarget.style.display='none';
document.getElementById( "fnametext" ).style.color='#585858'; }
if(document.form1.Lname.value==""){ lnametarget.style.display='block';
document.getElementById( "lnametext" ).style.color='#CC0000';  }
else { lnametarget.style.display='none';
document.getElementById( "lnametext" ).style.color='#585858';  }
if(document.form1.UDValue1.value==""){ biznametarget.style.display='block';
document.getElementById( "biznametext" ).style.color='#CC0000';  }
else { biznametarget.style.display='none';
document.getElementById( "biznametext" ).style.color='#585858';  }
if(document.form1.Addr1.value==""){ bizaddytarget.style.display='block';
document.getElementById( "bizaddytext" ).style.color='#CC0000';  }
else { bizaddytarget.style.display='none';
document.getElementById( "bizaddytext" ).style.color='#585858';  }


if(document.form1.City.value==""){ citytarget.style.display='block';
document.getElementById( "citytext" ).style.color='#CC0000'; }
else { citytarget.style.display='none';
document.getElementById( "citytext" ).style.color='#585858'; }
if(document.form1.State.value==""){ statetarget.style.display='block';
document.getElementById( "statetext" ).style.color='#CC0000'; }
else { statetarget.style.display='none';
document.getElementById( "statetext" ).style.color='#585858';  }


if(document.form1.UDValue2.value==""){ dealertarget.style.display='block';
document.getElementById( "dealernametext" ).style.color='#CC0000';}
else { dealertarget.style.display='none';
document.getElementById( "dealernametext" ).style.color='#585858';}
if(document.form1.UDValue3.value==""){ dealercontacttarget.style.display='block';
document.getElementById( "contacttext" ).style.color='#CC0000';  }
else { dealercontacttarget.style.display='none';
document.getElementById( "contacttext" ).style.color='#585858'; }

setTimeout('trySubmit(\"movinparts\")',1000);
}


function submitSuspectPartsForm()
{
//this function swaps on/off the error message div blocks as necessary for the Email Newsletter signup form
var zip=document.infoForm.UDValue12.value;
var reZip = new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);
var rePhone = new RegExp(/(^\d{10}$)/);
//get all div ids
var ziptarget = document.getElementById( "zipdiv" );
var emailtarget = document.getElementById( "emaildiv" );
var contacttarget = document.getElementById( "contactdiv" );
var contacttarget2 = document.getElementById( "contactdiv2" );
var parttarget = document.getElementById( "partdiv" );
var purchase1target = document.getElementById( "purchasenonediv" );
var suspecttarget = document.getElementById( "suspectdiv" );

if(document.infoForm.UDValue12.value==""){ purchase1target.style.display='block';
document.getElementById( "ziptext" ).style.color='#CC0000';}
else { purchase1target.style.display='none';
document.getElementById( "ziptext" ).style.color='#000000';}

//do the rest of the validation
if (zip!=""){
if (!reZip.test(zip)) { ziptarget.style.display='block';
document.getElementById( "ziptext" ).style.color='#CC0000';}
else { ziptarget.style.display='none';
document.getElementById( "ziptext" ).style.color='#000000';  }
}
var email=document.infoForm.Email.value;
var validEmail=isValidEmail(email,true);
if (!validEmail){ emailtarget.style.display='block';
document.getElementById( "emailtext" ).style.color='#CC0000'; }
else { emailtarget.style.display='none';
document.getElementById( "emailtext" ).style.color='#000000'; }

// NEW
if(document.infoForm.UDValue1[0].checked==false && document.infoForm.UDValue1[1].checked==false){
 contacttarget.style.display='block';
document.getElementById( "contacttext" ).style.color='#CC0000'; }
else { contacttarget.style.display='none';
document.getElementById( "contacttext" ).style.color='#000000';  }


if(document.infoForm.UDValue1[0].checked==true && document.infoForm.UDValue1[1].checked==false){

if(document.infoForm.UDValue2[0].checked==false && document.infoForm.UDValue2[2].checked==false && document.infoForm.UDValue2[2].checked==false && document.infoForm.UDValue2[3].checked==false){
 contacttarget2.style.display='block';
document.getElementById( "methodOFContact" ).style.color='#CC0000'; }
else { contacttarget2.style.display='none';
document.getElementById( "methodOFContact" ).style.color='#000000';  }

}

//


if(document.infoForm.UDValue4.value==""){ parttarget.style.display='block';
document.getElementById( "parttypetext" ).style.color='#CC0000'; }
else { parttarget.style.display='none';
document.getElementById( "parttypetext" ).style.color='#000000';  }

if(document.infoForm.UDValue7.value==""){ suspecttarget.style.display='block';
document.getElementById( "suspecttext" ).style.color='#CC0000'; }
else { suspecttarget.style.display='none';
document.getElementById( "suspecttext" ).style.color='#000000';  }

if(document.infoForm.UDValue8.value==""){ purchase1target.style.display='block';
document.getElementById( "nametext" ).style.color='#CC0000'; }
else { purchase1target.style.display='none';
document.getElementById( "nametext" ).style.color='#000000';  }

if(document.infoForm.UDValue9.value==""){ purchase1target.style.display='block';
document.getElementById( "addresstext" ).style.color='#CC0000'; }
else { purchase1target.style.display='none';
document.getElementById( "addresstext" ).style.color='#000000';  }

if(document.infoForm.UDValue10.value==""){ purchase1target.style.display='block';
document.getElementById( "citytext" ).style.color='#CC0000'; }
else { purchase1target.style.display='none';
document.getElementById( "citytext" ).style.color='#000000';  }

if(document.infoForm.UDValue11.value==""){ purchase1target.style.display='block';
document.getElementById( "statetext" ).style.color='#CC0000'; }
else { purchase1target.style.display='none';
document.getElementById( "statetext" ).style.color='#000000';  }




if(document.infoForm.UDValue13.value==""){ purchase1target.style.display='block';
document.getElementById( "countrytext" ).style.color='#CC0000';  }
else { purchase1target.style.display='none';
document.getElementById( "countrytext" ).style.color='#000000'; }

setTimeout('trySubmit(\"suspect\")',1000);

}
function isValidEmail(email, required) {
    if (required==undefined) {   // if not specified, assume it's required
        required=true;
    }
    if (email==null) {
        if (required) {
            return false;
        }
        return true;
    }
    if (email.length==0) {
        if (required) {
            return false;
        }
        return true;
    }
    if (! allValidChars(email)) {  // check to make sure all characters are valid
        return false;
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
        return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
        return false;
    } else if (email.indexOf("@") == email.length) {  // @ must not be the last character
        return false;
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
	return false;
    } else if (email.indexOf(".") == email.length) {  // . must not be the last character
	return false;
    }
    return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}

function submitContactForm()
{
document.formContact.MainEmailSender.value=document.formContact.Email.value;
var emailtarget = document.getElementById( "emaildiv" );
var feedbacktarget = document.getElementById( "feedbackdiv" );
var ziptarget = document.getElementById( "zipdiv" );
var phonetarget = document.getElementById( "phonediv" );
var email=document.formContact.Email.value;
var feedback=document.formContact.UDValue1.value;
var zip=document.formContact.Zip.value;
var reZip = new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);
var rePhone = new RegExp(/(^\d{10}$)/);
if (zip!="")
{
	if (!reZip.test(zip)) {
	ziptarget.style.display='block';
	document.getElementById( "ziptext" ).style.color='#CC0000';
	}
	else { ziptarget.style.display='none';
	document.getElementById( "ziptext" ).style.color='#585858';
	 }
}
var concatPhone="";
if (document.formContact.DayArea.value!="" || document.formContact.DayPrefix.value != "" || document.formContact.DaySuffix.value !="")
{
 concatPhone = document.formContact.DayArea.value + document.formContact.DayPrefix.value + document.formContact.DaySuffix.value;
}
if (concatPhone!="")
{
	if (!rePhone.test(concatPhone)) {
document.getElementById( "phonetext" ).style.color='#CC0000';
	phonetarget.style.display='block';  }
	else {
	document.getElementById( "phonetext" ).style.color='#585858';
	phonetarget.style.display='none';  }
}

var validEmail=isValidEmail(email,true);
if (!validEmail){ emailtarget.style.display='block';
document.getElementById( "emailtext" ).style.color='#CC0000';   }
else { emailtarget.style.display='none';
document.getElementById( "emailtext" ).style.color='#585858';  }
if(document.formContact.UDValue1.value==""){
feedbacktarget.style.display='block';
document.getElementById( "messagetext" ).style.color='#CC0000'; }
else { feedbacktarget.style.display='none';
document.getElementById( "messagetext" ).style.color='#585858'; }
setTimeout('trySubmit(\"contact\")',1000);
}
// setTimeout explanation:
// Sometimes, the submit occurrs almost simultaneous to the divs being switched off.
// When this happens, the javascript doesn't submit the form because it still sees the divs as being on (i.e. errors)
// So, for each form submission, we set a one second timeout (which gives the divs time to switch off),
// and then finally call the function trySubmit(), passing in the name of the form as the parameter so that we know what to submit.
function trySubmit(whichForm)
{
	if (whichForm == "contact")
	{
		var emailtarget = document.getElementById( "emaildiv" );
		var feedbacktarget = document.getElementById( "feedbackdiv" );
		var ziptarget = document.getElementById( "zipdiv" );
		var phonetarget = document.getElementById( "phonediv" );
		if (phonetarget.style.display=='none' && feedbacktarget.style.display=='none' && emailtarget.style.display=='none' && ziptarget.style.display=='none')
		{
			document.formContact.submit();
			aloneTracking('ContactUsForm');
		}
	}

	if (whichForm == "suspect")
	{
		var ziptarget = document.getElementById( "zipdiv" );
		var emailtarget = document.getElementById( "emaildiv" );
		var contacttarget = document.getElementById( "contactdiv" );
		var parttarget = document.getElementById( "partdiv" );
		var purchase1target = document.getElementById( "purchasenonediv" );
		var suspecttarget = document.getElementById( "suspectdiv" );

		if (ziptarget.style.display=='none' && emailtarget.style.display=='none' && contacttarget.style.display=='none' && parttarget.style.display=='none' && purchase1target.style.display=='none' && suspecttarget.style.display=='none')
		{
			document.infoForm.submit();
			aloneTracking('GenuineGMPartsSuspectPartsForm');
		}
	}

	if (whichForm == "movinparts")
	{
		var ziptarget = document.getElementById( "zipdiv" );
		var emailtarget = document.getElementById( "emaildiv" );
		var fnametarget = document.getElementById( "fnamediv" );
		var lnametarget = document.getElementById( "lnamediv" );
		var biznametarget = document.getElementById( "biznamediv" );
		var bizaddytarget = document.getElementById( "bizaddydiv" );
		var citytarget = document.getElementById( "citydiv" );
		var statetarget = document.getElementById( "statediv" );
		var dealertarget = document.getElementById( "dealernamediv" );
		var dealercontacttarget = document.getElementById( "dealercontactdiv" );
		var dealerphonetarget = document.getElementById( "dealerphonediv" );
		var bizphonetarget = document.getElementById( "bizphonediv" );
		if (dealerphonetarget.style.display=='none' && bizphonetarget.style.display=='none' && ziptarget.style.display=='none' && emailtarget.style.display=='none' && fnametarget.style.display=='none' && lnametarget.style.display=='none' && biznametarget.style.display=='none' && bizaddytarget.style.display=='none' && citytarget.style.display=='none' && statetarget.style.display=='none' && dealertarget.style.display=='none' && dealercontacttarget.style.display=='none')
		{
			document.form1.submit();
			aloneTracking('MovinPartsMagazinForm');
		}
	}
	if (whichForm == "newsletter")
	{
		var opttarget = document.getElementById( "optdiv" );
		var ziptarget = document.getElementById( "zipdiv" );
		var emailtarget = document.getElementById( "emaildiv" );
		var fnametarget = document.getElementById( "fnamediv" );
		var lnametarget = document.getElementById( "lnamediv" );
		var titletarget = document.getElementById( "titlediv" );
		if (ziptarget.style.display=='none' && emailtarget.style.display=='none' && fnametarget.style.display=='none' && lnametarget.style.display=='none' && titletarget.style.display=='none' && opttarget.style.display=='none')
		{
			document.gmsurvey.submit();
		}
	}
}



function doSearchDealerSearch( )
{
var vsearchtype = document.getElementById( "vsearchtype" );
var vzipcode = document.getElementById( "vzipcode" );
var vcity = document.getElementById( "vcity" );
var vstate = document.getElementById( "vstate" );
var vdealername = document.getElementById( "vdealername" );

//hide all error messages initially, so only relevant ones show
vsearchtype.style.display='none';
vzipcode.style.display='none';
vcity.style.display='none';
vstate.style.display='none';
vdealername.style.display='none';

var lblZip = document.getElementById( "lblZip" );
var lblCity = document.getElementById( "lblCity" );
var lblDealerName = document.getElementById( "lblDealerName" );
var stateName = document.getElementById( "StateName" );
var gts = document.getElementById( "gts" );
var tir = document.getElementById( "tir" );
var gpp = document.getElementById( "gpp" );
var lsg = document.getElementById( "lsg" );
var prs = document.getElementById( "prs" );


//Validate search inputs and types
	//Validate that at least 1 type of search is complete
	if ( document.advSearch.SearchByPostalCodePostalCode.value == '' && document.advSearch.SearchByCityStateCityName.value=='' && document.advSearch.state.selectedIndex==0 && document.advSearch.SearchByVendorVendorName.value=='' && document.advSearch.dealerstate.selectedIndex==0)
	{	vsearchtype.style.display='block';
		lblZip.style.color='red';
		lblCity.style.color='gray';
		lblDealerName.style.color='gray';
	}//If we have a valid zip code, clear city/state and dealer/state forms and submit
	else if( document.advSearch.SearchByPostalCodePostalCode.value != '')
	{	//Clear values for City/State and Dealer/State
		document.advSearch.SearchByCityStateCityName.value="";
		document.advSearch.state.selectedIndex=0;
		document.advSearch.SearchByVendorVendorName.value="";
		document.advSearch.dealerstate.selectedIndex=0;
		//Set search type
		document.advSearch.SearchType.value="ByPostalCode";
		document.advSearch.searchSelected.value="ByPostalCode";

		//If the zip code length is not 5 characters long, stop validation
		if (document.advSearch.SearchByPostalCodePostalCode.value.length != 5)
		{	vzipcode.style.display='block';
			lblZip.style.color='red';
		}
	}
	else //We do not have a zip code provided, so check City/State and DealerName/State
	{	//If City or State not null
		lblZip.style.color='gray';
		lblCity.style.color='gray';
		lblDealerName.style.color='gray';
		document.advSearch.SearchType.value="";
		document.advSearch.searchSelected.value="ByCityState";

		if(document.advSearch.SearchByCityStateCityName.value!='' || document.advSearch.state.selectedIndex!=0)
		{	//Clear values for Dealer/State
			document.advSearch.SearchByVendorVendorName.value='';
			document.advSearch.dealerstate.selectedIndex=0;
			//Make sure City AND State exist
			if(document.advSearch.SearchByCityStateCityName.value=='')
			{	vcity.style.display='block';
				lblCity.style.color='red';
			}
			else if(document.advSearch.state.selectedIndex==0)
			{	vstate.style.display='block';
				lblCity.style.color='red';
			}
			else
			{	//everything is ok, assign state
				stateName.value=document.advSearch.state.options[document.advSearch.state.selectedIndex].value;
			}
		}
		else if(document.advSearch.SearchByVendorVendorName.value!='' || document.advSearch.dealerstate.selectedIndex!=0)
		{	//Zip, and City/State searches are null, so dealer name or dealer state is not null
			lblCity.style.color='gray';
			lblZip.style.color='gray';
			//Make sure dealer name AND dealer state exist
			if(document.advSearch.SearchByVendorVendorName.value=='')
			{	vdealername.style.display='block';
				lblDealerName.style.color='red';
			}
			else if(document.advSearch.dealerstate.selectedIndex==0)
			{	vstate.style.display='block';
				lblDealerName.style.color='red';
			}
			else
			{	//everything is ok, assign state
				stateName.value=document.advSearch.dealerstate.options[document.advSearch.dealerstate.selectedIndex].value;
			}
		}
	}

//Build out program codes
	document.advSearch.programCodeList.value="";
	tir.value="";gpp.value="";lsg.value="";gpp.value="";
	var tempList ="";

	if (document.advSearch.programCodes[0].checked)
	{tir.value="tir";}
	else { tir.value="";}

	if (document.advSearch.programCodes[2].checked)
	{lsg.value="lsg";}
	else { lsg.value="";}

	if (document.advSearch.programCodes[1].checked)
	{gpp.value="gpp";}
	else { gpp.value="";}

	if (document.advSearch.programCodes[3].checked)
	{prs.value="prs";}
	else {prs.value="";}

	for (var i=0; i<=codes.length;i++)
	{
		tempList+=codes[i] + ",";
	}

	document.advSearch.programCodeList.value = tempList;
	//If Tires checked
	/*if(document.advSearch.programCodes[0].checked)
	{	document.advSearch.programCodeList.value="tir";
		tir.value="tir";
	}
	else
	{	tir.value="";
		document.advSearch.tir.value="";
	}
	//If PerfParts checked
	if(document.advSearch.programCodes[1].checked)
	{	document.advSearch.programCodeList.value="gpp";
		gpp.value="gpp";
	}
	else
	{	gpp.value="";
		document.advSearch.gpp.value="";
	}
	//If LSG checked
	if(document.advSearch.programCodes[2].checked)
	{	document.advSearch.programCodeList.value="lsg";
		lsg.value="lsg";
	}
	else
	{	lsg.value="";
		document.advSearch.lsg.value="";
	}
	//If PRS checked
	if(document.advSearch.programCodes[3].checked)
	{	document.advSearch.programCodeList.value="prs";
		prs.value="prs";
	}
	else
	{	prs.value="";
		document.advSearch.prs.value="";
	}

	//If Tires and Perf Parts checked
	if(document.advSearch.programCodes[0].checked && document.advSearch.programCodes[1].checked && !document.advSearch.programCodes[2].checked)
	{	document.advSearch.programCodeList.value="tir,gpp";
		tir.value="tir";
		gpp.value="gpp";
		lsg.value="";
		prs.value="";
	}
	//If Tires and LSG checked
	if(document.advSearch.programCodes[0].checked && !document.advSearch.programCodes[1].checked && document.advSearch.programCodes[2].checked)
	{	document.advSearch.programCodeList.value="tir,lsg";
		tir.value="tir";
		lsg.value="lsg";
		gpp.value="";
		prs.value="";
	}
	//If Perf Parts and LSG checked
	if(!document.advSearch.programCodes[0].checked && document.advSearch.programCodes[1].checked && document.advSearch.programCodes[2].checked)
	{	document.advSearch.programCodeList.value="lsg,gpp";
		lsg.value="lsg";
		gpp.value="gpp";
		tir.value="";
		prs.value="";
	}



	//If all are checked
	if(document.advSearch.programCodes[0].checked && document.advSearch.programCodes[1].checked && document.advSearch.programCodes[2].checked)
	{	document.advSearch.programCodeList.value="tir,gpp,lsg,prs";
		tir.value="tir";
		gpp.value="gpp";
		lsg.value="lsg";
		prs.value="prs";
	}

	*/
	//TODO sal: we need to add the filter functinality for GnG dealers

	//if we select dealers with online offers, append gts to promo codes (, if it's not the only one in there)
	//if(document.getElementById("rdoOffers-olf").checked)
	//{	gts.value="gts";
		document.advSearch.gts.value="gts";
	//}
	//else
	//{	gts.value="";
		document.advSearch.gts.value="";
	//}
	//format brandid
	if(document.advSearch.BRANDID.selectedIndex==0)
	{document.advSearch.BRANDID.value="";	}

	if(document.advSearch.BRANDID.selectedIndex==6)
	{
	document.advSearch.BRANDID.value="";
	document.advSearch.oldBrandType.value="OLDS";
	}

	// submit the form
	if (vsearchtype.style.display=='none' && vzipcode.style.display=='none' && vcity.style.display=='none' && vstate.style.display=='none' && vdealername.style.display=='none')
	{document.advSearch.submit() ;}

}
//==============================================================================================

function dealerSearchSubmit(){
	var doSearch=true;
	document.getElementById('invalidZip').style.display='none';
	document.getElementById('ziptext').style.color='#000';

	if (document.getElementById('SearchByPostalCodePostalCode').value != '')
	{
		pair1=1;
		document.getElementById('SearchType').value='ByPostalCode';
	}
	if (document.getElementById('state').value!='' || document.getElementById('SearchByCityStateCityName').value!='')
	{
		pair2=1;
		document.getElementById('SearchType').value='ByCityState';

	}
	if (document.getElementById('dealerstate').value!='' || document.getElementById('SearchByVendorVendorName').value!='')
	{
		pair3=1;
		document.getElementById('SearchType').value="ByVendor";
		document.getElementById('SearchByVendorStateName').value = document.getElementById('dealerstate').value;
	}
	//Nothing Filled In
	if (document.getElementById('SearchByPostalCodePostalCode').value == '' && document.getElementById('state').value=='' && document.getElementById('SearchByCityStateCityName').value=='' && document.getElementById('dealerstate').value=='' && document.getElementById('SearchByVendorVendorName').value=='')
	{
		document.getElementById('nothingFilled').style.display="block";
		doSearch=false;
	}
	else
	{
		document.getElementById('nothingFilled').style.display="none";
	}

	//More than 1 pair
	if (pair1 + pair2 + pair3 >1  && doSearch)
	{
		document.getElementById('twoOrMore').style.display="block";
		doSearch=false;
	}
	else
	{
		document.getElementById('twoOrMore').style.display="none";
	}
	//Valid Zip
	//test the zip code using the regular expression
	//var zip=document.advSearch.SearchByPostalCodePostalCode.value;
	var reZip = new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);
	if (document.getElementById('SearchByPostalCodePostalCode').value != "" && doSearch){
		if (!reZip.test(document.getElementById('SearchByPostalCodePostalCode').value))
		{
			document.getElementById('invalidZip').style.display='block';
			document.getElementById( "ziptext" ).style.color='#CC0000';
			doSearch=false;
		}
		else
		{
			document.getElementById('invalidZip').style.display='none';
			document.getElementById( "ziptext" ).style.color='#000';
		}
	}
	//Partial Pairs

	//Part of pair 2 filled in (City but no State)
	if (document.getElementById('state').value=='' && document.getElementById('SearchByCityStateCityName').value!='' && doSearch)
	{
		document.getElementById('noState').style.display="block";
		document.getElementById( "statetext" ).style.color='#CC0000';
		doSearch=false;
	}
	else
	{
		document.getElementById('noState').style.display="none";
		document.getElementById( "statetext" ).style.color='#000';
	}
	//Part of pair 2 filled in (State but no City)
	if (document.getElementById('SearchByCityStateCityName').value=='' && document.getElementById('state').value!='' && doSearch)
	{
		document.getElementById('noCity').style.display="block";
		document.getElementById( "citytext" ).style.color='#CC0000';
		doSearch=false;
	}
	else
	{
		document.getElementById('noCity').style.display="none";
		document.getElementById( "citytext" ).style.color='#000';
	}

	//Part of pair 3 filled in (Dealer but no State)
	if (document.getElementById('dealerstate').value=='' && document.getElementById('SearchByVendorVendorName').value!='' && doSearch)
	{
		document.getElementById('noDealerState').style.display="block";
		document.getElementById( "dealerstatetext" ).style.color='#CC0000';
		doSearch=false;
	}
	else
	{
		document.getElementById('noDealerState').style.display="none";
		document.getElementById( "dealerstatetext" ).style.color='#000';
	}
	//Part of pair 3 filled in (State but no Dealer)
	if (document.getElementById('SearchByVendorVendorName').value=='' && document.getElementById('dealerstate').value != '' && doSearch)
	{
		document.getElementById('noDealerName').style.display="block";
		document.getElementById( "dealerstatetext" ).style.color='#CC0000';
		doSearch=false;
	}
	else
	{
		document.getElementById('noDealerName').style.display="none";
		document.getElementById( "dealernametext" ).style.color='#000';
	}

	if (doSearch)
	{
		//format brandid
		if(document.advSearch.BRANDID.selectedIndex==0)
		{
			document.advSearch.BRANDID.value="";
		}

		if(document.advSearch.BRANDID.selectedIndex==6)
		{
			document.advSearch.BRANDID.value="";
			document.advSearch.oldBrandType.value="OLDS";
		}
		document.advSearch.SearchByCityStateStateName.value=document.getElementById('state').value;
		SetCookie("dealerInfo2", "");
		clickTrack(clickRadioButton,'true')
		document.advSearch.submit();
	}
}

// ----------------------------------------------------------------------------
function StateValue(Value)
 {
 for(index = 0;
     index < document.advSearch.state.length;
     index++)
    {
    if(document.advSearch.state[index].value == Value)
       document.advSearch.state.selectedIndex = index;
    }
 }
function DealerStateValue(Value)
{
 	for(index = 0; index < document.advSearch.dealerstate.length; index++)
    {	if(document.advSearch.dealerstate[index].value == Value)
       		document.advSearch.dealerstate.selectedIndex = index;
    }
}


//Goes with advanced search
function changeSort( sortBy )
{
	document.advSearch.sortBy.value = sortBy ;
	//if (sortBy == "offers"){
	//	document.getElementById("rdoOffers-olf").checked=true;
	//}
	if (sortBy == "all"){
		document.getElementById("rdoOffers-all").checked=true;
	}
	doSearchDealerSearch() ;
}


function checkForm(form){

	var errorExists = 0;

	with (form){

		if ( SearchByPostalCodePostalCode.value == '' || SearchByPostalCodePostalCode.value == 'Enter Zip Code' )
		{
			//alert( "Please enter your postal code." ) ;
			document.getElementById('invalidZip').style.display='block';
			errorExists = 1;
		}
		//else if ( ! rdoOffers[0].checked && ! rdoOffers[1].checked && ! rdoOffers[2].checked )
		//{
		//	alert( "Please specify your dealer preference." ) ;
		//	errorExists = 1;
		//}
		//else if (document.getElementById("rdoOffers-olf").checked)
		//{
			//programCode.value = "gts";
			//programCodeList.value = "gts";
		//}
		else
		{
			//programCode.value = "" ;
		}
	}

	if (errorExists)
		return false;
	else
		return true;

}

function doMainSearch()
{
	doSearch1( document.forms[ 'dealersearchform2' ] ) ;
}

function doSearch1( form )
{
	 // validate the form
	 if ( form.SearchByPostalCodePostalCode.value == '' )
	 {
		  alert( "Please enter your postal code." ) ;
		  return false ;
	 }
	 //if ( ! form.rdoOffers[0].checked && ! form.rdoOffers[1].checked && ! form.rdoOffers[2].checked )
	 //{
		  //alert( "Please specify your dealer preference." ) ;
		  //return false ;
	 //}
	 //else if(document.getElementById("rdoOffers-olf").checked)
	 //{
	 	//form.programCode.value = "gts";
	 	//form.programCodeList.value = "gts";
	 //}
	 else
	 {
	 	form.programCode.value = "" ;
	 }

	form.submit() ;
}

function clearInputField(inputField)
{
	inputField.value = "";
}

function getInvalidZipObj(form){
	var invalidZip = null;
	var divArray = form.getElementsByTagName('div');
	for (i = 0; i < divArray.length; i++){
		if(divArray[i].id == 'invalidZip' ){
			invalidZip = divArray[i];
		}
	}
	return invalidZip;
}

function zipCodeCheckForm(form, trackingId){

    var invalidZip = null;
    var returValue = false;

	if (form.rdoOffers != null){
		form.programCode.value = form.rdoOffers.value;
	}

	//Get the object div with id = invalidZip
	invalidZip = getInvalidZipObj(form);

	//Valid Zip
	//test the zip code using the regular expression
	var reZip = new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);
	if (form.SearchByPostalCodePostalCode.value.search(reZip)==-1  || (form.SearchByPostalCodePostalCode.value == ""))
	{
		if (invalidZip != null){
			invalidZip.style.display='block';
		}
	}
	else{
		if (invalidZip != null){
			invalidZip.style.display='none';
		}
		if (trackingId != null)
			aloneTracking(trackingId);
		returValue = true;
	}
	return returValue;
}

function setCookie (cookie_name, cookie_value){

	SetCookie(cookie_name, cookie_value);
}

function zipCodeFieldMessage (zipCodeField){
	if (zipCodeField.value=='')
		zipCodeField.value='Enter Zip Code';
}

function zipCodeFieldMessageMapO (zipCodeField){
	if (zipCodeField.value=='')
		zipCodeField.value='ZIP CODE';
}

function emptyZipCodeFieldMessage (zipCodeField){
	if (zipCodeField.value=='Enter Zip Code')
		zipCodeField.value='';
}

function emptyZipCodeFieldMessageMapO (zipCodeField){
	if (zipCodeField.value=='ZIP CODE')
		zipCodeField.value='';
}