function getMyElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}
function updatebox(tg,type) {
	tg.className=(type?'box boxhover':'box');
}
function mymouse(tg,reltg,type) {
	var tmp = reltg;
	if (!type) {
		while (tmp!=null && tmp!=tg && tmp.nodeName!='BODY') tmp=tmp.parentNode;
		if (tmp==tg) return;
	}
	tmp = tg;
	while (tmp.className!='box' && tmp.className!='box boxhover' && tmp.nodeName!='BODY') tmp=tmp.parentNode;
	if (tmp.className=='box' || tmp.className=='box boxhover') updatebox(tmp,type);
}
function mymouseover(e) {
	if (!e) var e = window.event;
	var tg = (window.event)?e.srcElement:e.target;
	var reltg = (e.relatedTarget)?e.relatedTarget:e.fromElement;
	mymouse(tg,reltg,true);
}
function mymouseout(e) {
	if (!e) var e = window.event;
	var tg = (window.event)?e.srcElement:e.target;
	var reltg = (e.relatedTarget)?e.relatedTarget:e.toElement;
	mymouse(tg,reltg,false);
}
function hoverboxes() {
	var el = document.getElementById("right");
	var ret = getMyElementsByClassName('box','div',el);
	for (var i=0; i<ret.length; i++) {ret[i].onmouseover=mymouseover; ret[i].onmouseout=mymouseout;}
}	