

var tooltip4={
 pauzeVoorVerbergen: 200,
 linkUitschakelen: true,
 ajaxLaadTekst: "Bezig met inladen van de server ...",
 ajaxbustcache: true, //Bust cache when fetching pages?

	plaatsBepalen:function(what, offsettype){
		return (what.offsetParent)? what[offsettype]+this.plaatsBepalen(what.offsetParent, offsettype) : what[offsettype]
	},

	isContained:function(m, e){
		var e=window.event || e
		var c=e.relatedTarget || ((e.type=="mouseover")? e.fromElement : e.toElement)
		while (c && c!=m)try {c=c.parentNode} catch(e){c=m}
		if (c==m) return true;
		else return false
	},

	tonen:function(ankerObject, subobj, e){
		if (!this.isContained(ankerObject, e)){
			var horizontaloffset=(subobj.dropPositie[0]=="left")? -(subobj.offsetWidth-ankerObject.offsetWidth) : 0 
			var verticaloffset=(subobj.dropPositie[1]=="top")? -subobj.offsetHeight : ankerObject.offsetHeight
			subobj.style.left=this.plaatsBepalen(ankerObject, "offsetLeft") + horizontaloffset + "px"
			subobj.style.top=this.plaatsBepalen(ankerObject, "offsetTop")+verticaloffset+"px"
			subobj.style.clip=(subobj.dropPositie[1]=="top")? "rect(auto auto auto 0)" : "rect(0 auto 0 0)"
			subobj.style.visibility="visible"
			subobj.startTijd=new Date().getTime()
			subobj.inhoudHoogte=parseInt(subobj.offsetHeight)
			if (typeof window["verbergTimer_"+subobj.id]!="undefined")
				clearTimeout(window["verbergTimer_"+subobj.id])
			this.schuifMachine(subobj, (subobj.dropPositie[1]=="top")? "up" : "down")
		}
	},

	aanpassing:function(percent){
		return (1-Math.cos(percent*Math.PI)) / 2
	},

	schuifMachine:function(obj, richting){
		var elapsed=new Date().getTime()-obj.startTijd
		if (elapsed<obj.schuifTijd){ //if time run is less than specified length
			var distancepercent=(richting=="down")? this.aanpassing(elapsed/obj.schuifTijd) : 1-this.aanpassing(elapsed/obj.schuifTijd)
			var currentclip=(distancepercent*obj.inhoudHoogte)+"px"
			obj.style.clip=(richting=="down")? "rect(0 auto "+currentclip+" 0)" : "rect("+currentclip+" auto auto 0)"
			window["schuifTijdr_"+obj.id]=setTimeout(function(){tooltip4.schuifMachine(obj, richting)}, 10)
		}
		else{ 
			obj.style.clip="rect(0 auto auto 0)"
		}
	},

	verbergen:function(activeobj, subobj, e){
		if (!tooltip4.isContained(activeobj, e)){
			window["verbergTimer_"+subobj.id]=setTimeout(function(){
				subobj.style.visibility="hidden"
				subobj.style.left=subobj.style.top=0
				clearTimeout(window["schuifTijdr_"+subobj.id])
			}, tooltip4.pauzeVoorVerbergen)
		}
	},

	ajaxVerbinding:function(pageurl, divId){
		var page_request = false
		var bustcacheparameter=""
		if (window.XMLHttpRequest)
			page_request = new XMLHttpRequest()
		else if (window.ActiveXObject){
			try {
			page_request = new ActiveXObject("Msxml2.XMLHTTP")
			} 
			catch (e){
				try{
				page_request = new ActiveXObject("Microsoft.XMLHTTP")
				}
				catch (e){}
			}
		}
		else
			return false
		document.getElementById(divId).innerHTML=this.ajaxLaadTekst
		page_request.onreadystatechange=function(){tooltip4.loadpage(page_request, divId)}
		if (this.ajaxbustcache) //if bust caching of external page
			bustcacheparameter=(pageurl.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
		page_request.open('GET', pageurl+bustcacheparameter, true)
		page_request.send(null)
	},

	loadpage:function(page_request, divId){
		if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
			document.getElementById(divId).innerHTML=page_request.responseText
		}
	},

 init:function(ankerId, plaats, schuifTijd){
		var ankerObject=document.getElementById(ankerId)
		var subobj=document.getElementById(ankerObject.getAttribute("rel"))
		var subobjBron=ankerObject.getAttribute("rev")
		if (subobjBron!=null && subobjBron!="")
			this.ajaxVerbinding(subobjBron, ankerObject.getAttribute("rel"))
		subobj.dropPositie=plaats.split("-")
		subobj.schuifTijd=schuifTijd || 1000
		subobj.style.left=subobj.style.top=0
		ankerObject.onmouseover=function(e){tooltip4.tonen(this, subobj, e)}
		ankerObject.onmouseout=function(e){tooltip4.verbergen(subobj, subobj, e)}
		if (this.linkUitschakelen) ankerObject.onclick=function(){return false}
		subobj.onmouseout=function(e){tooltip4.verbergen(this, subobj, e)}
	}
}