// constants
var NO_OF_TICKETS  = 0;       //range for selection of tickets
var REG_MAX_AVAILABLE = 0;    //the quantity of numbers from the main block 
var POWER_MAX_AVAILABLE = 0;  //the quantity of numbers from the second block 
var REG_MAX_SELECTION = 0;    //the quantity of numbers that must be chosen from the main block
var POWER_MAX_SELECTION = 0;  //the quantity of numbers that must be chosen from the secondary block
var ACTIVE_TICKET = 0;        // to store active ticket number
var POW_START_BALL = 0;
var REG_HEADING_TABLE_ID = "regular_number_heading"; // regular number heading table id
var POW_HEADING_TABLE_ID = "power_number_heading"; // power number heading table id
var REG_HEADING = "Number Selector"; // regular number heading
var POW_HEADING = "Power Ball"; // power ball number heading
var REG_NUM_DIVID = "regular_number_selector"; // div id of the regular number selector
var POW_NUM_DIVID = "power_number_selector"; // div id of the power number selector

// global variables
var selActiveNumber;
var selActivePowerNumber;
var notWhitespace = /\S/;

var globalObjTickets

function makeNumberCell(target, name, position, value) {
   var cell = target.insertCell(position);
   cell.id = 'td_' + name + value;
   //cell.style.width = 20;
   //cell.style.height = 20;
   cell.setAttribute("width", 28);
   cell.setAttribute("height", 32);
   cell.style.lineHeight = '28px';
   //cell.style.backgroundColor = '#FFFAB9';
   cell.style.backgroundImage = 'url(' + 'img/picker-ball.gif' + ')';
   cell.style.backgroundPosition = 'center'; 
   cell.style.backgroundRepeat = 'no-repeat';
   cell.style.verticalAlign = 'baseline';
   cell.style.textAlign = 'center';
   //cell.style.fontSize = '10';
   cell.style.color = 'black';
   cell.style.cursor = 'pointer';
   var textNode = document.createTextNode(value);
   cell.appendChild(textNode); 
   cell.onclick = function() {
      var rowName = 'tr_' + 'ticket_' + ACTIVE_TICKET;
      var rowId = document.getElementById(rowName);
      if(rowId == null)
      {
         alert("Please choose the number of tickets to play");
         return false;
      }
      var children = rowId.childNodes;
      var startNo = 0;
      var endNo = 0;
      if (name == 'reg') {
         startNo = 1;
         endNo = REG_MAX_SELECTION + 1;
      } else if(name == 'pow') {
         startNo = REG_MAX_SELECTION + 1;
         endNo = startNo + POWER_MAX_SELECTION;
      }
      useNumber(this, children, startNo, endNo);
      setLabel(); // set the label for clear line and clear form
      showNextUnfilledTicket(); // show the next unfilled ticket as the active ticket      
      return false;
   }
   return;
}

function showNextUnfilledTicket() {
   var output = globalObjTickets;
   var count = output.options[output.selectedIndex].value;  
   var selection_count = 0;
   
   
  	count = count*slip_lines;
	
   for (var i = 0; i < count; i++) {
      selection_count = 0;
      var selectedNos = getNumberFromActiveTicket('reg');
      for (var j = 0; j < selectedNos.length; j++) {
         if (selectedNos[j] != '') {
            selection_count++;
         }       
      }
      selectedNos = getNumberFromActiveTicket('pow');
      for (var j = 0; j < selectedNos.length; j++) {
         if (selectedNos[j] != '') {
            selection_count++;
         }       
      }      
      if(selection_count == POWER_MAX_SELECTION + REG_MAX_SELECTION) {
         ACTIVE_TICKET++;
         if (ACTIVE_TICKET >= count) // we are on the last ticket
            ACTIVE_TICKET = 0;
         showActiveTicket(ACTIVE_TICKET);      
      }
      else {
         break;
      }
   }
}


function useNumber(source, target, startNo, endNo) {
   document.lottoFrm.cts_pck_type[1].checked = true;
   var isFlipped = 0;
   for (var i = startNo; i < endNo; i++) {
      if(target[i].innerHTML == source.innerHTML) {
         source.style.backgroundImage = 'url(' + 'img/picker-ball.gif' + ')';
         target[i].innerHTML = '';
         isFlipped = 1;
         break;
      }
   }
   if (isFlipped == 0) {
      for (var i = startNo; i < endNo; i++) {
         if (target[i].innerHTML == '') {
            target[i].innerHTML = source.innerHTML;
            source.style.backgroundImage = 'url(' + 'img/picker-ball-blue.gif' + ')';
            break;
         }
      }
   }
} 

function makeTicketDisplayCell(target, position, row_num)
{
   var cell = target.insertCell(position);
   //cell.style.width = 150;
   //cell.style.height = 20;

	cell.setAttribute("width", 85);
   cell.setAttribute("height", 20);
   
   cell.style.backgroundColor = '#D3D3D3';
   cell.style.textAlign = 'center';
   //cell.style.fontSize = '10';
   cell.style.color = '#FFFFFF';
   cell.style.cursor = 'pointer';
   var textNode = document.createTextNode(CART_PICKER_LINE+" " + (row_num+1));
   cell.appendChild(textNode); 

   cell.onclick = function() {
      showActiveTicket(row_num);
      return false;
   }  
 
   return;
}

function makeRegTicketCell(target, position, row_num) {
   var cell = target.insertCell(position);
   //cell.style.width = 35;
   //cell.style.height = 20;
   cell.setAttribute("width", 25);
	cell.setAttribute("height", 20);
   cell.style.backgroundColor = '#D3D3D3';
   cell.style.textAlign = 'center';
   //cell.style.fontSize = '10';
   cell.style.color = '#454545';
   cell.style.cursor = 'pointer';
   
   
   cell.onclick = function() {
      showActiveTicket(row_num);
      return false;
   }  
 
   return;
}

function showActiveTicket(row_num) {
   // inactivate all
   var tkt_id = document.getElementById("tickets");
   if(tkt_id.hasChildNodes()) {
      tkt = tkt_id.firstChild; //tbody
      var tkt_tr = tkt.childNodes; //tr
      for (var i = 0; i < tkt_tr.length; i++) {
         var tkt_td = tkt_tr[i].childNodes; // td
         for (var j = 0; j < REG_MAX_SELECTION+1; j++) 
         {     
         	if(j==0)
		 		tkt_td[j].style.backgroundColor = '#3475B2';
            else
            	tkt_td[j].style.backgroundColor = '#D3D3D3';
         }
         for (var j = REG_MAX_SELECTION+1; j < POWER_MAX_SELECTION + REG_MAX_SELECTION+1; j++) 
         {
            tkt_td[j].style.backgroundColor = '#BCBCBC';
         }

      }  
      //activate selected
      var rowName = 'tr_' + 'ticket_' + row_num;
      var rowId = document.getElementById(rowName);
      var children = rowId.childNodes;
      for (var i = 0; i < children.length; i++) 
      {
         if(i==0)
		 	children[i].style.backgroundColor = '#3475B2';
		 else if(i>REG_MAX_SELECTION)
         	children[i].style.backgroundColor = '#FFC600';
		 else
		 	children[i].style.backgroundColor = '#FFDB5E';
      }
      ACTIVE_TICKET = row_num;
      setLabel();
   }
}

function setLabel() {
   var containsValue = "false";
   selActiveNumber = getNumberFromActiveTicket('reg');
   setSelectedNumbers(REG_NUM_DIVID);
   selActivePowerNumber = getNumberFromActiveTicket('pow');
   setSelectedNumbers(POW_NUM_DIVID);
   for (var i = 0; i < selActiveNumber.length; i++)
   {
      if(selActiveNumber[i] != '')
      {
         containsValue = "true";
         break;
      }
   }
   if (containsValue == "false")
   {
      for (var j = 0; j < selActivePowerNumber.length; j++)
      {
         if(selActivePowerNumber[j] != '')
         {
            containsValue = "true";
            break;
         }
      }     
   }
   if (containsValue == "true") {
      document.getElementById('btn_clear').value = CART_PICKER_ALERT2;
   }  
   else {
      document.getElementById('btn_clear').value = CART_PICKER_DEL_NUMS;
   }  
}

function makePowTicketCell(target, position, row_num) {
   var cell = target.insertCell(position);
   //cell.style.width = 35;
   //cell.style.height = 20;
   
   cell.setAttribute("width", 25);
   cell.setAttribute("height", 20);
   
   cell.style.backgroundColor = '#FFFFFF';
   cell.style.textAlign = 'center';
   //cell.style.fontSize = '10';
   cell.style.color = '#454545';
   cell.style.cursor = 'pointer';
   
   cell.onclick = function() {
      showActiveTicket(row_num);
      return false;
   }  
   return;
}

function populateNumberSelector(id, count, name, start_pow) {
   var tbl = document.getElementById(id);
   var start;
  
   if(name == 'pow'){
   	start = start_pow;
   }
   else{
   	start = 1;
	}
	
   for (var k = start; k <= count;) {
      var lastRow = tbl.rows.length;
      var row = tbl.insertRow(lastRow);
      for (var n = 0; n < 8; n++) {
         makeNumberCell(row, name, n, k);
         k++;
         if (k > count)
            break;
      }
   }
}

function onchangeGenerateTickets() {
   
   var output = document.getElementById("ticket_byDraw");
   globalObjTickets = document.getElementById("ticket_byDraw");
 
  var count = output.value;
  var tbl = document.getElementById("tickets");

	
  	count = count*slip_lines;
	
   // store the value of previous selection
   var previousValueStr = new Array;
   var previousSelCount = 0;
   for (var k = 0; k < count; k++) {
      var rowName = 'tr_' + 'ticket_' + k;
	  var rowId = document.getElementById(rowName);
      if (rowId)
      {
         var children = rowId.childNodes;
         for (var i = 1; i < children.length; i++) {
            previousValueStr[previousSelCount] = children[i].innerHTML;
            previousSelCount++;
         }
      }
   }


   // remove all children from ticket section
   var tkt = document.getElementById("tickets")
  
   while (tkt.firstChild) {
     tkt.removeChild(tkt.firstChild);
   }
   
   //generate tickets

   for (var k = 0; k < count; k++) {
      var lastRow = tbl.rows.length;
      var row = tbl.insertRow(lastRow);
      row.id = 'tr_' + 'ticket_' + k;
      makeTicketDisplayCell(row, 0, k);
      for (var n = 1; n < REG_MAX_SELECTION+1; n++) {
         // generate a regular ticket cell
         makeRegTicketCell(row, n, k);
      }

      for (var n = REG_MAX_SELECTION+1; n < (POWER_MAX_SELECTION + REG_MAX_SELECTION + 1); n++) {
         //generate a power ball ticket cell
         makePowTicketCell(row, n, k); 
      }
   }
   
   // pre-fill the tickets with the previous value, if any
   var p = 0;
   for (var i = 0; i < count; i++)
   {
     
	  var rowName = 'tr_' + 'ticket_' + i;
      var rowId = document.getElementById(rowName);
      var children = rowId.childNodes;
      for (var n = 1; n < REG_MAX_SELECTION+POWER_MAX_SELECTION+1; n++) {
         if (p < previousSelCount)
         {
            children[n].innerHTML = previousValueStr[p];
         }
         p++;
      }
   }
   
   document.getElementById("oDiv").style.height = 24 + ((count - 1) * 22)
   document.getElementById("oDiv").style.width = ((REG_MAX_SELECTION + POWER_MAX_SELECTION) * 40) + 150
   
   showActiveTicket(0);
}

function generateTickets(id, obj) {
   //var frmTickets = document.getElementById("tickets")
   // remove all children from ticket section
   
   var tkt = document.getElementById(id)
   while (tkt.firstChild) {
     tkt.removeChild(tkt.firstChild);
   }
   
   //generate tickets
   var output = document.getElementById(obj);
   var count = output.options[output.selectedIndex].value;
   var tbl = document.getElementById(id);
  
  
  	count = count*slip_lines;
	
   for (var k = 0; k < count; k++) {
      var lastRow = tbl.rows.length;
      var row = tbl.insertRow(lastRow);
      row.id = 'tr_' + 'ticket_' + k;
      makeTicketDisplayCell(row, 0, k);
      for (var n = 1; n < REG_MAX_SELECTION+1; n++) {
         // generate a regular ticket cell
         makeRegTicketCell(row, n, k);
      }
      for (var n = REG_MAX_SELECTION+1; n < (POWER_MAX_SELECTION + REG_MAX_SELECTION + 1); n++) {
         //generate a power ball ticket cell
         makePowTicketCell(row, n, k); 
      }
   }
 //  document.getElementById("oDiv").style.height = 24 + ((count - 1) * 22)
 //  document.getElementById("oDiv").style.width = ((REG_MAX_SELECTION + POWER_MAX_SELECTION) * 24) + 100
   
   showActiveTicket(0);
}

function populateTicketList(obj) {
   var tkt = document.getElementById(obj).value;
  
   for(i=1; i<=NO_OF_TICKETS; i++) {
//      if( i == 1)
//        tkt.options[i] = new Option(i + ' Ticket',i);
//     else
//        tkt.options[i] = new Option(i + ' Tickets',i);

      tkt.options[i] = new Option(i,i);
   }
   tkt.options[0] = null
   tkt.options[0].selected = true;
   generateTickets("tickets", obj);
}

function setSelectedNumbers(id) {

   var count = 0;
   if (id == REG_NUM_DIVID) {
      count = REG_MAX_AVAILABLE;
   } else if (id == POW_NUM_DIVID) {
      count = POWER_MAX_AVAILABLE;
   }  
   var tkt_id = document.getElementById(id);
   if(tkt_id.hasChildNodes()) {
      tkt = tkt_id.firstChild; //tbody
      var tkt_tr = tkt.childNodes; //tr
      for (var i = 0; i < tkt_tr.length; i++) {
         var tkt_td = tkt_tr[i].childNodes; // td
         for (var j = 0; j < tkt_td.length; j++) {   
            var val = tkt_td[j].innerHTML;
            if ( checkIfSelected(val, id) ) {
               tkt_td[j].style.backgroundImage = 'url(' + 'img/picker-ball-blue.gif' + ')';
               tkt_td[j].style.color = 'white';
            } else {
               tkt_td[j].style.backgroundImage = 'url(' + 'img/picker-ball.gif' + ')';
               tkt_td[j].style.color = 'black';
            }
         }
      }
   }    
}

function cleanWhitespace(node) {
   for (var x = 0; x < node.childNodes.length; x++) {
      var childNode = node.childNodes[x]
      if ((childNode.nodeType == 3)&&(!notWhitespace.test(childNode.nodeValue))) {
      // that is, if it's a whitespace text node
      node.removeChild(node.childNodes[x])
      x--
    }
    if (childNode.nodeType == 1) {
   // elements can have text child nodes of their own
      cleanWhitespace(childNode)
    }
  }
}

function checkIfSelected(val, id) {
   var selNumber;
   if (id == REG_NUM_DIVID) {
      for (var k = 0; k < selActiveNumber.length; k++) { 
         var sElement = selActiveNumber[k];
         if ( val == selActiveNumber[k]) {
            return true;
         }
      }
   } else if (id == POW_NUM_DIVID) {
      for (var k = 0; k < selActivePowerNumber.length; k++) { 
         var sElement = selActivePowerNumber[k];
         if ( val == selActivePowerNumber[k]) {
            return true;
         }
      }
   }     
   return false;
}

function getNumberFromActiveTicket(name) {
   var rowName = 'tr_' + 'ticket_' + ACTIVE_TICKET;
   var rowId = document.getElementById(rowName);
   var children = rowId.childNodes;
   var selNumber; 
   var cnt = 0;
   if(name == 'reg') {  //regular_number_selector
      selNumber= new Array(REG_MAX_SELECTION); 
      for (var i = 1; i <= REG_MAX_SELECTION; i++) {
         selNumber[cnt++] = children[i].innerHTML;
      }  
   } else if(name == 'pow') { //power_number_selector
      selNumber= new Array(POWER_MAX_SELECTION); 
      for (var i = REG_MAX_SELECTION+1; i < children.length; i++) {
         selNumber[cnt++] = children[i].innerHTML; 
      }
   }
   return selNumber;
}

function clearData() {
   if (document.getElementById('btn_clear').value == "Borrar Línea") {
      clearLine();
   } else {
      clearForm();
   }
   
}

function clearLine() {  
   var rowName = 'tr_' + 'ticket_' + ACTIVE_TICKET;
   var rowId = document.getElementById(rowName);
   var children = rowId.childNodes;
   for (var i = 1; i < children.length; i++) {
      children[i].innerHTML = '';   
   }
   clearNumberSelector(REG_NUM_DIVID);
   populateNumberSelector(REG_NUM_DIVID, REG_MAX_AVAILABLE, "reg", 1);
   if ( POWER_MAX_SELECTION > 0 ) {
	   clearNumberSelector(POW_NUM_DIVID);
	   populateNumberSelector(POW_NUM_DIVID, POWER_MAX_AVAILABLE, "pow",POW_START_BALL);
   }
   
   document.getElementById('btn_clear').value = "Borrar Números";
}

function clearForm() {  
   var output = globalObjTickets;
   var count = output.options[output.selectedIndex].value;  
   
  		count = count*slip_lines;
   for (var k = 0; k < count; k++) {
      var rowName = 'tr_' + 'ticket_' + k;
      var rowId = document.getElementById(rowName);
      var children = rowId.childNodes;
      for (var i = 1; i < children.length; i++) {
         children[i].innerHTML = '';   
      }
   }
   clearNumberSelector(REG_NUM_DIVID);
   populateNumberSelector(REG_NUM_DIVID, REG_MAX_AVAILABLE, "reg", 1);
   if ( POWER_MAX_SELECTION > 0 ) {
	   clearNumberSelector(POW_NUM_DIVID);
	   populateNumberSelector(POW_NUM_DIVID, POWER_MAX_AVAILABLE, "pow",POW_START_BALL);
   }
}

function clearNumberSelector(id){
   var tbl = document.getElementById(id);
   var lastRow = tbl.rows.length;
   for (var k = 0; k < lastRow; k++) {
      var row = tbl.deleteRow(0);
   }
}


function quickPick() {

   document.lottoFrm.cts_pck_type[1].checked = true

   var output = globalObjTickets;
   var count = output.options[output.selectedIndex].value;
   
   
  	count = count*slip_lines;
	
   if(count == 0)
   {
      alert("Please choose the number of tickets to play");
      return false;
   }

   // call internal function for regular numbers
   var max = parseInt(count) * REG_MAX_SELECTION;
   ACTIVE_TICKET = 0;
   var startNo = 1;
   var endNo = REG_MAX_SELECTION + 1;  
   // send 1 number less since we will be adding a number to avoid zero
   quickPickInt(startNo, endNo, max, REG_MAX_AVAILABLE-1); 
   // call internal function for power numbers

   max = parseInt(count) * POWER_MAX_SELECTION;
   startNo = REG_MAX_SELECTION + 1;
   endNo = REG_MAX_SELECTION + POWER_MAX_SELECTION + 1;     
   quickPickInt(startNo, endNo, max, POWER_MAX_AVAILABLE-1);
   setLabel();
   showActiveTicket(0);
}

function quickPickInt(startNo, endNo, max, max_available) {
   var is_used = "false";
   for (var i = 0; i < max; i++)
   {
      is_used = "false";
      var a_random = Math.round(max_available*Math.random() + 1);
      var rowName = 'tr_' + 'ticket_' + ACTIVE_TICKET;
      var rowId = document.getElementById(rowName);
      var children = rowId.childNodes;
      for (var j = startNo; j < endNo; j++) {
         if (children[j].innerHTML == a_random) {  // to avoid numbers to be repeated in the same ticket
            i--;
            is_used = "true";
            break;
         }
         if (children[j].innerHTML == '') {
            children[j].innerHTML = a_random;
            is_used = "true";
            break;
         }
      }           
      if (is_used == "false") {
         // get the next ticket
         output = globalObjTickets;
         count = output.options[output.selectedIndex].value;   
         ACTIVE_TICKET++;
         if (ACTIVE_TICKET >= count) // we are on the last ticket
            break;
         rowName = 'tr_' + 'ticket_' + ACTIVE_TICKET;
         rowId = document.getElementById(rowName);
         children = rowId.childNodes;              
         for (var k = startNo; k < endNo; k++) {
            if (children[k].innerHTML == '') {
               children[k].innerHTML = a_random;
               is_used = "true";
               break;
            }
         }  
      }
   }
   ACTIVE_TICKET = 0;
}

function submitTickets() {
   var j = 0;
   var qryStr = '';
   var output = globalObjTickets;
   var count = output.options[output.selectedIndex].value;
   
   
  	count = count*slip_lines;
	 
   if (document.lottoFrm.cts_pck_type[1].checked == true){
      for (var k = 0; k < count; k++) {
         var rowName = 'tr_' + 'ticket_' + k;
         var rowId = document.getElementById(rowName);
         var children = rowId.childNodes;
         qryStr = qryStr + "|";
         for (var i = 1; i < children.length; i++) {
            if (children[i].innerHTML == '')
            {
               alert(CART_PICKER_ALERT5);
               return false;
            }
            // put a dash only after the first value on a ticket
            if (i > 1 )
            {
               qryStr = qryStr + ",";   
            }
            qryStr = qryStr + children[i].innerHTML;
            j++;
         }
      }
   }
   
   var jsString = document.getElementById("jsString");
   jsString.value = qryStr;
   
   //uncomment these 2 lines to submit the form  and add required action location  
   //window.document.lottoFrm.action = "car_add.asp?" + qryStr;
   window.document.lottoFrm.submit();
   
}

function generateSelectorHeading(id, value) {
   var tbl = document.getElementById(id);
  
   var row = tbl.insertRow(0);
   var cell = row.insertCell(0);
   cell.style.textAlign = 'center';
   //cell.style.fontSize = '12';
   cell.style.color = '#003F99';
   cell.style.fontWeight = 'bold';
   //cell.setAttribute("height", 17);
   cell.style.lineHeight = '23px';
   cell.style.background = '#FFD400';
   
   var textNode = document.createTextNode(value);
   cell.appendChild(textNode); 
}

function initialize(reg_max_a, power_max_a, reg_max_s, power_max_s, total_tickets, prc_time, cts_ticketByDraw, lot_balls_name, lot_extra_name, lot_extra_startNum){
   // initialize the variables with the user input
   REG_MAX_AVAILABLE = reg_max_a;
   POWER_MAX_AVAILABLE = power_max_a;
   REG_MAX_SELECTION = reg_max_s;
   POWER_MAX_SELECTION = power_max_s;
   NO_OF_TICKETS = total_tickets;
   REG_HEADING = lot_balls_name;
   POW_HEADING = lot_extra_name;
   POW_START_BALL = lot_extra_startNum;
   
   if ( REG_MAX_SELECTION > 0 ) {
      generateSelectorHeading(REG_HEADING_TABLE_ID, REG_HEADING);
   }
   if ( POWER_MAX_SELECTION > 0 ) {
      generateSelectorHeading(POW_HEADING_TABLE_ID, POW_HEADING);
   }
   if ( REG_MAX_SELECTION > 0 ) {
	   populateNumberSelector(REG_NUM_DIVID, REG_MAX_AVAILABLE, "reg",1);
   }
   if ( POWER_MAX_SELECTION > 0 ) {
	   populateNumberSelector(POW_NUM_DIVID, POWER_MAX_AVAILABLE, "pow",POW_START_BALL);
   }

   //onchangeGenerateTickets(prc_time);
   onLoadTickets(prc_time);
   cleanWhitespace(document);
}

function onLoadTickets() {
   
   var output = document.getElementById("ticket_byDraw");
   globalObjTickets = document.getElementById("ticket_byDraw");
 
  var count = output.value;
  	count = count*slip_lines;
  var tbl = document.getElementById("tickets");
	
   // store the value of previous selection
   var previousValueStr = new Array;
   var previousSelCount = 0;

	if(userTicket.length >0){
		for (var k = 0; k < count; k++) {
			var ticket = new Array();
			ticket = userTicket[k];
			for (var i = 1; i < ticket.length; i++) {
				 previousValueStr[previousSelCount] = userTicket[k][i];
				 previousSelCount++;
			}
		}
	}

   // remove all children from ticket section
   var tkt = document.getElementById("tickets")
  
   while (tkt.firstChild) {
     tkt.removeChild(tkt.firstChild);
   }
   
   //generate tickets

   for (var k = 0; k < count; k++) {
      var lastRow = tbl.rows.length;
      var row = tbl.insertRow(lastRow);
      row.id = 'tr_' + 'ticket_' + k;
      makeTicketDisplayCell(row, 0, k);
      for (var n = 1; n < REG_MAX_SELECTION+1; n++) {
         // generate a regular ticket cell
         makeRegTicketCell(row, n, k);
      }

      for (var n = REG_MAX_SELECTION+1; n < (POWER_MAX_SELECTION + REG_MAX_SELECTION + 1); n++) {
         //generate a power ball ticket cell
         makePowTicketCell(row, n, k); 
      }
   }
   
   // pre-fill the tickets with the previous value, if any
   var p = 0;
   for (var i = 0; i < count; i++)
   {
     
	  var rowName = 'tr_' + 'ticket_' + i;
      var rowId = document.getElementById(rowName);
      var children = rowId.childNodes;
      for (var n = 1; n < REG_MAX_SELECTION+POWER_MAX_SELECTION+1; n++) {
         if (p < previousSelCount)
         {
           children[n].innerHTML = previousValueStr[p];
         }
         p++;
      }
   }
   
   //document.getElementById("oDiv").style.height = 24 + ((count - 1) * 22)
   //document.getElementById("oDiv").style.width = ((REG_MAX_SELECTION + POWER_MAX_SELECTION) * 40) + 150
   
   showActiveTicket(0);
}
