
window.addEvent('domready', function(){

    var step_budget=500;
    var step_kilometrage=5000;
    var step_annee=1;
    
    function roundValue(valeur,pas)
    {
        var arrondi=Math.floor((valeur+pas)/pas)*pas-pas;        
        
        return arrondi;
    }
    
    var slider_budget = new Slider($('slider_0_path'), $('slider_0_knob_left'),$('slider_0_range'), {
		start: 0,
		end: 75000,
		offset: 0,
        knobheight: 17,
		knobwidth: 17,
		mode: 'horizontal',
		snap:false,        
		onChange: function(pos)
        {            
            if(pos.maxpos==75000)
            {
                $('budget').set('value',roundValue(pos.minpos,step_budget)+'#1000000');
                $('max_budget').set('html','+ de 75000');
            }
            else
            {
                $('budget').set('value',roundValue(pos.minpos,step_budget)+"#"+roundValue(pos.maxpos,step_budget));                
                $('max_budget').set('html',roundValue(pos.maxpos,step_budget));
            }
            
            $('min_budget').set('html',roundValue(pos.minpos,step_budget));                       
        },
        
        onComplete: function()
        {
            countResults();
        }
        
	}, $('slider_0_knob_right'));
    

    function switchTypeVehicule(type)
    {    
        $$('.b_type_recherche').fade(0.4);
        
        $('b_neuf').addEvent('click',function(){
            switchTypeVehicule(1);
        });
        
        $('b_occasion').addEvent('click',function(){
            switchTypeVehicule(0);
        });
        
        $$('.b_type_recherche').addEvent('mouseover',function(){
            this.fade(0.9);
        });
        
        $$('.b_type_recherche').addEvent('mouseout',function(){
            this.fade(0.4);
        });
        
        $('type_vehicule').set('value',type);
        
        if(type==0)
        {
            $('b_occasion').fade(1);
            $('b_occasion').removeEvents();
        }
        else
        {
            $('b_neuf').fade(1);
            $('b_neuf').removeEvents();
        }
                
        $('su_form_search').getElements('.dynamic_select').each(function(element){
            element.addEvent('change',function(){countResults();});              
        });

        $('su_form_search').getElements('.dynamic_select2').each(function(element){
            element.addEvent('change',function(){countResults();});
        });		
			   
			   
        loadInfos("famille",{type:type});         

        loadInfos("gamme",{type:type});               

        loadInfos("marque",{type:$('type_vehicule').get('value'),carrosserie:0}); // "toutes les catégories" par défaut
        
        loadInfos("ville",{type:$('type_vehicule').get('value')});
        
        if(critere_budget!='')
        {
            var budget=critere_budget.split("#");

            slider_budget.setMin(Number(budget[0]));
            slider_budget.setMax(Number(budget[1]));                   
        }
        else
        {
            slider_budget.setMin(0);
            slider_budget.setMax(75000);
        }
        
        var switchMorph = new Fx.Morph('criteres_occasion',{'link' : 'chain', 'duration' : '500'});
        if(type==0)
        {
            switchMorph.start({
                'height': $('criteres_occasion').retrieve('height'),
                'opacity': 1
            });
        }
        else
        {
            switchMorph.start({
                'height': 0,
                'opacity': 0
            });
        }
        
        if(critere_kilometrage!='' && critere_kilometrage!='0' && type==0)
        {
            var kilometrage=critere_kilometrage.split("#");
        }
        else if(type==1)
        {
            $('kilometrage').set('value','0');
        }
        
        if(critere_annee!='' && critere_annee!='0' && type==0)
        {
            var annee=critere_annee.split("#");
        }
        else if(type==1)
        {
            $('annee').set('value','0');
        }
        
        countResults();
                        
        return;
    }
    
    function loadInfos(champ,params)
    {        

        $(champ+'_loading').setStyle('display','inline');
        
            
        var search_datas=new Request.JSON({
            url:'lib/su_loisirs_form_search.php',
            link:'chain',
            noCache:true,
            
            onComplete: function(reponse)
            {                         
                var selected;
            
                $(champ+'_loading').setStyle('display','none');                     

                if(reponse==0)
                {                  
                    return;
                }
                
                $(champ).empty();
                $(champ).set('html',$(champ).retrieve('defaut'));
                
                $each(reponse,function(item){
                    var option=new Element('option',{'value':item, 'html':item}).inject($(champ));                    
                    
                    if(item==eval("critere_"+champ))
                    {
                        option.selected=true;
                        $(champ).fireEvent('change');
                    }
                });
                
              
                $(champ).disabled=false;
                $(champ).fade(1); 
            }
        });
        
        search_datas.get({champ:champ,params:params});
    
        return;
    }
    
    
    function countResults()
    {
        var params={        
            type_vehicule: $('type_vehicule').get('value'),
            
            famille: $('famille').get('value'),
            gamme: $('gamme').get('value'),
            marque: $('marque').get('value'),
            ville: $('ville').get('value'),
            budget: $('budget').get('value'),
            kilometrage: $('kilometrage').get('value'),
            annee: $('annee').get('value')
        };
    
        var results_datas=new Request.JSON({
            url:'lib/su_loisirs_form_search.php',
            link:'cancel',
            noCache:true,
            
            onRequest: function()
            {
                $('form_search_nb_results_loading').setStyle('display','inline');
            },
            
            onComplete: function(reponse)
            {
                $('form_search_nb_results_loading').setStyle('display','none');
       
                var suffixe="";
                
                if(reponse<2){suffixe=" résultat";}
                else{suffixe=" résultats";}            
                
                if(reponse!=undefined && reponse!=null)
                {
                    $('form_search_nb_results').set('html',reponse+suffixe);
                }
            }
        });
        
        results_datas.get({count:1,params:params});
    
        return;
    }
    
    function resetInfos(champ)
    {
        $(champ).set('html',$(champ).retrieve('defaut'));
        $(champ).fade(0.7);       
        $(champ).disabled=true;
        
        return;
    }
    
    $('su_form_search').getElements('.dynamic_select').each(function(element){
        element.store('defaut',element.get('html'));     
        resetInfos(element.get('id'));                
    });
    
    $('famille').addEvent('change',function(){     
                    
            

            loadInfos("gamme",	{type:$('type_vehicule').get('value'),	famille:this.get('value') });       
            loadInfos("marque",	{type:$('type_vehicule').get('value'), 	famille:this.get('value') }); 
    		$('marque').set('value', 0);
    });
    
    
     $('gamme').addEvent('change',function(){                     

            loadInfos("marque",	{type:$('type_vehicule').get('value'),	famille: $('famille').get('value'), gamme:this.get('value') });       
                
    });
    
    $('marque').addEvent('change',function(){                     
       
    });    
    
   
                 
    $('criteres_occasion').store('height',$('criteres_occasion').getStyle('height'));  
         
    switchTypeVehicule(critere_type_vehicule);
    
});

