//Shows detailed catch report (expanded table)
function showCatchReportDetails(reportId) {
  toggleReportTable(reportId);
  changeRowClass(reportId);
  showTdBorder(reportId);
}
//Toggles display of report details
function toggleReportTable(reportId) {
  var reportTable = document.getElementById('reportDetails' + reportId);
  reportTable.style.display = reportTable.style.display.match('none') ? 'block' : 'none';
}
//Toggles 'active' class of the report row
function changeRowClass(reportId) { 
  var reportTable = document.getElementById('reportDetails' + reportId);
  var reportRow = document.getElementById ('row' + reportId);   
  var reportRowClassName = reportRow.getAttribute('class');
  reportRow.className = reportTable.style.display.match('block') ? reportRowClassName + ' active' : reportRow.className.replace(/active/,'');
}
//Hides/shows report details border
function showTdBorder(reportId) {
  var reportTable = document.getElementById('reportDetails' + reportId);
  var reportDetailsCell = document.getElementById ('reportCell' + reportId);
  reportDetailsCell.className = reportTable.style.display.match('none') ? '' : 'reportCell';
}

function getInfo(){
  window.location = "init?orderLineId=" + document.getElementById('orderLineId').value;
}

function updateDates(id){
  // dumpXml(object);
  // alert(id);
}
function showForm() {
  // If the person has used the card to hunt, the rest of the catchReport form is displayed
  var radioButtons = document.getElementsByName("hasHunted");
  var hiddenForm = document.getElementById("reportFormWrapper");
  for(var i = 0; i < radioButtons.length; i++) {
    if(radioButtons[i].checked) {
      if(radioButtons[i].value == "yes") {
        hiddenForm.style.display = "block";
        hiddenForm.disabled = false;
      }
      else {
        hiddenForm.style.display = "none";
        hiddenForm.disabled = true;
      }
      break;
    }
  }
  
  // We have to provide an initial entry - simulate addEntry here
  if (!document.getElementById('report1')) {
    if (document.getElementById('addEntryAjaxLink')) {
      document.getElementById('addEntryAjaxLink').onclick();
    }
  }
}
function updateAfterDelete(id) {
  // Get the reportwrapper and look if it has any entries - if not, remove it. This way we don't have to reload the page after removing one entry
  // We are looking for any child elements with class entryCounter
  var reportWrapper = document.getElementById('reports');
  var currentReport = document.getElementById('report'+id);
  if (currentReport) {
    var children = currentReport.getElementsByTagName('DIV');
    if (children) {
      for ( var i = 0; i < children.length; i++ ) {
        if ( children[i].className.match('entryCounter') ) {
          // Wrapper still contains an entry
          return;
        }
      }
      // It had no entries - remove it
      reportWrapper.removeChild(currentReport);
      
      // Also remove the addEntry that lies beneath the removed report
      var addEntryLink = document.getElementById('addLinkFor'+id);
      reportWrapper.removeChild(addEntryLink);
    }
    else {
      return;
    }
  }
}
function checkDates(id) {
  var startDateString = document.getElementById('startdate').value;
  var endDateString   = document.getElementById('enddate').value;
  
  // check if both datefields has value
  if (startDateString && endDateString) {
    startDateString = startDateString.replace(/\./g,',');
    endDateString   = endDateString.replace(/\./g,',');
    
    // turn strings into date objects
    var startDate = new Date(startDateString);
    var endDate   = new Date(endDateString);
    
    // Make sure startDate < endDate
    if (startDate > endDate) {
      return false;
    }
    else {
      return true;
    }
  }
  else {
    return false;
  }
}
