var tooltips_js_loaded;
if(!tooltips_js_loaded) {
	tooltips_js_loaded = true;
	var showing; // current showing element
	
	// Find the position of a HTML element
	// (also used in users.js)
	function position(obj) {
		var curleft = curtop = 0;
		if (obj.offsetParent) {
			do {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			}
			while (obj = obj.offsetParent);
		}
		return [curleft,curtop];
	}
	
	
	// Hide the tooltip
	function hide() {
		tt.style.top = tt.style.left = -1000;
		showing = false;
	}
	
	// Show the tooltip at the moused over object
	// (this is called from the element's onmouseover)
	function show(e) {
		if(!e) e = window.event;
		obj = e.target ? e.target : event.srcElement;
		
		if(!obj.tooltip) {
			obj = obj.parentNode;
			if(!obj.tooltip) return;
		}
		if(showing==obj) return;
		
		pos = position(obj);
		x=pos[0]; y=pos[1];
		
		tt.innerHTML = obj.tooltip;
		
		if(tt.offsetHeight) {
			y -= tt.offsetHeight + 3;
			x -= 5;
		}
		
		obj.title = "";
		// Adjust coordinates if out of window
		if(x + tt.offsetWidth + 20 > document.body.offsetWidth) {
			x = document.body.offsetWidth - tt.offsetWidth;
			// Substract some more for IE because of Padding
			if(navigator.userAgent.toLowerCase().indexOf('msie') != -1) 
				x -= 24;
		}
		if(y<window.pageYOffset || y<document.body.scrollTop) y = pos[1]+16;
		
		tt.style.left = x; 
		tt.style.top = y;
		
		showing = obj;
	}
	
	function docmover(e) {
		if(showing) {
			if(!e) e = window.event;
			obj = e.target ? e.target : e.srcElement;
			
			// Hide if we move away from the element. 
			// Except if we're in its child (such as a select's option)
			if(obj != showing && obj.parentNode != showing) {
				hide();
			}
		}
	}
	
	
	
	// Functions are now defined. Initialise everything now. 
	document.onmouseover = docmover;
	
	// Create tooltip element 
	document.writeln('<div id="tooltip" class="neutral"></div>');
	
	var tt = document.getElementById('tooltip');
	tt.onmouseover = hide;
	
	function setTooltips() {
		// Iterate over EVERY element on this page
		tags = document.getElementById('con').getElementsByTagName("*");
		for(var i=0; i < tags.length; i++) {
			// if the element has a title attribute, and is not a dropdown's 'option' element
			// (because we don't want to override the main dropdown's tooltip)
			if(tags[i].title && tags[i].title.length > 0 && tags[i].tagName.toLowerCase()!="option") {
				setTooltip(tags[i]);
			}
		}
	}
	
	function setTooltip(obj) {
		obj.tooltip = obj.title.replace(/\n/g, "<br/>");
		obj.title = "";
		obj.onmouseover = show;
		childs = obj.getElementsByTagName("*");
		for(var j=0; j < obj.length; j++) {
			if(!obj.tooltip && !obj.title) childs[j] = show;
		}
	}
	
	// Render the page first.. then do this. 
	setTimeout('setTooltips()', 5);
}


/**  Auto-logout with warning **/
var reloader, reloadnow, reloadcounter;
var time2warn = 1200, time2lout=120;
function setReloader(timeout) {
	clearTimeout(reloadnow); clearInterval(reloadcounter); clearTimeout(reloader);
	
	reloader = window.setTimeout(after20mins, ((+timeout ? +timeout : time2warn)+1)*1000); // 20 minutes (and 1 second)
}
function after20mins() {
	// Check whether the 'lastactivity' was indeed over 20 minutes ago
	$.get('http://login.forte.eu/?p=lastactivity', startCountdown);
}
function startCountdown(la) {
	if(la>=time2warn) {
		var secs = time2lout;
		// Set timeout to reload in 2 minutes
		reloadnow = window.setTimeout(function(){
			location.href = location.href + 
				(location.href.indexOf('autoload=1')>0 ? '':
					(location.href.indexOf('?')>0 ? '&' : '?') +'autoload=1');
		}, secs*1000);
		
		// Show a way to cancel the timeout
		if($("#logoutwarning").size() == 0) {
			$("#con").append('<div id="logoutwarning">Opgelet: u wordt binnen <span>'+secs+'</span> seconden automatisch uitgelogd, <br/>omdat u al 20 minuten geen nieuwe pagina\'s hebt geladen. <br/><br/>Wilt u dit verhinderen, klik hieronder dan op "Verder werken". <br/><br/><input type="button" value="Verder werken"/></div>').show();
		}
		else $("#logoutwarning").show().find("span").text(secs);
		
		reloadcounter = window.setInterval(function(){
			$("#logoutwarning span").text(--secs);
		}, 1000);
		
		$("#logoutwarning input").click(function(){
			$("#logoutwarning").hide();
			$.get('http://login.forte.eu/?p=keepsession', setReloader);  // refresh session
		});
	}
	else setReloader(time2warn-la);
}
setReloader();