

var current_obj;

var timeout = null;

var slide_pop = null;
var slide_iframe = null;

var mouse_x = 0;

var loaded = false;

var defineID;

function defineOver(e, obj, text)	{

	current_obj = obj;

	current_obj.definition_text = text;

	hidePopup();

	timeout = setTimeout("showViewDetails();", 300);

	getMouseX(e);
}


function defineMove(e)	{

	if(!loaded)	return;
	
	getMouseX(e);
}


function defineOut()	{

	hidePopup();
}

//////


function getMouseX(e) {
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}

	mouse_x = posx;

}


function showViewDetails()	{

	if(!loaded)	{
	
		timeout = setTimeout("showViewDetails();", 300);
		
		return;
	}


	var pos = findPos(current_obj);
	
	var objheight = 15

	var x = mouse_x + 22;
	var y = pos[1] - 7;
	
	var show_below = x + 200 > getViewport()[0];
	
	if(show_below)	{
	
		x = mouse_x - 120;
		y = pos[1] + 25;
	}
	
	//var show_above = y + 100 > getViewport()[1];
	//if(show_above)	y = pos[1] - objheight -5;





	/////////
	
	defineID = Math.random();

	var div = document.createElement('div'); 
		
	var html = current_obj.definition_text;	
		
	div.style.position = 'absolute'; 
	div.style.backgroundColor = '#FFFFFF'; 
	div.style.border = '1px solid #999999'; 
	div.style.width = '200px'; 
	div.style.left = x + 'px'; 
	div.style.top = y + 'px'; 
	div.style.zIndex = 2; 
	div.style.margin = '0px'; 
	div.style.padding = '5px'; 
	
	
	div.innerHTML = html;
	
	document.body.appendChild(div);
	
	slide_pop = div;
	

	// hack overlay for IE6
	
	if(navigator.userAgent.indexOf("MSIE 6")!=-1)	{
  
		var iframe = document.createElement('iframe'); 
			
		iframe.style.position = 'absolute'; 
		iframe.style.height = (eval(div.clientHeight)+2) + 'px'; 
		iframe.style.width = '200px'; 
		iframe.style.left = x + 'px'; 
		iframe.style.top = y + 'px'; 
		iframe.style.zIndex = 1; 
		iframe.style.margin = '0px'; 
		iframe.style.padding = '5px'; 
		iframe.style.borderStyle = 'none'; 
		iframe.style.filter = 'alpha(opacity=0)'; 
		iframe.style.opacity = '0'; 
		
		document.body.appendChild(iframe);
		
		slide_iframe = iframe;

	}
	
	

}




function getViewport()	{

	 var viewportwidth;
	 var viewportheight;
	 
	 // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
	 
	 if (typeof window.innerWidth != 'undefined')
	 {
	      viewportwidth = window.innerWidth,
	      viewportheight = window.innerHeight
	 }
	 
	 // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
	
	 else if (typeof document.documentElement != 'undefined'
	     && typeof document.documentElement.clientWidth !=
	     'undefined' && document.documentElement.clientWidth != 0)
	 {
	       viewportwidth = document.documentElement.clientWidth,
	       viewportheight = document.documentElement.clientHeight
	 }
	 
	 // older versions of IE
	 
	 else
	 {
	       viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
	       viewportheight = document.getElementsByTagName('body')[0].clientHeight
	 }
	
	
	 var results = new Array();
	 
	 results[0] = viewportwidth;
	 results[1] = viewportheight;
	 
	 return(results);
}

function hidePopup()	{

	if(timeout!=null)	{
	
		clearTimeout(timeout);
		
		timeout = null;
	}
	
	if(slide_iframe!=null)	{
	
		document.body.removeChild(slide_iframe);
		slide_iframe = null;
	}

	if(slide_pop!=null)	{
	
		document.body.removeChild(slide_pop);
		slide_pop = null;
	}
}

function updateDefinitionText(updateID, text)	{

	if(slide_pop!=null && defineID==updateID)	{

		slide_pop.innerHTML = text;
		
		if(text.length>50)	{
			slide_pop.style.width = '400px'; 
		}		
	}
}





var previous_onload;
if( window.onload ) {
    previous_onload = window.onload;
}

window.onload = function () {
    if( previous_onload ) {
        previous_onload();
    }

    // do other stuff here
    loaded = true;
}




var previous_onunload;
if( window.onunload ) {
    previous_onunload = window.onunload;
}

window.onunload = function () {
    if( previous_onunload ) {
        previous_onunload();
    }

	hidePopup();
}





