/*
tooltip.js
door dit bestand te includen en de functie classToDiv aan te passen kan een tooltip worden toegevoegd. Aan een
bepaalde class. In de functie classToDiv staan de koppelingen tussen de class en de tooltip (div). Door hier een de
volgende twee regels toe te voegen.

if (strClass = <naam class>)
	return <naam div>

Word de class gekoppeld aan de bijbehorende div. Deze div moet het id hebben wat bij de return word ingevuld. Deze
div's kunnen naar eigensmaak met een stylesheet worden gemaakt.
*/

document.onmousemove = tooltipCheck

if( document.captureEvents ) {
    if( Event.MOUSEMOVE ) {
        document.captureEvents( Event.MOUSEMOVE )
    }
}

var strClass = ''
var DH = 0
var an = 0
var al = 0
var ai = 0
var oiActief

if (document.getElementById) {
	ai = 1
	DH = 1
} else {
	if (document.all) {
		al = 1
		DH = 1
	} else {
		browserVersion = parseInt(navigator.appVersion)
		if ((navigator.appName.indexOf('Netscape') != -1) && (browserVersion == 4)) {
			an = 1
			DH = 1
		}
	}
}

function classToDiv() {
	if (strClass == 'b')
		return 't1'
	if (strClass == 'o')
		return 't2'
	if (strClass == 's')
		return 't3'
}

function fd(oi, wS) {
	if (ai)
		return wS ? document.getElementById(oi).style:document.getElementById(oi)
	if (al)
		return wS ? document.all[oi].style: document.all[oi]
	if (an)
		return document.layers[oi]
}

function pw() {
	return window.innerWidth != null? window.innerWidth: document.body.clientWidth != null? document.body.clientWidth:null
}

function mouseX(evt) {
	if (evt.pageX)
		return evt.pageX
	else
		if (evt.clientX)
			return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft)
		else
			return null
}

function mouseY(evt) {
	if (evt.pageY)
		return evt.pageY
	else
		if (evt.clientY)
			return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop)
		else
			return null
}

function popUp(evt) {
	var oi = classToDiv()

	if (DH) {
		var wp = pw()
		ds = fd(oi,1)
		dm = fd(oi,0)
		st = ds.visibility
		if (dm.offsetWidth)
			ew = dm.offsetWidth
		else
			if (dm.clip.width)
				ew = dm.clip.width
		if (st == "visible" || st == "show") {
			ds.visibility = "hidden"
		} else {
			tv = mouseY(evt) + 20
			lv = mouseX(evt) - (ew/4)
			if (lv < 2)
				lv = 2
			else if (lv + ew > wp)
				lv -= ew/2
			if (!an) {
				lv += 'px';tv += 'px'
			}
			ds.left = lv
			ds.top = tv
			ds.visibility = "visible"
		}
	}
}

function popUpOut(evt) {
	var oi = classToDiv()

	if (DH) {
		var wp = pw()
		ds = fd(oi,1)
		dm = fd(oi,0)
		st = ds.visibility
		if (dm.offsetWidth)
			ew = dm.offsetWidth
		else
			if (dm.clip.width)
				ew = dm.clip.width
		if (st == "visible" || st == "show") {
			ds.visibility = "hidden"
		} else {
			tv = mouseY(evt) + 20
			lv = mouseX(evt) - (ew/4)
			if (lv < 2)
				lv = 2
			else if (lv + ew > wp)
				lv -= ew/2
			if (!an) {
				lv += 'px';tv += 'px'
			}
			ds.left = lv
			ds.top = tv
			ds.visibility = "hidden"
		}
	}
}

function tooltipCheck(e) {
	var targ

	if (!e)
		e = window.event
	if (e.target)
		targ = e.target
	else if (e.srcElement)
		targ = e.srcElement
	if (targ.nodeType == 3)
		targ = targ.parentNode

	if (e != null) {
		if(targ.className != 'b' && targ.className != 'o' && targ.className != 's') {
			if (strClass != '') {
				popUpOut(e)
				strClass = ''
			}
		} else {
			if (targ.className != strClass) {
				if (strClass != '') {
					popUpOut(e)
					strClass = targ.className
					popUp(e)
				} else {
					strClass = targ.className
					popUp(e)
				}
			}
		}
	}
}