var thisRef = null;
var ie5 = (document.all && document.getElementById);
var ns6 = (!document.all && document.getElementById);
var opac = 0;
var fadingIn = false;
var fadingOut = false;
var thisURL = '';
var thisDIV = '';
var paintTT = false;
var timeOut = null;
var DivWidth = 0;
var xPos = 0;
var yPos = 0;

document.onmousedown = getPosOnClick;
//document.onmousemove = getPos;

function getPos(e) {
	return;
	xPos = (document.all) ? parseInt(window.event.x + document.body.scrollLeft) : parseInt(e.pageX);
	yPos = (document.all) ? parseInt(window.event.y + document.body.scrollTop)	: parseInt(e.pageY);
}

function getPosOnClick(e) {
	if (!e)
		e = window.event;
	xPos = e.clientX - absLeft(document.getElementById('content').offsetParent);
	yPos = e.clientY - absTop(document.getElementById('content').offsetParent);
}

function updateTT(e) {
	var DivRef = document.getElementById(thisDIV);
	var IfrRef = document.getElementById('iFrameTT');
	var sDIV = arrTT[e.id]['sDIV'];
	var x = xPos;
	var y = yPos;
	if (DivRef != null) {
		var addY = getScrollPos();
		var maxWidth;
		var maxHeight;
		var arrScreen = getScreenInfo();
		var offset_left = absLeft(document.getElementById('content'));
		var offset_top = absTop(document.getElementById('content'));

		maxWidth = arrScreen['client']['width'];
		maxHeight = arrScreen['client']['height'];

		var total_y = y + parseInt(DivRef.style.height) + parseInt(addY);
		var total_x = x + parseInt(DivRef.style.width) + 10;

		total_x >= maxWidth ? x -= total_x - maxWidth : 0;
		total_y + 10 + 16 >= maxHeight ? y -= total_y + 10 + 16 - maxHeight : 0;
		DivRef.style.left = x - offset_left + 'px';
		DivRef.style.top 	= (y + 16 + addY) - offset_top + 'px';
		IfrRef.style.top = DivRef.style.top;
		IfrRef.style.left = DivRef.style.left;
	}
}

function showTT() {
	paintTT = true;
	var sDIV = arrTT[this.id]['sDIV'];
	var sURL = arrTT[this.id]['sURL'];
	var DivRef = document.getElementById(sDIV);
	var IfrRef = document.getElementById('iFrameTT');
	var IfrCRef = document.getElementById('iFrameContent');
	thisDIV = sDIV;
	if (sDIV == 'TT') {
		document.getElementById('rechtsgebiete') ? document.getElementById('rechtsgebiete').style.display = 'none' : 0;
		sURL != thisURL ? IfrCRef.src = 'about:blank' : 0;
	} else {
		document.getElementById('TT') ? document.getElementById('TT').style.display = 'none' : 0;
	}
	parent.document.getElementById('div_loading') ? parent.document.getElementById('div_loading').innerHTML = 'Lade...' : 0;
	thisRef = this;
	thisURL = sURL;
	updateTT(this);
	timeOut = setTimeout('doTT()', 100);
}

function doTT() {
	if (paintTT) {
		var DivRef = document.getElementById(thisDIV);
		DivSetVisible(true, 0);
	}
}

function hideTT() {
	if (!paintTT) {
		document.onclick = null;
		fadingIn = false;
		if (thisRef != null) thisRef.style.cursor = 'auto';
		DivSetVisible(false, 100);
	}
}

function fadeIn() {
	var DivRef = document.getElementById(thisDIV);
	if (fadingIn && !fadingOut) {
		if(opac == 100) { // FadeIn deaktiviert, da in FF fehlerhaft und in Opera Haenger
			opac+=20;
			if(ie5) DivRef.filters.alpha.opacity = opac;
			if(ns6) DivRef.style.MozOpacity = opac/100;
			timeOut = setTimeout('fadeIn()', 5);
		} else {
			if(ie5) DivRef.filters.alpha.opacity = 100;
			if(ns6) DivRef.style.MozOpacity = 1;
			fadingIn = false;
			paintTT = false;
			var IfrCRef = document.getElementById('iFrameContent');
			IfrCRef.src != thisURL ? IfrCRef.src = thisURL : 0;
			IfrCRef.style.display = 'block';
			DivRef.style.display = 'block';
			//document.onmousemove = null;
			catchClick();
		}
	} else
		fadingIn = false;
}

function fadeOut() {
	var DivRef = document.getElementById(thisDIV);
	var IfrRef = document.getElementById('iFrameTT');
	if (!fadingIn) {
		if(opac > 0) {
			opac-=10;
			if (opac < 0) opac = 0;
			if(ie5) DivRef.filters.alpha.opacity = opac;
			if(ns6) DivRef.style.MozOpacity = opac/100;
			timeOut = setTimeout('fadeOut()', 5);
		} else {
			paintTT = false;
			fadingOut = false;
			IfrRef.style.display = 'none';
			DivRef.style.display = 'none';
		}
	}
}

function DivSetVisible(state, tout) {
	var DivRef = document.getElementById(thisDIV);
	var IfrRef = document.getElementById('iFrameTT');
	if(state) {
		DivRef.style.display = 'block';
		IfrRef.style.width = DivRef.offsetWidth;
		IfrRef.style.height = DivRef.offsetHeight;
		IfrRef.style.top = DivRef.style.top;
		IfrRef.style.left = DivRef.style.left;
		IfrRef.style.zIndex = DivRef.style.zIndex - 1;
		IfrRef.style.display = 'block';
		fadingIn = true;
		fadeIn();
	} else {
		fadingOut = true;
		timeOut = setTimeout('fadeOut()', tout);
	}
}

