window.addEvent('domready', function()
{
	var debugMessage = "";
    var isDebuggerEnabled = false;
	
    initDebuggerWindow = function(isEnabled)
	{
		if(isEnabled)
		{
			showDebuggerWindow();
			isDebuggerEnabled = true;
		}
		else
		{
		    hideDebuggerWindow();	
		}
	}
	
	debug = function(object,showAlert)
	{
		if(isDebuggerEnabled)
		{ 
		    var lineBreak = ""
	        var doShowAlert = false;
	        if(showAlert != undefined)
	        {
	            doShowAlert = true;
	            lineBreak = "\n";
	        }
			else
			{
				lineBreak = "<br>";
			}
			
	        if(Type.isObject(object))
	        {
				debugMessage += "Object dump ................."+lineBreak;
	            for(var i in object)
	            {
	                debugMessage += "id= " + i + " ::::: value= " + object[i] + lineBreak ;
	            }
	        }
			else if(Type.isString(object))
            {
				debugMessage += "String dump ..................."+lineBreak;
                debugMessage += "" + object + lineBreak ;
            }
			else if(Type.isElement(object))
            {
                debugMessage += "Element dump ................"+lineBreak;
                debugMessage += "" + object + lineBreak ;
            }
	        else
	        {
	            debugMessage += "" + object + lineBreak ;
	        }
	        debugMessage += "....................................."+lineBreak;
			
	        if (doShowAlert) 
	        {
	            alert(debugMessage);
	        }
	        else
	        {
	            $('debuggerContent').set('html',debugMessage);   
	        }
		}
	}
	
	showDebuggerWindow = function()
	{
		$('debuggerWindow').makeDraggable({'handle':$('debuggerHeader')});
        $('debuggerWindow').makeResizable(
        { 
            'handle':$('debugResizerArea')
            ,'limit':{'x':[220,1600], 'y':[120,1200]} 
        });
		$('debuggerWindow').setStyle('visibility','visible');
	}
	
	hideDebuggerWindow = function()
	{
		$('debuggerWindow').setStyle('visibility','hidden');
	}
	
});
