/******************************************************************************
 * Classe referente ao gerenciamento das mensagens ao usuario
 * @author Pedro Henrique de M. Rodrigues
 * @version 1.0
 * @date 06/11/2008
 */

var UserMessage = function()
{
	/*
	 * Inicializa a classe
	 */
	this.init = function ()
	{
		// define opacidade para o overlay da pagina
		$("#overlay").fadeTo(1, 0.0);

		// recebe o tamanho da pagina
		var pageSize = this.getPageSize();

		// define o tamanho dos elementos da mensagem (ocuparao todo o espaco da pagina)
		$("#msg-us-wrap").css("width", pageSize[0] + "px");
		$("#msg-us-wrap").css("height", pageSize[1] + "px");

	}; // fim init()
	
	
	/*
	 * Exibe a mensagem
	 */
	this.show = function (title, text, className, closeLink)
	{
		// verifica se o link para fechar a mensagem deve ser exibido
		closeLink = (closeLink != 'undefined') ? closeLink : true;

		// recebe o tamanho da pagina
		var pageSize = this.getPageSize();
	
		// esconde os elementos listados
		$("select, object, embed").css("visibility", "hidden");
	
		// define o tamanho dos elementos da mensagem (ocuparao todo o espaco da pagina)
		$("#overlay").css("width", pageSize[0] + "px");
		$("#overlay").css("height", pageSize[1] + "px");
	    
		// recebe o deslocamento superior da pagina
		var scrollTop;
		if (window.scrollY)
			scrollTop = window.scrollY;
		else if (document.documentElement.scrollTop)
			scrollTop = document.documentElement.scrollTop;
		else
			scrollTop = document.body.scrollTop;
	
		// define a posicao da mensagem
		$("#mensagem-usuario").css("top", (200 + scrollTop) + "px");
	    
		// define o titulo da mensagem
		$("#mensagem-usuario h1").html(title);

		// altera a classe da imagem
		$("#msg-us-imagem").removeClass().addClass(className);

		// define o texto da mensagem
		$("#msg-us-texto").html(text);

        // exibe ou esconde o link para fechar a mensagem
//        (closeLink) ? $("#mensagem-usuario .hide").css("display", "block") : $("#mensagem-usuario .hide").css("display", "hidden");

		// exibe o overlay e a mensagem
		$("#overlay").fadeTo("normal", 0.2);
		$("#msg-us-wrap").fadeIn("def");
		
	}; // fim show()
	
	
	/*
	 * Esconde a mensagem
	 */
	this.hide = function ()
	{
		// redimensiona o overlay
		$("#overlay").css("width", "0px");
		$("#overlay").css("height", "0px");

		// exibe o overlay e a mensagem
		$("#overlay").fadeTo("normal", 0.0);
		$("#msg-us-wrap").fadeOut("def");
    
		// exibe os elementos listados
		$("select, object, embed").css("visibility", "visible");
		
	}; // fim hide()
	
	
	/*
	 * Recebe o tamanho da pagina
	 */
	this.getPageSize = function ()
	{
	    var xScroll, yScroll;
	
	    if (window.innerHeight && window.scrollMaxY) {
	        xScroll = window.innerWidth + window.scrollMaxX;
	        yScroll = window.innerHeight + window.scrollMaxY;
	    } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
	        xScroll = document.body.scrollWidth;
	        yScroll = document.body.scrollHeight;
	    } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
	        xScroll = document.body.offsetWidth;
	        yScroll = document.body.offsetHeight;
	    }
	
	    var windowWidth, windowHeight;
	
	    if (self.innerHeight) {	// all except Explorer
	        if(document.documentElement.clientWidth){
	            windowWidth = document.documentElement.clientWidth;
	        } else {
	            windowWidth = self.innerWidth;
	        }
	        windowHeight = self.innerHeight;
	    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
	        windowWidth = document.documentElement.clientWidth;
	        windowHeight = document.documentElement.clientHeight;
	    } else if (document.body) { // other Explorers
	        windowWidth = document.body.clientWidth;
	        windowHeight = document.body.clientHeight;
	    }
	
	    // for small pages with total height less then height of the viewport
	    if(yScroll < windowHeight){
	        pageHeight = windowHeight;
	    } else {
	        pageHeight = yScroll;
	    }
	
	    // for small pages with total width less then width of the viewport
	    if(xScroll < windowWidth){
	        pageWidth = xScroll;
	    } else {
	        pageWidth = windowWidth;
	    }
	
	    return [pageWidth,pageHeight];
		
	}; // fim getPageSize()

}; /* Fim UserMessage */

var userMessage = new UserMessage();
