var ttXpos = 0, ttYpos = 0;
var ttXadd = -5, ttYadd = 0;
var ttDisplay = 0, ttHoldIt = 0;
// Check if browser does support dynamic content and dhtml
var ttNS4 = (document.layers) ? 1 : 0;           // the old Netscape 4
var ttIE4 = (document.all) ? 1 : 0;              // browser wich uses document.all
var ttDOM = (document.getElementById) ? 1 : 0;   // DOM-compatible browsers
if (ttDOM) { // if DOM-compatible, set the others to false
    ttNS4 = 0;
    ttIE4 = 0;
}

var myTooltipContainer = null;
var myTooltipContent = null;

if ( (ttDOM) || (ttIE4) || (ttNS4) ) {
    // mouse-event
    if ( ttNS4 ) {
        document.captureEvents(Event.CLICK);
    } else {
        document.onclick = click;
    }
}


/**
 * @var integer
 */
var ttTimerID = 0;
    var x = 0, y = 0;


/**
 * swap the Tooltip // show and hide
 *
 * @param boolean stat view status
 */
function swapTooltip(stat) {
    if (ttHoldIt!=1) {
        if (stat!='default') {
            if (stat=='true')
                showTooltip(true);
            else if (stat=='false')
                showTooltip(false);
        } else {
            if (ttDisplay)
                ttTimerID = setTimeout("showTooltip(false);",500);
            else
                showTooltip(true);
        }
    } else {
        if (ttTimerID) {
           clearTimeout(ttTimerID);
           ttTimerID = 0;
        }
        showTooltip(true);
    }
}

/**
 * show / hide the Tooltip
 *
 * @param boolean stat view status
 */
function showTooltip(stat) {
    if (stat==false) {
        if (ttNS4)
            myTooltipContainer.visibility = "hide";
        else
            myTooltipContainer.style.visibility = "hidden";
        ttDisplay = 0;
    } else {
        if (ttNS4)
            myTooltipContainer.visibility = "show";
        else
            myTooltipContainer.style.visibility = "visible";
        ttDisplay = 1;
    }
}
/**
 * hold it, if we create or move the mouse over the tooltip
 */
function holdTooltip() {
    ttHoldIt = 1;
    swapTooltip('true');
    ttHoldIt = 0;
}
function closett() {
    ttDisplay = 0;
    showTooltip('false');
    moveTooltip(-1000,-1000);
}

/**
 * move the tooltip to mouse position
 *
 * @param integer posX    horiz. position
 * @param integer posY    vert. position
 */
function moveTooltip(posX, posY) {
    if (ttDOM || ttIE4) {
        myTooltipContainer.style.left        =        posX + "px";
        myTooltipContainer.style.top  =        posY + "px";
    } else if (ttNS4) {
        myTooltipContainer.left = posX;
        myTooltipContainer.top  = posY;
    }
}

/**
 * build the tooltip
 *
 * @param    string    theText    tooltip content
 */
function pmaTooltip( theText ) {
    // reference to TooltipContainer
    if ( null == myTooltipContainer ) {
        if (ttNS4) {
            myTooltipContainer = document.TooltipContainer;
            myTooltipContent = document.TooltipContent;
        } else if (ttIE4) {
            myTooltipContainer = document.all('TooltipContainer');
            myTooltipContent = document.all('TooltipContent');
        } else if (ttDOM) {
            myTooltipContainer = document.getElementById('TooltipContainer');
            myTooltipContent = document.getElementById('TooltipContent');
        } else {
            return;
        }

        if ( typeof( myTooltipContainer ) == 'undefined' ) {
            return;
        }
    }

    var plusX=0, plusY=0, docX=0, docY=0;
    var divHeight = myTooltipContainer.clientHeight;
    var divWidth  = myTooltipContainer.clientWidth;
    if (navigator.appName.indexOf("Explorer")!=-1) {
        if (document.documentElement && document.documentElement.scrollTop) {
            plusX = document.documentElement.scrollLeft;
            plusY = document.documentElement.scrollTop;
            docX = document.documentElement.offsetWidth + plusX;
            docY = document.documentElement.offsetHeight + plusY;
        } else {
            plusX = document.body.scrollLeft;
            plusY = document.body.scrollTop;
            docX = document.body.offsetWidth + plusX;
            docY = document.body.offsetHeight + plusY;
        }
    } else {
        docX = document.body.clientWidth;
        docY = document.body.clientHeight;
    }


    if (navigator.appName.indexOf("Explorer")!=-1)
      {
            plusX = document.body.scrollLeft;
            plusY = document.body.scrollTop;
            docX = document.body.offsetWidth + plusX;
            docY = document.body.offsetHeight + plusY;
//            window.alert("Hi! I'm IE!!!");
      }

    if (navigator.appName.indexOf("Opera")!=-1)
      {
            plusX = document.body.scrollLeft;
            plusY = document.body.scrollTop;
//            window.alert("Hi! I'm Opera!!!");
      }

    x = ttXpos + plusX;
    y = ttYpos + plusY;


    if ((x + divWidth) > docX)
        x = x - (divWidth + (ttXadd * 2));
    if ((y + divHeight) > docY)
        y = y - (divHeight + (ttYadd * 2));



//    textTooltip(theText + '<br><br>x: '+x+'<br>y: '+y+'<br>' + '<br>sdocX: '+docX+'<br>docy: '+docY+'<br>'+navigator.appName);

    textTooltip(theText);

//    alert((x + ttXadd)+','+(y + ttYadd));
    moveTooltip((x + ttXadd), (y + ttYadd));
    x=0;
    holdTooltip();
}




//=============================================================================
function textTooltip(theText) {
  var a=theText.toString();

    if(a.length == 4)
     theText=loadHTML("/getinfo/getinfo.php?userid="+theText);
    else
     theText=loadHTML("/getinfo/newfoto.php");

    if        (ttDOM || ttIE4) {                   // document.getEelementById || document.all
        myTooltipContent.innerHTML = theText;  // we should empty it first
    }    else if (ttNS4) {                     // document.layers
        var layerNS4 = myTooltipContent.document;
        layerNS4.write(theText);
        layerNS4.close();
    }

}

function loadHTML(sURL)
{
  var request=null;

  // пытаемся создать объект для MSXML 2 и старше
  if(!request) try {
    request=new ActiveXObject('Msxml2.XMLHTTP');
  } catch (e){}

  // не вышло... попробуем для MSXML 1
  if(!request) try {
    request=new ActiveXObject('Microsoft.XMLHTTP');
  } catch (e){}

  // не вышло... попробуем для Mozilla
  if(!request) try {
    request=new XMLHttpRequest();
  } catch (e){}

  if(!request)
    // ничего не получилось...
    return "";

  // делаем запрос
  request.open('GET', sURL, false);
  request.send(null);

  // возвращаем текст
  return request.responseText;
}




/**
 * register mouse moves
 *
 * @param    event    e
 */
function click(e) {
    if ( typeof( event ) != 'undefined' ) {
        ttXpos = event.x;
        ttYpos = event.y;
    } else {
        ttXpos = e.pageX;
        ttYpos = e.pageY;
    }
    x = ttXpos;
    y = ttYpos;
}

