var debugWin, debugOut
function openDebugWin(win){
	//if(frames.debugWin)debugWin.close();
	mWin = win
	if(typeof(dump)=='undefined'){
		debugWin = window.open('debugWin2.html', 'debugWindow',	'left=0,top=0,width=400,height=400,scrollbars=yes');
		setTimeout("debugWindowInit()", 1000)
	}
	else init()
	}
function debugWindowInit(){
	//alert("debugWindowInit" + mWin)
	//debugWindow.init(mWin)
	debugWin.init(mWin)
}
function debugAs(m){
	debug('as:'+m)
}
function debug(m){
	//return;
	if(typeof(dump)!='undefined'){
		dump(m+'<-\n')
		return
		}
	if(!debugWin )return;
	//debugWin.document.write(m+'<br>');
	if(!debugWin.document.body )return;
	debugWin.document.body.insertAdjacentHTML('BeforeEnd', m+'<br>');
	//debugWin.scrollTo(0, debugWin.document.body.scrollHeight)
	debugWin.focus()	
	} 
function dumpObject(o, deep){ 
	deep ? deep=true : deep = false
	debug('dump:'+o+' recursive:'+deep); 
	for(e in o){
		try{
			debug(e+'->'+o[e] + ':'+typeof(o[e]));
			if(deep && typeof(o[e]) == 'object') dumpObject(o[e], 1);
		}
		catch(ex){
			debug(e+ ' exeption:'+ex)
		}
	}
}
function compareObjects(o1, o2){ 
	debug('compareObjects 1:'+o1+' 2:'+o2); 
	ns = window.getComputedStyle(o1,'')
	ns2 = window.getComputedStyle(o2,'')
	//for(e in o1){
	for(name in ns){
		try{
			if(ns.getPropertyValue(name) != ns2.getPropertyValue(name) )	
				debug(name+'->1:'+ns.getPropertyValue(name)  + '2:'+ns2.getPropertyValue(name));
			//if(o1[e] != o2[e])	debug(e+'->1:'+o1[e] + '2:'+o2[e]);
		}
		catch(ex){
			debug(name+ ' exeption:'+ex)
		}
	}
}
function dumpArray(a){
	debug(a+' len:'+a.length+' typeof:'+typeof(a));
	for(var i=0;i<a.length;i++)debug(i+'->'+a[i]);
}
function dumpLayout(el){
	debug('el:'+el.nodeName+':'+el.getAttribute('id'))
	debug('bottom:'+el.style.bottom)
	debug('top:'+el.offsetTop)
	debug('left:'+el.offsetLeft)
	debug('width:'+el.offsetWidth)
	debug('height:'+el.offsetHeight)
	debug('visibility:'+el.style.visibility)
	debug('ZIndex:'+el.style.zIndex)
}

function dumpStyle(el){
	var cS = document.defaultView.getComputedStyle(el, null);
	dumpObject(cS);
}
