/*
Home JS pour Moto85
Copyright(c) 2009, Skalpel.

Author : Michael
michael@skalpel.fr

Note : 
	-
ToDo :
	- 
*/
var SkSbRecherche;
window.addEvent('domready', function() {
 	if ($('sb-recherche')) SkSbRecherche = new SKjs.SbRecherche();
});


/* 
Class : RechercheRapide
	Gestion de la recherche rapide
	
Arguments : 
	options {object} - Objet Options

Options :
	elmSelType {String} - Id du Select correspondant aux Types de vehicules
	elmSelMarque {String} - Id du Select correspondant aux Marques
	elmSelModele {String} - Id du Select correspondant aux Modeles
*/
SKjs.SbRecherche = new Class ({
	Implements: [Events, Options],
	options: {
		marque:			'marque4',
		cylindree:		'cylindree4',
		modele:			'modele4',
		
		suffixInit:		'init-',
		
		anneeMin:		'annee-de',
		anneeMax:		'annee-a',
		
		kmMin:			'km-mini',
		kmMax:			'km-maxi',
		
		prixMin:		'prix-mini',
		prixMax:		'prix-maxi'
	},

	initialize: function(options) {
		this.setOptions(options);
		this.dom 			= {};
		this.sliderValues 	= {};
		
		this.initDom();
		this.initSliderValues();
		this.initEvents();
		
		// Selects marque/cylindree/modele
		new SKjs.SelectsHome(this.options.marque, this.options.cylindree, this.options.modele);
		
		// Mise en circulation
        if ($chk(this.sliderValues.anneeMinI) && $chk(this.sliderValues.anneeMaxI)) {
            new SKjs.Slider('motos-annee', 'div.scrollbar', 'motos-annee-minKnob', 'motos-annee-maxKnob', {
                start: this.sliderValues.anneeMinI,
                end: this.sliderValues.anneeMaxI,
                offset: 0,
                snap: false,
                onChange: function(pos) {
                    $('motos-annee-de').set('html', pos.minpos);
                    $('motos-annee-a').set('html', pos.maxpos);
                    $('annee-de').set('value', pos.minpos);
                    $('annee-a').set('value', pos.maxpos);
                }
            }).setMin(this.sliderValues.anneeMin).setMax(this.sliderValues.anneeMax);
        }
		
		// Kilometrage
        if ($chk($('motos-km')) && $chk($('motos-km-minKnob')) && $chk($('motos-km-maxKnob'))) {
            new SKjs.Slider('motos-km', 'div.scrollbar', 'motos-km-minKnob', 'motos-km-maxKnob', {
                start: this.sliderValues.kmMinI / 1000,
                end: this.sliderValues.kmMaxI / 1000,
                offset: 0,
                snap: false,
                onChange: function(pos) {
                $('motos-km-min').set('html', pos.minpos * 1000);
                $('motos-km-max').set('html', pos.maxpos * 1000);
                $('km-mini').set('value', pos.minpos * 1000);
                $('km-maxi').set('value', pos.maxpos * 1000);
            }
            }).setMin(this.sliderValues.kmMin / 1000).setMax(this.sliderValues.kmMax / 1000);
        }

		// Prix
        if ($chk($('motos-prix')) && $chk($('motos-prix-minKnob')) && $chk($('motos-prix-maxKnob'))) {
			new SKjs.Slider('motos-prix', 'div.scrollbar', 'motos-prix-minKnob', 'motos-prix-maxKnob', {
				start: this.sliderValues.prixMinI / 1000,
				end: this.sliderValues.prixMaxI / 1000,
				offset: 0,
				snap: false,
				onChange: function(pos) {
					$('motos-prix-min').set('html', pos.minpos * 1000);
					$('motos-prix-max').set('html', pos.maxpos * 1000);
					$('prix-mini').set('value', pos.minpos * 1000);
					$('prix-maxi').set('value', pos.maxpos * 1000);
			}
			}).setMin(this.sliderValues.prixMin / 1000).setMax(this.sliderValues.prixMax / 1000);
        }
	},
	
	initDom: function() {
		this.dom.marque 			= $(this.options.marque);
		this.dom.cylindree			= $(this.options.cylindree);
		this.dom.modele 			= $(this.options.modele);
	},
	
	initSliderValues: function() {
        if ($chk($(this.options.anneeMin))) { this.sliderValues.anneeMin                                = parseInt($(this.options.anneeMin).get('value')); }
        if ($chk($(this.options.anneeMax))) { this.sliderValues.anneeMax                                = parseInt($(this.options.anneeMax).get('value')); }
        if ($chk($(this.options.suffixInit + this.options.anneeMin))) { this.sliderValues.anneeMinI 	= parseInt($(this.options.suffixInit + this.options.anneeMin).get('html').replace(' ', '')); }
        if ($chk($(this.options.suffixInit + this.options.anneeMax))) { this.sliderValues.anneeMaxI 	= parseInt($(this.options.suffixInit + this.options.anneeMax).get('html').replace(' ', '')); }

        if ($chk($(this.options.kmMin))) { this.sliderValues.kmMin                                      = parseInt($(this.options.kmMin).get('value')); }
        if ($chk($(this.options.kmMax))) { this.sliderValues.kmMax                                      = parseInt($(this.options.kmMax).get('value')); }
        if ($chk($(this.options.suffixInit + this.options.kmMin))) { this.sliderValues.kmMinI           = parseInt($(this.options.suffixInit + this.options.kmMin).get('html').replace(' ', '')); }
		if ($chk($(this.options.suffixInit + this.options.kmMax))) { this.sliderValues.kmMaxI 			= parseInt($(this.options.suffixInit + this.options.kmMax).get('html').replace(' ', '')); }
		
		if ($chk($(this.options.prixMin))) { this.sliderValues.prixMin                                  = parseInt($(this.options.prixMin).get('value')); }
		if ($chk($(this.options.prixMax))) { this.sliderValues.prixMax                                  = parseInt($(this.options.prixMax).get('value')); }
		if ($chk($(this.options.suffixInit + this.options.prixMin))) { this.sliderValues.prixMinI       = parseInt($(this.options.suffixInit + this.options.prixMin).get('html').replace(' ', '')); }
		if ($chk($(this.options.suffixInit + this.options.prixMax))) { this.sliderValues.prixMaxI       = parseInt($(this.options.suffixInit + this.options.prixMax).get('html').replace(' ', '')); }
	},
	
	/*
	Property :
		On initialise l'ensemble des evenements
	*/
	initEvents: function() {
        if ($chk(this.dom.marque) && $chk(this.dom.cylindree)) {
            this.dom.marque.addEvent('blur', this.initFirstOption.bind(this, this.dom.cylindree));
        }
        if ($chk(this.dom.cylindree && $chk(this.dom.modele))) {
            this.dom.cylindree.addEvent('blur', this.initFirstOption.bind(this, this.dom.modele));
        }
	},
	
	initFirstOption: function(select) {
		select.getFirst('option').set('value', '0');
	}
});
