/**
 * Messaging class
 */
function Messaging ( ) {
	this.messages	=	[];
}


/**
 * Get messages
 */
Messaging.prototype.getMessages = function ( ) {
	return this.messages;
}

var	check	=	[];

/**
 * Register new message
 * 
 * @param {Object} message
 */
Messaging.prototype.register = function ( message ) {
	
	jQuery.each(jQuery.browser, function(i) {
	   if($.browser.msie){
		   
		   for (i in check) {
			   message	=	check[i];
			   
			   if (message.message = message) {
				   return;
			   }
		   }
		   
		   check.push(message.message);		   
		   alert(message.message);
		   return;
	   }
	});
	
	message.id		=	this.messages.length + 1;
	this.messages.push(new Message(message));
}

function Message ( data ) {
	

	
	this.type		=	data.type;
	this.message	=	data.message;
	this.id			=	data.id;
}

Message.prototype.display = function ( ) {
			
	//Provide a variable to hold the callback function
	var notifyCallBack;
	
	function showNotification(message, type, callback) {
		
		var body		=	$(document.getElementsByTagName('body')[0]);

		body.append('<div id="notification" class="notification"><span id="notification-text">test</span></div>');
		var notification	=	$("#notification");
		
		notification.css({
			textAlign		:	'center',
			
			width			:	'100%',
			position		:	'fixed',
			paddingTop		:	'8px',
			paddingBottom	:	'8px',
		
			margin			:	0,
			overflow		:	'visible',
			zIndex			:	999999999
		});
		
	    notifyCallBack = callback;
	
	   
	    notification.removeClass("success notice error");
	    notification.addClass(type);
	
	    //Make sure it's visible even when top of the page not visible
	    notification.css("top", $(window).scrollTop());
	    notification.css("width", $(document).width());
	
	    $("#notification-text").html(message);
		
	    //show the notification
	    notification.slideDown("slow", function() {
	        setTimeout(hideNotification,
	            4000 // 4 seconds
	            )
	    });
	}

	function hideNotification() {
	    $("#notification").slideUp("slow", function() {
	        if (null != notifyCallBack && (typeof notifyCallBack == "function")) {
	            notifyCallBack();
	        }
	        //reset the callback variable
	        notifyCallBack = null
	    });
	}
	
	
	showNotification(this.message, 'success');
}

var Messaging	=	new Messaging();


