/*
 * $Id: lotteries.js,v 1.6.186.1 2010-06-09 13:35:20 alongwil Exp $
 * Copyright (c) 2008 Orbis Technology Ltd. All rights reserved.
 *
 */

var gridLocked = false; //Used to track when grid is locked and steps should be kept visible.  This ocurrs when user is on straight bets and adding a new line
var minGameForCombos = LOTTERIES.minGameForCombos;
var minMatchesForWin = LOTTERIES.minMatchesForWin;
if (minMatchesForWin == 1) {
	minMatchesForWin += " " + LOTTERIES.XL.NUMBER;
} else if (minMatchesForWin > 1) {
	minMatchesForWin += " " + LOTTERIES.XL.NUMBERS;
}
var game = LOTTERIES.game;
var maxBalls = LOTTERIES.maxBalls;
var picture1 = getParameter("GIF_URL") + "/lotteries/" +LOTTERIES.sort_lc+ "1small.jpg";
var picture2 = getParameter("GIF_URL") + "/lotteries/" +LOTTERIES.sort_lc+ "2small.jpg";
var picture3 = getParameter("GIF_URL") + "/lotteries/" +LOTTERIES.sort_lc+ "3small.jpg";
var picture4 = getParameter("GIF_URL") + "/lotteries/" +LOTTERIES.sort_lc+ "4small.jpg";
var picture5 = getParameter("GIF_URL") + "/lotteries/" +LOTTERIES.sort_lc+ "5small.jpg";
var picture6 = getParameter("GIF_URL") + "/lotteries/" +LOTTERIES.sort_lc+ "6small.jpg";

var lottotext1 = LOTTERIES.XL.NAME + " 1";
var lottotext2 = LOTTERIES.XL.NAME + " " + LOTTERIES.minMatchesForWin + "-" + "2";
var lottotext3 = LOTTERIES.XL.NAME + " " + LOTTERIES.minMatchesForWin + "-" + "3";
var lottotext4 = LOTTERIES.XL.NAME + " " + LOTTERIES.minMatchesForWin + "-" + "4";
var lottotext5 = LOTTERIES.XL.NAME + " " + LOTTERIES.minMatchesForWin + "-" + "5";
var lottotext6 = LOTTERIES.XL.NAME + " " + LOTTERIES.minMatchesForWin + "-" + "6";
var currentlottotext1 = LOTTERIES.XL.NAME + " 1";
var currentlottotext2 = LOTTERIES.XL.NAME + " 2";
var currentlottotext3 = LOTTERIES.XL.NAME + " 3";
var currentlottotext4 = LOTTERIES.XL.NAME + " 4";
var currentlottotext5 = LOTTERIES.XL.NAME + " 5";
var currentlottotext6 = LOTTERIES.XL.NAME + " 6";

var ballsSelected = 0;
var maxRows = 63;
var numberOfEntries = 0;
var array = new Array();
var stakes = new Array();
var GAMETYPE_UNSELECTED = -1;
var GAMETYPE_BONUS_COMBO = 3;
var GAMETYPE_BONUS_STRAIGHT = 2;
var GAMETYPE_COMBO = 1;
var GAMETYPE_STRAIGHT = 0;
var gameType = GAMETYPE_UNSELECTED;

/*
* KMP Amend - resetGame cleaned up and line added to "un-disable" buttons as we have noticed firefox caching the disabled state incorrectly
*/
// Ensures that on page load (or when called by another function) that page state is reset
function resetGame()
{
	for (var i = minGameForCombos-1; i <= 6; i++)
	{
		// Orbis 25/07/2007 - fix to prevent javascript error if no lottery games available 
		if (document.getElementById('rbn'+i+'Number') != null) {
			document.getElementById('rbn'+i+'Number').checked = false;
			document.getElementById('rbn'+i+'Number').disabled = false;
		}
	}
	for (var i = 1; i <= 2; i++)
	{
		document.getElementById('rbnCombination'+i).checked = false;
		document.getElementById('rbnCombination'+i).disabled = false;
	}
}


// Changes the currently selected game
function SelectCurrentGame(gameSelected)
{
	game = gameSelected;
	if (gameSelected == 1) {
		document.getElementById('gameImage').src = picture1;
	}
	else if (gameSelected == 2) {
		document.getElementById('gameImage').src = picture2;
	}
	else if (gameSelected == 3) {
		document.getElementById('gameImage').src = picture3;
	}
	else if (gameSelected == 4) {
		document.getElementById('gameImage').src = picture4;
	}
	else if (gameSelected == 5) {
		document.getElementById('gameImage').src = picture5;
	}
	else if (gameSelected == 6) {
		document.getElementById('gameImage').src = picture6;
	}

	ClearBalls();
	/*
	* KMP Addition - makes step 2 visible once game selected
	*/
	document.getElementById('box-lottery').style.display = "block";
	/*
	* End KMP Addition
	*/

	// Orbis 25/07/2007
	// clear array if game selection has changed - makes sure we have the same game/pick 
	// for the all balls selected - this is so we can refresh user choice after login/register via cookie
	// without worring about different games/picks
	array.length = 0;
}

/*
* KMP Addition 22/07/2007 - new function
*/
function getUnpickedBall()
{
	// Checks if any of balls 1-5 are currently not selected and returns number of next one
	for (var i = 1; i <= game || LOTTERIES.sort_lc == "49lotto" && i <= 6; i++)
	{
		if (document.getElementById('pickedBall'+i).innerHTML == "") return i;
	}
	return 0;
}

// Changes the status of the ball that is clicked
function BallClicked(ball)
{
	var classname, gameclass, unpickedBall;

	if(document.getElementById('ball' + ball).className == "") {
		if(LOTTERIES.sort_lc != "49lotto" && ballsSelected == game || LOTTERIES.sort_lc == "49lotto" && ballsSelected == 6) {
			alert('You have selected the maximum number of balls for this game.');
			return;
		}
	
		// set the correct colour for the ball

			switch(ball % 4) {
			case 1: classname = "red"; break;
			case 2: classname = "green"; break;
			case 3: classname = "purple"; break;
			default: classname = "yellow"; break;
			}
	
		

		ballsSelected += 1;
		/*
		* KMP Amend 22/07/2007 - now uses return value from getUnpickedBall to make sure all empty picked balls are set
		*/
		unpickedBall = getUnpickedBall();
		if (unpickedBall > game && LOTTERIES.sort_lc == "49lotto") {
			classname = "orange";
		}
		document.getElementById('ball' + ball).className = classname;
		document.getElementById('pickedBall' + unpickedBall).className = classname;
		document.getElementById('pickedBall' + unpickedBall).innerHTML = ball;
		/*
		* End KMP Amend
		*/

	} else {

		ballsSelected -= 1;
		/*
		* KMP Addition 20/07/2007
		*/
		ClearSteps3And4();
		/*
		* END KMP Addition 20/07/2007
		*/
	
		document.getElementById('ball' + ball).className = "";

		if(document.getElementById('pickedBall1').innerHTML == ball) {
			document.getElementById('pickedBall1').className = "";
			document.getElementById('pickedBall1').innerHTML = "";
		}
	
		if(document.getElementById('pickedBall2').innerHTML == ball) {
			document.getElementById('pickedBall2').className = "";
			document.getElementById('pickedBall2').innerHTML = "";
		}
	
		if(document.getElementById('pickedBall3').innerHTML == ball) {
			document.getElementById('pickedBall3').className = "";
			document.getElementById('pickedBall3').innerHTML = "";
		}
	
		if(document.getElementById('pickedBall4').innerHTML == ball) {
			document.getElementById('pickedBall4').className = "";
			document.getElementById('pickedBall4').innerHTML = "";
		}

		if(document.getElementById('pickedBall5').innerHTML == ball) {
			document.getElementById('pickedBall5').className = "";
			document.getElementById('pickedBall5').innerHTML = "";
		}

		if(document.getElementById('pickedBall6').innerHTML == ball) {
			document.getElementById('pickedBall6').className = "";
			document.getElementById('pickedBall6').innerHTML = "";
		}
	}
}

/*
* KMP Amend 22/07/2007 - added test for global var gridLocked to prevent steps 3 and 4 from being cleared (used when adding a new line)
*/
function ClearBalls()
{
	if (!gridLocked) ClearSteps3And4(); //KMP Addition 22/07/2007

	var k;

	ballsSelected = 0;

	document.getElementById('pickedBall1').className = "";
	document.getElementById('pickedBall2').className = "";
	document.getElementById('pickedBall3').className = "";
	document.getElementById('pickedBall4').className = "";
	document.getElementById('pickedBall5').className = "";
	document.getElementById('pickedBall6').className = "";
	
	document.getElementById('pickedBall1').innerHTML = "";
	document.getElementById('pickedBall2').innerHTML = "";
	document.getElementById('pickedBall3').innerHTML = "";
	document.getElementById('pickedBall4').innerHTML = "";
	document.getElementById('pickedBall5').innerHTML = "";
	document.getElementById('pickedBall6').innerHTML = "";
		
	document.getElementById('gameBalls1').className = "";
	document.getElementById('gameBalls2').className = "";
	document.getElementById('gameBalls3').className = "";
	document.getElementById('gameBalls4').className = "";
	document.getElementById('gameBalls5').className = "";
	document.getElementById('gameBalls6').className = "";
	
	document.getElementById('gameBalls1').innerHTML = "";
	document.getElementById('gameBalls2').innerHTML = "";
	document.getElementById('gameBalls3').innerHTML = "";
	document.getElementById('gameBalls4').innerHTML = "";
	document.getElementById('gameBalls5').innerHTML = "";
	document.getElementById('gameBalls6').innerHTML = "";

	if (game > 0 && game < 6) {
		document.getElementById('sisaxgame_separator').className = "sisaxgame_separator_" + game;
	} else {
		document.getElementById('sisaxgame_separator').className = "";
	}

	if (LOTTERIES.sort_lc != "49lotto") {
		/*
		* KMP Addition 20/07/2007
		*/
		switch(game) {
			case 1: document.getElementById('pickedBall2').className = "blue";
			case 2: document.getElementById('pickedBall3').className = "blue";
			case 3: document.getElementById('pickedBall4').className = "blue";
			case 4: document.getElementById('pickedBall5').className = "blue";
			case 5: document.getElementById('pickedBall6').className = "blue";
		}
		/*
		* End KMP Addition
		*/
	}

	for(var k=1;k<=maxBalls;k++) {
	document.getElementById('ball' + k).className = "";
	}

	if ( gameType == GAMETYPE_COMBO ) {
		document.getElementById('step3').style.display = "none";
		document.getElementById('step4').style.display = "none";
	}

	clearStep4();
}
	
function clearStep4()
{ 
	// clear all rows
	for(var i=1;i<=maxRows;i++) {
		document.getElementById('row' + i + 'col1').className = "";
		document.getElementById('row' + i + 'col1').innerHTML = "";
	}

	for(var i=2;i<=maxRows;i++) {
		document.getElementById('row' + i + 'col2').className = "";
		document.getElementById('row' + i + 'col2').innerHTML = "";
	}
	
	for(var i=3;i<=maxRows;i++) {
		document.getElementById('row' + i + 'col3').className = "";
		document.getElementById('row' + i + 'col3').innerHTML = "";
	}

	for(var i=4;i<=maxRows;i++) {
		document.getElementById('row' + i + 'col4').className = "";
		document.getElementById('row' + i + 'col4').innerHTML = "";
	}

	for(var i=5;i<=maxRows;i++) {
		document.getElementById('row' + i + 'col5').className = "";
		document.getElementById('row' + i + 'col5').innerHTML = "";
	}
	for(var i=6;i<=maxRows;i++) {
		document.getElementById('row' + i + 'col6').className = "";
		document.getElementById('row' + i + 'col6').innerHTML = "";
	}

	for(var i=1;i<=maxRows;i++) {
		document.getElementById('row' + i).style.visibility = "hidden";
		document.getElementById('row' + i).style.display = "none";
		
		document.getElementById('row' + i).className = 'add';
		document.getElementById('row' + i + 'link').innerHTML = 'Add';
	}
	if ( gameType == GAMETYPE_COMBO )
	{
		numberOfEntries = 0;
	}
}

function LuckyDip()
{
	var num1, num2, num3, num4, num5, num6;

	ClearBalls();
	
	if(game > 0 || LOTTERIES.sort_lc == "49lotto") {
		num1 = Math.floor(Math.random()*maxBalls) + 1;
		BallClicked(num1);
	}

	if(game > 1 || LOTTERIES.sort_lc == "49lotto") {
		for(;;) {
			num2 = Math.floor(Math.random()*maxBalls) + 1;
			if (num2 != num1) {
				break;
			}
		}
		BallClicked(num2);
	}

	if(game > 2 || LOTTERIES.sort_lc == "49lotto") {
		for(;;) {
			num3 = Math.floor(Math.random()*maxBalls) + 1;
			if ((num3 != num1) && (num3 != num2)) {
				break;
			}
		}
		BallClicked(num3);
	}

	if(game > 3 || LOTTERIES.sort_lc == "49lotto") {
		for(;;) {
			num4 = Math.floor(Math.random()*maxBalls) + 1;
			if ((num4 != num1) && (num4 != num2) && (num4 != num3)) {
				break;
			}
		}
		BallClicked(num4);
	}

	if(game > 4 || LOTTERIES.sort_lc == "49lotto") {
		for(;;) {
			num5 = Math.floor(Math.random()*maxBalls) + 1;
			if ((num5 != num1) && (num5 != num2) && (num5 != num3) && (num5 != num4)) {
				break;
			}
		}
		BallClicked(num5);
	}

	if(game > 5 || LOTTERIES.sort_lc == "49lotto") {
		for(;;) {
			num6 = Math.floor(Math.random()*maxBalls) + 1;
			if ((num6 != num1) && (num6 != num2) && (num6 != num3) && (num6 != num4)  && (num6 != num5)) {
				break;
			}
		}
		BallClicked(num6);
	}
}

/*
* KMP Amend 22/07/2007 added line to scroll to panel instead of using anchors tags on href attribute.
* This prevents page scrolling down even when first two tests fail (user has selected nothing)
*/
function ConfirmStep2()
{
	if (game ==0) {
		return;
	}

	if (LOTTERIES.sort_lc == "49lotto" && ballsSelected != 6) {
		alert('Please select 6 ball(s)');
		return;
	} else if(LOTTERIES.sort_lc != "49lotto" && ballsSelected != game) {
		alert('Please select ' + game + ' ball(s)');
		return;
	}
	
	/*
	* KMP Amend - 22/07/2007 - introduced variable minGameForCombos to flag when combo options should be available as this needs to be changed between UK, Spanish and Irish
	*/
	if (!gridLocked)
	{
		if (game < minGameForCombos || LOTTERIES.sort_lc == "49lotto") { 
			document.getElementById('rbnCombination2').checked = true;
			document.getElementById('choose_combo_all').style.display = "none";
		} else {
			document.getElementById('rbnCombination2').checked = false;
			document.getElementById('choose_combo_all').style.display = "block";
		}
	}

	document.getElementById('step3').style.display = "block";
	document.getElementById('step3').scrollIntoView(true); //KMP Addition
		
	var availGames = "";
	var currentGame = "";

	if (game == 1) {
		// TODO: remove one of the checkbox options here
		availGames = lottotext1;
		currentGame = currentlottotext1;
	} else if (game == 2) {
		availGames = lottotext2;
		currentGame = currentlottotext2;
	} else if (game == 3) {
		availGames = lottotext3;
		currentGame = currentlottotext3;
	} else if (game == 4) {
		availGames = lottotext4;
		currentGame = currentlottotext4;
	} else if (game == 5) {
		availGames = lottotext5;
		currentGame = currentlottotext5;
	} else if (game == 6) {
		availGames = lottotext6;
		currentGame = currentlottotext6;
	}
	
	document.getElementById('comboGamesAvail').innerHTML = availGames;
	document.getElementById('matchesToWin').innerHTML = minMatchesForWin;
	document.getElementById('currentGameSelected').innerHTML = currentGame;

	// Check the status of the radio buttons in case any of them have been preselected
	gameType = GAMETYPE_UNSELECTED;
	if (document.getElementById('rbnCombination1').checked)
	{
			ConfirmStep3(GAMETYPE_COMBO);
	}
	if (document.getElementById('rbnCombination2').checked)
	{
			ConfirmStep3(GAMETYPE_STRAIGHT);
	}
	
}


// Returns an array of strings of all combinations <= n
// e.g n=1 returns {1}
//     n=2 returns {1},{2},{1,2}
//     n=3 returns {1},{2},{3},{1,2},{2,3},{1,3},{1,2,3}
//     n=4 returns {1},{2},{3},{4},{1,2},{2,3},{1,3},{1,4},{2,4},{3,4},
//                 {1,2,3},{1,2,4},{1,3,4},{2,3,4},{1,2,3,4}
// etc.
function combinations(n) {
		if (n==1) {
				return new Array('1');
		}
		// n>=2
		var newcomb = new Array();
		var prevcomb = combinations(n-1);
		var newlist;
		for (var i=0; i<prevcomb.length; i++) {
				newcomb[i] = prevcomb[i];
				newlist = prevcomb[i] + ',' + n;
				newcomb[i + prevcomb.length] = newlist;
		}
		newcomb[newcomb.length] = ''+n;
		return newcomb;
}


function ConfirmStep3(typeSelect)
{
	// if the requested gameType is already set, exit
	if (typeSelect == gameType) return;
	
	gameType = typeSelect;
	clearStep4();
	CalculateTotals();

	document.getElementById('gameBalls1').innerHTML = document.getElementById('pickedBall1').innerHTML;
	document.getElementById('gameBalls2').innerHTML = document.getElementById('pickedBall2').innerHTML;
	document.getElementById('gameBalls3').innerHTML = document.getElementById('pickedBall3').innerHTML;
	document.getElementById('gameBalls4').innerHTML = document.getElementById('pickedBall4').innerHTML;
	document.getElementById('gameBalls5').innerHTML = document.getElementById('pickedBall5').innerHTML;
	document.getElementById('gameBalls6').innerHTML = document.getElementById('pickedBall6').innerHTML;

	if ( gameType == GAMETYPE_COMBO )
	{
		// Generate an array of combo strings, ordered by length
		var combos = combinations(game).sort(function(a,b){return a.length-b.length});
		var row,col;
		var comb;
		for (var i=0; i<combos.length; i++) {
			row = i+1;
			comb = (combos[i]).split(',');
			if (comb.length < minGameForCombos - 1) {
				continue;
			}
			if (typeof(PickStakes[comb.length]["pick_price"]) == "undefined") {
				continue;
			}

			for (var j=0; j<comb.length; j++) {
				col = j + 1;
				combo(comb[j],col,row,comb.length);
			}
			if (LOTTERIES.sort_lc == "49lotto" && comb.length == game) {
				col = comb.length;
				for (var j=0; j<6; j++) {
					var do_continue = 0;
					for (var c=0; c<comb.length; c++) {
						if (comb[c] == j + 1) {
							do_continue = 1;
							break;
						}
					}
					if (do_continue) continue;
					col++;
					combo(j + 1,col,row,comb.length);
				}
			}
			RowClicked(row);
		}

		// update row numbers 
		var rownum = 0;
		for (var i =1; i<=63; i++) {
			if(document.getElementById('row' + i + 'link').innerHTML == 'Remove') {
				rownum ++;
				document.getElementById('row' + i + 'number').innerHTML = rownum;
			}
		}

		if (LOTTERIES.sort_lc == "49lotto") {
			for (var i = game + 1; i <= 6; i++) {
				document.getElementById('gameBalls' + i).className = "gameballs orange2";
			}
		}


		document.getElementById('tblCombinations').style.display = "";
		document.getElementById('selections').style.display = "none";

	} else if (gameType == GAMETYPE_STRAIGHT) {

		document.getElementById('selections').style.display = "";
		document.getElementById('tblCombinations').style.display = "none";
		doStraightBets();
	}
	document.getElementById('step4').style.display = "block";
	/*
	* KMP Addition 22/07/2007 to scroll section into view correctly
	*/
	document.getElementById('step4').scrollIntoView(false);
}

function doStraightBets()
{
	var ball1 = document.getElementById('pickedBall1').innerHTML;
	var ball2 = document.getElementById('pickedBall2').innerHTML;
	var ball3 = document.getElementById('pickedBall3').innerHTML;
	var ball4 = document.getElementById('pickedBall4').innerHTML;
	var ball5 = document.getElementById('pickedBall5').innerHTML;
	var ball6 = document.getElementById('pickedBall6').innerHTML;
	var arrayValue, valueList;

	if ( array.length > 0 )
	{
		var values = array[array.length-1];
		
		valueList = values.split(",");
		var mostRecentBall1 = valueList[0];
		var mostRecentBall2 = valueList[1];
		var mostRecentBall3 = valueList[2];
		var mostRecentBall4 = valueList[3];
		var mostRecentBall5 = valueList[4];
		var mostRecentBall6 = valueList[5];
		
		if (mostRecentBall1 != ball1 || mostRecentBall2 != ball2 ||
			mostRecentBall3 != ball3 || mostRecentBall4 != ball4 ||
			mostRecentBall5 != ball5 || mostRecentBall6 != ball6 )
		{
			arrayValue = ball1 + "," + ball2 + "," + ball3 + "," + ball4 + "," + ball5 + "," + ball6;
			array[array.length] = arrayValue;
		}
	} else {
		arrayValue = ball1 + "," + ball2 + "," + ball3 + "," + ball4 + "," + ball5 + "," + ball6;
		array[array.length] = arrayValue;
	}
	writeStraightSelections();
}
	
function writeStraightSelections()
{
	var html = "";
	var pick = 1;
	var pickedBall, valueList;

	stakes = new Array();
	
	html += "<table class='table-combinations' cellpadding='0' cellspacing='0'>";
	html += "<tr><th>&nbsp;</th><th class=\"lotterygame\">Game</th><th>Win</th><th>Cost</th><th>&nbsp;</th></tr>";
	
	for (var j = 0; j < array.length; j++)
	{
		
		var values = array[j];
	
		valueList = values.split(",");
		var ball1 = valueList[0];
		var ball2 = valueList[1];
		var ball3 = valueList[2];
		var ball4 = valueList[3];
		var ball5 = valueList[4];
		var ball6 = valueList[5];
		
		for (pickedBall = 1; pickedBall<=6;pickedBall++)
		{
			var classname = "";
			switch(document.getElementById('pickedBall' + pickedBall).className) {
				case "red": classname = "gameballs red2"; break;
				case "green": classname = "gameballs green2"; break;
				case "purple": classname = "gameballs purple2"; break;
				case "yellow": classname = "gameballs yellow2"; break;
				case "orange": classname = "gameballs orange2"; break;
			}
			document.getElementById('gameBalls' + pickedBall).className = classname;
		}
	
		var classname1 = "";
		var classname2 = "";
		var classname3 = "";
		var classname4 = "";
		var classname5 = "";
		var classname6 = "";
	
		switch(ball1 % 4) {
			case 1: classname1 = "gameballs red2"; break;
			case 2: classname1 = "gameballs green2"; break;
			case 3: classname1 = "gameballs purple2"; break;
			default: classname1 = "gameballs yellow2"; break;
		}
		switch(ball2 % 4) {
			case 1: classname2 = "gameballs red2"; break;
			case 2: classname2 = "gameballs green2"; break;
			case 3: classname2 = "gameballs purple2"; break;
			default: classname2 = "gameballs yellow2"; break;
		}
		switch(ball3 % 4) {
			case 1: classname3 = "gameballs red2"; break;
			case 2: classname3 = "gameballs green2"; break;
			case 3: classname3 = "gameballs purple2"; break;
			default: classname3 = "gameballs yellow2"; break;
		}
		switch(ball4 % 4) {
			case 1: classname4 = "gameballs red2"; break;
			case 2: classname4 = "gameballs green2"; break;
			case 3: classname4 = "gameballs purple2"; break;
			default: classname4 = "gameballs yellow2"; break;
		}
		switch(ball5 % 4) {
			case 1: classname5 = "gameballs red2"; break;
			case 2: classname5 = "gameballs green2"; break;
			case 3: classname5 = "gameballs purple2"; break;
			default: classname5 = "gameballs yellow2"; break;
		}
		switch(ball6 % 4) {
			case 1: classname6 = "gameballs red2"; break;
			case 2: classname6 = "gameballs green2"; break;
			case 3: classname6 = "gameballs purple2"; break;
			default: classname6 = "gameballs yellow2"; break;
		}
		
		if (ball1 != "" && ball1 != null)
		{
			if (ball2 != "" && ball2 != null)
			{
				if (ball3 != "" && ball3 != null)
				{
					if (ball4 != "" && ball4 != null)
					{
						if (ball5 != "" && ball5 != null)
						{
							if (ball6 != "" && ball6 != null)
							{
								pick = 6
							}
							else
							{
								classname6 = "";
								pick = 5
							}
						}
						else
						{
							classname5 = "";
							classname6 = "";
							pick = 4
						}
					}
					else
					{
						classname4 = "";
						classname5 = "";
						classname6 = "";
						pick = 3
					}
				}
				else
				{
					classname3 = "";
					classname4 = "";
					classname5 = "";
					classname6 = "";
					pick = 2
				}
			}
			else
			{
				classname2 = "";
				classname3 = "";
				classname4 = "";
				classname5 = "";
				classname6 = "";
				pick = 1
			}
		}
		else
		{
			classname1 = "";
			classname2 = "";
			classname3 = "";
			classname4 = "";
			classname5 = "";
			classname6 = "";
			pick = 1
		}

		if (LOTTERIES.sort_lc == "49lotto") {
			switch(game) {
			case 1: classname2 = "gameballs orange2";
			case 2: classname3 = "gameballs orange2";
			case 3: classname4 = "gameballs orange2";
			case 4: classname5 = "gameballs orange2";
			case 5: classname6 = "gameballs orange2";
			}
			pick = game;
		}

		stakes[j] = PickStakes[pick]["stake_amount"];
		
		html += "<tr id='row10"+j+"' class='Add'><td>"+(j+1)+"</td><td class='game'><span id='row10"+j+"col1' class='"+classname1+"'>"+ball1+"</span><span id='row10"+j+"col2' class='"+classname2+"'>"+ball2+"</span><span id='row10"+j+"col3' class='"+classname3+"'>"+ball3+"</span><span id='row10"+j+"col4' class='"+classname4+"'>"+ball4+"</span><span id='row10"+j+"col5' class='"+classname5+"'>"+ball5+"</span><span id='row10"+j+"col6' class='"+classname6+"'>"+ball6+"</span></td>  <td><span id='row10"+j+"price'>"+PickStakes[pick]["pick_price"]+"</span></td><td>"+PickStakes[pick]["stake_money"]+"</td><td><a href='javascript:DeleteRow("+j+");' id='row10"+j+"link'>Remove</a></td></tr>";
		
	}

	html += "<tr class=\"addline\"><td colspan=\"5\"><a href=\"#step2Anchor\"><input type=\"image\" src=\"" + getParameter("STATIC_URL") + "/images/lotteries/btn_addanotherline.gif\" value=\"Add\" onclick=\"addNewStraightBet();\"/></a></td></tr></table>";

	// Inject our compiled HTML table into the innerHTML property of the container DIV
	document.getElementById('selections').innerHTML = html;

	numberOfEntries = array.length
	CalculateTotals();
}

function DeleteRow(rowId)
{
	array.splice(rowId, 1);
	numberOfEntries = array.length;
	writeStraightSelections();
	CalculateTotals();
	// KMP Amend 23/07/2007 - test for last row added
	// Test to see if this was last row and we now need to reenable the options to change game types etc
	if (numberOfEntries == 0)
	{
		for (i = minGameForCombos-1; i <= 6; i++)
		{
			document.getElementById('rbn'+i+'Number').disabled = false;
		}
		for (i = 1; i <= 2; i++)
		{
			document.getElementById('rbnCombination'+i).disabled = false;
		}
		gridLocked = false;
		ClearSteps3And4();
	}
}
	
function combo(pickedBall,col,row, pick)
{
	var classname = "";
	switch(document.getElementById('pickedBall' + pickedBall).className) {
	case "red": classname = "gameballs red2"; break;
	case "green": classname = "gameballs green2"; break;
	case "purple": classname = "gameballs purple2"; break;
	case "yellow": classname = "gameballs yellow2"; break;
	case "orange": classname = "gameballs orange2"; break;
	}
	if (col > pick && LOTTERIES.sort_lc == "49lotto") {
		classname = "gameballs orange2";
	}
	document.getElementById('gameBalls' + pickedBall).className = classname;

	document.getElementById('row' + row + 'col' + col).className = classname;
	document.getElementById('row' + row + 'col' + col).innerHTML = document.getElementById('pickedBall' + pickedBall).innerHTML;
	document.getElementById('row' + row).style.visibility = "visible";
	document.getElementById('row' + row).style.display = "";
	
	document.getElementById('row' + row + 'price').innerHTML = PickStakes[pick]["pick_price"];

	document.getElementById('row' + row + 'stake').innerHTML = PickStakes[pick]["stake_money"];

	stakes[row] = PickStakes[pick]["stake_amount"];
	
}

function RowClicked(rowId) {

	if(document.getElementById('row' + rowId + 'link').innerHTML == 'Add') {
		document.getElementById('row' + rowId).className = '';
		document.getElementById('row' + rowId + 'link').innerHTML = 'Remove';
		numberOfEntries += 1;
	} else {
		document.getElementById('row' + rowId).className = 'add';
		document.getElementById('row' + rowId + 'link').innerHTML = 'Add';
		numberOfEntries -= 1;
	}

	CalculateTotals();
}

/*
* KMP Amend 22/07/2007 - Rewritten entire function so it sets gridLocked = true so that steps 3 and 4 are not hidden
* Also disables all radio buttons
*/
	function addNewStraightBet()
	{
		// Need to clear balls in game grid and lock game type 
		for (i = minGameForCombos-1; i <= 6; i++)
		{
			// Depending on the admin setup, some games may not appear.
			try {
				document.getElementById('rbn'+i+'Number').disabled = true;
			} catch (e) {
				// do nothing
			}
		}
		// Also disable radio buttons in step 3 to prevent flicking into combo bet mode
		document.getElementById('rbnCombination1').disabled = true;
		document.getElementById('rbnCombination2').disabled = true;

		gridLocked = true;
		ClearBalls();
		// scroll to position
		window.scroll(0, 350);
	}
  
// Writes out current price from number selected
function CalculateTotals()
{
	document.getElementById('NumberOfEntries').innerHTML = numberOfEntries;

	var num = 0;
	if (gameType == GAMETYPE_STRAIGHT) {
		for (var i =0; i<stakes.length;i++) {
			num += stakes[i];
		}
	}
	else {
		for (var i =1; i<=63;i++) {
			if(document.getElementById('row' + i + 'link').innerHTML == 'Remove') {
				num += stakes[i];
			}
		}
	}

	document.getElementById('CostOfEntries').innerHTML = getParameter("ccy_symbol") + num.toFixed(2);

	var num = num * document.getElementById('NumberOfDraws').value;

	document.getElementById('TotalCost').innerHTML = getParameter("ccy_symbol") + num.toFixed(2);

}

function ConfirmStep4()
{
	var url = "#?combo="+gameType+"&numberOfDraws=" + document.getElementById('NumberOfDraws').value;

	var betstring = "";

	if ( gameType == GAMETYPE_COMBO) {

		for(var row=1;row<=maxRows;row++) {

			if (document.getElementById('row' + row + 'link').innerHTML != 'Add') {

				var selection = ""
				var delimiter = "";
				var picks     = 0;

				for(var col=1;col<=6;col++) {

					if(document.getElementById('row' + row + 'col' + col)) {

						var number = document.getElementById('row' + row + 'col' + col).innerHTML;
						var classname = document.getElementById('row' + row + 'col' + col).className;
						if (number != "" && number != null) {
							if (LOTTERIES.sort_lc == "49lotto") {
								if (picks < game && classname != "gameballs orange2") {
									picks++
								} else {
									delimiter = "ce";
								}
								selection += delimiter + number;
							} else {
								selection += delimiter + number;
								picks++;
							}
							delimiter = "c";
						}
					}
				}

				if (selection != "") {

					if (betstring != "") {
						delimiter = "|";
					} else {
						delimiter = "";
					}

					selection =
						delimiter +
						PickStakes[picks]["saxgame_id"] + "|" + 
						PickStakes[picks]["stake_amount"].toFixed(2) + "|" + 
						document.getElementById('NumberOfDraws').value + "||" +
						selection;

					betstring += selection;
				}
			}
		}

	} else {

		for(var i=0;i<array.length;i++) {
			var selection = "";
			var delimiter = "";
			var picks     = 0;

			var values = array[i];

			var balls = values.split(",");

			if (LOTTERIES.sort_lc == "49lotto") {
				for (var j=0;j<game;j++) {
					if (balls[j] != "" && balls[j] != null) {
						selection += delimiter + balls[j];
						picks++;
					}
					delimiter = "c";
				}
				delimiter = "ce";
				for (var j=game;j<6;j++) {
					selection += delimiter + balls[j];
				}
			} else {
				for (var j=0;j<6;j++) {
					if (balls[j] != "" && balls[j] != null) {
						selection += delimiter + balls[j];
						picks++;
					}
					delimiter = "c";
				}
			}

			if (selection != "") {
				if (betstring != "") {
					delimiter = "|";
				} else {
					delimiter = "";
				}

				selection =
					delimiter +
					PickStakes[picks]["saxgame_id"] + "|" + 
					PickStakes[picks]["stake_amount"].toFixed(2) + "|" + 
					document.getElementById('NumberOfDraws').value + "||" +
					selection;

				betstring += selection;
			}
		}
	}

	place_bet("Lottery",betstring);
}

/*
* KMP Additions 20/07/2007
*/

function ClearSteps3And4() {
	if (gridLocked) return;
	document.getElementById('rbnCombination1').checked = false;
	document.getElementById('rbnCombination2').checked = false;

	document.getElementById('step3').style.display = "none";
	document.getElementById('step4').style.display = "none";
	clearStep4();
}
/*
* END KMP ADDITION
*/


// Orbis 25/07/2007
// function to store user's lottery selections in cookie before login/register 
// so page will refresh with the user's same selections
function store_lottery_in_cookie()
{
	var stepdelimiter = "|";
	var selectiondelimiter = ":";
	var balldelimiter = "c";
	var gamedelimiter = "X";

	var steps = new Array();
	var selections = new Array();

	var balls = new Array();

	// step 1 
	steps[0] = game;

	// get list of balls from selections
	if (gameType == GAMETYPE_COMBO) {

		for (var i=1;i<=6;i++) {
			if (document.getElementById('pickedBall'+i).innerHTML != "") {
				balls[balls.length] = document.getElementById('pickedBall'+i).innerHTML;
			}
		}

		// step 2
		steps[1] = balls.join(balldelimiter);


	} else {
		for(var i=0;i<array.length;i++) {

			var values = array[i].split(",");
			balls.length = 0;

			for (var j=0;j<6;j++) {
				if (values[j] != "" && values[j] != null) {
					balls[balls.length] = values[j];
				}
			}

			selections[selections.length] = balls.join(balldelimiter);
		}

		// step 2
		steps[1] = selections.join(selectiondelimiter);
	}

	// step 3
	steps[2] = gameType;

	// number of draws
	steps[3] = document.getElementById('NumberOfDraws').value;

	clear_save_cookie();
	save_gameplay(getParameter("cat") + gamedelimiter + steps.join(stepdelimiter));
}

// Orbis 25/07/2007
// function to show users selections after login/register from coookie
function load_lottery_selections(justLoggedIn)
{
	var stepdelimiter = "|";
	var selectiondelimiter = ":";
	var balldelimiter = "c";
	var gamedelimiter = "X";

	var cookie_content = get_save_cookie();

	if (cookie_content != null) { 

		var cookie_content = cookie_content.split(gamedelimiter);

		if (cookie_content[0].match(/LOTTO/)) {

			steps = cookie_content[1].split(stepdelimiter);

			// step 1
			document.getElementById("rbn"+steps[0]+"Number").click();

			if (steps[2] == GAMETYPE_STRAIGHT) {
				var selections = steps[1].split(selectiondelimiter);

				for (var i=0;i<selections.length;i++) {

					if (i>0) {
						// repeat step 2-3
						addNewStraightBet();
					}
					// step 2
					var balls = selections[i].split(balldelimiter);

					for (var j=0;j<balls.length;j++) {
						BallClicked(balls[j])
					}

					ConfirmStep2();

					// step 3
					if (i ==0) { 
						document.getElementById("rbnCombination2").click();
					}
				}

			} else {
				// step 2
				var balls = steps[1].split(balldelimiter);

				for (var i=0;i<balls.length;i++) {
					BallClicked(balls[i])
				}

				ConfirmStep2();

				// step 3
				document.getElementById("rbnCombination1").click();
			}

			// number of draws
			document.getElementById('NumberOfDraws').value = steps[3];
			CalculateTotals();

			if (justLoggedIn == 0) {
				clear_save_cookie();
			}
		}
	}
}

/* Adds the <option>s to a <select> drop down*/
function write_sub_options(selID,maxSubs){
	//alert("ID: "+selID+", min: "+minSubs+", max: "+maxSubs);
	var theInd = 0;
	//var theOpt;
	var theOpt = document.getElementById(selID).options;
	
	for (var i=1;i<=maxSubs;i++){
		if (i==1){
			theOpt[theInd] = new Option(i,i,false,true);
		} else {
			if(theInd<10){
				theOpt[theInd] = new Option(i,i,false,false);
			} else {
				if (i%5==0){
					theOpt[theInd] = new Option(i,i,false,false);
				} else {
					theInd--
				}
			}
		}
		theInd++;
	}
}

