function RegisterDebugEvents()
{
	document.onmouseover = document_onmouseover;
	document.onmouseout = document_onmouseout;
}

function document_onmouseover(Ereignis)
{
	if (!Ereignis)
	{
		Ereignis = window.event;
	}
	
	var source;	
	if (Ereignis.srcElement)
	{
		source = Ereignis.srcElement;
	}
	else if (Ereignis.target)
	{
		source = Ereignis.target;
	}
	else
	{
		return true;
	}
	
	if (source.disabled) return true;

	if (source.title>"") window.status = source.title;

	return true;
}

function document_onmouseout()
{
	window.status = '';
	return true;
}

function document_onkeypress(Ereignis)
{
	if (!Ereignis)
	{
		Ereignis = window.event;
	}
	
	var source;	
	if (Ereignis.srcElement)
	{
		source = Ereignis.srcElement;
	}
	else if (Ereignis.target)
	{
		source = Ereignis.target;
	}
	else
	{
		return true;
	}
	
	var chr;
	if (Ereignis.keyCode)
	{
		chr=Ereignis.keyCode;
	}
	else if (Ereignis.which)
	{
		chr=Ereignis.which;
	}
	else
	{
		return true;
	}
	
	if (chr == 13)
	{	
		if (source.NoReturn != null)
		{
			return false;
		}
		else
		{
			var submit = source.getAttribute('MySubmit')

			if (submit)
			{
				var element = document.getElementById(submit);
				if (element != null && element.click)
				{
					document.getElementById(submit).click();
				}
				return false;
			}
		}
		return true;
	}
}

// die Funktion __doPostBack wird um den Aufruf der Funktion StartLoading() erweitert
function HookDoPostback()
{
	if (typeof(__doPostBack) != 'undefined')
	{
		var newFunc = StartLoading;
		var oldFunc = __doPostBack;
		if (oldFunc)
			__doPostBack = function (eventTarget, eventArgument) { newFunc(); oldFunc(eventTarget, eventArgument); };
		else
			__doPostBack = function (eventTarget, eventArgument) { newFunc(); };
	}
}

function StartLoading()
{	// in 2 Sekunden wird ProgressBar-layer gestartet
	if (typeof(Page_IsValid) == "undefined" || Page_IsValid) 
		window.setTimeout("OpenLoading()",2000);
		
	return true;
}

function OpenLoading()
{
	if (ShowProgressBar)
	{
		var n= 'ProgressBar';
		var o = getDiv(n);
		if(null!=o) 
		{	// Layer einblenden
			showLayer(n);
			o.style.display="block";
			
			// Select-Boxen ausblenden
			var opos = GetPos(o);
			var i;
			for (i=0; i<document.forms[0].length; i++) 
			{	var e=document.forms[0][i];
				if (e.tagName == 'INPUT' && e.type.substring(0,6)=="select" && IsInLayer(e,opos)) 
					e.style.display="none";
			}
		}
	}
	return true; // wegen "onSubmit"!!
}

function GetPos(e) 
{	var x = 0;
	var y = 0;
	var w = e.offsetWidth;
	var h = e.offsetHeight;
	while (e) 
	{	x += e.offsetLeft;
		y += e.offsetTop;
		e = e.offsetParent;	}
	
	return new Pos(x,y,x+w,y+h);
}

function Pos(x, y, w, h) 
{	this.left = x;
	this.top = y;
	this.right = w;
	this.bottom = h;
}

function IsInLayer(e, layerPos) 
{	var epos = GetPos(e);
	ok=false;
	if ((layerPos.left<=epos.left && epos.left<=layerPos.right
			&& layerPos.top<=epos.top && epos.top<=layerPos.bottom) 
		|| (layerPos.left<=epos.right && epos.right<=layerPos.right
			&& layerPos.top<=epos.top && epos.top<=layerPos.bottom)
		|| (layerPos.left<=epos.right && epos.right<=layerPos.right
			&& layerPos.top<=epos.bottom && epos.bottom<=layerPos.bottom)
		|| (layerPos.left<=epos.left && epos.left<=layerPos.right
			&& layerPos.top<=epos.bottom && epos.bottom<=layerPos.bottom)) 
	{	ok=true;	}
	return ok;
}

document.onkeypress = document_onkeypress;
