var pnum = 0, pbonus = 0, nums = 0, minnum = 0, maxnum = 0, bonus = 0, minbonus = 0, maxbonus = 0, ticket = 0, tickets = 0;
var sUserAgent = navigator.userAgent;
var isWinIE = ((navigator.platform == "Win32") || (navigator.platform == "Windows")) && (sUserAgent.indexOf("compatible") > -1 && sUserAgent.indexOf("MSIE") > -1 && !(sUserAgent.indexOf("Opera") > -1));

function initialize(iTickets, iNums, iMinnum, iMaxnum, iBonus, iMinbonus, iMaxbonus) {
	tickets = iTickets;
	nums = iNums;
	minnum = iMinnum;
	maxnum = iMaxnum;
	bonus = iBonus;
	minbonus = iMinbonus;
	maxbonus = iMaxbonus;
	window.setTimeout('getObj("t00101").focus()', 10);
};

function pick3Change(obj) {
	var state = obj.options[obj.selectedIndex].value;
	
	if (state.length > 0) {
		location.href = 'orderp3.aspx?cmd=' + state;
	}
}

function pick4Change(obj) {
	var state = obj.options[obj.selectedIndex].value;
	
	if (state.length > 0) {
		location.href = 'orderp4.aspx?cmd=' + state;
	}
}

function getObj(id) {
	if (document.getElementById) {
		return document.getElementById(id);
	}
	else if (document.all) {
		return document.all[id];
	}

	return document.forms['OrderForm'].elements[id];
};

function NumPick(obj) {
	if (ticket==0) {
		getObj('t00101').focus();
	}

	if (obj.className.indexOf('ball_on') >= 0) {
		obj.className = 'ball_off';
		pnum--;
		syncFromPicker();
	}
	else {
		if (pnum < nums) {
			obj.className = 'ball_on';
			pnum++;
			syncFromPicker();
		}
	}
	return false;
};

function BonusPick(obj) {
	if (ticket==0) {
		getObj('t00101').focus();
	}

	if (obj.className.indexOf('bonus_on') >=0) {
		obj.className = 'bonus_off';
		pbonus--;
		syncFromPicker();
	}
	else {
		if (pbonus < bonus) {
			obj.className = 'bonus_on';
			pbonus++;
			syncFromPicker();
		}
	}
	return false;
};

function KeyPress(e) {
	var key;

	if (isWinIE) {
		e.charCode = e.keyCode;
	}

	key = e.charCode;

	return (((key >= 48) && (key <= 57)) || (key == 0));
};

function InputFocus(num) {

	if (ticket > 0) {
		var oldone = getObj('l'+ticket);
	
		if (oldone.className.indexOf('bad') >= 0) {
			oldone.className = 'bad';
		}
		else {
			oldone.className = '';
		}
	}

	var newone = getObj('l'+num);
	
	if (newone.className.indexOf('bad') >= 0) {
		newone.className = 'on bad';
	}
	else {
		newone.className = 'on';
	}
	
	ticket = num;
	syncFromEntry();
};

function Blur() {
	syncFromEntry();
};

function PrevTicket() {
	if (ticket > 1) {
		getObj(makeTicketID((ticket-1), 1, false)).focus();
	}
};

function PrevTicketDbl() {
	if (isWinIE) {
		PrevTicket();
	}
};

function NextTicket() {
	if (ticket < tickets) {
		getObj(makeTicketID((ticket+1), 1, false)).focus();
	}
};

function NextTicketDbl() {
	if (isWinIE) {
		NextTicket();
	}
};

function makeTicketID(t, n, b) {
	var t2 = '000'+t;
	var n2 = '00'+(b?nums+n:n);

	return 't'+t2.substr(t2.length-3)+n2.substr(n2.length-2);
};

function syncFromPicker() {
	var obj;

	if (ticket > 0) {
		// Main Numbers
		for (var x=1, y=1; (x<=maxnum) && (y<=nums); x++) {
			obj = getObj('n'+x);

			if (obj.className.indexOf('ball_on') >= 0) {
				obj = getObj(makeTicketID(ticket, y, false));
				obj.value = x;
				y++;
			}
		}
		for (; y<=nums; y++) {
			obj = getObj(makeTicketID(ticket, y, false));
			obj.value = '';
		}
			
		// Bonus Numbers
		for (x=1, y=1; (x<=maxbonus) && (y<=bonus); x++) {
			obj = getObj('b'+x);

			if (obj.className.indexOf('bonus_on') >= 0) {
				obj = getObj(makeTicketID(ticket, y, true));
				obj.value = x;
				y++;
			}
		}
		for (; y<=bonus; y++) {
			obj = getObj(makeTicketID(ticket, y, true));
			obj.value = '';
		}
			
	}
};

function syncFromEntry() {
	var obj, src, val;
	var strnums = '', strbonus = '';
	var reg = /\|\d{1,2}\|/g;

	if (ticket > 0) {
		pnum = 0;
		pbonus = 0;

		// Main Numbers
		strnums = '|'+getTicketNums(ticket).join('||')+'|';
		pnum = (strnums.search(reg) >= 0) ? strnums.match(reg).length : 0;

		for (var x=1; x<=maxnum; x++) {
			obj = getObj('n'+x);
			val = strnums.indexOf('|'+x+'|');

			if (obj.className.indexOf('ball_on') >= 0) {
				if (val == -1) {
					obj.className = 'ball_off';
				}
			}
			else if (val != -1) {
				obj.className = 'ball_on';
			}
		}

		// Bonus Numbers
		if (bonus > 0) {
			strbonus = '|'+getTicketBonus(ticket).join('||')+'|';
			pbonus = (strbonus.search(reg) >= 0) ? strbonus.match(reg).length : 0;

			for (x=1; x<=maxbonus; x++) {
				obj = getObj('b'+x);
				val = strbonus.indexOf('|'+x+'|');

				if (obj.className.indexOf('bonus_on') >= 0) {
					if (val == -1) {
						obj.className = 'bonus_off';
					}
				}
				else if (val != -1) {
					obj.className = 'bonus_on';
				}
			}
		}
	}
};

function cleanupNumber(org, max) {
	var val=org.replace(/\D/g, '');

	if (val.length > 2) {
		val = val.substring(0, 2);
	}

	val=val.replace(/(00)|(^0)/, '');

	if ((val < 1) || (val > max)) {
		val = '';
	}
	return val;
};

function FillQuickPicks() {
	var ary, strnums, val, x, y;

	for (x=1; x<=tickets; x++) {
		ary = getTicketNums(x);
		strnums = '|'+ary.join('||')+'|';

		for (y=0; y<nums; y++) {
			if (ary[y].length == 0) {
				do {
					val = Math.floor(Math.random()*maxnum)+1;
				} while (strnums.indexOf('|'+val+'|') >= 0);
				
				getObj(makeTicketID(x, y+1, false)).value = val;
				strnums += '|'+val+'|';
			}
		}

		if (bonus > 0) {
			ary = getTicketBonus(x);
			strnums = '|'+ary.join('||')+'|';

			for (y=0; y<bonus; y++) {
				if (ary[y].length == 0) {
					do {
						val = Math.floor(Math.random()*maxbonus)+1;
					} while (strnums.indexOf('|'+val+'|') >= 0);
					
					getObj(makeTicketID(x, y+1, true)).value = val;
					strnums += '|'+val+'|';
				}
			}
		}
	}
	
	syncFromEntry();
};

function getTicketNums(ticket) {
	var obj;
	var ary = new Array(nums);

	for (var x=0; x<nums; x++) {
		obj = getObj(makeTicketID(ticket, x+1, false));
		ary[x] = cleanupNumber(obj.value, maxnum);

		if (ary[x] != obj.value) {
			obj.value = ary[x];
		}
	}

	return ary;
};

function getTicketBonus(ticket) {
	var obj;
	var ary = new Array(bonus);

	for (var x=0; x<bonus; x++) {
		obj = getObj(makeTicketID(ticket, x+1, true));
		ary[x] = cleanupNumber(obj.value, maxbonus);

		if (ary[x] != obj.value) {
			obj.value = ary[x];
		}
	}

	return ary;
};

function ClearAll() {
	var x, y, obj;

	for (x=1; x<=tickets; x++) {
		for (y=1; y<=nums; y++) {
			obj = getObj(makeTicketID(x, y, false));
			obj.value='';
		}
		if (bonus > 0) {
			for (y=1; y<=bonus; y++) {
				obj = getObj(makeTicketID(x, y, true));
				obj.value='';
			}
		}
	}

	syncFromEntry();
};

function ResetForm() {
	document.forms['OrderForm'].reset();
	syncFromEntry();
};

function unknownJackpot(id) {
	try {
		document.getElementById(id).innerHTML = "Not Announced";
	}
	catch (e) {
	}
};
