(function ($) {
	var defaultClass = 'default';
	
	function setDefaultValue ($this) {
		$this.val($this.attr('alt'));
	}
	
	function hasDefaultValue ($this) {
		return $this.attr('alt') == $this.val();
	}
	
	function checkDefaultClass ($this) {
		if(hasDefaultValue($this)) {
			$this.addClass(defaultClass);
		} else {
			$this.removeClass(defaultClass);
		}
	}
	
	function onBlur () {
		var $this = $(this);
		if(!$this.val()) {
			setDefaultValue($this);
		}
		
		checkDefaultClass($this);
	}
	
	function onFocus () {
		var $this = $(this);
		if(hasDefaultValue($this)) {
			$this.val('');
		}
		checkDefaultClass($this);
	}
	
	function setup ()
	{
		var $this = $(this);
		$this.addClass('defaultText');
		onBlur.call(this);
		$this.focus(onFocus);
		$this.blur(onBlur);
	}
	
	function remove ()
	{
		var $this = $(this);
		$this.removeClass('defaultText');
		$this.removeClass(defaultClass);
		$this.unbind('focus', onFocus);
		$this.unbind('blur', onBlur);
	}
	
	$.fn.defaultText = function () {
		this.each(setup);
	};
	
	$.fn.defaultText.remove = function ($elements) {
		$elements.each(remove);
	};
	
	$('input[type=text].defaultText, textarea.defaultText').defaultText();
})(jQuery);



