		// Konstanten
		var bubble_openTimeout = null;
		var bubble_closeTimeout = null;
		
		var BUBBLE_INTIME = 500;
		var BUBBLE_OUTTIME = 500;
		
		var bubble_inBubble = false;
		var bubble_inLink = false;
		var bubble_activeElement = null;
		
		// Einblenden und Position setzen
		function bubble_Open(id,id2) {
			bubble_openTimeout = null;
			if (bubble_activeElement == null) {
				element = document.getElementById(id);
				if (element) {
					element.style.display="block";
					bubble_activeElement = id;
					bubble_SetPosition(id,id2);
				}
			}
			return false;
		}
		// Status setzen für mouseover auf Bubble
		function bubble_MouseIn() {
			bubble_inBubble = true;
			bubble_inLink = false;
			bubble_TryClose(bubble_activeElement);
		}
		// status setzen für mouseout auf Bubble
		function bubble_MouseOut() {
			bubble_inBubble = false;
			bubble_TryClose(bubble_activeElement);
		}
		//Close-Timeout setzen
		function bubble_TryClose(id) {
			if (bubble_inBubble || bubble_inLink) {
				if (bubble_closeTimeout!=null) {
					window.clearTimeout(bubble_closeTimeout);
					bubble_closeTimeout = null;
				}
			} else {
				bubble_closeTimeout = window.setTimeout("bubble_Close('" + id + "')",BUBBLE_OUTTIME);
			}
		}
		// position der Bubble setzen (id der bubble und id des links)
		function bubble_SetPosition(id,id2) {
			var yOffset = getYScrollOffset();
			var height = DL_GetElementTop(document.getElementById(id2))-getObjectHeight(id) + 10;
			if (height < yOffset) {
				height=DL_GetElementTop(document.getElementById(id2)) + 12;
				element = document.getElementById(id);
				element.className = "bubble bubbleTop";
			} else {
				element = document.getElementById(id);
				element.className = "bubble bubbleBottom";
				height = DL_GetElementTop(document.getElementById(id2))-getObjectHeight(id) + 2;
			}
			shiftTo(id,DL_GetElementLeft(document.getElementById(id2)),height);
			
		}
		// Open-Timeout setzen (Link-MouseIn)
		function bubble_TryOpen(id,id2) {
			//element2 = document.getElementById(id2);
			//element = document.getElementById(id);			

			if (bubble_activeElement != null && bubble_activeElement != id) { 
				bubble_Close(bubble_activeElement);
				bubble_activeElement = null;
			}
			bubble_inLink = true;
			bubble_openTimeout = window.setTimeout("bubble_Open('" + id + "','" + id2 + "')",BUBBLE_INTIME);
			bubble_TryClose(id);
		}
		// Link-MouseOut
		function bubble_Cancel(id) {
			bubble_inLink = false;
			if (bubble_openTimeout != null) {
				window.clearTimeout(bubble_openTimeout);
				bubble_openTimeout = null;
			}
			bubble_TryClose(id);
			
		}
		// Close
		function bubble_Close(id) {
			element = document.getElementById(id);
			if (element) {
				element.style.display="none";
				bubble_activeElement = null;
			}
		}
		function bubble_Click(id, id2) {
			if (bubble_activeElement == null) {
				bubble_Open(id,id2);
			} else {
				bubble_Close(id);
			}
		}

// DHTMLApi----------------------------------------------------------------

var isCSS, isW3C, isIE4, isNN4;
function initDHTMLAPI() {
    if (document.images) {
        isCSS = (document.body && document.body.style) ? true : false;
        isW3C = (isCSS && document.getElementById) ? true : false;
        isIE4 = (isCSS && document.all) ? true : false;
        isNN4 = (document.layers) ? true : false;
        isIE6CSS = (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) ? true : false;
    }
}
window.onload = initDHTMLAPI;

function seekLayer(doc, name) {
    var theObj;
    for (var i = 0; i < doc.layers.length; i++) {
        if (doc.layers[i].name == name) {
            theObj = doc.layers[i];
            break;
        }
        // dive into nested layers if necessary
        if (doc.layers[i].document.layers.length > 0) {
            theObj = seekLayer(document.layers[i].document, name);
        }
    }
    return theObj;
}

function getRawObject(obj) {
    var theObj;
    if (typeof obj == "string") {
        if (isW3C) {
            theObj = document.getElementById(obj);
        } else if (isIE4) {
            theObj = document.all(obj);
        } else if (isNN4) {
            theObj = seekLayer(document, obj);
        }
    } else {
        theObj = obj;
    }
    return theObj;
}

function getObject(obj) {
    var theObj = getRawObject(obj);
    if (theObj && isCSS) {
        theObj = theObj.style;
    }
    return theObj;
}

function shiftTo(obj, x, y) {
    var theObj = getObject(obj);
    if (theObj) {
        if (isCSS) {
            var units = (typeof theObj.left == "string") ? "px" : 0 
            theObj.left = x + units;
            theObj.top = y + units;
        } else if (isNN4) {
            theObj.moveTo(x,y)
        }
    }
}

function show(obj) {
    var theObj = getObject(obj);
    if (theObj) {
        theObj.visibility = "visible";
    }
}

function hide(obj) {
    var theObj = getObject(obj);
    if (theObj) {
        theObj.visibility = "hidden";
    }
}

function getObjectHeight(obj)  {
    var elem = getRawObject(obj);
    var result = 0;
    if (elem.offsetHeight) {
        result = elem.offsetHeight;
    } else if (elem.clip && elem.clip.height) {
        result = elem.clip.height;
    } else if (elem.style && elem.style.pixelHeight) {
        result = elem.style.pixelHeight;
    }
    return parseInt(result);
}

function DL_GetElementTop(eElement)
{
   if (!eElement && this)
   {
      eElement = this;
   }

   var DL_bIE = document.all ? true : false;

   var nTopPos = eElement.offsetTop;
   var eParElement = eElement.offsetParent;

   while (eParElement != null)
   {
      if(DL_bIE)
      {
         if(eParElement.tagName == "TD")
         {
            nTopPos += eParElement.clientTop;
         }
      }
      else
      {
         if(eParElement.tagName == "TABLE")
         {
            var nParBorder = parseInt(eParElement.border);
            if(isNaN(nParBorder))
            {
               var nParFrame = eParElement.getAttribute('frame');
               if(nParFrame != null)
               {
                  nTopPos += 1;
               }
            }
            else if(nParBorder > 0)
            {
               nTopPos += nParBorder;
            }
         }
      }

      nTopPos += eParElement.offsetTop;
      eParElement = eParElement.offsetParent;
   }
   return nTopPos;
}

function DL_GetElementLeft(eElement) {
    if (!eElement && this)
    {
        eElement = this;
    }
    
    var nLeftPos = eElement.offsetLeft;
    var eParElement = eElement.offsetParent;
    while (eParElement != null)
    {
        nLeftPos += eParElement.offsetLeft;
        eParElement = eParElement.offsetParent;
    }
    return nLeftPos;
}

function getYScrollOffset() {
	yOffset = -1;
	if (document.body.scrollTop) {
		yOffset = document.body.scrollTop;
	} else if (window.pageYOffset) {
		yOffset = window.pageYOffset;
	}
	return yOffset;
}