// 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('txtContactProgramPhone').value = document.getElementById('txtCompanyContractContactTelephone').value;
		document.getElementById('txtContactProgramFAX').value = document.getElementById('txtCompanyContractContactFAX').value;
		document.getElementById('txtContactProgramCell').value = document.getElementById('txtCompanyContractContactCell').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('txtContactProgramPhone').value = "";
		document.getElementById('txtContactProgramFAX').value = "";
		document.getElementById('txtContactProgramCell').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('txtWorksiteSupTelephone').value = document.getElementById('supTel').value;
		document.getElementById('txtWorksiteSupFAX').value = document.getElementById('supFax').value;
		document.getElementById('txtWorksiteSupCell').value = document.getElementById('supCell').value;
		document.getElementById('txtWorksiteSupEmail').value = document.getElementById('supEmail').value;
	}
	
	else {
		document.getElementById('txtWorksiteSupervisor').value = "";
		document.getElementById('txtWorksiteSupTitle').value = "";
		document.getElementById('txtWorksiteSupTelephone').value = "";
		document.getElementById('txtWorksiteSupFAX').value = "";
		document.getElementById('txtWorksiteSupCell').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(elementId) {
	var regEx = new RegExp("\\([0-9]{3}\\) [0-9]{3}-[0-9]{4}");
	
	if(document.getElementById(elementId).value.match(regEx)) {
		markElementAsValid(elementId);
		return true;
	}
	
	markElementAsInvalid(elementId);
	return false;
}

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('txtCompanyContractContactTelephone')) {
		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('txtContactProgramPhone')) {
		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('txtWorksiteSupTelephone')) {
		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;
	
}
