function blocking(nr) { 
	$('#answers > *').hide();
	$('#'+nr).show();
}

function showSubmit() {
	$("#submit").show();
}

function VerifyForm(form) {
	 
	var checkemail = form.email.value.match(/\b(^(\S+@).+(\..{2,6})$)\b/gi);
	$("#submit").hide();
	  
	if(!form) {
		showSubmit();
        return false;
    }
	if(!form.firstname.value) {
		alert("Your FIRST name is blank!\nPlease revise this field.");
		showSubmit();
		return false;
    }
        if(form.firstname.value.match(/[^A-z\.\ \'\`\-]/g)){
            alert("Your FIRST name appears to contain improper characters!\nPlease revise this field.");
            showSubmit();
            return false;
        }
        if(countchars(form.firstname.value)){
            alert("Your FIRST name appears to contain improper usage of letters!\nPlease revise this field.");
            showSubmit();
            return false;
        }
        if(!form.firstname.value.match(/[A-z\.]{2,20}/g)){
            alert("Your FIRST name appears to be either too short or unrealistically long!\nPlease revise this field.");
            showSubmit();
            return false;
        }
        if (form.firstname.value.match(/Dr\.\s|dr\.\s|Rev\.\s|rev\.\s|Jr\.\s|jr\.\s|Sr\.\s|sr\.\s|\sIII|III\s|\siii|iii\s|\sII|II\s|\sii|ii\s|\sIV|IV\s|\siv|iv\s|Mr\.\s|mr\.\s|Mrs\.\s|mrs\.\s|Ms\.\s|ms\.\s/g)){
            alert("Your FIRST name appears to contain prefixes or suffixes that are not appropriate!\nPlease revise this field.");
            showSubmit();
            return false;
        }
        if (badCAPS(form.firstname)){
            alert("Your FIRST name appears to have inappropriate use of upper/lower case!\nPlease revise this field.");
            showSubmit();
            return false;
        }
        if(!form.lastname.value) {
            alert("Your LAST name is blank!\nPlease revise this field.");
            showSubmit();
            return false;
        }
        if(form.lastname.value.match(/[^A-z\.\ \'\`\-]/g)){
            alert("Your LAST name appears to contain improper characters!\nPlease revise this field.");
            showSubmit();
            return false;
        }
        if(countchars(form.lastname.value)){
            alert("Your LAST name appears to contain improper usage of letters!\nPlease revise this field.");
            showSubmit();
            return false;
        }
        if(!form.lastname.value.match(/[A-z]{2,20}/g)){
            alert("Your LAST name appears to be either too short or unrealistically long!\nPlease revise this field.");
            showSubmit();
            return false;
        }
        if (LbadCAPS(form.lastname)){
            alert("Your LAST name appears to have inappropriate use of upper/lower case!\nPlease revise this field.");
            showSubmit();
            return false;
        }
        if (form.title.value == "Mr" ||
            form.title.value == "Mr." ||
            form.title.value == "Mrs." ||
            form.title.value == "Mrs" ||
            form.title.value == "Miss" ||
            form.title.value == "Miss." ||
            form.title.value == "Ms" ||
            form.title.value == "Ms." ||
            form.title.value == "Dr" ||
            form.title.value == "Dr." ||
            form.title.value == "Rev" ||
            form.title.value == "Rev.") {
          alert("Your TITLE/ORGANIZATION appears to be inappropriate.  Please use the HONORIFIC instead of the titles you entered.");
          showSubmit();
          return false;
        }
        


        if(!form.phone.value) {
            alert("Your PHONE number is blank!\nPlease revise this field.");
            showSubmit();
            return false;
        }
        if(form.phone.value.match(/[^0-9\ \.\-\(\)]/g)){
            alert("Your PHONE NUMBER includes improper characters!\nPlease revise this field.");
            showSubmit();
            return false;
        }
        if(countdigits(form.phone.value)){
            alert("Your PHONE number appears to be too short or too long!\nPlease revise this field.");
            showSubmit();
            return false;
        }
        if(!form.username.value) {
            alert("Your USERNAME is blank!\nPlease revise this field.");
            showSubmit();
            return false;
        }
        if(!checkemail) {
            alert("Your EMAIL address is either blank or obviously in error!\nPlease revise this field.");
            showSubmit();
            return false;
        }
        if(!form.email.value) {
            alert("Your EMAIL address is blank!\nPlease revise this field.");
            showSubmit();
            return false;
        }
        if(!form.password.value) {
            alert("Your password is blank!\nPlease revise this field.");
            showSubmit();
            return false;
        }
        if(form.password.value != form.password2.value) {
            alert("Your PASSWORDS do not match! This may be due to a typo.\nPlease revise these fields.");
            showSubmit();
            return false;
        }
        return true;
}
 
function countchars(totest) {
     var results = totest.match(/[A-HJ-UY-z\.\'\`\-\,\#\:]/g);
     for (i=0; i < results.length; i++){
      var j = i-1;
      var k = i-2;
      if (i > 2){
       if (results[i] == results[j] && results[i] == results[k]){ return 1; }
      }
     }
     return 0;
    }

        // recent edit: the matching expression seems to have difficulty checking actual volume of digits, so this does it
        // more manually
    function countdigits(totest) {
     var results = totest.match(/[0-9]/g);
     if (results.length == 10 || results.length == 11){
      return 0;
     }
     return 1;
    }


function badCAPS(theelement) {
 var letters = theelement.value.match(/[A-z]/g);
 var caps = theelement.value.match(/[A-HJ-UY-Z]/g);
 var allcaps = theelement.value.match(/[A-Z]/g);
 var firstletter = theelement.value.substring(0,1);
 var firstCAP = firstletter.match(/[A-Z]/g);

 if (!theelement.value){
  return false;
 }
 if (!allcaps){ return true; }
 if (!firstCAP || (caps && caps.length > 4)){
  return true;
 }

 return false;
}
function LbadCAPS(theelement) {
 var letters = theelement.value.match(/[A-z]/g);
 var caps = theelement.value.match(/[A-HJ-UY-Z]/g);
 var allcaps = theelement.value.match(/[A-Z]/g);
 var nocaps = theelement.value.match(/[a-z]/g);

 if (!theelement.value){  return false; }
 if (!allcaps){ return true; }
 if (!nocaps){ return true; }

 return false;
}

function addCAPS(theelement) {
 var letters = theelement.value.match(/[A-z]/g);
 var allcaps = theelement.value.match(/[A-Z]/g);
 var caps = theelement.value.match(/[A-HJ-UY-Z]/g);

 if (!allcaps){ return true; }
 if (allcaps.length > 5){
  return true;
 }

 return false;
}


function checkfor(theelement, openit){
 if (badCAPS(theelement)){
  expandcontent(openit);
 }
}

function emailValid(form){
      var checkemail = form.email.value.match(/\b(^(\S+@).+(\..{2,6})$)\b/gi);
        if(!checkemail) {
            alert("Your EMAIL address is either blank or obviously in error!\nPlease revise this field.");
            return false;
        }
        if(!form.email.value) {
            alert("Your EMAIL address is blank!\nPlease revise this field.");
            return false;
        }
return true;
}
