var toolTipIe6 = $.browser.msie && $.browser.version <= 6;
var showFrame = 0;
var waitText = 'Please wait...';

function adjustToolTip(e){
	var top = e.pageY -10;
	var left = e.pageX + 20;
	
	//have to move tooltip if it's too low
	var wh = $(window).height(); //window height
	var ww = $(window).width(); //window width
	
	//get window offset
	var woff;
	var wloff;
	if($.browser.msie){
		var iebody=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body
		woff = iebody.scrollTop;	
		wloff = iebody.scrollLeft;	
	}else{
		woff = window.pageYOffset;
		wloff = window.pageXOffset;
	}
	
	var th = $('#CurrentlyDisplayedTooltip').height(); //tooltip height
	var tw = $('#CurrentlyDisplayedTooltip').width(); //tooltip height
	
	//if too low
	while (top > (woff+10) && (top + th) > (wh + woff)){
		top = top - 10; //to make it faster
	}

	//if too close to the right
	if ((left + tw) > (ww + wloff)){
		left = left - 40 - tw; //flip to the left of cursor
		if(toolTipIe6) left-=10;
	}
	
	if(toolTipIe6 || showFrame)
		$('#tooltipIframe')
			.css({top: top + "px", left: left + "px"})
			.css({width: tw + 16, height: th + 16})
			.show();
	
	$('#CurrentlyDisplayedTooltip').css({top: top + 'px', left: left+'px'});
}

function initTooltips(){	
	//add iframe if ie6
	if(toolTipIe6 || showFrame){
		if($('#tooltipIframe').length == 0)
			$("body").append("<iframe src=\"javascript:''\" scrolling='no' id='tooltipIframe' frameborder='0' style='display:none; position:absolute;width:0px;height:0px;top:0px;left:0px;border:none;display:block;z-index:0'></iframe>");
	}
	
	$(".tooltip[initialized!=1]").each(function(){
			$(this).hover(
				function(e){											  
					var tipLink = $(this);
					var gid = tipLink.attr('glossary_id')
					//get content if we didnt do it already - check if we have saved tooltip already
					var ttip = $('#'+gid+'_hiddenText');
					if(ttip.length == 0){//couldn't find	
						var div;
						if(toolTipIe6){
							div = "<div id='CurrentlyDisplayedTooltip' class='CurrentlyDisplayedTooltip' style='border: 3px solid #0071BC'>" + waitText + "</div>";
						}else{
							div = "<div id='CurrentlyDisplayedTooltip' class='CurrentlyDisplayedTooltip'><div class='top-left'></div><div class='top-right'></div><div class='inside'>" + waitText + "</div><div class='bottom-left'></div><div class='bottom-right'></div></div>"
						}
						$("body").append(div);
						if(typeof(session_id) == "undefined"){
							session_id = fdat.session_id;
						}
						var params = {page_name: 'fetch_glossary.html', quoter:'blank', session_id: session_id, real_quoter: fdat.quoter, glossary_id: gid, from_page: fdat.page_name + '.html'};
						if(toolTipIe6){
							var inner = $("#CurrentlyDisplayedTooltip");
							$.get("/fetch_glossary", params, function(text){inner.html(text);adjustToolTip(e)});
						}else{
							var inner = $("#CurrentlyDisplayedTooltip .inside");
							$.get("/fetch_glossary", params, function(text){inner.html(text);adjustToolTip(e)});
						}
					}else{//already have it saved
						ttip.attr('id', 'CurrentlyDisplayedTooltip');
						adjustToolTip(e);
					}
		//			if($.browser.opera){
						$("#CurrentlyDisplayedTooltip").show();
		//			}else{
		//				$("#CurrentlyDisplayedTooltip").fadeIn('fast'); // disabled for now - sometimes tooltip becomes stuck if you move cursor too fast over it
		//			}
					
			    },
		
				//hide on hover out
				function(){
					var tipLink = $(this);			
					var gid = tipLink.attr('glossary_id');
					
					//hide and reuse later if needed			
					var ttip = $("#CurrentlyDisplayedTooltip");
		//			ttip.stop();//stop any effect so that we can hide it
					
					ttip.attr('id', gid + "_hiddenText");
					ttip.hide();
					
					if(toolTipIe6 || showFrame)
						$('#tooltipIframe').css({width:'0px', height:'0px'}).hide();						
			    }
			);
			
			//move tooltip with cursor
			$(this).mousemove(
				function(e){
					adjustToolTip(e);
			});
			
			//mark them
			$(this).attr('initialized', 1);
	});
};


// starting the script on page load
$(document).ready(function(){
//	alert(toolTipIe6);
//	alert('ie 6 is ' + toolTipIe6);
	initTooltips();
});
