/* *****************************
 * Standing Orders Functions
 * ***************************** */

function correlate(objCheckbox)
{
/* 
AUTHORS: Adam Schuman, Sean O'Donnell
DATE: 10-5-01
MOD: 11-9-05; Spadt
DESCRIPTION:
0. Is node checked/unchecked? boolean
1. Parse/store name in variable
2. Iterate through nodes
	2.1 If node is subordinate, toggle state
*/
	var blnSuperNodeChecked = objCheckbox.checked;
	var intSuperNodeId = getNodeId(objCheckbox.name);

	var blnFoundChild = false;
	var incr = 0;

	if (blnSuperNodeChecked) {
		restore(objCheckbox.parentNode);
	} else {
		suppress(objCheckbox.parentNode);
	}	
	
	for (i = 0; i < document.orders.elements.length; i++) {

		var intCurNodeId = getNodeId(document.orders.elements[i].name);
		var blnMin = intCurNodeId > intSuperNodeId;
		var blnMax = getNumberOfZeros(intCurNodeId) < getNumberOfZeros(intSuperNodeId);

		if ( (blnFoundChild == true) && (blnMax == false) ) {
			break;
		}
		
		else if (blnMin && blnMax)
		{
			blnFoundChild = true;
			if (blnSuperNodeChecked == true) {
				document.orders.elements[i].checked = true;
				restore(document.orders.elements[i].parentNode);
			} else {
				document.orders.elements[i].checked = false;
				suppress(document.orders.elements[i].parentNode);
			}
		}
	
		else if ( (blnFoundChild == false) && (blnMin == true) )
		{
			break;
		}
	}
	for (i = (document.orders.elements.length - 1); i >= 0 ; i--) 
	{
		var intCurNodeId = getNodeId(document.orders.elements[i].name);	
		var blnReverseMin = intCurNodeId < intSuperNodeId;
		var blnReverseMax = getNumberOfZeros(intCurNodeId) > (getNumberOfZeros(intSuperNodeId) + incr);
	
		if (blnSuperNodeChecked == true)
		{
			if (blnReverseMin && blnReverseMax)
			{
				document.orders.elements[i].checked = true;
				restore(document.orders.elements[i].parentNode)
				incr++;
			}		
		}						
	}
}

function suppress(node){
	node.style.color = "#c0c0c0";
	node.style.textDecorationLineThrough = true;
}

function restore(node){
	node.style.display = 'block';
	node.style.color = "#000000";
	node.style.textDecorationLineThrough = false;
}

function isChecked(objCheckbox)
{
	return objCheckbox.checked;
}

function getNodeId(strCheckboxName)
{
	var x = strCheckboxName.substr(1);
	var i = parseInt(x);
	return i;
}

/*function digitVal(c){
  if (c=="0") return 0;
  if (c=="1") return 1;
  if (c=="2") return 2;
  if (c=="3") return 3;
  if (c=="4") return 4;
  if (c=="5") return 5;
  if (c=="6") return 6;
  if (c=="7") return 7;
  if (c=="8") return 8;
  if (c=="9") return 9;
  if (c=="A") return 10;
  if (c=="B") return 11;
  if (c=="C") return 12;
  if (c=="D") return 13;
  if (c=="E") return 14;
  if (c=="F") return 15;
  else return 0;  //may want to return a negative, or throw exception
}

function parseHex(hexString){
   value=0;
   for(i = 0; i<hexString.length; i++){
      value = (value*8) + digitVal(hexString.charAt(i));
   }
   alert(value);
   return value;
}*/

function getNumberOfZeros(intNodeId) {
	
	if ( (intNodeId % 1000) == 0 ) {
		return 3;
	} 
	else if ( (intNodeId % 100) == 0 ) {
		return 2;
	}
	else if ( (intNodeId % 10) == 0 ) {
		return 1;
	}
	else {
		return 0;
	}
}

function generateorders() {
	document.getElementById("instructions").style.display = 'none';
	for (i = 0; i < document.orders.elements.length; i++) {
		if (! document.orders.elements[i].checked) {
			document.orders.elements[i].parentNode.style.display = 'none';
		}	
	}
}

function startover() {
	if (confirm("Clear the worksheet of all modifications?")) {
		document.getElementById("instructions").style.display = 'block';
		for (i = 0; i < document.orders.elements.length; i++) {
			restore(document.orders.elements[i].parentNode);
		}
		document.orders.reset();
	}
}

// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
// Global button rollover functions 
// - Chris Forrest; ACP [6.21.2005]
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
function rollOver(doc, src, id){
	var dot=src.lastIndexOf('.');
	var begstr=src.substring(0,dot);
	var endstr=src.substring(dot);
	var rollstr=begstr+"_on"+endstr;
	doc.getElementById(id).src=rollstr;
}
function rollOut(doc, src, id){
	var on=src.lastIndexOf('_on');
	var dot=src.lastIndexOf('.');
	var begstr=src.substring(0,on);
	var endstr=src.substring(dot);
	var offstr=begstr+endstr;
	doc.getElementById(id).src=offstr;
}
