
/**
 *  The debugger tool developed by Nikhil Sidhaye for internal use.
 */

var _console = null;
var _debug = false;
var _initlog = false;


function log(obj) {
	log(obj, false);
}
/*
 * For evaluating.
 */
function log(obj, isEval)
{
	var color = "";
	var result = null;
	var localobj = obj;

	if(!_debug) {
		return;
	}

	getLogWindow();
	if (!	_initlog )
	{
		//_console.document.writeln("<PRE>");
		_console.document.writeln("<font face=\"Arial\" size=\"2\">");
		_initlog=true;
	}
	// evaluate.

	if(isEval)
	{
		//_console.document.writeln("<div style=\"border:1px solid blue;\">");
		_console.document.writeln("//--------------------------------------//");
		if(obj == "undefined") {
			_console.document.writeln("<font color='red'><B>");
		}

		_console.document.writeln("Evaluating : " + obj);

		if(obj == "undefined") {
			_console.document.writeln("</B></font>");
		}
		_console.document.write("<BR>Ans : ");

		result = eval(obj);
		printObj(result);
		//_console.document.writeln("</div>");
		_console.document.writeln("//--------------------------------------\\");
	}
	else
	{
		//_console.document.writeln("<div style=\"border:0px solid blue;\">");
		/*
		typeof a == 'object'
		*/
		if (localobj != null && localobj.replace)
		{
			//alert(localobj);
			 localobj = localobj.replace(/&/g,"&amp;");
			 localobj = localobj.replace(/>/g,"&gt;");
			 localobj = localobj.replace(/</g,"&lt;");
		    //localobj = normalize(localobj,"&","&amp;");
		    //localobj = normalize(localobj,">","&gt;")
		    //localobj = normalize(localobj,"<","&lt;");
		    //alert(localobj);
		}
		_console.document.writeln("Logging : " + localobj + "<br/>");
		//_console.document.writeln("</div>");
	}
}

function normalize(obj,fromstr,tostr)
{
  var ipos = -1;
  var icount = 0;
  ipos = obj.indexOf(fromstr);
  while (ipos >= 0 && icount < 100)
  {
     printObj(ipos + ":" + obj);
  	  icount++;
     obj = obj.replace(fromstr,tostr,ipos);
     ipos += tostr.length +1;
     ipos = obj.indexOf(fromstr,ipos);
  }
  printObj(obj);
  return obj;
}

function printObj(obj)
{

	if(obj == "undefined" || obj == null)
	{
		_console.document.writeln("<font color='red'><B>");

		_console.document.writeln(obj);

		_console.document.writeln("</B></font>");
	}
	else
	{
		_console.document.writeln(obj + "<br/>");
	}

	//_console.document.writeln("<BR>Type: " + typeof(obj));
}


function logFunction() {
	var obj = document.getElementById('debug01');
	log(obj.value, true);
}

function getLogWindow() {
	if(_console == null) {
			_console = window.open("",'Debug_Window', 'width=600,height=200,menubar=no,status=yes,resizable=yes,location=no,toolbar=no,scrollbars=yes');
			_console.document.writeln("<html><head><title>Logging console</title></head><body>");
			window.focus();
		} else {
			if(_console.closed) {
				_console = window.open("",'Debug_Window', 'width=600,height=200,menubar=no,status=yes,resizable=yes,location=no,toolbar=no,scrollbars=yes');
				window.focus();
			}else
			{
				//_console.focus();
			}
	}
}

