//**********************************************************************************************
//*** Beschreibung im Formular anzeigen ********************************************************
//**********************************************************************************************
var mTO, oEl, bField, clockobj, mioTO;
var clock       = false;
var mouseisover = false;
var mouse_x, mouse_y;
var sys_win = false;
var tooltips_fixed = false;

var offsetX = 5;
var offsetY = 5;


if (navigator.appName.indexOf("Explorer") != -1) {
    sys_win = true;
}

function getPos(oEl)
{
	this.x=0;
	this.y=0;

	oTemp = oEl.offsetParent;

    this.x += oEl.offsetLeft;
	while(oTemp!=null) {

		this.x+=oTemp.offsetLeft;
		this.y+=oTemp.offsetTop;
		oTemp=oTemp.offsetParent;

	}
	return this;
}

function movehandle(e)
{
    if (!e) {
        e = window.event;
    }

    if(e.srcElement) {
        var target = e.srcElement;
    } else if (e.target) {
        var target = e.target;
    }

    mouse_y = e.clientY;
    mouse_x = e.clientX;
}

function showDesc(oEl,sContent,e)
{
	if(!document.layers && document.getElementById)
	{
		if(document.body.scrollTop>=0)
		{
			yOff=(document.body.scrollTop)
		}
		else
		{
			yOff=0;
		}

		bField=false; oDesc=document.getElementById('desc');
		if(document.all) oEvnt=window.event;
		oDesc.style.top=parseInt(oEvnt.clientY)+yOff+14+'px';

		if(parseInt(oEvnt.clientX)+parseInt(oDesc.style.width)>495)
		{
			oDesc.style.left = 495-parseInt(oDesc.style.width)+'px';
		}
		else
		{
			oDesc.style.left = parseInt(oEvnt.clientX)+14+'px';
		}
		oDesc.innerHTML=sContent;
		mTO=window.setTimeout("oDesc.style.visibility='visible';",500);
	}
}

function showFieldDesc(oEl, sContent, type, pos)
{

    if (oEl != clockobj) {
        hideDesc(true);
        if (clockobj != undefined) {
            clockobj = undefined;
        }
        clockobj = oEl;
    }


    if(!document.layers && document.getElementById)
	{

	    bField = true;
		if(document.all) oEvnt=window.event;

		switch(type) {
		    case 2:
		        var name = 'desc';
		        break;
		    case 3:
		        var name = 'desclong';
		        break;
		    default:
		        var name = 'descshort';
		        break;
		}

		oDesc       = document.getElementById(name);
		oDescText   = document.getElementById(name + "_text_paragraph");
		oDescFrame  = document.getElementById(name + "_iframe");
		oDescBorder = document.getElementById(name + "_border");

		if(oDesc == null || oDescText == null) {
		    return false;
		}

		oDescText.innerHTML = sContent;
		mouseisover         = name;
		mioTO               = window.setTimeout("showFieldDescDelayed('" + name + "', '" + pos +"');", 500);

	}
}

function noMouseover ()
{
    mouseisover = false;
    window.clearTimeout(mioTO);
}

function showFieldDescDelayed (name, pos)
{
    if (mouseisover == false || name !== mouseisover){
        return;
    }

    var oDesc = document.getElementById(name);
    var oEl   = clockobj;
    var parent;
    var usemousepos = false;

    var pageOffsetY = window.pageYOffset;
    if (pageOffsetY == undefined) {
        pageOffsetY = document.documentElement.scrollTop;
    }

    if(pos != 'bottom' && pos != 'top' && pos != 'left') pos = 'right';

    if (tooltips_fixed == true) {
        oDesc.style.position = 'fixed';
    }
    else{
        oDesc.style.position = 'absolute';
    }

    with(oDesc) {

        className = pos;

        with(style){

            display    ='block';
	        visibility ='visible';

	        switch(pos) {

                case 'top':
	                left = getPos(oEl).x + offsetX + 'px';
	                top  = getPos(oEl).y + oEl.offsetTop - oDesc.offsetHeight - offsetY + 'px';
	                break;

                case 'bottom':
	                left = getPos(oEl).x + offsetX + 'px';
	                top  = getPos(oEl).y + oEl.offsetTop + oEl.offsetHeight + offsetY + 'px';
	                break;

                case 'left':

	                left = getPos(oEl).x - oDesc.offsetWidth - offsetX + 'px';

                    if(name == "desc") {
            	        if (checkForScroller(oEl)) {
            	           top  = mouse_y + pageOffsetY - oDesc.offsetHeight + 'px';
            	        }
            	        else {
                           top  = getPos(oEl).y + oEl.offsetHeight + oEl.offsetTop - oDesc.offsetHeight + 'px';
            	        }
                    }
                    else {
                        if (checkForScroller(oEl)) {
            	           top  = mouse_y + pageOffsetY - 20 + 'px';
            	        }
            	        else {
                            top  = getPos(oEl).y + oEl.offsetTop - 10 +  'px';
            	        }
                    }
                    break;

	            case 'right':
	                left = getPos(oEl).x + oEl.offsetWidth + offsetX + 'px';

                    if(name == "desc") {
            	        if (checkForScroller(oEl)) {
            	           top  = mouse_y + pageOffsetY - oDesc.offsetHeight + 'px';
            	        }
            	        else {
                           top  = getPos(oEl).y + oEl.offsetHeight + oEl.offsetTop - oDesc.offsetHeight + 'px';
            	        }
                    }
                    else {
                        if (checkForScroller(oEl)) {
            	           top  = mouse_y + pageOffsetY - 20 + 'px';
            	        }
            	        else {
                            top  = getPos(oEl).y + oEl.offsetTop - 10 +  'px';
            	        }
                    }
                    break;
	        }

			if(oDescFrame != null && oDescBorder != null) {
			    oDescFrame.style.width  = 0;
			    oDescFrame.style.height = 0;

    			oDescFrame.style.width  = oDescBorder.offsetWidth;
    			oDescFrame.style.height = oDescBorder.offsetHeight;
            }
        }
	}
}

function checkForScroller(node)
{
    while(node.parentNode) {
        node = node.parentNode;
        if(node.className == 'scroller') return true;
	}

	return false;
}

/*function lock (obj) {
    clock     = true;
    clockobj  = obj;
}*/

function hideDesc(isDiv)
{
    if (clock == true && isDiv == undefined) {
        return false;
    }

    clock=false;

	if(!document.layers && document.getElementById)
	{
		oDesc=document.getElementById('desc');
		if(oDesc) {
    		with(oDesc) {
    		    style.visibility='hidden';
    		    style.display='none';
    		    left=oDesc.top='0px';
    		    window.clearTimeout(mTO);
    		}
		}

		oDesc=document.getElementById('descshort');
		if(oDesc) {
    		with(oDesc) {
        		style.visibility='hidden';
        		style.display='none';
        		left=oDesc.top='0px';
        		clearTimeout(mTO);
    		}
		}

		oDesc=document.getElementById('desclong');
		if(oDesc) {
    		with(oDesc) {
        		style.visibility='hidden';
        		style.display='none';
        		left=oDesc.top='0px';
        		window.clearTimeout(mTO);
    		}
		}
	}
}

function clickhandle (e) {
    if (!e) {
        e = window.event;
    }
    if (e.srcElement) {
        var target = e.srcElement;
    }
    else {
        var target = e.target;
    }
    var desc      = document.getElementById('desc');
    //var descshort = document.getElementById('descshort');
    var desclong  = document.getElementById('desclong');
    var parent = target;
    var close  = true;
    while(parent != null) {
        if (parent == desc || parent == desclong) {
            close = false;
        }
        parent = parent.parentNode;
	}

	if (close) {
	    with (desc) {
	        style.visibility='hidden';
    		style.display='none';
    		style.left='0px';
    		style.top= '0px';
	    }
	    with (desclong) {
	        style.visibility='hidden';
    		style.display='none';
    		style.left='0px';
    		style.top= '0px';
	    }
	}
}

function autofocus () {
    var forms = document.forms;

    for (var i = 0; i < forms.length; i++) {
        if (forms[i].name == "languagechange") {
            continue;
        }
        for (var ii = 0; ii < forms[i].elements.length; ii++) {
            if (forms[i].elements[ii].type == "text") {
                forms[i].elements[ii].focus();
                break;
            }
        }
    }
}

window.onload        = autofocus;
document.onmousemove = movehandle;

// add event handler
if (document.attachEvent) {
    document.attachEvent('onclick',clickhandle)
}
else {
    document.addEventListener('click', clickhandle, false);
}

//document.onclick     = clickhandle;