/* DHTML-Bibliothek */

var DHTML = 0, DOM = 0, MS = 0, NS = 0, OP = 0;

xMousePos = 0;
yMousePos = 0;
xMousePosMax = 0;
yMousePosMax = 0;

Timeout_ID = 0;

function DHTML_init() {
    if (window.opera) {
        OP = 1;
    }
    if(document.getElementById) {
        DHTML = 1;
        DOM = 1;
        document.onmousemove = captureMousePosition;
    }
    if(document.all && !OP) {
        DHTML = 1;
        MS = 1;
        document.onmousemove = captureMousePosition;
    }
    if(document.layers && !OP) {
        DHTML = 1;
        NS = 1;
        document.captureEvents(Event.MOUSEMOVE);
        document.onmousemove = captureMousePosition;
    }
}

function captureMousePosition(e) {
     if (MS) {
         xMousePos = window.event.x+document.body.scrollLeft;
         yMousePos = window.event.y+document.body.scrollTop;
         xMousePosMax = document.body.clientWidth+document.body.scrollLeft;
         yMousePosMax = document.body.clientHeight+document.body.scrollTop;
     } else if (DOM) {
         xMousePos = e.pageX;
         yMousePos = e.pageY;
         xMousePosMax = window.innerWidth+window.pageXOffset;
         yMousePosMax = window.innerHeight+window.pageYOffset;
     } else if (NS) {
         xMousePos = e.pageX;
         yMousePos = e.pageY;
         xMousePosMax = window.innerWidth+window.pageXOffset;
         yMousePosMax = window.innerHeight+window.pageYOffset;
     } 
 }

function showMenu(i) {
    menu = getElem('id',i,0);
    if(NS) {
        menu.style.visibility = 'show';
    }
    else {
        menu.style.visibility = 'visible';
    }
    menu.style.visibility = 'visible';
    menu.style.display    = 'block';
    menu.style.maxHeight  = '200px';
    menu.style.overflowY  = 'scroll';
    if(Timeout_ID > 0) {
        window.clearTimeout(Timeout_ID);
        Timeout_ID = 0;
    }
    
    my = window.innerHeight / 2;

    y = parseInt(menu.style.top) - parseInt(window.pageYOffset);

    if(y < (my - 60))
    {
        //window.window.scrollBy(0, -10);
    }
    else
    {
        if(y > (my + 30)) {
            window.window.scrollBy(0,10);
        }
    }
    
}

function showMenuAtPointer(i) {
    menu = getElem('id',i,0);
    x = xMousePos - 6;
    y = yMousePos - 6;
/*
    while((window.innerWidth - x) < 80) {
        x -= 10;
    }
    while((window.innerHeight - y) < 80) {
        y -= 10;
    }
*/
    menu.style.left = x;
    menu.style.top  = y;
    showMenu(i);
}

function hideMenu(menu_id) {
    Timeout_ID = window.setTimeout("hideMenuNow('"+menu_id+"');", 250);
}

function hideMenuNow(i) {
    menu = getElem('id',i,0);
/*
    x1 = parseInt(menu.style.left);
    xOK = (x1 > xMousePos);

    y1 = parseInt(menu.style.top);
    yOK = (y1 > yMousePos);

    if(xOK || yOK) {
*/
        if(NS) {
            menu.style.visibility = 'hide';
        }
        else {
            menu.style.visibility = 'hidden';
        }
        menu.style.display    = 'none';
//    }
    window.clearTimeout(Timeout_ID);
}

function getElem(p1,p2,p3) {
 var Elem;
 if(DOM) {
   if(p1.toLowerCase()=="id") {
     if (typeof document.getElementById(p2) == "object")
     Elem = document.getElementById(p2);
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="name") {
     if (typeof document.getElementsByName(p2) == "object")
     Elem = document.getElementsByName(p2)[p3];
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="tagname") {
     if (typeof document.getElementsByTagName(p2) == "object" || (OP && typeof document.getElementsByTagName(p2) == "function"))
     Elem = document.getElementsByTagName(p2)[p3];
     else Elem = void(0);
     return(Elem);
   }
   else return void(0);
 }
 else if(MS) {
   if(p1.toLowerCase()=="id") {
     if (typeof document.all[p2] == "object")
     Elem = document.all[p2];
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="tagname") {
     if (typeof document.all.tags(p2) == "object")
     Elem = document.all.tags(p2)[p3];
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="name") {
     if (typeof document[p2] == "object")
     Elem = document[p2];
     else Elem = void(0);
     return(Elem);
   }
   else return void(0);
 }
 else if(NS) {
   if(p1.toLowerCase()=="id" || p1.toLowerCase()=="name") {
   if (typeof document[p2] == "object")
     Elem = document[p2];
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="index") {
    if (typeof document.layers[p2] == "object")
     Elem = document.layers[p2];
    else Elem = void(0);
     return(Elem);
   }
   else return void(0);
 }
}

function getCont(p1,p2,p3) {
   var Cont;
   if(DOM && getElem(p1,p2,p3) && getElem(p1,p2,p3).firstChild) {
     if(getElem(p1,p2,p3).firstChild.nodeType == 3)
       Cont = getElem(p1,p2,p3).firstChild.nodeValue;
     else
       Cont = "";
     return(Cont);
   }
   else if(MS && getElem(p1,p2,p3)) {
     Cont = getElem(p1,p2,p3).innerText;
     return(Cont);
   }
   else return void(0);
}

function getAttr(p1,p2,p3,p4) {
   var Attr;
   if((DOM || MS) && getElem(p1,p2,p3)) {
     Attr = getElem(p1,p2,p3).getAttribute(p4);
     return(Attr);
   }
   else if (NS && getElem(p1,p2)) {
       if (typeof getElem(p1,p2)[p3] == "object")
        Attr=getElem(p1,p2)[p3][p4]
       else
        Attr=getElem(p1,p2)[p4]
         return Attr;
       }
   else return void(0);
}

function setCont(p1,p2,p3,p4) {
   if(DOM && getElem(p1,p2,p3) && getElem(p1,p2,p3).firstChild)
     getElem(p1,p2,p3).firstChild.nodeValue = p4;
   else if(MS && getElem(p1,p2,p3))
     getElem(p1,p2,p3).innerText = p4;
   else if(NS && getElem(p1,p2,p3)) {
     getElem(p1,p2,p3).document.open();
     getElem(p1,p2,p3).document.write(p4);
     getElem(p1,p2,p3).document.close();
   }
}

function display_on(i) {
    obj=document.getElementById(i).style;
    
    obj.visibility = 'visible';
    obj.display    = 'block';
}

function display_off(i) {
    obj=document.getElementById(i).style;
    
    obj.visibility = 'hidden';
    obj.display    = 'none';
}

DHTML_init();
