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;
}

var ShowProgressBar = 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.type.substring(0, 6) == "select" && IsInLayer(e, opos))
                    e.style.display = "none";
            }
        }
    }
	return true; // wegen "onSubmit"!!
}

function DisableProgressBar() {
    ShowProgressBar = false;
}							



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;
