var ResizeTextarea = Class.create();

ResizeTextarea.prototype = {
	initialize: function(option) {
		this.rows = (typeof option != "object" || !option.rows) ? 3 : option.rows;
		var tags = ['TEXTAREA'];
		var date = new Date();
		var time = date.getTime();

		for (var tagCounter = 0; tagCounter < tags.length; tagCounter++) {
			var inputs = document.getElementsByTagName(tags[tagCounter]);
			for (var i = 0; i < inputs.length; i++) {
				if (!inputs[i].id) {
					inputs[i].id = '__' + tags[tagCounter].toLowerCase() + '_' + time + '_' + i;
				}
				this.resize({id: inputs[i].id});
				Event.observe(inputs[i].id, 'keyup' , function(e) { 
					var input = e.target || e.srcElement; 
					this.resize({id: input.id});
				}.bind(this));
			}
		}
	},
	resize: function(option) {
		
		var lines = 1;
		var str = $(option.id).value;
		for (var i = 0; i < str.length; i++) {
			if (str.charAt(i) == '\n') {
				lines++;
			}
		}
		
		lines = (lines < this.rows) ? this.rows : lines;
		$(option.id).setAttribute('rows', lines);
	}
}

