
var tooltip_ie, tooltip_ns, tooltip_nsplus;
var tooltip_active = false;
var tooltip_divid = "";

var tooltip_height = 0;
var tooltip_width = 0;

var tooltip_distCursorTooltipTop  = 5;
var tooltip_distCursorTooltipLeft = 15;

var tooltip_pageTTFreeSpaceTop    = 10;
var tooltip_pageTTFreeSpaceRight  = 10;
var tooltip_pageTTFreeSpaceBottom = 10;
var tooltip_pageTTFreeSpaceLeft   = 10;

var tooltip_PositionFixedTop  = false;
var tooltip_PositionFixedLeft = false;



tooltip_ie = document.all ? 1 : 0;
tooltip_ns4 = document.layers ? 1 : 0;
tooltip_nsplus = window.netscape ? 1 : 0;





function toolTipSelect(divid)
  {
    tooltip_divid = divid;
  }



function setDistToCursorTop(top)
  {
    tooltip_distCursorTooltipTop  = top;
  }
function setDistToCursorLeft(left)
  {
    tooltip_distCursorTooltipLeft = left;
  }
function setDistToCursor(top, left)
  {
    setDistToCursorTop(top);
    setDistToCursorLeft(left);
  }



function setTTFreespaceTop(top)
  {
    tooltip_pageTTFreeSpaceTop = top;
  }
function setTTFreespaceRight(right)
  {
    tooltip_pageTTFreeSpaceRight = right;
  }
function setTTFreespaceBottom(bottom)
  {
    tooltip_pageTTFreeSpaceBottom = bottom;
  }
function setTTFreespaceLeft(left)
  {
    tooltip_pageTTFreeSpaceLeft = left;
  }
function setTTFreespaceHV(topbottom, rightleft)
  {
    setTTFreespaceTop(topbottom);
    setTTFreespaceRight(rightleft);
    setTTFreespaceBottom(topbottom);
    setTTFreespaceLeft(rightleft);
  }
function setTTFreespace(top, right, bottom, left)
  {
    setTTFreespaceTop(top);
    setTTFreespaceRight(right);
    setTTFreespaceBottom(bottom);
    setTTFreespaceLeft(left);
  }



function ttPositionFixedTop()
  {
    tooltip_PositionFixedTop  = true;
  }
function ttPositionFixedLeft()
  {
    tooltip_PositionFixedLeft = true;
  }
function ttPositionFixed()
  {
    ttPositionFixedTop();
    ttPositionFixedLeft();
  }
function ttPositionFreeTop()
  {
    tooltip_PositionFixedTop  = false;
  }
function ttPositionFreeLeft()
  {
    tooltip_PositionFixedLeft = false;
  }
function ttPositionFree()
  {
    ttPositionFreeTop();
    ttPositionFreeLeft();
  }
function ttReleasePosition()
  {
    ttPositionFree();
  }
function ttReleaseFixedPosition()
  {
    ttPositionFree();
  }
function setPositionFixedTop(top)
  {
    ttPositionFreeTop();
    setToolTipPositionTop(top);
    ttPositionFixedTop();
  }
function setPositionFixedLeft(left)
  {
    ttPositionFreeLeft();
    setToolTipPositionLeft(left);
    ttPositionFixedLeft();
  }
function setPositionFixed(top, left)
  {
    ttPositionFree();
    setToolTipPosition(top, left);
    ttPositionFixed();
  }



function toolTipDrop()
  {
    toolTipHide()
    tooltip_divid = "";
  }


function toolTipFreeSize()
  {
    toolTipFreeWidth();
    toolTipFreeHeight();
  }


function toolTipFreeWidth()
  {
    tooltip_width = null;
    if(tooltip_ie && document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).style.width = "";
      }
    else if(tooltip_ns4 && document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).width = "";
      }
    else if(tooltip_nsplus && document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).style.width = "";
      }
    else if(document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).style.width = "";
      }
  }


function toolTipFreeHeight()
  {
    tooltip_height = null;
    if(tooltip_ie && document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).style.height = "";
      }
    else if(tooltip_ns4 && document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).height = "";
      }
    else if(tooltip_nsplus && document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).style.height = "";
      }
    else if(document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).style.height = "";
      }
  }


function toolTipSetSize(x_width, y_height)
  {
    toolTipSetWidth(x_width);
    toolTipSetHeight(y_height);
  }


function toolTipSetWidth(x_width)
  {
    tooltip_width = x_width;
    if(tooltip_ie && document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).style.width = x_width+'px';
      }
    else if(tooltip_ns4 && document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).width = x_width+'px';
      }
    else if(tooltip_nsplus && document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).style.width = x_width+'px';
      }
    else if(document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).style.width = x_width+'px';
      }
  }


function toolTipSetHeight(y_height)
  {
    tooltip_height = y_height;

    if(tooltip_ie && document.getElementById(tooltip_divid))
      {
        //document.getElementById(tooltip_divid).style.height = y_height+'px';
        document.getElementById(tooltip_divid).height = y_height+'px';
      }
    else if(tooltip_ns4 && document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).height = y_height+'px';
      }
    else if(tooltip_nsplus && document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).style.height = y_height+'px';
      }
    else if(document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).style.height = y_height+'px';
      }
  }


function toolTipShow(content)
  {
    tooltip_active = true;

    document.getElementById(tooltip_divid).innerHTML = "" + content + "";
    document.getElementById(tooltip_divid).style.visibility = "visible";
  }



function toolTipHide()
  {
    tooltip_active = false;
    setToolTipPosition(0, 0);
    document.getElementById(tooltip_divid).style.visibility = "hidden";
  }


function setToolTipPositionTop(top)
  {
    if(tooltip_ie && document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).style.top = top+'px';
      }
    else if(tooltip_ns4 && document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).top = top+'px';
      }
    else if(tooltip_nsplus && document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).style.top = top+'px';
      }
    else if(document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).style.top = top+'px';
      }
  }
function setToolTipPositionLeft(left)
  {
    if(tooltip_ie && document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).style.left = left+'px';
      }
    else if(tooltip_ns4 && document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).left = left+'px';
      }
    else if(tooltip_nsplus && document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).style.left = left+'px';
      }
    else if(document.getElementById(tooltip_divid))
      {
        document.getElementById(tooltip_divid).style.left = left+'px';
      }
  }
function setToolTipPosition(top, left)
  {
    setToolTipPositionTop(top);
    setToolTipPositionLeft(left);
  }
function toolTipSetPos(e)
  {
    if(tooltip_active)
      {
        if(tooltip_PositionFixedTop && tooltip_PositionFixedLeft) return;

        if( tooltip_ie && document.getElementById(tooltip_divid) )
          {
            var innerHeight = 0;
            if(document.documentElement.clientHeight) innerHeight = document.documentElement.clientHeight;
            else if(document.body.clientHeight)       innerHeight = document.body.clientHeight;

            var innerWidth  = 0;
            if(document.documentElement.clientWidth) innerWidth = document.documentElement.clientWidth;
            else if(document.body.clientWidth)       innerWidth = document.body.clientWidth;

            if(!tooltip_PositionFixedTop)
              {
                if(innerHeight<(event.y+2*tooltip_distCursorTooltipTop+tooltip_height+tooltip_pageTTFreeSpaceBottom)) document.getElementById(tooltip_divid).style.top = (innerHeight-tooltip_distCursorTooltipTop-tooltip_height-tooltip_pageTTFreeSpaceBottom)+'px';
                else                                                                                                  document.getElementById(tooltip_divid).style.top = (event.y + tooltip_distCursorTooltipTop)+'px';
                if(tooltip_pageTTFreeSpaceTop>document.getElementById(tooltip_divid).style.top)                       document.getElementById(tooltip_divid).style.top = tooltip_pageTTFreeSpaceTop+'px';
              }

            if(!tooltip_PositionFixedLeft)
              {
                if(innerWidth<(event.x+2*tooltip_distCursorTooltipLeft+tooltip_width+tooltip_pageTTFreeSpaceRight)) document.getElementById(tooltip_divid).style.left = (innerWidth-tooltip_distCursorTooltipLeft-tooltip_width-tooltip_pageTTFreeSpaceRight)+'px';
                else                                                                                                document.getElementById(tooltip_divid).style.left = (event.x + tooltip_distCursorTooltipLeft)+'px';
                if(tooltip_pageTTFreeSpaceLeft>document.getElementById(tooltip_divid).style.left)                   document.getElementById(tooltip_divid).style.left = tooltip_pageTTFreeSpaceLeft+'px';
              }
          }
        else if( tooltip_ns4 && document.getElementById(tooltip_divid) )
          {
            if(!tooltip_PositionFixedTop)
              {
                if(window.innerHeight<(e.pageY+2*tooltip_distCursorTooltipTop+tooltip_height+tooltip_pageTTFreeSpaceBottom)) document.getElementById(tooltip_divid).top = (window.innerHeight-tooltip_distCursorTooltipTop-tooltip_height-tooltip_pageTTFreeSpaceBottom)+'px';
                else                                                                                                         document.getElementById(tooltip_divid).top = (e.pageY + tooltip_distCursorTooltipTop)+'px';
                if(tooltip_pageTTFreeSpaceTop>document.getElementById(tooltip_divid).top)                                    document.getElementById(tooltip_divid).top = tooltip_pageTTFreeSpaceTop+'px';
              }

            if(!tooltip_PositionFixedLeft)
              {
                if(window.innerWidth<(e.pageX+2*tooltip_distCursorTooltipLeft+tooltip_width+tooltip_pageTTFreeSpaceRight)) document.getElementById(tooltip_divid).left = (window.innerWidth-tooltip_distCursorTooltipLeft-tooltip_width-tooltip_pageTTFreeSpaceRight)+'px';
                else                                                                                                       document.getElementById(tooltip_divid).left = (e.pageX + tooltip_distCursorTooltipLeft)+'px';
                if(tooltip_pageTTFreeSpaceLeft>document.getElementById(tooltip_divid).left)                                document.getElementById(tooltip_divid).left = tooltip_pageTTFreeSpaceLeft+'px';
              }
          }
        else if( tooltip_nsplus && document.getElementById(tooltip_divid) )
          {
            if(!tooltip_PositionFixedTop)
              {
                if(window.innerHeight<(e.pageY+2*tooltip_distCursorTooltipTop+tooltip_height+tooltip_pageTTFreeSpaceBottom)) document.getElementById(tooltip_divid).style.top = (window.innerHeight-tooltip_distCursorTooltipTop-tooltip_height-tooltip_pageTTFreeSpaceBottom)+'px';
                else                                                                                                         document.getElementById(tooltip_divid).style.top = (e.pageY + tooltip_distCursorTooltipTop)+'px';
                if(tooltip_pageTTFreeSpaceTop>document.getElementById(tooltip_divid).style.top)                              document.getElementById(tooltip_divid).style.top = tooltip_pageTTFreeSpaceTop+'px';
              }

            if(!tooltip_PositionFixedLeft)
              {
                if(window.innerWidth<(e.pageX+2*tooltip_distCursorTooltipLeft+tooltip_width+tooltip_pageTTFreeSpaceRight)) document.getElementById(tooltip_divid).style.left = (window.innerWidth-tooltip_distCursorTooltipLeft-tooltip_width-tooltip_pageTTFreeSpaceRight)+'px';
                else                                                                                                       document.getElementById(tooltip_divid).style.left = (e.pageX + tooltip_distCursorTooltipLeft)+'px';
                if(tooltip_pageTTFreeSpaceLeft>document.getElementById(tooltip_divid).style.left)                          document.getElementById(tooltip_divid).style.left = tooltip_pageTTFreeSpaceLeft+'px';
              }
          }
        else if(document.getElementById(tooltip_divid))
          {
            var innerHeight = 0;
            if(document.documentElement.clientHeight) innerHeight = document.documentElement.clientHeight;
            else if(document.body.clientHeight)       innerHeight = document.body.clientHeight;

            var innerWidth  = 0;
            if(document.documentElement.clientWidth) innerWidth = document.documentElement.clientWidth;
            else if(document.body.clientWidth)       innerWidth = document.body.clientWidth;

            if(!tooltip_PositionFixedTop)
              {
                if(innerHeight<(e.pageY+2*tooltip_distCursorTooltipTop+tooltip_height+tooltip_pageTTFreeSpaceBottom)) document.getElementById(tooltip_divid).style.top = (innerHeight-tooltip_distCursorTooltipTop-tooltip_height-tooltip_pageTTFreeSpaceBottom)+'px';
                else                                                                                                  document.getElementById(tooltip_divid).style.top = (e.pageY + tooltip_distCursorTooltipTop)+'px';
                if(tooltip_pageTTFreeSpaceTop>document.getElementById(tooltip_divid).style.top)                       document.getElementById(tooltip_divid).style.top = tooltip_pageTTFreeSpaceTop+'px';
              }

            if(!tooltip_PositionFixedLeft)
              {
                if(innerWidth<(e.pageX+2*tooltip_distCursorTooltipLeft+tooltip_width+tooltip_pageTTFreeSpaceRight)) document.getElementById(tooltip_divid).style.left = (innerWidth-tooltip_distCursorTooltipLeft-tooltip_width-tooltip_pageTTFreeSpaceRight)+'px';
                else                                                                                                document.getElementById(tooltip_divid).style.left = (e.pageX + tooltip_distCursorTooltipLeft)+'px';
                if(tooltip_pageTTFreeSpaceLeft>document.getElementById(tooltip_divid).style.left)                   document.getElementById(tooltip_divid).style.left = tooltip_pageTTFreeSpaceLeft+'px';
              }
          }
      }
  }



if(tooltip_ns4 || tooltip_nsplus)
  {
    document.onmousemove = toolTipSetPos;
  }
else if(!tooltip_ie)
  {
    document.onmousemove = toolTipSetPos;
  }