function CMouseTipps(vObjectVarName)
{
  this.mouseTippIdsTimer=new Array();
  this.timeoutClose=250;
  this.objectVarName=vObjectVarName;
  this.openedIds=new Array();
  
  this.Open=_CMouseTipps_Open;
  this.Move=_CMouseTipps_Move;
  this.Close=_CMouseTipps_Close;
  this.TimerClose=_CMouseTipps_TimerClose;
}

/* Gen-Help-Funktionen */
function _CMouseTipps_Open(vId, vEvent, vOffsetObject)
{
  document.getElementById(vId).style.visibility='visible';
  document.getElementById(vId).style.display='block';

  if (typeof this.mouseTippIdsTimer[vId]!="undefined" && this.mouseTippIdsTimer[vId]!=null)
  {window.clearTimeout(this.mouseTippIdsTimer[vId]);
  }

  this.mouseTippIdsTimer[vId]=null;
  
  if (typeof this.openedIds[vId]=="undefined" || (typeof this.openedIds[vId]!="undefined" && document.getElementById(vId).style.top=="" && document.getElementById(vId).style.left=="") )
  {
    this.openedIds[vId]=true;
    this.Move(vId, vEvent, (typeof vOffsetObject!="undefined"?vOffsetObject:{x: 0, y: 0}) );
  }
}

function _CMouseTipps_Move(vId, vEvent, vOffsetObject)
{
  /* Scroll-Position ermitteln */
  var tmpScrollXPos=0;
  var tmpScrollYPos=0;
  var tmpOffset={x: 0, y: 0};
  
  if (window.pageYOffSet!="undefined")
  {
    tmpScrollXPos=window.PageXOffset;
    tmpScrollYPos=window.PageYOffset;
  }

  if (document.body.scrollTop!="undefined")
  {
    tmpScrollXPos=document.body.scrollLeft;
    tmpScrollYPos=document.body.scrollTop;
  }
  
  /* Offset */
  if (typeof vOffsetObject!="undefined" && typeof vOffsetObject.x!="undefined")
  {tmpOffset.x=vOffsetObject.x;
  }
  if (typeof vOffsetObject!="undefined" && typeof vOffsetObject.y!="undefined")
  {tmpOffset.y=vOffsetObject.y;
  }
  
  /* Positionieren */
  var tmpIdWidth=document.getElementById(vId).style.width.replace(/\D/g, "")*1;

  document.getElementById(vId).style.left=(vEvent.x?vEvent.x:vEvent.layerX)-(tmpIdWidth/2)+tmpScrollXPos+tmpOffset.x;
  document.getElementById(vId).style.top=(vEvent.clientY?vEvent.clientY:vEvent.pageY)+15+tmpScrollYPos+tmpOffset.y;
}

function _CMouseTipps_Close(vId, vEvent)
{
  this.mouseTippIdsTimer[vId]=window.setTimeout(this.objectVarName+".TimerClose('"+vId+"')", this.timeoutClose);
}

function _CMouseTipps_TimerClose(vId)
{
  document.getElementById(vId).style.visibility='hidden';
  document.getElementById(vId).style.display='none';
  this.mouseTippIdsTimer[vId]=null;
}

// -----

var mousetipps=new CMouseTipps('mousetipps');
