{"version":3,"names":[],"mappings":"","sources":["apply.js"],"sourcesContent":["import * as capSvc from \"./services/capService.js\";\r\nimport {selectRadioBtn, tabKeyCheckbox, tabKeyResumeUpload, tabKeyTextInput} from \"../utilities/navigation.js\";\r\n\r\nconst StateProvinces = [\r\n {\r\n Id: 1,\r\n Code: \"AL\",\r\n Name: \"Alabama\"\r\n },\r\n {\r\n Id: 2,\r\n Code: \"AK\",\r\n Name: \"Alaska\"\r\n },\r\n {\r\n Id: 4,\r\n Code: \"AZ\",\r\n Name: \"Arizona\"\r\n },\r\n {\r\n Id: 5,\r\n Code: \"AR\",\r\n Name: \"Arkansas\"\r\n },\r\n {\r\n Id: 7,\r\n Code: \"CA\",\r\n Name: \"California\"\r\n },\r\n {\r\n Id: 8,\r\n Code: \"CO\",\r\n Name: \"Colorado\"\r\n },\r\n {\r\n Id: 9,\r\n Code: \"CT\",\r\n Name: \"Connecticut\"\r\n },\r\n {\r\n Id: 10,\r\n Code: \"DE\",\r\n Name: \"Delaware\"\r\n },\r\n {\r\n Id: 11,\r\n Code: \"DC\",\r\n Name: \"District of Columbia\"\r\n },\r\n {\r\n Id: 13,\r\n Code: \"FL\",\r\n Name: \"Florida\"\r\n },\r\n {\r\n Id: 15,\r\n Code: \"GA\",\r\n Name: \"Georgia\"\r\n },\r\n {\r\n Id: 16,\r\n Code: \"HI\",\r\n Name: \"Hawaii\"\r\n },\r\n {\r\n Id: 17,\r\n Code: \"ID\",\r\n Name: \"Idaho\"\r\n },\r\n {\r\n Id: 18,\r\n Code: \"IL\",\r\n Name: \"Illinois\"\r\n },\r\n {\r\n Id: 19,\r\n Code: \"IN\",\r\n Name: \"Indiana\"\r\n },\r\n {\r\n Id: 20,\r\n Code: \"IA\",\r\n Name: \"Iowa\"\r\n },\r\n {\r\n Id: 21,\r\n Code: \"KS\",\r\n Name: \"Kansas\"\r\n },\r\n {\r\n Id: 23,\r\n Code: \"KY\",\r\n Name: \"Kentucky\"\r\n },\r\n {\r\n Id: 24,\r\n Code: \"LA\",\r\n Name: \"Louisiana\"\r\n },\r\n {\r\n Id: 25,\r\n Code: \"ME\",\r\n Name: \"Maine\"\r\n },\r\n {\r\n Id: 27,\r\n Code: \"MD\",\r\n Name: \"Maryland\"\r\n },\r\n {\r\n Id: 28,\r\n Code: \"MA\",\r\n Name: \"Massachusetts\"\r\n },\r\n {\r\n Id: 29,\r\n Code: \"MI\",\r\n Name: \"Michigan\"\r\n },\r\n {\r\n Id: 30,\r\n Code: \"MN\",\r\n Name: \"Minnesota\"\r\n },\r\n {\r\n Id: 31,\r\n Code: \"MS\",\r\n Name: \"Mississippi\"\r\n },\r\n {\r\n Id: 32,\r\n Code: \"MO\",\r\n Name: \"Missouri\"\r\n },\r\n {\r\n Id: 33,\r\n Code: \"MT\",\r\n Name: \"Montana\"\r\n },\r\n {\r\n Id: 34,\r\n Code: \"NE\",\r\n Name: \"Nebraska\"\r\n },\r\n {\r\n Id: 35,\r\n Code: \"NV\",\r\n Name: \"Nevada\"\r\n },\r\n {\r\n Id: 37,\r\n Code: \"NH\",\r\n Name: \"New Hampshire\"\r\n },\r\n {\r\n Id: 38,\r\n Code: \"NJ\",\r\n Name: \"New Jersey\"\r\n },\r\n {\r\n Id: 39,\r\n Code: \"NM\",\r\n Name: \"New Mexico\"\r\n },\r\n {\r\n Id: 40,\r\n Code: \"NY\",\r\n Name: \"New York\"\r\n },\r\n {\r\n Id: 42,\r\n Code: \"NC\",\r\n Name: \"North Carolina\"\r\n },\r\n {\r\n Id: 43,\r\n Code: \"ND\",\r\n Name: \"North Dakota\"\r\n },\r\n {\r\n Id: 47,\r\n Code: \"OH\",\r\n Name: \"Ohio\"\r\n },\r\n {\r\n Id: 48,\r\n Code: \"OK\",\r\n Name: \"Oklahoma\"\r\n },\r\n {\r\n Id: 50,\r\n Code: \"OR\",\r\n Name: \"Oregon\"\r\n },\r\n {\r\n Id: 52,\r\n Code: \"PA\",\r\n Name: \"Pennsylvania\"\r\n },\r\n {\r\n Id: 54,\r\n Code: \"PR\",\r\n Name: \"Puerto Rico\"\r\n },\r\n {\r\n Id: 56,\r\n Code: \"RI\",\r\n Name: \"Rhode Island\"\r\n },\r\n {\r\n Id: 59,\r\n Code: \"SC\",\r\n Name: \"South Carolina\"\r\n },\r\n {\r\n Id: 60,\r\n Code: \"SD\",\r\n Name: \"South Dakota\"\r\n },\r\n {\r\n Id: 61,\r\n Code: \"TN\",\r\n Name: \"Tennessee\"\r\n },\r\n {\r\n Id: 62,\r\n Code: \"TX\",\r\n Name: \"Texas\"\r\n },\r\n {\r\n Id: 63,\r\n Code: \"UT\",\r\n Name: \"Utah\"\r\n },\r\n {\r\n Id: 64,\r\n Code: \"VT\",\r\n Name: \"Vermont\"\r\n },\r\n {\r\n Id: 65,\r\n Code: \"VA\",\r\n Name: \"Virginia\"\r\n },\r\n {\r\n Id: 67,\r\n Code: \"WA\",\r\n Name: \"Washington\"\r\n },\r\n {\r\n Id: 68,\r\n Code: \"WV\",\r\n Name: \"West Virginia\"\r\n },\r\n {\r\n Id: 69,\r\n Code: \"WI\",\r\n Name: \"Wisconsin\"\r\n },\r\n {\r\n Id: 70,\r\n Code: \"WY\",\r\n Name: \"Wyoming\"\r\n }\r\n];\r\n\r\nclass primaryLanguage {\r\n constructor(languageName, sortOrder) {\r\n this.languageName = languageName\r\n this.sortOrder = sortOrder\r\n }\r\n}\r\n\r\nlet primaryLanguagesData = primaryLanguage = []\r\nlet isPrimaryLanguageHidden = false\r\nlet isPrimaryLanguageStateHidden = false\r\nlet primaryLanguageState = ['NJ', 'IL']\r\nlet jobState = ''\r\n\r\nlet brandId = capSvc.getBrand();\r\ncapSvc.checkReferral();\r\n\r\nwindow.duplicateWorkHistory = duplicateWorkHistory;\r\nwindow.duplicateEducationHistory = duplicateEducationHistory;\r\nwindow.deleteWorkClone = deleteWorkClone;\r\nwindow.deleteSchoolClone = deleteSchoolClone;\r\nwindow.validate = validate;\r\nwindow.returnToSearch = returnToSearch\r\nwindow.checkEligibilityInput = checkEligibilityInput;\r\nwindow.showSponsorshipInfo = showSponsorshipInfo;\r\nwindow.hideSponsorshipInfo = hideSponsorshipInfo;\r\n\r\nwindow.selectRadioBtn = selectRadioBtn\r\nwindow.continueToStep2EnterKeyboard = continueToStep2EnterKeyboard\r\n\r\nlet resumeuploaded = false;\r\nlet capFileStoreId = 0\r\nlet wrkHistory = []\r\nlet educationHistory = []\r\nlet returningCandidateInfo = []\r\nlet submitEmailAddress = null\r\n\r\nlet candidate = {\r\n applicationSource: null,\r\n candidateErecruitId: 0,\r\n jobErecruitId: 0,\r\n firstName: null,\r\n middleName: null,\r\n lastName: null,\r\n noMiddleName: true,\r\n emailAddress: null,\r\n address1: null,\r\n address2: null,\r\n city: null,\r\n stateProvince: null,\r\n postalCode: null,\r\n phone: 0,\r\n adSourceId: 0,\r\n eligibilityFlag: true,\r\n ageFlag: true,\r\n sponsorshipRequiredFlag: null,\r\n agreementAcknowledgement: true,\r\n resumeFileStoreId: 0,\r\n noWorkHistory: true,\r\n workHistory: [\r\n {\r\n whErecruitId: null,\r\n companyName: null,\r\n jobTitle: null,\r\n jobDescription: null,\r\n startDate: null,\r\n endDate: null\r\n }\r\n ],\r\n educationHistory: [\r\n {\r\n edErecruitId: null,\r\n schoolName: null,\r\n educationLevelId: 0,\r\n courseOfStudy: null,\r\n yearsCompleted: 0\r\n }\r\n ]\r\n}\r\nlet erecruitCandidateId = 0\r\nlet erecruitApplicationId = 0\r\nlet candidateId = 0\r\nlet workCounter = 0\r\nlet educationCounter = 0\r\n\r\nwindow.onload = function () {\r\n const radioInputs = document.querySelectorAll('input[type=\"radio\"]')\r\n radioInputs.forEach((input) =>{\r\n input.classList.add('form-check-input')\r\n input.classList.add('radioValidation')\r\n if (!input.id.includes('sponsorship'))\r\n input.setAttribute('required','')\r\n });\r\n const selectMsgHtml = `
Please select yes or no
`\r\n const radioLabels = document.querySelectorAll('.radio-style-1-label')\r\n const emailMsgHtml = `
Please enter a valid email address
`\r\n const email = document.querySelector('#emailAddress')\r\n email.setAttribute('pattern', '\\\\S+@\\\\S+\\\\.\\\\S+')\r\n if (radioLabels.length > 0)\r\n $(radioLabels[1]).after(selectMsgHtml);\r\n if (radioLabels.length > 3)\r\n $(radioLabels[3]).after(selectMsgHtml);\r\n $(email).after(emailMsgHtml);\r\n\r\n//Remove extra radio divs to display validation message correctly\r\n let $div\r\n $div = $('#over18Div');\r\n $div.replaceWith($div.html());\r\n $div = $('#under18Div');\r\n $div.replaceWith($div.html());\r\n $div = $('#UsAuthorizedDiv');\r\n $div.replaceWith($div.html());\r\n $div = $('#noUsAuthorizedDiv');\r\n $div.replaceWith($div.html());\r\n\r\n//part 2 remove Cancel element\r\n const cancelBtn = document.querySelector('.fileinput-cancel-button')\r\n cancelBtn.remove()\r\n const removeBtn = document.querySelector('.fileinput-remove-button')\r\n removeBtn.remove()\r\n const uploadBtn = document.querySelector('.fileinput-upload-button')\r\n uploadBtn.remove()\r\n\r\n//part 3 field validation\r\n const submitRows = document.querySelectorAll('div.row.d-flex.flex-row')\r\n if (submitRows.length > 1)\r\n submitRows[1].classList.remove('row');\r\n\r\n// Personal info fields\r\n const firstNameMsgHtml = `
Please enter your first name
`\r\n const firstName = document.querySelector('#firstName')\r\n $(firstName).after(firstNameMsgHtml);\r\n const middleNameMsgHtml = `
Please check box below if no middle name
`\r\n const middleName = document.querySelector('#middleName')\r\n middleName.setAttribute('required','')\r\n $(middleName).after(middleNameMsgHtml);\r\n const lastNameMsgHtml = `
Please enter your last name
`\r\n const lastName = document.querySelector('#lastName')\r\n $(lastName).after(lastNameMsgHtml);\r\n const phoneNumberMsgHtml = `
Please enter a phone number
`\r\n const phoneNumber = document.querySelector('#phoneNumber')\r\n phoneNumber.setAttribute('pattern', '^\\\\(?\\\\d{3}\\\\)?[- ]?\\\\d{3}[-]?\\\\d{4}$')\r\n $(phoneNumber).after(phoneNumberMsgHtml);\r\n const address1MsgHtml = `
Please enter an address
`\r\n const address1 = document.querySelector('#address1')\r\n $(address1).after(address1MsgHtml);\r\n const cityMsgHtml = `
Please enter a city
`\r\n const city = document.querySelector('#city')\r\n $(city).after(cityMsgHtml);\r\n const statesProvinceMsgHtml = `
Please select a state
`\r\n const statesProvince = document.querySelector('#statesProvince')\r\n // statesProvince.removeAttribute('onchange')\r\n $(statesProvince).after(statesProvinceMsgHtml);\r\n const ZipPostalMsgHtml = `
Please enter a valid zip code
`\r\n const ZipPostal = document.querySelector('#ZipPostal')\r\n ZipPostal.setAttribute('minlength', '5')\r\n ZipPostal.setAttribute('maxlength', '7')\r\n $(ZipPostal).after(ZipPostalMsgHtml);\r\n const adSourceMsgHtml = `
Please select a source
`\r\n const adSource = document.querySelector('#adSource')\r\n $(adSource).after(adSourceMsgHtml);\r\n adSource.removeAttribute(\"onchange\")\r\n let over18Label = document.querySelector('[for=\"over18\"]')\r\n $(over18Label).addClass('pt-1')\r\n let authorizeLabel = document.querySelector('[for=\"UsAuthorized\"]')\r\n $(authorizeLabel).addClass('pt-1')\r\n let sponsorshipRequiredLabel = document.querySelector('[for=\"sponsorshipRequired\"]')\r\n $(sponsorshipRequiredLabel).addClass('pt-1')\r\n let sponsorshipNotRequiredabel = document.querySelector('[for=\"sponsorshipNotRequired\"]')\r\n $(sponsorshipNotRequiredabel).addClass('pt-1')\r\n\r\n const otherInputs = document.querySelectorAll('.form-control')\r\n otherInputs.forEach((input) =>{\r\n input.classList.add('to-focus')\r\n });\r\n\r\n let infoRows = document.querySelectorAll('#personalInformation .row')\r\n $(infoRows[0]).css('margin-bottom','0.5rem')\r\n\r\n let agreeLabel = document.querySelector('[for=\"hasAgreed\"]')\r\n $(agreeLabel).remove()\r\n const agreeTextHtml = ` I have read and understand the above Statement of Agreement`\r\n const agreeInput = document.querySelector('#hasAgreed')\r\n $(agreeInput).after(agreeTextHtml);\r\n\r\n let statementRow = document.querySelector('#statementOfAgreement .pt-4')\r\n $(statementRow).addClass('pl-3')\r\n\r\n//Boostrap form validation - onload **end\r\n\r\n // removePreloader();\r\n // const jobId = window.location.search.replace('?jobId=', '')\r\n getJobDetails(sessionStorage.getItem('jobId'))\r\n getPrimaryLanguages()\r\n}\r\n\r\nfunction getJobDetails(jobId) {\r\n\r\n $.ajax({\r\n type: \"GET\",\r\n url: sessionStorage.getItem('apiHost') +'Job/Search/' + jobId,\r\n success: function (data) {\r\n sessionStorage.setItem('isJobActive', data.isActive)\r\n if(data.isActive){\r\n console.log(\"candidateId: \"+sessionStorage.getItem('candidateId') );\r\n $(\"body\").show();\r\n document.title = 'Application for ' + sessionStorage.getItem(\"jobTitle\");\r\n $('#authorizedWarning p').html(sessionStorage.getItem(\"brandName\") + ' is an E-Verify employer, if you are eligible to work in the US, change your response to Yes to continue.');\r\n const pageTitle = document.getElementById(\"pageTitle\")\r\n pageTitle.innerHTML = `\r\n
\r\n \r\n \"${sessionStorage.getItem('brandName')}\r\n \r\n
\r\n
\r\n

Please submit your application for the position of:

\r\n

${sessionStorage.getItem(\"jobTitle\")}

\r\n
`\r\n const nameField = document.querySelector(\"input\");\r\n nameField.addEventListener(\"input\", () => {\r\n nameField.setCustomValidity(\"\");\r\n nameField.checkValidity();\r\n console.log(nameField.checkValidity());\r\n });\r\n\r\n nameField.addEventListener(\"invalid\", () => {\r\n nameField.setCustomValidity(\"Please fill in your First Name.\");\r\n });\r\n\r\n const statesDropDown = document.getElementById('statesProvince')\r\n StateProvinces.map(stateProvince => {\r\n const option = document.createElement('option')\r\n option.classList.add('dropdown-item')\r\n option.text = stateProvince.Name\r\n option.value = stateProvince.Code\r\n statesDropDown.options.add(option)\r\n })\r\n\r\n jobState = data.stateProvince\r\n wrkHistory[workCounter] = $('#previousEmployer-' + workCounter)[0].elements\r\n educationHistory[educationCounter] = $('#previousEducation-' + educationCounter)[0].elements\r\n\r\n if(sessionStorage.getItem(('candidateId')) !== null){\r\n $('#emailAddress').val('no email')\r\n goToStep2()\r\n } else {\r\n $('#part1').show();\r\n }\r\n\r\n capSvc.injectTags(\"Apply\");\r\n\r\n removePreloader();\r\n }else{\r\n jobIsInactive()\r\n }\r\n },\r\n beforeSend: function (xhr) {\r\n xhr.setRequestHeader ('Authorization',\r\n 'Bearer XwgtlQw0sZ2NJsJHJS8pOM7quIiE1vhzXTu1XbQ1fvwXdEnnpSUsOOdBqS8AKJxLya6QUs8RIwN7FPsvArhGVrfTPTCWT8WWZthkxgUvSTsY3zHoBDIAWMdn2IMZl8l9');\r\n },\r\n contentType: 'application/json',\r\n dataType: 'json'\r\n });\r\n}\r\n\r\nfunction setPrimaryLanguageVisibility(jobState) {\r\n const languagesDiv = document.querySelector('#languagesDiv')\r\n const languageSelector = document.querySelector('#primaryLanguages')\r\n\r\n if(primaryLanguageState.includes(jobState)){\r\n languagesDiv.removeAttribute('hidden')\r\n languageSelector.setAttribute('required', true)\r\n if(jobState === 'IL'){\r\n languageSelector.labels[0].innerText = 'Primary/Preferred Language'\r\n }\r\n }\r\n else{\r\n languageSelector.removeAttribute('required')\r\n languagesDiv.setAttribute('hidden', true)\r\n }\r\n}\r\n\r\nfunction getPrimaryLanguages(){\r\n const apiUrl = sessionStorage.getItem('apiHost') + 'Candidate/GetPrimaryLanguages';\r\n fetch(apiUrl)\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! Status: ${response.status}`);\r\n }\r\n return response.json();\r\n })\r\n .then(data => {\r\n console.log('Fetched data:', data);\r\n\r\n const primaryLanguagesDDl = document.getElementById('primaryLanguages')\r\n primaryLanguagesData = data\r\n primaryLanguagesData.map(language => {\r\n const option = document.createElement('option')\r\n option.text = language.languageName\r\n option.value = language.languageName\r\n primaryLanguagesDDl.options.add(option)\r\n })\r\n setPrimaryLanguageVisibility(jobState)\r\n })\r\n .catch(error => console.error('Error fetching data:', error));\r\n\r\n}\r\n\r\nfunction jobIsInactive(){\r\n\r\n let markup =\r\n `
\r\n \r\n \"${sessionStorage.getItem('brandName')}\r\n \r\n

We're sorry, the Position you have requested is no longer available.

\r\n \r\n\r\n
`\r\n $('#brandBody').html(markup);\r\n const returnToSearch = document.querySelector('#returnToSearch')\r\n returnToSearch.addEventListener('click', () => {\r\n window.open('../' + brandId, '_self')\r\n })\r\n removePreloader();\r\n}\r\nfunction continueToStep2EnterKeyboard(event){\r\n if(event.code === 'Enter'){\r\n const eligible = verifyEligibility()\r\n if(eligible){\r\n goToStep2()\r\n }else{\r\n displayRequiredFieldsandNoEligible()\r\n }\r\n }\r\n}\r\n$('#brandBody')[0].addEventListener('focus', (event) => {\r\n let over18Focus = true\r\n for (const element of $('input[type=radio]')) {\r\n if(element.checked)\r\n over18Focus = false\r\n }\r\n if (over18Focus)\r\n $('#over18').focus()\r\n})\r\n\r\ntabKeyResumeUpload()\r\ntabKeyCheckbox()\r\ntabKeyTextInput()\r\n\r\nfor (const element of $('select')) {\r\n element.addEventListener('focus', () =>{\r\n element.classList.add('border', 'border-primary')\r\n })\r\n\r\n element.addEventListener('blur', (event) =>{\r\n if(element.id === 'adSource' && !$('#workHistory').is(':hidden')) $('#noPreviousEmployer').focus()\r\n element.classList.remove('border', 'border-primary')\r\n })\r\n // element.addEventListener('change', (event) => {\r\n // if(capFileStoreId !== null) {\r\n // $('#hasAgreed').focus()\r\n // }\r\n // })\r\n}\r\n\r\nfor (const element of $('#continue-step3')) {\r\n element.addEventListener('focus', () => {\r\n element.setAttribute('style', 'transform: scale(1.1)')\r\n })\r\n element.addEventListener('blur', () => {\r\n element.removeAttribute('style', 'transform: scale(1.1)')\r\n })\r\n element.addEventListener('keyup', (event) => {\r\n if(event.code === 'Enter'){\r\n element.removeAttribute('style')\r\n element.click()\r\n }\r\n })\r\n}\r\n\r\n$(\"#part1Continue\").click(function (e) {\r\n e.preventDefault(e)\r\n setTimeout(() => {\r\n $(\"#part1Continue\").prop('disabled',true);\r\n $(\"#part1Continue\").css('transform','scale(1.3)')\r\n }, \"200\")\r\n\r\n // Boostrap form validation - part1Continue **begin\r\n 'use strict'\r\n // $('#submitApplication').prop('disabled',false)\r\n // Fetch all the forms we want to apply custom Bootstrap validation styles to\r\n let forms = document.querySelectorAll('.needs-validation')\r\n // forms[0][18].pattern = \"^\\\\(?\\\\d{3}\\\\)?[- ]?\\\\d{3}[-]?\\\\d{4}$\"\r\n // forms[0][17].pattern = \"^\\\\(?\\\\d{3}\\\\)?[- ]?\\\\d{3}[-]?\\\\d{4}$\"\r\n forms[0][19].pattern = \"^\\\\(?\\\\d{3}\\\\)?[- ]?\\\\d{3}[-]?\\\\d{4}$\"\r\n\r\n // Loop over them and prevent submission\r\n Array.prototype.slice.call(forms)\r\n .forEach(function (form) {\r\n if (!form.checkValidity()) {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n let firstInvalidRadio = $(form).find(\".form-check-input:invalid\").first();\r\n let firstInvalid;\r\n if (firstInvalidRadio != null) {\r\n firstInvalid = firstInvalidRadio;\r\n }\r\n window.scrollTo({\r\n top: 200,\r\n behavior: 'instant'\r\n });\r\n if (!verifyEligibility())\r\n firstInvalid.focus();\r\n }\r\n form.classList.add('was-validated')\r\n })\r\n // Boostrap form validation - part1Continue end\r\n\r\n const eligible = verifyEligibility()\r\n if(eligible){\r\n goToStep2()\r\n return true\r\n }else{\r\n displayRequiredFieldsandNoEligible()\r\n return false\r\n }\r\n})\r\n\r\n$('#upload-Resume').click(function () {\r\n if($('#uploadFile').val() === ''){\r\n return false\r\n }else{\r\n //Boostrap form validation - bypass checking work history and education parts\r\n const whInputs = document.querySelectorAll('#workHistoryBody input, #workHistoryBody textarea, #workHistoryBody select');\r\n // alert(\"whInputs id = \" + whInputs[1].id)\r\n $('#companyName-0').removeAttr('required');\r\n whInputs.forEach((input) =>{\r\n // console.log(\"input id = \" + input.id)\r\n if (input.id !== 'whErecruitId')\r\n input.removeAttribute('required')\r\n });\r\n const edInputs = document.querySelectorAll('#educationHistoryBody input, #educationHistoryBody textarea, #educationHistoryBody select');\r\n edInputs.forEach((input) =>{\r\n // console.log(\"input id = \" + input.id)\r\n if (input.id !== 'edErecruitId')\r\n input.removeAttribute('required')\r\n });\r\n\r\n const fd = new FormData();\r\n const files = $('#uploadBtn')[0].files[0];\r\n fd.append('CandidateResume', files);\r\n resumeuploaded = true;\r\n $.ajax({\r\n url: sessionStorage.getItem('apiHost') + 'Candidate/PostResume',\r\n type: 'post',\r\n data: fd,\r\n contentType: false,\r\n processData: false,\r\n success: function (response){\r\n capFileStoreId = response.capFileStoreId\r\n $('#part2').hide()\r\n $('#part3').show()\r\n const statesDropDown = document.getElementById('statesProvince')\r\n statesDropDown.value = ''\r\n $('#statesProvince').change(function (event) {\r\n setPrimaryLanguageVisibility(event.currentTarget.value)\r\n })\r\n\r\n $('#primaryLanguages').change(function (event){\r\n const otherLanguageDiv = document.querySelector('#otherLanguageDiv')\r\n const otherLanguage = document.querySelector('#languageInput')\r\n if(event.currentTarget.value === 'Other'){\r\n otherLanguageDiv.removeAttribute('hidden')\r\n otherLanguage.setAttribute('required', true)\r\n }\r\n else{\r\n otherLanguage.removeAttribute('required')\r\n otherLanguageDiv.setAttribute('hidden', 'hidden')\r\n }\r\n })\r\n\r\n if(sessionStorage.getItem('referralAdSourceId') !== null){\r\n $('#adSource').val(sessionStorage.getItem('referralAdSourceId'));\r\n $('#adSourceBox').attr('style','display:none !important');\r\n }\r\n if(erecruitCandidateId === null){\r\n $('#workHistory').hide()\r\n $('#educationHistory').hide()\r\n\r\n return true\r\n }else{\r\n populateReturningCandidate()\r\n }\r\n },\r\n beforeSend: function (xhr) {\r\n xhr.setRequestHeader ('Authorization', 'Bearer 2IPs42mwzjHdK3p7NQdyayOUWMQQkgAozYRiAJkjJNqW768JDzlxF5dJE49ePupId7NsVz9TtItb6gWepgcgPDOc7vpI1IEMoGbwHcYgZ5835tjNdOiHG3L37hCMVQ63');\r\n xhr.setRequestHeader ('JwtAuthorization', sessionStorage.getItem('jwt'));\r\n xhr.setRequestHeader ('Origin', 'https://employeeworkplace.com');\r\n xhr.setRequestHeader ('UserControl', sessionStorage.getItem('jwt'));\r\n },\r\n error: function (textStatus, errorThrown){\r\n console.log(errorThrown)\r\n }\r\n })\r\n }\r\n})\r\n\r\n$('#uploadBtn').change(function () {\r\n $('#uploadFile').val(this.value.replace(/^.*\\\\/, \"\"))\r\n $('#upload-Resume').prop('disabled',false)\r\n})\r\n\r\n$('#continue-step3').click(function (){\r\n capFileStoreId = null\r\n if(erecruitCandidateId !== null){\r\n populateReturningCandidate()\r\n }\r\n if(sessionStorage.getItem('referralAdSourceId') !== null){\r\n $('#adSource').val(sessionStorage.getItem('referralAdSourceId'));\r\n $('#adSourceBox').attr('style','display:none !important');\r\n }\r\n\r\n $('#part2').hide()\r\n $('#part3').show()\r\n\r\n // Boostrap form validation - Work history fields\r\n const companyNameMsgHtml = `
Please enter company name
`\r\n const companyName = document.querySelector('#companyName')\r\n $(companyName).after(companyNameMsgHtml);\r\n const jobTitleMsgHtml = `
Please enter job title
`\r\n const jobTitle = document.querySelector('#jobTitle')\r\n $(jobTitle).after(jobTitleMsgHtml);\r\n const jobFromMsgHtml = `
Please enter from date
`\r\n const jobFrom = document.querySelector('#jobFrom')\r\n jobFrom.setAttribute('pattern', '^(0[1-9]|1[0-2])\\\\/[/]?([1-2][0-9]{3})$')\r\n// jobFrom.setAttribute('pattern', '(0[1-9]|1[0-2])([/])([1-2][0-9][0-9][0-9])')\r\n jobFrom.setAttribute('name','jobFrom')\r\n $(jobFrom).after(jobFromMsgHtml);\r\n // jobFrom.id = 'jobFrom-0'\r\n\r\n const jobToMsgHtml = `
Please enter to date
`\r\n const jobTo = document.querySelector('#jobTo')\r\n jobTo.setAttribute('pattern', '^(0[1-9]|1[0-2])\\\\/[/]?([1-2][0-9]{3})$')\r\n jobTo.setAttribute('name', 'jobTo')\r\n $(jobTo).after(jobToMsgHtml);\r\n // jobTo.id = 'jobTo-0'\r\n const jobDescriptionMsgHtml = `
Please enter job description
`\r\n const jobDescription = document.querySelector('#jobDescription')\r\n $(jobDescription).after(jobDescriptionMsgHtml);\r\n\r\n // Boostrap form validation - Education history fields\r\n const educationLevelMsgHtml = `
Please select a degree type
`\r\n const educationLevel = document.querySelector('#educationLevel')\r\n $(educationLevel).after(educationLevelMsgHtml);\r\n const schoolNameMsgHtml = `
Please enter a school name
`\r\n const schoolName = document.querySelector('#schoolName')\r\n $(schoolName).after(schoolNameMsgHtml);\r\n const courseOfStudyMsgHtml = `
Please enter a course of study
`\r\n const courseOfStudy = document.querySelector('#courseOfStudy')\r\n $(courseOfStudy).after(courseOfStudyMsgHtml);\r\n const yearsCompletedMsgHtml = `
Please enter years completed
`\r\n const yearsCompleted = document.querySelector('#yearsCompleted')\r\n $(yearsCompleted).after(yearsCompletedMsgHtml);\r\n// Boostrap form validation - Education history fields end\r\n\r\n let isReturningCandidate = false\r\n if (returningCandidateInfo !== null && (returningCandidateInfo !== undefined && returningCandidateInfo.length > 0)){\r\n isReturningCandidate = true\r\n }\r\n\r\n const languages = document.querySelector('#languagesDiv')\r\n const languageSelector = document.querySelector('#primaryLanguages')\r\n\r\n if(primaryLanguageState.includes(jobState) && !isReturningCandidate){\r\n languages.removeAttribute('hidden')\r\n languageSelector.setAttribute('required', true)\r\n if(jobState === 'IL'){\r\n languageSelector.labels[0].innerText = 'Primary/Preferred Language'\r\n }\r\n }else{\r\n languages.setAttribute('hidden', true)\r\n languageSelector.removeAttribute('required')\r\n }\r\n\r\n $('#statesProvince').change(function (event) {\r\n if(primaryLanguageState.includes(event.currentTarget.value) ||\r\n primaryLanguageState.includes(jobState)){\r\n languages.removeAttribute('hidden')\r\n languageSelector.setAttribute('required', true)\r\n }\r\n else{\r\n languages.setAttribute('hidden', true)\r\n languageSelector.removeAttribute('required')\r\n }\r\n })\r\n\r\n $('#primaryLanguages').change(function (event){\r\n const otherLanguageDiv = document.querySelector('#otherLanguageDiv')\r\n const otherLanguage = document.querySelector('#languageInput')\r\n if(event.currentTarget.value === 'Other'){\r\n otherLanguageDiv.removeAttribute('hidden')\r\n otherLanguage.setAttribute('required', true)\r\n }\r\n else{\r\n otherLanguage.removeAttribute('required')\r\n otherLanguageDiv.setAttribute('hidden', 'hidden')\r\n }\r\n })\r\n if(erecruitCandidateId === null){\r\n const statesDropDown = document.getElementById('statesProvince')\r\n statesDropDown.value = ''\r\n }\r\n})\r\n\r\n$('#eligibilityForm').on('submit',function(event){\r\n event.preventDefault()\r\n const eligible = verifyEligibility()\r\n if(eligible){\r\n goToStep2()\r\n }else{\r\n displayRequiredFieldsandNoEligible()\r\n }\r\n})\r\nfunction verifyEligibility(){\r\n if ($(\"#over18\").is(\":checked\") && $('#UsAuthorized').is(\":checked\") && $('#emailAddress').val() !== \"\")\r\n {\r\n const re = /\\S+@\\S+\\.\\S+/\r\n let match = false\r\n match = re.test($('#emailAddress').val())\r\n if(!match){\r\n return false\r\n }\r\n return true\r\n }\r\n else {\r\n return false\r\n }\r\n}\r\nfunction displayRequiredFieldsandNoEligible(){\r\n if ($('#emailAddress').val() === '') {\r\n } else {\r\n if ($('#under18').is(\":checked\") || $('#noUsAuthorized').is(\":checked\")) {\r\n $('#part1').hide()\r\n $('#noEligible').show()\r\n }\r\n }\r\n\r\n}\r\n\r\nfunction populateReturningCandidate(){\r\n $('#returningCandidateFieldSet')[0].setAttribute('hidden', 'hidden')\r\n $('#returningCandidateDiv')[0].setAttribute('hidden', 'hidden')\r\n $('#languagesDiv')[0].setAttribute('hidden', 'hidden')\r\n $('#workHistory')[0].setAttribute('hidden', 'hidden')\r\n $('#educationHistory').attr('hidden', true)\r\n $('#welcomeBackMsg')[0].outerText = 'Welcome Back ' + returningCandidateInfo[0]['firstName'] + '!'\r\n $('#retuningCandidateMsgDiv')[0].classList.add('fw-bold')\r\n $('#retuningCandidateMsgDiv')[0].fontsize = '18px'\r\n $('#statesProvince')[0].value = null\r\n // const forms = document.querySelectorAll('.needs-validation')\r\n // Array.prototype.slice.call(forms)\r\n // .forEach(function (form) {\r\n // form.reset()\r\n // // for (let i = 0; i < form.length; i++){\r\n // // if(form[i].id !== 'adSource'){\r\n // // form[i].setCustomValidity('')\r\n // // }\r\n // // }\r\n // })\r\n\r\n\r\n // notValidateHistory();\r\n //\r\n // $('#firstName').val(returningCandidateInfo[0]['firstName'])\r\n // $('#firstName').prop('disabled', true)\r\n //\r\n // if($('#middleName').val() !== null && $('#middleName').val() !== \"\"){\r\n // $('#middleName').val(returningCandidateInfo[0]['middleName'])\r\n // $('#noMiddleName').prop('checked',false)\r\n // $('#noMiddleName').prop('disabled',true)\r\n // $('#middleName').prop('disabled', true)\r\n // }else{\r\n // $('#noMiddleName').prop('checked',true)\r\n // $('#noMiddleName').prop('disabled',true)\r\n // $('#middleName').prop('disabled', true)\r\n // }\r\n // // $('#noMiddleName').prop('disabled', true)\r\n //\r\n // $('#lastName').val( returningCandidateInfo[0]['lastName'])\r\n // $('#lastName').prop('disabled', true)\r\n // $('#phoneNumber').val(returningCandidateInfo[0]['phoneNumber'])\r\n // // $('#phoneNumber').setAttribute('disabled', 'disabled')\r\n // formatPhone(returningCandidateInfo[0]['phoneNumber'])\r\n // //\r\n // $('#linkedInUrl').val(returningCandidateInfo[0]['linkedInUrl'])\r\n // $('#address1').val(returningCandidateInfo[0]['address1'])\r\n // // $('#address1').setAttribute('disabled', 'disabled')\r\n // //\r\n // $('#address2').val(returningCandidateInfo[0]['address2'])\r\n // // $('#address2').setAttribute('disabled', 'disabled')\r\n // //\r\n // $('#statesProvince').val(returningCandidateInfo[0]['stateProvince'])\r\n // // $('#statesProvince').setAttribute('disabled', 'disabled')\r\n // //\r\n // $('#city').val(returningCandidateInfo[0]['city'])\r\n // // $('#city').setAttribute('disabled', 'disabled')\r\n // //\r\n // $('#ZipPostal').val(returningCandidateInfo[0]['postalCode'])\r\n // // $('#ZipPostal').setAttribute('disabled', 'disabled')\r\n // setPrimaryLanguageVisibility(returningCandidateInfo[0]['stateProvince'])\r\n //\r\n // if(returningCandidateInfo[1].length > 0 && returningCandidateInfo[1][0][\"whErecruitId\"] !== null){\r\n // var previousEmployeeElement = $('#previousEmployer-0')\r\n // previousEmployeeElement[0].elements['whErecruitId'].value = returningCandidateInfo[1][0][\"whErecruitId\"]\r\n // previousEmployeeElement[0].elements['companyName'].value = returningCandidateInfo[1][0][\"companyName\"]\r\n // previousEmployeeElement[0].elements['jobTitle'].value = returningCandidateInfo[1][0][\"jobTitle\"]\r\n // previousEmployeeElement[0].elements['jobDescription'].value = returningCandidateInfo[1][0][\"jobDescription\"]\r\n // previousEmployeeElement[0].elements['jobFrom'].value = returningCandidateInfo[1][0][\"startDate\"]\r\n // previousEmployeeElement[0].elements['jobTo'].value = returningCandidateInfo[1][0][\"endDate\"]\r\n // $(\"#previousEmployer-0 .form-control\").prop(\"disabled\",true)\r\n // console.log(' whErecruitId: ' + previousEmployeeElement[0].elements[\"whErecruitId\"].value)\r\n // if(returningCandidateInfo[1].length > 1){\r\n // $(\"#noPreviousEmployer\").prop(\"disabled\",true)\r\n // for(var i = 1; i < returningCandidateInfo[1].length; i++){\r\n // duplicateWorkHistory(false,returningCandidateInfo[1][i])\r\n // }\r\n // }\r\n // }\r\n //\r\n // if(returningCandidateInfo[2].length > 0 && returningCandidateInfo[2][0][\"edErecruitId\"] !== null){\r\n // const previuosEducation = $('#previousEducation-0')\r\n // previuosEducation[0].elements['edErecruitId'].value = returningCandidateInfo[2][0][\"edErecruitId\"]\r\n // previuosEducation[0].elements['educationLevel'].value = returningCandidateInfo[2][0][\"educationLevelId\"]\r\n // previuosEducation[0].elements['schoolName'].value = returningCandidateInfo[2][0][\"schoolName\"]\r\n // previuosEducation[0].elements['courseOfStudy'].value = returningCandidateInfo[2][0][\"courseOfStudy\"]\r\n // previuosEducation[0].elements['yearsCompleted'].value = returningCandidateInfo[2][0][\"yearsCompleted\"]\r\n // $(\"#previousEducation-0 .form-control\").prop(\"disabled\",true)\r\n // console.log(' edErecruitId: ' + previuosEducation[0].elements[\"edErecruitId\"].value)\r\n // if(returningCandidateInfo[2].length > 1){\r\n // $(\"#noPreviousEmployer\").prop(\"disabled\",true)\r\n // for(var c = 1; c < returningCandidateInfo[2].length; c++){\r\n // duplicateEducationHistory(false,returningCandidateInfo[2][c])\r\n // }\r\n // }\r\n // }\r\n}\r\nfunction notValidateHistory(){\r\n const whInputs = document.querySelectorAll('#workHistoryBody input, #workHistoryBody textarea, #workHistoryBody select');\r\n whInputs.forEach((input) =>{\r\n // console.log(\"input id = \" + input.id)\r\n input.removeAttribute('required')\r\n });\r\n const edInputs = document.querySelectorAll('#educationHistoryBody input, #educationHistoryBody textarea, #educationHistoryBody select');\r\n edInputs.forEach((input) =>{\r\n // console.log(\"input id = \" + input.id)\r\n input.removeAttribute('required')\r\n });\r\n\r\n}\r\nfunction goToStep2(){\r\n let checkCandidateId = sessionStorage.getItem('candidateId');\r\n submitEmailAddress = $('#emailAddress').val()\r\n if (checkCandidateId === null){\r\n checkCandidateId = 0;\r\n }\r\n // Boostrap form validation - reset form validation and set agreement attribute and classes **begin\r\n const formElement = document.querySelector(\"#applicationForm\")\r\n formElement.classList.remove(\"was-validated\");\r\n const agreedMsgHtml = `
Please check agreement box
`\r\n const hasAgreedInput = document.querySelector('#hasAgreed')\r\n hasAgreedInput.setAttribute('required','')\r\n hasAgreedInput.classList.add('form-check-input')\r\n hasAgreedInput.classList.add('to-focus')\r\n const hasAgreedLabel = document.querySelector('.pl-3')\r\n $(hasAgreedLabel).after(agreedMsgHtml);\r\n // Boostrap form validation - reset form validation.... **end\r\n\r\n $.ajax({\r\n url: sessionStorage.getItem('apiHost') + \"checkCandidate\",\r\n dataType: 'json',\r\n type: 'POST',\r\n contentType: 'application/json',\r\n data: JSON.stringify({\r\n emailAddress: $('#emailAddress').val(),\r\n jobId: parseInt(sessionStorage.getItem('jobId')),\r\n candidateId: checkCandidateId\r\n }),\r\n processData: false,\r\n success: function (data, textStatus){\r\n const t = data\r\n console.log(data)\r\n erecruitCandidateId = data.erecruitCandidateId\r\n erecruitApplicationId = data.erecruitApplicationId\r\n candidateId = data.erecruitCandidateId\r\n sessionStorage.setItem('jwt',data.jwt);\r\n console.log('jwt ' + sessionStorage.getItem('jwt'))\r\n const adSource = document.getElementById('adSource')\r\n data.adSource.map(adSources => {\r\n const option = document.createElement('option')\r\n option.text = adSources.adSourceName\r\n option.value = adSources.erecruitAdSourceId\r\n adSource.options.add(option)\r\n })\r\n\r\n const degreeType = document.getElementById('educationLevel')\r\n data.educationLevels.map(dt => {\r\n const option = document.createElement('option')\r\n option.text = dt.description\r\n option.value = dt.erecruitEducationLevelId\r\n degreeType.options.add(option)\r\n })\r\n\r\n if(erecruitCandidateId === null){\r\n console.log(\"new candidate\")\r\n $('#newApplicantResume').show();\r\n $('#part1').hide()\r\n $('#part2').show()\r\n }\r\n else {\r\n // $('#emailAddress').val(data.personalInfo[0].emailAddress);\r\n $('#middleName').val(data.personalInfo[0].middleName)\r\n submitEmailAddress = $('#emailAddress').val();\r\n if(erecruitApplicationId === null){\r\n $('#returningApplicantResume').show()\r\n $('#part1').hide()\r\n $('#part2').show()\r\n returningCandidateInfo.push(data.personalInfo[0])\r\n returningCandidateInfo.push(data.workHistory)\r\n returningCandidateInfo.push(data.educationHistory)\r\n }\r\n else {\r\n $('#part1').hide()\r\n $('#part2').hide()\r\n $('#previousApplied').show()\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n beforeSend: function (xhr) {\r\n xhr.setRequestHeader ('Authorization', 'Bearer XwgtlQw0sZ2NJsJHJS8pOM7quIiE1vhzXTu1XbQ1fvwXdEnnpSUsOOdBqS8AKJxLya6QUs8RIwN7FPsvArhGVrfTPTCWT8WWZthkxgUvSTsY3zHoBDIAWMdn2IMZl8l9');\r\n },\r\n error: function (textStatus, errorThrown){\r\n console.log(errorThrown)\r\n }\r\n })\r\n}\r\n\r\n$('#phoneNumber').change(function(event) {\r\n // alert(\"phoneNumber entered\")\r\n let pattern = $('#phoneNumber').attr(\"pattern\")\r\n let regex = new RegExp(pattern);\r\n if (regex.test($('#phoneNumber').val())) {\r\n $('#validatePhoneNumber').css('display', 'none');\r\n // $('#phoneNumber').css('background', 'white');\r\n }else\r\n if ($('#phoneNumber').val() !== '')\r\n $('#validatePhoneNumber').css('display','block')\r\n});\r\n\r\nfunction formatPhone(phone){\r\n if(event.keyCode !== 8){\r\n if((event.key === undefined || !isNaN(event.key)) || phone === '' ){\r\n if(phone.length === 10){\r\n $('#validatePhoneNumber').css('display', 'none')\r\n const curchr = phone.length;\r\n let curval = phone;\r\n curval = curval.replace(/\\D/g,'').substring(0,10)\r\n if (curchr === 10 && !curval.includes('('))\r\n {\r\n const areaCode = curval.substring(0, 3)\r\n const phonePart1 = curval.substring(3, 6)\r\n const phonePart2 = curval.substring(6, 10)\r\n $('#phoneNumber').val(\"(\" + areaCode + \")\" + \" \" + phonePart1 + '-' + phonePart2)\r\n $('#phoneNumber').css('background-color','white')\r\n }\r\n }\r\n }else{\r\n $('#validatePhoneNumber').css('display', 'block');\r\n }\r\n }\r\n else if(event.keyCode === 8){\r\n if(phone.length > 0){\r\n if(!isNaN(phone[phone.length - 1])){\r\n $('#validatePhoneNumber').css('display', 'none')\r\n }\r\n }\r\n else{\r\n $('#validatePhoneNumber').css('display', 'none')\r\n }\r\n }\r\n}\r\n\r\n$('#emailAddress').change(function () {\r\n const re = /\\S+@\\S+\\.\\S+/\r\n let match = false\r\n match = re.test($('#emailAddress').val())\r\n if (!match) {\r\n $('#emailAddress').val() !== '' ?\r\n $('#eligibilityMsg').text('Invalid Email') : $('#eligibilityMsg').text('Please enter email address')\r\n $('#eligibilityMsg').show()\r\n $('#emailAddress').css('background-color','pink')\r\n $(\"#part1Continue\").prop('disabled',true);\r\n } else {\r\n $('#eligibilityMsg').text('')\r\n $('#eligibilityMsg').hide()\r\n $('#emailAddress').css('background-color','white')\r\n $(\"#part1Continue\").prop('disabled',false);\r\n }\r\n})\r\n\r\n$('#emailAddress').on('keyup', event => {\r\n if(event.keyCode === 13){\r\n $(\"#part1Continue\").click()\r\n }\r\n})\r\n\r\nfor (const button of $('#part1Continue')) {\r\n button.addEventListener('focus', (event) => {\r\n button.setAttribute('style', 'transform: scale(1.3)')\r\n })\r\n button.addEventListener('blur', (event) => {\r\n button.removeAttribute('style')\r\n })\r\n button.addEventListener('keyup', (event) => {\r\n if(event.code === 'Enter'){\r\n continueToStep2EnterKeyboard(event)\r\n }\r\n })\r\n}\r\n\r\n$('#hasAgreed').click(function (){\r\n if(!$('#hasAgreed').is(\":checked\")){\r\n $('#submitApplication').prop('disabled', true)\r\n }else{\r\n $('#submitApplication').prop('disabled',false)\r\n }\r\n})\r\n\r\n$('#phoneNumber').keyup(function(event) {\r\n formatPhone(event.currentTarget.value)\r\n //Boostrap form validation...\r\n if (event.currentTarget.value !== '')\r\n $('#phoneNumberMsg').css(\"display\",\"none\")\r\n else\r\n $('#phoneNumberMsg').css(\"display\",\"block\")\r\n let pattern = $('#phoneNumber').attr(\"pattern\")\r\n let regex = new RegExp(pattern);\r\n if (regex.test($('#phoneNumber').val()))\r\n $('#validatePhoneNumber').css('display', 'none');\r\n});\r\n\r\n$('#noMiddleName').click(function () {\r\n if($('#noMiddleName').is(\":checked\")){\r\n $('#middleName').val('')\r\n $('#middleName').css('background-color','none')\r\n $('#middleName').prop('disabled',true)\r\n }else{\r\n $('#middleName').prop('disabled',false)\r\n }\r\n})\r\n\r\n$('#noPreviousEmployer').click(function (){\r\n if($('#noPreviousEmployer').is(\":checked\")){\r\n $('#companyName').prop('disabled', true)\r\n $('#jobTitle').prop('disabled', true)\r\n $('#jobDescription').prop('disabled', true)\r\n $('#jobFrom').prop('disabled', true)\r\n $('#jobTo').prop('disabled', true)\r\n $('#addEmployer').hide();\r\n }else{\r\n $('#companyName').prop('disabled', false)\r\n $('#jobTitle').prop('disabled', false)\r\n $('#jobDescription').prop('disabled', false)\r\n $('#jobFrom').prop('disabled', false)\r\n $('#jobTo').prop('disabled', false)\r\n $('#addEmployer').show();\r\n }\r\n\r\n})\r\n\r\nconst submitApplication = $('#submitApplication')\r\n\r\nsubmitApplication.click(function (e){\r\n e.preventDefault(e)\r\n // Boostrap form validation - #submitApplication **begin\r\n let valid = false\r\n let tempPhone\r\n if(returningCandidateInfo.length === 0){\r\n if($('#phoneNumber').val() === '') {\r\n // Boostrap form validation\r\n let cellNumber\r\n $('#validatePhoneNumber').css('display', 'none');\r\n }\r\n const jobFroms = document.querySelectorAll(\"input[name='jobFrom']\")\r\n jobFroms.forEach((from ) =>{\r\n if ( $(from).val() === \"\") {\r\n $(from).removeAttr('style')\r\n let msgId = from.nextElementSibling.id\r\n // console.log('msgId = ' + msgId)\r\n $('#'+ msgId).removeAttr('style')\r\n $('#'+ msgId).text('Please enter from date')\r\n }\r\n })\r\n const jobTos = document.querySelectorAll(\"input[name='jobTo']\")\r\n jobTos.forEach((to ) =>{\r\n if ( $(to).val() === \"\") {\r\n $(to).removeAttr('style')\r\n let msgId = to.nextElementSibling.id\r\n // console.log('msgId = ' + msgId)\r\n $('#'+ msgId).removeAttr('style')\r\n $('#'+ msgId).text('Please enter to date')\r\n }\r\n })\r\n\r\n let firstInvalidJobDate\r\n let targetDate = 0\r\n if (document.querySelectorAll('.invalidJobDate').length > 0) {\r\n firstInvalidJobDate = $('#applicationForm').find(\".invalidJobDate\").first();\r\n targetDate = firstInvalidJobDate.offset().top - 130;\r\n // console.log(\"target date = \" + targetDate);\r\n }\r\n\r\n// console.log('valid1: ' + valid)\r\n let firstCheckDone = false\r\n 'use strict'\r\n // Fetch all the forms we want to apply custom Bootstrap validation styles to\r\n let forms = document.querySelectorAll('.needs-validation')\r\n // Loop over them and prevent submission\r\n Array.prototype.slice.call(forms)\r\n .forEach(function (form) {\r\n if (!form.checkValidity()) {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n let firstInvalid = $(form).find(\".to-focus:invalid\").first();\r\n let target = firstInvalid.offset().top - 130;\r\n // console.log(\"target = \" + target);\r\n if (targetDate !== 0 && targetDate < target){\r\n target = targetDate\r\n firstInvalid = firstInvalidJobDate\r\n $(firstInvalid).css('box-shadow', '0 0 0 0.25rem rgb(220 53 69 / 25%)')\r\n }\r\n window.scrollTo({\r\n top: target,\r\n behavior: 'instant'\r\n });\r\n firstInvalid.focus();\r\n }else {\r\n valid = true;\r\n }\r\n form.classList.add('was-validated')\r\n })\r\n if (valid)\r\n firstCheckDone = true;\r\n\r\n if($('#phoneNumber').val() === ''){\r\n valid = false\r\n } else {\r\n tempPhone = document.getElementById('phoneNumber').value.trim().replace(\"(\", \"\").replace(\")\", \"\").replace(\"-\", \"\").split('')\r\n tempPhone = tempPhone.filter(function (ele){\r\n return ele !== ' ';\r\n })\r\n tempPhone = tempPhone.join(\",\").replaceAll(\",\",\"\")\r\n\r\n }\r\n if(!resumeuploaded || erecruitCandidateId !== null){\r\n\r\n if (!$('#noPreviousEmployer').is(\":checked\")){\r\n const invalidJobDates = document.querySelectorAll('.invalidJobDate')\r\n invalidJobDates.forEach((jobDate) =>{\r\n $(jobDate).css('border-color','#dc3545')\r\n // $(jobDate).css('box-shadow', '0 0 0 0.25rem rgb(220 53 69 / 25%)')\r\n $(jobDate).css('background-image',\"url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5' /%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z' /%3e%3ccircle cx='6' cy='8.2' r='.6' stroke='none' fill='%23dc3545' /%3e%3c/svg%3e\\\")\")\r\n valid = false\r\n });\r\n }\r\n if (!valid && firstCheckDone){\r\n firstInvalidJobDate = $('#applicationForm').find(\".invalidJobDate\").first();\r\n targetDate = firstInvalidJobDate.offset().top - 130;\r\n window.scrollTo({\r\n top: targetDate,\r\n behavior: 'instant'\r\n });\r\n $(firstInvalidJobDate).css('box-shadow', '0 0 0 0.25rem rgb(220 53 69 / 25%)')\r\n firstInvalidJobDate.focus();\r\n }\r\n }\r\n }else{\r\n if($('#adSource').val() !== ''){\r\n valid = true\r\n $('#adSource').css('background-color','white')\r\n }else{\r\n $('#adSource')[0].classList.add('invalid')\r\n $('#adSource').css('background-color','pink')\r\n $('#adSource').focus()\r\n }\r\n }\r\n console.log('valid2: ' + valid)\r\n if(valid){\r\n $('#submitApplication').prop('disabled', true)\r\n $(\"#submitApplication\").css('transform','scale(1.3)')\r\n var tempWH = []\r\n var whDetails = null\r\n if((erecruitCandidateId === null && !resumeuploaded) || erecruitCandidateId !== null){\r\n if (!$('#noPreviousEmployer').is(\":checked\") && !$('#workHistory').is(':hidden')){\r\n $('.workHistoryItem').each(function(){\r\n var $whItem = $(this)\r\n if($whItem.children('#whErecruitId').val().length === 0){\r\n whDetails = {\r\n whErecruitid:null,\r\n companyName: $whItem.find('#companyName').val().trim(),\r\n jobTitle: $whItem.find('#jobTitle').val().trim(),\r\n jobDescription: $whItem.find('#jobDescription').val().trim(),\r\n // startDate: $whItem.find('#jobFrom').val().trim(),\r\n // endDate: $whItem.find('#jobTo').val().trim()\r\n startDate: $whItem.find('[name=\"jobFrom\"]').val().trim(),\r\n endDate: $whItem.find('[name=\"jobTo\"]').val().trim()\r\n }\r\n console.log(whDetails)\r\n tempWH.push(whDetails)\r\n console.log(tempWH)\r\n }\r\n })\r\n }\r\n }\r\n var tempEH = []\r\n var ehDetails = null\r\n console.log(educationHistory)\r\n if((erecruitCandidateId === null && !resumeuploaded) || erecruitCandidateId !== null){\r\n $('.edHistoryItem').each(function(i){\r\n var $edItem = $(this)\r\n if($edItem.children('#edErecruitId').val().length === 0 && !$('#educationHistory').is(':hidden')){\r\n ehDetails = {\r\n edErecruitid: null,\r\n educationLevelId: Number($edItem.find('#educationLevel').val().trim()),\r\n schoolName: $edItem.find('#schoolName').val().trim(),\r\n courseOfStudy: $edItem.find('#courseOfStudy').val().trim(),\r\n yearsCompleted: Number($edItem.find('#yearsCompleted').val().trim())\r\n }\r\n tempEH.push(ehDetails)\r\n console.log(tempWH)\r\n }\r\n })\r\n }\r\n let sponsorshipRequired = null;\r\n if ( $('#sponsorshipRequired').is(\":checked\")){\r\n sponsorshipRequired = true;\r\n } else if ( $('#sponsorshipNotRequired').is(\":checked\")){\r\n sponsorshipRequired = false;\r\n }\r\n\r\n let primaryLanguage = null\r\n let primaryLanguageInput = null\r\n if(!$('#languagesDiv').is(':hidden')){\r\n primaryLanguage = $('#primaryLanguages').val().toString()\r\n primaryLanguageInput = $('#languageInput').val() === '' ? null : $('#languageInput').val()\r\n }\r\n\r\n candidate = {\r\n applicationSource: \"CAP\",\r\n jobErecruitId: Number(sessionStorage.getItem('jobId')),\r\n candidateErecruitId: candidateId,\r\n firstName: document.getElementById('firstName').value === '' ? null : document.getElementById('firstName').value.trim() ,\r\n middleName: document.getElementById('middleName').value === '' ? null : document.getElementById('middleName').value.trim() ,\r\n noMiddleName: document.getElementById('noMiddleName').value === 'on',\r\n lastName: document.getElementById('lastName').value === '' ? null : document.getElementById('lastName').value.trim() ,\r\n phone: tempPhone, // document.getElementById('phoneNumber').value === '' ? null : Number(document.getElementById('phoneNumber').value) ,\r\n emailAddress: submitEmailAddress,\r\n address1: document.getElementById('address1').value === '' ? null : document.getElementById('address1').value.trim() ,\r\n address2: document.getElementById('address2').value === '' ? null : document.getElementById('address2').value.trim() ,\r\n city: document.getElementById('city').value === '' ? null : document.getElementById('city').value.trim() ,\r\n stateProvince: returningCandidateInfo.length !== 0 ? null : document.getElementById('statesProvince').value === '' ? null : document.getElementById('statesProvince').value.trim(),\r\n postalCode: document.getElementById('ZipPostal').value === '' ? null : document.getElementById('ZipPostal').value.trim() ,\r\n adSourceId: document.getElementById('adSource').value === '' ? null : Number(document.getElementById('adSource').value.trim()) ,\r\n eligibilityFlag: true,\r\n ageFlag: true,\r\n sponsorshipRequiredFlag: sponsorshipRequired,\r\n agreementAcknowledgement: true,\r\n resumeFileStoreId: capFileStoreId,\r\n workHistory: tempWH,\r\n educationHistory: tempEH,\r\n noWorkHistory: $('#noPreviousEmployer').is(\":checked\"),\r\n LanguageSelected: primaryLanguage,\r\n LanguageEntered: primaryLanguageInput\r\n }\r\n console.log('candidate: ' +JSON.stringify(candidate))\r\n $.ajax({\r\n url: sessionStorage.getItem('apiHost') + \"Candidate/Submit\",\r\n dataType: 'json',\r\n type: 'post',\r\n contentType: 'application/json',\r\n data: JSON.stringify(candidate),\r\n processData: false,\r\n success: function (data){\r\n const t = data\r\n let sourceParam = ''\r\n if (capSvc.getUrlParameter(\"source\") !== false) {\r\n sourceParam = '&source=' + capSvc.getUrlParameter(\"source\")\r\n }\r\n if (window.location.origin.includes('localhost')) {\r\n window.location.href = window.location.origin + '/' + sessionStorage.getItem('brandId') + '/thank-you.html?jobId=' + sessionStorage.getItem('jobId') + sourceParam;\r\n } else{\r\n window.location.href = window.location.origin + '/jobs/' + sessionStorage.getItem('brandId') + '/thank-you?jobId=' + sessionStorage.getItem('jobId') + sourceParam;\r\n }\r\n },\r\n beforeSend: function (xhr) {\r\n xhr.setRequestHeader ('Authorization', 'Bearer 2IPs42mwzjHdK3p7NQdyayOUWMQQkgAozYRiAJkjJNqW768JDzlxF5dJE49ePupId7NsVz9TtItb6gWepgcgPDOc7vpI1IEMoGbwHcYgZ5835tjNdOiHG3L37hCMVQ63');\r\n xhr.setRequestHeader ('JwtAuthorization', sessionStorage.getItem('jwt'));\r\n xhr.setRequestHeader ('Origin', 'https://employeeworkplace.com');\r\n xhr.setRequestHeader ('UserControl', sessionStorage.getItem('jwt'));\r\n },\r\n error: function (textStatus, errorThrown){\r\n console.log(errorThrown)\r\n }\r\n })\r\n }\r\n})\r\n\r\nfor (const element of submitApplication) {\r\n element.addEventListener('focus', () => {\r\n element.setAttribute('style', 'transform: scale(1.3)')\r\n })\r\n element.addEventListener('blur', () => {\r\n element.removeAttribute('style', 'transform: scale(1.3)')\r\n })\r\n element.addEventListener('keyup', (event) => {\r\n if(event.code === 'Enter'){\r\n $('#submitApplication').click()\r\n }\r\n })\r\n}\r\n\r\nfunction returnToSearch(){\r\n window.location.href = window.location.origin + '/jobs/' + sessionStorage.getItem('brandId')\r\n}\r\n\r\nfunction duplicateWorkHistory(isNew,workHistory){\r\n //Boostrap from validation - duplicateWorkHistory reset form validation **begin\r\n// $('#submitApplication').prop('disabled',false)\r\n const formElement = document.querySelector(\"#applicationForm\")\r\n formElement.classList.remove(\"was-validated\");\r\n //Boostrap from validation - reset form validation **end\r\n\r\n var original = document.getElementById('previousEmployer-0');\r\n var clone = original.cloneNode(true); // \"deep\" clone\r\n clone.id = \"previousEmployer-\" + ++workCounter; // there can only be one element with an ID\r\n clone.children[1].children[1].children[0].id = \"removePreviousEmployer-\" + workCounter;\r\n if(isNew){\r\n clone.elements[\"whErecruitId\"].value = null\r\n clone.elements[\"companyName\"].value = ''\r\n clone.elements['jobTitle'].value = ''\r\n clone.elements['jobDescription'].value = ''\r\n //clone.elements['jobFrom'].value = ''\r\n clone.elements[\"jobFrom\"].id = \"jobFrom-\" + workCounter\r\n clone.elements[\"jobFrom-\" + workCounter].value = ''\r\n clone.elements[\"jobFrom-\" + workCounter].addEventListener('change', event => {\r\n validateFromDate(event)\r\n })\r\n clone.elements[\"jobFrom-\" + workCounter].nextElementSibling.id = 'jobFromMsg-' + workCounter\r\n // clone.elements['jobTo'].value = ''\r\n clone.elements[\"jobTo\"].id = \"jobTo-\" + workCounter\r\n clone.elements[\"jobTo-\" + workCounter].value = ''\r\n clone.elements[\"jobTo-\" + workCounter].addEventListener('change', event => {\r\n validateToDate(event)\r\n })\r\n clone.elements[\"jobTo-\" + workCounter].nextElementSibling.id = 'jobToMsg-' + workCounter\r\n for(var i = 0; i < clone.elements.length; i++){\r\n clone.elements[i].disabled = false\r\n }\r\n clone.children[1].children[1].style.display = \"block\"\r\n } else {\r\n clone.elements[\"whErecruitId\"].value = workHistory['whErecruitId'] !== undefined && workHistory['whErecruitId'] !== '' ? workHistory['whErecruitId'] : ''\r\n clone.elements[\"companyName\"].value = workHistory['companyName'] !== undefined && workHistory['companyName'] !== '' ? workHistory['companyName'] : ''\r\n clone.elements['jobTitle'].value = workHistory['jobTitle'] !== undefined && workHistory['jobTitle'] !== '' ? workHistory['jobTitle'] : ''\r\n clone.elements['jobDescription'].value = workHistory['jobDescription'] !== undefined && workHistory['jobDescription'] !== '' ? workHistory['jobDescription'] : ''\r\n clone.elements['jobFrom'].value = workHistory['startDate'] !== undefined && workHistory['startDate'] !== '' ? workHistory['startDate'] : ''\r\n clone.elements['jobTo'].value = workHistory['endDate'] !== undefined && workHistory['endDate'] !== '' ? workHistory['endDate'] : ''\r\n for(let i = 0; i < clone.elements.length; i++){\r\n clone.elements[i].disabled = true\r\n }\r\n clone.children[1].children[1].style.display = \"none\"\r\n }\r\n console.log(' whErecruitId: ' + clone.elements[\"whErecruitId\"].value)\r\n wrkHistory.push(clone.elements)\r\n document.getElementById('workHistoryBody').append(clone);\r\n $('#jobFromMsg-' + workCounter ).css('display', 'none');\r\n $('#jobToMsg-' + workCounter ).css('display', 'none');\r\n $(\"#jobFrom-\" + workCounter).removeClass(\"invalidJobDate\")\r\n $(\"#jobTo-\" + workCounter).removeClass(\"invalidJobDate\")\r\n\r\n const jobFroms = document.querySelectorAll(\"input[name='jobFrom']\")\r\n jobFroms.forEach((from ) =>{\r\n $(from).removeAttr('style')\r\n $(from).css('border-color', '#696969')\r\n $(from).css('background-image', '')\r\n })\r\n const jobTos = document.querySelectorAll(\"input[name='jobTo']\")\r\n jobTos.forEach((to ) =>{\r\n $(to).removeAttr('style')\r\n $(to).css('border-color', '#696969')\r\n $(to).css('background-image', '')\r\n })\r\n }\r\nfunction duplicateEducationHistory(isNew,eduHistory){\r\n //Boostrap from validation - duplicateEducationHistory reset form validation **begin\r\n const formElement = document.querySelector(\"#applicationForm\")\r\n formElement.classList.remove(\"was-validated\");\r\n //Boostrap from validation - reset form validation **end\r\n\r\n var original = document.getElementById('previousEducation-0');\r\n var clone = original.cloneNode(true); // \"deep\" clone\r\n clone.id = \"previousEducation-\" + ++educationCounter; // there can only be one element with an ID\r\n clone.children[1].children[1].children[0].id = \"removePreviousEducation-\" + educationCounter;\r\n if(isNew){\r\n clone.elements[\"edErecruitId\"].value = null\r\n clone.elements['educationLevel'].value = ''\r\n clone.elements[\"schoolName\"].value = ''\r\n clone.elements['courseOfStudy'].value = ''\r\n clone.elements['yearsCompleted'].value = ''\r\n for(var i = 0; i < clone.elements.length; i++){\r\n clone.elements[i].disabled = false\r\n }\r\n clone.children[1].children[1].style.display = \"block\"\r\n } else {\r\n clone.elements[\"edErecruitId\"].value = eduHistory['edErecruitId'] !== undefined && eduHistory['edErecruitId'] !== '' ? eduHistory['edErecruitId'] : ''\r\n clone.elements['educationLevel'].value = eduHistory['educationLevelId'] !== undefined && eduHistory['educationLevelId'] !== '' ? eduHistory['educationLevelId'] : ''\r\n clone.elements[\"schoolName\"].value = eduHistory['schoolName'] !== undefined && eduHistory['schoolName'] !== '' ? eduHistory['schoolName'] : ''\r\n clone.elements['courseOfStudy'].value = eduHistory['courseOfStudy'] !== undefined && eduHistory['courseOfStudy'] !== '' ? eduHistory['courseOfStudy'] : ''\r\n clone.elements['yearsCompleted'].value = eduHistory['yearsCompleted'] !== undefined && eduHistory['yearsCompleted'] !== '' ? eduHistory['yearsCompleted'] : ''\r\n clone.children[1].children[1].style.display = \"none\"\r\n }\r\n console.log(' edErecruitId: ' + clone.elements[\"edErecruitId\"].value)\r\n educationHistory.push(clone.elements);\r\n document.getElementById('educationHistoryBody').append(clone);\r\n\r\n const jobFroms = document.querySelectorAll(\"input[name='jobFrom']\")\r\n jobFroms.forEach((from ) =>{\r\n $(from).removeAttr('style')\r\n $(from).css('border-color', '#696969')\r\n $(from).css('background-image', '')\r\n })\r\n const jobTos = document.querySelectorAll(\"input[name='jobTo']\")\r\n jobTos.forEach((to ) =>{\r\n $(to).removeAttr('style')\r\n $(to).css('border-color', '#696969')\r\n $(to).css('background-image', '')\r\n })\r\n}\r\n\r\nfunction deleteWorkClone(event){\r\n var index = event.currentTarget.id.split('-')[1]\r\n var wrkItem = document.getElementById('previousEmployer-' + index)\r\n wrkItem.remove();\r\n wrkHistory.splice(index,1)\r\n}\r\n\r\nfunction deleteSchoolClone(event){\r\n var index = event.currentTarget.id.split('-')[1]\r\n var edItem = document.getElementById('previousEducation-' + index)\r\n edItem.remove();\r\n educationHistory.splice(index, 1)\r\n}\r\n\r\nfunction validate(event){\r\n if(event.currentTarget.value !== ''){\r\n // if (event.currentTarget.id === 'jobFrom' || event.currentTarget.id === 'jobTo'){\r\n if (event.currentTarget.id.includes('jobFrom') || event.currentTarget.id.includes('jobTo')){\r\n var curchr = event.currentTarget.value.length;\r\n var curval = event.currentTarget.value;\r\n console.log('curchr ' + curchr)\r\n console.log('curval ' + curval)\r\n if (curchr === 2 && event.key !== 'Backspace') {\r\n if(curval.at(1) === '/'){\r\n curval = 0 + curval.at(0)\r\n event.currentTarget.value = curval + \"/\";\r\n }\r\n else\r\n {\r\n event.currentTarget.value = curval + \"/\";\r\n }\r\n }\r\n }\r\n }else{\r\n if (event.type !== 'keyup'){\r\n // event.currentTarget.setAttribute('style', 'background: pink')\r\n }\r\n }\r\n}\r\n\r\n$('#jobFrom').change(function (event) {\r\n validateFromDate(event)\r\n});\r\n\r\n$('#jobTo').change(function (event) {\r\n validateToDate(event)\r\n});\r\n\r\nfunction validateFromDate(event){\r\n let fromDate = event.currentTarget.value\r\n let fromDateId = event.currentTarget.id\r\n let $fromDate = $('#' + fromDateId)\r\n let $jobFromMsg, $jobToMsg, $toDate, toDate\r\n let idx = fromDateId.indexOf(\"-\")\r\n if (idx > 0) {\r\n idx = fromDateId.substring(idx + 1)\r\n $jobFromMsg = $('#jobFromMsg-' + idx)\r\n $jobToMsg = $('#jobToMsg-' + idx)\r\n $toDate = $('#jobTo-' + idx)\r\n }else{\r\n $jobFromMsg = $('#jobFromMsg')\r\n $jobToMsg = $('#jobToMsg')\r\n $toDate = $('#jobTo')\r\n }\r\n toDate = $toDate.val()\r\n if (fromDate !== '') {\r\n let retCode = validateJobDate($fromDate)\r\n if (retCode === 0) {\r\n if (toDate !== '' && validateJobDate($toDate) === 0) {\r\n if (compareJobDates(fromDate, toDate)) {\r\n $jobFromMsg.css('display', 'none');\r\n $jobToMsg.css('display', 'none');\r\n $fromDate.removeClass('invalidJobDate')\r\n $toDate.removeClass('invalidJobDate')\r\n if ($(\"#applicationForm\").hasClass(\"was-validated\")) {\r\n $fromDate.css('border-color', 'rgb(13, 110, 253)');\r\n $fromDate.css('background-image', \"url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\\\")\")\r\n $toDate.css('border-color', 'rgb(13, 110, 253)');\r\n $toDate.css('background-image', \"url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\\\")\")\r\n $toDate.css('box-shadow', '');\r\n }\r\n }else {\r\n $jobFromMsg.text('From date is greater than to date')\r\n $jobFromMsg.css(\"display\", \"block\")\r\n $fromDate.addClass('invalidJobDate')\r\n if ($(\"#applicationForm\").hasClass(\"was-validated\")) {\r\n $fromDate.css('border-color', '#dc3545')\r\n $fromDate.css('background-image', \"url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5' /%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z' /%3e%3ccircle cx='6' cy='8.2' r='.6' stroke='none' fill='%23dc3545' /%3e%3c/svg%3e\\\")\")\r\n }\r\n }\r\n }\r\n if (!$fromDate.hasClass(\"invalidJobDate\")) {\r\n $jobFromMsg.css('display', 'none');\r\n if ($(\"#applicationForm\").hasClass(\"was-validated\")) {\r\n $fromDate.removeAttr('style')\r\n $fromDate.css('border-color', 'rgb(13, 110, 253)');\r\n $fromDate.css('background-image', \"url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\\\")\")\r\n }\r\n }\r\n } else {\r\n if ($(\"#applicationForm\").hasClass(\"was-validated\")) {\r\n $fromDate.css('border-color', '#dc3545')\r\n $fromDate.css('background-image', \"url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5' /%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z' /%3e%3ccircle cx='6' cy='8.2' r='.6' stroke='none' fill='%23dc3545' /%3e%3c/svg%3e\\\")\")\r\n }\r\n $jobFromMsg.text('Invalid from date')\r\n if (retCode === 2)\r\n $jobFromMsg.text('From date is greater than current date')\r\n $jobFromMsg.css(\"display\", \"block\")\r\n event.currentTarget.select();\r\n }\r\n } else {\r\n $jobFromMsg.text('Please enter from date')\r\n $jobFromMsg.css(\"display\", \"block\")\r\n }\r\n}\r\n\r\nfunction validateToDate(event) {\r\n let toDate = event.currentTarget.value\r\n let toDateId = event.currentTarget.id\r\n let $toDate = $('#' + toDateId)\r\n let $jobFromMsg, $jobToMsg, $fromDate, fromDate\r\n let idx = toDateId.indexOf(\"-\")\r\n if (idx > 0) {\r\n idx = toDateId.substring(idx + 1)\r\n $jobFromMsg = $('#jobFromMsg-' + idx)\r\n $jobToMsg = $('#jobToMsg-' + idx)\r\n $fromDate = $('#jobFrom-' + idx)\r\n }else{\r\n $jobFromMsg = $('#jobFromMsg')\r\n $jobToMsg = $('#jobToMsg')\r\n $fromDate = $('#jobFrom')\r\n }\r\n fromDate = $fromDate.val()\r\n if (toDate !== '') {\r\n let retCode = validateJobDate($toDate)\r\n if (retCode === 0) {\r\n if (fromDate !== '' && validateJobDate($fromDate) === 0) {\r\n if (compareJobDates(fromDate, toDate)) {\r\n $jobToMsg.css('display', 'none');\r\n $toDate.removeClass('invalidJobDate')\r\n if (validateJobDate($fromDate) === 0) {\r\n $jobFromMsg.css('display', 'none');\r\n $fromDate.removeClass('invalidJobDate')\r\n }\r\n if ($(\"#applicationForm\").hasClass(\"was-validated\")) {\r\n $toDate.css('border-color', 'rgb(13, 110, 253)');\r\n $toDate.css('background-image', \"url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\\\")\")\r\n $fromDate.css('border-color', 'rgb(13, 110, 253)');\r\n $fromDate.css('background-image', \"url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\\\")\")\r\n $fromDate.css('box-shadow', '');\r\n }\r\n } else {\r\n $jobToMsg.text('To date is less than from date')\r\n $jobToMsg.css(\"display\", \"block\")\r\n $toDate.addClass('invalidJobDate')\r\n if (document.querySelector(\"#applicationForm\").classList.contains(\"was-validated\")) {\r\n $toDate.css('border-color', '#dc3545')\r\n $toDate.css('background-image', \"url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5' /%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z' /%3e%3ccircle cx='6' cy='8.2' r='.6' stroke='none' fill='%23dc3545' /%3e%3c/svg%3e\\\")\")\r\n }\r\n }\r\n }\r\n if (!$toDate.hasClass(\"invalidJobDate\")) {\r\n $jobToMsg.css('display', 'none');\r\n if ($(\"#applicationForm\").hasClass(\"was-validated\")) {\r\n $toDate.removeAttr('style')\r\n $toDate.css('border-color', 'rgb(13, 110, 253)');\r\n $toDate.css('background-image', \"url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\\\")\")\r\n }\r\n }\r\n } else {\r\n if ($(\"#applicationForm\").hasClass(\"was-validated\")) {\r\n $toDate.css('border-color', '#dc3545')\r\n $toDate.css('background-image', \"url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5' /%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z' /%3e%3ccircle cx='6' cy='8.2' r='.6' stroke='none' fill='%23dc3545' /%3e%3c/svg%3e\\\")\")\r\n }\r\n $jobToMsg.text('Invalid to date')\r\n if (retCode === 2)\r\n $jobToMsg.text('To date is greater than current date')\r\n $jobToMsg.css(\"display\", \"block\")\r\n event.currentTarget.select();\r\n }\r\n } else {\r\n $jobToMsg.text('Please enter to date')\r\n $jobToMsg.css(\"display\", \"block\")\r\n }\r\n}\r\n\r\nfunction validateJobDate($jobDate){\r\n let jobDate = $jobDate.val()\r\n let pattern = $('#jobFrom').attr(\"pattern\")\r\n let regex = new RegExp(pattern)\r\n if (!regex.test(jobDate))\r\n return 1\r\n let jobMonthYear = jobDate.split(\"/\")\r\n let jobMonth = Number(jobMonthYear[0])\r\n let jobYear = Number(jobMonthYear[1])\r\n let currDate = new Date();\r\n let currMonth = currDate.getMonth() + 1\r\n let currYear = currDate.getFullYear()\r\n if ((jobYear === currYear && (jobMonth > currMonth)) || (jobYear > currYear)) {\r\n $jobDate.addClass('invalidJobDate')\r\n return 2\r\n }\r\n else {\r\n $jobDate.removeClass('invalidJobDate')\r\n return 0\r\n }\r\n}\r\nfunction compareJobDates(fromDate, toDate){\r\n let fromMonthYear = fromDate.split(\"/\")\r\n let fromMonth = Number(fromMonthYear[0])\r\n let fromYear = Number(fromMonthYear[1])\r\n let toMonthYear = toDate.split(\"/\")\r\n let toMonth = Number(toMonthYear[0])\r\n let toYear = Number(toMonthYear[1])\r\n if ((fromYear === toYear && (fromMonth > toMonth)) || (fromYear > toYear))\r\n return false\r\n else\r\n return true\r\n}\r\n\r\nfunction checkEligibilityInput(event){\r\n if ( $('#noUsAuthorized').is(\":checked\")){\r\n $('#authorizedWarning').show();\r\n } else {\r\n $('#authorizedWarning').hide();\r\n }\r\n if($(\"input[name='ageVerification-radio-group']:checked\").val() !== undefined\r\n // && $(\"input[name='usAuthorizationVerification-radio-group2']:checked\").val() !== undefined\r\n && $(\"#UsAuthorized\").is(\":checked\")\r\n && $('#emailAddress')[0].validity.valid){\r\n $(\"#part1Continue\").prop('disabled',false);\r\n } else {\r\n $(\"#part1Continue\").prop('disabled',true);\r\n }\r\n\r\n if ($(\"#eligibilityMsg\").is(\":visible\") && $('#emailAddress')[0].validity.valid) {\r\n $('#eligibilityMsg').text('')\r\n $('#eligibilityMsg').hide();\r\n $('#emailAddress').css('background-color', 'white')\r\n }\r\n}\r\ndocument.addEventListener(\"keypress\", function(event) {\r\n if (event.key === \"Enter\") {\r\n event.preventDefault();\r\n }\r\n});\r\n\r\nfunction showSponsorshipInfo() {\r\n $(\"#sponsorshipInfo\").modal(\"show\");\r\n};\r\nfunction hideSponsorshipInfo() {\r\n $(\"#sponsorshipInfo\").modal(\"hide\");\r\n};\r\n"],"file":"apply.js"}