function isMouseLeaveOrEnter(e, handler)
{		
	if (e.type != 'mouseout' && e.type != 'mouseover') return false;
	var reltg = e.relatedTarget ? e.relatedTarget :
	e.type == 'mouseout' ? e.toElement : e.fromElement;
	while (reltg && reltg != handler) reltg = reltg.parentNode;
	return (reltg != handler);
}

function dock(id) {

	var construct = eval(this);
	this.obj = document.getElementById(id);
	this.maxWidth = 100;
	this.minWidth = 50;
	this.maxDist = 200;
	this.IE  = document.all ? true : false;	
	
	this.obj.onmousemove = move;
	
	if (this.IE) {
		this.obj.onmouseleave = mouseOut;
	} else {
		this.obj.onmouseout = function(event) {
			if (isMouseLeaveOrEnter(event, this)) {
				mouseOut();
			}
		}	
	}
	this.onElem = false;
	
	this.dockElems = new Array();
	for (var i = 0; i < construct.obj.childNodes.length; i++) {
		if (construct.obj.childNodes[i].tagName == "A") {
			construct.dockElems.push(construct.obj.childNodes[i])
		}
	}
	
	
	function move(e) {
			var curleft = 0;
			var tempObj = construct.obj
			if (tempObj.offsetParent) {
				do {
					curleft += tempObj.offsetLeft;
				} while (tempObj = tempObj.offsetParent);
			}
			if (construct.IE) {
				curleft = event.clientX - curleft;
			} else {
				curleft = e.pageX - curleft;
			}
		if (curleft < construct.dockElems[0].offsetLeft) {
			mouseOut();
		} else if (curleft > (construct.dockElems[construct.dockElems.length-1].offsetLeft + construct.dockElems[construct.dockElems.length-1].offsetWidth)) {
			mouseOut();
		} else {
			
			for (var i = 0; i < construct.dockElems.length; i++) {
				var knop = construct.dockElems[i];
				var afstand = Math.round(Math.abs(curleft - (knop.offsetLeft + knop.offsetWidth / 2)));
	
				var prop = (construct.maxWidth - construct.minWidth) / construct.maxDist;

		
				if (afstand > construct.maxDist) {
					knop.childNodes[2].style.width = construct.minWidth + "px";
				} else {
					knop.childNodes[2].style.width = construct.minWidth + (construct.maxDist - afstand) * prop + "px";
				}
			
			}
		}
	
	}
	
	function mouseOut() {
		for (var i = 0; i < construct.dockElems.length; i++) {
			construct.dockElems[i].childNodes[2].style.width = construct.minWidth + "px";
		}
	}
}