/* ------------------------------------------------------------------------
	Class: defaultValue
	Author: Loïc Mahieu @ iGLOO s.a. Belgium
	Version: 0.1
------------------------------------------------------------------------- */

(function($) {
	$.defaultValue = {version: '0.1'};
	
	$.fn.defaultValue = function(settings) {
		settings = jQuery.extend({
			defaultText: '',
			classOnDefault: 'defaultValue',
			classOnError: 'invalid'
		}, settings);
		
		$(this).each(function(){
			var $self = $(this);
							  
			if( $self.attr("type") != 'text' && $self.attr("type") != 'password' && $self.attr("type") != 'textarea' )
				return;
			
			if( $self.val() == '' || $self.val() == settings.defaultText ) {
				setDefaultValue($self,settings.defaultText);
			} else {
				return;
			}
			
			$self.focus(function() {
				if( $self.val() == settings.defaultText || $self.val() == '' ) {
					removeDefaultValue($self);
				}
			});
			
			$self.blur(function() {
				if( $self.val() == settings.defaultText || $self.val() == '' ) {
					setDefaultValue($self,settings.defaultText);
				}
			});
			
			$self.parents("form").each(function() {
				$(this).submit(function() {
					if( $self.val() == settings.defaultText ) {
						removeDefaultValue($self);
					}
				});
			});
		});
		
		function setDefaultValue ($self,defaultValue) {
			$self.val(defaultValue)
				 .addClass(settings.classOnDefault).removeClass(settings.classOnError)
				 .attr("defaultvalue",defaultValue);
		};
		
		function removeDefaultValue ($self) {
			$self.removeClass(settings.classOnDefault).removeClass(settings.classOnError).val('');
		};
	};
})(jQuery);