function getDropdownValue(dropdown){
    var value = dropdown.options[dropdown.selectedIndex].value;
    return value;
}

function getStatesByCountry(countryDropdown, emptyListMsg, errMsg, defaultStateValue){
    var countryId = getDropdownValue(countryDropdown);
    if (countryId.length > 1) // Country selected is not 'Select a Country'
    {
        var controller = url+"carfinder-online-auto-auctions/ajax/TitleTypeStates/"+countryId+"/";
        var stateSplitter = "~";
        var setSplitter = "*";
        new Ajax.Request(controller, {
            method: "get",
            onSuccess: function(transport){
                if (transport.responseText.indexOf("empty") > -1) {
                    $("listContent").innerHTML = "<div class=\"alertred\">" + emptyListMsg + "</div>";
                }
                else {
                    $("submitTitleType").disabled = false;
                    var returnValue = transport.responseText;
                    var states = returnValue.split(stateSplitter);
                    $("titleTypeState").options.length = 0;
                    for (var i = 0; i < states.length - 1; i++) {
                        var state = states[i].split(setSplitter);
                        $("titleTypeState").options[i] = new Option(state[1], state[0]);
                    }
                }
            },
            onFailure: function(transport){
                $("listContent").innerHTML = "<div class=\"alertred\">" + errMsg + "</div>";
            }
        });
    }
    else {
        $("submitTitleType").disabled = true;
        $("titleTypeState").options.length = 0;
        $("titleTypeState").options[0] = new Option(defaultStateValue, '');
    }
}
function getTitleTypeCodes(errMsg){
    var stateId = getDropdownValue($("titleTypeState"));
    if (stateId.length > 0) {
       var controller = url+"carfinder-online-auto-auctions/ajax/TitleTypeCodesList/"+trimWS(stateId)+"/";
		new Ajax.Request(controller, {
            method: "get",
            onSuccess: function(transport){
                $("listContent").innerHTML = transport.responseText;
            },
            onFailure: function(transport){
                $("listContent").innerHTML = "<div class=\"alertred\">" + errMsg + "</div>";
            }
        });
    }
}
function updateMakeDropDown(dropDownName, contentContainer){
    var NodeName = "makes";
    
    if ($(dropDownName).value == 'V') {
        $("modelList").disabled = false;
        updateDropDown(dropDownName, contentContainer, NodeName, message.defaultMakeDisplay, message.defaultMakeValue);
        setTimeout("timeoutForModel()", 1000000);
    }
    else {
        updateDropDown(dropDownName, contentContainer, NodeName, message.defaultMakeIfNotVehicle, message.defaultMakeIfNotVehicleValue);
        makeNotValidModelDropDown();
    }
}

function timeoutForModel(){
    updateModelDropDown('makeList', 'modelList');
}

function makeNotValidModelDropDown(){
    $("modelList").options.length = 0;
    var opt = $E({
        tag: "option"
    });
    opt.text = message.defaultModelDisplay;
    opt.value = message.defaultModelValue;
    $("modelList").options.add(opt);
    $("modelList").disabled = true;
}

function updateModelDropDown(dropDownName, contentContainer){
    var NodeName = "models";
    
    if ($(dropDownName).value != "*") {
        updateDropDown(dropDownName, contentContainer, NodeName);
    }
}

function updateModelDropDown2(dropDownName, contentContainer){
    var NodeName = "models";
    
    if ($(dropDownName).value != "*") {
        updateDropDown(dropDownName, contentContainer, NodeName, message.defaultModelDisplay, message.defaultModelValue);
    }
}

function updateDropDown(dropDownName, contentContainer, NodeName, defaultOption, defaultOptionValue){
    var selectedValue = $(dropDownName).value;
    var xmlDoc;
    var nodeCounter = 0;
    var startCounterAt = 0;
    defaultOption = defaultOption ? defaultOption : "";
    defaultOptionValue = defaultOptionValue ? defaultOptionValue : "";
    if (defaultOption !== "") {
        var firstOption = new Option(defaultOption, defaultOptionValue);
        startCounterAt = 1;
    }
    $(contentContainer).options.length = 0;
    
    new Ajax.Request(url+'carfinder-online-auto-auctions/ajax/'+NodeName+'/'+selectedValue+'/', {
        method: "get",
        evalJSON: true,
    	onSuccess: function(transport){
			Doc = transport.responseJSON[NodeName];
			
			DocCounter = Doc.length;
			if(DocCounter>0) {
				for ( var i = 0; i < DocCounter; i++ ) {
					$(contentContainer).options.add(new Element('option', { 'value' : Doc[i].value }));
					$(contentContainer).options[i].update(Doc[i].label);
				}
			} 
            else {
                $(contentContainer).options[0] = firstOption;
            }
        },
        onFailure: function(){
            $(contentContainer).options[0] = firstOption;
        }
    });
}

function updateMakeDropDownWith(vehicleType, defaultValue){
    var NodeName = "makes";
    
    if ((vehicleType == undefined)) {
        return;
    }
    
    if (vehicleType == 'V') {
        $("modelList").disabled = false;
        updateDropDownWith(vehicleType, 'makeList', NodeName, message.defaultMakeDisplay, "*", defaultValue);
    }
    else {
        updateDropDownWith(vehicleType, 'makeList', NodeName, message.defaultMakeIfNotVehicle, message.defaultMakeIfNotVehicleValue, defaultValue);
        makeNotValidModelDropDown();
    }
}


function updateModelDropDownWith(makeType, defaultValue){
    var NodeName = "models";
    var xmlNodeAttribute1 = "code";
    var xmlNodeAttribute2 = "description";
    
    updateDropDownWith(makeType, 'modelList', NodeName, message.defaultModelDisplay, message.defaultModelValue, defaultValue);
}

function updateDropDownWith(dropDownType, contentContainer, NodeName, firstDescription, firstValue, defaultValue){
    if (dropDownType == undefined) {
        return;
    }
    var xmlDoc;
    var nodeCounter = 0;
    var startCounterAt = 0;
    firstDescription = firstDescription ? firstDescription : "";
    firstValue = firstValue ? firstValue : "";
    
    if (firstDescription !== "") {
        var firstOption = new Option(firstDescription, firstValue);
        startCounterAt = 1;
    }
 
 	$(contentContainer).options.length = 0;
    
    new Ajax.Request(url+'carfinder-online-auto-auctions/ajax/'+NodeName+'/'+trimWS(dropDownType)+'/', {
        method: "get",
        evalJSON: true,
    	onSuccess: function(transport){
			Doc = transport.responseJSON[NodeName];
			
			DocCounter = Doc.length;
			if(DocCounter>0) {
				for ( var i = 0; i < DocCounter; i++ ) {
					$(contentContainer).options.add(new Element('option', { 'value' : Doc[i].value }));
					$(contentContainer).options[i].update(Doc[i].label);
				} 
            }
            else {
                $(contentContainer).options[0] = firstOption;
            }
			if (defaultValue != undefined) {
                setSelectValue(contentContainer, defaultValue);
            }
        },
        onFailure: function(){
            $(contentContainer).options.length = 0;
            $(contentContainer).options[0] = firstOption;
        }
    });
}


function reloadToYears( elementId ) {
	var fromYear = $('fromYear').value;
	if ( fromYear == 'ALL' ) {
		fromYear = 1940;
	}
	var toYear = new Date().getFullYear() + 1;
	
	var options = new Array();
	for ( var i = toYear; i >= fromYear; i-- ) {
		options[options.length] = {'option' : i, 'value' : i};
	}
	updateFormOptions(elementId, options);
}

function updateFormOptions( elementId, options ) {
	var optionElement = $(elementId);
	if ( optionElement !== null ) {
		var preSelected = optionElement.options[optionElement.selectedIndex].value;
		optionElement.options.length = 0;
		for ( var i = 0; i < options.length; i++ ) {
			optionElement.options.add(new Element('option', { 'value' : options[i].value }));
			optionElement.options[i].update(options[i].option);
			if ( preSelected !== null && preSelected == options[i].value ) {
				optionElement.options[i].selected = true;
			}
		}
	}
}

function saveSearchParms(parms){
    var cookieTxt = new String();
    
    for (parmName in parms) {
        if ((escape(parms[parmName]) !== null) && (escape(parms[parmName]) !== '')) {
            cookieTxt += parmName + "=" + escape(parms[parmName]) + "|";
        }
    }
    
    if (cookieTxt.length > 1) {
        if (cookieTxt.substr((cookieTxt.length - 1), 1) == "|") {
            // strip off trailing  "|"
            cookieTxt = cookieTxt.substr(0, cookieTxt.length - 1);
        }
    }
    
    setCookie("searchParms", cookieTxt, null, "/", "autobidmaster.com");
}

function getSearchParms(){
    var parmObj = new Object();
    var cookieTxt = getCookie("searchParms");
    var parms = cookieTxt.split("|");
    
    // set default values for parms
    parmObj.zip = "";
    
    for (var i = 0; i < parms.length; i++) {
        var parm = parms[i].split("=");
        if ((parm[1] != "null") && (parm[1] != "undefined")) {
            parmObj[unescape(parm[0])] = unescape(parm[1]);
        }
    }
    
    return parmObj;
}