/*
 * Plugin jQuery que implementa placeholder de campos.
 * options: {
 *      color: null,             // Cor do campo quando possuir um valor informado (default: null)
 *      colorHolder: null,       // Cor do campo quando possuir o valor de holder (default: null)
 *      holderAttribute: 'title' // Atributo usado como holder (default: 'title')
 * }
 * @date 30/06/2010
 * @author André Garlini
 */
(function($) {
    jQuery.fn.placeholder = function(options) {
        var $this = this;

        options = jQuery.extend({
                color: null,
                colorHolder: null,
                holderAttribute: 'title'
            }, options);

        $this.each(function(){
            var $campo = $(this);

            var color = options.color || $campo.css('color');
            var colorholder = options.colorHolder || $campo.css('color');
            var holderAttribute = options.holderAttribute;

            function isHolder(){
                return ($campo.attr(holderAttribute) == $campo.attr('value'));
            }

            function updateColor(){
                if (isHolder()){
                    $campo.css('color', colorholder);
                } else {
                    $campo.css('color', color);
                }
            }

            $campo.focus(function(){
                if (isHolder()){
                    $campo.attr('value', '');
                }
            }).blur(function(){
                if ($campo.attr('value') == ''){
                    $campo.attr('value', $campo.attr(holderAttribute));
                }
                updateColor();
            }).change(updateColor);

            if ($campo.attr('value') == ''){
                $campo.attr('value', $campo.attr(holderAttribute));
            }

            updateColor();

        });

        return this;
    }
})(jQuery);
