// This function does a reset of the form
function Reset() {
  var DE = document.DataEntry;
  DE.LogNumber.value = "";
  DE.Received.value = "";
  for ( var i = 0; i < 5; i++ ) {
    DE.State[i].checked = false;
  }  
  DE.Location.value = "";
  DE.EventName.value = "";

  DE.EventYear[0].checked =
                 DE.EventYear[1].checked =
		 DE.EventYear[2].checked = false;
  DE.StartMonth.selectedIndex = 0;
  DE.StartDay.selectedIndex = 0;
  DE.EndMonth.selectedIndex = 0;
  DE.EndDay.selectedIndex = 0;

  DE.Class.selectedIndex = 0;
  
  DE.Site.value = "";
  DE.SponsorClub.value = "";
  DE.ClubNumber.value = "";
  DE.Events.value = "";
  DE.CDName.value = "";
  DE.CDPhoneDay.value = "";
  DE.CDAddress.value = "";
  DE.CDPhoneEves.value = "";
  DE.CDCSZ.value = "";
  DE.CDPhoneOther.value = "";
  DE.CDEMail.value = "";
  DE.WebSite.value = "";
  DE.CDAMAno.value = "";
  DE.DateSigned.value = "";
  DE.CheckAmnt.value = "";
  DE.NotifyAdjacent.value = "";
  DE.HoldSanctionTo.value = "";
  DE.SanctionToHQs.value = "";
  DE.EventNotes.value = "";
  DE.CoordNotes.value = "";
  DE.Status[0].checked =
                 DE.Status[1].checked =
		 DE.Status[2].checked = 
		 DE.Status[3].checked = false;
}  

// Function verify the format of an e-mail address
function Verify_eDress() {
  var eDress = document.DataEntry.CDEMail.value;
  var eDress_Pattern = /^[0-9a-zA-Z]+[.0-9a-zA-Z_-]*@[0-9a-zA-Z]+[-0-9a-zA-Z]*\.[0-9a-zA-Z]+[-.0-9a-zA-Z]*[0-9a-zA-Z]+$/;
  if ( ! eDress_Pattern.test( eDress ) ) {
    alert( "Invalid E-Mail Address" );
    return false;
  }
  return true;
}   
function Verify_YourEDress() {
  var eDress = document.DataEntry.YourEDress.value;
  var eDress_Pattern = /^[0-9a-zA-Z]+[.0-9a-zA-Z_-]*@[0-9a-zA-Z]+[-0-9a-zA-Z]*\.[0-9a-zA-Z]+[-.0-9a-zA-Z]*[0-9a-zA-Z]+$/;
  if ( ! eDress_Pattern.test( eDress ) ) {
    alert( " Your E-Mail address is Invalid" );
    return false;
  }
  return true;
}   

// This variable controls whether or not a bunch of checking is truncated
var Truncated = false;

function ChkExists() {
  if ( Truncated ) { return true; }
  var Result = true;
  var DE = document.DataEntry;
  for ( var i = 0; i < LogNumbers.length; i++ ) {
    if ( DE.LogNumber.value >= LogNumbers[i].From &&
         DE.LogNumber.value <= LogNumbers[i].Through ) {
      
      var DoIt = confirm ( "LogNumber "+DE.LogNumber.value+" already exists.\n"
                          +"Shall we over-write it with this entry?\n" );
      if ( !DoIt ) {
        Result = false;
        return Result;
      }
    }
  }  
  return true;
}  



//Function to make sure everything important is filled in
function VerifyExtended() {
  var Result = true;
  var DE = document.DataEntry;
  if ( DE.YourName.value == "" ) {
    alert ( "Your Name is blank." );
    DE.YourName.focus();
    Result = false;
    return Result;
  }  
  Result = Verify_YourEDress();
  if ( ! Result  ) {
    return Result;
  }

  Result &= Verify();
  return Result;
}  
function Verify() {
  var Result = true;
  var DE = document.DataEntry;
  if ( ! Truncated ) {
    if ( DE.LogNumber.value == "" ) {
      alert ( "Log Number is blank" );
      DE.LogNumber.focus();
      Result = false;
      return Result;
    }  
  
  
  
  
    if ( DE.Received.value == "" ) {
      alert ( "Date Received is blank" );
      Result = false;
      DE.Received.focus();
      return Result;
    }  
  }


  var StateChecked = false;
  var i;
  for ( i = 1; i < DE.State.length; i++ ) {
    if ( DE.State.options[i].selected ) {
      StateChecked = true;
      break;
     }
   }
   if ( ! StateChecked ) { 
    alert ( "State is not selected" );
    Result = false;
    return Result;
  }  

  if ( DE.Location.value == "" ) {
    alert ( "Event Location is blank" );
    Result = false;
    DE.Location.focus();
    return Result;
  }  

  if ( DE.EventName.value == "" ) {
    alert ( "Event Name is blank" );
    Result = false;
    DE.EventName.focus();
    return Result;
  }  
  if ( ! (DE.EventYear[0].checked ||
          DE.EventYear[1].checked ||
	  DE.EventYear[2].checked ) ) {
    alert ( "Year of Event is not checked" );
    Result = false;
    return Result;
  }  
  if ( DE.StartMonth.value == "" ) {
    alert ( "Start Month of Event is not selected" );
    Result = false;
    return Result;
  }  
  if ( DE.StartDay.value == "" ) {
    alert ( "Start Day of Event is not selected" );
    Result = false;
    return Result;
  }  
  if ( DE.Class.value == "" ) {
    alert ( "Class of Event is not selected" );
    Result = false;
    return Result;
  }  
  if ( DE.Site.value == "" ) {
    alert ( "Site is blank" );
    Result = false;
    DE.Site.focus();
    return Result;
  }  
  // If either the sponsor or the club number is entered, they both must be.
  if ( ( DE.SponsorClub.value == "" && DE.ClubNumber.value != "" ) ||
       ( DE.SponsorClub.value != "" && DE.ClubNumber.value == "" ) ) {
    Result = false;
    alert ( "If either the Sponsor Club or the Club Number is blank\n then they both must be." );
    DE.SponsorClub.focus();
    return Result;
  } 
  if ( DE.Events.value == "" && DE.EventNotes.value == "" ) {
    alert ( "Both Event Description and Event Notes are blank" );
    Result = false;
    DE.Events.focus();
    return Result;
  }  
  if ( DE.CDName.value == "" ) {
    alert ( "CD Name is blank" );
    Result = false;
    DE.CDName.focus();
    return Result;
  }  
  if ( DE.CDPhoneDay.value == "" && DE.CDPhoneEves.value == ""&& DE.CDPhoneOther.value == "" ) {
    alert ( "At least one phone number must be entered for CD" );
    Result = false;
    DE.CDPhoneDay.focus();
    return Result;
  }  
  if ( DE.CDAddress.value == "" ) {
    alert ( "CD Address is blank" );
    Result = false;
    DE.CDAddress.focus();
    return Result;
  }  
  if ( DE.CDCSZ.value == "" ) {
    alert ( "CD Sity/State/ZIP is blank" );
    Result = false;
    DE.CDCSZ.focus();
    return Result;
  }  
  if ( ! Truncated ) {
    if ( !(DE.Status[0].checked ||
           DE.Status[1].checked ||
           DE.Status[2].checked ||
           DE.Status[3].checked ) ) {
      alert ( "One of the Status values must be checked off." );
      Result = false;
      return Result;
    }  
  }
  return Result;
}

function SubmitExtended( URL ) {
  var Result =  VerifyExtended();
  var DE = document.DataEntry;
  if ( Result ) {
    DE.action = URL;
    DE.submit();
  }
  return Result;
}  

function Submit( URL ) {
  var Result =  ChkExists() && Verify();
  var DE = document.DataEntry;
  if ( Result ) {
    if ( ! Truncated ) { DE.target="Main"};
    DE.action = URL;
    DE.submit();
  } 
  return Result;
}  


var Features = "height=300,width=800,scrollbars";
var CalEntryURL = 'CalEntry.php';


function OpenCalEntry ( LogNumber ) {
  var LogEntryURL = CalEntryURL+"?LogNumber="+LogNumber;
  window.open( LogEntryURL, "Calendar_Entry", Features, false );
}  

// This function validates the Form entry data, opens a small window
// and then causes a Calendar entry to be printed in it
function OpenCalEntry2 () {
  var Result = Verify();
  var DE = document.DataEntry;
  if ( Result ) {
    window.open( "", "Calendar Entry", Features, false );
    DE.target='Calendar Entry';
    DE.action = CalEntryURL;
    DE.submit();
  }
}  
  
