(function($){
	$.fn.TextfieldPlaceholders = function(){
		return this.each(function() {
			var $parent = $(this);
			$parent.find('input:text[value=""],input:password[value=""]').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','#000000');
					}
					$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','#000000');
							}
						}
					});
				}
			});
		});
	};
})(jQuery);