/*      
    squares.js
    Author: Kevin P. Wojdak
    
    Purpose:  Simple Random number generator program to support Squares football pools.
              Randomly assigns 10 unique numbers for rows or columns.

*/

// +-----------------------------------+
// +   Global Variables                +
// +-----------------------------------+
var flagNeedReset = false;
var navType;


// +-----------------------------------+
// +   Identify Browser                +
// +-----------------------------------+
if(document.all){
   navType="ie"
}
if(!document.all && document.getElementById){
   navType="mz";
}


//+----------------------------------------------------------------------------
//  Function:       rand
//  Author:         Kevin P. Wojdak, Pathfinder Associates
//  Description:    Random number generator
//                  
//  Arguments:      none
//  Returns:        none
// 
//  Note:           The 100000 tells the function to return a 5-digit number.  
//                  Reduce or enlarge this number to return a lower or higher number.
//+----------------------------------------------------------------------------
//
function rand() {
	return Math.round(100000*Math.random());
}

//+----------------------------------------------------------------------------
//  Function:       getRandomNum
//  Author:         Kevin P. Wojdak
//  Date Created:   July 2005
//  Description:    Generates a random number from 0 or 1 to X.
//                  
//  Arguments:      begRange = beginning number of range: 0 or 1
//                  endRange = Upper limit of numbers
//                  
//  Returns:        randNum = random number within range specified
// 
//  Note:           
//+----------------------------------------------------------------------------
//
function getRandomNum(begRange, endRange) {
	switch(begRange) {
		case 1:
			var randNum = (Math.round(Math.random() * endRange))+1;
			break;
		default:
			var randNum = Math.round(Math.random() * endRange);
			break;
	}
	return randNum;
}

//+----------------------------------------------------------------------------
//  Function:       checkDupArray
//  Author:         Kevin P. Wojdak, Pathfinder Associates
//  Description:    Checks within an array if there are any duplicate values.
//                  
//  Arguments:      arrList = array to check
//                  value = value to seek in array
//  Returns:        x = index of duplicate value within array
//                  -1 = no duplicates
// 
//  Note:           
//+----------------------------------------------------------------------------
//
function checkDupArray(arrList, value) {
    for(var x = 0; x < arrList.length; x++) {
         if(value == arrList[x]) {
              return x;
         }
    }
    return -1;
}


//+----------------------------------------------------------------------------
//  Function:       addNumToList
//  Author:         Kevin P. Wojdak, Pathfinder Associates
//  Description:    Adds a number value to a list of unique numbers.
//                  
//  Arguments:     numVal = value to add to list
//  Returns:        number of values in array
// 
//  Note:           
//+----------------------------------------------------------------------------
//
var RangeList = new Array();  // initialize global barcode storage list for use with barcode scanning screens
function addNumToList(numVal) {
	var b = RangeList.length;
	RangeList[b] = numVal;
	return b;
}


function resetGenerator () {
	flagNeedReset = false;
	RangeList = new Array();
    
    // Create Hdr object reference
    var objHdr = document.getElementById('hdrTitle');
    if (objHdr == null) {
        alert("Error: Could not find Title.  Contact Woj");
        return;
    }
    
    if (navType == 'ie') {
        objHdr.innerText = '';
    } else {
        objHdr.innerHTML = '';
    }
	
	document.getElementById('rVals').style.display = 'none';
	document.getElementById('cVals').style.display = 'none';
}


function getRandNumList() {
	if (flagNeedReset == true) {
		resetGenerator();
	}
    
    // Create Hdr object reference
    var objHdr = document.getElementById('hdrTitle');
    if (objHdr == null) {
        alert("Error: Could not find Title.  Contact Woj");
    }
    
    var txtQtr = '';
    for (var i = 0; i < document.forms[0].rdoQtr.length; i++) {
		if (document.forms[0].rdoQtr[i].checked) {
			txtQtr = document.forms[0].rdoQtr[i].value;
		}
	}
	
	var txtTeam = document.getElementById('fldTeam')[document.getElementById('fldTeam').selectedIndex].text;
	
	flagNeedReset = true;
	var numCount = 0;
	
	while (numCount != 10) {
		var chkNum = getRandomNum(0, 9);
		var dupCode = checkDupArray(RangeList,chkNum);
		if (dupCode == -1) {
			addNumToList(chkNum);
			numCount++;
		}
	}
	//alert(document.getElementById('rowcol1').checked);
	var rowOrCol = "r";
	if (document.getElementById('rowcol1').checked == true) {
		rowOrCol = 'r';
	} else {
		rowOrCol = 'c';
	}

	// add gray blocks as placeholders
    //alert("Team = " + txtTeam + "; Quarter = " + txtQtr);
    var strTitleHdr = txtTeam + ' -- '+ txtQtr;
    //alert(strTitleHdr);
    if (objHdr != null) {
        if (navType == 'ie') {
	        objHdr.innerText = strTitleHdr;
        } else {
            objHdr.innerHTML = strTitleHdr;
        }
    }
    
    var showDIV = rowOrCol + 'Vals';
    //alert(showDIV);
	document.getElementById(showDIV).style.display = 'block';
	objHdr.style.display = 'block';
    
    
    var strAlert = '';
	for (x=0; x < RangeList.length; x++) {
		var posNum = x+1;
		strAlert += "Position " + posNum + ' = ' + RangeList[x] + "\n";
		var docId = rowOrCol + "pos" + x;
        //alert(RangeList[x]);
        if (navType == 'ie') {
		    document.getElementById(docId).innerText = RangeList[x];
        } else {
            document.getElementById(docId).innerHTML = RangeList[x] + " ";
        }
	}
	
	//alert(strAlert);
	
}












/*var dupCode = checkDupArray(RangeList,codeVal);
			if (dupCode > -1) {
				getRandNum();
			} else {
				addNumToList(codeVal);
			}*/
