﻿//Configurable setting
var total_number = 49 ;		//Total number of balls
var number_per_row = 10 ;	//Number of balls per row
var number_per_entry = 49 ; //min is 6 ; max is 49 (number of balls in a betline inc banker)
var banker_per_entry = 5 ; 	//min is 0 ; max is 5 (number of bankers in a betline)
var total_entry = 1 ; 		//max is 15 enties (15 betlines)

//Global variables
var selectedNumber = 0 ;
var selectedBanker = 0 ;

//Detect browser type
var isIE = false ;
if (navigator.userAgent.toLowerCase().indexOf("msie") != -1)
	isIE = true ;

//Program start
var numberpad1 = null ; 
var displaybox1 = null ;

function displaybox(number_of_entry)
{
	//attribute
	this.no_of_entry = number_of_entry ;
	this.entry = new Array() ;
	this.highlighted_entry = 0 ;
	this.updatednumber = null ;	
	this.entryIsEditable = false ;
	this.currentEntry = null ;
	this.invalidEntry = -1 ;
	this.canSelectField = false ;
	this.checkWin = false ;
	this.addToBetslipOK = false ;
	
	//event
	this.init = init ;
	this.unload = unload ;
	this.display = display ;
	this.selectField = selectField ;
	this.updateEntry = updateEntry ;
	this.checkEntryIsEditable = checkEntryIsEditable ;
	this.validateEntry = validateEntry ;
	this.resetEntry = resetEntry ;
	this.getAllEntries = getAllEntries ;
	this.fillAllEntries = fillAllEntries ;
	this.checkEntryCanSelectField = checkEntryCanSelectField ;
	this.fillOtherNumbers = fillOtherNumbers ;

	function init()
	{
		for (var n=1;n<=number_of_entry;n++)
		{
			this.entry[this.entry.length] = new selection(number_per_entry);	
		}
	}
	
	function unload()
	{
		number_of_entry = 0 ;
		this.entry = null ;		
	}
		
	function display()
	{
		var count = 0 ;
		var tmpOut = "" ;
		this.currentEntry = this.entry[this.highlighted_entry].num ;
		var blnIsToShowInit = true ;

		clear_chance() ;	
	
		try {
		
			if (document.form1.asptype.value == "auto")
			{
				for (var n=1;n<=15;n++)
				{		
					if ((n <= this.entry.length) && (this.entry[n-1].num.length > 0) && (this.entry[n-1].num[0].status != 0))
					{
						document.getElementById("bet"+(n)).style.display = "block" ;					
						blnIsToShowInit = false;
					}
					else
					{
						document.getElementById("bet"+(n)).style.display = "none" ;
					}
		
				}
				if (blnIsToShowInit)
					document.getElementById("bet1").style.display = "block" ;
			}
		}
		catch (e) {;}
		
		for (var n=0;n<this.entry.length;n++)
		{
			tmpOut = "" ;
			count = 0 ;
			selectedNumber = 0 ;
			selectedBanker = 0 ;
			if (total_entry > 1)
			{
				if (n == this.highlighted_entry)
				{
					document.getElementById("bet"+(n+1)).className = "bg_highlight_color1" ;
				}
				else
				{
					if (n%2 == 0)
						document.getElementById("bet"+(n+1)).className = "bg_prize_color1" ;		
					else
						document.getElementById("bet"+(n+1)).className = "bg_prize_color2" ;
				}
			}
			tmpOut += "<table border='0' cellpadding='1' cellspacing='1'><tr>" ;			
			this.entry[n].num.sort(sortNumArray) ;
				//draw status 2 first
				for (var m=0; m<this.entry[n].num.length;m++)
				{	
					if (this.entry[n].num[m].status == 2)
					{
						tmpOut += "<td align='left'>";
						if (document.form1.asptype.value == "self" || document.form1.asptype.value == "checkwin")
							tmpOut += "<a href='javascript:clear_number(" + this.entry[n].num[m].value + ")'>";						
						tmpOut += "<img border=0 src='/marksix/info/" + lang + "/images/mark6/icon/banker/no_" + this.entry[n].num[m].value + ".gif' width='27' height='28'>" ;
						if (document.form1.asptype.value == "self" || document.form1.asptype.value == "checkwin")
							tmpOut += "</a>";												
						tmpOut += "</td>" ;
						count ++ ;
						selectedBanker ++ ;
						if (count!=0 && count%10==0)
							tmpOut += "</tr><tr>" ;				
					
					}					
				}
				if (count > 0)
					tmpOut += "<td align='left'><font size='2'><strong> &gt;</strong></font></td></tr></table><table width='100%' border='0' cellpadding='1' cellspacing='1'><tr><td colspan=20 bgcolor=black width=300></td></tr></table><table border='0' cellpadding='1' cellspacing='1'><tr>"
					
				count = 0 ;
				for (var m=0; m<this.entry[n].num.length;m++)
				{						
					if (this.entry[n].num[m].status == 1)
					{						
						tmpOut += "<td align='left'>";
						if (document.form1.asptype.value == "self" || document.form1.asptype.value == "checkwin")
							tmpOut += "<a href='javascript:clear_number(" + this.entry[n].num[m].value + ")'>";						
						//tmpOut += "<img border=0 src='/marksix/info/" + lang + "/images/mark6/icon/normal/no_" + this.entry[n].num[m].value + ".gif' width='27' height='28'>" ;
						if (document.form1.asptype.value == "self" || document.form1.asptype.value == "checkwin")
							tmpOut += "</a>" ;
						tmpOut += "</td>" ;
						count ++ ;
						selectedNumber ++ ;
						if (count!=0 && count%10==0)
							tmpOut += "</tr><tr>" ;				

					}		

				}

			tmpOut += "</tr></table>" ;
			document.getElementById("displaybox" + (n+1)).innerHTML = tmpOut ;				
			calculateChance(selectedNumber, selectedBanker, n) ;
		}
		calculateTotalChance() ;
		document.getElementById("betdisplay").style.display = "block" ;		
	}

	function selectField()
	{
		var n = this.highlighted_entry ;
		for (var m=0; m<this.entry[n].num.length; m++)
		{
			if (this.entry[n].num[m].status == 0)
			{
				this.entry[n].num[m].status = 1 ;
			}
			
		}
		this.display() ;
	}

	function updateEntry()
	{
		var blnGo = true ;
		var n = this.highlighted_entry ;
		var newnum = this.updatednumber.value ;
		var newnumstatus = this.updatednumber.status ;
		for (var m=0; m<this.entry[n].num.length; m++)
		{
			if (this.entry[n].num[m].value == newnum)
			{ 				
				this.entry[n].num[m].status = newnumstatus ;
				this.updatednumber = null ;				
				m =  this.entry[n].num.length ;
				blnGo = false ;
			}	
		}
		if (blnGo)
		{
		    for (m=0; m<this.entry[n].num.length;m++)
		    {
			if (this.entry[n].num[m].status== 0)
			{
				this.entry[n].num[m].value = newnum ;
				this.entry[n].num[m].status = newnumstatus ;
				this.updatednumber = null ;				
				m =  this.entry[n].num.length ;
			}	
 		    }
		}
		

	}

	function checkEntryIsEditable() //True when not full or number exists already
	{
	    try
	    {
		this.entryIsEditable = true;
		var n = this.highlighted_entry ;
		for (var m=0; m<this.entry[n].num.length;m++)
		{
			if (this.entry[n].num[m].status == 0 || this.entry[n].num[m].value == this.updatednumber.value)
			{
				this.entryIsEditable = false ;
			}	
		}
		
	    }
	    catch(e){;}
	}

	function checkEntryCanSelectField() //True when not full or number exists already
	{
	    try
	    {
		this.canSelectField = false;
		var n = this.highlighted_entry ;

		if (this.entry[n].num.length == 49)
		{	
			for (var m=0; m<this.entry[n].num.length;m++)
			{
				if (this.entry[n].num[m].status == 0)
				{
					this.canSelectField = true ;
				}	
			}	
		}
		
	    }
	    catch(e){;}
	}

	function validateEntry()
	{
		var unselect_count = 0 ;
		var banker_count = 0 ;
		var number_count = 0 ;
		this.invalidEntry = -1 ;
		for (var n=0; n<this.entry.length;n++)
		{
			banker_count = 0 ;
			numbeR_count = 0 ;
			number_count = 0 ;
			for (var m=0; m<this.entry[n].num.length;m++)
			{
				if (this.entry[n].num[m].status == 0)
					unselect_count ++ ;
				if (this.entry[n].num[m].status == 1)
					number_count++ ;		
				else if (this.entry[n].num[m].status == 2)
					banker_count++ ;		
				
			}
			if (banker_count == 0 && number_count == 0)
			{
				//by pass this case
			}			
			else if (banker_count > 5)
			{
				this.invalidEntry = n ;
				n = this.entry.length ;
				alert(m6_too_many_banker_desc) ;
			}			
			else if (banker_count == 0 && number_count < 6)
			{
				this.invalidEntry = n ;
				n = this.entry.length ;
				alert(m6_insufficient_sel_desc) ;
			}
			else if (banker_count == 1 && number_count < 6)
			{
				this.invalidEntry = n ;
				n = this.entry.length ;
				alert(m6_insufficient_sel_desc) ;
			}
			else if (banker_count == 2 && number_count < 5)
			{
				this.invalidEntry = n ;
				n = this.entry.length ;
				alert(m6_insufficient_sel_desc) ;
			}
			else if (banker_count == 3 && number_count < 4)
			{
				this.invalidEntry = n ;
				n = this.entry.length ;
				alert(m6_insufficient_sel_desc) ;
			}
			else if (banker_count == 4 && number_count < 3)
			{
				this.invalidEntry = n ;
				n = this.entry.length ;
				alert(m6_insufficient_sel_desc) ;
			}
			else if (banker_count == 5 && number_count < 2)
			{
				this.invalidEntry = n ;
				n = this.entry.length ;
				alert(m6_insufficient_sel_desc) ;
			}
			else if (this.entry[n].num.length == 49 && unselect_count == 0 && banker_count == 0)
			{
				if (document.form1.asptype.value == "checkwin")
				{	
					//By pass this rule for checkwin (except 1 means addtobetslip)
					if (document.form1.clicktype.value == "1")
					{
						alert(m6_value_too_big_desc) ;
						this.invalidEntry = n ;
						n = this.entry.length ;					
					}										
				}
				else
				{
					alert(m6_value_too_big_desc) ;
					this.invalidEntry = n ;
					n = this.entry.length ;
				}								
			}
							
			if (this.invalidEntry > -1)
				n = this.entry.length ;

		}
		this.addToBetslipOK = true ;
	}

	function resetEntry()
	{
		var n = this.highlighted_entry ;
		for (var m=0; m<this.entry[n].num.length;m++)
		{
			this.entry[n].num[m].status  = 0 ;			
		}
		this.display() ;
	}

	function getAllEntries()
	{
		var returnValue = 1;
		var tmpOut = "MK6 " ;
		var count = 0 ;
		var fieldSelected = true ;
		
		for (var n=0; n<this.entry.length;n++)
		{
			tmpOut = "MK6 " ;
			this.entry[n].num.sort(sortNumArrayStatus) ;
			for (var m=0; m<this.entry[n].num.length;m++)
			{
				if (this.entry[n].num[m].status == 2)
				{
					tmpOut += this.entry[n].num[m].value + "+" ;
					count ++ ;
				}
			}
			if (count > 0) //banker exists
			{
				tmpOut = tmpOut.substr(0,tmpOut.length-1) ;
				tmpOut += ">" ;
			}
			//check field selected
			for (var m=0; m<this.entry[n].num.length;m++)
			{
				if (this.entry[n].num[m].status == 0)
				{
					fieldSelected = false ;
					m = this.entry[n].num.length ;
				}
			}
			if (this.entry[n].num.length == 49 && fieldSelected)
				tmpOut += "F" ;
			else
			{
				for (var m=0; m<this.entry[n].num.length;m++)
				{
					if (this.entry[n].num[m].status == 1)
						tmpOut += this.entry[n].num[m].value + "+" ;
				}
				tmpOut = tmpOut.substr(0,tmpOut.length-1) ;			
			}
			if (tmpOut.length > 4 && returnValue == 1)
			{	
				if (this.checkWin)
				{
					location.href = "i_checkwin.aspx?lang=" + lang + "&check=" + tmpOut.replace(/\+/gi, "_") ;
				}
				else
				{
					var multiDraws = 1 ;					
					try {
						if (document.form1.asptype.value == "auto")
							multiDraws = document.getElementById("totaldraws").innerText ;
						else
							multiDraws = document.getElementById("draws_number").value ;							
					} catch (e) {;}
					
					returnValue = addToBetslip(tmpOut, multiDraws) ;				
					if (returnValue != 1) //betslip not accept betline, stop processing
					{
						n=this.entry.length ;
						this.addToBetslipOK = false ;
					}
					else
					{
						this.addToBetslipOK = true ;
						try {						
						if (document.form1.asptype.value=="self")
							Save_Newbet(tmpOut, document.getElementById("chance"+n).innerText) ;
						else if (document.form1.asptype.value=="checkwin")
							window.parent.Save_Newbet(tmpOut, document.getElementById("chance"+n).innerText) ;
						} catch (e) {;}
						clear_entry(n) ;											
						document.getElementById("bet"+(n+1)).style.display = "none" ;											
					}
				}
			}			
		}						
	}

	function fillAllEntries()
	{
		var blnRegen = true ;
		var Arraynum = new Array() ;
		var rannum = 0 ;
		var count = 0 ;		

		for (var n=0; n<this.entry.length;n++)
		{
			blnRegen = true ;
			Arraynum = new Array() ;
			rannum = 0 ;
			count = 0 ;			
			
			while (blnRegen || Arraynum.length < number_per_entry)
			{
				blnRegen = false ;
				rannum = Math.floor(Math.random()*49) + 1 ;
				for (var m=0; m<Arraynum.length;m++)
				{
					if (rannum == Arraynum[m])
						blnRegen = true ;
				}
				if (!blnRegen)
					Arraynum[Arraynum.length] = rannum ;			
			}

			for (var m=0; m<this.entry[n].num.length;m++)
			{
				this.entry[n].num[m].value = Arraynum[m] ;
				if (count < banker_per_entry)
				{
					this.entry[n].num[m].status = 2 ;
					count ++ ;
				}
				else
					this.entry[n].num[m].status = 1
			}
		}
		this.display() ;
	}

	function fillOtherNumbers()
	{
		var blnRegen = true ;
		var Arraynum = new Array() ;
		var rannum = 0 ;
		var count = 0 ;		

		var n = this.highlighted_entry ;
		
			blnRegen = true ;
			Arraynum = new Array() ;
			rannum = 0 ;
			count = 0 ;			
			b_count = 0 ;
			t_count = 0 ;
			
			for (var m=0; m<this.entry[n].num.length;m++)
			{
				if (this.entry[n].num[m].status == 1 || this.entry[n].num[m].status == 2)
				{
					Arraynum[Arraynum.length] = this.entry[n].num[m].value ;				
					if (this.entry[n].num[m].status == 2)
						b_count ++ ;							
					t_count ++ ;
				}
			}			
			if (b_count == 0)
			{
				if (t_count >= 6)
				{
					blnRegen = false ;				
					number_per_entry = t_count+1 ; //6 ;
					if (number_per_entry > 49)
						number_per_entry = 49 ;
				}
				else
					number_per_entry = 6 ;
					
				banker_per_entry = 0 ;								
			}
			else if (b_count >= 1 && b_count <= 5)
			{
				if (t_count >= 7)
				{
					blnRegen = false ;									
					number_per_entry = t_count+1 ; //7 ;
					if (number_per_entry > 49)
						number_per_entry = 49 ;
				}
				else
					number_per_entry = 7 ;
					
				banker_per_entry = count ;
			}			
			else
			{
				return false ;
			}
						
			while (blnRegen || Arraynum.length < number_per_entry)
			{			
				blnRegen = false ;
				rannum = Math.floor(Math.random()*49) + 1 ;
				for (var m=0; m<Arraynum.length;m++)
				{
					if (rannum == Arraynum[m])
						blnRegen = true ;
				}
				if (!blnRegen)
					Arraynum[Arraynum.length] = rannum ;			
			}
			
			for (var m=0; m<this.entry[n].num.length;m++)
			{
				for (var x=t_count;x<Arraynum.length;x++)
				{
					if (this.entry[n].num[m].value == Arraynum[x])					
						this.entry[n].num[m].status = 1 ;
					
				}
			}
		
	}
}

function selection(number_per_entry)
{

	//attribute
	this.no_of_numbers = number_per_entry ;	

	var strTmp = "" ;
	for (var n=0;n<number_per_entry;n++)
	{
		strTmp += "new number(" + (n+1) + ")," ;
	}
	

	eval("this.num = new Array (" + strTmp.substr(0,strTmp.length-1) + ") ;") ;

	//event	
}

function numberpad(total_number)
{
	//attribute
	this.total_no = total_number ;
	this.num = new Array() ;		
	this.updated_numbers = new Array() ;

	//event
	this.init = init ;
	this.reset = reset ;
	this.display = display ;
	this.selectField = selectField ;
	this.updateNumbers = updateNumbers ;

	function init()
	{
		for (var n=1;n<=total_number;n++)
		{
			this.num[this.num.length] = new number(n);			
		}
	}

	function reset()
	{

		for (var n=1;n<=total_number;n++)
		{
			this.num[n-1].status = 0 ;
		}
		this.display() ;
	}

	function display()
	{
		selectedNumber = 0 ;
		selectedBanker = 0 ;
		var count = 0 ;
		for (var n=1;n<=total_number;n++)
		{
			if (this.num[n-1].status == 0)
			{
				//document.getElementById("n"+n).src="/marksix/info/" + lang + "/images/mark6/icon/normal/no_" + n + ".gif" ;
				document.getElementById("n"+n).src="" ;
				document.getElementById("td"+n).style.background = "#ffffff" ;
				count ++ ;
				//document.getElementById("nf").src="/marksix/info/" + lang + "/images/mark6/icon/normal/no_f.gif" ;
				document.getElementById("nf").src="" ;
				document.getElementById("tdf").style.background = "#ffffff" ;
			}
			else if (this.num[n-1].status == 1)
			{
				document.getElementById("n"+n).src="/marksix/info/" + lang + "/images/mark6/icon/selnormal/no_" + n + ".gif" ;
				document.getElementById("td"+n).style.background = "#e8e8e8" ;				
			}
			else if (this.num[n-1].status == 2)
			{
				document.getElementById("n"+n).src="/marksix/info/" + lang + "/images/mark6/icon/banker/no_" + n + ".gif" ;
				document.getElementById("td"+n).style.background = "#F6E969" ;				
			}	
		}
		if (count == 0)
		{
			document.getElementById("nf").src="/marksix/info/" + lang + "/images/mark6/icon/selnormal/no_f.gif" ;
			document.getElementById("tdf").style.background = "#e8e8e8" ;
		}		
		document.getElementById("numberselector").style.display = "block" ;
	}

	function selectField()
	{

		for (var n=1;n<=total_number;n++)
		{
			if (this.num[n-1].status == 0)
			{
				this.num[n-1].status = 1 ;
			}			
		}
		this.display() ;
	}

	function updateNumbers()
	{

		for (var n=0;n<total_number;n++)
		{
			this.num[n].status = 0 ; //refresh all status to 0
		}
		for (var n=0;n<this.updated_numbers.length;n++)
		{
			if (this.updated_numbers[n].status != 0)
			{
				this.num[this.updated_numbers[n].value-1].status = this.updated_numbers[n].status ;
			
			}			
		}
	}

}

function number(value)
{
	//attribute
	this.value = value ;
	this.status = 0 ;

	//event
	this.clear = clear;
	this.click = click;
	this.dblclick = dblclick;
	
	function clear()
	{
		this.status = 0 ;	
	}

	function click()
	{
		if (this.status==0)
			this.status = 1 ; 
		else if (this.status==1)
			this.status = 2 ;
		else
			this.status = 0 ;
	}

	function dblclick()
	{
		//adjust for 1 single click, all status + 1
		if (this.status==1)
			this.status = 2 ; 
		else if (this.status==2)
			this.status = 0 ;
	}

}

//Sorting expression for numbers (1 < 2)
function sortNumArray(a, b) 
{ 
	if (a.value == "" || b.value == "")
		return 0 ; 
	else
		return a.value - b.value ;

} 

//Sorting expression for number status (2 > 1)
function sortNumArrayStatus(a, b) 
{ 
	if (a.value == "" || b.value == "")
		return 0 ; 
	else
		return b.status - a.status;

} 

//*****************************************************************************************
//*********************************MATH FUNCTIONS********************************************
function f(n){
    if (n<=1) return 1;
    var ans = 1;
    for ( var i=2; i<=n; i++){
        ans *= i;
    }
    return ans;
}// End f()

function nCr(n, r){
    if (n==0 || r==0) return 0;
    // nCr = n!/[(n-r)!*r!] 
    return (f(n)/(f(n-r)*f(r)));
}// End nCr()    

// 999,999,999
function numberFormat(n){
	var numStr = "";
	if (typeof(n) != "undefined"){
		n = String(n).split(",").join("");
	}
	if (n != "" && !isNaN(n)){
		var n = String(Math.floor(n)); // integer
		var dotPos = n.indexOf(".");
		if (dotPos == -1) {
			dotPos = n.length;
		} else {
			n = n.substring(0, dotPos);
			dotPos = n.length;
		}
		for (var k = dotPos-3; k > 0; k-=3){
			n = n.substring(0,k) + "," + n.substring(k, n.length);
		}
		numStr = n;
	}
	return numStr;
}

// eval(999999999) remove commas
function numberFormat2(n){
	var n = n.toString().split(",").join("");
	if (!isNaN(n)){
		n = eval(n);
	} else {
		n = 0;
	}
	return n;
}
//*****************************************************************************************
//*********************************USER ACTIONS********************************************
var dClkRes = 500;    // double-click speed in ms
var timeMouseDown=0; // last mouse down time
var lastX=0   //  last x
var lastY=0;  //  last y
function number_onmouseup(n,x, y)
{
	if (allloaded)
	{
		var currentTime  = new Date() ;	
		if (isIE)
		{
			displaybox1.updatednumber = numberpad1.num[n] ;
			displaybox1.checkEntryIsEditable() ;
			if (displaybox1.entryIsEditable == false)
			{
				//Check if user click is single click or double click       	
	    			if ((lastX==x) && (lastY==y) && ((currentTime-timeMouseDown) < dClkRes))
				{
					numberpad1.num[n].dblclick() ;			
				}
				else
				{
					numberpad1.num[n].click() ;			
				}
				numberpad1.display() ;
				displaybox1.updateEntry() ;	
				displaybox1.display() ;

			}
				lastX=x;
       			lastY=y;
				timeMouseDown = currentTime;
				
			try 
			{	//check win
				if (document.getElementById("queryResult").innerHTML != "")
				{
					document.getElementById("queryResult").innerHTML = "" ; 	
					calcHeight() ;
				}
			} catch(e){;}
		}
	}
	else
		main() ;
}

function clear_entry(n)
{
	try
	{
		displaybox1.highlighted_entry = n ;
		displaybox1.resetEntry() ;
		numberpad1.reset() ;
		try { document.getElementById("queryResult").innerHTML = "" ; 	} catch(e){;}
		
		if (document.form1.asptype.value == "self")
			isRandGen = 0 ;
	}
	catch(e) {;}	
	
	try 
	{	//check win
		calcHeight() ;		
	} catch(e){;}
}


function add_entry()
{
	try
	{
		displaybox1.validateEntry() ;
		if (displaybox1.invalidEntry > -1)
		{
			//highlight_entry(displaybox1.invalidEntry) ;
			//alert("Invalid selection!!") ;				
		}
		else
		{
			displaybox1.getAllEntries() ;						
		}
		
		displaybox1.display() ;
	}
	catch(e) {;}
	
	try
	{
		if (displaybox1.addToBetslipOK)
			Add_Savedbet_Entry();
	}
	catch(e) {;}
	
	try
	{
		if (document.form1.asptype.value == "auto")
			savePreviousSetting() ;
	}
	catch(e) {;}

}

function check_win()
{
	try
	{
	if (allloaded)
	{
		if (isIE)
		{
		
			displaybox1.validateEntry() ;

			if (displaybox1.invalidEntry > -1)
			{
				//highlight_entry(displaybox1.invalidEntry) ;
				//alert("Invalid selection!!") ;				
			}
			else
			{
				displaybox1.checkWin = true ;
				displaybox1.getAllEntries() ;
				displaybox1.checkWin = false ;						
			}
			
			displaybox1.display() ;
		}
	}
	}
	catch(e) {;}

}


function highlight_entry(n)
{
	try 
	{	
		displaybox1.highlighted_entry = n ;
		displaybox1.display() ;			
		numberpad1.updated_numbers = displaybox1.currentEntry ;
		numberpad1.updateNumbers() ;
		numberpad1.display() ;
	}
	catch(e) {;}
}

function select_field()
{
	if (isIE)
	{
		displaybox1.checkEntryCanSelectField() ;
		if (displaybox1.canSelectField)
		{
			displaybox1.selectField() ;	
			numberpad1.selectField() ;
		}
		try 
		{	//check win
			if (document.getElementById("queryResult").innerHTML != "")
			{
				document.getElementById("queryResult").innerHTML = "" ; 	
				calcHeight() ;
			}			
		} catch(e){;}
	}
}

function clear_chance()
{
	try {
		for (var n=1;n<=15;n++)
		{		
			if (n == 1)
				document.getElementById("bet"+(n)).style.display = "block" ;
			else
				document.getElementById("bet"+(n)).style.display = "none" ;
			document.getElementById("chance" + (n-1)).innerText = "0" ;
		}
	}
	catch (e) {;}	
}

function calculateChance(selectval, bankerval, entry)
{
    try
	{
		if (bankerval > 5 || (bankerval > 0 && (bankerval + selectval) < 7))
			document.getElementById("chance" + entry).innerText = "0" ;
		else
		{
			var subchance = nCr(selectval, (6 - bankerval));        
			document.getElementById("chance" + entry).innerText = numberFormat(Math.round(subchance));
		}
	}
	catch (e) {;}
}

function calculateTotalChance()
{
	try
	{
		var chance = 0 ;
		for (var n=1;n<=15;n++)
		{
			chance += parseInt(numberFormat2(document.getElementById("chance" + (n-1)).innerText));					
		}	
		document.getElementById("totalchance").innerText = numberFormat(chance) ;		
	}
	catch (e) {;}
}

//For Auto Pick Only
function generate_luckynum()
{
	try
	{
		if (isIE)
		{	
			if (document.form1.comb_method[0].checked)
			{
				total_entry = parseInt(document.getElementById("entry_number").value) ;
				number_per_entry = 6 ; 
				banker_per_entry = 0 ; 
			}
			else if (document.form1.comb_method[1].checked)
			{
				total_entry = parseInt(document.getElementById("entry_number").value) ;
				number_per_entry = parseInt(document.getElementById("multiple_number").value) ; 
				banker_per_entry = 0 ; 

			}
			else if (document.form1.comb_method[2].checked)
			{
				total_entry = parseInt(document.getElementById("entry_number").value) ;
				number_per_entry = parseInt(document.getElementById("leg_number").value)+parseInt(document.getElementById("banker_number").value) ; 
				banker_per_entry = parseInt(document.getElementById("banker_number").value) ; 
			}
			displaybox1 = new displaybox(total_entry) ; 
			displaybox1.init() ;		
			displaybox1.fillAllEntries() ;		
			document.getElementById("totaldraws").innerText = document.getElementById("draws_number").value ;
		}		
		xsell_event(8);				
	}
	catch(e) {;}
}

//For Self Pick Only
function clear_number(n)
{
	if (isIE)
	{		
		n = n - 1 ;
		displaybox1.updatednumber = numberpad1.num[n] ;		
		numberpad1.num[n].clear();		
		numberpad1.display() ;		
		displaybox1.updateEntry() ;			
		displaybox1.display() ;
		try 
		{	//check win
			if (document.getElementById("queryResult").innerHTML != "")
			{
				document.getElementById("queryResult").innerHTML = "" ; 	
				calcHeight() ;
			}
		} catch(e){;}
					
	}
}

function rangen_complete(n)
{
	try
	{
	if (allloaded)
	{
		if (isIE)
		{
			displaybox1.highlighted_entry = n ;
			displaybox1.fillOtherNumbers() ;					
			displaybox1.display() ;			
			numberpad1.updated_numbers = displaybox1.currentEntry ;
			numberpad1.updateNumbers() ;			
			numberpad1.display() ;			
			
			isRandGen = 1 ;
			
		}
		xsell_event(8);
	}
	}
	catch(e) {;}
}

//For selecting pre-defined numbers. (assume only 1 entry)
function select_predefined_numbers(betline)
{
	betline = betline.split("#")[0].split(" ")[1] ;
			
	if (allloaded)
	{
		if (isIE)
		{
			clear_entry(0) ; //only 1 entry
		
			var the_nums = betline.split(">") ;
			if (the_nums.length==2)
			{
				nums = the_nums[0].split("+") ;
				for (var i=0;i<nums.length;i++)
				{
					if (isNaN(nums[i]))
						return false ;
						
					var n = nums[i]-1 ;
			
					displaybox1.updatednumber = numberpad1.num[n] ;
					displaybox1.checkEntryIsEditable() ;
					if (displaybox1.entryIsEditable == false)
					{
						numberpad1.num[n].click() ;
						numberpad1.num[n].click() ;
						
						numberpad1.display() ;
						displaybox1.updateEntry() ;
						displaybox1.display() ;

					}				
				}
				nums = the_nums[1].split("+") ;
				
				if (nums.length >= 1)
				{
					if (nums[0] == "F")
					{
						var subNums = "";
						var mainNumCounter = 0;
						
						mainNums = the_nums[0].split("+");
						
						var mainNum = mainNums[mainNumCounter];
						
						for (var i=1; i<=49; i++)
						{
							if (mainNum != i)
							{
								if (subNums == "")
								{
									subNums = "" + i;
								}
								else
								{
									subNums += "+" + i;
								}
							}
							else
							{
								mainNumCounter++;
								if (mainNums.length > mainNumCounter)
								{
									mainNum = mainNums[mainNumCounter];
								}
							}
						}
						nums = subNums.split("+");
					}
				}
			}
			else
				nums = the_nums[0].split("+") ;
			
			for (var i=0;i<nums.length;i++)
			{
				if (isNaN(nums[i]))
				{
						return false ;
				}
					
				var n = nums[i]-1 ;
		
				displaybox1.updatednumber = numberpad1.num[n] ;
				displaybox1.checkEntryIsEditable() ;
				if (displaybox1.entryIsEditable == false)
				{
					numberpad1.num[n].click() ;	
										
					numberpad1.display() ;
					displaybox1.updateEntry() ;
					displaybox1.display() ;

				}				
				
			}
			
			//check result automatically after numbers drawn
			document.form1.clicktype.value='0'; 
			check_win() ;
			
		}
	}
	else
		main() ;
}


//Check Start/Stop Sell Status
var check_draw_type = 1 ;
		
var CheckDoc = new ActiveXObject("microsoft.xmldom");
function checkStartSellInfo()
{ 
	CheckDoc.load(serverurl+"?type=jcbwmarksix_sellinfo");
	checkStartSellInfo_Load() ;
}

function checkStartSellInfo_Load()
{
	if (CheckDoc!=null)
	{
		if (CheckDoc.readyState == "4")
			checkStartSellInfo_Main() ;
		else
			window.setTimeout("checkStartSellInfo_Load()", 400);		
	}
}

function checkStartSellInfo_Main()
{		
		if (next_draw == GetAttribute(CheckDoc.selectNodes("OUT")[0],"DRAW_ID") && next_draw!="-")
		{
			check_draw_type = 1 ;
			if (GetAttribute(CheckDoc.selectNodes("OUT")[0],"DRAW_SELL") == "0")
				draw_start = false ;
			else
				draw_start = true ;
		}	
		else if (next_draw == GetAttribute(CheckDoc.selectNodes("OUT")[0],"ADV_SB_ID") && next_draw!="-")
		{
			check_draw_type = 2 ;
			if (GetAttribute(CheckDoc.selectNodes("OUT")[0],"ADV_SB_SELL") == "0")
				adv_sb_start = false ;
			else
				adv_sb_start = true ;
		}							
		setTimeout("checkStartSellInfo()", self.refreshrate);	
}

function GetAttribute(po_Node,ps_Name,pb_UDC)
{
	try{
		if (pb_UDC)
			return ConvertUDC(po_Node.selectNodes("@"+ps_Name)[0].text)
		else
			return po_Node.selectNodes("@"+ps_Name)[0].text;
	}
	catch(e) {}
}

//For lucky number - random gen send bet pages
function rangen_add_entry()
{
	try
	{
		if (isIE)
		{		
			//Get numbers from inputbox and inset into array arrLuckyNums
			var arrLuckyNums = new Array() ; 
			var luckyNums = document.getElementById("luckyBox").value ;
			luckyNums = luckyNums.replace(/ /g,"") ;	
			
			if (luckyNums.length==0 || isNaN(luckyNums) || parseInt(luckyNums)<=0 || parseInt(luckyNums)>49)
			{
				document.getElementById("luckyBox").value = "" ;
				alert(strRanGenInvalidInput) ;
				return false ;
			}
			
			arrLuckyNums[arrLuckyNums.length] = parseInt(luckyNums) ;
			
			var tmpOut = "" ;
			var blnRegen = true ;
			var Arraynum = new Array() ;
			var rannum = 0 ;						
			
			//Random select one number from inputbox
			var num = arrLuckyNums[Math.floor(Math.random()*arrLuckyNums.length)] ;			
			if (num > 0 && num <= 49)
				Arraynum[0] = num ;						
						
			while (blnRegen || Arraynum.length < 6)
			{
				blnRegen = false ;
				rannum = Math.floor(Math.random()*49) + 1 ;
				for (var m=0; m<Arraynum.length;m++)
				{
					if (rannum == Arraynum[m])
						blnRegen = true ;
				}
				if (!blnRegen)
					Arraynum[Arraynum.length] = rannum ;			
			}

			Arraynum.sort(sortNumArray2) ;						
			
			if (Arraynum.length > 0)
			{
				var multiDraws = 1 ;
				try {
					multiDraws = document.getElementById("totaldraws").innerText ;
				}
				catch (e) {;}
				for (var n=0;n<Arraynum.length;n++)
				{
					tmpOut += Arraynum[n]+"+" ;
				}
				tmpOut = "MK6 " + tmpOut.substr(0,tmpOut.length-1) ;				
				var returnValue = addToBetslip(tmpOut, multiDraws) ;
				if (returnValue == 1) //betslip not accept betline, stop processing
				{
					document.getElementById("luckyBox").value = "" ;
					document.getElementById("rangen_result").innerHTML = strRanGenReturnMsg ;
				}
			}					
		}		
	}
	catch(e) {;}
}

function sortNumArray2(a, b) 
{ 
	if(a > b) 
      return 1 
   if(a < b) 
      return -1 
   return 0 

} 

//for Self Pick cookies only
var total_no_bets = 30 ;
var arrFull = new Array(30) ;

function convertCookieToNew()
{
	var betline = "" ;
	var temp = "" ;
	var full = getCookie("m6bets") ;
	if (full != null && full != "")
		return false ;	
		
	var found = false ;
	for (var n=1;n<=15;n++)
	{
		betline = getCookie("jcbwm6"+n) ;
		if (betline!=null&&betline!="")
		{
			deleteCookie("jcbwm6"+n) ;
			arrFull[n-1] = betline ;
			found = true ;
		}	
		temp += arrFull[n-1] + "@" ;
	}
	if (found)
		setCookie("m6bets", temp.replace(/undefined/gi,""),  999) ;	
}

function getM6Cookie(name)
{
	var full = getCookie("m6bets") ;
	if (full == null || full == "")
		return null ;	
	var arrTemp = full.replace(/undefined/gi,"").split("@") ;
	for (var n=0;n<arrFull.length;n++)
	{
		if (n<arrTemp.length)
			arrFull[n] = arrTemp[n] ;
		else
			arrFull[n] = "" ;
	}	
	var id = parseInt(name)-1 ;
	return arrFull[id] ;
}

function setM6Cookie(name, value, expires)
{
	var id = parseInt(name)-1 ;
	arrFull[id] = value ;	
	var temp = "" ;
	for (var n=0;n<arrFull.length;n++)
	{
		temp += arrFull[n] + "@" ;
	}
	setCookie("m6bets", temp.replace(/undefined/gi,""),  expires) ;	
}

function deleteM6Cookie(name)
{
	var id = parseInt(name)-1 ;
	arrFull[id] = "" ;	
	var temp = "" ;
	for (var n=0;n<arrFull.length;n++)
	{
		temp += arrFull[n] + "@" ;
	}
	setCookie("m6bets", temp, 999) ;
}

function Display_Savedbets(refreshCheckbox)
{	
	if (refreshCheckbox==undefined||refreshCheckbox==null)
		refreshCheckbox = false ;

	if (!window['savebettable'])
  		return false ;
  		
	window['savebettable'].style.display = "none" ;					
	var chance = null ;
	var betline = null ;
	for (var n=1;n<=total_no_bets;n++)
	{
		window['m6_'+n].style.display="none" ;	
		if (refreshCheckbox)
			window['m6a_'+n].checked = false ;
		window['m6b_'+n].innerText = "" ;			
		window['m6c_'+n].innerText = "" ;
			
		//betline = getCookie("jcbwm6"+n) ;
		betline = getM6Cookie(n) ;
		if (IsValidCookieBetline(betline, true))
		{			
			chance = betline.split("#")[1] ;
			betline = betline.split("#")[0] ;
			betline = betline.substr(4) ;
			window['m6b_'+n].innerHTML = formatDisplay_SavedBet(betline) ;			
			window['m6c_'+n].innerText = chance ;			
			window['m6_'+n].style.display="block" ;
			window['savebettable'].style.display = "block" ;					
		}	
		else		
		{
			if (betline!=null&&betline!="")
			{
				Delete_Savedbet(n, true)	
				n -- ;
			}
		}
	}
}

function Save_Newbet(thisbetline, chance)
{
  if (!window['savebet'])
  	return false ;
  	
  if (window['savebet'].checked)
  {
  	var lastid = 0 ;
	var betline = null ;
	for (var n=total_no_bets;n>=1;n--)
	{
		//betline = getCookie("jcbwm6"+n) ;
		betline = getM6Cookie(n) ;
		if (betline!=null && betline!="")
		{
			lastid=n+1;
			n = 0 ;			
		}	
	}
	if (lastid > total_no_bets)
	{
		alert(m6_cookiefull_desc) ;
		window['savebet'].checked = false ;
		return false ;
	}
	else if (lastid == 0)
		lastid = 1 ;
	//setCookie("jcbwm6"+lastid, thisbetline+"#"+chance, 999) ;
	setM6Cookie(lastid, thisbetline+"#"+chance, 999) ;
	Display_Savedbets() ;
  }
  window['savebet'].checked = false ;
  try { //for checkwin
	if (window.body_frame)
		window.body_frame.document.getElementById("savebet").checked = false ;
	} catch (e) {;}
}

function Delete_Savedbet(id, noRefresh)
{
	if (noRefresh==undefined || noRefresh==null)
		noRefresh = false ;
		
	id = parseInt(id) ;	
	for (var n=id;n<=total_no_bets;n++)
	{
		var betline = null ;
		//deleteCookie('jcbwm6'+n) ;
		deleteM6Cookie(n) ;
		if (parseInt(n+1) <= total_no_bets)
		{
			//betline = getCookie("jcbwm6"+parseInt(n+1)) ;
			betline = getM6Cookie(parseInt(n+1)) ;
			if (betline!=null && betline!="")
			{
				//setCookie("jcbwm6"+n, betline, 999) ;		
				setM6Cookie(n, betline, 999) ;		
			}
		}
	}	
		
	if (!noRefresh)
		Display_Savedbets(true) ;
}

function Add_Savedbet_Entry()
{
	if (window['savebettable'].style.display == "block")
	{
		for (var n=total_no_bets;n>=1;n--)
		{
			if (window['m6_'+n].style.display == "block" && window['m6a_'+n].checked && window['m6b_'+n].innerText!="")
			{
					var multiDraws = 1 ;
					try {
						multiDraws = document.getElementById("draws_number"+n).value ;
					} catch(e) {;}															
					var betline = "MK6 " + window['m6b_'+n].innerHTML ;
					betline = betline.replace(/<br>/gi,"") ;
					betline = betline.replace(/&gt;/gi,">") ;
					
					var a = IsValidCookieBetline(betline) ;
					if (addToBetslip (betline, multiDraws) == 1)
						window['m6a_'+n].checked = false ;
					else
						n = 0 ;
			}
		}
	}		
}

function IsValidCookieBetline(betline, checkChance)
{
	var go = true ;
	var returnValue = true ;
	
	
	if (checkChance == undefined || checkChance == null)
		checkChance = false ;
		
	try {
	if (betline!=null && betline!="")
	{
		if (betline.substr(0,4) == "MK6 ")
		{
			betline = betline.substr(4) ;
			if (checkChance && isNaN(betline.split("#")[1]))
			{				
				if (isNaN(betline.split("#")[1].replace(/,/gi,"")))
				{
					returnValue = false ;
					go = false ;
				}				
			}
			if (go)
			{
				betline = betline.split("#")[0];				
				var tmp1 = betline.split(">")[0].split("+") ;				
				for (var n=0;n<tmp1.length;n++)
				{
					if (isNaN(tmp1[n]))
					{
						if (tmp1[n]!="F")
							returnValue = false ;						
					}
					else if (parseInt(tmp1[n]) < 0||parseInt(tmp1[n]) > 49)
						returnValue = false ;					
					if (!returnValue)
						n = tmp1.length ;
				}				
				if (betline.split(">").length>1 && returnValue)
				{
					var tmp2 = betline.split(">")[1].split("+") ;				
					for (var n=0;n<tmp2.length;n++)
					{
						if (isNaN(tmp2[n]))
						{ 
							if (tmp2[n]!="F")
								returnValue = false ;
						}
						else if (parseInt(tmp2[n]) < 0||parseInt(tmp2[n]) > 49)
							returnValue = false ;						
						if (!returnValue)
							n = tmp2.length ;
					}				
				}		
			}
			
		}	
		else
			returnValue = false ;
	}	
	else
		returnValue = false ;
	}
	catch (e) { returnValue = false ; }
	
	return returnValue ;
}

function formatDisplay_SavedBet(betline)
{
	var breakcount = 11 ;
	var newstring = "" ;
	var count = 0 ;
	if (betline.split(">").length > 1)
	{
		count = betline.split(">")[0].split("+").length ;
		newstring += betline.split(">")[0] + ">" ;
		betline = betline.split(">")[1] ;		
	}
	var arrTmp = betline.split("+") ;
	for (var n=0;n<arrTmp.length ;n++)
	{
		if (count == breakcount)
		{
			count = 0 ;
			newstring += "<br>" ;					
		}
		newstring += arrTmp[n] + "+" ;
		count ++ ;
	}
	if (newstring!="")
		newstring = newstring.substr(0,newstring.length-1) ;
		
	return newstring ;

}

function clear_selfpick_form()
{
	try
	{
		document.getElementById("draws_number").value = "1" ;	
		document.getElementById("savebet").checked = false ;		
	}
	catch (e) {;}
}

function ShowHelpPopup(popUpUrl)
{
	window.open(popUpUrl, "HelpPopUp", "width=764,height=600,scrollbars=yes");
}

function ShowDemoPopup(popUpUrl)
{
	window.open(popUpUrl, "DemoPopUp", "width=770,height=550,scrollbars=yes");
}