 // REGISTRATE MOUSEMOVECHANGES AND ACT UPON CHANGES CODEPART!

var mouseY;
var mouseX;
var placementOffsetX = 30;
var placementOffsetY = -50;
var currentInfoCard;

(document.layers)?window.captureEvents(Event.MOUSEMOVE):0;
(document.layers)?window.onMouseMove=getMousePosition:document.onmousemove=getMousePosition;

function getMousePosition(e) {
  mouseY=(document.all)?window.event.y:e.clientY;
  mouseX=(document.all)?window.event.x:e.clientX;
  if(currentInfoCard != null) {
  	currentInfoCard.style.left = mouseX+(document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft)+placementOffsetX+'px';
	currentInfoCard.style.top = mouseY+(document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop)+placementOffsetY+'px';
	}
}



var loadedInfoCards = new Array();
var infoCards = new Array();

httpRequest = getNewRequestElement();

function getInfoCard(id) {
	hideInfoCard();
	currentInfoCard = document.createElement('div');
	currentInfoCard.appendChild(document.createTextNode(""));

	var ajaxcontent = getInfoCardData(id, currentInfoCard);
	
	currentInfoCard.style.color = '#000';
	currentInfoCard.style.position = "absolute";
	currentInfoCard.style.left = mouseX+placementOffsetX+'px';
  currentInfoCard.style.top = mouseY+placementOffsetY+'px';
  document.body.appendChild(currentInfoCard);
}

function getCardIndex(id) {
  for(var i = 0; i< loadedInfoCards.length; i++) {
    if(loadedInfoCards[i] == id) {
      return i;
    }
  }
  return -1;
}

function getInfoCardData(id, infoCard) {
  var cardArrayId = getCardIndex(id);
  if(cardArrayId >= 0) {
     infoCard.innerHTML = infoCards[cardArrayId];
  } else {
    xmlHttp = getNewRequestElement();
    xmlHttp.open("GET", "?f=arrangement&ajax=request&subF=getInfoCard&idArrangement="+id,true);
    xmlHttp.onreadystatechange=function() {
      if (xmlHttp.readyState==4 && xmlHttp.status==200) {
        var response = xmlHttp.responseText;
        loadedInfoCards.push(id);
        infoCards[getCardIndex(id)] = response;
        infoCard.innerHTML = response;
      }
    }
    xmlHttp.send(null)
  }
}

function hideInfoCard() {
	if(currentInfoCard != undefined) {
		currentInfoCard.style.display = 'none';
		document.body.removeChild(currentInfoCard);
		currentInfoCard = undefined;
	}
}
