(function(n){n.InFieldLabels=function(t,i,r){var u=this;u.$label=n(t),u.label=t,u.$field=n(i),u.field=i,u.$label.data("InFieldLabels",u),u.showing=!0,u.init=function(){u.options=n.extend({},n.InFieldLabels.defaultOptions,r),u.$field.val()!=""&&(u.$label.hide(),u.showing=!1),u.$field.focus(function(){u.fadeOnFocus()}).blur(function(){u.checkForEmpty(!0)}).bind("keydown.infieldlabel",function(n){u.hideOnChange(n)}).change(function(){u.checkForEmpty()}).bind("onPropertyChange",function(){u.checkForEmpty()})},u.fadeOnFocus=function(){u.showing&&u.setOpacity(u.options.fadeOpacity)},u.setOpacity=function(n){u.$label.stop().animate({opacity:n},u.options.fadeDuration),u.showing=n>0},u.checkForEmpty=function(n){u.$field.val()==""?(u.prepForShow(),u.setOpacity(n?1:u.options.fadeOpacity)):u.setOpacity(0)},u.prepForShow=function(){u.showing||(u.$label.css({opacity:0}).show(),u.$field.bind("keydown.infieldlabel",function(n){u.hideOnChange(n)}))},u.hideOnChange=function(n){if(n.keyCode==16||n.keyCode==9)return;u.showing&&(u.$label.hide(),u.showing=!1),u.$field.unbind("keydown.infieldlabel")},u.init()},n.InFieldLabels.defaultOptions={fadeOpacity:.5,fadeDuration:300},n.fn.inFieldLabels=function(t){return this.each(function(){var i=n(this).attr("for"),r;if(!i)return;r=n("input#"+i+"[type='text'],input#"+i+"[type='password'],textarea#"+i);if(r.length==0)return;new n.InFieldLabels(this,r[0],t)})}})(jQuery)
