function checkForm() {
firstname = document.getElementById("firstname").value;
lastname = document.getElementById("lastname").value;
address = document.getElementById("mailingaddress").value;
city = document.getElementById("city").value;
state = document.getElementById("state").value;
zip = document.getElementById("zip").value;
dayphone = document.getElementById("phone").value;
email = document.getElementById("email").value;
elems = document.getElementById("donate").elements['amount'];
checkedChoice = null;
emailcheck = echeck(document.getElementById("email").value);
ownamount = document.getElementById("ownamount").value;

for (var i=0; i < elems.length; i++) {
  var choice = elems[i];
  if (choice.checked) {
    checkedChoice = choice;
    break;
  }
}

pledgecheck = checkDollarFormat("ownamount");

 if (firstname == "") {
  hideAllErrors();
document.getElementById("firstnameError").style.display = "inline";
document.getElementById("firstname").select();
document.getElementById("firstname").focus();
  return false;
  } else if (lastname == "") {
hideAllErrors();
document.getElementById("lastnameError").style.display = "inline";
document.getElementById("lastname").select();
document.getElementById("lastname").focus();
  return false;
  }
    else if (emailcheck == false) {
hideAllErrors();
document.getElementById("emailError").style.display = "inline";
document.getElementById("email").select();
document.getElementById("email").focus();
  return false;
  }
   else if (dayphone == "") {
hideAllErrors();
document.getElementById("dayphoneError").style.display = "inline";
document.getElementById("phone").select();
document.getElementById("phone").focus();
  return false;
  }
  else if (address == "") {
hideAllErrors();
document.getElementById("addressError").style.display = "inline";
document.getElementById("mailingaddress").select();
document.getElementById("mailingaddress").focus();
  return false;
  }
  else if (city == "") {
hideAllErrors();
document.getElementById("cityError").style.display = "inline";
document.getElementById("city").select();
document.getElementById("city").focus();
  return false;
  }
  else if (state == "") {
hideAllErrors();
document.getElementById("stateError").style.display = "inline";
document.getElementById("state").select();
document.getElementById("state").focus();
  return false;
  }
  else if (zip == "") {
hideAllErrors();
document.getElementById("zipError").style.display = "inline";
document.getElementById("zip").select();
document.getElementById("zip").focus();
  return false;
  }
  else if (checkedChoice == null) {
hideAllErrors();
document.getElementById("choiceError").style.display = "inline";
document.location='#errorfocus';
return false;
}
else if (checkedChoice.id == "r4" && ownamount == "") {
hideAllErrors();
document.getElementById("pledgedvalueError").style.display = "inline";
document.getElementById("ownamount").select();
document.getElementById("ownamount").focus();
return false;
}
else if (checkedChoice.id == "r4" && pledgecheck ==false) {
hideAllErrors();
document.getElementById("pledgedvalueError").style.display = "inline";
document.getElementById("ownamount").select();
document.getElementById("ownamount").focus();
return false;
}
  return true;
  }
 
  function hideAllErrors() {
document.getElementById("choiceError").style.display = "none";
document.getElementById("pledgedvalueError").style.display = "none";
document.getElementById("firstnameError").style.display = "none";
document.getElementById("lastnameError").style.display = "none";
document.getElementById("addressError").style.display = "none";
document.getElementById("cityError").style.display = "none";
document.getElementById("stateError").style.display = "none";
document.getElementById("zipError").style.display = "none";
document.getElementById("dayphoneError").style.display = "none";
document.getElementById("emailError").style.display = "none";
  }
  

function checkDollarFormat(id) {
	
	  // makes sure that if there's a decimal point, it's followed by two digits
	  dot=document.getElementById(id).value.indexOf('.')
	  lastdot=document.getElementById(id).value.lastIndexOf('.')
	  if((dot!=-1) && ((dot!=(document.getElementById(id).value.length-3)) || (dot!=lastdot))) {

	    return false;
	  }
	  if (isZero(document.getElementById(id).value)) {
	    return false;

	  }
	  // Makes sure that only numbers or '$' or '.' or ',' are present.
	  for (i = 0; i < document.getElementById(id).value.length; i++) {
	    ch = document.getElementById(id).value.substring(i, i + 1)
		if(!isDollar(ch)){

	      return false;
		} else {
		  if(ch==","){
		    // Makes sure that if there's a comma, it only occurs to divide groups of 1000s
			// (i.e. 1,000 or 10,000 or 100,000 or 1,000,000 but NOT 10,00,00)
			if((!isDigit(document.getElementById(id).value.substring(i-1,i))) || (!isDigit(document.getElementById(id).value.substring(i+1,i+2))) ||(!isDigit(document.getElementById(id).value.substring(i+2,i+3))) ||(!isDigit(document.getElementById(id).value.substring(i+3,i+4)))) {

			  return false;
	        }
		  }
		}
	  }
	  return true;
	}
	
		function isDollar(n){
	  if( ((n < "0") || ("9" < n)) && (n!=".")) {
	    return false;
	  } else {
	    return true;
	  }
	}
	
	function isDigit(n){
	  if( (n < "0") || ("9" < n) ){
	    return false;
	  } else {
	    return true;
	  }
	}
	
	function isZero(n) {
	if(n === "0") {
	   return true;
	  }
	  else {
	   return false;
	  }
	}
	
function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){

		   return false;
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){

		   return false;
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){

		    return false;
		}

		 if (str.indexOf(at,(lat+1))!=-1){

		    return false;
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){

		    return false;
		 }

		 if (str.indexOf(dot,(lat+2))==-1){

		    return false;
		 }
		
		 if (str.indexOf(" ")!=-1){

		    return false;
		 }

 		 return true;					
	}
	
function showhidefield()
  {
    if (document.getElementById("r4").checked==true)
    {
      document.getElementById("designatearea").style.display = "block";
    }
    else
    {
      document.getElementById("designatearea").style.display = "none";
    }
  }