var bitflags = 0;

function numTimesPlayedStart(game, fromGamePage)
{  			
var str;			
str = "numTimesPlayed(\'statsGamesPlayed.asp\', " + game  + ")";		
setInterval(str, 30000);	
}

function numTimesPlayed(funcName, game)
{  		
var xmlHttp = GetXmlHttpObject();
if (xmlHttp != null)
{
xmlHttp.onreadystatechange = function()
{
if (xmlHttp.readyState == 4)
{							
try 
{
if (xmlHttp.responseText.length <= 30)
document.getElementById('timesplayed').innerHTML = xmlHttp.responseText;
else
document.getElementById('timesplayed').innerHTML = '---';
}
catch (e) {return false;}
}
}

xmlHttp.open("GET", funcName + "?g=" + game, true);
xmlHttp.send(null); 
}
else
{
try {document.getElementById('timesplayed').innerHTML = ' ';}
catch (e) {}
}
}

function stats(game, fromGamePage) 
{  		
var xmlHttp = GetXmlHttpObject();
if (xmlHttp != null)
{		 
xmlHttp.onreadystatechange = function()
{
if (xmlHttp.readyState == 4)
{		
if (xmlHttp.responseText.charAt(0) != '0')
{
var statsArray = xmlHttp.responseText.split("&"); 
try 
{
if (statsArray[0].length <= 80)
document.getElementById('winpercentage').innerHTML = statsArray[0]; 
else
document.getElementById('winpercentage').innerHTML = '---'; 

document.getElementById('winratio').innerHTML = statsArray[1]; 											
document.getElementById('fastesttime').innerHTML = statsArray[3];
document.getElementById('highscore').innerHTML = statsArray[4];
document.getElementById('averagetime').innerHTML = statsArray[5];

if (statsArray[2].length <= 30)
document.getElementById('timesPlayed').innerHTML = statsArray[2]; 
else
document.getElementById('timesPlayed').innerHTML = '---'; 
}
catch (e) {return false;}
}
}
}

if (fromGamePage == 1)
xmlHttp.open("GET", "rules/stats.asp?g=" + game, true);
else
xmlHttp.open("GET", "stats.asp?g=" + game, true);
xmlHttp.send(null); 
}		
}

function MM_findObj(n, d) { //v4.01
var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_nbGroup(event, grpName) 
{ //v6.0
var i,img,nbArr,args=MM_nbGroup.arguments;
if (event == "init" && args.length > 2) 
{
if ((img = MM_findObj(args[2])) != null && !img.MM_init) 
{
img.MM_init = true; 
img.MM_up = args[3]; 
img.MM_dn = img.src;
if ((nbArr = document[grpName]) == null) 
nbArr = document[grpName] = new Array();
nbArr[nbArr.length] = img;
for (i=4; i < args.length-1; i+=2) 
if ((img = MM_findObj(args[i])) != null) 
{
if (!img.MM_up) 
img.MM_up = img.src;
img.src = img.MM_dn = args[i+1];
nbArr[nbArr.length] = img;
} }
} 
else if (event == "over") 
{
document.MM_nbOver = nbArr = new Array();
for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) 
{
if (!img.MM_up) 
img.MM_up = img.src;
img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
nbArr[nbArr.length] = img;
}
} 
else if (event == "out" ) 
{
for (i=0; i < document.MM_nbOver.length; i++) 
{
img = document.MM_nbOver[i]; 
img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; 
}
} 
else if (event == "down") 
{
nbArr = document[grpName];
if (nbArr)
for (i=0; i < nbArr.length; i++) 
{ 
img=nbArr[i]; 
img.src = img.MM_up; 
img.MM_dn = 0; 
}
document[grpName] = nbArr = new Array();
for (i=2; i < args.length-1; i+=2) 
if ((img = MM_findObj(args[i])) != null) 
{
if (!img.MM_up) 
img.MM_up = img.src;
img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
nbArr[nbArr.length] = img;
} }
}

<!--comm FROM applet-->
function WonPuzzle(){
setBitwiseCookie(arguments[0],arguments[1],1);
}
<!--comm TO applet-->
function JSToAppletTest(){
document.solapp.showStatus("JavaScript to Java Applet works too!");
}

<!-- bitnum from 1 to 32-->
function setBitwiseCookie(cookiename, bitnum, value){
if ((bitnum >= 1) && (bitnum <= 32)){
var cookieval=getCookie(cookiename);
var bitval = 1;
bitval <<= (bitnum - 1);
if (value == 0)
cookieval &= bitval;
else
cookieval |= bitval;
setCookie(cookiename, cookieval, 365);}}

<!-- bitnum from 1 to 32-->
function getBitwiseCookie(cookiename, bitnum){
if ((bitnum >= 1) && (bitnum <= 32)){
var cookieval = getCookie(cookiename);	
var bitval = 1;
bitval <<= (bitnum - 1);
var ret = cookieval &= bitval;
return ret;}}	<!--a non-zero result means the cookie bit is set-->

function parseParam(name){
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if (results == null)
return "";
else
return results[1];}








