var textarea = Class.create(CElement,{
  initialize: function( parent, id, params ) {
	
	this.type	    = "textarea";
	this.index      = id ;
	this.parent     = parent;
	
	this.label      = params.label;
	this.validation = params.validation;
	this.required   = params.required;
	this.x	        = params.x;
	this.y 	        = params.y;
	this.w	        = params.w;
	this.h	        = params.h;
	
	

	this.htmlLabel = document.createElement("label");
	this.htmlLabel.innerHTML = this.label;
	this.htmlLabel.htmlFor = "input_" + this.type + this.index;
 
	this.htmlInput  = document.createElement("textarea");
	this.htmlInput.name      = "input_" + this.type + this.index;
	this.htmlInput.id        = "input_" + this.type + this.index;
	
	var br = document.createElement("br");
	br.clear = 'all';
	
	this.htmlContainer = document.createElement("li");
	this.htmlContainer.id  = parent.id + "_" +  this.type +  this.index;

	var ix = this.index;
	
	this.htmlContainer.onmousedown =  function() { var h = new Function("selectEntry('"+ix+"')"); h();}
	
	this.htmlContainer.appendChild( this.htmlLabel );
	this.htmlContainer.appendChild( this.htmlInput );
	this.htmlContainer.appendChild( br );
	
	this.htmlULMenu    = createContextMenu( this.htmlContainer, new Array("Delete","deleteEntry("+this.index+")"));
	this.parent.appendChild(this.htmlContainer);
	
	new Draggable(this.htmlContainer, {snap:10,onEnd:elementOnDragEnd});

	this.htmlContainer.style.left = this.x + "px";
	this.htmlContainer.style.top  = this.y + "px";

  },
  onUpdate : function(){
	
	this.htmlLabel.innerHTML = this.label;
},
 onDelete : function(){
	
	var c = this.parent.id;
	var e = this.htmlContainer.id;
	Effect.Fade(this.htmlContainer,{afterFinish: function(){$(c).removeChild($(e))}});
	
 }
  
});
