// JavaScript Document
function check_duplicates() {
     var email = document.getElementById("email").value;
     var url = "duplicateproc.php"
     request.open("POST", url, true);
     request.onreadystatechange = updatePage;
	  request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     request.send("email=" + escape(email));
   }
	
	function updatePage() {
  if (request.readyState == 4) {
    if (request.status == 200) {
      var response = request.responseText;
		if (response>0)
		{
			duplicate()
		}
		else
		{
			validate_data()
		}
      
	    
    } else {
      var message = request.getResponseHeader("Status");
      if ((message == null) || (message.length <= 0)) {
        alert("Error! Request status is " + request.status);
      } else {
        alert(message);
      }
    }
  }
}
	
function duplicate()
{
	var duplicate = "This person has already been entered.  If this is an error please contact Don Hazaert at 734-487-7048."
	document.getElementById('duplicate').innerHTML = duplicate;
	
	//This will revalidate the enteries.
	 var num =/[0-9!@#$%^&*()+`~"';?<>\\\/\[\]]/;
	 var add =/[!@#$%^&*()+`~"';?<>\\\/\[\]]/;
	 var zip = /[0-9-]/;
	 var phone = /^[1-9]\d{2}-\d{3}-\d{4}$/;
	 var email=/[!#$%^&*()+`~"';?<>\\\/\[\]]/;
	 var extention =/[A-Za-z!@#$%^&*()+`~"';?<>\\\/\[\]]/;
	 var problem = false;
	 var fnamenoentry = "You must enter a first name."
	 var lnamenoentry = "You must enter a last name."
	 var lettersonly = "You can only enter letters in the name fields."
	 var addressnoentry = "You must enter an address."
	 var addressformat = "An address can only contain letters, numbers, periods, and hyphens."
	 var citynoentry = "You must enter a city."
	 var cityformat = "A city can only contain letters, numbers, periods, and hyphens."
	 var statenoentry = "You must select a state."
	 var zipnoentry = "You must enter a zip code."
	 var zipformat = "Zip code can only contain numbers and hyphens."
	 var phonenoentry = "You must enter a phone number."
	 var extentionformat = " Extention numbers can only contain numbers."
	 var phoneformat = "Phone number is not formatted correctly. Please use the following format 999-999-9999."
	 var emailnoentry = "You must enter an email address."
	 var emailformat = "Email is not in correct format."
	 var collegenoentry = "You must select a college."
	 var blank = ""
	 document.getElementById('duplicate').innerHTML = blank;	
	 
			 //First name validation
			 
		 if (form1.firstname.value == "")
			{
				document.getElementById('fnameerror').innerHTML = fnamenoentry;
				problem = true;
			}
		
		else if(num.test(document.form1.firstname.value))
			{
				document.getElementById('fnameerror').innerHTML = lettersonly;
				problem = true
			}
		else
			{
				document.getElementById('fnameerror').innerHTML = blank;
			}
		
		//Last name validation
		
		if (form1.lastname.value == "")
			{
				document.getElementById('lnameerror').innerHTML = lnamenoentry;
				problem = true;
			}
		
		else if(num.test(document.form1.lastname.value))
			{
				document.getElementById('lnameerror').innerHTML = lettersonly;
				problem = true
			}
		else
			{
				document.getElementById('lnameerror').innerHTML = blank;
			}
				
			//Address validation	
				
		if (form1.address.value == "")
			{
				document.getElementById('addresserror').innerHTML = addressnoentry;
				problem = true;
			}
		
		else if(add.test(document.form1.address.value))
			{
				document.getElementById('addresserror').innerHTML = addressformat;
				problem = true;
			}
		else
			{
				document.getElementById('addresserror').innerHTML = blank;
			}
			
			//City validation
			
		if (form1.city.value == "")
			{
				document.getElementById('cityerror').innerHTML = citynoentry;
				problem = true;
			}
		
		else if(add.test(document.form1.city.value))
			{
				document.getElementById('cityerror').innerHTML = cityformat;
				problem = true;
			}
			
		else
			{
				document.getElementById('cityerror').innerHTML = blank;
			}
			
			//State validation
		
		if ( document.form1.state.selectedIndex == "" )
			 {
				  document.getElementById('stateerror').innerHTML = statenoentry;
				  problem = true;
			 }
		else
			{
					document.getElementById('stateerror').innerHTML = blank;
			}
			
			//zip validation
			
		if (form1.zip.value == "")
			{
				document.getElementById('ziperror').innerHTML = zipnoentry;
				problem = true;
			}
		
		else if(!zip.test(form1.zip.value))
			{
				document.getElementById('ziperror').innerHTML = zipformat;
				problem = true;
			}
		else
			{
				document.getElementById('ziperror').innerHTML = blank;
			}
			
			//Phone validation
			
		if (form1.phone.value == "")
			{
				document.getElementById('phoneerror').innerHTML = phonenoentry;
				problem = true;
			}
					
		else if(!phone.test(form1.phone.value))
			{
				document.getElementById('phoneerror').innerHTML = phoneformat;
				problem = true;
			}
		else
			{
				document.getElementById('phoneerror').innerHTML = blank;
			}
		
		//Extention validation
		
		if(extention.test(document.form1.extention.value))
			{
				document.getElementById('extentionerror').innerHTML = extentionformat;
				problem = true;
			}
		else
			{
				document.getElementById('extentionerror').innerHTML = blank;
			}
			
			//Email format
			
			if (form1.email.value == "")
			{
				document.getElementById('emailerror').innerHTML = emailnoentry;
				problem = true;
			}
						
		else if(email.test(document.form1.email.value))
			{
				document.getElementById('emailerror').innerHTML = emailformat;
				problem = true;
			}
		else
			{
				document.getElementById('emailerror').innerHTML = blank;
			}
			
			//college validation no college validation required
			
		/*if ( document.form1.college.selectedIndex == "" )
			 {
				  document.getElementById('collegeerror').innerHTML = collegenoentry;
				  problem = true;
			 }
		else
			{
					document.getElementById('collegeerror').innerHTML = blank
			}	*/
	var duplicate = "This person has already been entered.  If this is an error please contact Don Hazaert at 734-487-7048."
	document.getElementById('duplicate').innerHTML = duplicate;
}


//The check_data function validates the enteries and then send the information to the processing page on the server.
function validate_data()
{
	 
	 var num =/[0-9!@#$%^&*()+`~"';?<>\\\/\[\]]/;
	 var add =/[!@#$%^&*()+`~"';?<>\\\/\[\]]/;
	 var zip = /[0-9-]/;
	 var gradyr = /[A-Za-z!@#$%^&*()+`~"';?<>\\\/\[\]]/;
	 var phone = /^[1-9]\d{2}-\d{3}-\d{4}$/;
	 var email=/[!#$%^&*()+`~"';?<>\\\/\[\]]/;
	 var extention =/[A-Za-z!@#$%^&*()+`~"';?<>\\\/\[\]]/;
	 var problem = false;
	 var fnamenoentry = "You must enter a first name."
	 var lnamenoentry = "You must enter a last name."
	 var lettersonly = "You can only enter letters in the name fields."
	 var addressnoentry = "You must enter an address."
	 var addressformat = "An address can only contain letters, numbers, periods, and hyphens."
	 var citynoentry = "You must enter a city."
	 var cityformat = "A city can only contain letters, numbers, periods, and hyphens."
	 var statenoentry = "You must select a state."
	 var zipnoentry = "You must enter a zip code."
	 var zipformat = "Zip code can only contain numbers and hyphens."
	 var phonenoentry = "You must enter a phone number."
	 var extentionformat = " Extention numbers can only contain numbers."
	 var phoneformat = "Phone number is not formatted correctly. Please use the following format 999-999-9999."
	 var emailnoentry = "You must enter an email address."
	 var emailformat = "Email is not in correct format."
	 var collegenoentry = "You must select a college."
	 var gradyrformat = "Please enter a four digit number representing the year you graduated."
	 var blank = ""
	 document.getElementById('duplicate').innerHTML = blank;	 
			 //First name validation
			 
		 if (form1.firstname.value == "")
			{
				document.getElementById('fnameerror').innerHTML = fnamenoentry;
				problem = true;
			}
		
		else if(num.test(document.form1.firstname.value))
			{
				document.getElementById('fnameerror').innerHTML = lettersonly;
				problem = true
			}
		else
			{
				document.getElementById('fnameerror').innerHTML = blank;
			}
		
		//Last name validation
		
		if (form1.lastname.value == "")
			{
				document.getElementById('lnameerror').innerHTML = lnamenoentry;
				problem = true;
			}
		
		else if(num.test(document.form1.lastname.value))
			{
				document.getElementById('lnameerror').innerHTML = lettersonly;
				problem = true
			}
		else
			{
				document.getElementById('lnameerror').innerHTML = blank;
			}
				
			//Address validation	
				
		if (form1.address.value == "")
			{
				document.getElementById('addresserror').innerHTML = addressnoentry;
				problem = true;
			}
		
		else if(add.test(document.form1.address.value))
			{
				document.getElementById('addresserror').innerHTML = addressformat;
				problem = true;
			}
		else
			{
				document.getElementById('addresserror').innerHTML = blank;
			}
			
			//City validation
			
		if (form1.city.value == "")
			{
				document.getElementById('cityerror').innerHTML = citynoentry;
				problem = true;
			}
		
		else if(add.test(document.form1.city.value))
			{
				document.getElementById('cityerror').innerHTML = cityformat;
				problem = true;
			}
			
		else
			{
				document.getElementById('cityerror').innerHTML = blank;
			}
			
			//State validation
		
		if ( document.form1.state.selectedIndex == "" )
			 {
				  document.getElementById('stateerror').innerHTML = statenoentry;
				  problem = true;
			 }
		else
			{
					document.getElementById('stateerror').innerHTML = blank;
			}
			
			//zip validation
			
		if (form1.zip.value == "")
			{
				document.getElementById('ziperror').innerHTML = zipnoentry;
				problem = true;
			}
		
		else if(!zip.test(document.form1.zip.value))
			{
				document.getElementById('ziperror').innerHTML = zipformat;
				problem = true;
			}
		else
			{
				document.getElementById('ziperror').innerHTML = blank;
			}
			
			//Phone validation
			
		if (form1.phone.value == "")
			{
				document.getElementById('phoneerror').innerHTML = phonenoentry;
				problem = true;
			}
					
		else if(!phone.test(form1.phone.value))
			{
				document.getElementById('phoneerror').innerHTML = phoneformat;
				problem = true;
			}
		else
			{
				document.getElementById('phoneerror').innerHTML = blank;
			}
		
		//Extention validation
		
		if(extention.test(document.form1.extention.value))
			{
				document.getElementById('extentionerror').innerHTML = extentionformat;
				problem = true;
			}
		else
			{
				document.getElementById('extentionerror').innerHTML = blank;
			}
			
			//Email format
			
			if (form1.email.value == "")
			{
				document.getElementById('emailerror').innerHTML = emailnoentry;
				problem = true;
			}
						
		else if(email.test(document.form1.email.value))
			{
				document.getElementById('emailerror').innerHTML = emailformat;
				problem = true;
			}
		else
			{
				document.getElementById('emailerror').innerHTML = blank;
			}
		if(gradyr.test(document.form1.gradyr.value))
			{
				document.getElementById('gradyrerror').innerHTML = gradyrformat;
				problem = true;
			}
		else
			{
				document.getElementById('gradyrerror').innerHTML = blank;
			}
			
			//college validation
			
		/*if ( document.form1.college.selectedIndex == "" )
			 {
				  document.getElementById('collegeerror').innerHTML = collegenoentry;
				  problem = true;
			 }
		else
			{
					document.getElementById('collegeerror').innerHTML = blank
			}		*/			
		
	if(problem==false)
			{
								
				var prefix = document.getElementById("prefix").value;
				var firstname = document.getElementById("firstname").value;
				var lastname = document.getElementById("lastname").value;
				var address = document.getElementById("address").value;
				var city = document.getElementById("city").value;
				var state = document.getElementById("state").value;
				var zip = document.getElementById("zip").value;
				var phone = document.getElementById("phone").value;
				var extention = document.getElementById("extention").value;
				var email = document.getElementById("email").value;
				var college = document.getElementById("college").value;
				var newsletter = document.getElementById("newsletter").checked;
				var gradyr = document.getElementById("gradyr").value;
				var url = "emucaucusproc.php"
				
				request.open("POST", url, true);
			  request.onreadystatechange = showConfirmation;
			  request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
				request.send("prefix=" + escape(prefix) +
								"&firstname=" + escape(firstname) +
								"&lastname=" + escape(lastname) +
								"&address=" + escape(address) +
								"&city=" + escape(city) +
								"&state=" + escape(state) +
								"&zip=" + escape(zip) +
								"&phone=" + escape(phone) +
								"&extention=" + escape(extention) +
								"&email=" + escape(email) +
								"&college=" + escape(college) +
								"&newsletter=" + escape(newsletter) +
								"&gradyr=" + escape(gradyr));
										
			}
}


function showConfirmation() {
  if (request.readyState == 4) {
    if (request.status == 200) {
      var response = request.responseText;
      
      var mainDiv = document.getElementById("main_page");
      var form1 = document.getElementById("form1");

      
      pElement = document.createElement("p");
      textNode = document.createTextNode("You are successfully registered. Thank You.");
		pElement.appendChild(textNode);

     
      mainDiv.replaceChild(pElement, form1);
    } else {
      var message = request.getResponseHeader("Status");
      if ((message == null) || (message.length <= 0)) {
        alert("Error! Request status is " + request.status);
      } else {
        alert(message);
      }
    }
  }
}



