var oDivTarget = null;
var msgBoxTimer = null;

function mouseOver_popup(objMe, sMessage) {
  clearTimeout(msgBoxTimer);
  var oPosition = _fGetPosition(objMe);

  oDivTarget.style.left = oPosition.x -280 + 'px';
  oDivTarget.style.top  = oPosition.y -72 + 'px';
  oDivTarget.style.position = 'absolute';

  var objMsgbox =document.getElementById('Msgbox');
  if (!objMsgbox) {
    var objMsgbox = document.createElement('div');
    objMsgbox.id = 'Msgbox';
    objMsgbox.style.background = 'url(../img/common/popupbg.gif)';
    objMsgbox.style.backgroundRepeat='no-repeat';
    objMsgbox.style.filter = 'alpha(opacity=100)';
    objMsgbox.style.opacity = '1';
    objMsgbox.style.width = '303px';
    objMsgbox.style.height = '92px';
    objMsgbox.style.position = 'absolute';
    objMsgbox.onmouseover = function () {
      clearTimeout(msgBoxTimer);
    }

    objMsgbox.onmouseout = function () {
      mouseOver_Remove();
    }
  } else {
    objMsgbox.innerHTML = '';
  }

  var objContents = createP_MsgboxContents(sMessage);
  objMsgbox.appendChild(objContents);
  oDivTarget.appendChild(objMsgbox);
}

function mouseOver_Remove() {
  msgBoxTimer = setTimeout("removePopout()", 300);
}

function removePopout() {
  var objMsgbox =document.getElementById('Msgbox');
  if (objMsgbox) {
    oDivTarget.removeChild(objMsgbox);
  }
}

function createP_MsgboxContents(sMessage) {
  var objReturn = document.createElement('p');
  objReturn.id = 'MsgboxContents';
  objReturn.style.margin = '10px 15px';
  objReturn.style.width = '250px';
  objReturn.style.textAlign = 'left';
  objReturn.style.fontWeight = 'bold';
  objReturn.style.fontSize   = '12px';
  objReturn.style.color = '#000000';
  objReturn.innerHTML = sMessage;
  return objReturn;
}

function setDivText(sID, sText) {
  document.getElementById(sID).innerHTML = sText;
}

function _fGetPosition(e) {
  var left = 0;
  var top  = 0;

  if (e==null) return false;
  while (e.offsetParent){
    left += e.offsetLeft;
    top  += e.offsetTop;
    e     = e.offsetParent;
  }

  left += e.offsetLeft;
  top  += e.offsetTop;

  return {x:left, y:top};
}
