var tooltipelement = null;
window.addEvent('domready', function() {
	
	$$('span.tooltiplink').addEvents({
		'mouseover': function(e){
			if( tooltipelement == null ){
				e = e || window.event;
				var parent = this.getParent();
				var tooltipdiv =  parent.getChildren('div.tooltipdiv');
				//alert(tooltipdiv.get('html'));
				tooltipelement = new Element('div', {
					'id' : 'htmltooltip',
					'class': 'tooltiptextbox',
					'html' : tooltipdiv.get('html'),
					'styles': {
						'position' : 'absolute'
					}
				});
				$(document.body).adopt(tooltipelement);
				//alert('sdf');
			}
			if( tooltipelement != null ){
				tooltipelement.setStyles({ 
					'display': 'block'
				});	
				setTooltipPosition( tooltipelement, e.page.y, e.page.x );
			}
		},
		'mouseout': function(){
			if( tooltipelement != null ){
				tooltipelement.setStyle('display','none');	
				//tooltipelement.dispose();
				tooltipelement = null;
			}
		}
	});
});	
document.addEvent('mousemove',function(e) {			
	e = e || window.event;
	if( tooltipelement != null ){
		setTooltipPosition( tooltipelement, e.page.y, e.page.x );
	}
});

function setTooltipPosition( el, posY, posX )
{
	var offsetX = 10;
	var offsetY = 10;
	if( (el.getWindow().getSize().x/2) < posX ){
//		alert(posX+' - '+el.offsetWidth+' - '+offsetX);
		posX = posX - el.offsetWidth - offsetX;
	}else{
		posX = posX + offsetX;
	}
	if( (el.getWindow().getSize().y/2) < (posY-el.getWindow().getScroll().y) ){
		posY = posY - el.offsetHeight - offsetY;
	}else{
		posY = posY + offsetY;
	}
	
	el.setStyles({
		'left' : posX,
		'top' : posY
	});
}

/*function setTooltipPosition( el, posY, posX )
{
	var offsetX = 10;
	var offsetY = 10;
	var windowSize = getSize();
	var windowScroll = getScrollXY();
	if( (windowSize[0]/2) < posX ){
//		alert(posX+' - '+el.offsetWidth+' - '+offsetX);
		posX = posX - el.offsetWidth - offsetX;
	}else{
		posX = posX + offsetX;
	}
	if( (windowSize[1]/2) < (posY-windowScroll[1]) ){
		posY = posY - el.offsetHeight - offsetY;
	}else{
		posY = posY + offsetY;
	}
	
	el.setStyles({
		'left' : posX,
		'top' : posY
	});
}

function getScrollXY() {
	var scrOfX = 0, scrOfY = 0;

	if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
	}
	return [ scrOfX, scrOfY ];
}

function getSize() {
	var myWidth = 0, myHeight = 0;

	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
	}
	return [ myWidth, myHeight ];
}*/




