(function (a) { a.InFieldLabels = function (b, c, d) { var e = this; e.$label = a(b); e.$field = a(c); e.$label.data("InFieldLabels", e); e.showing = true; e.init = function () { e.options = a.extend({}, a.InFieldLabels.defaultOptions, d); e.$label.css("position", "absolute"); var b = e.$field.position(); e.$label.css({ left: b.left, top: b.top }).addClass(e.options.labelClass); if (e.$field.val() != "") { e.$label.hide(); e.showing = false } e.$label.click(function () { e.fadeOnFocus(); e.$field.focus() }); e.$field.focus(function () { e.fadeOnFocus() }).blur(function () { e.checkForEmpty(true) }).bind("keydown.infieldlabel", function (a) { e.hideOnChange(a) }).change(function (a) { e.checkForEmpty() }).bind("onPropertyChange", function () { e.checkForEmpty() }) }; e.fadeOnFocus = function () { if (e.showing) { e.setOpacity(e.options.fadeOpacity) } }; e.setOpacity = function (a) { e.$label.stop().animate({ opacity: a }, e.options.fadeDuration); e.showing = a > 0 }; e.checkForEmpty = function (a) { if (e.$field.val() == "") { e.prepForShow(); e.setOpacity(a ? 1 : e.options.fadeOpacity) } else { e.setOpacity(0) } }; e.prepForShow = function (a) { if (!e.showing) { e.$label.css({ opacity: 0 }).show(); e.$field.bind("keydown.infieldlabel", function (a) { e.hideOnChange(a) }) } }; e.hideOnChange = function (a) { if (a.keyCode == 16 || a.keyCode == 9) return; if (e.showing) { e.$label.hide(); e.showing = false } e.$field.unbind("keydown.infieldlabel") }; e.init() }; a.InFieldLabels.defaultOptions = { fadeOpacity: .5, fadeDuration: 300, labelClass: "infield" }; a.fn.inFieldLabels = function (b) { return this.each(function () { var c = a(this).attr("for"); if (!c) return; var d = a("input[name$='" + c + "'][type='text']," + "input[name$='" + c + "'][type='password']," + "textarea[name$='" + c + "']"); if (d.length == 0) return; new a.InFieldLabels(this, d[0], b) }) } })(jQuery)
