document.onmousemove = mouseMove;

var IE = document.all && !window.opera;
var DOM = document.getElementById && !IE;

var mouseX = 0;
var mouseY = 0;

var ieBody = null;

function getIEBody() {
  if(!IE)
    return;

  if(window.document.compatMode == "CSS1Compat") 
    ieBody = window.document.documentElement;
  else 
    ieBody = window.document.body;
  
}


function mouseMove(ev) {
  getIEBody();
  mouseX = (IE) ? window.event.clientX + ((ieBody) ? ieBody.scrollLeft : 0) : ev.pageX;
  mouseY = (IE) ? window.event.clientY + ((ieBody) ? ieBody.scrollTop : 0) : ev.pageY;
}

var openElement = null;


function donothing(a) { }

/**
 * Toggle visibility of element id and hide a another open element (openElement)
 */
function toggleDisplay(elem) {
  if(elem.style.display != "block") {
    if(openElement != null && openElement.id != elem.id) 
      openElement.style.display = "none";

    elem.style.display = "block";
    openElement = elem;
  }
  else {
    elem.style.display = "none";
    openElement = null;
  }
}

function rePosX(elem, left, noNegative) {
  var newXPos = mouseX;

  if(left) 
    newXPos = newXPos - elem.offsetWidth;

  if(noNegative && newXPos < 0) 
    newXPos = 0;

  newXPos = newXPos;

  elem.style.left = newXPos + 'px';

}

function rePosY(elem, setTop, noNegative) {
  var newYPos = mouseY;

  if(setTop) 
    newYPos = newYPos - elem.offsetHeight;

  if(noNegative && newYPos < 0) 
    newYPos = 0;

  newYPos = newYPos;

  elem.style.top = newYPos + 'px'; 
}

/**
 * News article toggle
 */
function toggleShowNewsArticle(id, aTag) {

  if(IE) aTag.setAttribute("href", "javascript:;");

  var elemId = 'news-article' + id;
  var elem = document.getElementById(elemId);

  toggleDisplay(elem);

  rePosX(elem, true, true);
  rePosY(elem, true, true);

  if(IE && event) event.returnValue = false;

  return false;
}

/**
 * Person details toggleing
 */
function toggleShowPersonDetails(id, aTag) {

  if(IE) aTag.setAttribute("href", "javascript:;");

  var elemId = 'vcard-details-person' + id;
  var elem = document.getElementById(elemId);

  toggleDisplay(elem);

  rePosX(elem, true, true);
  rePosY(elem, false, true);

  if(IE && event) event.returnValue = false;
  return false;
}

function toggleShowRundgang(id, aTag) {

  if(IE) aTag.setAttribute("href", "javascript:;");

  var elemId = 'rundgang-detail' + id;
  var elem = document.getElementById(elemId);

  toggleDisplay(elem);

 // rePosX(elem, true, true);
 // rePosY(elem, false, true);

  if(IE && event) event.returnValue = false;
  return false;
}

