		var sUnsolvedSudoku;
		var sSolvedSudoku;
		var sStyle;
		var sHeader;
		var sTodaysDate;
        var oCurrentPlayingSquare;

		var d_names = new Array("Sunday", "Monday", "Tuesday","Wednesday", "Thursday", "Friday", "Saturday");
		var d = new Date();
		var disp_day = d.getDay();
		var disp_date = d.getDate();
		var disp_month = d.getMonth() + 1;
		var disp_year = d.getFullYear();

		var iYearAdjust=0;

		if (iMonthsAdd + d.getMonth()>11)
			iYearAdjust=1;

		var d =new Date(d.getFullYear() -1 + iYearAdjust, ((d.getMonth() + iMonthsAdd) % 12) , d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds());

		var curr_day = d.getDay();
		var curr_date = d.getDate();
		var curr_month = d.getMonth() + 1;
		var curr_year = d.getFullYear();
		var sSourceName
		var sDiffSetting;
		var sPrintDescription;
		var sQS;
		var months = new Array(13);
		var iC;

		var IntervalTimes = new Array(81);
		for (i=0; i <=81; i++)
			{ IntervalTimes[i]=new Array(3);
			  IntervalTimes[i][2] = 0;
			  IntervalTimes[i][3] ='';	 }

		var sQueryString = unescape(location.search);

		var Undos = new Array(200);
		var UndosCurr;
		UndosCurr=1;
		sDiffSetting = 'E';

		sQueryString = sQueryString.replace('?','');
		if (sQueryString)
			{
			for (iC=0;iC<sQueryString.split("&").length;iC++)
				{
				sQS = sQueryString.split("&")[iC];
				switch (sQS.split("=")[0])
					{
					case "D" :
						sDiffSetting = sQS.split("=")[1];
						break;
					}
				}
			}
		
		var sSourceName = sDiffSetting + curr_date + "-" + curr_month + "-" + curr_year +".js";


   		months[0]  = "January";
   		months[1]  = "February";
   		months[2]  = "March";
   		months[3]  = "April";
   		months[4]  = "May";
   		months[5]  = "June";
   		months[6]  = "July";
   		months[7]  = "August";
   		months[8]  = "September";
   		months[9]  = "October";
   		months[10] = "November";
   		months[11] = "December";
   		var monthname = months[disp_month-1];

		sTodaysDate = d_names[disp_day] + ' ' + disp_date + '/' + months[disp_month-1] + '/' + disp_year;

		document.write( "\<SCRIPT" );
		document.write( '   LANGUAGE="JavaScript"' );
		document.write( "   SRC='http://sudoku.com.au/Dayfiles/" + sSourceName + "'" );
		document.write( "\>" );
		document.write( "\</SCRIPT\>" );



		sStyle = "<style> div {font-family:Verdana,Arial, Helvetica, sans-serif; font-size:11px; }	table.sudokutable {BORDER-COLLAPSE: collapse; width:100%;height:100%; cellSpacing:1; cellPadding:1 ;text-align:center}	.bdr00 {width:11%;border-top:2px solid black; border-bottom:1px solid black;border-left:2px solid black; border-right:1px solid black}	.bdr10 {width:11%;border-top:2px solid black; border-bottom:1px solid black;border-left:1px solid black; border-right:1px solid black}	.bdr20 {width:11%;border-top:2px solid black; border-bottom:1px solid black;border-left:1px solid black; border-right:2px solid black}	.bdr01 {width:11%;border-top:1px solid black; border-bottom:1px solid black;border-left:2px solid black; border-right:1px solid black}	.bdr11 {width:11%;border-top:1px solid black; border-bottom:1px solid black;border-left:1px solid black; border-right:1px solid black}	.bdr21 {width:11%;border-top:1px solid black; border-bottom:1px solid black;border-left:1px solid black; border-right:2px solid black}	.bdr02 {width:11%;border-top:1px solid black; border-bottom:2px solid black;border-left:2px solid black; border-right:1px solid black}	.bdr12 {width:11%;border-top:1px solid black; border-bottom:2px solid black;border-left:1px solid black; border-right:1px solid black}	.bdr22 {width:11%;border-top:1px solid black; border-bottom:2px solid black;border-left:1px solid black; border-right:2px solid black}		</style>";
		sHeader = "<div style='width:100%;text-align:center'><b>Sudoku for " + sTodaysDate + "</b><br><br>";





var iPlayerMoves = new Array(80);
var iCurNum;
iCurNum = 1;

var sBGColor = '#e9e9e9';

function XBrowserAddHandler(target,eventName,handlerName) { 
  if ( target.addEventListener ) { 
    target.addEventListener(eventName, function(e){target[handlerName](e);}, false);
  } else if ( target.attachEvent ) { 
    target.attachEvent("on" + eventName, function(e){target[handlerName](e);});
  } else { 
    var originalHandler = target["on" + eventName]; 
    if ( originalHandler ) { 
      target["on" + eventName] = function(e){originalHandler(e);target[handlerName](e);}; 
    } else { 
      target["on" + eventName] = target[handlerName]; 
    } 
  } 
}

function XBrowserAddHNoCM(target,eventName,handlerName) { 
  if ( target.addEventListener ) { 
    target.addEventListener(eventName, function(e){target[handlerName](e);}, false);
  } else if ( target.attachEvent ) { 
    target.attachEvent("on" + eventName, function(e){target[handlerName](e); return false});
  } else { 
    var originalHandler = target["on" + eventName]; 
    if ( originalHandler ) { 
      target["on" + eventName] = function(e){originalHandler(e);target[handlerName](e);}; 
    } else { 
      target["on" + eventName] = target[handlerName]; 
    } 
  } 
}

function trimString (str) {
  while (str.charAt(0) == ' ')
    str = str.substring(1);
  while (str.substring(0,6) == '&nbsp;')
    str = str.substring(6);
  while (str.charAt(str.length - 1) == ' ')
    str = str.substring(0, str.length - 1);
  return str;
}

function KeyboardPlaceNumber(e)
{
var iNewNum;
var sChar;

sChar=KeyGet(e);
if (IsKeyOK(sChar)==false)
	return true;

iNewNum=parseInt(sChar);
MoveNum(iNewNum)

if (oCurrentPlayingSquare!=undefined)
	PlaceNumber(oCurrentPlayingSquare);
}

function KeyGet(e)
{
var keycode;
if (e) keycode=e.which;
     else keycode=window.event.keyCode;
   return String.fromCharCode(keycode);
}

function IsKeyOK(sChar)
{
var sOKChars='1234567890';
if (sOKChars.indexOf(sChar)==-1)
	return false;
	else return true;
}

function MoveNum(iNewNum)
{
if (iNewNum==iCurNum)
	return true;

var oNumCtl;

oNumCtl = document.getElementById('Num' + iCurNum);
oNumCtl.style.backgroundColor='';
if (iCurNum==0)
	oNumCtl.innerHTML = '&nbsp;';
	else 
	oNumCtl.innerHTML = iCurNum;

iCurNum = iNewNum;
SetCurrentNum();
}

function SetCurrentNum()
{
oNumCtl = document.getElementById('Num' + iCurNum);
if (oNumCtl.innerHTML.toUpperCase()!='&NBSP;')
	{ 
	oNumCtl.innerHTML= '<b>'+iCurNum+'</b>';
	if (oNumCtl.style.backgroundColor=='')
		{
		oNumCtl.style.backgroundColor = '#e9e9e9'; 
		}
	}

}

function IsClear(oControl)
{
if (oControl.innerHTML.toUpperCase()=='&NBSP;')
	return true;
else return false; 
}

function CurNumSelect(e) 
{
var iNewNum;
if (this.innerHTML.toUpperCase().indexOf("<B>") ==-1)
	{
	if (IsClear(this)==true)
		iNewNum = 0; 
		else
		iNewNum = this.innerHTML;
	MoveNum(iNewNum);
	}
}

function CurNumSelectOLD(e) {
if (this.innerHTML.toUpperCase().indexOf("<B>") ==-1)
{
document.getElementById('Num' + iCurNum).style.backgroundColor='';

if (iCurNum==0)
	{ document.getElementById('Num' + iCurNum).innerHTML = '&nbsp;'; }
	else 
	{ document.getElementById('Num' + iCurNum).innerHTML = iCurNum; }

if (this.innerHTML.toUpperCase()=='&NBSP;')
	{ iCurNum = 0; }
	else
	{ iCurNum = this.innerHTML;
	  this.innerHTML= '<b>'+iCurNum + '</b>'; }

this.style.backgroundColor = '#e9e9e9';
}
}

function ShowFullSolution()
{
var iC;

if ( document.getElementById('btnFullSol').value=='Show Solution')
	{
	document.getElementById('btnFullSol').value='Hide Solution';
	for (iC=0;iC<iGridSolved.length;iC++)
		{
 		oControl=document.getElementById('T' + iC);
		oControl.style.backgroundColor='';
		if (oControl.innerHTML.toUpperCase()=='&NBSP;')
			{ iPlayerMoves[iC]=0; }
			else
			{ 
			if (oControl.style.fontSize=='')
				{ iPlayerMoves[iC]='N'; }
				else { iPlayerMoves[iC]='P' }

			iPlayerMoves[iC]=iPlayerMoves[iC]  + oControl.innerHTML;
			}
 
		if (iGridUnsolved[iC]==0)
			{oControl.innerHTML = iGridSolved[iC]; }
			else 
			{ oControl.style.backgroundColor = sBGColor; }

		TDSettings(oControl,false);
		}
	}
	else
	{
	document.getElementById('btnFullSol').value='Show Solution';
	for (iC=0;iC<iGridSolved.length;iC++)
		{
 		oControl=document.getElementById('T' + iC);
		oControl.style.backgroundColor='';
		if (iPlayerMoves[iC]==0)
			{ oControl.innerHTML ='&nbsp;' ; }
			else 
			{ if (iGridUnsolved[iC]==0)
				{ 
				if (iPlayerMoves[iC].substring(0,1)=='P' )
					TDSettings(oControl,true);		
				oControl.innerHTML =iPlayerMoves[iC].substring(1);
				}
				else { oControl.style.backgroundColor = sBGColor; }
			}
		}
	}
}

function TDSettings(oCtl,bPossibilityOn)
{
if (bPossibilityOn==true)
	{
	oCtl.style.fontSize='10px';
	oCtl.style.textAlign='right';
	oCtl.vAlign='top';
	oCtl.style.lineHeight='10px';
	}
	else
	{
	oCtl.style.fontSize='';
	oCtl.style.textAlign='center';
	oCtl.vAlign='center';
	oCtl.style.lineHeight='';
	}
}

function ResetBoard()
{
var iC;
var oControl;
for (iC=0;iC<iGridUnsolved.length;iC++)
	{
 	oControl=document.getElementById('T' + iC);
	TDSettings(oControl,false);
	if (iGridUnsolved[iC]!=0)
		{ oControl.innerHTML ='<b>'+ iGridUnsolved[iC] + '</b>';
		  oControl.style.backgroundColor = sBGColor; }
		else
		{ oControl.innerHTML ='&nbsp;';
		  oControl.style.backgroundColor=''; }
	}
}

function IsPoss(oControl)
{
if (oControl.innerHTML.toUpperCase().indexOf('TABLE')!=-1 || oControl.innerHTML.toUpperCase().indexOf('<DIV')!=-1 )
	return true;
else return false; 
}

function ResetPoss()
{
var iC;
var oControl;
for (iC=0;iC<iGridUnsolved.length;iC++)
	{
 	oControl=document.getElementById('T' + iC);
	if (oControl.style.fontSize!='')
		{
		TDSettings(oControl,false);
		oControl.innerHTML ='&nbsp;';
		}
	}
}


function CheckSolution(bOnlyCheckFinished)
{
var iStatus;

iStatus = CheckSolutionBoard(bOnlyCheckFinished,false);

switch (iStatus) {
	case 0 :
		if (bOnlyCheckFinished==true)
			{ 		
			alert('Correct - Congratulations!');
			}
		break;
	case 1 :
		if (bOnlyCheckFinished==false)
			{ alert('All moves so far are correct.'); }
		break;
	default :
		if (bOnlyCheckFinished==false)
			{ 
			if (confirm('Some numbers were incorrect.\n\nWould you like to see which ones?'))
				{
				CheckSolutionBoard(bOnlyCheckFinished,true);
				}
			 } 
		}
	

}

function CheckSolutionBoard(bOnlyCheckFinished,bShowIncorrect)
{
var iC;
var sValue;
var oControl;
var iStatus;
var iIndex;

iStatus = 0;

for (iC=0;iC<iGridSolved.length;iC++)
	{
 	oControl=document.getElementById('T' + iC);
	sValue = oControl.innerHTML.toUpperCase();
	if (sValue.indexOf("<B>") ==-1 && (sValue!=iGridSolved[iC] || oControl.style.fontSize!='') )
		{
		if (sValue == '&NBSP;' || oControl.style.fontSize!='')
			{ if (iStatus==0) { iStatus=1;} }
			
		else 	{
			if (bOnlyCheckFinished==false && bShowIncorrect==true)
				{ oControl.style.backgroundColor='ff7f7f'; }

			FlashSquareCheck(oControl,-1);
			
			iStatus=2;
			}
		}
	}

return iStatus;
}

function FlashSquareCheck(oControl,iCurNum)
{
var sID;
var sOldChars;

	if (iCurNum!=-1)
		{
		sOldChars =SaveGameSquare(oControl, oControl.innerHTML);
		oControl.innerHTML=iCurNum;
		TDSettings(oControl,false);
		} else
		{
		sOldChars = '&nbsp;';
		}

	if (iCurNum!=iGridSolved[parseInt(oControl.id.replace('T',''))] && document.getElementById('AllowIncorrectMoves').checked==false)
		{
		sID =oControl.id;
		sID = sID.replace('T','')
		iIndex = parseInt(sID);
		if (IntervalTimes[iIndex][2]<=0) 
			{
			IntervalTimes[iIndex][3]=sOldChars;
			IntervalTimes[iIndex][2]=6;
			IntervalTimes[iIndex][1] = setInterval("FlashSquare(" + iIndex + ")", 300);
			}
		return true;
		} else
		{ return false; }
}

function FlashSquare(iIndex)
{
var oControl;

 	oControl=document.getElementById('T' + iIndex);
	
	if (IntervalTimes[iIndex][2] % 2 == 0 )
		{ oControl.style.backgroundColor='ff7f7f'; }
		else
		{ oControl.style.backgroundColor='ffffff'; }
	

	IntervalTimes[iIndex][2]--;


	if (IntervalTimes[iIndex][2]<=0)
		{ 
		oControl.innerHTML ='&nbsp;';
		clearInterval(IntervalTimes[iIndex][1]);
		LoadGameSquare(oControl,IntervalTimes[iIndex][3])
		}

}

function MouseClickRC(e)
{
if (document.getElementById('PossibilityMode').checked==true)
    document.getElementById('PossibilityMode').checked=false;
else
    document.getElementById('PossibilityMode').checked=true;
    
oNewSquare = this;
MouseClick(oNewSquare,false);

}

function MouseClickLC(e)
{
oNewSquare = this;
MouseClick(oNewSquare,true);
}

function MouseClick(oNewSquare,DoPlaceNumber)
{
    if (oNewSquare.innerHTML.toUpperCase().indexOf("<B>") !=-1)
        return true;
    
    if (oCurrentPlayingSquare!=undefined)
        oCurrentPlayingSquare.style.backgroundColor = '';
        
    oCurrentPlayingSquare = oNewSquare;
    
    if (document.getElementById('chkMouseMoves').checked==false)
        if (document.getElementById('PossibilityMode').checked)
            oCurrentPlayingSquare.style.backgroundColor = '#C0FFFF';
        else
            oCurrentPlayingSquare.style.backgroundColor = '#e7ffd5';
        
        
    if (chkMouseMoves.checked==true && DoPlaceNumber==true)
        PlaceNumber(oCurrentPlayingSquare);
}

function PlaceNumber(oCurrentPlayingSquare) { 

if (oCurrentPlayingSquare.innerHTML.toUpperCase().indexOf("<B>") ==-1)
	{
	SaveUndo();
	oCurrentPlayingSquare.style.backgroundColor='';
	if (iCurNum==0)
		{
		oCurrentPlayingSquare.innerHTML='&nbsp;';
		oCurrentPlayingSquare.style.fontSize='';
		}
		else
		{
		if (oCurrentPlayingSquare.innerHTML.indexOf(iCurNum)!=-1)
			{
			if (!document.getElementById('PossibilityMode').checked && oCurrentPlayingSquare.style.fontSize!='')
				{
				if (FlashSquareCheck(oCurrentPlayingSquare,iCurNum) == false)
					{
					RemovePossibieNumbers(oCurrentPlayingSquare);
					} 
					CheckSolution(true);
				}
				else
				{
				oCurrentPlayingSquare.innerHTML=oCurrentPlayingSquare.innerHTML.replace(iCurNum,'');
				oCurrentPlayingSquare.innerHTML=trimString(oCurrentPlayingSquare.innerHTML);
				if (oCurrentPlayingSquare.innerHTML=='')
					{
					TDSettings(oCurrentPlayingSquare,false);
					oCurrentPlayingSquare.innerHTML='&nbsp;';
					}
				}
			}
		else
			{
			if (document.getElementById('PossibilityMode').checked)
				{
				TDSettings(oCurrentPlayingSquare,true);
				AddPoss(oCurrentPlayingSquare,iCurNum);
				}
				else
				{
				if (FlashSquareCheck(oCurrentPlayingSquare,iCurNum) == false)
					{
					RemovePossibieNumbers(oCurrentPlayingSquare);
					} 
					CheckSolution(true);
				}
			}
		}
 	}
	else 
	{
	alert ("This is already allocated.");
	}
} 

function AddPoss(oCtl,iNum)
{
var iCurrSize;
var iC;
var sHTML;
var iX;
var iY;
var sCurrText;
var sWidth;

sCurrText = oCtl.innerHTML;
sCurrText = sCurrText.replace(/33%/g,'');
sCurrText = sCurrText.replace(/100%/g,'');
sCurrText = sCurrText.replace(/50%/g,'');
	
sHTML = "";
for (iC=1;iC<=9;iC++)
	{
	if (sCurrText.indexOf(iC)!=-1 || iC==iNum)
		sHTML = sHTML + iC + ' ';
	}
if (sHTML!='')
	sHTML ="<div class='PossDiv'>" + trimString(sHTML) + "</div>";

oCtl.innerHTML = sHTML;
}

function RemoveNumber(iNewID, iChosenNum)
{
var oNewSquare;
oNewSquare = document.getElementById("T" + iNewID)

if (IsPoss(oNewSquare)==true)
	{
	RemoveNum(oNewSquare,iChosenNum);
	}
}

function RemoveNum(oCtl,iCurNum)
{
var sTest;

if (IsGridPoss(oCtl)==true)
	oCtl.innerHTML=oCtl.innerHTML.replace('>' + iCurNum + '<','>&nbsp;<');
else
	{
	oCtl.innerHTML=oCtl.innerHTML.replace(iCurNum,' ');
	oCtl.innerHTML=oCtl.innerHTML.toLowerCase();
	oCtl.innerHTML=oCtl.innerHTML.replace(/&nbsp;/g,' ');
	}
}

function RemovePossibieNumbers(oSquare)
{

return;

}


function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name,DefaultVal) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break; 
}
return DefaultVal;
}  

function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}

function SetDefaults()
{
var expdate = new Date ();
expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 31));

	SetCookie("ckAllowIncorrectMoves",document.getElementById("AllowIncorrectMoves").checked,expdate);

var oCtl;
var iHeight;
oCtl = document.getElementById('sudokutable');

switch (oCtl.height) {
	case '360' :
	case '360px' :
	iHeight = 270
	break;

	case '324' :
	case '324px' :
	iHeight = 360
	break;

	case '270' :
	case '270px' :
	iHeight = 324
	break;
}
	SetCookie("iTableHeight",iHeight,expdate);
}

function ReadDefaults()
{
	document.getElementById("AllowIncorrectMoves").checked=(GetCookie("ckAllowIncorrectMoves","true")=="true");
	document.getElementById('sudokutable').height = GetCookie("iTableHeight","270px");


}

function SaveGame()
{
var SBoard;

SBoard = sGetBoardString();

var expdate = new Date ();
expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 31));

	SetCookie(sDiffSetting + sSourceName + "_SavedBoard",SBoard,expdate);
	alert("The current Game has been saved.");

}

function sGetBoardString()
{
var iC;
var sValue;
var oControl;
var sBoard;

sBoard = '';

for (iC=0;iC<iGridSolved.length;iC++)
	{
 	oControl=document.getElementById('T' + iC);
	sValue = oControl.innerHTML.toUpperCase();
	if (sValue == '' || sValue == '&NBSP;')
		{}
		else
		{
		sBoard = sBoard + SaveGameSquare(oControl,sValue);
		}
	sBoard = sBoard + "|";
	}
return sBoard;
}

function SaveGameSquare(oControl,sValue)
{
	sValue = sValue.replace('<B>','');
	sValue = sValue.replace('</B>','');

	if (oControl.style.fontSize!='')
		{return 'P' + sValue;}
		else
		{return sValue;}

}

function LoadGame()
{
var sBoard;

sBoard =  GetCookie( sDiffSetting + sSourceName + "_SavedBoard","NoSave");

if (sBoard=="NoSave") 
	{
	alert("There is no saved game for this puzzle (clearing cookies will erase saved games).");
	return true;
	}

LoadBoardFromString(sBoard);

}

function LoadBoardFromString(sBoard)
{
var iC;
var sValue;
var oControl;

ResetBoard();

for (iC=0;iC<iGridSolved.length;iC++)
	{
 	oControl=document.getElementById('T' + iC);
	sValue = sBoard.split('|')[iC];
	if (sValue !='')
		{
		LoadGameSquare(oControl,sValue);
		}
	}
}

function LoadGameSquare(oControl,sValue)
{
	if (oControl.style.backgroundColor=='')
		{
		if (sValue.substring(0,1)=="P")
			{
			TDSettings(oControl,true);
			sValue = sValue.substring(1);
			}
		oControl.innerHTML = sValue;
		}
}

var curOpac;
var IE = document.all;
var oPrizeInverval;
var sCongratsMsg;



function SaveUndo()
{
Undos[UndosCurr]=sGetBoardString();
if (UndosCurr==Undos.length)
	alert('The limit of the Undos has been reached, no more can be saved.');
else
	UndosCurr=UndosCurr+1;
}

function LoadUndo()
{
if (UndosCurr==1)
	alert('No moves have been made');
else
	{
	UndosCurr=UndosCurr-1;
	LoadBoardFromString(Undos[UndosCurr]);
	}
}

function PrintPuzzle(bWithSolution)
{
var sAllText
		
sAllText = sStyle;
sAllText = sAllText +   sHeader.replace('<b>Sudoku','<b>' + sPrintDescription + ' Sudoku');
sAllText = sAllText + ' <div style=width:330px;height:300px>' + sUnsolvedSudoku + '</div>';
if (bWithSolution==true) 
	{
		sAllText = sAllText + '<div style=height:100px>&nbsp;</div><div style=width:330px;height:300px>' + sSolvedSudoku + '</div>';
	}
	sAllText = sAllText + '</div>';
	Win1=window.open('', target = '_Blank');
        Win1.document.open();
        Win1.document.writeln(sAllText);
        Win1.document.close();
}


function ChangeBoard()
{
var oCtl;
var iX;
var iY;
var iSize;

oCtl = document.getElementById('sudokutable');

switch (document.getElementById('sudokutableBox').style.height) {
	case '360' :
	case '360px' :
	iSize = 36
	oCtl.height='324px';
	document.getElementById('sudokutableBox').style.width='324px';
	document.getElementById('sudokutableBox').style.height='324px';
	break;

	case '324' :
	case '324px' :
	iSize = 30
	oCtl.height='270px';
	document.getElementById('sudokutableBox').style.width='270px';
	document.getElementById('sudokutableBox').style.height='270px';
	break;

	case '270' :
	case '270px' :
	iSize = 40
	oCtl.height='360px';
	document.getElementById('sudokutableBox').style.width='360px';
	document.getElementById('sudokutableBox').style.height='360px';
	break;
	
	default :
	iSize = 36
	oCtl.height='324px';
	document.getElementById('sudokutableBox').style.width='324px';
	document.getElementById('sudokutableBox').style.height='324px';
	break;
}

SetCellSize(oCtl,iSize);
}

function SetCellSize(oCtl,iSize)
{
var iX;
var iY;

for (iX=0;iX<=8;iX++)
	{
	for (iY=0;iY<=8;iY++)
		{
		oCtl.rows[iY].cells[iX].height=iSize + 'px';
		}
	}
}


function PlayInit()
{
document.getElementById('Num1').style.backgroundColor=sBGColor;
document.getElementById('HeadingH2').innerHTML='Puzzle for '+ d_names[disp_day] + ' ' + disp_date + '/' + monthname;

document.onkeypress = KeyboardPlaceNumber;
if (document.layers)
    document.captureEvents(Event.KEYPRESS); 

var iC;
var oControl;

for (iC=0;iC<=9;iC++)
	{
 	oControl=document.getElementById('Num' + iC);
    	oControl.ClickHandler =  CurNumSelect; 
    	XBrowserAddHandler(oControl,"click","ClickHandler");
	}

for (iC=0;iC<iGridUnsolved.length;iC++)
	{
 	oControl=document.getElementById('T' + iC);
	if (iGridUnsolved[iC]!=0)
		{ oControl.innerHTML ='<b>'+ iGridUnsolved[iC] + '</b>';
			oControl.style.backgroundColor = sBGColor; }

    	oControl.ClickHandler = MouseClickLC; 
    	XBrowserAddHandler(oControl,"click","ClickHandler");
    	oControl.RCClickHandler =  MouseClickRC; 
    	XBrowserAddHNoCM(oControl,"contextmenu","RCClickHandler");
	}


if(sDiffSetting=='E')
	{
	document.getElementById('EasyLabel').style.fontWeight='bold';
	sPrintDescription='Easy';

	}
	else
	{
	if (sDiffSetting=='M')
		{
		document.getElementById('MediumLabel').style.fontWeight='bold';
		sPrintDescription='Medium';
		}
		else
		{
		document.getElementById('HardLabel').style.fontWeight='bold';
		sPrintDescription='Hard';
		}
	}

}
