OpenLayers.Control.BotoneraFuncionsAvancades = OpenLayers.Class(
  OpenLayers.Control.Panel, {

	dialeg: null,

    initialize: function(layer, options) {
        OpenLayers.Control.Panel.prototype.initialize.apply(this, [options]);

        this.dialeg = new OpenLayers.Dialeg("id_dialeg", new OpenLayers.Size(225,120),
        	"", true);        
        this.dialeg.events.register("close", this, this.deactivateAllControls);
        
        var controlOptions = {
        	dialeg: this.dialeg,
        	eventListeners: {
        		"activate": this.controlActivated,
        		scope: this }
        };
        
        var mostraBotoneraOptions = {
        	eventListeners: {
				"activate": this.showButtons,
				"deactivate": this.hideButtons,
				scope: this }
        };
        
        var controls = [
          new OpenLayers.Control.GeneraHTML(controlOptions),
          new OpenLayers.Control.DesaParametres(controlOptions),          
          new OpenLayers.Control.Coordenades(controlOptions),
          new OpenLayers.Control.Esborra(layer, controlOptions),
          new OpenLayers.Control.Linia(layer, controlOptions),
          new OpenLayers.Control.Texte(controlOptions),
          new OpenLayers.Control.Marca(layer, controlOptions),
          new OpenLayers.Control.MostraBotonera(mostraBotoneraOptions)
        ];
        
        this.addControls(controls);
		
    },

	controlActivated: function(e) {
	},
    
	showButtons: function() {
		for(i=0;i<this.controls.length-1;i++) {
			this.controls[i].panel_div.style.display="";
		}
		this.div.style.width="201px";
	},
	
	hideButtons: function() {
		this.deactivateAllControls();
		for(i=0;i<this.controls.length-1;i++) {
			this.controls[i].panel_div.style.display="none";
		}
		this.div.style.width="32px";
	},
	
	deactivateAllControls: function() {
		for(i=0;i<this.controls.length-1;i++) {
			this.controls[i].deactivate();
		}
		this.dialeg.hide();
	},
	
    draw: function() {
        var div = OpenLayers.Control.Panel.prototype.draw.apply(this, arguments);
        this.dialeg.draw();
        this.dialeg.hide();

        //this.activateControl(this.controls[this.controls.length-1]);
        this.hideButtons();
        return div;
    },
    
    setMap: function(map) {
    	OpenLayers.Control.Panel.prototype.setMap.apply(this, arguments); 
    	if(this.dialeg) {
    		this.dialeg.map = map;
    	}
    },

    CLASS_NAME: "OpenLayers.Control.BotoneraFuncionsAvancades"
});    
