var EDGE_PADDING = 10;

var openRollovers = new Array();
var rolloverText = new Array();
		
var global_e = '';
var global_func = '';
var global_class = '';
var global_param = '';
var global_param2 = '';
var global_param3 = '';
var global_param4 = '';

var BLANK_MESSAGE = '';
		
function constructRollover(e, func_name, class_name, param, param2, param3, param4)
{
	var pos = elementPosition(e);
	x_off = param2 - 10;
	x_bound = param3;
	y_bound = param4;
	
	var browser_width = document.documentElement['clientWidth'];
	var browser_width_scroll = document.documentElement['scrollLeft'];
	browser_width = parseInt(parseInt(browser_width) + parseInt(browser_width_scroll));
	var browser_height = document.documentElement['clientHeight'];
	var browser_height_scroll = document.documentElement['scrollTop'];
	browser_height = parseInt(parseInt(browser_height) + parseInt(browser_height_scroll));
	
	if(openRollovers[e.getAttribute('id')]!=null)
	{
		var name = openRollovers[e.getAttribute('id')];
		document.getElementById(name).innerHTML = BLANK_MESSAGE;
		document.getElementById(name).className = class_name;
		document.getElementById(name).style.left = ((parseInt(pos[0]) + parseInt(20))) + 'px';
		document.getElementById(name).style.top = (parseInt(pos[1])) + 'px';
		document.getElementById(name).innerHTML =  rolloverText[e.getAttribute('id')];
	}
	else
	{
		var idNum = Math.floor(Math.random () * 10 + 1) + Math.floor(Math.random () * 10 + 1);
		var name = 'rollover_'+idNum;
		var newDiv = document.createElement('div');
		newDiv.setAttribute('id',name);
		newDiv.className = class_name;
		newDiv.style.position = 'absolute';
		newDiv.style.visibility = 'visible';
		newDiv.style.display = 'block';
		var left = ((parseInt(pos[0]) + parseInt(20) + parseInt(x_off)));
		var top = (parseInt(pos[1]));
		
		if(parseInt(left) + parseInt(param3) + parseInt(EDGE_PADDING) >= browser_width)
		{
			var diff = parseInt((parseInt(left) + parseInt(param3) + parseInt(EDGE_PADDING)) - browser_width );
			left = parseInt(parseInt(left) - parseInt(diff));
		}
		
		if(left <= parseInt(parseInt(pos[0]) + parseInt(param2)))
		{
			top = parseInt(parseInt(top) - parseInt(param4) - parseInt(EDGE_PADDING));
		}
		else
		{
			if(parseInt(top) + parseInt(param4) + parseInt(EDGE_PADDING) >= browser_height)
			{
				var diff = parseInt((parseInt(top) + parseInt(param4) + parseInt(EDGE_PADDING)) - browser_height);
				top = parseInt(parseInt(top) - parseInt(diff));
			}
		}
		
		newDiv.style.left = left + 'px';
		newDiv.style.top = top + 'px';
		
		if(rolloverText[e.getAttribute('id')] == undefined || rolloverText[e.getAttribute('id')] == BLANK_MESSAGE)
		{
			rolloverText[e.getAttribute('id')] = BLANK_MESSAGE; //Avoid undefined showing up in the popup
			global_e = e;
			global_func = func_name;
			global_class = class_name;
			global_param = param
			global_param2 = param2
			global_param3 = param3
			setTimeout(func_name+"()",1);
		}
		else
		{
			newDiv.innerHTML = rolloverText[e.getAttribute('id')];
		}
		document.body.appendChild(newDiv);
	}
	
	openRollovers[e.getAttribute('id')] = name;
}
		
function destructRollover(e)
{
	var e = (e != null && e != undefined) ? e : global_e;
	var el = openRollovers[e.getAttribute('id')];
	if(el != null && el != undefined)
	{
		openRollovers[e.getAttribute('id')] = null;
		document.body.removeChild(document.getElementById(el));
	}
}

function image_preview()
{
	var param = global_param;
	var e = global_e;
	var el = openRollovers[global_e.getAttribute('id')];
	rolloverText[e.getAttribute('id')] = '<img src="' + param + '" />';
	document.getElementById(el).innerHTML = rolloverText[e.getAttribute('id')];
}
	
