/********************************************************************************************
 *
 * windowmessage.js:
 *
 * gestione e visualizzazione dei messaggi d'errore e d'informazione
 *
 * version: 1.0 2006-10-05
 * author:  Massimo Viti <mviti@lamma.rete.toscana.it>, IBIMET Firenze Italy
 *
 ********************************************************************************************/
  
var SET_BYMESSAGE = true;
var SET_BYALERT   = false;
  
//////////////////////////////////////////////////////////////////////////////////////////
function readXhttpMessage(messagename)
{
	var trg   = "";
	var url   = getAjaxURL() + "/xhttp_getmessage.php";
	var param = joinURIParam(getURIPram("messagename", messagename)
							);
	
	document.body.style.cursor = 'wait';
	var str = callxhttp_sync(url, param);
    document.body.style.cursor = 'auto';
		
	if (typeof(str) != "string")
	{
		str = "";
	}
	
	if (str.indexOf(XHTTP_JSDATA) == 0)
	{
		eval(str);
		if((typeof(messagetext) == "string"))
		{
			if (messagetext.length)
				trg = messagetext;
		}
	}
	else if (str.length)
	{
		alert(str);
	}
	
	return trg;
	//callxhttp_sync(url, null, clbk_login, param);
}


// setta la finestra popup
function settingPopupCSS(message, id_popup, is_message)
{
	var winpopup = document.getElementById(id_popup);
	if (winpopup)
		winpopup.style.width = "688px";
	
	
	var messageArea = document.getElementById('messageArea')
	if (messageArea)
	{
		messageArea.style.overflow  = "auto";
		messageArea.style.whiteSpace = is_message ? "normal" : "nowrap";
		
		var popupHeight = 185;
		var container = document.getElementById('popupCSS_container');
		if (container)
		{
			popupHeight = parseInt(container.style.height, 10);
			if (!isNaN(popupHeight))
				popupHeight -= 15;
		}			
		messageArea.style.height = "188px";
		
 		messageArea.style.fontFamily = is_message ? "Times New Roman, Nimbus Roman No9 L, Times, Tahoma, Arial, sans-serif"
												  : "Verdana, Helvetica, Arial, sans-serif";
		messageArea.style.fontSize  =  is_message ? "16px" : "14px";
		messageArea.style.textAlign =  is_message ? "justify" : "left";
		messageArea.style.backgroundColor = is_message ? "#FFFFF0" : "#DDD";
		messageArea.style.borderTop="2px solid #848484";
		messageArea.style.borderLeft="2px solid #848484";
		messageArea.style.borderRight="2px solid #FAFAFA";
		messageArea.style.borderBottom="2px solid white"; /*#FAFAFA";*/
	}
		
	// stampa il messaggio	
	var messageArea_p = document.getElementById('messageArea_p');
	if (messageArea_p)
	{
		messageArea_p.innerHTML=nl2br(message);
		refreshCSSPopup(id_popup);
	}
}


/**********************************************************************************************
 *
 * apre la finestra dei messaggi d'errore
 *
 * funzione che carica via Ajax il popup della finestra per i messaggi
 * e chiama come callbakck clbk_windowAlert() per mostrare la finestra con il mnessaggio
 *
 **********************************************************************************************/
function windowAlert(str)
{
	var aHTMLCode = new cIncludeHTMLCode();
	aHTMLCode.include('targetInnerHTML', 'innerShowError', 'showerror.inHTML.php', clbk_windowAlert, str);
}


// callback per windowAlert
function clbk_windowAlert()
{
	var msg = arguments.length > 0 ? arguments[0] : "";
	
	if (document.getElementById('innerShowError'))
	{
		var id_popup = 'popupCSS_Showerror';
		openCSSPopup(id_popup);
		settingPopupCSS(msg, id_popup, SET_BYALERT);
	}
	else
	{
		if (msg.length)
			alert(msg);
	}
	
	return true;
}


//////////////////////////////////////////////////////////////////////////////////////////

/**********************************************************************************************
 *
 * apre la finestra dei messaggi d'informazione
 *
 * funzione che carica via Ajax il popup della finestra per i messaggi
 * e chiama come callbakck clbk_windowMessage() per mostrare la finestra con il mnessaggio
 *
 **********************************************************************************************/
function windowMessage(str)
{
	var aHTMLCode = new cIncludeHTMLCode();
	aHTMLCode.include('targetInnerHTML', 'innerShowError', 'showerror.inHTML.php', clbk_windowMessage, str);
}


// callback per windowMessage
function clbk_windowMessage()
{
	var msg = arguments.length > 0 ? arguments[0] : "";
	
	if (document.getElementById('innerShowError'))
	{
		var id_popup = 'popupCSS_Showerror';
		openCSSPopup(id_popup);
		settingPopupCSS(msg, id_popup, SET_BYMESSAGE);
	}
	else
	{
		if (msg.length)
			alert(arguments[0]);
	}
	
	return true;
}


// recupera il messaggio bia xhttp e lo mostra con un popup tramite windowMessage()
function showMessage(messagename)
{
	var trg = readXhttpMessage(messagename);

	if (trg.length)
	{
		windowMessage(trg);
	}
}


//////////////////////////////////////////////////////////////////////////////////////////

// chiude la finestra dei messaggi d'errore
function closeWindowMessage()
{
	closeCSSPopup("popupCSS_Showerror");
}

