    // refinance stuff
    ////////////////////////
    function loadRefinanceMake(makeId, makeName) {
        var make = new Make(makeId, makeName);
        refinanceMakes.push(make);
    }
    function getRefinanceMake(makeId) {
        for (var i=0; i<refinanceMakes.length; i++) {
            var make = refinanceMakes[i];
            if (make.makeId == makeId) {
                return make;    
            }
        }
    }
        
    function getRefinanceModel(models, modelId) {
        for (var i=0; i<models.length; i++) {
            var model = models[i];
            if (model.modelId == modelId) {
                return model;   
            }
        }
    }
    function loadRefinanceModel(makeId, modelId, modelName) {
        var make = getRefinanceMake(makeId);
        make.models.push(new Model(modelId, modelName));
    }

    function loadRefinanceYear(makeId, modelId, yearName) {
        var make = getRefinanceMake(makeId);
        var model = getRefinanceModel(make.models, modelId);
        model.years.push(new Year(yearName));
    }
        
    function populateRefinanceMakes() {
        var makeSelect = document.refinance_search.make;
        makeSelect.options.length = 0;
        var optionNum = 0;
        makeSelect.options[optionNum++] = new Option("Select A Make", 0);
        for (var i=0; i<refinanceMakes.length; i++) {
            var make = refinanceMakes[i];
            makeSelect.options[optionNum++] = new Option(make.makeName, make.makeId);
        }
    }

    function populateRefinanceModels(makeId) {
        var modelSelect = document.refinance_search.model;
        modelSelect.options.length = 0;
        var optionNum = 0;
        var make = getRefinanceMake(makeId);
        // if make array does not contain make, return graceful
        if (make == null) {
            modelSelect.options[optionNum] = new Option("Select A Model", 0);
            return;
        }
        var models = make.models;
        for (var i=0; i<models.length; i++) {
            var model = models[i];
            modelSelect.options[optionNum++] = new Option(model.modelName, model.modelId);
        }
    }
        
    function populateRefinanceYears(modelId) {
        var yearSelect = document.refinance_search.year;
        yearSelect.options.length = 0;
        var optionNum = 0;

        // get make object
        var makeSelect = document.refinance_search.make;
        var makeId = makeSelect[makeSelect.selectedIndex].value;
        var make = getRefinanceMake(makeId);

        // get model object
        var model = getRefinanceModel(make.models, modelId);

        // if model array does not contain model, return graceful
        if (model == null) {
            yearSelect.options[optionNum] = new Option("Select A Year", 0);
            return;
        }

        // populate years select
        var years = model.years;
        for (var i=0; i<years.length; i++) {
            var year = years[i];
            yearSelect.options[optionNum++] = new Option(year.yearName, year.yearName);
        }
    }

    function populateRefinanceModelsYears(makeId) {
        // populate model drop-down
        populateRefinanceModels(makeId);  

        // get selected model
        var modelSelect = document.refinance_search.model;
        var modelId = modelSelect[modelSelect.selectedIndex].value;   

        // populate year drop-down
        populateRefinanceYears(modelId);
    }

    function selectRefinanceMake(makeId) {
        var makeSelect = document.refinance_search.make;
        for (i=0;i<makeSelect.options.length;i++) {
            if (makeSelect.options[i].value == makeId) {
                makeSelect.options[i].selected = true;
            }
        }
    }

    function selectRefinanceModel(modelId) {
        var modelSelect = document.refinance_search.model;
        for (i=0;i<modelSelect.options.length;i++) {
            if (modelSelect.options[i].value == modelId) {
                modelSelect.options[i].selected = true;
            }
        }
    }

    function selectRefinanceYear(yearName) {
        var yearSelect = document.refinance_search.year;
        for (i=0;i<yearSelect.options.length;i++) {
            if (yearSelect.options[i].value == yearName) {
                yearSelect.options[i].selected = true;
            }
        }
    }