var divName = 'mydiv'; // div that is to follow the mouse
var offX = 8;         // X offset from mouse position
var offY = 0;         // Y offset from mouse position
var marginY = 0;         // Y margin from mouse position
var theBox;
var lastBox;
 
if(typeof document.getElementsByClass == "undefined"){
	document.getElementsByClass = function (needle) {
	  var my_array = document.getElementsByTagName("*");
	  var retvalue = new Array();
	  var i = 0;
	  var j = 0;
	  for (i = 0, j= 0; i < my_array.length; i++) {
	    var c = " " + my_array[i].className + " ";
	    if (c.indexOf(" " + needle + " ") != -1) retvalue[j++] = my_array[i];
	  }
	  return retvalue;
	}
}

// var evt = window.event;


function initEventManagement() { 
    if(window.event) { // IE 
      document.onmousemove = follow; 
    } else { 
      if(document.layer) { // NN4 
        document.captureEvents(Event.MOUSEMOVE); 
        document.onmousemove = follow; 
      } else { // Moz 
        document.addEventListener("mousemove", follow, true); 
      }
    }
} 
    //********************************* 
    
function initEvents() {
	// sizer = "";
	alltds = document.getElementsByClass('solutionLink');
	for (i=0;i<alltds.length;i++) {
		alltds[i].i = i;
		if(navigator.appName.indexOf("Netscape")>(-1)) {
			alltds[i].onmouseover = function() { displayInfo(this); }
			alltds[i].onmouseout = function() { closeAll(this); }
		} else {			
			alltds[i].onmouseenter = function() { displayInfo(this); }
			alltds[i].onmouseleave = function() { closeAll(this); }
		}
	}
	initEventManagement();
}

window.onload = initEvents;

function trace(msg){
	if(!document.getElementById("trace")){
		var t = document.createElement("div");
		t.id = "trace";
		document.body.appendChild(t);
	}
//	document.getElementById("trace").innerHTML += msg + "<br />";
	document.getElementById("trace").innerHTML = msg;
}

function follow(evt) {
	var mouseX, mouseY
	if (!evt) evt = window.event;
	if (evt.pageX) mouseX = evt.pageX; 
	else if (evt.clientX) mouseX = evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); 
	else mouseX = 0;
	if (evt.pageY) mouseY = evt.pageY; 
	else if (evt.clientY) mouseY = evt.clientY + (document.documentElement.scrollTop ?  document.documentElement.scrollTop : document.body.scrollTop); 
	else mouseY = 0;
	setBox(mouseX, mouseY);
}

function setBox(x, y){
	if (document.getElementById) {
		if (theBox) {
//			trace("positioning " + theBox.id);
			theBox.style.left = parseInt(x + offX) + 'px'; 
			theBox.style.top = parseInt(y - offY) + 'px';
		}
	}
}

function displayInfo(tblobj) {	
	extra = 0;
	// remember last cell
	cell = tblobj;		
	if(lastBox) lastBox.style.display = "none";
	tblobj.style.background = '#cdddde url(/images/none.gif) no-repeat 100% 100%';
	theBox = document.getElementById('info'+parseInt(tblobj.i+1));
	if (theBox) {
		// show infobox
		theBox.style.display = 'block';
		offY = theBox.offsetHeight + marginY;
	}
	lastBox = theBox;
}

function closeAll(tblobj) {
	tblobj.style.background = '#ffffff url(/images/list_arrow.gif) no-repeat 100% 100%';
	if(lastBox)lastBox.style.display = "none";
}