
function validatetop()
{
  // Reset all elements that started off invisible to their non-visible styles
  document.getElementById('uniterror').style.display = 'none';
  document.getElementById('permiterror').style.display = 'none';
  document.getElementById('dateerror').style.display = 'none';
  document.getElementById('harvestinfo').style.display = 'none';
  
  var error = false;
  
  // Make sure that a valid Unit Code has been selected
  if (document.deercheckinfo.unitcode.value == '') 
  { 
    document.getElementById('uniterror').style.display = 'block';
    error = true; 
  }
  
  // Make sure that a valid Permit Number has been entered
  if ( document.deercheckinfo.permit.value == '' || // Fail if no value entered
      (document.deercheckinfo.permit.value.length != 4 && document.deercheckinfo.permit.value.length != 6 && document.deercheckinfo.permit.value.length != 7 && document.deercheckinfo.permit.value.length != 8) || // Fail if value does not have length of 4, 6, 7 or 8 
      (document.deercheckinfo.permit.value.length == 7 && (document.deercheckinfo.permit.value.substr(0,1) != 'B' && document.deercheckinfo.permit.value.substr(0,1) != 'b')) || // Fail if value has length of 7 and does not start with 'B' or 'b'
      (document.deercheckinfo.permit.value.length == 8 && (document.deercheckinfo.permit.value.substr(0,2) != 'B-' && document.deercheckinfo.permit.value.substr(0,2) != 'b-')) // Fail if value has length of 8 and does not start with 'B-' or 'b-'
     ) 
  { 
    document.getElementById('permiterror').style.display = 'block'; 
    error = true; 
  }
  
  // Make sure that a date has been entered for the Harvest Date field
  if (document.deercheckinfo.harvestdate.value == ''|| !isDate(document.deercheckinfo.harvestdate.value)) 
  { 
    document.getElementById('dateerror').style.display = 'block';
    error = true;
  }
  else 
  {
    // Validate the date entered against the season dates
    var hDate = new Date(document.deercheckinfo.harvestdate.value);
    var sDate1 = new Date('09/15/2009');
    var eDate1 = new Date('11/13/2009');
    var sDate2 = new Date('11/23/2009');
    var eDate2 = new Date('01/16/2010');
    if ( !(hDate>=sDate1 && hDate<=eDate1) && !(hDate>=sDate2 && hDate<=eDate2) ) 
    {
      document.getElementById('dateerror').style.display = 'block';
      error = true;
    }
  } 

  // If no errors occurred, disable the top controls and display the remainder of the form
  if (error==false) 
  {
    document.deercheckinfo.unitcode.disabled=true;
    document.deercheckinfo.permit.disabled=true;
    document.deercheckinfo.harvestdate.disabled=true;
    //document.deercheckinfo.storepermit.value = document.deercheckinfo.permit.value;
    //document.deercheckinfo.storeharvestdate.value = document.deercheckinfo.harvestdate.value;
    document.getElementById('submittop').style.display = 'none';
    document.getElementById('harvestinfo').style.display = 'block';
  }
}

function validatebottom()
{
  // Reset all elements that started off invisible to their non-visible styles
  document.getElementById('countyerror').style.display = 'none';
  document.getElementById('specieserror').style.display = 'none';
  document.getElementById('sexerror').style.display = 'none';
  document.getElementById('ageerror').style.display = 'none';
  
  var error = false;
  
  // Make sure that a valid County has been selected
  if (document.deercheckinfo.killcounty.value == '') 
  { 
    document.getElementById('countyerror').style.display = 'block';
    error = true; 
  }
  
  // Make sure that a valid Species has been selected
  if (document.deercheckinfo.killspecies[0].checked==false && document.deercheckinfo.killspecies[1].checked==false) 
  { 
    document.getElementById('specieserror').style.display = 'block';
    error = true; 
  }
  
  //alert(document.deercheckinfo.killsex.value);
  // Make sure that a valid Sex has been selected
  if (document.deercheckinfo.killsex[0].checked==false && document.deercheckinfo.killsex[1].checked==false) 
  { 
    document.getElementById('sexerror').style.display = 'block';
    error = true; 
  }

  //alert(document.deercheckinfo.killage.value);
  // Make sure that a valid Age has been selected
  if (document.deercheckinfo.killage[0].checked==false && document.deercheckinfo.killage[1].checked==false) 
  { 
    document.getElementById('ageerror').style.display = 'block';
    error = true; 
  } 

  // If no errors occurred, submit the form
  if (error==false) 
  {
    document.deercheckinfo.unitcode.disabled=false;
    document.deercheckinfo.permit.disabled=false;
    document.deercheckinfo.harvestdate.disabled=false;    
    document.deercheckinfo.submit();
  }
}

// ******************************************************************
// This function accepts a string variable and verifies if it is a
// proper date or not. It validates format matching either
// mm-dd-yyyy or mm/dd/yyyy. Then it checks to make sure the month
// has the proper number of days, based on which month it is.

// The function returns true if a valid date, false if not.
// ******************************************************************
function isDate(dateStr) {

  var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
  var matchArray = dateStr.match(datePat); // is the format ok?
  
  if (matchArray == null) {
    alert("Please enter date as mm/dd/yyyy.");
    return false;
  }
  
  month = matchArray[1]; // p@rse date into variables
  day = matchArray[3];
  year = matchArray[5];
  
  if (month < 1 || month > 12) { // check month range
    alert("Month must be between 1 and 12.");
    return false;
  }
  
  if (day < 1 || day > 31) {
    alert("Day must be between 1 and 31.");
    return false;
  }
  
  if ((month==4 || month==6 || month==9 || month==11) && day==31) {
    alert("Month "+month+" doesn`t have 31 days!")
    return false;
  }
  
  if (month == 2) { // check for february 29th
    var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
    if (day > 29 || (day==29 && !isleap)) {
      alert("February " + year + " doesn`t have " + day + " days!");
      return false;
    }
  }
  return true; // date is valid
}
