// This will focus the first non-hidden text or textarea field of the first form on the page.
function focus_first () {
    var form = document.forms[0];
    if (form != null && form.elements[0] != null) {
        for (var i = 0; i < form.elements.length; ++i) {
            var field = form.elements[i];
            if (field.type!="hidden" && (field.type=="text" || field.type=="textarea")) {
                field.focus();
                break;
            }
        }
    }
}

// Validate form input
function validate () {
	var lenFirstName = (document.rsvpform.first_name.value).length;
	var lenLastName = (document.rsvpform.last_name.value).length;
	var lenEmail = (document.rsvpform.email.value).length;
	var lenAddress = (document.rsvpform.street_address.value).length;
	var lenCity = (document.rsvpform.city.value).length;
	var lenZip = (document.rsvpform.zip.value).length;
	var emailAddress = document.rsvpform.email.value;
	var emailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	
	if (lenFirstName > 50) {
		alert("Please abbreviate your first name.");
		return false;
	} elseif (lenLastName > 50) {
		alert("Please abbreviate your last name.");
		return false;	
	} elseif (lenAddress > 100) {
		alert("Please abbreviate your street address.");
		return false;
	} elseif (lenEmail > 100) {
		alert("Your email address is rather long, so we are dubious. Please enter a shorter email address.");
		return false;		
	} elseif (!emailFilter.test(emailAddress)) {
		alert("Please enter a valid email address.");
		return false;		
	} elseif (lenCity > 50) {
		alert("Please abbreviate the name of your city.");
		return false;	
	} elseif (lenZip < 5 || lenZip > 10) {
		alert("Please enter a valid ZIP code.");
		return false;	
	} else return true;
}

// Textarea Character Count Limiter  (Since <textarea> tags do not have native character limits)

function textCounter( field, countfield, maxlimit ) {
  if ( field.value.length > maxlimit )
  {
    field.value = field.value.substring( 0, maxlimit );
    alert( 'Textarea value can only be ' + maxlimit + ' characters in length.' );
    return false;
  }
  else
  {
    countfield.value = maxlimit - field.value.length;
  }
}

