// JavaScript Document

function sameContractWorksiteContact() {
	if(document.getElementById('cbSameAsAbove').checked) {
		document.getElementById('txtContactProgram').value = document.getElementById('txtContactContract').value;
		document.getElementById('txtContactProgramTitle').value = document.getElementById('txtContactContractTitle').value;
		document.getElementById('txtContactProgramAddress').value = document.getElementById('txtCompanyStreet').value;
		document.getElementById('txtContactProgramCity').value = document.getElementById('txtCompanyCity').value;
		document.getElementById('txtContactProgramState').value = document.getElementById('txtCompanyState').value;
		document.getElementById('txtContactProgramZip').value = document.getElementById('txtCompanyZip').value;
		
		document.getElementById('companyProgramContactTel1').value = document.getElementById('companyContractContactTel1').value;
		document.getElementById('companyProgramContactTel2').value = document.getElementById('companyContractContactTel2').value;
		document.getElementById('companyProgramContactTel3').value = document.getElementById('companyContractContactTel3').value;
		
		document.getElementById('companyProgramContactFax1').value = document.getElementById('companyContractContactFax1').value;
		document.getElementById('companyProgramContactFax2').value = document.getElementById('companyContractContactFax2').value;
		document.getElementById('companyProgramContactFax3').value = document.getElementById('companyContractContactFax3').value;
		
		document.getElementById('companyProgramContactCell1').value = document.getElementById('companyContractContactCell1').value;
		document.getElementById('companyProgramContactCell2').value = document.getElementById('companyContractContactCell2').value;
		document.getElementById('companyProgramContactCell3').value = document.getElementById('companyContractContactCell3').value;
		
		document.getElementById('txtContactProgramEmail').value = document.getElementById('txtCompanyContractContactEmail').value;
	}
	
	else {
		document.getElementById('txtContactProgram').value = "";
		document.getElementById('txtContactProgramTitle').value = "";
		document.getElementById('txtContactProgramAddress').value = "";
		document.getElementById('txtContactProgramCity').value = "";
		document.getElementById('txtContactProgramState').value = "";
		document.getElementById('txtContactProgramZip').value = "";
		
		document.getElementById('companyProgramContactTel1').value = "";
		document.getElementById('companyProgramContactTel2').value = "";
		document.getElementById('companyProgramContactTel3').value = "";
		
		document.getElementById('companyProgramContactFax1').value = "";
		document.getElementById('companyProgramContactFax2').value = "";
		document.getElementById('companyProgramContactFax3').value = "";
		
		document.getElementById('companyProgramContactCell1').value = "";
		document.getElementById('companyProgramContactCell2').value = "";
		document.getElementById('companyProgramContactCell3').value = "";
		
		document.getElementById('txtContactProgramEmail').value = "";
	}
}

function sameWorksiteCompanyAddress() {
	if(document.getElementById('cbSameAsAbove').checked) {
		document.getElementById('txtWorksiteAddress').value = document.getElementById('worksiteAddress').value;
		document.getElementById('txtWorksiteCity').value = document.getElementById('worksiteCity').value;
		document.getElementById('txtWorksiteState').value = document.getElementById('worksiteState').value;
		document.getElementById('txtWorksiteZip').value = document.getElementById('worksiteZip').value;
	}
	
	else {
		document.getElementById('txtWorksiteAddress').value = "";
		document.getElementById('txtWorksiteCity').value = "";
		document.getElementById('txtWorksiteState').value = "";
		document.getElementById('txtWorksiteZip').value = "";
	}
}

function sameWorksiteCompanyContact() {
	if(document.getElementById('cbSameAsContact').checked) {
		document.getElementById('txtWorksiteSupervisor').value = document.getElementById('supName').value;
		document.getElementById('txtWorksiteSupTitle').value = document.getElementById('supTitle').value;
		
		document.getElementById('worksiteSupTel1').value = document.getElementById('supTel1').value;
		document.getElementById('worksiteSupTel2').value = document.getElementById('supTel2').value;
		document.getElementById('worksiteSupTel3').value = document.getElementById('supTel3').value;
		
		document.getElementById('worksiteSupFax1').value = document.getElementById('supFax1').value;
		document.getElementById('worksiteSupFax2').value = document.getElementById('supFax2').value;
		document.getElementById('worksiteSupFax3').value = document.getElementById('supFax3').value;
		
		document.getElementById('worksiteSupCell1').value = document.getElementById('supCell1').value;
		document.getElementById('worksiteSupCell2').value = document.getElementById('supCell2').value;
		document.getElementById('worksiteSupCell3').value = document.getElementById('supCell3').value;
		
		document.getElementById('txtWorksiteSupEmail').value = document.getElementById('supEmail').value;
	}
	
	else {
		document.getElementById('txtWorksiteSupervisor').value = "";
		document.getElementById('txtWorksiteSupTitle').value = "";
		
		document.getElementById('worksiteSupTel1').value = "";
		document.getElementById('worksiteSupTel2').value = "";
		document.getElementById('worksiteSupTel3').value = "";
		
		document.getElementById('worksiteSupFax1').value = "";
		document.getElementById('worksiteSupFax2').value = "";
		document.getElementById('worksiteSupFax3').value = "";
		
		document.getElementById('worksiteSupCell1').value = "";
		document.getElementById('worksiteSupCell2').value = "";
		document.getElementById('worksiteSupCell3').value = "";
		document.getElementById('txtWorksiteSupEmail').value = "";
	}
}

function enableSubmit() {
	if(document.form1.cbConfirmUnderstand.checked) {
		document.getElementById('submitButton').disabled = false;
	}
	
	else {
		document.getElementById('submitButton').disabled = true;
	}
}

function clearSubmit() {
	document.getElementById('submitButton').disabled = true;
}

function markElementAsInvalid(elementId) {
	document.getElementById(elementId).style.backgroundColor = "#FF0033";
}

function markElementAsValid(elementId) {
	document.getElementById(elementId).style.backgroundColor = "#FFFFFF";
}

function validateNotNull(elementId) {
	if(!document.getElementById(elementId).value) {
		markElementAsInvalid(elementId);
		return false;
	}
	markElementAsValid(elementId);
	return true;
	
}

function getValue(elementId) {
	return document.getElementById(elementId).value;
}

function validateTaxId(elementId) {
	var regEx = new RegExp("[0-9]{2}-[0-9]{7}");
	
	if(document.getElementById(elementId).value.match(regEx)) {
		markElementAsValid(elementId);
		return true;
	}
	
	markElementAsInvalid(elementId);
	return false;
}

function validateZip(elementId) {
	var regEx = new RegExp("[0-9]{5}");
	
	if(document.getElementById(elementId).value.match(regEx)) {
		markElementAsValid(elementId);
		return true;
	}
	
	markElementAsInvalid(elementId);
	return false;
}

function validateNum(elementId1, elementId2, elementId3) {
	var validated = true;
	
	var regEx1 = new RegExp("[0-9]{3}");
	var regEx2 = new RegExp("[0-9]{3}");
	var regEx3 = new RegExp("[0-9]{4}");
	
	if(document.getElementById(elementId1).value.match(regEx1)) {
		markElementAsValid(elementId1);
	}
	
	else {
		markElementAsInvalid(elementId1);
		validated = false;
	}
	
	if(document.getElementById(elementId2).value.match(regEx2)) {
		markElementAsValid(elementId2);
	}
	
	else {
		markElementAsInvalid(elementId2);
		validated = false;
	}
	
	if(document.getElementById(elementId3).value.match(regEx3)) {
		markElementAsValid(elementId3);
	}
	
	else {
		markElementAsInvalid(elementId3);
		validated = false;
	}
	
	return validated;
}

function validateEmail(elementId) {
	var regEx = new RegExp(".+@.+\..+");
	
	if(document.getElementById(elementId).value.match(regEx)) {
		markElementAsValid(elementId);
		return true;
	}
	
	markElementAsInvalid(elementId);
	return false;
}

function validateForm1() {
	var validated = true;
	
	if(!validateNotNull('txtEmployerName')) {
		validated = false;
	}
	
	if(getValue('ddlOrganizationType') == "Select One...") {
		markElementAsInvalid('ddlOrganizationType');
		validated = false;
	}
	
	else {
		markElementAsValid('ddlOrganizationType');
	}
	
	if(!validateTaxId('txtFedID')) {
		validated = false;
	}

	if(!validateNotNull('txtContactContract')) {
		validated = false;
	}
	
	if(!validateNotNull('txtContactContractTitle')) {
		validated = false;
	}
	
	if(!validateNotNull('txtCompanyStreet')) {
		validated = false;
	}
	
	if(!validateNotNull('txtCompanyCity')) {
		validated = false;
	}
	
	if(!validateZip('txtCompanyZip')) {
		validated = false;
	}
	
	if(!validateNum('companyContractContactTel1', 'companyContractContactTel2', 'companyContractContactTel3')) {
		validated = false;
	}
	
	if(!validateEmail('txtCompanyContractContactEmail')) {
		validated = false;
	}
	
	if(!validateNotNull('txtContactProgram')) {
		validated = false;
	}
	
	if(!validateNotNull('txtContactProgramTitle')) {
		validated = false;
	}
	
	if(!validateNotNull('txtContactProgramAddress')) {
		validated = false;
	}
	
	if(!validateNotNull('txtContactProgramCity')) {
		validated = false;
	}
	
	if(!validateNotNull('txtContactProgramState')) {
		validated = false;
	}
	
	if(!validateZip('txtContactProgramZip')) {
		validated = false;
	}
	
	if(!validateNum('companyProgramContactTel1', 'companyProgramContactTel2', 'companyProgramContactTel3')) {
		validated = false;
	}
	
	if(!validateEmail('txtContactProgramEmail')) {
		validated = false;
	}
	
	return validated;
}

function validateNumEmployees(elementId) {
	var regEx = new RegExp("[0-9]+");
	
	if(document.getElementById(elementId).value.match(regEx)) {
		markElementAsValid(elementId);
		return true;
	}
	
	markElementAsInvalid(elementId);
	return false;	
}
	
function validateForm2() {
	var validated = true;
	
	if(!validateNotNull('txtWorksiteName')) {
		validated = false;
	}
	
	if(!validateNotNull('txtWorksiteAddress')) {
		validated = false;
	}
	
	if(!validateNotNull('txtWorksiteCity')) {
		validated = false;
	}
	
	if(!validateNotNull('txtWorksiteState')) {
		validated = false;
	}
	
	if(!validateZip('txtWorksiteZip')) {
		validated = false;
	}
	
	if(!validateNotNull('txtWorksiteSupervisor')) {
		validated = false;
	}
	
	if(!validateNotNull('txtWorksiteSupTitle')) {
		validated = false;
	}
	
	if(!validateNum('worksiteSupTel1', 'worksiteSupTel2', 'worksiteSupTel3')) {
		validated = false;
	}
	
	if(!validateEmail('txtWorksiteSupEmail')) {
		validated = false;
	}
	
	if(!validateNumEmployees('txtWorksiteEmpsSupervised')) {
		validated = false;
	}
 	
	return validated;
}

function validateWorkHours(elementId) {
	if(getValue(elementId) == "0") {
		markElementAsInvalid(elementId);
		return false;
	}
	
	markElementAsValid(elementId);
	return true;
}

function validateDressCode(elementId) {
	if(getValue(elementId) == "Select One...") {
		markElementAsInvalid(elementId);
		return false;
	}
	
	markElementAsValid(elementId);
	return true;
}

function validateIndoorOutdoor(elementId) {
	if(getValue(elementId) == "0") {
		markElementAsInvalid(elementId);
		return false;
	}
	
	markElementAsValid(elementId);
	return true;
}

function validateBackgroundCheck(elementId) {
	if(getValue(elementId) == "Select One...") {
		markElementAsInvalid(elementId);
		return false;
	}
	
	markElementAsValid(elementId);
	return true;
}

function validateDescription(elementId) {
	if(getValue(elementId) == "" || getValue(elementId) == "Brief description of primary job duty. 250 characters max.") {
		markElementAsInvalid(elementId);
		return false;
	}
	
	markElementAsValid(elementId);
	return true;
}
function validateForm3() {
	var validated = true;
	
	if(!validateNotNull('ddlJobDescriptionPrim')) {
		validated = false;
	}
	
	if(!validateNumEmployees('txtWorksiteJobTitlePositionsNumber')) {
		validated = false;
	}
	
	if(!validateWorkHours('ddlWorkHours')) {
		validated = false;
	}
	
	if(!validateDressCode('ddlDressCode')) {
		validated = false;
	}
	
	if(!validateIndoorOutdoor('ddlIndoorOutdoor')) {
		validated = false;
	}
	
	if(!validateBackgroundCheck('ddlBackgroundCheck')) {
		validated = false;
	}
	
	if(!validateDescription('txtJobDescriptionPrim1')) {
		validated = false;
	}
	
	return validated;
	
}

function validateGuests() {
	var validated = true;
	var numGuests = parseInt(document.getElementById('numberofguests').value);

	for(var index = 1; index <= numGuests; index++) {
		if(!validateNotNull('guest_first_name_' + index)) {
			validated = false;
		}
		
		if(!validateNotNull('guest_last_name_' + index)) {
			validated = false;
		}
		
		if(!validateEmail('guest_email_' + index)) {
			validated = false;
		}
	}
	
	return validated;

}

function validateRegister() {
	var validated = true;

	if(!validateNotNull('firstname')) {
		validated = false;
	}
	
	if(!validateNotNull('lastname')) {
		validated = false;
	}
	
	if(!validateNotNull('company')) {
		validated = false;
	}
	
	if(!validateNotNull('address1')) {
		validated = false;
	}

	if(!validateNotNull('city')) {
		validated = false;
	}

	if(!validateNotNull('state')) {
		validated = false;
	}
	
	if(!validateZip('zip')) {
		validated = false;
	}
	
	if(!validateNum('workTel1', 'workTel2', 'workTel3')) {
		validated = false;
	}
	
	if(!validateEmail('email')) {
		validated = false;
	}
	/*
	if(!validateGuests()) {
		validated = false;
	}
	if (!validated) alert('Required input is missing');
	*/

	return validated;
}

function validateSSN(elementId1, elementId2, elementId3) {
	var validated = true;
	
	var regEx1 = new RegExp("[0-9]{3}");
	var regEx2 = new RegExp("[0-9]{2}");
	var regEx3 = new RegExp("[0-9]{4}");
	
	if(document.getElementById(elementId1).value.match(regEx1)) {
		markElementAsValid(elementId1);
	}
	
	else {
		markElementAsInvalid(elementId1);
		validated = false;
	}
	
	if(document.getElementById(elementId2).value.match(regEx2)) {
		markElementAsValid(elementId2);
	}
	
	else {
		markElementAsInvalid(elementId2);
		validated = false;
	}
	
	if(document.getElementById(elementId3).value.match(regEx3)) {
		markElementAsValid(elementId3);
	}
	
	else {
		markElementAsInvalid(elementId3);
		validated = false;
	}
	
	return validated;
}

function validateAge(elementId) {
	var validated = true;
	
	var regEx = new RegExp("[0-9]{1,3}");
	
	if(document.getElementById(elementId).value.match(regEx)) {
		markElementAsValid(elementId);
	}
	
	else {
		markElementAsInvalid(elementId);
		validated = false;
	}
		
	return validated;
}

function validateDate(elementId) {
	var validated = true;
	
	var regEx = new RegExp("[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}");
	
	if(document.getElementById(elementId).value.match(regEx)) {
		markElementAsValid(elementId);
	}
	
	else {
		markElementAsInvalid(elementId);
		validated = false;
	}
		
	return validated;
	
}

function validateJobSeeker() {
	var validated = true;	
	
	if(!validateNotNull('txtFirstName')) {
		validated = false;
	}
	
	if(!validateNotNull('txtLastName')) {
		validated = false;
	}
	
	if(!validateSSN('txtSSN1', 'txtSSN2', 'txtSSN3')) {
		validated = false;
	}
	
	if(!validateAge('txtAge')) {
		validated = false;
	}
	
	if(!validateDate('txtDOB')) {
		validated = false;
	}
	
	if(!validateNum('homeTel1', 'homeTel2', 'homeTel3')) {
		validated = false;
	}
	
	return validated;
}