var enableCache = true;
var jsCache = new Array();
var ajaxObjects = new Array();

var lexiconObject = false;
var lexiconObject_iframe = false;
var lexiconObject_IE = false;
if (navigator.userAgent.indexOf('MSIE') >= 0)
	lexiconObject_IE = true;

function showContent(divId,objectIndex,url) {
	document.getElementById(divId).innerHTML = ajaxObjects[objectIndex].response;
	if(enableCache){
		jsCache[url] = 	ajaxObjects[objectIndex].response;
	}
	ajaxObjects[objectIndex] = false;

}

function loadContent(divId,url) {
	if(enableCache && jsCache[url]){
		document.getElementById(divId).innerHTML = jsCache[url];
		return;
	}
		
	var objectIndex = ajaxObjects.length;
	document.getElementById(divId).innerHTML = 'Eintrag wird geladen ...';
	ajaxObjects[objectIndex] = new sack();
	ajaxObjects[objectIndex].requestFile = url;
	ajaxObjects[objectIndex].onCompletion = function() { 
		showContent(divId,objectIndex,url); 
	};
	ajaxObjects[objectIndex].runAJAX();
	
}

function showEntry(uid,inputObj) {

	if (!lexiconObject) {
	
		lexiconObject = document.createElement('div');
		lexiconObject.style.position = 'absolute';
		lexiconObject.style.display = 'block';
		lexiconObject.id = 'lexiconObject';		
		document.body.appendChild(lexiconObject);
		
		var arrowDiv = document.createElement('div');
		arrowDiv.className = 'lexiconObject_arrow';
		arrowDiv.id = 'lexiconObject_arrow';
		lexiconObject.appendChild(arrowDiv);
		
		var contentDiv = document.createElement('div');
		contentDiv.className = 'lexiconObject_content';
		contentDiv.id = 'lexiconObject_content';
		lexiconObject.appendChild(contentDiv);

		
		if(lexiconObject_IE) {
			lexiconObject_iframe = document.createElement('<iframe frameborder="0">');
			lexiconObject_iframe.style.position = 'absolute';
			lexiconObject_iframe.border='0';
			lexiconObject_iframe.frameborder=0;
			lexiconObject_iframe.style.backgroundColor='#fff';
			lexiconObject_iframe.src = 'about:blank';
			lexiconObject_iframe.style.left = '0';
			lexiconObject_iframe.style.top = '0';
			contentDiv.appendChild(lexiconObject_iframe);
		}

			
	}
	
	lexiconObject.style.display='block';
	loadContent('lexiconObject_content','index.php?id=5361&type=555&tx_sdlexicon_pi1[uid]='+uid);
	if(lexiconObject_IE){
		lexiconObject_iframe.style.width = lexiconObject.clientWidth + 'px';
		lexiconObject_iframe.style.height = lexiconObject.clientHeight + 'px';
	}

	positionEntry(inputObj);
}

function positionEntry(inputObj) {
	var leftPos = (getLeftPos(inputObj) + inputObj.offsetWidth);
	var topPos = getTopPos(inputObj);
	

	var tooltipWidth = document.getElementById('lexiconObject_content').offsetWidth +  document.getElementById('lexiconObject_arrow').offsetWidth; 

	lexiconObject.style.left = leftPos + 'px';
	lexiconObject.style.top = topPos + 'px';
	
}

function getTopPos(inputObj) {		
	var returnValue = inputObj.offsetTop;
	while((inputObj = inputObj.offsetParent) != null) {
		if(inputObj.tagName!='HTML')returnValue += inputObj.offsetTop;
	}
	return returnValue;
}

function getLeftPos(inputObj) {
	var returnValue = inputObj.offsetLeft;
	while((inputObj = inputObj.offsetParent) != null){
		if(inputObj.tagName!='HTML')returnValue += inputObj.offsetLeft;
	}
	return returnValue;
}

function hideEntry() {
	lexiconObject.style.display='none';
}               