/*
*   Inline Label
*   Makes a field's label inline
*
*   Requires: Trapeze jQuery distribution
*   Taylan Pince - September 15, 2009
*/

$.namespace("trapeze.InlineLabel");

trapeze.InlineLabel = $.Class.extend({
    field : null,
    label  : "",

    focus : function() {
        if ($(this.field).val() == this.label) {
            $(this.field).val("").removeClass("inline-label");
        }
    },
    
    blur : function() {
        if ($(this.field).val() == "" || $(this.field).val() == this.label) {
            $(this.field).val(this.label).addClass("inline-label");
        }
    },

    init : function(field, selector) {
        this.field = field;

        if (selector) {
            this.label = $(selector).text();
        } else if ($("label[for=" + $(this.field).attr("id") + "]").size() > 0) {
            this.label = $("label[for=" + $(this.field).attr("id") + "]").text();

            $("label[for=" + $(this.field).attr("id") + "]").remove();
        } else if ($(this.field).attr("value")) {
            this.label = $(this.field).attr("value");
        }

        $(this.field).focus(this.focus.bind(this)).blur(this.blur.bind(this));

        this.blur();
    }
});
