// Label v0.3
(function(b){b.fn.extend({label:function(a){if(typeof a=="string")a={text:a};a=b.extend({emptyClass:"empty",changedClass:"changed",populateFrom:"title",text:null,removeOnSubmit:true,onClear:null,onLabel:null,onRemove:null},a);return this.each(function(){function f(d){val=b.trim(b(d).val());val.length<=0||val==e()?b(d).removeClass(a.changedClass).addClass(a.emptyClass).val(e()):b(d).removeClass(a.emptyClass).addClass(a.changedClass)}function h(d){var g=b("<input type='text' />").attr({style:d.attr("style"), value:e()}).addClass("textInput "+a.emptyClass).data("parent",d).focus(function(){d.show().focus();b(this).hide()});d.data("child",g).focus(function(){b(this).addClass(a.changedClass)}).blur(function(){b(this).removeClass(a.changedClass)}).hide().after(g)}function e(){if(a.text)return a.text;if(b.isFunction(c.metadata)&&c.metadata().label)return c.metadata().label;if(b.isFunction(a.populateFrom))return eval(a.populateFrom)();if(a.populateFrom.toLowerCase()=="label")return b("label[for='"+c.attr("id")+ "']").text();return c.attr(a.populateFrom)}var c=b(this);a.removeOnSubmit&&c.parents("form:first").submit(function(){b("input."+a.emptyClass).val("");a.onRemove&&b.isFunction(a.onRemove)&&a.onRemove.call(c)});if(c.is(":password")){h(c);c.blur(function(){if(c.val().length<=0){c.data("child").show();c.hide()}})}else{c.blur(function(){f(c);c.val()==e()&&a.onLabel&&b.isFunction(a.onLabel)&&a.onLabel.call(c)}).focus(function(){if(c.val()==e()){c.val("");b(c).removeClass(a.emptyClass).addClass(a.changedClass); a.onClear&&b.isFunction(a.onClear)&&a.onClear.call(c)}}).data("oClass",c.attr("class"));b.trim(c.val());f(c)}})},labelDestroy:function(){var a=b(this);a.unbind("focus",b.label).unbind("blur",b.label).unbind("keypress",b.label).unbind("click",b.label).removeClass().addClass(a.data("oClass"));a.each(function(){if(b(this).data("parent")){b(this).data("parent").show();b(this).remove()}})}})})(jQuery);
