hlColor = '#e22';
evenColor = '#fe6'; /* '#ffc', '#9f0', '#363'; */
oddColor  = '#fb0'; /* '#bcd', '#abc', '#bbb'; */
brderColor = '#e90';
function lichtop( row, col )
{
	var theID = 'r'+row+'k'+col;
	document.getElementById( theID ).style.backgroundColor = hlColor;
}
function lichtpo( row, col )
{
	var theID = 'r'+row+'k'+col;
	document.getElementById( theID ).style.backgroundColor = ( row % 2 )?( ( col%2 )? oddColor : evenColor ):( ( col%2 ) ? evenColor : oddColor );
}
function animsymm( theID )
{
	var table = document.getElementById( theID );
	if (!table) return;
	var trs = table.getElementsByTagName('tr');
	var tds = table.getElementsByTagName('td');
	var nrrows = trs.length ;
	var nrcols = tds.length / nrrows;
	for ( var r=0; r<nrrows; r++)
	{
		for ( var k=0; k<nrcols; k++)
		{
			tds[r*nrcols+k].id = 'r'+r+'k'+k;
/*			tds[r*nrcols+k].onmouseover = new Function ( "lichtop("+r+","+k+");lichtop("+(nrrows-1-r)+","+(nrcols-1-k)+");" );
			tds[r*nrcols+k].onmouseout  = new Function ( "lichtpo("+r+","+k+");lichtpo("+(nrrows-1-r)+","+(nrcols-1-k)+");" );
*/
			tds[r*nrcols+k].onmouseover = new Function ( "lichtop("+r+","+k+");lichtop("+((r+1) % nrrows)+","+k+");lichtop("+r+","+((k+3) % nrcols)+");lichtop("+((r+1) % nrrows)+","+((k+3) % nrcols)+");lichtop("+((r+nrrows-1) % nrrows)+","+((k+1) % nrcols)+");lichtop("+((r+nrrows-1) % nrrows)+","+((k+2) % nrcols)+");lichtop("+((r+2) % nrrows)+","+((k+1) % nrcols)+");lichtop("+((r+2) % nrrows)+","+((k+2) % nrcols)+");" );
			tds[r*nrcols+k].onmouseout = new Function ( "lichtpo("+r+","+k+");lichtpo("+((r+1) % nrrows)+","+k+");lichtpo("+r+","+((k+3) % nrcols)+");lichtpo("+((r+1) % nrrows)+","+((k+3) % nrcols)+");lichtpo("+((r+nrrows-1) % nrrows)+","+((k+1) % nrcols)+");lichtpo("+((r+nrrows-1) % nrrows)+","+((k+2) % nrcols)+");lichtpo("+((r+2) % nrrows)+","+((k+1) % nrcols)+");lichtpo("+((r+2) % nrrows)+","+((k+2) % nrcols)+");" );
		}
	}
}
function unanimsymm( theID )
{
	var table = document.getElementById( theID );
	if (!table) return;
	var tds = table.getElementsByTagName('td');
	for ( var k=0; k<tds.length; k++)
	{
		tds[k].onmouseover = null;
		tds[k].onmouseout  = null;
	}
}
function startup ()
{
	var cookie = readCookie("style");
	var title = cookie ? cookie : getPreferredStyleSheet();
	setActiveStyleSheet(title);
	animsymm("frankie");
	if ( document.getElementsByTagName && document.getElementById )
	{
		var tables=document.getElementsByTagName('table');
		for (var i=0;i<tables.length;i++)
		{
			if (tables[i].id != "oe" && !tables[i].className.toString().match(/sudoku/) )
				checker(tables[i],evenColor,oddColor,brderColor);
		}
	}
}
function startdown()
{
	var title = getActiveStyleSheet();
	createCookie("style", title, 365);
	unanimsymm("frankie");	
}
window.onload=startup;
window.onunload=startdown;


