if (!ckm) var ckm = {};
ckm.Cars = Class.create();
ckm.Cars.prototype = {
    initialize: function() {
    },
    init: function() {
       Event.observe('car_maker', 'change', ckm.cars_.onMakerChange.bindAsEventListener(ckm.cars_));
       Event.observe('car_type', 'change', ckm.cars_.onTypeChange.bindAsEventListener(ckm.cars_));

       location.hash.match(/^#*search=([a-zA-Z0-9]+)&*(.*)/);
       var maker = RegExp.$1;
       var type = RegExp.$2;
        if ((typeof maker != 'undefined' || typeof type != 'undefined') && (maker || type) ) {
//alert([maker, type])
           $('car_maker').value = decodeURIComponent(maker);
           this.changeCarType(function(){
               $('car_type').value = decodeURIComponent(type);
               ckm.cars_.onTypeChange.call(ckm.cars_);
           });
        }
       
    },

    changeCarType: function(callback) {
        new Ajax.Updater("search_carname",
        '/approved-cars/car_type/' + $F('car_maker'),
        {
            method: 'get',
            onComplete: function() {
               Event.observe('car_type', 'change', ckm.cars_.onTypeChange.bindAsEventListener(ckm.cars_));
               if (callback) {
                   callback.call();
               }
            }
        });
        
    },

    onMakerChange: function(event) {

//       var url= $('car_search').action + $F('car_maker');
//       location.href = url;
        if (navigator.userAgent.toLowerCase().indexOf('safari') > -1) {
            location.hash = 'search=' + $F('car_maker');
        } else {
            location.hash = "#search=" + $F('car_maker');
        }

        this.changeCarType();

        new Ajax.Updater('car_data',
        '/approved-cars/search/' + $F('car_maker'),
        {
            method: 'get'
        });
    },
    onTypeChange: function(event) {
        if (navigator.userAgent.toLowerCase().indexOf('safari') > -1) {
            location.hash = 'search=' + $F('car_maker') + '&' + $F('car_type');
        } else {
            location.hash = "#search=" + $F('car_maker') + '&' + $F('car_type');
        }

        new Ajax.Updater('car_data',
        '/approved-cars/search/' + $F('car_maker') + '/' + $F('car_type'),
        {
            method: 'get'
        });
    }
}


ckm.cars_ = new ckm.Cars;
Event.observe(window, 'load', ckm.cars_.init.bindAsEventListener(ckm.cars_), false);
