// STAGE 1 FIELDS ALL REQUIRED

function stage1validate(){

	sTitle = document.getElementById('sTitle');
	iGroupId = document.getElementById('iGroupId');
	sCompanyName = document.getElementById('sCompanyName');
	sFirstName = document.getElementById('sFirstName');
	sLastName = document.getElementById('sLastName');
	sAddress1 = document.getElementById('sAddress1');
	sAddress2 = document.getElementById('sAddress2');
	sCity = document.getElementById('sCity');
	sState = document.getElementById('sState');
	sZip = document.getElementById('sZip');
	sCompanyPhone = document.getElementById('sCompanyPhone');
	sOfficePhone = document.getElementById('sOfficePhone');
	sOfficeExt = document.getElementById('sOfficeExt');
	sFax = document.getElementById('sFax');
	sMobilePhone = document.getElementById('sMobilePhone');
	sHomePhone = document.getElementById('sHomePhone');
	sEmail = document.getElementById('sEmail');
	sWebsite = document.getElementById('sWebsite');
	sAlternatePhone = document.getElementById('sAlternatePhone');
	
	errors = new Array();
	errors['sTitle'] = 'Please enter a Position title.';
	errors['iGroupId'] = 'Please Select an Industry.';
	errors['sCompanyName'] = 'Please enter a Company Name.';
	errors['sFirstName'] = 'Please enter the Hiring Manager First Name.';
	errors['sLastName'] = 'Please enter the Hiring Manager Last Name.';
	errors['sAddress1'] = 'Please enter your company street address.';
	errors['sCity'] = 'Please enter your company City.';
	errors['sState'] = 'Please select a State.';
	errors['sZip'] = 'Please enter a valid ZIP Code.';
	errors['sCompanyPhone'] = 'Please enter your Company main Phone number.';
	errors['sOfficePhone'] = 'Please enter the Hiring Manager Contact Phone.';
	errors['sOfficeExt'] = 'Please enter the Hiring Manager Phone extension.';
	errors['sFax'] = 'Please enter your Company main Fax number.';
	errors['sMobilePhone'] = 'Please enter a valid Hiring Manager Cell Phone.';
	errors['sHomePhone'] = 'Please enter a valid Hiring Manager Home Phone.';
	errors['sEmail'] = 'Please enter the Hiring Manager Email address.';
	errors['sWebsite'] = 'Please enter your company website.';
	errors['sAlternatePhone'] = 'Please enter a valid alternate Contact Phone number.';
	errors['sPager'] = 'Please enter a valid Pager number.';
	
	phoneRE = new RegExp("^([\(]{1}[0-9]{3}[\)]{1}[ |\-|\.]{0,1}|^[0-9]{3}[\-| |\.])?[0-9]{3}(\-| |\.){1}[0-9]{4}$");
	zipRE = new RegExp("^([0-9]{5}\-[0-9]{4}|[0-9]{5})$|^([a-z][0-9][a-z] [0-9][a-z][0-9])$", "i");
	digitsRE = new RegExp("^([0-9]+)$|^$");
	emailRE = new RegExp("^[a-z0-9][a-z0-9_\.\-]*[a-z0-9]@[a-z0-9][a-z0-9_\.\-]*[a-z0-9][\.][a-z0-9]{2,6}$", "i");
	urlRE = new RegExp("^[(https?)\://]?[a-z0-9\-\.]+\.[a-z]{2,3}(:[a-z0-9]*)?/?([a-z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$", "i");
	
	
	if(sTitle.value == ''){
		alert(errors['sTitle']);
		sTitle.focus();
		return false;
	}
	if(iGroupId.value == '--'){
		alert(errors['iGroupId']);
		iGroupId.focus();
		return false;
	}
	if(sCompanyName.value == ''){
		alert(errors['sCompanyName']);
		sCompanyName.focus();
		return false;
	}
	if(sAddress1.value == ''){
		alert(errors['sAddress1']);
		sAddress1.focus();
		return false;
	}
	if(sCity.value == ''){
		alert(errors['sCity']);
		sCity.focus();
		return false;
	}
	if(sState.value == '--'){
		alert(errors['sState']);
		sState.focus();
		return false;
	}
	if(!zipRE.test(sZip.value)){
		alert(errors['sZip']);
		sZip.focus();
		return false;
	}
	if(sFirstName.value == ''){
		alert(errors['sFirstName']);
		sFirstName.focus();
		return false;
	}
	if(sLastName.value == ''){
		alert(errors['sLastName']);
		sLastName.focus();
		return false;
	}
	if(!phoneRE.test(sCompanyPhone.value)){
		alert(errors['sCompanyPhone']);
		sCompanyPhone.focus();
		return false;
	}
	if(!phoneRE.test(sOfficePhone.value)){
		alert(errors['sOfficePhone']);
		sOfficePhone.focus();
		return false;
	}
	if(!phoneRE.test(sFax.value)){
		alert(errors['sFax']);
		sFax.focus();
		return false;
	}
	if(!digitsRE.test(sOfficeExt.value)){
		alert(errors['sOfficeExt']);
		sOfficeExt.focus();
		return false;
	}
	if(sMobilePhone.value != '' && !phoneRE.test(sMobilePhone.value)){
		alert(errors['sMobilePhone']);
		sMobilePhone.focus();
		return false;
	}
	if(sHomePhone.value != '' && !phoneRE.test(sHomePhone.value)){
		alert(errors['sHomePhone']);
		sHomePhone.focus();
		return false;
	}
	if(sPager.value != '' && !phoneRE.test(sPager.value)){
		alert(errors['sPager']);
		sAlternatePhone.focus();
		return false;
	}
	if(sAlternatePhone.value != '' && !phoneRE.test(sAlternatePhone.value)){
		alert(errors['sAlternatePhone']);
		sAlternatePhone.focus();
		return false;
	}
	if(!emailRE.test(sEmail.value)){
		alert(errors['sEmail']);
		sEmail.focus();
		return false;
	}
	if(sWebsite.value != '' && !urlRE.test(sWebsite.value)){
		alert(errors['sWebsite']);
		sWebsite.focus();
		return false;
	}
	
	
	return true;

}

// STAGE 2 FIELDS ALL REQUIRED
function stage2validate(){

	sBackground = document.getElementById('sBackground');
	
	edu = new Array();
	edu['Edu_High_School'] = document.getElementById('Edu_High_School');
	edu['Edu_4_year'] = document.getElementById('Edu_4_year');
	edu['Edu_Masters'] = document.getElementById('Edu_Masters');
	edu['Edu_PhD'] = document.getElementById('Edu_PhD');
	edu['Edu_RN'] = document.getElementById('Edu_RN');
	edu['Edu_BSN'] = document.getElementById('Edu_BSN');
	edu['Edu_MSN'] = document.getElementById('Edu_MSN');
	edu['Edu_RPH'] = document.getElementById('Edu_RPH');
	edu['Edu_CRTRRT'] = document.getElementById('Edu_CRTRRT');
	edu['Edu_Other'] = document.getElementById('Edu_Other');
	
	sEduText = document.getElementById('sEduText');
	sPersonality = document.getElementById('sPersonality');
	sDuties = document.getElementById('sDuties');
	sSalesTerritory = document.getElementById('sSalesTerritory');
	sPrestigeAccounts = document.getElementById('sPrestigeAccounts');
	iReports = document.getElementById('iReports');
	iEmployees = document.getElementById('iEmployees');
	iLocations = document.getElementById('iLocations');
	sRevenue = document.getElementById('sRevenue');
	sBaseSalaryLow = document.getElementById('sBaseSalaryLow');
	sBaseSalaryMid = document.getElementById('sBaseSalaryMid');
	sBaseSalaryHigh = document.getElementById('sBaseSalaryHigh');
	sBaseSalaryOutstanding = document.getElementById('sBaseSalaryOutstanding');
	sBonusPast = document.getElementById('sBonusPast');
	sBonus100 = document.getElementById('sBonus100');
	sBonusProj1 = document.getElementById('sBonusProj1');
	sBonusProj2 = document.getElementById('sBonusProj2');
	sCommissionPast = document.getElementById('sCommissionPast');
	sCommission100 = document.getElementById('sCommission100');
	sCommissionProj1 = document.getElementById('sCommissionProj1');
	sCommissionProj2 = document.getElementById('sCommissionProj2');
	sCommissionPlan = document.getElementById('sCommissionPlan');
	sNegFee = document.getElementById('sNegFee');
	sTerms = document.getElementById('sTerms');
	sPayment = document.getElementById('sPayment');
	
	errors = new Array();
	errors['sBackground'] = 'Please enter background information for the position.';
	errors['Edu'] = 'Please select an education requirement';
	errors['sEduText'] = 'Please enter an education requirement description.';
	errors['sPersonality'] = 'Please enter personality requirements.';
	errors['sDuties'] = 'Please enter the position duties.';
	errors['sSalesTerritory'] = 'Please describe the sales territory.';
	errors['sPrestigeAccounts'] = 'Please describe the prestige accounts this position handles.';
	errors['iReports'] = 'Please enter the number of reports.';
	errors['iEmployees'] = 'Please enter the number of employees.';
	errors['iLocations'] = 'Please enter the number of locations.';
	errors['sRevenue'] = 'Please enter the annual revenue.';
	errors['sBaseSalaryLow'] = 'Please enter low value for salary range.';
	errors['sBaseSalaryMid'] = 'Please enter mid-level value for salary range.';
	errors['sBaseSalaryHigh'] = 'Please enter high value for salary range.';
	errors['sBaseSalaryOutstanding'] = 'Please enter the salary range for an oustanding candidate.';
	errors['sBonusPast'] = 'Please enter the bonus program amount for past performer.';
	errors['sBonus100'] = 'Please enter the bonus program amount for meeting 100% objective.';
	errors['sBonusProj1'] = 'Please enter the projected bonus program amount for first year.';
	errors['sBonusProj2'] = 'Please enter the projected bonus program amount for second year.';
	errors['sCommissionPast'] = 'Please enter the commission plan amount for past performer.';
	errors['sCommission100'] = 'Please enter the commission plan amount for meeting 100% objective.';
	errors['sCommissionProj1'] = 'Please enter the commission plan program amount for first year.';
	errors['sCommissionProj2'] = 'Please enter the commission plan program amount for second year.';
	errors['sCommissionPlan'] = 'Please describe the commission plan.';
	errors['sNegFee'] = 'Please enter a negotiated fee.';
	errors['sTerms'] = 'Please enter employment terms.';
	errors['sPayment'] = 'Please enter payment terms';
	
	digitsRE = new RegExp("^[0-9]+$");
	currencyRE = new RegExp("^[0-9]{1,3}(,?[0-9]{3})*(\.[0-9]{2})?$");
	
	if(sBackground.value == ''){
		alert(errors['sBackground']);
		sBackground.focus();
		return false;
	}
	if(!validateRadios(edu)){
		alert(errors['Edu']);
		return false;
	}
	if(sEduText.value == '' && edu['Edu_Other'].checked){
		alert(errors['sEduText']);
		sEduText.focus();
		return false;
	}
	
	if(sPersonality.value == ''){
		alert(errors['sPersonality']);
		sPersonality.focus();
		return false;
	}
	
	if(sDuties.value == ''){
		alert(errors['sDuties']);
		sDuties.focus();
		return false;
	}
	/*
	if(sSalesTerritory.value == ''){
		alert(errors['sSalesTerritory']);
		sSalesTerritory.focus();
		return false;
	}
	*/
	if(sPrestigeAccounts.value == ''){
		alert(errors['sPrestigeAccounts']);
		sPrestigeAccounts.focus();
		return false;
	}
	if(!digitsRE.test(iReports.value)){
		alert(errors['iReports']);
		iReports.focus();
		return false;
	}
	
	if(!digitsRE.test(iEmployees.value)){
		alert(errors['iEmployees']);
		iEmployees.focus();
		return false;
	}
	
	if(!digitsRE.test(iLocations.value)){
		alert(errors['iLocations']);
		iLocations.focus();
		return false;
	}
	
	if(!currencyRE.test(sRevenue.value)){
		alert(errors['sRevenue']);
		sRevenue.focus();
		return false;
	}
	
	if(!currencyRE.test(sBaseSalaryLow.value)){
		alert(errors['sBaseSalaryLow']);
		sBaseSalaryLow.focus();
		return false;
	}
	
	if(!currencyRE.test(sBaseSalaryMid.value)){
		alert(errors['sBaseSalaryMid']);
		sBaseSalaryMid.focus();
		return false;
	}
	
	if(!currencyRE.test(sBaseSalaryHigh.value)){
		alert(errors['sBaseSalaryHigh']);
		sBaseSalaryHigh.focus();
		return false;
	}
	
	if(!currencyRE.test(sBaseSalaryOutstanding.value)){
		alert(errors['sBaseSalaryOutstanding']);
		sBaseSalaryOutstanding.focus();
		return false;
	}
	
	if(!currencyRE.test(sBonusPast.value)){
		alert(errors['sBonusPast']);
		sBonusPast.focus();
		return false;
	}
	
	if(!currencyRE.test(sBonus100.value)){
		alert(errors['sBonus100']);
		sBonus100.focus();
		return false;
	}
	
	if(!currencyRE.test(sBonusProj1.value)){
		alert(errors['sBonusProj1']);
		sBonusProj1.focus();
		return false;
	}
	
	if(!currencyRE.test(sBonusProj2.value)){
		alert(errors['sBonusProj2']);
		sBonusProj2.focus();
		return false;
	}
	
	if(!currencyRE.test(sCommissionPast.value)){
		alert(errors['sCommissionPast']);
		sCommissionPast.focus();
		return false;
	}
	
	if(!currencyRE.test(sCommission100.value)){
		alert(errors['sCommission100']);
		sCommission100.focus();
		return false;
	}
	
	if(!currencyRE.test(sCommissionProj1.value)){
		alert(errors['sCommissionProj1']);
		sCommissionProj1.focus();
		return false;
	}
	
	if(!currencyRE.test(sCommissionProj2.value)){
		alert(errors['sCommissionProj2']);
		sCommissionProj2.focus();
		return false;
	}
	
	if(sCommissionPlan.value == ''){
		alert(errors['sCommissionPlan']);
		sCommissionPlan.focus();
		return false;
	}
	
	if(sNegFee.value == ''){
		alert(errors['sNegFee']);
		sNegFee.focus();
		return false;
	}
	
	if(sTerms.value == ''){
		alert(errors['sTerms']);
		sTerms.focus();
		return false;
	}
	
	if(sPayment.value == ''){
		alert(errors['sPayment']);
		sPayment.focus();
		return false;
	}
	
	return true;
}

// STAGE 3 FIELDS NONE REQUIRED

function stage3validate(){
	sFillDate = document.getElementById('sFillDate');
	sInterviewTarget = document.getElementById('sInterviewTarget');

	errors = new Array();
	errors['dateFormat'] = 'Please enter dates in the format mm/dd/yyyy';

	dateRE = new RegExp("^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$", "i");

	if(sFillDate.value != '' && !dateRE.test(sFillDate.value)){
		alert(errors['dateFormat']);
		sFillDate.focus();
		return false;
	}
	if(sInterviewTarget.value != '' && !dateRE.test(sInterviewTarget.value)){
		alert(errors['dateFormat']);
		sInterviewTarget.focus();
		return false;
	}
	return true;
}

function validateResume(){
	sFirstName = document.getElementById('sFirstName');
	sLastName = document.getElementById('sLastName');
	sAddress1 = document.getElementById('sAddress1');
	sState = document.getElementById('sState');
	sCity = document.getElementById('sCity');
	sZip = document.getElementById('sZip');
	sEmail = document.getElementById('sEmail');
	sOfficePhone = document.getElementById('sOfficePhone');
	sOfficeExt = document.getElementById('sOfficeExt');
	sMobilePhone = document.getElementById('sMobilePhone');
	sPager = document.getElementById('sPager');
	sHomePhone = document.getElementById('sHomePhone');
	sAlternatePhone = document.getElementById('sAlternatePhone');

	sDateAvail = document.getElementById('sDateAvail');
	iIndustry = document.getElementById('iIndustry');
	sResumeFile = document.getElementById('sResumeFile');
	sResumeURL = document.getElementById('sResumeURL');
	sResumeText = document.getElementById('sResumeText');


	errors = new Array();
	errors['FirstName'] = 'Please enter your first name.';
	errors['LastName'] = 'Please enter your last name.';
	errors['Address_1'] = 'Please enter your company street address.';
	errors['City'] = 'Please enter your company City.';
	errors['State'] = 'Please select a State.';
	errors['Zip'] = 'Please enter a valid ZIP Code.';
	errors['Email'] = 'Please enter your Email address.';
	errors['Industry'] = 'Please select your industry.';
	errors['DateAvail'] = 'Please enter availability date in mm/dd/yyyy format, or leave blank.';
	errors['phone'] = 'Please enter a valid phone number.';
	errors['extension'] = 'Please a valid extension.';
	errors['url'] = "Please provide a url to your resume.";
	errors['filetype'] = "Please select a Microsoft Word (.doc) or Adobe Acrobat (.pdf) file.";
	errors['resume'] = "Please provide a resume:\n-by file upload\n-by URL\n-or by text";

	phoneRE = new RegExp("^([\(]{1}[0-9]{3}[\)]{1}[ |\-|\.]{0,1}|^[0-9]{3}[\-| |\.])?[0-9]{3}(\-| |\.){1}[0-9]{4}$");
	zipRE = new RegExp("^([0-9]{5}\-[0-9]{4}|[0-9]{5})$|^([a-z][0-9][a-z] [0-9][a-z][0-9])$", "i");
	digitsRE = new RegExp("^([0-9]+)$|^$");
	emailRE = new RegExp("^[a-z0-9][a-z0-9_\.\-]*[a-z0-9]@[a-z0-9][a-z0-9_\.\-]*[a-z0-9][\.][a-z0-9]{2,6}$", "i");
	urlRE = new RegExp("^[(https?)\://]?[a-z0-9\-\.]+\.[a-z]{2,3}(:[a-z0-9]*)?/?([a-z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$", "i");
	dateRE = new RegExp("^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$", "i");
	fileRE = new RegExp("\.[doc|pdf]$", "i");

	if(sFirstName.value == ''){
		alert(errors['FirstName']);
		sFirstName.focus();
		return false;
	}
	if(sLastName.value == ''){
		alert(errors['LastName']);
		sLastName.focus();
		return false;
	}
	if(sAddress1.value == ''){
		alert(errors['Address_1']);
		sAddress1.focus();
		return false;
	}
	if(sCity.value == ''){
		alert(errors['City']);
		sCity.focus();
		return false;
	}
	if(sState.value == '--'){
		alert(errors['State']);
		sState.focus();
		return false;
	}
	if(!zipRE.test(sZip.value)){
		alert(errors['Zip']);
		sZip.focus();
		return false;
	}
	if(!emailRE.test(sEmail.value)){
		alert(errors['Email']);
		sEmail.focus();
		return false;
	}
	if(sDateAvail.value != '' && !dateRE.test(sDateAvail.value)){
		alert(errors['DateAvail']);
		sDateAvail.focus();
		return false;
	}
	if(iIndustry.value == 0){
		alert(errors['Industry']);
		iIndustry.focus();
		return false;
	}
	if(sOfficePhone.value != '' && !phoneRE.test(sOfficePhone.value)){
		alert(errors['phone']);
		sOfficePhone.focus();
		return false;
	}
	if(sOfficeExt.value != '' && !digitsRE.test(sOfficeExt.value)){
		alert(errors['extension']);
		sOfficeExt.focus();
		return false;
	}
	if(sMobilePhone.value != '' && !phoneRE.test(sMobilePhone.value)){
		alert(errors['phone']);
		sMobilePhone.focus();
		return false;
	}
	if(sPager.value != '' && !phoneRE.test(sPager.value)){
		alert(errors['phone']);
		sPager.focus();
		return false;
	}
	if(sHomePhone.value != '' && !phoneRE.test(sHomePhone.value)){
		alert(errors['phone']);
		sHomePhone.focus();
		return false;
	}
	if(sAlternatePhone.value != '' && !phoneRE.test(sAlternatePhone.value)){
		alert(errors['phone']);
		sAlternatePhone.focus();
		return false;
	}
	if(sResumeURL.value != '' && !urlRE.test(sResumeURL.value)){
		alert(errors['url']);
		sResumeURL.focus();
		return false;
	}
	if(sResumeFile.value != '' && !fileRE.test(sResumeFile.value)){
		alert(errors['filetype']);
		sResumeFile.focus();
	}

	if(sResumeFile.value == '' && sResumeURL.value == '' && sResumeText.value == ''){
		alert(errors['resume']);
		sResumeFile.focus();
		return false;
	}



	return true;
}

function validateNewsletter(){
	sName = document.getElementById('sName');
	sEmail = document.getElementById('sEmail');
	sCareerLevel = document.getElementById('sCareerLevel');
	industry1 = document.getElementById('industry1');
	industry2 = document.getElementById('industry2');
	industry3 = document.getElementById('industry3');
	industry4 = document.getElementById('industry4');
	industry5 = document.getElementById('industry5');
	industry6 = document.getElementById('industry6');
	industry7 = document.getElementById('industry7');


	errors = new Array();
	errors['email'] = 'Please enter a valid email address.';
	errors['careerlevel'] = 'Please select your career level.';
	errors['industry'] = 'Please check at least one industry.';

	emailRE = new RegExp("^[a-z0-9][a-z0-9_\.\-]*[a-z0-9]@[a-z0-9][a-z0-9_\.\-]*[a-z0-9][\.][a-z0-9]{2,6}$", "i");

	if(!emailRE.test(sEmail.value)){
		alert(errors['email']);
		sEmail.focus();
		return false;
	}
	if(sCareerLevel.value == '--'){
		alert(errors['careerlevel']);
		sCareerLevel.focus();
		return false;
	}
	if(!industry1.checked &&
			!industry2.checked &&
			!industry3.checked &&
			!industry4.checked &&
			!industry5.checked &&
			!industry6.checked &&
			!industry7.checked){
		alert(errors['industry']);
		return false;
	}
	return true;
}

function validateRadios(r){
	var c = false;
	for(el in r){
		if(r[el].checked){
			c = true;
		}
	}
	return c;
}
