	
var MessageHandler = function( $msgBox , $msg , $button , $title , $image , $overlay, type )
	{
		this.$msgBox = $msgBox;
		this.$msg = $msg;
		this.$button = $button;
		this.$title = $title;
		this.$image = $image;
		this.$overlay = $overlay;
	};

MessageHandler.prototype =
	{
		can_show : function canShowFunctionMessageHandler()
			{
				return (this.$title.text().length > 0 && this.$msg.html().length > 0 && this.valid_type( this.$image.attr('class') ) );
			},
		show : function showMessageHandler()
			{
				if( this.can_show() === true )
				{
					var $msgBox = this.$msgBox,
					    $button = this.$button,
					    $overlay = this.$overlay;
					//Document click moet alles hiden
					$( document )
					    .bind(
					    	'click' ,
					    	function( e )
					    	{
					    		if( e.target !== $msgBox[0] || e.target === $button[0] )
					    		{
					    			$overlay.hide();
					    			$msgBox.hide();

					    			$( document )
					    				.unbind(
					    					'keyup' ,
					    					this.handle_keyup
					    				);
					    		}
					    	}
					    )
					    .one(
					    	'keyup' ,
					    	this.handle_keyup
					    );

					//Het bericht laten zien
					$overlay.show();
					$msgBox.show();
				}
			},
		handle_keyup : function handleKeyUpMessageHandler( e )
			{
				if( e.keyCode == 13 || e.keyCode == 27 )
					this.$button.click();
			},
		hide : function hideMessageHandler()
			{
				this.$msgBox.hide();
			},
		set_type : function setMessageHandlerType( type )
			{
				if( this.valid_type( type ) )
					this.$image.addClass( type );
			
				return this;
			},
		valid_type : function isValidTypeMessageHandler( type )
			{
				return ( type === MessageHandler.ERROR || type === MessageHandler.WARNING || type === MessageHandler.NOTICE || type === MessageHandler.OK );
			},
		set_message : function setMessageHandlerMessage( msg )
			{
				this.$msg.html( msg );
			
				return this;
			},
		set_title : function setMessageHandlerTitle( nTitle )
			{
				this.$title.html( nTitle );
			
				return this;
			}
	};

jQuery.extend( MessageHandler , {
	ERROR : "error",
	WARNING : "warning",
	NOTICE : "notice",
	OK : "ok"
});

var $msgBox = $( '#message_handler_box' ),
	$msg = $( '#message_handler' ),
	$button = $( 'input.button' , $msgBox ),
	$title = $( 'h2' , $msgBox ),
	$image = $( '#message_handler_image' ),
	$overlay = $( '.filter' );
		
//TODO
MSG = new MessageHandler( $msgBox , $msg , $button , $title , $image, $overlay );

MSG.show();

//MSG.hide();

