// version 2.3.1.0

// Traces
// crée un id unique
function getUniqueId(size) {
	var uid = ""; 
	for (var i = 1; i <= size; i++) { 
		uid += Math.floor(Math.random() * 16.0).toString(16); 
	} 
	return uid;
}


function debug(traceLevel)
{

	var theTraceLevel = traceLevel;
	var theLogId = getUniqueId(6);
	var bMsg = false;
	
	if (theTraceLevel > 1) {
		ensureWindow(); // fenêtre crée au moment de l'erreur pour traceLevel > 0
	}

	function ensureWindow()	{
		if (debug.newWindow == null || debug.newWindow.closed) {
			var myWindowName = "WINTRACE";
			try { 
				debug.newWindow = window.open(
					"",
					myWindowName,
					"scrollbars,resizable,location,width=750,height=550"); 
			}
			catch(e) { 
				myWindowName = "debug"; 
				debug.newWindow = window.open(
					"",myWindowName); 
			}
		}
		
		try
		{
			debug.newWindow.document;
		}
		catch(e) {
			if (! bMsg) {
				alert("La fenêtre de trace cliente ne peut être accédée ; vérifiez que les popups sont autorisées");
				bMsg = true;
			}
			return false;
		}

		// Check if the document was previously loaded 
		if (!debug.newWindow.document.getElementById("present") ) {
			debug.newWindow.document.open();
			debug.newWindow.document.writeln(
			'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML ' + 
			'4.01 Transitional//EN">' + 
			"<html>" + 
			"<head>" +
			"<title>Window " + myWindowName + "<\/title>" +
			"<style type='text/css'>" +
			"div p {margin: 0px;font-family:\"Lucida Console\";font-size: .9em}" +
			"<\/style>" +
			"<\/head>" + 
			"<body id='present'>" + 
			"<div id='debugdiv'>" +
			Date() + "<br>&nbsp;ver&nbsp;" + gVersion + "<br>&nbsp;<\/p>" +
			"<\/div>" +
			"<\/body>" + 
			"<\/html>"); 
			debug.newWindow.document.close();  
	    }
	    
		return true;
	}
	
	// Example invocation & print: 
	//      debug.dump(document,'document');
	function dump(obj, obj_name) {
		if (theTraceLevel > 1)
		{
			debug.out('In DumpProperties. obj=' + obj_name);
			for (var i in obj) {   
				try {
					debug.out(obj_name + "." + i + " = " + obj[i]);
				}
				catch(e) {
					debug.out("Error writing out structure. Was " + 
						e + " for " + i);
				}
			}
		} 
	}
	debug.dump = dump;
  
	function dumpSorted(obj, obj_name) {
		var i;
		var sorted = [ ];
		var objCount = 0;

		if (theTraceLevel > 1) {
			debug.out('In DumpProperties. obj=' + obj_name);
			for (i in obj) { 
				sorted[objCount++] = i;
			}
			  
			sorted.sort();
			 
			for ( i=0; i <sorted.length;  i++) {
				try {
					debug.out(obj_name + "." + sorted[i] + " = " + 
						obj[sorted[i]]);
				}
				catch(e) {
					debug.out("Error writing out structure. Was " + 
							i + " for " + sorted[i]); 
				}  
			}
		} // if we are debugging. 
	}  // of dumpSorted
	debug.dumpSorted = dumpSorted; 

	function out(obj, color) {
		if (theTraceLevel > 1) {
			var theString = "" + obj;
			theString = theString.replace(/ /g, "\xA0");
			add(theString, color);
		}
	}
	debug.out = out;


	function warn(obj) {
		if (theTraceLevel > 0) {
			var theString = "WARNING : " + obj;
			theString = theString.replace(/ /g, "\xA0");
			add(theString, "orange");
		}
	}
	 
	debug.warn = warn;

	function err(obj) {
		if (theTraceLevel > 0) {
			var theString = "ERROR : " + obj;
			theString = theString.replace(/ /g, "\xA0");
			add(theString, "red");
		}
	}
	debug.err = err;

	function exc(fname, e) {
		if (theTraceLevel > 0) {
			var theString = "EXCEPTION dans " + fname + " : "  + e.name + " (" + e.message + ")";
			theString = theString.replace(/ /g, "\xA0");
			add(theString, "red");
		}
	}
	debug.exc = exc;

	function add(obj,color) {  
		var isOpen = ensureWindow();
		if (! isOpen)
			return;
		var win = debug.newWindow;
		var theDate = new Date();
		var node = win.document.getElementById("debugdiv");
		var myPara = win.document.createElement("<P style=\"background-color:" + color + "\">");
		node.appendChild(myPara);
		myPara.appendChild(win.document.createTextNode("" + theDate.toLocaleTimeString() + "." + theDate.getMilliseconds() + " [" + theLogId + "] " + obj)); 
	}
	
	debug.level = theTraceLevel;
	debug.logId = theLogId;
} // end of debug



                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          