window.onload = initForm;

function initForm() {
	//Deselect and empty everything and setup
	//menu
	document.getElementById("location_usa").selectedIndex = -1;
	
	//radio buttons
	document.getElementById('service').checked = false;
	document.getElementById('question').checked = false;
	document.getElementById('internship').checked = false;
	document.getElementById('employment').checked = false;
	document.getElementById('W2').checked = false;
	
	//check boxs
	document.getElementById('need_response').value = "no";
	document.getElementById('employment_previous').checked = "no";
	
	//text boxes
	document.getElementById('name').value = "";
	document.getElementById('email').value = "";
	document.getElementById('phone2a').value = "";
	document.getElementById('phone2b').value = "";
	document.getElementById('phone2c').value = "";
	document.getElementById('phone_number').value = "";
	document.getElementById('message').value = "";
	document.getElementById('fileProjectMap').value = "";
	document.getElementById('fileProjectInfo').value = "";
	document.getElementById('fileVita').value = "";
	document.getElementById('fileRefs').value = "";
	document.getElementById('fileCoverLetter').value = "";
	document.getElementById('mailing_address').value="Enter your address here...";
	
	//div sections
	document.getElementById('form_container').style.display='none';
   	document.getElementById('form_container').style.visibility='hidden';
	
	document.getElementById('service_section').style.display='none';
   	document.getElementById('service_section').style.visibility='hidden';
	
	document.getElementById('employment_section').style.display='none';
   	document.getElementById('employment_section').style.visibility='hidden';
	
	document.getElementById('need_response_section').style.display='none';
   	document.getElementById('need_response_section').style.visibility='hidden';
	
	document.getElementById('name_required_section').style.display='none';
   	document.getElementById('name_required_section').style.visibility='hidden';
	
	document.getElementById('phone_required_section').style.display='none';
   	document.getElementById('phone_required_section').style.visibility='hidden';
	
	document.getElementById('email_required_section').style.display='inline';
   	document.getElementById('email_required_section').style.visibility='visible';
	
	document.getElementById('incorect_file_type_section').style.display='none';
   	document.getElementById('incorect_file_type_section').style.visibility='hidden';
	
	document.getElementById('incorect_file_type_employment_section').style.display='none';
   	document.getElementById('incorect_file_type_employment_section').style.visibility='hidden';
	
	document.getElementById('message_required_section').style.display='none';
   	document.getElementById('message_required_section').style.visibility='hidden';
}

function serviceSelected(){
	document.getElementById('form_container').style.display='block';
   	document.getElementById('form_container').style.visibility='visible';
	
	document.getElementById('employment_previous').style.display='none';
   	document.getElementById('employment_previous').style.visibility='hidden';
	
	document.getElementById('need_response_section').style.display='none';
   	document.getElementById('need_response_section').style.visibility='hidden';
	
	document.getElementById('employment_section').style.display='none';
   	document.getElementById('employment_section').style.visibility='hidden';
	
	document.getElementById('service_section').style.display='block';
   	document.getElementById('service_section').style.visibility='visible';
	
	document.getElementById('phone_required_section').style.display='inline';
   	document.getElementById('phone_required_section').style.visibility='visible';
	
	document.getElementById('email_required_section').style.display='inline';
   	document.getElementById('email_required_section').style.visibility='visible';
	
	document.getElementById('name_required_section').style.display='inline';
   	document.getElementById('name_required_section').style.visibility='visible';
	
	document.getElementById('message_required_section').style.display='none';
   	document.getElementById('message_required_section').style.visibility='hidden';
	
	document.getElementById('W2_section').style.display='none';
   	document.getElementById('W2_section').style.visibility='hidden';
	
	document.getElementById("message_header").innerHTML ="Additional information";
}

function questionSelected(){
	document.getElementById('form_container').style.display='block';
   	document.getElementById('form_container').style.visibility='visible';
	
	document.getElementById('employment_previous').style.display='none';
   	document.getElementById('employment_previous').style.visibility='hidden';
	
	document.getElementById('need_response_section').style.display='block';
   	document.getElementById('need_response_section').style.visibility='visible';
	
	document.getElementById('employment_section').style.display='none';
   	document.getElementById('employment_section').style.visibility='hidden';
	
	document.getElementById('service_section').style.display='none';
   	document.getElementById('service_section').style.visibility='hidden';
	
	document.getElementById('name_required_section').style.display='none';
   	document.getElementById('name_required_section').style.visibility='hidden';
	
	document.getElementById('phone_required_section').style.display='none';
   	document.getElementById('phone_required_section').style.visibility='hidden';
	
	document.getElementById('email_required_section').style.display='inline';
   	document.getElementById('email_required_section').style.visibility='visible';
	
	document.getElementById('message_required_section').style.display='block';
   	document.getElementById('message_required_section').style.visibility='visible';
	
	document.getElementById('W2_section').style.display='none';
   	document.getElementById('W2_section').style.visibility='hidden';
	
	document.getElementById("message_header").innerHTML ="Question, comment, or suggestion";
	
	//needResponseSelected ();
}

function internshipSelected(){
	document.getElementById('form_container').style.display='block';
   	document.getElementById('form_container').style.visibility='visible';
	
	document.getElementById('employment_previous').style.display='none';
   	document.getElementById('employment_previous').style.visibility='hidden';
	
	document.getElementById('need_response_section').style.display='none';
   	document.getElementById('need_response_section').style.visibility='hidden';
	
	document.getElementById('employment_section').style.display='block';
   	document.getElementById('employment_section').style.visibility='visible';
	
	document.getElementById('service_section').style.display='none';
   	document.getElementById('service_section').style.visibility='hidden';
	
	document.getElementById('message_required_section').style.display='none';
   	document.getElementById('message_required_section').style.visibility='hidden';
	
	document.getElementById('name_required_section').style.display='inline';
   	document.getElementById('name_required_section').style.visibility='visible';
	
	document.getElementById('phone_required_section').style.display='none';
   	document.getElementById('phone_required_section').style.visibility='hidden';
	
	document.getElementById('email_required_section').style.display='inline';
   	document.getElementById('email_required_section').style.visibility='visible';
	
	document.getElementById('vita_required_section').style.display='none';
   	document.getElementById('vita_required_section').style.visibility='hidden';
	
	document.getElementById('refs_required_section').style.display='none';
   	document.getElementById('refs_required_section').style.visibility='hidden';
	
	document.getElementById('W2_section').style.display='none';
   	document.getElementById('W2_section').style.visibility='hidden';
	
	document.getElementById("message_header").innerHTML ="Additional information";
	
	document.getElementById("employment_attachments").innerHTML ="Vita or resume, references, and cover letter attachments (optional but encouraged)";
}

function employmentSelected(){
	document.getElementById('form_container').style.display='block';
   	document.getElementById('form_container').style.visibility='visible';
	
	document.getElementById('employment_previous').style.display='block';
   	document.getElementById('employment_previous').style.visibility='visible';
	
	document.getElementById('need_response_section').style.display='none';
   	document.getElementById('need_response_section').style.visibility='hidden';
	
	document.getElementById('employment_section').style.display='block';
   	document.getElementById('employment_section').style.visibility='visible';
	
	document.getElementById('service_section').style.display='none';
   	document.getElementById('service_section').style.visibility='hidden';
	
	document.getElementById('message_required_section').style.display='none';
   	document.getElementById('message_required_section').style.visibility='hidden';
	
	document.getElementById('name_required_section').style.display='inline';
   	document.getElementById('name_required_section').style.visibility='visible';
	
	document.getElementById('phone_required_section').style.display='none';
   	document.getElementById('phone_required_section').style.visibility='hidden';
	
	document.getElementById('email_required_section').style.display='inline';
   	document.getElementById('email_required_section').style.visibility='visible';
	
	document.getElementById('vita_required_section').style.display='inline';
   	document.getElementById('vita_required_section').style.visibility='visible';
	
	document.getElementById('refs_required_section').style.display='inline';
   	document.getElementById('refs_required_section').style.visibility='visible';
	
	document.getElementById('W2_section').style.display='none';
   	document.getElementById('W2_section').style.visibility='hidden';
	
	document.getElementById("message_header").innerHTML ="Additional information";
	
	document.getElementById("employment_attachments").innerHTML ="Vita or resume, references, and cover letter attachments";
}

function W2Selected(){
	document.getElementById('form_container').style.display='block';
   	document.getElementById('form_container').style.visibility='visible';
	
	document.getElementById('employment_previous').style.display='none';
   	document.getElementById('employment_previous').style.visibility='hidden';
	
	document.getElementById('need_response_section').style.display='none';
   	document.getElementById('need_response_section').style.visibility='hidden';
	
	document.getElementById('employment_section').style.display='none';
   	document.getElementById('employment_section').style.visibility='hidden';
	
	document.getElementById('service_section').style.display='none';
   	document.getElementById('service_section').style.visibility='hidden';
	
	document.getElementById('message_required_section').style.display='none';
   	document.getElementById('message_required_section').style.visibility='hidden';
	
	document.getElementById('name_required_section').style.display='inline';
   	document.getElementById('name_required_section').style.visibility='visible';
	
	document.getElementById('phone_required_section').style.display='inline';
   	document.getElementById('phone_required_section').style.visibility='visible';
	
	document.getElementById('email_required_section').style.display='inline';
   	document.getElementById('email_required_section').style.visibility='visible';
	
	document.getElementById('W2_section').style.display='block';
   	document.getElementById('W2_section').style.visibility='visible';
	
	document.getElementById("message_header").innerHTML ="Additional information";
}


function addressSelected(){
	addressVal = document.getElementById('mailing_address').value;
	if (addressVal == "Enter your address here...") { 
		document.getElementById('mailing_address').value="";
	}
}

function check_attach_employ(val,frm,name){
//Check to see if a valid text document was attached for employment
if(!/[^/].(?:docx|htm|html|pdf|rtf|doc|text|txt)/i.test(val)){
	alert("Please select file type with one of the following extentions:\n\n doc, docx, htm, html, pdf, rtf, text, and text");
	myObj = document.getElementById(name);
	myObj.style.color = "red";
	document.getElementById('incorect_file_type_employment_section').style.display='block';
   	document.getElementById('incorect_file_type_employment_section').style.visibility='visible';
	
	if (document.getElementById('fileVita').style.color == "red" || document.getElementById('fileRefs').style.color == "red" || document.getElementById('fileCoverLetter').style.color == "red") {
		document.getElementById('incorect_file_type_employment_section').style.display='block';
   		document.getElementById('incorect_file_type_employment_section').style.visibility='visible';
	}
}else{
	myObj = document.getElementById(name);
	myObj.style.color = "black";
	document.getElementById('incorect_file_type_employment_section').style.display='none';
   	document.getElementById('incorect_file_type_employment_section').style.visibility='hidden';
	if (document.getElementById('fileVita').style.color == "red" || document.getElementById('fileRefs').style.color == "red" || document.getElementById('fileCoverLetter').style.color == "red") {
		document.getElementById('incorect_file_type_employment_section').style.display='block';
   		document.getElementById('incorect_file_type_employment_section').style.visibility='visible';
	}
	}
}

function check_attach_service(val,frm,name){
//Check to see if a valid text or image document was attached for services
if(!/[^/].(?:docx|htm|html|pdf|rtf|doc|text|txt|jpg|gif|tif|bmp|zip)/i.test(val)){
	alert("Please select file type with one of the following extentions:\n\n doc, docx, htm, html, pdf, rtf, text, txt, bmp, jpg, gif, tif, and zip");
	myObj = document.getElementById(name);
	myObj.style.color = "red";
	document.getElementById('incorect_file_type_section').style.display='block';
   	document.getElementById('incorect_file_type_section').style.visibility='visible';
	
	if (document.getElementById('fileProjectMap').style.color == "red" || document.getElementById('fileProjectInfo').style.color == "red") {
		document.getElementById('incorect_file_type_section').style.display='block';
   		document.getElementById('incorect_file_type_section').style.visibility='visible';
	}
		
}else{
	myObj = document.getElementById(name);
	myObj.style.color = "black";
	document.getElementById('incorect_file_type_section').style.display='none';
   	document.getElementById('incorect_file_type_section').style.visibility='hidden';
	
	if (document.getElementById('fileProjectMap').style.color == "red" || document.getElementById('fileProjectInfo').style.color == "red") {
		document.getElementById('incorect_file_type_section').style.display='block';
   		document.getElementById('incorect_file_type_section').style.visibility='visible';
	}
	}
}

function validateName (inputName) {
//Validate the name value
	nameValidate = "False";
	sendersName = document.getElementById('name').value;
	if ( sendersName.length < 1 ) {
        message = "You did not enter a name";
        alert(message);
		nameValidate = "False";
		return false;
    } else {
		nameValidate = "True";
		return nameValidate;
	}
}

function validateAddress (inputAddress) {
//Validate the name value
	addressValidate = "False";
	sendersAddress = document.getElementById('mailing_address').value;
	if ( sendersAddress.length < 1 ) {
        message = "You did not enter an address";
        alert(message);
		addressValidate = "False";
		return false;
    } else {
		addressValidate = "True";
		return addressValidate;
	}
}

function validateEmail (inputEmail) {
	emailValidate = "False";
	formInput = document.getElementById('email').value;
	//check all validation rules
	//make sure email input is not blank
	if ( formInput.length < 1 ) {
		message = "Invalid email address. No value was entered.";
		alert(message);
		emailValidates = "False";
		return false;
	} else {
		emailValidates = "True";
	}
		
	//make sure email input has an '@' symble
	if (formInput.indexOf ('@', 0) == -1) {
		message = "Invalid email address.  The address \"" + formInput + "\" does not contain an '@' character.";
		alert(message);
		emailValidates = "False";
		return false;
	} else {
		emailValidates = "True";
	}
	
	//make sure email input has at least 1 character before the '@' symble
	 if ( formInput.indexOf ( '@', 0 ) < 1 ) {
        message = "Invalid email address.  The address \"" + formInput + "\"" + " must contain at least one character before the '@' character";
        alert(message);
		emailValidates = "False";
		return false;
    } else {
		emailValidates = "True";
	}
	
	//make sure email input has a "."
	if (formInput.indexOf ( '.', 0 ) == -1) {
        message = "Invalid email address.  The address \"" + formInput + "\" must contain a period (\".\")";
        alert(message);
		emailValidates = "False";
		return false;
    } else {
		emailValidates = "True";
	}
	
	//make sure email input has a valid suffix (.com for example)
	var len = formInput.length;
    var pos = formInput.lastIndexOf ( '.', len - 1 ) + 1;
    if ( ( len - pos ) < 2 || ( len - pos ) > 4 ) {
        message = "Invalid email address.  The address \"" + formInput + "\" must contain a two, three or four character suffix (such as \".com\").";
        alert(message);
		emailValidates = "False";
		return false;
    } else {
		emailValidates = "True";
	}
	
	if (emailValidates == "True") {
		//email address is valid.
		emailValidate = "True";
		return emailValidate;
	}
}

function validatePhone (inputPhone) {
//Validate the phone value if required
	phoneValidate = "False";
	invalidPhoneMsg1 = "Invalid phone number. Please enter numbers only.";
	invalidPhoneMsg2 = "Invalid phone number. Please enter the correct amount of numbers.";
	sendersPhone2a = document.getElementById('phone2a').value
	sendersPhone2b = document.getElementById('phone2b').value
	sendersPhone2c = document.getElementById('phone2c').value
	var numericExpression = /^[0-9]+$/;
	if(sendersPhone2a.match(numericExpression) && sendersPhone2b.match(numericExpression) && sendersPhone2c.match(numericExpression))		    {
		//Sender has entered only numbers in the phone fields
		phoneReplyAllNumbers = "True";
	} else {
		//Sender has entered non-numbers in the phone fields
		alert(invalidPhoneMsg1);
		return false;
	}
	
	if (sendersPhone2a.length == 3 && sendersPhone2b.length == 3 && sendersPhone2c.length == 4)		{
		//Sender has entered the correct amount of numbers in the phone fields
		phoneReplyNumberCorrectAmount = "True";
	} else {
		//Sender has not entered the correct amount of numbers in the phone fields
		alert(invalidPhoneMsg2);
		return false;
	}
	if (phoneReplyAllNumbers == "True" &&  phoneReplyNumberCorrectAmount == "True") {
		//phone number is valid. submit form
		//document.getElementById('phone number').value = "The Phone Number";
		sendersPhoneNumber = "(" + sendersPhone2a + ") " + sendersPhone2b + "-" + sendersPhone2c;
		document.getElementById('phone_number').value = sendersPhoneNumber;
		phoneValidate = "True";
		return phoneValidate;
	}
}

//Process Phone number - used to send a phone number if entered but not required
function processPhone (inputPhone) {
	sendersPhone2a = document.getElementById('phone2a').value
	sendersPhone2b = document.getElementById('phone2b').value
	sendersPhone2c = document.getElementById('phone2c').value
	
	sendersPhoneNumber = "(" + sendersPhone2a + ") " + sendersPhone2b + "-" + sendersPhone2c;
	document.getElementById('phone_number').value = sendersPhoneNumber;
}

function validateMessage (inputMessage) {
//Validate the name value
	messageValidate = "False";
	sendersMessage = document.getElementById('message').value;
	if ( sendersMessage.length < 1 ) {
        error_message = "You did not enter a mesage";
        alert(error_message);
		messageValidate = "False";
		return false;
    } else {
		messageValidate = "True";
		return messageValidate;
	}
}



function validateForm(form){
	submitForm = "False";
	contactScript = "formtoemailpro.php5";
	//Find out what the senders request is and validate accordingly
	
	//Service Selected
	if (document.getElementById('service').checked == true) {
		//Validate location	
		locationValidate = "False";
		emailValidate = "False";
		nameValidate = "False";
		phoneValidate = "False";
		selectedLocation = document.getElementById('location_usa').selectedIndex;
		if (selectedLocation == -1) {
			alert("You did not select a project location");	
			locationValidate = "False";
		}else {
			locationValidate = "True";
		}
	
		validateName();
		validateEmail();
		validatePhone();
	
		//If all necessary entries have been entered then process the form
		if (nameValidate == "True" && phoneValidate == "True" && emailValidate == "True" && locationValidate == "True") {
			form.action = contactScript;   
			form.submit();
			}
	}
	

	//Question, comment, or suggestion
	if (document.form1.contact_request[1].checked == true) {
		emailValidate = "False";
		messageValidate = "False";
		validateEmail();
		validateMessage();
		processPhone();
		//enterNA();
		if (emailValidate == "True" && messageValidate == "True") {
			form.action = contactScript; 
			form.submit();
		}else{
			//alert("An email address and a message are required");
		}
	}
	
	//Internship
	if (document.form1.contact_request[2].checked == true) {
		emailValidate = "False";
		nameValidate = "False";
		validateName();
		validateEmail();
		processPhone();
	
	
		if (emailValidate == "True" && nameValidate == "True") {
				form.action = contactScript; 
				form.submit();
		}
	}
	
	//Employment
	if (document.form1.contact_request[3].checked == true) {
		validateName();
		validateEmail();
		processPhone();
		
		if (emailValidate == "True" && nameValidate == "True") {
				form.action = contactScript; 
				form.submit();
		}
	}
	
	//W2
	if (document.form1.contact_request[4].checked == true) {
		emailValidate = "False";
		nameValidate = "False";
		phoneValidate = "False";
		addressValidate = "False";
		validateName();
		validateEmail();
		validatePhone();
		validateAddress();
	
		if (nameValidate == "True" && phoneValidate == "True" && emailValidate == "True" && addressValidate == "True") {
				form.action = contactScript; 
				form.submit();
		}
	}
}
