/**
 * Permite cambiar tamaño de textareas
 */

A9.behaviors.processTextarea = function(context) {
	jQuery('textarea.resizable:not(.processTextarea-processed)', context).each(function() {
		var textarea = jQuery(this).addClass('processTextarea-processed');
		var staticOffset = null;

		// Work around para IE margin bug. Ver:
		// http://jaspan.com/ie-inherited-margin-bug-form-elements-and-haslayout
		var wrapper = jQuery('<div class="resizable_textarea"><span></span></div>')
			.css('float', 'left');
		if ('left' === textarea.css('float')) {
			textarea.css('float', '');
		}

		textarea.height(textarea.height() - 9 + 'px');
		//Solo se utiliza esta variable para IE7 and 6
		var textwidth=textarea.width()+2;
		//Pondremos 2 hacks en el siguiente orden (IE7,IE6) el mozilla lo calcula bien...
		textarea.wrap(wrapper)
			.parent().append(jQuery('<div class="grippie" style="*width:'+textwidth+';_width:'+textwidth+';"></div>').mousedown(startDrag))
			.parent().parent().append('<div class="clearfix"></div>');

		var grippie = jQuery('div.grippie', jQuery(this).parent())[0];
		
		grippie.style.marginRight = (grippie.offsetWidth - jQuery(this)[0].offsetWidth) +'px';

		function startDrag(e) {
			staticOffset = textarea.height() - e.pageY;
			textarea.css('opacity', 0.5);
			jQuery(document).mousemove(performDrag).mouseup(endDrag);
			return false;
		}

		function performDrag(e) {
			textarea.height(Math.max(32, staticOffset + e.pageY) + 'px');
			return false;
		}

		function endDrag(e) {
			jQuery(document).unbind("mousemove", performDrag).unbind("mouseup", endDrag);
			textarea.css('opacity', 1);
		}
	});
};
