// -------------------------------------
// Nome: 		trace.js
// Descrizione:	Codice JSCript di supporto per trace debug
// Versione JS:	1.0
// Copyright:	Futuria Informatica Srl
// Ultima Mod:	10.11.2009
// -------------------------------------

// Global Variables
// -------------------------------------

var g_bDebug = false;				// Modalità debug attiva
var g_hWndTrace;					// Trace Window Handle


// Funzioni pubbliche
// -------------------------------------

// Controllo Debug Mode
function SetDebugMode(bEnable) {g_bDebug=bEnable;}
function IsDebugMode() {return g_bDebug;}


// Funzione di Trace su Message Window
function Trace(p_sMsg)
{
	if (!g_bDebug) return false;

	var doc;
	if ((typeof(g_hWndTrace)!='object') || typeof(g_hWndTrace.document)!='object')
	{
		g_hWndTrace = open('', 'TRACE', 'toolbar=no,resizable=yes,scrollbars=yes,width=800,height=460');
		doc = g_hWndTrace.document;

		var sTextStyle="width:100%; font-family:Courier New; font-size:13px; font-weight:bold; color:black; background:#EEEEEE;";
		
		var sHtml = '<HTML><HEAD><TITLE>TRACE WINDOW</TITLE></HEAD><BODY><FORM>';
		sHtml += "<TEXTAREA NAME='TEXT' ROWS='25' STYLE='"+sTextStyle+"'></TEXTAREA>";
		sHtml += "<br><input type='button' value='CLEAR' name='' onClick='javascript:TEXT.value=\"\";'>";
		sHtml += '</FORM></BODY></HTML>';

		doc.open("text/html","replace");
		doc.write(sHtml);
		doc.close();
	}
	doc = g_hWndTrace.document;

	TextField = doc.forms[0].TEXT;
	TextField.value = TextField.value + p_sMsg + '\n';
}


// Funzione di Allert
function DebugAlert(sTitle, sText)
{
	if (!g_bDebug) return false;
	alert(sTitle + '\n\n' + sText);
}

// Supporto per profiling

var g_dTimerStart;

function TimerStart()
{
	g_dTimerStart = new Date();
}

function TimerTrace(p_sMsg)
{
	dNow = new Date();
	nTime = dNow.getTime()-g_dTimerStart.getTime();
	alert(p_sMsg +": " + nTime + " ms.");
	g_dTimerStart = new Date();
}

function Alert(p_sText)
{
	alert('ALERT\n================================\n\n' + p_sText);
}