function validDate(thedate) {
  var strdate = thedate;
  dateError=false;
  newstring=strdate.replace(dateChars, "-");
  newstring=newstring.replace(/ /gi, "");
  var dates=newstring.split("-");
  if (isNaN(dates[0])) { dateError=true; }
  else if (dates[0].length < 1 || dates[0].length > 2) { dateError=true; }
  else if (dates[0] < 1 || dates[0] > 12) { dateError=true; }
  else if (isNaN(dates[1])) { dateError=true; }
  else if (dates[1].length < 1 || dates[1].length > 2) { dateError=true; }
  else if (dates[1] < 1 || dates[1] > 31) { dateError=true; }
  else if (isNaN(dates[2])) { dateError=true; }
  else if (dates[2].length != 4) { dateError=true; }
  else if (dates[2] < 2005 || dates[2] > thisYear) { dateError=true; }
  if  (dateError) { return false; }
  else { return true; };
}

function validateForm() {
  var d=document.eventform;
  d.submit.disabled = true;
  var errorTable="";
  var firstError="";
  var fieldError=false;
  var errorColor="#ff0000";
  var normalColor="#000000";

  if (d.fName.value == "") {
    errorTable+="'Name' must be entered\n";
    if (!firstError) firstError=d.fName;
    setColors('fidName', errorColor);
  } else { setColors('fidName', normalColor); }

  fieldError=false;
  if (d.fEmail.value == "") {
    errorTable+="'Your E-Mail Address' must be entered\n";
    fieldError=true;
  } else if (!validEmail(d.fEmail.value)) {
    errorTable+="'Your E-Mail Address' appears to be invalid\n";
    fieldError=true;
  }
  if (fieldError) {
    if (!firstError) firstError=d.fEmail;
    setColors('fidEmail', errorColor);
  } else {
    setColors('fidEmail', normalColor);
  }

  if (d.fBusiness.value == "") {
    errorTable+="'Business' must be entered\n";
    if (!firstError) firstError=d.fBusiness;
    setColors('fidBusiness', errorColor);
  } else { setColors('fidBusiness', normalColor); }

  if (d.fWebsite.value == "") {
    errorTable+="'Website Address' must be entered\n";
    if (!firstError) firstError=d.fWebsite;
    setColors('fidWebsite', errorColor);
  } else { setColors('fidWebsite', normalColor); }

  fieldError=false;
  if (d.fDstart.value == "") {
    errorTable+="'Start Date' must be entered\n";
    fieldError=true;
  } else if (!validDate(d.fDstart.value)) {
    errorTable+="'Start Date' appears to be invalid\n";
    fieldError=true;
  }
  if (fieldError) {
    if (!firstError) firstError=d.fDstart;
    setColors('fidDstart', errorColor);
  } else {
    setColors('fidDstart', normalColor);
  }

  fieldError=false;
  if (d.fDend.value == "") {
    errorTable+="'End Date' must be entered\n";
    fieldError=true;
  } else if (!validDate(d.fDend.value)) {
    errorTable+="'End Date' appears to be invalid\n";
    fieldError=true;
  }
  if (fieldError) {
    if (!firstError) firstError=d.fDend;
    setColors('fidDend', errorColor);
  } else {
    setColors('fidDend', normalColor);
  }

  if (d.fDescription.value == "") {
    errorTable+="'Description' must be entered\n";
    if (!firstError) firstError=d.fDescription;
    setColors('fidDescription', errorColor);
  } else { setColors('fidDescription', normalColor); }

  if (errorTable) {
    alert (errorTable);
    firstError.focus();
    d.submit.disabled = false;
    return false;
  } else { return true; }

}