
var makesById = new Array();
var makesByName = new Array();

// used car make
function K(makeId, makeName)
{
    var makeRecord = new Array();
    makeRecord[0] = makeId;
    makeRecord[1] = makeName;
    makeRecord[2] = new Array();

    makesById[makeId] = makeRecord;
    makesByName[makeName] = makeRecord;
}

// used car model
function D(makeId, modelName)
{
    var makeRecord = makesById[makeId];
    // do the old fashioned way because of the lack of support for push in ie 5 mac
    makeRecord[2][makeRecord[2].length] = modelName    
    //makeRecord[2].push(modelName);
}

// new car make
var newMakes = new Array();
function A(makeId, makeName)
{
    var makeRecord = new Array();
    makeRecord[0] = makeId;
    makeRecord[1] = makeName;
    makeRecord[2] = new Array();
    newMakes[makeId] = makeRecord;
}

// new car model (ignore for now)
function L(makeId, modelId, modelName)
{
    var modelRecord = new Array();
    modelRecord[0] = modelId;
    modelRecord[1] = modelName;
    // do the old fashioned way because of the lack of support for push in ie 5 mac
    newMakes[makeId][2][newMakes[makeId][2].length]=modelRecord;
    //newMakes[makeId][2].push(modelRecord);
}

function init()
{
    // Initialize used cars javascript
    initCars();
    // Initialize new car javascript
    initNewMakes();

    // Add used car makes
    var makeSel = document.usedForm.usedMakeSelect;
    makeSel.options.length = 0;
    var optionDefault = new Option("All Makes", "");
    makeSel.options[0] = optionDefault;
    var optionNum = 0;
    for (ii in makesById)
    {
        var makeRecord = makesById[ii];
        var option = new Option(makeRecord[1], makeRecord[1]);
        makeSel.options[optionNum + 1] = option;
        optionNum++;
    }        
    selectUsedMake(makeSel.value);


    // Add new car makes
    var makeSel = document.newForm.newMakeSelect;
    makeSel.options.length = 0;
    var optionDefault = new Option("All Makes", "");
   makeSel.options[0] = optionDefault;
    var optionNum = 0;
    for (ii in newMakes)
    {
        var makeRecord = newMakes[ii];
        var option = new Option(makeRecord[1], makeRecord[0]);
        makeSel.options[optionNum + 1] = option;
//        makeSel.options[optionNum] = option;
        optionNum++;
    }
}

function selectUsedMake(makeName)
{
    // Choose the specified make if it isn't already selected
    var makeSel = document.usedForm.usedMakeSelect;
    var hasMake = false;

    if (!makeName || (makeName == ""))
        makeName = makeSel.value;

    if (makeName && (makeName != makeSel.value))
    {
        for (ii=0; ii < makeSel.options.length; ii++)
        {
            if (makeSel.options[ii].value == makeName){
                makeSel.options[ii].selected = true;
                hasMake = true;
            } else {
                makeSel.options[ii].selected = false;
            }
        }
    }
    if (!hasMake) makeName=document.usedForm.mknm.options[document.usedForm.mknm.selectedIndex].value; //fix non-existent make-name bug
    var makeRecord = makesByName[makeName];

    var modelSel = document.usedForm.usedModelSelect;
    modelSel.options.length = 0;
    var optionNum = 1;
    var option = new Option("All Models", "");
    modelSel.options[0] = option;
	if (makeRecord){
	    for (ii = 0; ii < makeRecord[2].length; ii++)
	    {
	        var modelName = makeRecord[2][ii];
	        var option = new Option(modelName);
	        modelSel.options[optionNum] = option;
	        optionNum++;
	    }
	}
}

function selectUsedModel(modelName)
{
    // Choose the specified model if it isn't already selected
    var modelSel = document.usedForm.usedModelSelect;

    if (modelName && (modelName != modelSel.value))
    {
        for (ii=0; ii < modelSel.options.length; ii++)
        {
            if (modelSel.options[ii].text == modelName)
                modelSel.options[ii].selected = true;
            else
                modelSel.options[ii].selected = false;
        }
    }
}

function selectNewMake(makeId)
{
    // Choose the specified make if it isn't already selected
    var makeSel = document.newForm.newMakeSelect;
    var modelSel = document.newForm.newModelSelect;

    if (!makeId || (makeId == ""))
        makeId = makeSel.value;

    if (makeId && (makeId != makeSel.value))
    {
        for (ii=0; ii < makeSel.options.length; ii++)
        {
            if (makeSel.options[ii].value == makeId)
                makeSel.options[ii].selected = true;
            else
                makeSel.options[ii].selected = false;
        }
    }
    makeId = makeSel.value;
	modelSel.options.length = 0;
    modelSel.options[0] = new Option("All Models", "");
    var makeRecord = newMakes[makeId];
    var optionNum = 1;
	if (makeRecord){
	    for (ii = 0; ii < makeRecord[2].length; ii++)
	    {
	        var modelName = makeRecord[2][ii][1];
	        var modelId = makeRecord[2][ii][0];
	        var option = new Option(modelName, modelId);
	        modelSel.options[optionNum] = option;
	        optionNum++;
	    }
	}
}

function selectNewModel(modelId)
{
    // Choose the specified model if it isn't already selected
    var modelSel = document.newForm.newModelSelect;

    if (modelId && (modelId != modelSel.value))
    {
        for (ii=0; ii < modelSel.options.length; ii++)
        {
            if (modelSel.options[ii].value == modelId)
                modelSel.options[ii].selected = true;
            else
                modelSel.options[ii].selected = false;
        }
    }
}

/*  Override two functions from homeSearchZipErrorB.js  */

function zipError(fm){
		if(aForm == '') aForm = "document."+ fm;
		var zErr = document.getElementById("zipError").style;
		zErr.top = '465px';
		if(location.href.indexOf('buyIndex')!=-1) {zErr.left = '1px'; zErr.top = '35px';}
		if(location.href.indexOf('buy-cars')!=-1) {zErr.left = '-5px'; zErr.top = '0px';}
		if (aForm == 'document.searchCPO') zErr.top = '180px';
		zErr.display = 'block';
		hideShowSelects('hidden');
}

/*  just blank this one....  */

function hideShowSelects(sts){
}

