
var gsMapLayerOpacity = new Class ({

    getOptions: function(){
        return {
            classBar: 'slider',
            classHandle: 'handle',
            container: document.body,
            onComplete: Class.empty,
            startval: 100,
            clientLayer: false
        };
    },

    initialize: function(options){        
        this.setOptions(this.getOptions(), options);
        this.posCurrent = this.options.startval;
        this.permierPassage = true;
                
        // Ajout de 2 div dans le DOM avec 2 className spécifique
        this.bar = new Element('div').addClass(this.options.classBar).injectInside($(this.options.container));
        this.handle = new Element('div').addClass(this.options.classHandle).injectInside(this.bar);
        
        //Ajout des contrôles sur les 2 div
        this.slider = new Slider(this.bar, this.handle, {
            onChange: function(pos){
                if(this.layer){
                    //Mise à jour de la transparence du Layer
                    //this.layer.setOpacity(pos/100, this.options.clientLayer);
                    this.poscurrent = pos ;
                }
            }.bind(this),
            onComplete: this.options.onComplete.bind(this),
            steps: 100
        }).set(this.options.startval);
        
        //Capture l'événement résultat du serveur
        if(this.options.clientLayer){
            this.bar.hide();
            //this.layer.map.addEvent('onRequestResult', this.toggle.bind(this));
        }
    },

    toggle: function(rs) {
        var r = rs.response;
        if($type(r)=='array'){
            //Boucle sur les ClientLayer
            for(var i=0; i<r.length; i++){
                //Teste le numéro du ClientLayer
                if(this.options.clientLayer == r[i].id){
                    //Si une image est affichée pour ce ClientLayer on affiche le curseur
                    if(r[i].url!="") {
                    	if (this.permierPassage) {
                    		//this.layer.setOpacity(this.posCurrent/100, this.options.clientLayer);
                    		this.permierPassage = false;
                    	}
                      this.bar.show();
                      return;
                    }
                }
            }
        }
        this.bar.hide();
    }
});
gsMapLayerOpacity.implement(new Options);

