function do_continue()
{
  if(!document._webform.webform_first_name.value.length)
  {
    alert("Please enter your first name.");
    document._webform.webform_first_name.focus();
    return;
  }
  else if(!document._webform.webform_last_name.value.length)
  {
    alert("Please enter your last name.");
    document._webform.webform_last_name.focus();
    return;
  }
  else if(!/^\w[\w\.-]*@[\w\.-]+\.[\w\.-]+$/.test(
    document._webform.webform_email.value))
  {
    alert("Please enter a valid E-mail address.");
    document._webform.webform_email.focus();
    return;
  } 
  else if(!document._webform.webform_street.value.length)
  {
    alert("Please enter your street address.");
    document._webform.webform_street.focus();
    return;
  }
  else if(!document._webform.webform_city.value.length)
  {
    alert("Please enter your city.");
    document._webform.webform_city.focus();
    return;
  }
  else if(!document._webform.webform_state.value.length)
  {
    alert("Please enter your state.");
    document._webform.webform_state.focus();
    return;
  }
  else if(!document._webform.webform_zip.value.length)
  {
    alert("Please enter your zip code.");
    document._webform.webform_zip.focus();
    return;
  }
  
  
  else if(document._webform.webform_attendees &&
    (isNaN(document._webform.webform_attendees.value)))
  {
    alert("Please enter a valid number of persons attending.");
    document._webform.webform_attendees.focus();
    return;
  }
  else if(document._webform.webform_attendees && document._webform.webform_attendees.value % 2 != 1 && document._webform.webform_attendees.value % 2 != 0)
  {
    alert("Please enter a valid number of persons attending.");
    document._webform.webform_attendees.focus();
    return;
  }
  else if(document._webform.webform_attendees && document._webform.webform_attendees.value > 5)
  {
    alert("You can only enter up to 5 attendees.");
    document._webform.webform_attendees.focus();
    return;
  }
 
  else if(document._webform.webform_donation && isNaN(document._webform.webform_donation.value))
  {
    alert("Please enter a valid donation amount.");
    document._webform.webform_donation.focus();
    return;
  }
  else if((document._webform.webform_donation && document._webform.webform_donation.value == 0) && (document._webform.webform_attendees && document._webform.webform_attendees.value == 0))
  {
    alert("Please enter at least one attendee or a donation amount.");
    document._webform.webform_donation.focus();
    return;
  }

  

  
  var account = "";

  if(document._webform.webform_credit_card_number && !document._webform.webform_credit_card_number.length)
  {
    for(i = 0; i < document._webform.webform_credit_card_number.value.length; i++)
    {
      letter = document._webform.webform_credit_card_number.value.substring(i, i+1);
      if((letter >= "0") && (letter <= "9")) account = account + letter;
    }
    if(!account.length)
    {
      alert("Please enter your credit card account number.");
      document._webform.webform_credit_card_number.focus();
      return;
    }
    if((account.substr(0, 1) != "3") && (account.substr(0, 1) != "4") &&
      (account.substr(0, 1) != "5") && (account.substr(0, 1) != "6"))
    {
      alert("Sorry, we only accept Visa, Mastercard, Discover," +
        " and American Express.");
      return;
    }
    if(account.substr(0, 1) == "3") // American Express.
    {
      if(account.length != 15)
      {
        alert("Your credit card number should have 15 digits.");
        document._cart.creditcard_account.focus();
        return;
      }
    }
    else if(account.length != 16) // All other cards.
    {
      alert("Your credit card number should have 16 digits.");
      document._cart.creditcard_account.focus();
      return;
    }
  }

  // Check expiration date.

  if(document._webform.webform_credit_card_expiration)
  {
	  var expiration = "";
	  for(i = 0; i < document._webform.webform_credit_card_expiration.value.length; i++)
	  {
	    letter = document._webform.webform_credit_card_expiration.value.substring(i, i+1);
	    if(((letter >= "0") && (letter <= "9")) || (letter == "/"))
	      expiration = expiration + letter;
	  }
	
	  today = new Date();
	  year = today.getYear() - 2000;
	  if(year < 0) year += 1900;
	  exp_year = new Number(expiration.substring(3));
	  month = today.getMonth() + 1;
	  exp_month = new Number(expiration.substring(0, 2));
	
	  if(!document._webform.webform_credit_card_expiration.value.length)
	  {
	    alert("Please enter the card expiration date.");
	    document.__webform.webform_credit_card_expiration.focus();
	    return;
	  }
	  if(expiration.length != 5)
	  {
	    alert("Please format the expiration date as mm/yy.");
	    document._webform.webform_credit_card_expiration.focus();
	    return;
	  }
	  if(expiration.indexOf("/") != 2)
	  {
	    alert("Please format the expiration date as mm/yy.");
	    document._webform.webform_credit_card_expiration.focus();
	    return;
	  }
	  if((exp_year < year) || (exp_year > 20))
	  {
	    alert("The expiration date must be at least " + (year + 2000) + ".");
	    document._webform.webform_credit_card_expiration.focus();
	    return;
	  }
	  if((exp_year == year) && (exp_month < month))
	  {
	    alert("The expiration date must be in the future.");
	    document._webform.webform_credit_card_expiration.focus();
	    return;
	  }
	  if((exp_month < 1) || (exp_month > 12))
	  {
	    alert("Please enter a valid month for the expiration date.");
	    document._webform.webform_credit_card_expiration.focus();
	    return;
	  }
  }
  
  // Check CVV2 (if we have one).

  if(document._webform.webform_credit_card_cvv2)
  {
    if(account.substr(0, 1) == "3") // American Express.
    {
      if(document._webform.webform_credit_card_cvv2.value.length != 4)
      {
        alert("The CVV2 security number should have four digits.");
        document._webform.webform_credit_card_cvv2.focus();
        return;
      }
    }
    else // All other cards.
    {
      if(document._webform.webform_credit_card_cvv2.value.length != 3)
      {
        alert("The CVV2 security number should have three digits.");
        document._webform.webform_credit_card_cvv2.focus();
        return;
      }
    }
  }
  
  document._webform.what.value = "save-webform";
  document._webform.submit();
}

function fundraiser_total_cost()
{
  total_cost = (parseInt($F('webform_attendees')) * 30) + parseFloat($F('webform_donation'));
      
  if(isNaN(total_cost))
  {
    $('webform_total_cost').value = '';
  }
  else
  {
    $('webform_total_cost').value = '$' + total_cost;
  }
}

Event.observe(window, 'load', function()
{
  if($('webform_attendees'))
  {
    $('webform_attendees').observe('blur', function() {
      fundraiser_total_cost();});
  }
  
  if($('webform_donation'))
  {
    $('webform_donation').observe('blur', function() {
      fundraiser_total_cost();});
  }
});
