/* @meta-info
 * @id              inline-label.js
 *
 * @description     Makes a field's label inline
 *
 * @author          Taylan Pince
 * @copyright       Copyright (c) 2009, Trapeze, All rights reserved.
 *
 * @requires        Trapeze jQuery Distribution
 *
 * @do-not-compress
 *
 */

$.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();
    }
});


