﻿// *** ShowToolTip ***
function ShowToolTip(element, left, top, innerHTML)
{          
    if (element)
    {
        element.style.left = left;
        element.style.top = top;
        element.innerHTML = innerHTML;
        element.style.display = "block";
        returnValue = true;
    }
    else
    {
        returnValue = false;
    }
}

function ShowToolTipById(elementId, left, top, innerHTML)
{    
    if (!document.getElementById) 
    {
        returnValue = false;
        return;
    }
    var element = document.getElementById(elementId);
    returnValue = ShowToolTip(element, left, top, innerHTML);
}

// *** HideToolTip ***
function HideToolTip(element)
{          
    if (element)
    {
        element.innerHTML = "";
        element.style.display = "none";
        returnValue = true;
    }
    else
    {
        returnValue = false;
    }
}

function HideToolTipById(elementId)
{    
    if (!document.getElementById) 
    {
        returnValue = false;
        return;
    }
    var element = document.getElementById(elementId);
    returnValue = HideToolTip(element);
}

// *** getPosition ***
/* der Aufruf dieser Funktion ermittelt die absoluten Koordinaten des Objekts element */
function GetPosition(element)
{
    var elem = element;
    var tagname = "";
    var x = 0;
    var y = 0;    

    /* solange elem ein Objekt ist und die Eigenschaft offsetTop enthaelt
    wird diese Schleife fuer das Element und all seine Offset-Eltern ausgefuehrt */
    while ((typeof(elem) == "object") && (typeof(elem.tagName) != "undefined"))
    {        
        y += elem.offsetTop;                  /* Offset des jeweiligen Elements addieren */
        x += elem.offsetLeft;                 /* Offset des jeweiligen Elements addieren */
        tagname = elem.tagName.toUpperCase(); /* tag-Name ermitteln, Grossbuchstaben */

        /* wenn beim Body-tag angekommen elem fuer Abbruch auf 0 setzen */
        if (tagname=="BODY")
            elem = 0;

        /* wenn elem ein Objekt ist und offsetParent enthaelt
        Offset-Elternelement ermitteln */
        if ((typeof(elem)=="object") && (typeof(elem.offsetParent)=="object"))
            elem = elem.offsetParent;
    }

    /* Objekt mit x und y zurueckgeben */
    position = new Object();
    position.x = x;
    position.y = y;    
    return position;
}

// *** getPosition ***
/* der Aufruf dieser Funktion ermittelt die absoluten Koordinaten des Objekts element */
function GetPosition(element, scrollpanel)
{
    var elem = element;
    var tagname = "";
    var x = 0;
    var y = 0;   
    var spTop = 0; 

    /* solange elem ein Objekt ist und die Eigenschaft offsetTop enthaelt
    wird diese Schleife fuer das Element und all seine Offset-Eltern ausgefuehrt */
    while ((typeof(elem) == "object") && (typeof(elem.tagName) != "undefined"))
    {        
        y += elem.offsetTop;                  /* Offset des jeweiligen Elements addieren */
        x += elem.offsetLeft;                 /* Offset des jeweiligen Elements addieren */
        tagname = elem.tagName.toUpperCase(); /* tag-Name ermitteln, Grossbuchstaben */

        if (elem == scrollpanel)
          spTop = y;

        /* wenn beim Body-tag angekommen elem fuer Abbruch auf 0 setzen */
        if (tagname=="BODY") // || elem == scrollpanel)
            elem = 0;

        /* wenn elem ein Objekt ist und offsetParent enthaelt
        Offset-Elternelement ermitteln */
        if ((typeof(elem)=="object") && (typeof(elem.offsetParent)=="object"))
            elem = elem.offsetParent;
    }

    /* Objekt mit x und y zurueckgeben */
    position = new Object();
    position.x = x;
    position.y = y;   
    
    if (!document.all)
    {
       if (scrollpanel.firstChild.scrollTop)
         position.y = y - scrollpanel.firstChild.scrollTop;
       else
        position.y = y;
    }
    else
      position.y = spTop;
     
    return position;
}

function GetPositionById(elementId)
{
    if (!document.getElementById) 
    {
        position = new Object();
        position.x = 0;
        position.y = 0;
        returnValue = position;
        return;
    }
    var element = document.getElementById(elementId);
    returnValue = HideToolTip(element);
}

function GetKeyCode(event)
{
    if (window.event)
        return event.keyCode;
    else 
        return event.which;
}

function SetStatusText(statustext)
{
    window.status = statustext;
}

function isDefined(variableName)
{
    return this[variableName] === undefined ? false : true;
}

function getDocumentWidth() {
    var de = document.documentElement;
    var myWidth = window.innerWidth || self.innerWidth || (de && de.clientWidth) || document.body.clientWidth;
    return myWidth;
}

function getDocumentHeight() {
    var de = document.documentElement;
    var myHeight = window.innerHeight || self.innerHeight || (de && de.clientHeight) || document.body.clientHeight;
    return myHeight;
}
