/*
 * jQuery watermark plugin
 *
 * Revision: $Id$
 * Version: 0.1
 * 
 */

(function($) {
	var watermarkcheckint;
	$.fn.watermark = function(o) {
		return this.each(function() {
			new $watermark(this, o);
		});
	};

	// Default configuration properties.
	var defaults = {};

	/**
	 * The watermark object.
	 * 
	 * @constructor
	 * @name watermark
	 * @param Object
	 *            e The element to create the watermark for.
	 * @param Hash
	 *            o A set of key/value pairs to set as configuration properties.
	 * @cat Plugins/watermark
	 */
	$.watermark = function(e, o) {
		this.options = $.extend({}, defaults, o || {});

		var self = this;
		var input = $(e);

		// Allow for standard form fields as well as compact ones
		var label = input.prev('label');
		if (label.length == 0) {
			label = input.parent().prev('label');
			if (label.length == 0)
				return;
		}

		// Add wrapper to standard form fields
		var container = input.parent('div').parent('div.field');
		if (container) {
			container.wrapInner("<div class=\"wrap\"></div>");
		}

		// Fade the label back if a field has text
		if (input[0].value != "") {
			label.addClass('hastext');
		} else {
			label.removeClass('hastext');
		}

		// check for autocomplete by browser
		setInterval(function() {
			if (input[0].value != "") {
				var label = $(input).prev('label');
				if (label.length == 0) {
					label = $(input).parent().prev('label');
					if (label.length == 0)
						return;
				}
				label.addClass('hastext')
			}
		}, 100);

		// Fade the label back when a field gains focus
		input.focus(function() {
			label.addClass('focus');
		});

		// Check if a field is empty when the user switches out
		input.blur(function() {
			label.removeClass('focus');
			if (input[0].value == "") {
				label.removeClass('hastext');
			}
		});

		// Fade the label back when the user starts to type
		input.keypress(function() {
			label.addClass('hastext')
		});
	};

	// Create shortcut for internal use
	var $watermark = $.watermark;

	$watermark.fn = $watermark.prototype = {
		watermark : '0.1'
	};

	$watermark.fn.extend = $watermark.extend = $.extend;

	$watermark.extend({
		defaults : function(d) {
			return $.extend(defaults, d || {});
		}
	});

})(jQuery);

