PETA.forms = function(){
	function input_limit_length(params){
		var field = params.field;
		if(!params.maxlength_attr)
			params.maxlength_attr = "maxlength";
		var maxlength = field[0].getAttribute("maxlength");
		if (field.get("value").toString().length > maxlength){
			field.set("value", field.get("value").toString().substring(0, maxlength));
			params.counter_element.set("html", "0");
		}else{
			params.counter_element.set("html", maxlength - field.get("value").toString().length);
		}
	};
	
	function toggle_default_text(params){
		var field = params.field;
		if (field.addEvent) { //mootools
			field.addEvent("focus", function(p){
				return function(){
					if (this.get("value") == p.default_text) {
						this.set("value", "");
						this.removeClass(p.default_class);
						this.addClass(p.edited_class);
					}
				}
			}(params));
			field.addEvent("blur", function(p){
				return function(){
					if (this.get("value") == "") {
						this.set("value", p.default_text);
						this.removeClass(p.edited_class);
						this.addClass(p.default_class);
					}
				}
			}(params));
		}else if(jQuery){ //jquery
			field = jQuery(field);
			field.bind("focus", function(p){
				return function(){
					var that = jQuery(this);
					if (that.attr("value") == p.default_text) {
						that.attr("value", "");
						that.removeClass(p.default_class);
						that.addClass(p.edited_class);
					}
				}
			}(params));
			field.bind("blur", function(p){
				return function(){
					var that = jQuery(this);
					if (that.attr("value") == "") {
						that.attr("value", p.default_text);
						that.removeClass(p.edited_class);
						that.addClass(p.default_class);
					}
				}
			}(params));
		}
	};
	
	return {
		/* params = {
		 * 	field:input field to limit length of,
		 * 	[maxlength_attr]:attribute giving max-length of text default is "maxlength",
		 * 	counter_element:element containing # of remaining characters
		 */
		input_count_length : function(params){
			params.field.addEvent("keyup", function(p){
				return function(){
					input_limit_length(p);
				};
			}(params));
		}, 
		
		/* params = {
		 * 	field,
		 * 	default_text,
		 * 	default_class:css class before editing,
		 * 	edited_class:css class after editing
		 */
		input_toggle_default_text : function(params){
			toggle_default_text(params);
		},
		
		/* params = {
		 * 	textarea,
		 * 	default_text,
		 * 	default_class:css class before editing,
		 * 	edited_class:css class after editing
		 */
		textarea_toggle_default_text : function(params){
			params.field = params.textarea;
			toggle_default_text(params);
		}
	};
}();

