/*
 *	Initialize checkbox helpers in messageCenter
 */


jQuery.fn.internalLabel = function( label )
{
	var that = this;
	this.each( function( i, o )
	{
		var $o = jQuery( o ),
			t = "",
			trimmer = /[\s\r\n]+/g;
	
		// label might be given as plain string
		if( typeof(label) == "undefined" )
		{
			$o.internalLabel( o );
			return true; // continue;
		}
		else if( typeof(label) == "string" )
		{
			t = label;
		}
		// object might be given to be used as label
		else if( typeof(label) == "object" && label.nodeName )
		{
			switch( label.nodeName.toLowerCase() )
			{
				case 'label':
					t = label.firstChild.nodeValue || "";

					if( that.length == 1 && that[0].nodeName.toLowerCase() == 'input' )
					{
						label.style.display = 'none';
						break;
					}
						

					if( !o.htmlFor )
						return true; // continue;

					jQuery( '#' + o.htmlFor ).internalLabel( o );
					
					return true;
				break;
			
				case 'input':
					t = label.title || "";
				break;
			
				default:
					throw new Error( 'jQuery.internalLabel(): first argument must be String or HTMLElement[input|label]' );
				break;
			}
		}
	
		t = t.replace( trimmer, ' ' );
	
		$o.attr( 'labeltext', t );
	
		function focusListener( e )
		{
			var $this = jQuery( this );
			
			if( $this.val() == $this.attr('labeltext') )
			{
				$this.val("");
				$this.removeClass( 'activelabel' );
			}
		}
	
		function blurListener( e )
		{
			var $this = jQuery( this );
			
			if( jQuery.trim( $this.val() ) == "" )
			{
				$this.val( $this.attr('labeltext') );				
				$this.addClass( 'activelabel' );
			}

		}
		
		$o.bind( 'focus', focusListener );
		$o.bind( 'blur', blurListener );
		
		$o.blur();
	});
};


// load when DOM ready
jQuery( function(){ 

	jQuery( 'label.internallabel' ).internalLabel();
	jQuery( 'input[type=text].internallabel' ).internalLabel();

} );