var Controllable = Class.create({
	initialize: function( element, escaparate ) {
		this.element = element;
		this.escaparate = escaparate;
		
		this.enabled = true; //default it's selected
		
		this.controllers = Array();
		this.controllers[0] = new Resizer(element, escaparate);     	
     	this.controllers[1] = new DivRemover(element, escaparate);
		
		var current = this;
		$(this.element).observe('click', function (event) {
			current.elementClicked();
			Event.stop(event);
		});
	},
	disableControls: function()
	{
		for( var i = 0; i < this.controllers.length; i++) {		
			this.controllers[i].disableControls();			   								
		}
		this.enabled = false;
	},
	elementClicked: function()
	{
		var ant = this.enabled;
		escaparate.disableAllControls();
		if(!ant)
			this.enableControls();
	},
	enableControls: function()
	{
		for( var i = 0; i < this.controllers.length; i++) {
			this.controllers[i].enableControls();
		}
		escaparate.elementSelected(this.element);
		this.enabled = true;
	},
	delKeyPress: function()
	{
		if (this.enabled) {
			this.controllers[1].removeDiv(); //notify to divremover
		}
	}
});

