(function($) {
	$.fn.defaultvalue = function() {
			// Scope
			var elements = this;
			var args = arguments;
			var c = 0;

			return(
				elements.each(function() {				
					// Default values within scope
					var el = $(this);
					var def = args[c++];
					var className = args[c++];
					var off = className + "-off";
					var on = className + "-on";
					var clear = args[c++];

					el.attr('default_value', def);

					if (el.val() == def) {
						el.addClass(off);
					} else {
						el.addClass(on);
					}

					if (clear) {
						el.parents('form').submit(function() {
							if (el.val() == def) {
								el.val("");
							}
						})
					}

					if (el.val().replace(/^\s+|\s+$/g, '') == "") { el.val(def); }

					el.focus(function() {
						if(el.val().replace(/^\s+|\s+$/g, '') == el.attr('default_value')) el.val("");
						el.removeClass(off); el.addClass(on);

						el.blur(function() {
							if(el.val().replace(/^\s+|\s+$/g, '') == "") {
								el.val(def);
								el.removeClass(on);
								el.addClass(off);
							}
						});
					});				
				})
			);
		}
})(jQuery);
