
var DropdownSelectionController = Class.create({
    initialize: function(dropdown_container) {
        var me = this;
	    me.dropdown_container = $(dropdown_container);
	    me.dropdowns = [];
	    var dropdowns = me.dropdown_container.getElementsBySelector('select.dropdown_select');
	    dropdowns.each(function(dd,i) {
            switch(dd.id) {
                case 'CentralYearsDropDownList':
                    me.dropdowns[0] = dd;
                    break;
                case 'CentralModelsDropDownList':
                    me.dropdowns[1] = dd;
                    break;
                case 'YearsDropDownList':
                    me.dropdowns[2] = dd;
                    break;                    
                case 'MakesDropDownList':
                    me.dropdowns[3] = dd;
                    break;
                case 'ModelsDropDownList':
                    me.dropdowns[4] = dd;
                    break;
                case 'TrimsDropDownList':
                    me.dropdowns[5] = dd;
                    break;
                case 'TrimKmPerYearDropDownList':
                    me.dropdowns[6] = dd;
                    break;
                case 'CalculationTypeDropDownList':
                    me.dropdowns[7] = dd;
                    break;
            }
        });
	    me.dropdowns.each(function(dd,i) {
	        dd.onmousedown = function() {
	            if(dd.className == 'dropdown_selected')
                    dd.className = 'dropdown_select';
	        }
	        dd.onchange = function() {
	            me.onchange(this);
	        }
	    });
	    me.onchange(me.dropdowns[0]);
    },
    onchange: function(dropdown) {
        var me = this;
        var next_dd_ix = -1;
        var f = false;
        
        //find this dropdown
        me.dropdowns.each(function(dd,i) {
            if(dropdown.id==dd.id)
                next_dd_ix = i;
        });
        
        var highlight = false;
        var dd = me.dropdowns[next_dd_ix];
        if(dd.selectedIndex==0) {
            //highlight this one
            highlight= true;
        }
        else {
            //if there is a next drop down, highlight it
            if(next_dd_ix+1 < me.dropdowns.length) {
                next_dd_ix++;
                dd = me.dropdowns[next_dd_ix];
                switch(dropdown.id) {
                    default:
                        highlight= true;
                        break;
                }
            }
        }
        
        if(highlight) {
            me.dropdowns.each(function(dd,i) {
                if(i < next_dd_ix) {
                    dd.className = 'dropdown_select';
                }
                else if(i == next_dd_ix) {
                    dd.className = 'dropdown_selected';
                    dd.disabled=false;
                    dd.focus();
                }
                else if(next_dd_ix < i) {
                    dd.className = 'dropdown_select';
                }
            });
        }
        //custom stuff for specific dropdowns
        switch(dropdown.id) {
            case 'CentralModelsDropDownList':
                var ds = $get('CentralDollarsPerTank');
                if(ds)ds.innerHTML = '-';
                ds = $get('CentralHwyLitersPer100Km');
                if(ds)ds.innerHTML = '-';
                ds = $get('CentralUrbanLitersPer100Km');
                if(ds)ds.innerHTML = '-';
                ds = $get('CentralKmPerTank');
                if(ds)ds.innerHTML = '-';
                ds = $get('CentralKgOfCO2PerYear');
                if(ds)ds.innerHTML = '-';
                ds = $get('CentralDollarsPerYear');
                if(ds)ds.innerHTML = '-';
                break;
            case 'MakesDropDownList':
                var ds = $get('DollarsPerTank');
                if(ds)ds.innerHTML = '-';
                ds = $get('HwyLitersPer100Km');
                if(ds)ds.innerHTML = '-';
                ds = $get('UrbanLitersPer100Km');
                if(ds)ds.innerHTML = '-';
                ds = $get('KmPerTank');
                if(ds)ds.innerHTML = '-';
                ds = $get('KgOfCO2PerYear');
                if(ds)ds.innerHTML = '-';
                ds = $get('DollarsPerYear');
                if(ds)ds.innerHTML = '-';
                break;
            case 'ModelsDropDownList':
                var ds = $get('DollarsPerTank');
                if(ds)ds.innerHTML = '-';
                ds = $get('HwyLitersPer100Km');
                if(ds)ds.innerHTML = '-';
                ds = $get('UrbanLitersPer100Km');
                if(ds)ds.innerHTML = '-';
                ds = $get('KmPerTank');
                if(ds)ds.innerHTML = '-';
                ds = $get('KgOfCO2PerYear');
                if(ds)ds.innerHTML = '-';
                ds = $get('DollarsPerYear');
                if(ds)ds.innerHTML = '-';
                break;
            case 'TrimsDropDownList':
                var ds = $get('DollarsPerTank');
                if(ds)ds.innerHTML = '-';
                ds = $get('HwyLitersPer100Km');
                if(ds)ds.innerHTML = '-';
                ds = $get('UrbanLitersPer100Km');
                if(ds)ds.innerHTML = '-';
                ds = $get('KmPerTank');
                if(ds)ds.innerHTML = '-';
                ds = $get('KgOfCO2PerYear');
                if(ds)ds.innerHTML = '-';
                ds = $get('DollarsPerYear');
                if(ds)ds.innerHTML = '-';
                break;
            case 'TrimKmPerYearDropDownList':
                var tb = $('CentralTrimKmPerYear');
                var o = $('TrimKmPerYearDropDownList');
                tb.value=o.options[o.options.selectedIndex].text;
                var ds = $get('CentralDollarsPerYear');
                if(ds)ds.innerHTML = '-';
                ds = $get('DollarsPerYear');
                if(ds)ds.innerHTML = '-';
                break;
            case 'CalculationTypeDropDownList':
                var tb = $('CalculationTypeTextBox');
                var o = $('CalculationTypeDropDownList');
                tb.value=o.options[o.options.selectedIndex].text;
                var ds = $get('CentralKmPerTank');
                if(ds)ds.innerHTML = '-';
                var ds = $get('CentralDollarsPerYear');
                if(ds)ds.innerHTML = '-';
                ds = $get('CentralKgOfCO2PerYear');
                if(ds)ds.innerHTML = '-';
                ds = $get('KmPerTank');
                if(ds)ds.innerHTML = '-';
                var ds = $get('DollarsPerYear');
                if(ds)ds.innerHTML = '-';
                ds = $get('KgOfCO2PerYear');
                if(ds)ds.innerHTML = '-';
                break;
        }
    }
});