/*

	ivTT - a jQuery Tooltip
	author: Ingo Volkmann www.godiv.de
	
*/

function ivTT () {
	
	this.ivTTimagePath = 'images/';
	
	this.ivTT_init = function () {
		$('body').append('<div id="ivTT"></div>');
		$('body').append('<iframe src="' + this.ivTTimagePath + 'blank.gif" frameborder="0" id="ivTTiframe"></iframe>');
		$(".ivTT")
			.hover(function(event){
						objIvTT.ivTT_show(event,this.id)
				  }, 
				  function(){
						$('#ivTT').empty();
						$('#ivTT').hide();
						$('#ivTTiframe').hide();
				  })
			.mousemove(function(event){
						objIvTT.ivTT_move(event,this.id);
				  })
			.click(function(){
						if ($(this).parent().attr('tagName').toLowerCase() == 'label') {
							document.getElementById('input'+$(this).parent().attr('for').substr(5)).checked = 'checked';
						}
						return false;
				  });	
	}
	
	this.ivTT_move = function (e,linkId) {
		if(!e) e = window.event;
		var pos = { left: e.clientX, top:e.clientY };
	
		var b = (window.document.compatMode && window.document.compatMode == "CSS1Compat") ?
		window.document.documentElement : window.document.body || null;
	
		if (b)
		{
			pos.left += b.scrollLeft;
			pos.top +=  b.scrollTop;
		}
		this.ivTT_calc (linkId, pos.left, pos.top);
	}

	this.ivTT_show = function (e,linkId){
		if(!e) e = window.event;
		var pos = { left: e.clientX, top:e.clientY };
	
		var b = (window.document.compatMode && window.document.compatMode == "CSS1Compat") ?
		window.document.documentElement : window.document.body || null;
	
		if (b)
		{
			pos.left += b.scrollLeft;
			pos.top +=  b.scrollTop;
		}
		
		var html = document.getElementById(linkId+"div").innerHTML;
		$("#ivTT").append("<div id='ivTT_copy'>"+html+"</div>");
		$("#ivTT").append("<div id='ivTT_arrow'></div>");
		this.ivTT_calc (linkId, pos.left, pos.top);
	}

	this.ivTT_calc = function (linkId, left, top) {
		var arrowX = 'l';
		var arrowY = 't';
		var alignX = -6;
		var alignY = 0;
		var _cEx = (parseInt(left) + 25);
		var _jtW = $("#ivTT").width();
		var _wW = $(window).width();
		var _cEy = (parseInt(top) - 5);
		var _jtH = $("#ivTT").height();
		if (window.innerHeight) var _wH = window.innerHeight;
		else var _wH = $(window).height();
		var _wSt = $(window).scrollTop();
		var _fT = (parseInt(_wH) - (top - parseInt(_wSt)));
		
		if (_fT < parseInt(_wH) - _fT) {
			_cEy = (parseInt(_cEy) - parseInt(_jtH) + 20);
			arrowY = 'b';
			alignY = _jtH - 17;
		} 
		if ((parseInt(_wW) - left) < left) {
			_cEx = (parseInt(_cEx) - parseInt(_jtW) - 45);
			arrowX = 'r';
			alignX = _jtW;
		} 
		if ($.browser.safari && navigator.userAgent.indexOf('Chrome') == -1)
		{
			_cEy = (parseInt(_cEy) + parseInt(_wSt));
		}
		
		$('#ivTT_arrow').css({top: (alignY)+"px", left: (alignX)+'px', backgroundImage: "url("+this.ivTTimagePath+arrowY+arrowX+".gif)"});
		$('#ivTTiframe').css({top: (_cEy - 5)+'px', left: (_cEx - 5)+'px', width: (_jtW + 10)+'px', height: (_jtH + 10)+'px', display: 'block'});
		$('#ivTT').css({top: (_cEy)+"px", left: (_cEx)+'px'});
		$('#ivTT').show();
	}

}

var objIvTT = new ivTT();

// keep alive
function keepAlive () {
	alive = window.setTimeout("keepAlive();", 60000);
}

//on page load (as soon as its ready) call ivTT_init
$(document).ready(function(){
	objIvTT.ivTT_init();
	keepAlive();
});
