jit.Forms = {
    init: function() {
        $('input.required').each(function() {
            jit.Forms.setupFieldClass(this);
        });

        $('input.placeholder').each(function() {
            jit.Forms.setupPlaceholder(this);
        });
    },
    
    setupFieldClass: function(field) {
        field = $(field);
        
        var error = field.hasClass('error');
        
        if (field.attr('value')) {
            field.removeClass('required');
        }
        
        field.focus(function() {
            field.removeClass('required').removeClass('error');
        }).blur(function() {
            if (!field.attr('value')) {
                field.addClass('required');
            
                if (error) {
                    field.addClass('error');
                }
            }
        })
    },

    setupPlaceholder: function(field) {
        field = $(field);

        var placeholderValue = field.attr('value');

        field.focus(function() {
            if (field.hasClass('placeholder')) {
                field.removeClass('placeholder').attr('value', '');
            }
        }).blur(function() {
            if (field.attr('value') == '') {
                field.addClass('placeholder').attr('value', placeholderValue);
            }
        });

        field.parents('form').submit(function() {
            if (field.hasClass('placeholder')) {
                field.attr('value', '');
            }
        });
    }
}

$(function() { jit.Forms.init() });
