function tooltipShowTooltip( event, brick, object ){
	if ( !event ) event = window.event;
	document.currentTooltip = document.getElementById(brick);
	
	if ( object ) {
		object.parentNode.onclick();
	}

	//MT Q&D 27.11.2007
	x = document.getElementsByTagName("a").length;
	for (y=0;y<x;y++) {
		document.getElementsByTagName("a")[ y].style.cursor = 'default';
	}
	
	tooltipRegisterEvent(event, 'mousemove', tooltipMove);
	tooltipCancelPropagation(event);
	document.currentTooltip.style.zIndex = "1000";
	document.currentTooltip.style.visibility = "visible";
	if ( document.all ) {
		windowHeight = document.body.offsetHeight;
		windowWidth = document.body.offsetWidth;
	} else {
		windowHeight = window.innerHeight;
		windowWidth = window.innerWidth;	
	}
	document.currentTooltip.windowHeight = windowHeight;
	document.currentTooltip.windowWidth = windowWidth;
	
	
	
	tooltipPosition(event);
}

function tooltipHideTooltip( event, brick ){
	if ( !event ) event = window.event;
	tooltipUnRegisterEvent(event, 'mousemove', tooltipMove);
	tooltipCancelPropagation(event);
	document.currentTooltip.style.visibility = "hidden";
	document.currentTooltip = '';
	
	//MT Q&D 27.11.2007
	x = document.getElementsByTagName("a").length;
	for (y=0;y<x;y++) {
		document.getElementsByTagName("a")[ y].style.cursor = 'auto';
	}
	
}


function tooltipMove( event ){
	if ( !event ) event = window.event;
	tooltipCancelPropagation(event);
	tooltipPosition( event );
}

function tooltipPosition( event ){
	offsetX = -20;
	offsetY = 10;
	if ( document.all ) {
		clickX = event.x+document.body.scrollLeft;
		clickY = event.y+document.body.scrollTop;
	} else {
		clickX = event.pageX;
		clickY = event.pageY;
	}
	tooltipLeft = clickX+offsetX;
	visibleSpaceX = (document.currentTooltip.windowWidth - (clickX - document.body.scrollLeft));
	if ( visibleSpaceX < (document.currentTooltip.offsetWidth + offsetX + 40) ) tooltipLeft = tooltipLeft - ((document.currentTooltip.offsetWidth + offsetX + 40) - visibleSpaceX);

	tooltipTop = (clickY-offsetY-document.currentTooltip.offsetHeight);
	visibleSpaceY = clickY - document.body.scrollTop;
	if ( visibleSpaceY < (document.currentTooltip.offsetHeight + offsetY + 10) ) tooltipTop = clickY+offsetY;
	document.currentTooltip.style.left = tooltipLeft;
	document.currentTooltip.style.top = tooltipTop;

}

// helpers
function tooltipRegisterEvent( event, eventType, callback ){
	if ( !event ) event = window.event;
	switch ( eventType ) {
	  case "mousemove":
	  	if ( document.addEventListener ) document.addEventListener("mousemove", callback, true);
	  	else if ( document.attachEvent ) document.attachEvent("onmousemove", callback);
	  	else document.onmousemove = callback;
		break;
	}
}


function tooltipUnRegisterEvent( event, eventType, callback ){
	if ( !event ) event = window.event;
	switch ( eventType ) {
	  case "mousemove":
	  	if ( document.removeEventListener ) document.removeEventListener("mousemove", callback, true);
	  	else if ( document.detachEvent ) document.detachEvent("onmousemove", callback);
	  	else document.onmousemove = null;
		break;
	}
}

function tooltipCancelPropagation(event){
	if ( event ) {
		if ( document.all ) window.event.cancelBubble=true;
		else event.stopPropagation();
		if ( event.preventDefault ) event.preventDefault();
		else event.returnValue=false;
	}
}

