var DebugCounter=0;
var StartUhr;
var DebugWnd;
var wndWidth=250; //Breite u. Höhe des DebugDivs
var wndHeight=120;
var wndMenuHeight=15;



function StopUhr(Ende){				
	if(!Ende){
		StartUhr=new Date();
	}else{
		var EndUhr=new Date();		
		
		var Diff=getTimeDiffInMs(StartUhr,EndUhr);
		debug("Laufzeit: "+Diff+" ms");
	}
}

function getTimeAsArray(Zeit){
	var Time=Array();
	Time.push(Zeit.getHours());
	Time.push(Zeit.getMinutes());
	Time.push(Zeit.getSeconds());
	Time.push(Zeit.getMilliseconds());
	return Time;
}
function getTimeDiffInMs(fTime,eTime){
	fT=getTimeAsArray(fTime);
	eT=getTimeAsArray(eTime);
	var Ms=getTimeDiffInS(fTime,eTime)*1000;
	if(eT[3]<fT[3]){
		Ms=Ms- fT[3]+ eT[3];
	}else{
		Ms=Ms+eT[3]-fT[3];
	}
	return Ms;
}

function getTimeDiffInS(fTime,eTime){
	fT=getTimeAsArray(fTime);
	eT=getTimeAsArray(eTime);
	var S=getTimeDiffInM(fTime,eTime)*60;
	if(eT[2]<fT[2]){
		S=S- fT[2]+ eT[2];
	}else{
		S=S+eT[2]-fT[2];
	}
	return S;
}
function getTimeDiffInM(fTime,eTime){
	fT=getTimeAsArray(fTime);
	eT=getTimeAsArray(eTime);
	var M=getTimeDiffInH(fTime,eTime)*60;
	if(eT[1]<fT[1]){
		M=M- fT[1]+ eT[1];
	}else{
		M=M+eT[1]-fT[1];
	}
	return M;
}
function getTimeDiffInH(fTime,eTime){
	fT=getTimeAsArray(fTime);
	eT=getTimeAsArray(eTime);
	if(eT[0]<fT[0]){
		return 24 - fT[0]+eT[0];
	}else{
		return eT[0]-fT[0];
	}
}

function debugClear(){
	C=document.getElementById("DEBUGINFO");
	if(C){
		C.innerHTML="";
	}
	debug("Clear");
}

function _setStyle(Obj,Fun,Val){
	if(Obj && Obj.style){
		Obj.style[Fun]=Val;
	}
}

function _createDebugWnd(Name){
	var wnd=document.createElement("Div");
	Pos=document.all?"absolute":"fixed";
	_setStyle(wnd,"position",Pos);
	_setStyle(wnd,"height",wndHeight+"px");
	_setStyle(wnd,"width",wndWidth+"px");
	_setStyle(wnd,"border","1px solid #D4D0C8");
	wndMenu=_createMenuDiv(wnd,Name);
	wndDebug=_createDebugDiv(Name);
	wnd.appendChild(wndMenu);
	wnd.appendChild(wndDebug);
	//document.body.appendChild(wnd);
	return wnd;
}
var ConDiv;
var ConH=0;
function _createDebugDiv(Name){
	var C;
	C=document.createElement("div");
	C.id=Name;			
	S=C.style;
	//S.position=Pos;
	//S.height=(wndHeight-wndMenuHeight-2)+"px";
	ConH=100-(wndMenuHeight/(wndHeight/100))+"%";
	S.height=ConH;
	S.width=wndWidth-2+"px";
	S.border="thin solid black";
	S.background="white";
	S.overflow="auto";
	S.opacity=20;
	S.zIndex=200;
	S.filter="Alpha(opacity=80)";
	ConDiv=C;
	return C;
}
function _createMenuDiv(Obj,Name){
	var X;
	var F;
	var T;
	T=document.createElement("font");
	_setStyle(T,"fontFamily","Verdana");
	_setStyle(T,"fontSize",wndMenuHeight-4+"px");
	_setStyle(T,"margin","4px");
	T.innerHTML=Name;
	F=document.createElement("font");
	_setStyle(F,"fontFamily","Verdana");
	_setStyle(F,"fontSize",wndMenuHeight-4+"px");
	_setStyle(F,"fontWeight","bold");
	_setStyle(F,"lineHeight","8px");
	_setStyle(F,"marginLeft","1px");
	F.innerHTML="X";
	F2=document.createElement("font");
	_setStyle(F2,"fontFamily","Verdana");
	_setStyle(F2,"fontSize",wndMenuHeight-4+"px");
	_setStyle(F2,"fontWeight","bold");
	_setStyle(F2,"lineHeight","8px");
	_setStyle(F2,"marginLeft","2px");
	F2.innerHTML="-";
	M=document.createElement("div");
	_setStyle(M,"backgroundColor","#D4D0C8");
	_setStyle(M,"width",parseInt(Obj.style.width)+"px");
	_setStyle(M,"height",wndMenuHeight+"px");
	_setStyle(M,"top",(wndMenuHeight-10)/2+"px");
	_setStyle(M,"left","0px");
	X=document.createElement("div");
	_setStyle(X,"position","absolute");
	_setStyle(X,"cursor","pointer");
	_setStyle(X,"backgroundColor","#BCBCBC");
	_setStyle(X,"top","0px");
	_setStyle(X,"left",parseInt(Obj.style.width)-14+"px");
	_setStyle(X,"width","10px");
	_setStyle(X,"height","10px");
	_setStyle(X,"border","1px solid black");
	X2=document.createElement("div");
	_setStyle(X2,"position","absolute");
	_setStyle(X2,"cursor","pointer");
	_setStyle(X2,"backgroundColor","#BCBCBC");
	_setStyle(X2,"top","0px");
	_setStyle(X2,"left",parseInt(Obj.style.width)-27+"px");
	_setStyle(X2,"width","10px");
	_setStyle(X2,"height","10px");
	_setStyle(X2,"border","1px solid black");
	X.appendChild(F);
	X2.appendChild(F2);
	M.appendChild(T);
	M.appendChild(X);
	M.appendChild(X2);
	if(document.all){
		X.onclick=function(){closeDebugWnd()};
		X2.onclick=function(){MinMaxDebugWnd()};
	}else{
		X.addEventListener("click", closeDebugWnd, true);
		X2.addEventListener("click", MinMaxDebugWnd, true);
	}
	return M;
}

function MinMaxDebugWnd(){
	if(!DebugWnd){
		return;
	}
	if(parseInt(DebugWnd.style.height) == wndMenuHeight){		
		DebugWnd.style.height=wndHeight +"px";
		ConDiv.style.height=ConH;
	}else{
		DebugWnd.style.height=wndMenuHeight+"px";
		ConDiv.style.height="0%"		
	}
}
function closeDebugWnd(){
	if(DebugWnd){
		debug("Close DebugWND")
		document.body.removeChild(DebugWnd);
		DebugWnd=false;
	}
}
function debug(MSG){
	if(!document.body) {
		return;
	}
	if(document.getElementById("DEBUGINFO")){
		C=document.getElementById("DEBUGINFO");
	}else{					
		DebugWnd=_createDebugWnd("DEBUGINFO");
		document.body.appendChild(DebugWnd);
		C=document.getElementById("DEBUGINFO");
		//_createDebugWnd("DEBUGINFO");
	}
	var maxX=parseInt(wndWidth)+25;
	var maxY=parseInt(wndHeight)+25;
	if(window.innerWidth){
		maxX=parseInt(window.innerWidth);
		maxY=parseInt(window.innerHeight);			
	}else if(document.body.offsetWidth){
		maxX=document.body.parentNode.offsetWidth>maxX?document.body.parentNode.offsetWidth:maxX;
		maxY=document.body.parentNode.offsetHeight>maxY?document.body.parentNode.offsetHeight:maxY;
	}
	DebugWnd.style.top=(maxY-parseInt(wndHeight)-25)+"px";
	DebugWnd.style.left=(maxX-parseInt(wndWidth)-25)+"px";
	DebugCounter++;		
	C.innerHTML=C.innerHTML+"<font class='Error' style='white-space:nowrap;'>"+DebugCounter+": "+MSG+"</font><br>";
	C.scrollTop=1000000000;	
}

