var clickedObj;

function findAbsPos(obj) {
	var curLeft = 0;
	var curTop = 0;
	var n = 0; // exit within 100 loops
	if (obj.offsetParent) {
		do {
			curLeft += obj.offsetLeft;
			curTop += obj.offsetTop;
			n++;
			obj = obj.offsetParent;
		} while ( obj && n < 100 );
	}
	return new Array(curLeft, curTop);
}

function showAllGames(targetWin, targetObjId, clickedWin, clickedObjId, pos, offsetLeft, offsetTop) {
	try {
		if ( pos == null && clickedWin == window ) {
			var obj = clickedWin.document.getElementById(clickedObjId);
			pos = findAbsPos(obj);
			obj.className = (obj.className == "game_selected") ? "" : "game_selected";
		}
		if ( targetWin != window ) {
			targetWin.showAllGames(targetWin, targetObjId, clickedWin, clickedObjId, pos, offsetLeft, offsetTop);
		} else {
			var obj = document.getElementById(targetObjId);
			if ( obj.style.display == "none" ) {
				obj.style.left = (pos[0] + offsetLeft) + "px";
				obj.style.top = (pos[1] + offsetTop) + "px";
				obj.style.display = "block";
			} else {
				obj.style.display = "none";
			}
			clickedObj = clickedWin.document.getElementById(clickedObjId);
		}
	} catch (e) { }
}

function showNewAllGames(targetWin, targetObjId, clickedWin, clickedObjId, pos, offsetLeft, offsetTop) {
	try {
		if (pos == null && clickedWin == window) {
			var obj = clickedWin.document.getElementById(clickedObjId);
			pos = findAbsPos(obj);
		}
		showAllGames(targetWin, targetObjId, clickedWin, clickedObjId, pos, offsetLeft, offsetTop);
	} catch (e) { }
}


function hideAllGames(targetWin, targetObjId) {
	try {
		if ( targetWin != window ) {
			targetWin.hideAllGames(targetWin, targetObjId);
		} else {
			var obj = document.getElementById(targetObjId);
			obj.style.display = "none";
			clickedObj.className = "";
		}
	} catch (e) { }
}


function underline(eid,on) {
	if (on)
		document.getElementById(eid).style.textDecoration="underline";
	else
		document.getElementById(eid).style.textDecoration="none";
}