	var count=31;
	var counterlayer;
	var Id;
	var stopCount = false;
	var gameSaved = 0;
	var inviteclear = 5;
	var inviteId;
	var gadget;

	function rand (n)
	{
		return ( Math.floor ( Math.random ( ) * n + 1 ) );
	}

	function numOrdA(a, b)
	{
		return (a-b);
	}

	function numOrdD(a, b)
	{
		return (b-a);
	}

	function pickNumbers(usesavednumbers)
	{
		var largeNumbers = document.forms.selectnumdist.numbers.value;
		var smallNumbers = 6 - largeNumbers;
		var numberList = "";
		var numbersAvailable = new Array(6);
		var matchingSmallNumbers = new Array(10);

		if (usesavednumbers == -1)
		{
			numbersAvailable[0] = n0;
			numbersAvailable[1] = n1;
			numbersAvailable[2] = n2;
			numbersAvailable[3] = n3;
			numbersAvailable[4] = n4;
			numbersAvailable[5] = n5;
		}
		else
		{
			for(var i=0;i<10;i++)
			{
				matchingSmallNumbers[i] = 0;
			}

			for(var i=0;i<largeNumbers;i++)
			{
				numbersAvailable[i] = rand(4) * 25;
				for(var t=0;t<i;t++)
				{
					if (numbersAvailable[t]==numbersAvailable[i])
						{
							t=i;
							i=i-1;
						}
				}

			}
			for(var i=largeNumbers;i<6;i++)
			{
				numbersAvailable[i] = rand(10);
				matchingSmallNumbers[numbersAvailable[i]-1] = matchingSmallNumbers[numbersAvailable[i]-1] + 1;

				for(var t=largeNumbers;t<i;t++)
				{
					if (numbersAvailable[t]==numbersAvailable[i] && matchingSmallNumbers[numbersAvailable[i]-1]==3)
						{
							t=i;
							matchingSmallNumbers[numbersAvailable[i]-1]=2;
							i=i-1;
						}
				}
			}
		}

		numbersAvailable.sort(numOrdD);		

		for(var i=0;i<6;i++)
		{
			numberList += '<div class="number" id="n' + i + '" onClick="addNumber(\'n' + i + '\')">' + numbersAvailable[i] + '</div>' ;
		}

		document.getElementById("selectednumbers").innerHTML = numberList;
	}

	function pickTarget(usesavedtarget) 
	{
		if (usesavedtarget == -1)
		{
			document.getElementById("targetnumber").innerHTML = targetnumber;
		}
		else
		{
			document.getElementById("targetnumber").innerHTML = rand(900)+99;
		}
	}

	function setStartTime()
	{
		var now = new Date();
		var start = now.getTime();
		document.getElementById("starttime").setAttribute('start', start);
		stopCount=false;
		count=31;
		window.clearTimeout(Id);
		countdown();
	}	

	function countdown()
	{
		if (!stopCount)
		{
			count--; 
			if (count==0) {
				if (gameSaved != 1)	{saveGame(0); gameSaved = 1;}
			}
			if (count>-1) {
				changelayer_content(count);
			}
			if (count>0)
			{
				Id = window.setTimeout("countdown()",1000); 
			}
		}
	}	

	function changelayer_content(counter)
	{
		msgstring=counter;
		if(document.layers)
		{
			//thisbrowser="NN4";
			counterlayer = document.layers[0];
			counterlayer.document.open();
			counterlayer.document.write(msgstring);
			counterlayer.document.close();
		}
		if(document.all)
		{
			//thisbrowser="ie"
			counterlayer = document.all["counter"];
			counterlayer.innerHTML=msgstring;
		}
		if(!document.all && document.getElementById)
		{
			//thisbrowser="NN6";
			counterlayer = document.getElementById("counter");
			counterlayer.innerHTML =msgstring;
		}
	}

	function setUpGame(usegadget)
	{
		var largenumbers = document.forms.selectnumdist.numbers.value;
		gadget = usegadget;
		gameSaved = 0;
		getGameStats();
		
		clearCurrentValue();
		pickNumbers(largenumbers);
		pickTarget(largenumbers);
		setStartTime();
		if (!usegadget)
		{
			document.forms.expression.totest.focus();
		}
	}

	function calcCurrentValue()
	{
		var currentNumber = document.forms.expression.totest.value;

		currentNumber = currentNumber.replace(/[^\+\-\/\*\(\)\d]/g,'');

		document.forms.expression.totest.value = currentNumber;
		try
		{
			var evaluatedCurrentNumber = eval(currentNumber);
		}
		catch (e)
		{
			return false;
		}

		if (evaluatedCurrentNumber !== undefined) 
		{
			document.getElementById("currentvalue").innerHTML = evaluatedCurrentNumber;
		}
		else
		{
			document.getElementById("currentvalue").innerHTML = "000";
		}

		if (evaluatedCurrentNumber == document.getElementById("targetnumber").innerHTML)
		{
			var reg=/(\d+)/g;
			var numbers = currentNumber.match(reg);

			if (numbers[6] !== undefined)
			{
				document.getElementById("result").innerHTML = "Too many numbers were used";
			}
			else
			{
				var availableNumber= new Array(6);
				var usedNumber= new Array(6);
				for(var i=0;i<6;i++)
				{
					usedNumber[i] = 0;
					availableNumber[i] = document.getElementById("selectednumbers").childNodes[i].innerHTML;
				}
				for(var i=0;i<6;i++)
				{
					if(numbers[i] !== undefined)
					{
						for(var t=0;t<6;t++)
						{
							if(availableNumber[t]==numbers[i] && usedNumber[t]==0)
							{
								usedNumber[t]=1;
								t=6;
							}
						}
					}
				}
				var usedTotal = 0;
				for(var i=0;i<6;i++)
				{
					usedTotal += usedNumber[i];

				}
				if (numbers[usedTotal] === undefined && numbers[usedTotal-1] !== undefined)
				{
					var now = new Date();
					var end = now.getTime();
					var start = document.getElementById("starttime").getAttribute("start");
					if ((end-start)/1000 < 30) 
					{
						document.getElementById("result").innerHTML = "You Win";
						stopCount=true;
						if (gameSaved != 1)	{saveGame(1); gameSaved = 1;}
					}
					else
					{
						if (document.getElementById("result").innerHTML != "You Win")
						{
							document.getElementById("result").innerHTML = "Time taken was too long";
						}
					}
				}
				else
				{
					document.getElementById("result").innerHTML = "Numbers not available were used to make the total";
				}


			}
		}
		else
		{
			document.getElementById("result").innerHTML = "";
		}



	}

	function clearCurrentValue()
	{
		document.forms.expression.totest.value="";
		calcCurrentValue();
	}

	function clearLastEntry()
	{
		document.forms.expression.totest.value = document.forms.expression.totest.value.substr(0,document.forms.expression.totest.value.length - 1);
		calcCurrentValue();
	}

	function addSymbol(symbolToAdd)
	{
		document.forms.expression.totest.value += symbolToAdd;
		calcCurrentValue();
	}

	function addNumber(numberToAdd)
	{
		document.forms.expression.totest.value += document.getElementById(numberToAdd).innerHTML;
		calcCurrentValue();
	}

	function newXmlHttp() {
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				xmlhttp = false;
			}
		}
		if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
			try {
				xmlhttp = new XMLHttpRequest();
			} catch (e) {
				xmlhttp=false;
			}
		}
	return xmlhttp;

	}

	function saveGame(win) {
		var gameResults;
		gameResults = "intGameType=" + document.forms.selectnumdist.numbers.value;
		gameResults += "&bitWon=" + win;
		gameResults += "&intTarget=" + document.getElementById("targetnumber").innerHTML;
		gameResults += "&intNumber1=" + document.getElementById("n0").innerHTML;
		gameResults += "&intNumber2=" + document.getElementById("n1").innerHTML;
		gameResults += "&intNumber3=" + document.getElementById("n2").innerHTML;
		gameResults += "&intNumber4=" + document.getElementById("n3").innerHTML;
		gameResults += "&intNumber5=" + document.getElementById("n4").innerHTML;
		gameResults += "&intNumber6=" + document.getElementById("n5").innerHTML;
		gameResults += "&intTimeRemaining=" + count;
		if (!gadget)
		{
			var xmlhttpSave = newXmlHttp();
			xmlhttpSave.open("GET", "http://www.toadflaxgames.co.uk/countdown/savegame.php?" + gameResults, true);
			xmlhttpSave.onreadystatechange=function() {
				if (xmlhttpSave.readyState==4) {
					if (xmlhttpSave.status==200) {
						var response=xmlhttpSave.responseText;
						if (response.length == 0) {
								getGameStats();
							}
						}
					}
				}
			xmlhttpSave.send(null);
		}

	}

	function getGameStats()
	{
		if (!gadget)
		{
			var xmlhttpGetStats = newXmlHttp();
			var url = "http://www.toadflaxgames.co.uk/countdown/getstats.php?RandomKey=" + Math.random() * Date.parse(new Date());
   
			xmlhttpGetStats.open("GET", url, true);
			xmlhttpGetStats.onreadystatechange=function() {
				if (xmlhttpGetStats.readyState==4) {
					if (xmlhttpGetStats.status==200) {
						response=xmlhttpGetStats.responseText;
						if (response.length > 0) {
								document.getElementById("gamestats").innerHTML = response;
							}
						}
					}
				}
			xmlhttpGetStats.send(null);
		}
	}

	function invitePlayer()
	{
		if (!gadget)
		{
			var xmlhttpInvitePlayer = newXmlHttp();
			var IPurl = "http://www.toadflaxgames.co.uk/countdown/inviteplayer.php?RandomKey=" + Math.random() * Date.parse(new Date()) + "&InviteEmail=" + document.inviteplayer.inviteEmail.value;
			IPurl += "&intTarget=" + document.getElementById("targetnumber").innerHTML;
			IPurl += "&intNumber1=" + document.getElementById("n0").innerHTML;
			IPurl += "&intNumber2=" + document.getElementById("n1").innerHTML;
			IPurl += "&intNumber3=" + document.getElementById("n2").innerHTML;
			IPurl += "&intNumber4=" + document.getElementById("n3").innerHTML;
			IPurl += "&intNumber5=" + document.getElementById("n4").innerHTML;
			IPurl += "&intNumber6=" + document.getElementById("n5").innerHTML;
			xmlhttpInvitePlayer.open("GET", IPurl, true);
			xmlhttpInvitePlayer.onreadystatechange=function() {
				if (xmlhttpInvitePlayer.readyState==4) {
					if (xmlhttpInvitePlayer.status==200) {
							document.getElementById("inviteSent").innerHTML = "Invite sent";
							inviteclear = 5;
							window.clearTimeout(inviteId);
							inviteClear();
						}
					}
				}
			xmlhttpInvitePlayer.send(null);	
		}
	}

	function inviteClear()
	{
		inviteclear--; 
		if (inviteclear==0) {
			document.getElementById("inviteSent").innerHTML = "";
			window.clearTimeout(inviteId);
		}
		if (count>0)
		{
			inviteId = window.setTimeout("inviteClear()",1000); 
		}
	}	