function oneFixedDigit(theNum) {
  if (theNum == 0) { return '0'; }
  else {
    theNum = Math.round(theNum*10).toString();
    theNum = theNum.substring(0,theNum.length-1) + '.' + theNum.substring(theNum.length-1,theNum.length);
    return theNum;
  }
}

function toggleDivElements(divElements) {
  var toggleClassName = 'showHide';
  for (var i=0; i < divElements.length; i++) {
    if (divElements.item(i).className == toggleClassName) {
      if (divElements.item(i).style.display == 'block') {
        divElements.item(i).style.display = 'none';
      } else {
        divElements.item(i).style.display = 'block';
      }
    }
  }
}

function toggleTrElements(trElements) {
  for (var i=0; i < trElements.length; i++) {
    var thisName = trElements.item(i).className;
    if (thisName == 'even' || thisName == 'odd' || thisName == 'subEntity1' || thisName == 'project') {
      if (trElements.item(i).style.display == '') {
        trElements.item(i).style.display = 'none';
      } else {
        trElements.item(i).style.display = '';
      }
    }
  }
}

function toggleEditVisibility(objectType) {
  var spaceName = objectType + 'Edit';
  var toggleSpace = document.getElementById(spaceName);
  var divElements = toggleSpace.getElementsByTagName('DIV');
  toggleDivElements(divElements);
}

function toggleDetailVisibility(itemID) {
  var toggleSpace = document.getElementById(itemID);
  var trElements = toggleSpace.getElementsByTagName('TR');
  var divElements = toggleSpace.getElementsByTagName('DIV');
  toggleTrElements(trElements);
  toggleDivElements(divElements);
}

function fillInEmpties(divSpaceName) {
  if (document.getElementsByTagName) {
    var divSpace = document.getElementById(divSpaceName);
    var tableCells = divSpace.getElementsByTagName("TD");
    var usesInnerText = false;
    for (var i=0; i<tableCells.length; i++) {
      if (tableCells[i].innerText) { usesInnerText = true; i = tableCells.length+1; }
    }
    if (usesInnerText) {
      for (var i=0; i<tableCells.length; i++) {
        if (!tableCells[i].innerText) {
          if (tableCells[i].innerHTML == "") { tableCells[i].innerHTML = "&nbsp;"; }
        } else if (tableCells[i].innerText == "") {
          tableCells[i].innerText = "&nbsp;";
        }
      }
    }
  }
}

function setRowColInputSums() {
  if (document.getElementsByTagName) {
    var nameSeparator = '_';
    var sumSuffix = nameSeparator + 'Sum';
    var columnSumName = 'column' + sumSuffix;
    var rowSumName = 'row' + sumSuffix;
    var rowColElementType = 'input';
    var sumElementType = 'DIV';
    var sumElementClass = 'rowColumnElement';
    var displayPrefix = '';

    var rowColElements = document.getElementsByTagName(rowColElementType);
    var divElements = document.getElementsByTagName(sumElementType);
    var rows = new Array();
    var columns = new Array();

    var personTotalElement = document.getElementById('personTotal');
    var personTotal = 0.0;

    for (var i=0; i < divElements.length; i++) {
      if (divElements.item(i).className == columnSumName) {
        var divID = divElements.item(i).id;
        columns[columns.length] = divID.substring(0, divID.length - sumSuffix.length);
      }
      if (divElements.item(i).className == rowSumName) {
        var divID = divElements.item(i).id;
        rows[rows.length] = divID.substring(0, divID.length - sumSuffix.length);
      }
    }

    for (var i=0; i<columns.length; i++) {
      var thisColumnName = columns[i];
      var thisColumnSum = 0.0;
      for (var j=0; j<rowColElements.length; j++) {
        var re = new RegExp(nameSeparator + thisColumnName + '$');
        if (rowColElements.item(j).className == sumElementClass) {
          if (rowColElements.item(j).name.match(re)) {
            thisColumnSum += +rowColElements.item(j).value;
          }
        }
      }
      var columnSumElement = document.getElementById(thisColumnName + sumSuffix);
      columnSumElement.innerHTML = displayPrefix + oneFixedDigit(thisColumnSum);
    }

    for (var i=0; i<rows.length; i++) {
      var thisRowName = rows[i];
      var thisRowSum = 0.0;
      for (var j=0; j<rowColElements.length; j++) {
        var re = new RegExp('^' + thisRowName + nameSeparator);
        if (rowColElements.item(j).name.match(re)) {
          thisRowSum += +rowColElements.item(j).value;
        }
      }
      var rowSumElement = document.getElementById(thisRowName + sumSuffix);
      rowSumElement.innerHTML = displayPrefix + oneFixedDigit(thisRowSum);
      personTotal += thisRowSum;
    }
    personTotalElement.innerHTML = displayPrefix + oneFixedDigit(personTotal);
    if (personTotal > personLimit && personLimit > 0) {
      alert('You have exceeded your limit of ' + personLimit + ' hours.  Please reduce the number of hours entered.');
    }
  }
}

function getPreviousURL() {
  document.statusTimeEntryForm.previousURL.value = window.location;
}

var state = 'none';

function showhide(layer_ref) {

if (state == 'block') {
state = 'none';
}
else {
state = 'block';
}
if (document.all) { //IS IE 4 or 5 (or 6 beta)
eval( "document.all." + layer_ref + ".style.display = state");
}
if (document.layers) { //IS NETSCAPE 4 or below
document.layers[layer_ref].display = state;
}
if (document.getElementById &&!document.all) {
hza = document.getElementById(layer_ref);
hza.style.display = state;
}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
