/* Textfield Placeholders - jQuery Plugin
 * Copyright (c) 2009 Palle Zingmark
 * Author: Palle Zingmark, www.palleman.nu
 *         Philip Hofstetter, www.gnegg.ch
 * Released with the MIT License: http://www.opensource.org/licenses/mit-license.php
 */
(function($){
    $.fn.TextfieldPlaceholders = function(){
        return this.each(function() {
            var $parent = $(this);
            $parent.find('input:text[value=""],input:password[value=""],textarea').each(function(i){
                var $input = $(this);
                var $placeholder = $($input).attr('placeholder');
                var $basecolors = ['#000000','rgb(0, 0, 0)'];
                var $color = $($input).css('color');
                var $hascolor = jQuery.inArray($color,$basecolors);
                if(typeof $placeholder == 'undefined' || $placeholder == ''){
                    $placeholder = $parent.find('label[for="'+ $($input).attr('id') +'"]').text();
                }
                if(typeof $placeholder == 'string' || $placeholder != ''){//## OR ABORT
                    if ($input.attr('type') == 'password'){
                        var $proxy = $('<input type="text" />');
                        var $original_input = $input;
                        $proxy.attr('class', $input.attr('class'));
                        $proxy.attr('style', $input.attr('style'));
                        $proxy.insertAfter($input);
                        $input.hide();
                        $input = $proxy;
                    }
                    $input.attr('value', $placeholder);
                    $input.attr('title', $placeholder);
                    if($hascolor || $hascolor != -1){
                        $input.css('color','#aeaeae');
                    }
                    $input.bind('focus', function(){
                        if($input.attr('value') == $placeholder){
                            if ($original_input){
                                $input.hide();
                                $original_input.show();
                                $input = $original_input;
                                $input.focus();
                            }
                            $input.attr('value','');
                            $input.css('color',$color);
                        }
                    });
                    ($original_input || $input).bind('blur', function(){
                        if($input.attr('value') == $placeholder || $input.attr('value') == ''){
                            if ($original_input){
                                $original_input.hide();
                                $proxy.show();
                                $input = $proxy;
                            }
                            $input.attr('value',$placeholder);
                            if($hascolor || $hascolor != -1){
                                $input.css('color','#aeaeae');
                            }
                        }
                    });
                }
            });
        });
    };
})(jQuery);
