function updateRosterActiveField(varThisElement) {
  var varForm  = varThisElement.form;
  var varFvt   = +varForm.league_active_veteran_forwards.value;
  var varDvt   = +varForm.league_active_veteran_defencemen.value;
  var varFrk   = +varForm.league_active_rookie_forwards.value;
  var varDrk   = +varForm.league_active_rookie_defencemen.value;
  var varG     = +varForm.league_active_goalies.value;
  var varSum   = varFvt + varDvt + varFrk + varDrk + varG;
  var varValue = round0dec(varSum);
  varForm.league_roster_active.value = varValue;
}

function updateActiveForwardsField(varThisElement) {
  var varForm  = varThisElement.form;
  var varFvt   = +varForm.league_active_veteran_forwards.value;
  var varFrk   = +varForm.league_active_rookie_forwards.value;
  var varSum   = varFvt + varFrk;
  var varValue = round0dec(varSum);
  varForm.league_active_forwards.value = varValue;
}

function updateActiveDefencemenField(varThisElement) {
  var varForm  = varThisElement.form;
  var varDvt   = +varForm.league_active_veteran_defencemen.value;
  var varDrk   = +varForm.league_active_rookie_defencemen.value;
  var varSum   = varDvt + varDrk;
  var varValue = round0dec(varSum);
  varForm.league_active_defencemen.value = varValue;
}

function updateActiveVeteranSkatersField(varThisElement) {
  var varForm  = varThisElement.form;
  var varFvt   = +varForm.league_active_veteran_forwards.value;
  var varDvt   = +varForm.league_active_veteran_defencemen.value;
  var varSum   = varFvt + varDvt;
  var varValue = round0dec(varSum);
  varForm.league_active_veteran_skaters.value = varValue;
}

function updateActiveRookieSkatersField(varThisElement) {
  var varForm  = varThisElement.form;
  var varFrk   = +varForm.league_active_rookie_forwards.value;
  var varDrk   = +varForm.league_active_rookie_defencemen.value;
  var varSum   = varFrk + varDrk;
  var varValue = round0dec(varSum);
  varForm.league_active_rookie_skaters.value = varValue;
}

function round0dec(varNum) {
  var varAmount = Math.round(varNum * 100)/100;
  return isNaN(varAmount) ? 0 : sprintf("%0d", varAmount);
}

function round2dec(varNum) {
  var varAmount = Math.round(varNum * 100)/100;
  return isNaN(varAmount) ? 0 : sprintf("%0.2f", varAmount);
}


// Change the cursor to an hourglass
function cursor_wait() {
  document.body.style.cursor = 'wait';
}

// Change the cursor to the default pointer
function cursor_default() {
  document.body.style.cursor = 'default';
}


/* Check/Uncheck All Checkboxes 
----------------------------------------------- */
function toggleAllCheckboxes(varElement, varName) {
  var varForm = varElement.form;
  var varName = (varName == null) ? 'record' : varName;
  var varLength = varName.length;
  for(z = 0; z < varForm.length; z++) {
    if(varForm[z].type == 'checkbox' && varForm[z].name.substr(0, varLength) == varName) {
      varForm[z].checked = varElement.checked;
      toggleBackgroundColor(varForm[z], varName); // as long as varName == varId in toggleBackgroundColor
      if(varName == 'record') {
        toggleCheckLabel(varForm[z]);
      }
    }
  }
}

function toggleCheckLabel(varInput) {
  var varType = varInput.type;
  var varChecked = varInput.checked; // [true, false]
  var varId = "check_all_label";
  var varElement = document.getElementById(varId);
  if(varType == 'checkbox' && varChecked) {
    varElement.innerHTML = '&laquo;&thinsp;Uncheck all<span style="visibility:hidden;">C</span>';
  }
  else {
    varElement.innerHTML = '&laquo;&thinsp;Check all<span style="visibility:hidden;">Unc</span>';
  }
}

function toggleBackgroundColor(varInput, varId) {
  var varType = varInput.type;
  var varChecked = varInput.checked; // [true, false]
  var varValue = varInput.value;
  var varId = (varId == null) ? 'record' : varId;
  var varIdValue = varId + "_" + varValue;
  var varClass = document.getElementById(varIdValue).className; // [record_odd, record_even]
  var colorOddChecked = "#efe9bd";
  var colorEvenChecked = "#efefd5";
  var colorOdd = "#fff9cd";  // match this color from CSS file
  var colorEven = "#ffffe5"; // match this color from CSS file
  if(varType == 'checkbox' && varChecked) {
    if(varClass == "record_odd") {
      document.getElementById(varIdValue).style.backgroundColor = colorOddChecked;
    }
    else {
      document.getElementById(varIdValue).style.backgroundColor = colorEvenChecked;
    }
  }
  else {
    if(varClass == "record_odd") {
      document.getElementById(varIdValue).style.backgroundColor = colorOdd;
    }
    else {
      document.getElementById(varIdValue).style.backgroundColor = colorEven;
    }
  }
}
