 /*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*--Initial Vars----------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
var initialized = false;
var hasPrePop = false;
var putc = false;
var putcArray = new Array();
var src = "as";
var debugOn = false; //Set to true to allow alerts
var histCutoff = 1990;
//var mdmError = "Cars.com is experiencing technical difficulties, please note that some features on this page may not be working properly.";
var mdmError = "Our search system is not available right now. Either we are adjusting our inventory records on the site, or we are fixing an issue with the web server.\n\nPlease call us to talk directly with one of our sales staff, and try searching on our website again later.";
/*------------------------------------------------------------------------------*/
var quickForm = false; //Overriden in Quick Form Functions
/*------------------------------------------------------------------------------*/
var mmtOpt; //Holds Array of Current Make/Model Rows
var ghostRows = null; //Holds Array of Make/Model Rows During Updates
var mmtRowString = "mmtRow_"; //Prefix for Identifying MM Row
var mmtRunningTotal = 0; //Current Total Rows
var mmtIndex = 0; //Unique Count
var makeDefaults = null; //Default Set of Makes 
var modelDefaults = null; //Default Set of Models
var typeDefaults = null; //Default Set of Vehicle Types
var lastRealRadius = null;
/*------------------------------------------------------------------------------*/
var selectedStock = 2;
var selectedBodyStyle = "";
var currentBodyStyleList;
var currentMakeList;
var currentModelList;
var currentYearList = new Array();
var vtype = null;
var currentStock = selectedStock;
var currentBodyStyle = selectedBodyStyle;
var usd = "Y";
var nw = "";
var cpo = "";
if(isUsedSearch){usd="Y";nw="";cpo="";}
if(isNewSearch){usd="";nw="Y";cpo="";}
var yearsSet = 0;
var yearsToSet = 0;
var classic = "N";
var ie6dimlist = new Array("zc");
if(historic){classic = "Y";}

/*------------------------------------------------------------------------------*/
function wipeOutCityPU(){
document.getElementById("chooseCitySelectPU").selectedIndex = 0;

}
/*------------------------------------------------------------------------------*/
function updateCityPU(){
var citySelect = document.getElementById("chooseCitySelectPU");
var cityValue = getSelectValue(citySelect);

cityValue = cityValue.split("|")[0];
if(cityValue.length > 0){
document.forms.miniZip.zip.value = cityValue;

}
setNationalRadius(citySelect);

}


function setNationalRadius(citySelect){
// debug(lastRealRadius);
var rRadius = document.getElementById("rd");
var currVal = getSelectValue(rRadius);;
if(citySelect != null && citySelect.selectedIndex == 1){lastRealRadius = currVal; rRadius.selectedIndex = (rRadius.options.length-1);}
else {
if(lastRealRadius != null){prePopSelect(rRadius, lastRealRadius);}
}
}

/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*--Used/New CPO Functions------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
function evalUNCPO(){

for(i=0;i<document.advForm.uncpo.length;i++){
if(document.advForm.uncpo[i].checked){

if(document.advForm.uncpo[i].value == 1){setUNCPO("", "Y", "", 1);break;}
if(document.advForm.uncpo[i].value == 2){setUNCPO("Y", "", "", 2);break;}
if(document.advForm.uncpo[i].value == 3){setUNCPO("Y", "", "Y", 3);break;}
}
}
if(evalChangeState()){evalVT();}
}
/*------------------------------------------------------------------------------*/
function setUNCPO(u, n, c, sst){
var stockname = "U";
var iscpo = "";
if(n == 'Y'){stockname = "N";}
if(c == 'Y'){iscpo = "Y";}
document.getElementById("stkTyp").value=stockname;
document.getElementById("cpo").value=iscpo;
usd = u;
nw = n;
cpo = c;
selectedStock = sst;

secondaryInteraction();
}
//----------------------------------------------------------------------------------------------------------------------//


function secondaryInteraction(){

var disColor = "#999999";
var enColor = "#333333";
if(nw == 'Y'){
if(!isDealer && !isMicrosite){
document.advForm.mlgMn.disabled = true;
document.advForm.mlgMx.disabled = true;
document.getElementById("mlgTxt").style.color = disColor;
}
} else {
if(!isDealer && !isMicrosite){
document.advForm.mlgMn.disabled = false;
document.advForm.mlgMx.disabled = false;
document.getElementById("mlgTxt").style.color = enColor;
}
}

var disableit;

if(nw == 'Y' || cpo == 'Y'){
disableit = true;
} else {disableit = false;}

if(!isDealer && !isMicrosite){
for(i=0;i<document.advForm.slrTypeId.length;i++){
document.advForm.slrTypeId[i].disabled = disableit;
}
if(disableit){
document.getElementById("slrTxt").style.color = disColor;
} else {document.getElementById("slrTxt").style.color = enColor;}
}


}
//----------------------------------------------------------------------------------------------------------------------//

function setNUCPO(idx){
if(idx > 0){usd = "";nw="Y";cpo=""} else {usd = "Y";nw="";cpo=""}
}

/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*--Bodystyle Functions---------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
function resetBSChoice(){

var vtypevalue = "";
var found = 0;
for(i=1;i<typeDefaults.options.length;i++){
document.getElementById("body_"+i).checked = false;
}

if(document.getElementById("VType").value != "" || vtype.value != ""){

document.getElementById("VType").value = "";
vtype.value = "";
evalVT();
}
}
/*------------------------------------------------------------------------------*/
function evalBodyStyleCheckBoxes(){
  var vtypevalue = "";
  var found = 0;
  for(i=1;i<typeDefaults.options.length;i++){
    if(document.getElementById("body_"+i).checked){
      if(found > 0){
        vtypevalue = vtypevalue + ',';
      }
      vtypevalue = vtypevalue + typeDefaults.options[i].value;
      found++;
    }
  }
  vtype.value = vtypevalue;
  debug(vtypevalue);
  evalVT();
}
/*------------------------------------------------------------------------------*/
function populateBodyStyles(){
for(i=1;i<typeDefaults.options.length;i++){
if(typeDefaults.options[i].value.length > 0 || true){
var inh = document.getElementById("styleprototype").innerHTML;
inh = inh.replace(/ireplacei/g, i);
inh = inh.replace(/replace_name/g, typeDefaults.options[i].name.split("|")[1]);
debug(typeDefaults.options[i].name);
if(typeDefaults.options[i].name.indexOf("Pickup") > -1){debug("found");putcArray[putcArray.length] = i;}
inh = inh.replace(/replace_img/g, typeDefaults.options[i].name.split("|")[0].replace(/ /g, '_'));
inh = inh.replace(/replace_value/g, typeDefaults.options[i].value);
document.getElementById("styles").innerHTML = document.getElementById("styles").innerHTML + inh;
}
}
}
/*------------------------------------------------------------------------------*/
function evalBSChoice(){
var bschoice = 1;
for(i=0;i<document.advForm.bschoice.length;i++){
if(document.advForm.bschoice[i].checked){bschoice = document.advForm.bschoice[i].value;break}
}
if(bschoice == 1){document.getElementById("styles").style.display="none";}
if(bschoice == 2){document.getElementById("styles").style.display="block";}
}
/*------------------------------------------------------------------------------*/
function evalChangeState(){
// debug("cs:"+currentStock + ": ss:"+ selectedStock);
if(currentStock != selectedStock){
currentStock = selectedStock;
return true;
} else {return false;}
}
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*--Form Functions--------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
function grabNamesADV(idx, rForm){
var selMK = document.getElementById("make_"+idx);
var selMD = document.getElementById("model_"+idx);
if(selMK.selectedIndex > 0){



rForm.AmbMkNm.value = selMK.options[selMK.selectedIndex].text;
rForm.AmbMkId.value = selMK.options[selMK.selectedIndex].value;
} else {
rForm.AmbMkNm.value = "";
rForm.AmbMkId.value = "";
}

if(selMD.selectedIndex > 0){
var modelI = selMD.options[selMD.selectedIndex].value;
if(modelI.indexOf(",") > -1){modelI = modelI.split(",")[1]}
rForm.AmbMdNm.value = selMD.options[selMD.selectedIndex].text;
rForm.AmbMdId.value = modelI;
} else {
rForm.AmbMdNm.value = "";
rForm.AmbMdId.value = "";
}


}
/*------------------------------------------------------------------------------*/
function bringBack(){
if(!historic){
document.getElementById("bschoice_1").disabled = false;
document.getElementById("bschoice_2").disabled = false;
}
}
/*------------------------------------------------------------------------------*/
function clearForm(){
if(initialized){
resetMMTRows();
if(!isDealer){
document.getElementById("rd").selectedIndex = 2;
//document.getElementById("zc").value = "";
}
if(!historic){
document.getElementById("bschoice_1").checked = true;
document.getElementById("bschoice_2").checked = false;
resetBSChoice();
document.getElementById("styles").style.display = "none";
}


if(!historic && !isUsedSearch && !isNewSearch){
document.getElementById('uncpo1').checked = false;
document.getElementById('uncpo2').checked = true;
document.getElementById('uncpo3').checked = false;
usd = "Y";
nw = "";
cpo = "";
}

document.getElementById("VType").value = "";
vtype.value = "";
document.getElementById("pricelow").selectedIndex = 0;
document.getElementById("pricehigh").selectedIndex = 0;
document.getElementById("color").selectedIndex = 0;


var yrLow = document.getElementById("yearlow");
var yrHigh = document.getElementById("yearhigh");

setOptions(yrLow, yearDefaults.options);
setOptions(yrHigh, yearDefaults.options);


document.getElementById("yearlow").selectedIndex = 0;
document.getElementById("yearhigh").selectedIndex = 0;
if(historic){prePopSelectByText(document.getElementById("yearhigh"), histCutoff);}

if(!historic){
document.getElementById("drive").selectedIndex = 0;
for(i=0;i<document.advForm.ft.length;i++){
document.advForm.ft[i].checked = false;
}
}
if(!isNewSearch){
document.getElementById("mileagelow").selectedIndex = 0;
document.getElementById("mileagehigh").selectedIndex = 0;
}

document.getElementById("keyword").value = "";
document.getElementById("keyword_modifier").selectedIndex = 0;
document.getElementById("date").selectedIndex = 0;
document.getElementById("rpp").selectedIndex = 3;
if(!isMicrosite && !isDealer && !historic){
document.advForm.slrTypeId[0].checked = true;
document.advForm.slrTypeId[1].checked = false;
}

selectedStock = 2;
currentStock = selectedStock;
}
secondaryInteraction();
}
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*--Pre-Population and Ghosting-------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
function grabCookieMMT(){
var mmtCookieArray = null;
var cookiestring = ""+document.cookie;
var cookieArray = cookiestring.split(';');
for(i=0;i<cookieArray.length;i++){
if(cookieArray[i].indexOf('=') > -1 && cookieArray[i].indexOf('mmt_') > -1){
ca2 = cookieArray[i].split('=');
ca3 = ca2[0].split('_');
ca4 = Url.decode(ca2[1]).split('|');
if(ca4[0].length > 0 || ca4[1].length > 0){
if(mmtCookieArray == null){mmtCookieArray = new Array();}
var rIdx = parseInt(ca3[1]);
mmtCookieArray[rIdx] = new Object();
mmtCookieArray[rIdx].makeID = "";
mmtCookieArray[rIdx].modelID = "";
// debug(ca4[0] + ":" + ca4[1]);
mmtCookieArray[rIdx].makeName = ca4[0];
mmtCookieArray[rIdx].modelName = ca4[1];
debug(mmtCookieArray[rIdx].modelName);
mmtCookieArray[rIdx].foundMake = null;
mmtCookieArray[rIdx].makes = null;
mmtCookieArray[rIdx].models = null;
mmtCookieArray[rIdx].idx = rIdx;
}}}
return mmtCookieArray;
}
//----------------------------------------------------------------------------------------------------------------------//
function advFormSubmit(frm, zipValid){
// debug("in check zip...");
if(!isDealer && !isMicrosite){
if(!zipValid){
//debug('bad zip');
showZipError(frm, advFormContinue);
return false;
} else {
advFormContinue(frm);
return false;
}
} else {debug("skipped zip, continuing...");advFormContinue(frm);return false;}
return false;
}
//----------------------------------------------------------------------------------------------------------------------//

function advFormContinue(frm){



  // debug("continue...");
  rationalizeRange(document.getElementById('yearlow'), document.getElementById('yearhigh'));
  
  rationalizeRange(document.getElementById('pricelow'), document.getElementById('pricehigh'));
  if(!isNewSearch){
    rationalizeRange(document.getElementById('mileagelow'), document.getElementById('mileagehigh'));
  }
  // debug("cookie...");
  packAdvCookie();
  // debug("cookie done...");
  /*
  if(historic && document.getElementById('yearhigh').value == ""){
    document.getElementById('yearhigh').options[0].value = histCutoff;
    document.getElementById('yearhigh').selectedIndex = 0;
  }
  */
  
  if(!historic){
    document.getElementById("bschoice_1").disabled = true;
    document.getElementById("bschoice_2").disabled = true;
  }
  grabNamesADV(0, frm);
  // debug("bodystyle...");

  //Bodystyle Compression
  if(document.advForm.bschoice){
    for(i=0;i<document.advForm.bsId.length;i++){
      if(document.advForm.bsId[i].checked && document.advForm.bsId[i].value.indexOf(",") > -1){
        compBS = document.advForm.bsId[i].value.split(",");
        for(j=0;j<compBS.length;j++){
          addHiddenElement("styles", compBS[j], "bsId");
        }
        document.advForm.bsId[i].value = "";
      }
    }
  }

  //Pack Up Model Alias
  for(i=0; i<mmtOpt.rows.length; i++) {

    var makeObj = document.getElementById("make_"+mmtOpt.rows[i].idx);
    var modelObj = document.getElementById("model_"+mmtOpt.rows[i].idx);
    var modelValue = getSelectValue(modelObj);
    var makeValue = getSelectValue(makeObj);
    var refMd;
    
    if(modelValue.indexOf(",") > -1){
      var holdText = getSelectText(modelObj);
      var mdArray = modelValue.split(",");
      for(k=1; k<mdArray.length; k++){
        addHiddenElement("mmtRow_"+mmtOpt.rows[i].idx, mdArray[k], "mdId");
      }
      document.getElementById("model_"+mmtOpt.rows[i].idx).selectedIndex = 0;
      document.getElementById("model_"+mmtOpt.rows[i].idx).options[0].text = holdText;
      addHiddenElement("mmtRow_"+mmtOpt.rows[i].idx, mdArray[0], "alMdId");
      // debug("alias");
    } else {
      if(modelValue.length > 0) {
        addHiddenElement("mmtRow_"+mmtOpt.rows[i].idx, modelValue, "alMdId");
        // debug("normal"+i);
      }
    }
    //Balancing
    if(modelValue.length < 1 && makeValue.length > 0){
      modelObj.options[0].value = "-"+makeValue;
      modelObj.selectedIndex=0;
      //addHiddenElement("mmtRow_"+mmtOpt.rows[i].idx, "-"+makeValue, "alMdId");
    }
    if(makeValue.length < 1 && modelValue.length > 0){
      makeObj.options[0].value = "-"+modelValue;
      makeObj.selectedIndex=0;
      addHiddenElement("mmtRow_"+mmtOpt.rows[i].idx, "-"+modelValue, "alMkId");
    }
    if(makeValue.length > 0){
      addHiddenElement("mmtRow_"+mmtOpt.rows[i].idx, makeValue, "alMkId");
    }

  }
  var kyw = document.getElementById("keyword").value;
kyw = kyw.replace(/'/g, "");
kyw = kyw.replace(/"/g, "");
document.getElementById("keyword").value = kyw;
  frm.action = "searchresults.action";
  
  frm.submit();
  return true;
}
//----------------------------------------------------------------------------------------------------------------------//

function addHiddenElement(src, value, nm){
  var container = document.getElementById(src);
  var newH = document.createElement("INPUT");
  newH.type = "hidden";
  newH.name = nm;
  newH.value = value;
  container.appendChild(newH);
}

/* UI helper to empty selects until callback reloads */
function emptySelect(w,idx) {
  idx = idx || 0; // default
  if (w == 'makes') {
    document.getElementById("make_"+idx).options.length = 1;
  }
  if (w == 'models') {
    var mySelect = document.getElementById("model_"+idx);
    if (mySelect !== null) {
      myOpt = mySelect.options[mySelect.selectedIndex];
      mySelect.insertBefore(myOpt,mySelect.options[0]);
      mySelect.options.length = 1;
    }
  }
}
//----------------------------------------------------------------------------------------------------------------------//
function fillModelList(fn){
currentModelList = null;

emptySelect('models');

var url = '/for-sale/GetModelData.action';
dojo.io.bind({
url: url,

content: {
bsID: vtype.value,
// bsID: '',
nw: nw,
usd: usd,
// cpo: cpo,
cpo: '',
dlId: dlId,
dgId: dgId,
classic: classic,
loc: locale
},

handler: function(type, data, evt){
currentModelList = eval("("+data+")");

if (fn !== undefined) { fn(); }
}
});
}
//----------------------------------------------------------------------------------------------------------------------//
function fillMakeList(fn){
currentMakeList = null;

emptySelect('makes');

var url = '/for-sale/GetMakeData.action';
dojo.io.bind({
url: url,

content: {
bsID: vtype.value,
nw: nw,
usd: usd,
cpo: cpo,
dlId: dlId,
dgId: dgId,
classic: classic,
loc: locale
},

handler: function(type, data, evt){
currentMakeList = eval("("+data+")");

if (fn !== undefined) { fn(); }
}
});
}
//----------------------------------------------------------------------------------------------------------------------//
function prePopGhostRows(){
  if(ghostRows != null){
    for(k=0; k<ghostRows.length; k++){
      if(setContainsTextValue(currentMakeList.options, ghostRows[k].makeName) || setContainsTextValue(currentModelList.options, ghostRows[k].modelName)){
        if(k > mmtOpt.rows.length-1){
          addVehicle();
        }
        
        var rIdx = k;
        var selMK = document.getElementById("make_"+rIdx);
        var selMD = document.getElementById("model_"+rIdx);
        
        if(ghostRows[k].makeName.length > 0 && ghostRows[k].modelName.length < 1){
          prePopSelectByText(selMK, ghostRows[k].makeName);
          evalMenus(k, 'make', 0, false);
        }
        
        if(ghostRows[k].makeName.length < 1 && ghostRows[k].modelName.length > 0){
          prePopSelectByText(selMD, ghostRows[k].modelName);
          evalMenus(k, 'model', 0, false);
        }
        
        if(ghostRows[k].makeName.length > 0 && ghostRows[k].modelName.length > 0){
          // debug(ghostRows[k].modelName + ":" + convertNameToValue(modelDefaults.options, ghostRows[k].modelName));
          prePopSelectByText(selMK, ghostRows[k].makeName);
          debug(convertNameToValue(modelDefaults.options, "X5"));
          evalMenus(k, 'make', convertNameToValue(modelDefaults.options, ghostRows[k].modelName), false);
        }
        
        // foundCount++;
      }
    
    }
  }
}

//----------------------------------------------------------------------------------------------------------------------//

function packGhostRows(src){
// debug("pgr:"+src);
if(src == 'page'){
ghostRows = new Array();
for(i=0;i<mmtOpt.rows.length;i++){
if(document.getElementById("make_"+mmtOpt.rows[i].idx).value.length > 0 || document.getElementById("model_"+mmtOpt.rows[i].idx).value.length){

var idx = ghostRows.length
ghostRows[idx] = new Object();
ghostRows[idx].makeID = document.getElementById("make_"+mmtOpt.rows[i].idx).value;
ghostRows[idx].modelID = document.getElementById("model_"+mmtOpt.rows[i].idx).value;
ghostRows[idx].makeName = document.getElementById("make_"+mmtOpt.rows[i].idx).text;
ghostRows[idx].modelName = document.getElementById("model_"+mmtOpt.rows[i].idx).text;


ghostRows[idx].foundMake = null;
ghostRows[idx].makes = null;
ghostRows[idx].models = null;

ghostRows[idx].idx = idx;
}
}


} else {
ghostRows = grabCookieMMT();
// debug(ghostRows[0].makeName);
}

}

/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*--Year Functions--------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/


function setYearsFollow(type, data, evt){

opts = eval("("+data+")");
var blank = opts.options.shift();
currentYearList = currentYearList.concat(opts.options);
yearsSet++;

if(yearsSet >= yearsToSet){



currentYearList = currentYearList.objSort('name',-1);



var currentYearsFinal = new Array();
var cy = "nil";
var fCt = 0;

for(i=0;i<currentYearList.length;i++){
if(cy != currentYearList[i].name){
 currentYearsFinal[fCt] = currentYearList[i];
 cy = currentYearList[i].name

fCt++;
}
}

currentYearList = new Array(blank);
currentYearList = currentYearList.concat(currentYearsFinal);





var yrLow = document.getElementById("yearlow");
var yrHigh = document.getElementById("yearhigh");
var yrLowVal = yrLow.value;
var yrHighVal = yrHigh.value;
setOptions(yrLow, currentYearList);
setOptions(yrHigh, currentYearList);

prePopSelect(yrLow, yrLowVal);

if(historic){
yrHighVal =  histCutoff+""; 
if(parseInt(yrHigh.options[1].value) < histCutoff){yrHighVal = yrHigh.options[1].value;}

}

prePopSelect(yrHigh, yrHighVal);
}

}

function oneRowNoSelect(){
if(mmtOpt.rows.length == 1 && document.getElementById("make_"+mmtOpt.rows[0].idx).value == "" && document.getElementById("make_"+mmtOpt.rows[0].idx).value == "")
{return true;} else {

var found = false;

for(i=0;i<mmtOpt.rows.length;i++){
rMake = document.getElementById("make_"+mmtOpt.rows[i].idx).value;
rModel = document.getElementById("model_"+mmtOpt.rows[i].idx).value;
if(rMake.length > 0 || rModel.length > 0){return false;}
}
return true;
}
}


function setYears(){
debug("setting years");
currentYearList = new Array();
yearsSet = 0;
yearsToSet = 0;
var url = '/for-sale/GetYearData.action';

if(oneRowNoSelect()){

yearsSet = 0;
yearsToSet = 0;


dojo.io.bind({
url: url,
content: {
bsID: vtype.value,
nw: nw,
usd: usd,
cpo: cpo,
dlId: dlId,
dgId: dgId,
classic: classic,
loc: locale
},
handler: setYearsFollow
});

} else {

for(i=0;i<mmtOpt.rows.length;i++){
rMake = "";
rModel = "";
rMake = document.getElementById("make_"+mmtOpt.rows[i].idx).value;
var rModelObj = document.getElementById("model_"+mmtOpt.rows[i].idx);
debug(rModelObj.selectedIndex);
if(rModelObj.selectedIndex > 0){rModel = getSelectValue(rModelObj);}

if(rMake != "" || rModel != ""){
yearsToSet++;


dojo.io.bind({
url: url,
content: {
bsID: vtype.value,
mkID : rMake,
mdID : rModel,
nw: nw,
usd: usd,
cpo: cpo,
dlId: dlId,
dgId: dgId,
classic: classic,
loc: locale
},
handler: setYearsFollow
});




}
}
}
}

//----------------------------------------------------------------------------------------------------------------------//

function initEvalVT(){
  // resetMMTRows();
  packGhostRows('cookie');
  fillMakeList(applyVT);
  fillModelList(applyVT);
}
//----------------------------------------------------------------------------------------------------------------------//

function evalVT(){
  resetMMTRows();
  packGhostRows('page');
  fillMakeList(applyVT);
  fillModelList(applyVT);
}

//----------------------------------------------------------------------------------------------------------------------//

function applyVT(/* type, data, evt */){
  debug("applying VT");
  if(currentMakeList !== null && currentModelList !== null) {
  debug("not null");
    setOptions(document.getElementById("make_ireplacei"), currentMakeList.options);
    setOptions(document.getElementById("model_ireplacei"), currentModelList.options);
    setOptions(document.getElementById("make_0"), currentMakeList.options);
    setOptions(document.getElementById("model_0"), currentModelList.options);
    prePopGhostRows();
    setYears();
  }


}









//----------------------------------------------------------------------------------------------------------------------//

function packAdvCookie(){

 var cookiearray = getAllCookies();
 
 for(i=0;i<cookiearray.length;i++){
  if(cookiearray[i].name.indexOf('mmt_') > -1){
    setCookie(cookiearray[i].name, '', 0, true)
  }
 }

  for(i=0;i<mmtOpt.rows.length;i++) {
    makeSel = document.getElementById("make_"+mmtOpt.rows[i].idx);
    modelSel = document.getElementById("model_"+mmtOpt.rows[i].idx);
    var val = makeSel.options[makeSel.selectedIndex].text + '|' + modelSel.options[modelSel.selectedIndex].text;
    var name = 'mmt_'+i
    // debug(val);
    setCookie(name, val, 30, false);
  }



var ambientArray = new Array();
if(!isDealer && !isMicrosite){
ambientArray[0] = getSelectValue(document.getElementById("rd"));
ambientArray[1] = document.getElementById("zc").value;
} else {
ambientArray[0] = "30";
ambientArray[1] = "";
}
if(!isNewSearch && !isUsedSearch && !historic){
ambientArray[2] = getRadioValue(document.advForm.uncpo);
} else {ambientArray[2] = "";}
if(!historic){
ambientArray[3] = getRadioValue(document.advForm.bschoice);
} else {ambientArray[3] = "";}
ambientArray[4] = vtype.value;

ambientArray[5] = getSelectValue(document.getElementById("pricelow"));
ambientArray[6] = getSelectValue(document.getElementById("pricehigh"));
ambientArray[7] = getSelectValue(document.getElementById("color"));
ambientArray[8] = getSelectValue(document.getElementById("yearlow"));
ambientArray[9] = getSelectValue(document.getElementById("yearhigh"));
if(parseInt(ambientArray[9]) == histCutoff && ambientArray[8] == ''){ambientArray[8] = "";ambientArray[9] = "";}
if(!historic){
ambientArray[10] = getSelectValue(document.getElementById("drive"));
ambientArray[13] = getCheckValue(document.advForm.ft);
} else {ambientArray[10] = "";ambientArray[13] = "";}
if(!isNewSearch){
ambientArray[11] = getSelectValue(document.getElementById("mileagelow"));
ambientArray[12] = getSelectValue(document.getElementById("mileagehigh"));
} else {ambientArray[11] = "";ambientArray[12] = "";}

ambientArray[14] = Url.encode(document.getElementById("keyword").value);
ambientArray[15] = getSelectValue(document.getElementById("keyword_modifier"));
ambientArray[16] = getSelectValue(document.getElementById("date"));
if(!isDealer && !isMicrosite && !isFreebo){
ambientArray[17] = getRadioValue(document.getElementById("sellertype"));
} else {ambientArray[17] = "";}
ambientArray[18] = getSelectValue(document.getElementById("rpp"));

var qsCPO = "N";
var qsStk = "U";
if(!historic){
if(getRadioValue(document.advForm.uncpo) == 1){qsStk = "N";}
if(getRadioValue(document.advForm.uncpo) == 3){qsCPO = "Y";}
ambientArray[19] = "false";
} else {
ambientArray[19] = "true";
}
var cString = ambientArray[0] + "|" + ambientArray[1] + "|" + ambientArray[6] + "|" + qsStk + "|" + qsCPO;
setCookie('qsCookie', cString, 0, false);


var ambient = "";



for(i=0;i<ambientArray.length;i++){
if(i>0){ambient = ambient + '|';}

ambient = ambient + ambientArray[i].replace(/|/g, "");
}


setCookie("advForm", ambient, 0, false);
}  

//*------------------------------------------------------------------------------*//

function setForm(){

  // debug("ADV:"+getCookie("advForm"));
  // debug("SessionInfo:"+getCookie("SessionInfo"));
  // debug("SessionInfoTemp:"+getCookie("SessionInfoTemp"));
  
var stockDef = "U";
var cpoDef = false;
var stockCertCookie = getCookie("stockCert");

if(stockCertCookie.length > 0){
var stkCertArr = stockCertCookie.split("|");
stockDef = stkCertArr[0];
cpoDef = eval(stkCertArr[1]);
}

  var rCookie = getCookie("advForm");
   var zipCookie = getCookie("zipcode");
  if(rCookie.length > 0){
  hasPrePop = true;
    rCookieVals = Url.decode(rCookie).split("|");
    // debug(rCookie + ":" + rCookieVals.length);
    // debug("using adv...");
   var wasHistoric = false; 
   wasHistoric = eval(rCookieVals[19]);
    
    document.getElementById("keyword").value = Url.decode(rCookieVals[14]);
  
    if(!isDealer && !isMicrosite){
      prePopSelect(document.getElementById("rd"), rCookieVals[0]);
      document.getElementById("zc").value = zipCookie;
    }
    if(!isUsedSearch && !isNewSearch && !historic){
//prePopRadioButtons(document.advForm.uncpo, rCookieVals[2]);
var uncpoDef = 2;
if(stockDef == 'N'){uncpoDef = 1}
if(cpoDef){uncpoDef = 3}
prePopRadioButtons(document.advForm.uncpo, uncpoDef);
      evalUNCPO();
    }
    prePopSelect(document.getElementById("pricelow"), rCookieVals[5]);
    prePopSelect(document.getElementById("pricehigh"), rCookieVals[6]);
    prePopSelect(document.getElementById("color"), rCookieVals[7]);
 
if(historic){
if (wasHistoric || (!wasHistoric && parseInt(rCookieVals[9]) < histCutoff)){
   prePopSelect(document.getElementById("yearlow"), rCookieVals[8]);
    prePopSelect(document.getElementById("yearhigh"), rCookieVals[9]);
}
} else {
   prePopSelect(document.getElementById("yearlow"), rCookieVals[8]);
    prePopSelect(document.getElementById("yearhigh"), rCookieVals[9]);
}

    if(!historic){
      prePopSelect(document.getElementById("drive"), rCookieVals[10]);
      prePopCheckBoxes(document.advForm.ft, rCookieVals[13].split(','));
    }
  
    if(!isNewSearch){
      prePopSelect(document.getElementById("mileagelow"), rCookieVals[11]);
      prePopSelect(document.getElementById("mileagehigh"), rCookieVals[12]);
    }
    prePopSelect(document.getElementById("keyword_modifier"), rCookieVals[15]);
    prePopSelect(document.getElementById("date"), rCookieVals[16]);
    prePopSelect(document.getElementById("rpp"), rCookieVals[18]);
  
    if(!historic){
      prePopBodyStyles(document.advForm.bsId, rCookieVals[4].split(','));
      vtype.value = rCookieVals[4];
    }
  
    if(!historic){
      prePopRadioButtons(document.advForm.bschoice, rCookieVals[3]);
      bschoice = rCookieVals[3];
      if(bschoice == 1){
        document.getElementById("styles").style.display = "none";
      }
      if(bschoice == 2){
        document.getElementById("styles").style.display = "block";
      }
      //evalBSChoice();
    }
    
    if(!isDealer && !isMicrosite && !isFreebo){
      prePopRadioButtons(document.advForm.sellertype, rCookieVals[17]);
    }
    // debug('initEval');
    initEvalVT();
  } else {
    // debug('Using session info...');
    var cshunCookie = "SessionInfo";
    // if(ppSrc=="qs" && getCookie("SessionInfo").length > 0){
    //   var cshunCookie = "SessionInfo";
    // }
    var sCookie = getCookie(cshunCookie);
    // debug(ppSrc + ":" + cshunCookie + ":" + sCookie);
    if(sCookie.length > 0){
      //debug("session found");
      var sMakeName = "";
      var sModelName = ""; 
      var sMakeId = ""; 
      var sModelId = "";
      
      sCookieArray = Url.decode(sCookie).split('|');
      for(k=0; k<sCookieArray.length; k++){
        ssArr = sCookieArray[k].split('=');
        //debug(ssArr[0] + "" + ssArr[1]);
        if(ssArr[0] == 'mknm'){sMakeName = ssArr[1].replace(new RegExp( "\\+", "g" ), " ");}
        if(ssArr[0] == 'mdnm'){sModelName = ssArr[1].replace(new RegExp( "\\+", "g" ), " ");}
        if(ssArr[0] == 'mkid'){sMakeId = ssArr[1];}
        if(ssArr[0] == 'mdid'){sModelId = ssArr[1];}
      }
      // debug(sMakeName + "|" + sModelName + "|" + sMakeId + "|" + sModelId + "|");
      if(sMakeId.length > 0 | sModelId.length > 0){
        // debug("setting from "+cshunCookie+"...");
        ghostRows = new Array();
        ghostRows[0] = new Object();
        ghostRows[0].makeID = sMakeId;
        ghostRows[0].modelID = sModelId;
        ghostRows[0].makeName = sMakeName;
        ghostRows[0].modelName = sModelName;
        ghostRows[0].foundMake = null;
        ghostRows[0].makes = null;
        ghostRows[0].models = null;
        ghostRows[0].idx = 0;
      }
    }
    
    var rCookie = getCookie("qsCookie");
    if(rCookie.length > 0){
      rCookieVals = rCookie.split("|");
      if(!isDealer && !isMicrosite){
        prePopSelect(document.getElementById("rd"), rCookieVals[0]);
        document.getElementById("zc").value = rCookieVals[1];
      }
      if(!isNewSearch && !historic){
        var uncpoU = 2;
        nw = "";
        cpo = "";
        usd = "Y";
        
        if(stockDef == "N"){uncpoU = 1;nw="Y";usd="";cpo="";document.getElementById("stkTyp").value="N";}
if(cpoDef){uncpoU = 3;nw="";usd="";cpo="Y";document.getElementById("cpo").value="Y";}

        
      }
      // debug(uncpoU);
      if(!isUsedSearch && !isNewSearch && !historic){
        selectedStock = uncpoU;
        currentStock = selectedStock;
        // debug("prepop");
        prePopRadioButtons(document.advForm.uncpo, uncpoU);
        fillMakeList(applyVT);
        fillModelList(applyVT);
      }
      secondaryInteraction();
      prePopSelect(document.getElementById("pricehigh"), rCookieVals[2]);  
    }
  //prePopGhostRows();
    applyVT(); // apply defaults
  }
  

  

  
}

//*------------------------------------------------------------------------------*//

function prePopPUTC(){
  if(!hasPrePop && putc && !historic){
debug("prePopPutc:"+putcArray.length);
prePopRadioButtons(document.advForm.bschoice, 2);
for(i=0;i<putcArray.length;i++){
document.getElementById("body_"+putcArray[i]).checked = true;


}
evalBodyStyleCheckBoxes();
document.getElementById("styles").style.display = "block";


}
}

//*------------------------------------------------------------------------------*//

function prePopRadioButtons(domObj, rVal){
// debug(domObj + ":" + rVal);
if((rVal+"").length > 0){

for(i=0;i<domObj.length;i++){

var rObj = domObj[i];
// debug(rObj.value + ":" + rVal);
if(rObj.value == rVal){rObj.checked = true;} else {rObj.checked = false;}
}
}
}

function prePopCheckBoxes(domObj, rArray){

for(i=0;i<domObj.length;i++){

var rObj = domObj[i];
if(rArray.Contains(rObj.value)){rObj.checked = true;} else {rObj.checked = false;}
}

}


function prePopBodyStyles(domObj, rArray){

for(i=0;i<domObj.length;i++){

var rObj = domObj[i];
var rObjValue = rObj.value;
if(rObjValue.indexOf(",") > -1){rObjValue = rObjValue.split(",")[0]}
if(rArray.Contains(rObjValue)){rObj.checked = true;} else {rObj.checked = false;}
}

}

//----------------------------------------------------------------------------------------------------------------------//
function initMMT(){



	if(makeDefaults == null || makeDefaults.options.length < 2){
		if(isMicrosite && false){
			var fullURL = window.location.href;
			var newUrl = "/for-sale/searchresults.action";
			var qs = fullURL.substring(fullURL.indexOf('?'), fullURL.length);
			newUrl = newUrl + qs;
			window.location.href = newUrl;
			
		} else {
			
			alert(mdmError);
			}
		} else {
if(!isDealer && !isMicrosite && !quickForm){
wipeOutCity();
}

if(!quickForm){
setOptions(document.getElementById("yearlow"), yearDefaults.options);


setOptions(document.getElementById("yearhigh"), yearDefaults.options);
}

bringBack();
vtype = document.getElementById("VType");

if(!historic){
populateBodyStyles();
}

currentMakeList = makeDefaults;
currentNewMakeList = makeDefaults;
currentModelList = modelDefaults;


mmtOpt = document.getElementById("MMTOPT");
mmtOpt.rows = new Array();
var selMK = document.getElementById("make_ireplacei");
var selMD = document.getElementById("model_ireplacei");

//setOptions(selMK, makeDefaults.options);
//setOptions(selMD, modelDefaults.options);
addVehicle();

if(historic){prePopSelectByText(document.getElementById("yearhigh"), histCutoff);}
setForm();

}
initialized = true;

}


//----------------------------------------------------------------------------------------------------------------------//

function evalMenus(idx, src, fsrc, setyr){
var setter;

  if(quickForm) {
    setNUCPO(idx);
  }
  
  selMK = document.getElementById("make_"+idx);
  selMD = document.getElementById("model_"+idx);
  
  if(src == "make"){
    setter = setModel(idx, selMK, selMD, fsrc);
  } else {
    setter = setMake(idx, selMK, selMD, fsrc);
  }
  if(!quickForm && setyr) {
    setYears();
  }
}
//----------------------------------------------------------------------------------------------------------------------//
function setMake(idx, selMK, selMD, fsrc){
  
var ignoreStart = false;
//if(quickForm){ignoreStart = true;}


if(selMD.value != ""){
if((selMD.mkID != selMK.value) || (selMK.value == "")){

dojo.io.bind({
url: '/for-sale/GetMakeData.action',
content: {

bsID: vtype.value,
mdID : selMD.value,
nw: nw,
usd: usd,
cpo: cpo,
dlId: dlId,
dgId: dgId,
classic: classic,
loc: locale
},
load: function(type, data, evt){

opts = eval("("+data+")");
//setOptions(selMK, opts.options);


selMK.mdID = selMD.value;
if(opts.options.length == 2){


selMK.options.selectedIndex = 0;
var foundInCurrent = prePopSelect(selMK, opts.options[1].value);
if(foundInCurrent){
selMD.mkID = opts.options[1].value;
selMK.mdID = 0;
setModel(idx, selMK, selMD, selMD.value); 
} 

}
}
});
} else {
}
} else {                      
if(selMD.value == "" && selMK.mdID != 0 && !quickForm){

setOptions(selMK, makeDefaults.options, ignoreStart);
selMK.mdID = 0;
}

}
}

//----------------------------------------------------------------------------------------------------------------------//
function setModel(idx, selMK, selMD, fsrc){
debug('setModel: MKID');
emptySelect('models',idx);
var opts = null;
if((selMK.mdID != selMD.value || selMD.mkID != selMK.value) || (selMD.value == "")){
debug('setModelSoSo');
if(selMK.value != ""){
debug('setModelGood');
selMD.selectedIndex = 0;
dojo.io.bind({

url: '/for-sale/GetModelData.action',
content: {

bsID: vtype.value,
mkID : selMK.value,
nw: nw,
usd: usd,
// cpo: cpo,
cpo: '',
dlId: dlId,
dgId: dgId,
classic: classic,
loc: locale
},
load: function(type, data, evt){

opts = eval("("+data+")");

debug(quickForm+":"+fsrc.length);
if(quickForm && fsrc.length > 0){
  setOptionsWPref(selMD, opts.options,fsrc);
} else if(fsrc.length > 0){
  setOptionsWPref(selMD, opts.options,fsrc);
} else {
  setOptions(selMD, opts.options);
}
selMD.mkID = selMK.value;

var foundModel;




}
});

} else {
if(opts == null){
opts = modelDefaults;
if(quickForm && cpo == "Y"){opts = cpoModelDefaults;}
}
if(fsrc.length > 0){




setOptionsWPref(selMD, opts.options,fsrc);
} else {
setOptions(selMD, opts.options);
}


selMD.mkID = 0;
if(selMK.value == ""){
if(quickForm && nw == "Y"){

setOptions(selMD, newModelDefaults.options);

} else if(currentModelList != null) {setOptions(selMD, currentModelList.options);}
else {setOptions(selMD, modelDefaults.options);}

}
} 
}

if(!quickForm){
if(fsrc.length > 0){prePopSelect(selMD, fsrc);}
}
debug("model set");
}


/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*--Row Functions---------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/

function addVehicle(){
  
  var row_count = mmtOpt.rows.length;
  if(row_count < 24) {
    var newVehicle = document.createElement("div");
    // newVehicle.idx = mmtIndex;
    newVehicle.idx = mmtIndex;
    newVehicle.id = mmtRowString + mmtIndex;
    newVehicle.className = 'mmtrow';
    var ih = document.getElementById("prototype").innerHTML.replace(/ireplacei/g, mmtIndex); 
    ih = ih.replace(/XXX/g, "");
    if(row_count == 0){
      ih = ih + document.getElementById("addProto").innerHTML.replace(/ireplacei/g, mmtIndex);
    } else {
      ih = ih + document.getElementById("removeProto").innerHTML.replace(/ireplacei/g, mmtIndex);
    }
    newVehicle.innerHTML = ih;
    
    mmtOpt.rows[row_count] = newVehicle;
    mmtOpt.appendChild(newVehicle);
    
    //mmtOpt.rows[ind] = document.createElement("DIV"); 
    //mmtOpt.rows[ind].idx = ind;
    //mmtOpt.rows[ind].id = mmtRowString + ind;
    //mmtOpt.rows[ind].className = "mmtrow";
    //var ih = document.getElementById("prototype").innerHTML.replace(/ireplacei/g, ind); 
    //ih = ih.replace(/XXX/g, "");
    //if(ind == 0){
    //  ih = ih + document.getElementById("addProto").innerHTML.replace(/ireplacei/g, ind);
    //} else {
    //  ih = ih + document.getElementById("removeProto").innerHTML.replace(/ireplacei/g, ind);
    //}
    //mmtOpt.rows[ind].innerHTML = ih;
    //mmtOpt.appendChild(mmtOpt.rows[ind]);
    
    var selMK = document.getElementById("make_"+mmtIndex);
    selMK.mdID = 0;
    selMK.disabled = false;
    var selMD = document.getElementById("model_"+mmtIndex);
    selMD.mkID = 0;
    selMD.disabled = false;
    /*
    var selTRM = document.getElementById("trim_"+ind);
    selTRM.mdID = 0;
    selTRM.mkID = 0;
    */
    mmtRunningTotal++;
    mmtIndex++;
  }
}


//----------------------------------------------------------------------------------------------------------------------//

function resetMMTRows(){
  var weHad = mmtOpt.rows.length;
  //for(i=0;i<weHad;i++){
  //  var domObj = document.getElementById(mmtRowString + mmtOpt.rows[i].idx);
  //  domObj.style.display = "none";
  //  var oust = domObj; 
  //  mmtOpt.removeChild(oust); 
  //}
  mmtOpt.innerHTML = '';
  mmtOpt.rows = new Array();
  mmtRunningTotal = 0;
  mmtIndex = 0;
  addVehicle();
}

//----------------------------------------------------------------------------------------------------------------------//
function removeVehicle(rs){

  if(rs > 0){
    var oust = document.getElementById(mmtRowString + rs); 
    
    //var tempRows = new Array();
    for (i=0; i<mmtOpt.rows.length; i++){
      if (mmtOpt.rows[i].id == mmtRowString + rs){
        //tempRows[tempRows.length] = mmtOpt.rows[i];
        mmtOpt.rows.splice(i,1);
      } 
    } 
    //mmtOpt.rows = tempRows; 
    mmtOpt.removeChild(oust); 
    mmtRunningTotal--; 
  } 
  setYears();
}


 
//----------------------------------------------------------------------------------------------------------------------//

function updateCityHP(){
// debug("updateCity");
var citySelect = document.getElementById("chooseCitySelect");

var cityValue = getSelectValue(citySelect);

cityValue = cityValue.split("|")[0];

if(cityValue.length > 0){

document.getElementById("miniZip").zip.value = cityValue;

//swapCityList(2);

}

 setNationalRadius(citySelect);

}

 
//----------------------------------------------------------------------------------------------------------------------//

function swapCityList(dir){

if(dir == 1){

document.getElementById("chooseCity").style.display = "inline";

document.getElementById("chooseCityLink").style.display = "none";

} else {

document.getElementById("chooseCity").style.display = "none";

document.getElementById("chooseCityLink").style.display = "inline";

}

}

//----------------------------------------------------------------------------------------------------------------------//


      				
      				function wipeOutCity(){
      					document.getElementById("chooseCitySelect").selectedIndex = 0;
      					swapCityList(2);
      					setNationalRadius(null);
      				}
      				
      				function updateCity(){
      					var citySelect = document.getElementById("chooseCitySelect");
      					var cityValue = getSelectValue(citySelect);
      					cityValue = cityValue.split("|")[0];
      					if(cityValue.length > 0){
      						document.getElementById("zc").value = cityValue;
      						//swapCityList(2);
      					}
      					setNationalRadius(citySelect);
      				}
      			
      				function swapCityList(dir){
      					if(dir == 1){
      						document.getElementById("chooseCity").style.display = "inline";
      						document.getElementById("chooseCityLink").style.display = "none";
      					} else {
      						document.getElementById("chooseCity").style.display = "none";
      						document.getElementById("chooseCityLink").style.display = "inline";
      					}
      				}
      			 
      		



