/*
	Watermark v2.0 (June 2, 2009) plugin for jQuery
	Copyright (c) 2009 Todd Northrop
	http://www.speednet.biz/
	Licensed under GPL 3, see  <http://www.gnu.org/licenses/>
*/
(function(e) { var c, j = "watermark", g = "watermarkClass", b = "watermarkFocus", h = "watermarkSubmit", d = "watermarkMaxLength", f = "watermarkPassword", k = "watermarkText", a = ":data(" + j + ")", i = ":text,:password,textarea"; e.extend(e.expr[":"], { data: function(m, l, o, q) { var n, p = /^((?:[^=!^$*]|[!^$*](?!=))+)(?:([!^$*]?=)(.*))?$/.exec(o[3]); if (p) { n = e(m).data(p[1]); if (n !== c) { if (p[2]) { n = "" + n; switch (p[2]) { case "=": return (n == p[3]); case "!=": return (n != p[3]); case "^=": return (n.slice(0, p[3].length) == p[3]); case "$=": return (n.slice(-p[3].length) == p[3]); case "*=": return (n.indexOf(p[3]) !== -1) } } return true } } return false } }); e.watermark = { className: "watermark", hide: function(l) { e(l).filter(a).each(function() { e.watermark._hide(e(this)) }) }, _hide: function(o, m) { if (o.val() == o.data(k)) { o.val(""); if (o.data(f)) { if (o.attr("type") === "text") { var n = o.data(f), l = o.parent(); l[0].removeChild(o[0]); l[0].appendChild(n[0]); o = n } } if (o.data(d)) { o.attr("maxLength", o.data(d)); o.removeData(d) } if (m) { o.attr("autocomplete", "off"); window.setTimeout(function() { o.select() }, 0) } } o.removeClass(o.data(g)) }, show: function(l) { e(l).filter(a).each(function() { e.watermark._show(e(this)) }) }, _show: function(q) { var p = q.val(), o = q.data(k); if (((p.length == 0) || (p == o)) && (!q.data(b))) { if (q.data(f)) { if (q.attr("type") === "password") { var n = q.data(f), m = q.parent(); m[0].removeChild(q[0]); m[0].appendChild(n[0]); q = n } } if (q.attr("type") === "text") { var l = q.attr("maxLength"); if ((l > 0) && (o.length > l)) { q.data(d, l); q.attr("maxLength", o.length) } } q.val(o); q.addClass(q.data(g)) } else { e.watermark._hide(q) } }, hideAll: function() { e.watermark.hide(i) }, showAll: function() { e.watermark.show(i) } }; e.fn.watermark = function(o, n) { var m = (typeof (o) === "string"), l = (typeof (n) === "string"); return this.filter(i).each(function() { var s = e(this); if (s.data(j)) { if (m || l) { e.watermark._hide(s); if (m) { s.data(k, o) } if (l) { s.data(g, n) } } } else { s.data(k, m ? o : ""); s.data(g, l ? n : e.watermark.className); s.data(j, 1); if (s.attr("type") === "password") { var p = s.wrap("<span>").parent(); var r = e(p.html().replace(/type=["']?password["']?/i, 'type="text"')); r.data(k, s.data(k)); r.data(g, s.data(g)); r.data(j, 1); r.focus(function() { e.watermark._hide(r, true) }); s.blur(function() { e.watermark._show(s) }); r.data(f, s); s.data(f, r) } else { s.focus(function() { s.data(b, 1); e.watermark._hide(s, true) }).blur(function() { s.data(b, 0); e.watermark._show(s) }) } var q = e(this.form); if (!q.data(h)) { q.data(h, this.form.submit); q.submit(e.watermark.hideAll); this.form.submit = function() { e.watermark.hideAll(); q.data(h).apply(q[0], arguments) } } } e.watermark._show(s) }).end() } })(jQuery);

