var w_be87dc5aa55144d0bbd3102ddfb80cec_in_widgetHtml=String.raw`
Grazie per la sua candidatura e per il suo interesse per la nostra azienda.
Con la presente confermiamo la ricezione della sua domanda. La preghiamo di comprendere che abbiamo bisogno di un po' di tempo per l'elaborazione. Dopo aver controllato i suoi documenti, la ricontatteremo.
Qualcosa non ha funzionato
La preghiamo di riprovare.
Trascina il cursore verso destra per spostare il cuscino nel posto giusto
Trascina il cursore verso destra per spostare il cuscino nel posto giusto
`;
var w_be87dc5aa55144d0bbd3102ddfb80cec_in_widgetCss=String.raw`/* GLOBAL */
* {
font-family: 'ff-meta-web-pro' !important;
}
/* CAPTCHA */
#captchaSlider {
max-width: 462px;
touch-action: none;
}
#captcha-img-container {
position: relative;
margin: 10px 10px 0 10px;
}
#captcha-icon {
position: absolute;
top: 65px;
}
input, select {
background: inherit;
}
select:focus, input:focus {
background: inherit;
}
.form-input {
padding: 0;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
.form-inline-input {
display: inline-block;
border: none;
width: 40px;
-moz-appearance: textfield;
margin: 0;
padding: 0;
}
.form-inline-input:focus {
border: none;
outline: none;
margin: 0;
padding: 0;
}
input[type=number] {
-moz-appearance: textfield;
}
#captcha-popup-overlay {
position: fixed;
top: 0;
left: 0;
visibility: collapse;
background: rgba(255, 255, 255, 0.75);
width: 100%;
height: 100%;
z-index: 1337;
align-items: center;
display: flex;
justify-content: center
}
#captcha-popup-overlay.show {
visibility: visible;
animation: fadeIn 0.5s;
}
#captcha-popup-overlay.show #captcha-popup {
animation: fadeIn 0.5s;
}
#captcha-popup {
background: #F5F1E6;
box-shadow: rgba(0, 0, 0, 0.5) 0 3px 8px;
width: calc(462px + 20px);
transform: scale(0.7);
scroll-margin-top: 150px;
scroll-snap-margin-top: 150px;
}
h3 {
padding: 10px;
margin: 0;
background-color: #4d718e;
color: #eee;
}
/* FORM */
.checkbox {
display: flex;
flex-direction: row;
user-select: none;
}
#form-container, #success-container, #failure-container {
background: #F5F1E6;
padding: 10px;
margin: auto;
}
#success-container, #failure-container {
text-align: center;
}
#form {
background: #F5F1E6;
}
#file-drop {
background-color: #f7f7f7;
border: 2px dashed #ced4da;
border-radius: 6px;
box-sizing: border-box;
color: #212529;
cursor: pointer;
font-family: Poppins, sans-serif;
font-size: 14px;
line-height: 27px !important;
text-align: center;
padding: 50px;
min-height: 175px;
height: calc(100% - 0.7em);
margin-top: 0.7em;
}
#file-drop:hover {
border-color: black;
}
#file-drop.dragHover {
border-color: #4d718e;
}
#file-drop.invalid {
border-color: red;
}
#file-drop span {
user-select: none
}
.file-preview {
line-height: normal;
width: 96px;
display: inline-block;
position: relative;
}
.file-preview > span {
display: inline-block;
width: 96px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.file-preview.targeted div {
background: black !important;
}
.file-preview.targeted div:before {
content: "X";
}
.file-preview.targeted div > span {
display: none;
}
@media (hover: hover) {
.file-preview:hover div {
background: black !important;
}
.file-preview:hover div:before {
content: "X";
}
.file-preview:hover div > span {
display: none;
}
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.form-header {
font-weight: bold;
color: #4B5563;
margin-top: 20px;
}
@media only screen and (min-width: 768px) {
.grid {
grid-template-columns: repeat( 4, 1fr);
}
.form-header {
grid-column: span 4;
}
.colspan-6 {
grid-column: span 6;
}
.colspan-5 {
grid-column: span 5;
}
.colspan-4 {
grid-column: span 4;
}
.colspan-3 {
grid-column: span 3;
}
.colspan-2 {
grid-column: span 2;
}
.colspan-1 {
grid-column: span 1;
}
#captcha-popup {
transform: none;
}
}
.grid {
display: grid;
gap: 10px 20px;
background: #F5F1E6;
}
#message-field {
resize: none;
min-height: 175px !important;
}
.form-control {
display: flex;
flex-direction: column;
background: #F5F1E6;
}
/* Chrome autofill color nonsense */
input:-webkit-autofill {
color: inherit !important;
-webkit-box-shadow: 0 0 0 50px white inset !important;
}
.form-control > .form-input.dirty.invalid:not(:focus-within),
.form-control > .form-input.dirty.fixed.invalid:focus,
input[type=checkbox].invalid {
border-color: red;
animation: borderChange 0.5s;
}
@keyframes borderChange {
0% {
border-color: red;
}
50% {
border-color: #ff000040;
}
100% {
border-color: red;
}
}
input[type=checkbox] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
border: 1px solid #bbb;
width: 1em !important;
height: 1em !important;
margin: 0;
padding: 0;
font-size: 1em;
color: #4d718e;
font-weight: bold;
outline: none;
}
input[type=checkbox]:hover {
background-color: #eee;
}
input[type=checkbox]:focus {
border-color: #4d718e;
}
input[type=checkbox]:checked:after {
content: "\2713";
line-height: 1em;
font-size: 1em;
position: absolute;
}
input[type="date"] {
-webkit-appearance: none;
}
.form-control > label {
margin-left: 10px;
font-size: 0.9em;
background: #F5F1E6 !important;
}
.form-control > label > .form-label {
font-weight: normal;
padding: 0 10px;
position: relative;
background: #F5F1E6 !important;
color: #666666;
user-select: none;
}
.form-control > .form-input, .form-control > select, .form-control > textarea {
margin-top: -0.7em;
padding: 10px;
font-size: 1em;
line-height: 1em;
border: 1px solid #666666;
border-radius: 16px;
}
.form-control:focus-within > .form-input, .form-control:focus-within > select, .form-control:focus-within > textarea {
border-color: #4d718e;
color: #495057;
outline: 0;
}
.form-control:focus-within .form-label, .link {
color: #4d718e;
}
.slider {
-webkit-appearance: none;
background: transparent !important;
outline: none;
margin: 0;
padding: 0;
overflow: hidden;
position: relative;
z-index: 42;
}
.slider, .slider-track {
height: 50px;
width: 100%;
}
.slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 50px;
height: 50px;
background-color: #4d718e;
background-image: url("data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20width%3D%2250%22%20height%3D%2250%22%20version%3D%221.1%22%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%20%3Cpath%20d%3D%22m12.293%207.293a0.999%200.999%200%200%200%200%201.414l2.293%202.293h-7.586a1%201%200%200%200%200%202h7.586l-2.293%202.293a0.99985%200.99985%200%201%200%201.414%201.414l4.707-4.707-4.707-4.707a0.999%200.999%200%200%200-1.414%200z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E");
cursor: pointer;
}
.slider::-moz-range-thumb {
width: 50px;
height: 50px;
background-color: #4d718e;
background-image: url("data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20width%3D%2250%22%20height%3D%2250%22%20version%3D%221.1%22%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%20%3Cpath%20d%3D%22m12.293%207.293a0.999%200.999%200%200%200%200%201.414l2.293%202.293h-7.586a1%201%200%200%200%200%202h7.586l-2.293%202.293a0.99985%200.99985%200%201%200%201.414%201.414l4.707-4.707-4.707-4.707a0.999%200.999%200%200%200-1.414%200z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E");
cursor: pointer;
}
.slider-track {
position: absolute;
left: 0;
top: 0;
background-color: #d3d3d3;
}
.slider-wrapper {
position: relative;
margin: 0 10px;
}
#captcha-slider-info {
display: inline-block;
width: calc(100% - 50px);
line-height: 50px;
text-align: center;
padding-left: 50px;
font-size: 11px;
overflow: hidden;
}
.btn.primary {
background-color: #4d718e;
color: white;
border: 1px solid transparent;
margin: auto;
display: block;
}
.btn:disabled {
border-color: #ddd;
color: #ddd;
}
.btn {
background-color: transparent;
border: 1px solid #4d718e;
color: #4d718e;
box-sizing: border-box;
cursor: pointer;
display: inline-block;
font-family: metaplus-normal-webfont;
font-size: 18px;
font-weight: 400;
line-height: 27px;
margin: 0;
overflow: visible;
padding: 0.375em 0.75em;
padding-left: 20px;
padding-right: 20px;
scroll-behavior: auto;
text-align: center;
text-transform: none;
transition: color 0.15s ease-in-out 0s, background-color 0.15s ease-in-out 0s, border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s;
user-select: none;
vertical-align: middle;
position: relative;
border-radius: 16px !important;
}
.btn:focus {
box-shadow: #4d718e 40 0 0 0 0.2em;
outline: 0;
}
btn:hover {
background-color: white;
border-color: #4d718e;
color: #4d718e;
text-decoration: none;
}
.btn:disabled {
cursor: pointer;
opacity: 0.65;
}
@media (prefers-reduced-motion: reduce) {
#submit-button, .form-control {
transition: none 0s ease 0s;
}
}
#confirm-captcha-button:not(:hover):not(:disabled) {
animation: pulse 2s infinite;
}
input::placeholder {
color: #ddd;
}
.form-control .msg {
color: red;
height: 1em;
}
.form-control .msg:empty {
}
.success-header {
color: #4d718e;
}
.parent-disabled {
pointer-events: none;
opacity: 0.4;
}
h2 {
font-weight: normal;
}
.failure-header {
color: crimson;
}
.success-text, .failure-text {
margin-bottom: 10px;
}
.spinner {
}
.spinner::after {
content: '';
box-sizing: border-box;
width: 40px;
height: 40px;
position: absolute;
top: calc(50% - 20px);
left: calc(50% - 20px);
border-radius: 50%;
border-top: 4px solid #4d718e;
border-left: 4px solid #4d718e;
border-bottom: 4px solid #4d718e;
border-right: 4px solid rgba(255, 255, 255, 0.0);
animation: spinner .6s linear infinite;
}
@keyframes spinner {
to {
transform: rotate(360deg);
}
}
.disp-none {
display: none;
}
.disp-block {
display: block;
}
.disp-inline {
display: inline;
}
.disp-inline-block {
display: inline-block;
}
textarea {
background: inherit;
}
option {
padding: 5px 0;
}
@keyframes pulse {
0% {
transform: scale(0.95);
box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.7);
}
70% {
transform: scale(1);
box-shadow: 0 0 0 10px rgba(0, 0, 0, 0);
}
100% {
transform: scale(0.95);
box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
}
}
/* OVERRIDES */
#submit-button { width: 100%; border-radius: 20px !important; }
#submit-button:hover { filter: brightness(1.25); opacity: 1 }
.success-header { font-size: 28px; }
.grid{ gap: 15px 20px !important; }
#file-drop {
background: #E3D4B5;
border-color: rgb(172, 152, 108);
border-radius: 16px;
margin: 0;
height: 100%;
}
#message-field {
height: 100% !important;
}
#file-drop:hover {
border-color: rgb(172, 152, 108);
}
@media only screen and (max-width: 767px) {
.grid > div:not(.form-control):not(.form-header) {
display: none;
}
}
.form-control > .form-input.dirty.invalid:not(:focus-within),
.form-control > .form-input.dirty.fixed.invalid:focus,
input[type=checkbox].invalid { border-color: rgb(227, 18, 49); }
.form-control .msg { color: rgb(227, 18, 49); }
select {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20' %3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E") !important;
background-position: right 0.5rem center !important;
background-repeat: no-repeat !important;
background-size: 1.5em 1.5em !important;
padding-right: 2.5rem !important;
-webkit-print-color-adjust: exact !important;
print-color-adjust: exact !important;
appearance: none;
cursor: pointer;
}
#privacy-policy { border-radius: 5px; border-width: 1px; }
input[for='privacy-policy'] { font-size: 16px !important; }
* { font: 18px ff-meta-web-pro, sans serif; }
input:-webkit-autofill {
background-color: #fff !important;
box-shadow: 0 0 0 50px #fff inset !important;
}
/* nativen Platzhalter nur bei Fokus zeigen (sonst Konflikt mit Label) */
.form-input::placeholder { color: transparent; opacity: 1; }
.form-control:focus-within .form-input::placeholder { color: darkgray; opacity: 1; }
/* ===== Floating Labels: Label bleibt IM Feld ===== */
.form-control:not(:has(input[type=checkbox])) > .form-input,
.form-control:not(:has(input[type=checkbox])) > select,
.form-control:not(:has(input[type=checkbox])) > textarea {
margin-top: 0;
border-color: #4b5563;
box-sizing: border-box;
min-height: 54px;
padding-top: 22px;
padding-bottom: 6px;
}
/* Fokus: Rahmen wieder auf Primary (hoehere Spezifitaet als Basis-Regel) */
.form-control:focus-within:not(:has(input[type=checkbox])) > .form-input,
.form-control:focus-within:not(:has(input[type=checkbox])) > select,
.form-control:focus-within:not(:has(input[type=checkbox])) > textarea {
border-color: #4d718e;
}
.form-control:not(:has(input[type=checkbox])) {
position: relative;
}
.form-control:not(:has(input[type=checkbox])) > label {
position: absolute;
left: 0;
top: 0;
margin: 0 !important;
padding-top: 18px;
pointer-events: none;
max-width: 100%;
background: transparent !important;
transition: all .15s ease-out;
z-index: 1;
}
.form-control:not(:has(input[type=checkbox])) > label > .form-label {
padding: 0 10px;
background: transparent !important;
color: #4B5563;
font-size: 1em;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
transition: all .15s ease-out;
}
/* hoch (im Feld bleiben): bei Wert oder Fokus */
.form-control.label-up:not(:has(input[type=checkbox])) > label,
.form-control:focus-within:not(:has(input[type=checkbox])) > label {
padding-top: 0px;
}
.form-control.label-up:not(:has(input[type=checkbox])) > label > .form-label,
.form-control:focus-within:not(:has(input[type=checkbox])) > label > .form-label {
font-size: 0.72em;
color: #4B5563;
}`;
var w_be87dc5aa55144d0bbd3102ddfb80cec_in_widgetJs=String.raw`var w_be87dc5aa55144d0bbd3102ddfb80cec_scope = {};
w_be87dc5aa55144d0bbd3102ddfb80cec_scope._construct = function ()
{
var id;
var shadowRoot = w_be87dc5aa55144d0bbd3102ddfb80cec_shadowRoot;
var countryInput = shadowRoot.getElementById("country-input");
var locationInput = shadowRoot.getElementById("location-input");
var countryCodeInput = shadowRoot.getElementById("country-code-input");
var zipcodeInput = shadowRoot.getElementById("zipcode-input");
var phoneInput = shadowRoot.getElementById("phone-input");
var emailInput = shadowRoot.getElementById("email-input");
var fileInput = shadowRoot.getElementById("file-input");
var fileDrop = shadowRoot.getElementById("file-drop");
var messageInput = shadowRoot.getElementById("message-field");
var streetInput = shadowRoot.getElementById("street-input");
var captchaSlider = shadowRoot.getElementById("captchaSlider");
var captchaSliderTrack = shadowRoot.getElementById("captcha-slider-track");
var captchaSliderInfo = shadowRoot.getElementById("captcha-slider-info");
var captchaPopup = shadowRoot.getElementById("captcha-popup");
var captchaIcon = shadowRoot.getElementById("captcha-icon");
var captchaImg = shadowRoot.getElementById("captcha-img");
var reloadButton = shadowRoot.getElementById("reload-captcha-button");
var confirmButton = shadowRoot.getElementById("confirm-captcha-button");
var overlay = shadowRoot.getElementById("captcha-popup-overlay");
var submitButton = shadowRoot.getElementById("submit-button");
var bdContainer = shadowRoot.getElementById("birthdate-container");
var bdDay = shadowRoot.getElementById("birthdate-day");
var bdMonth = shadowRoot.getElementById("birthdate-month");
var bdYear = shadowRoot.getElementById("birthdate-year");
var dragStartX = 0;
var primaryColor = "#4d718e";
var allFiles = [];
var form = shadowRoot.getElementById("form");
form.addEventListener("submit", (event) =>
{
event.preventDefault();
return false;
});
overlay.addEventListener("click", hideCaptcha);
captchaPopup.addEventListener("click", e => e.stopPropagation());
captchaSlider.addEventListener("input", e => updateIcon(captchaSlider.value));
captchaSlider.addEventListener("change", e => confirmButton.disabled = false);
reloadButton.addEventListener("click", refreshCaptcha);
confirmButton.addEventListener("click", submit);
submitButton.addEventListener("click", () =>
{
trySubmit();
});
captchaIcon.addEventListener("dragstart", e =>
{
dragStartX = e.offsetX;
});
captchaImg.addEventListener("dragover", e => e.preventDefault());
captchaImg.addEventListener("drop", e =>
{
e.preventDefault();
var val = e.offsetX - dragStartX;
captchaSlider.value = val;
updateIcon(val);
confirmButton.disabled = false;
});
bdContainer?.addEventListener("click", e => birthdateClicked(e));
bdDay?.addEventListener("input", e => birthdatePartChanged(bdDay));
bdMonth?.addEventListener("input", e => birthdatePartChanged(bdMonth));
bdYear?.addEventListener("input", e => birthdatePartChanged(bdYear));
zipcodeInput?.addEventListener("change", guessCountry);
locationInput?.addEventListener("change", guessCountry);
countryInput?.addEventListener("change", e => updateCountry(countryInput.value));
countryCodeInput?.addEventListener("change", validatePhone);
countryCodeInput?.addEventListener("change", e => phoneInput.placeholder = phonePlaceholder());
phoneInput?.addEventListener("change", validatePhone);
fileInput?.addEventListener("input", fileInputChanged);
fileDrop?.addEventListener("click", openFileDialog);
fileDrop?.addEventListener("drop", e => drop(e));
fileDrop?.addEventListener("dragover", e => allowDrop(e));
fileDrop?.addEventListener("dragleave", e => dragEnd(e));
var valMap = {};function valMap_add(name, val){if(!valMap[name]){valMap[name] = [];} valMap[name].push(val); };valMap_add('firstname', val => val && val !== -1 && val.length > 0);valMap_add('firstname', val => typeof(val) === 'string' ? val.length <= 128 : val <= 128);valMap_add('lastname', val => val && val !== -1 && val.length > 0);valMap_add('lastname', val => typeof(val) === 'string' ? val.length <= 128 : val <= 128);valMap_add('salutation', val => val && val !== -1 && val.length > 0);valMap_add('title', val => typeof(val) === 'string' ? val.length <= 128 : val <= 128);valMap_add('street', val => typeof(val) === 'string' ? val.length <= 256 : val <= 256);valMap_add('zipcode', val => val && val !== -1 && val.length > 0);valMap_add('zipcode', val => typeof(val) === 'string' ? val.length <= 16 : val <= 16);valMap_add('location', val => typeof(val) === 'string' ? val.length <= 128 : val <= 128);valMap_add('country', val => val && val !== -1 && val.length > 0);valMap_add('countrycode', val => typeof(val) === 'string' ? val.length <= 8 : val <= 8);valMap_add('countrycode', val => val && val !== -1 && val.length > 0);valMap_add('phone', val => val && val !== -1 && val.length > 0);valMap_add('phone', val => typeof(val) === 'string' ? val.length <= 64 : val <= 64);valMap_add('email', val => val && val !== -1 && val.length > 0);valMap_add('email', val => /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(val));valMap_add('availability', val => typeof(val) === 'string' ? val.length <= 1024 : val <= 1024);valMap_add('acceptedprivacypolicy', (val, obj) => obj.checked);
function attachValidation()
{
var inputs = shadowRoot.querySelectorAll(".form-input");
for (var i = 0; i < inputs.length; i++)
{
const j = i;
var name = inputs[j].name?.toLowerCase();
if (!name) continue;
inputs[j].addEventListener("input", ev => addClass(inputs[j], "dirty"));
inputs[j].addEventListener("change", ev => addClass(inputs[j], "fixed"));
if (inputs[j].type === 'date')
{
// inputs[i].addEventListener("blur", ev => addClass(inputs[j], "fixed"));
}
const validators = valMap[name];
if (validators)
{
inputs[j].addEventListener("input", () =>
{
var valid = true;
validators.forEach((v, i, a) =>
{
var res = v(inputs[j].value, inputs[j]);
valid = valid && res;
});
setValidity(inputs[j], valid);
});
} else
{
inputs[j].addEventListener("input", () => { setValidity(inputs[j], true); });
}
}
}
async function loadCaptcha()
{
let idRes = await fetch("https://jobportal.wenatex.com/public/captcha/new");
if (idRes.status == 429)
{
setMessage(captchaSlider, "Troppi tentativi sbagliati, riprovare tra un minuto");
return;
}
id = await idRes.text();
let response = await fetch("https://jobportal.wenatex.com/public/captcha/request/" + id,
{
method: "get"
}
);
if (response.status == 429)
{
setMessage(captchaSlider, "Troppi tentativi sbagliati, riprovare tra un minuto");
return;
}
var icon = shadowRoot.getElementById("captcha-icon");
icon.style.left = 0;
captchaSlider.value = 0;
reloadButton.disabled = true;
let blob = await response.blob();
shadowRoot.getElementById("captcha-img").src = URL.createObjectURL(blob);
setTimeout(() => reloadButton.disabled = false, 1337);
confirmButton.disabled = true;
}
function hideCaptcha()
{
removeClass(shadowRoot.getElementById("captcha-popup-overlay"), "show");
}
async function showCaptcha()
{
await loadCaptcha();
shadowRoot.getElementById("captcha-popup-overlay").classList.toggle("show");
shadowRoot.getElementById("captcha-popup").scrollIntoView();
}
function trySubmit()
{
addClass(shadowRoot.getElementById("birthdate-container"), "fixed");
addClass(shadowRoot.getElementById("birthdate-container"), "dirty");
var inputs = shadowRoot.querySelectorAll(".form-input");
var allValid = true;
inputs.forEach((v, i, a) =>
{
v.dispatchEvent(new Event("input", { bubbles: true }));
v.dispatchEvent(new Event("change", { bubbles: true }));
if (v.classList.contains("invalid"))
{
allValid = false;
}
});
if (allValid)
{
showCaptcha();
} else
{
var jumpId = "bewerben";
if (jumpId)
{
document.getElementById(jumpId).scrollIntoView();
}
}
}
async function refreshCaptcha()
{
await loadCaptcha();
updateIcon(0);
}
async function submit()
{
shadowRoot.getElementById("captcha-value").value = +captchaSlider.value + captchaIcon.width / 2;
shadowRoot.getElementById("captcha-id").value = id;
display(captchaPopup, "none");
var data = new FormData(form);
allFiles.forEach(file => data.append("Files", file, file.name))
data.set("JobId", 2073);
var response = await fetch("https://jobportal.wenatex.com/public/widget/form/submit",
{
method: "POST",
body: data
});
if (response.status == 429)
{
setMessage(captchaSlider, "Troppi tentativi sbagliati, riprovare tra un minuto");
return;
}
var invalids = await response.json();
if (invalids.includes("Captcha"))
{
setMessage(captchaSlider, "Si prega di riprovare");
await refreshCaptcha();
} else
{
hideCaptcha();
}
display(captchaPopup, "block");
if (invalids.length === 0)
{
shadowRoot.getElementById("success-container").style.display = "block";
shadowRoot.getElementById("form-container").style.display = "none";
try
{
dataLayer?.push({
'attachement': allFiles.length > 0 ? '#yes#' : '#no#', // OPTIONAL ... yes; no, pdf, zip ...
'event': 'contact-thx' // REQUIRED
});
} catch (e)
{
if (e.name == "ReferenceError")
{
console.log("no dataLayer is declared");
}
}
return;
} else if (invalids.includes("POST"))
{
shadowRoot.getElementById("failure-container").style.display = "block";
shadowRoot.getElementById("form-container").style.display = "none";
return;
}
invalids.forEach(prop =>
{
var match = shadowRoot.querySelectorAll("[name='" + prop + "']");
if (match && match.length > 0)
{
setValidity(match[0], false);
}
});
}
function updateIcon(val)
{
var pxVal = px(val);
captchaIcon.style.left = pxVal;
captchaSliderInfo.style.display = val == 0 ? "inline-block" : "none";
}
function linearGradient(deg, colors, breaks)
{
var lg = "linear-gradient(" + deg;
for (var i = 0; i < colors.length; i++)
{
lg += (", " + colors[i] + " " + breaks[i]);
}
lg += ")";
return lg;
}
function openFileDialog()
{
shadowRoot.getElementById("file-input").click();
}
function px(num)
{
return num + "px";
}
function fileInputChanged()
{
for (var i = 0; i < fileInput.files.length; i++) allFiles.push(fileInput.files[i]);
fileInput.value = null;
updateFiles();
}
function updateFiles()
{
var drop = shadowRoot.getElementById("file-drop");
var files = allFiles;
var prevDiv = shadowRoot.getElementById("file-preview-div");
prevDiv.innerHTML = "";
var types = fileInput.accept.split(",").map(item => item.trim());
var size = 0;
var invalidTypes = [];
for (let i = 0; i < files.length; i++)
{
let fullname = files[i].name;
let name = files[i].name;
let type = files[i].type;
size += files[i].size;
let ext = "";
let dotIndex = name.lastIndexOf('.');
if (dotIndex != -1)
{
ext = name.substring(dotIndex + 1);
name = name.substring(0, dotIndex);
}
let typeErr = !types.includes(type);
if (typeErr && !invalidTypes.includes(ext))
{
invalidTypes.push(ext);
}
let div = document.createElement("div");
div.style.userSelect = "none";
div.classList.add("file-preview");
div.title = name;
div.addEventListener("click", function (ev)
{
ev.preventDefault();
ev.stopPropagation();
removeFile(fullname, div);
});
div.innerHTML = "";
let span = document.createElement("span");
span.innerHTML = name;
div.appendChild(span);
let tag = document.createElement("div");
tag.classList.add("file-ext");
tag.style.position = "absolute";
tag.style.top = "40px";
tag.style.left = "30px";
tag.style.backgroundColor = (typeErr ? "orange" : "gray");
tag.style.color = "white";
tag.style.width = "48px";
tag.style.padding = "2px 0";
tag.style.borderRadius = "5px";
tag.innerHTML = "" + ext + "";
div.appendChild(tag);
prevDiv.appendChild(div);
}
shadowRoot.getElementById("file-drop-info").style.display = files.length == 0 ? "inline" : "none";
drop.style.padding = files.length == 0 ? "50px" : "0";
if (invalidTypes.length > 0)
{
setMessage(drop, "Questi tipi di file non sono accettati:" + invalidTypes.join(", "));
} else if (files.length > 5)
{
setMessage(drop, "L'allegato può contenere un massimo di 5 file");
} else if (size > 1024 * 1024 * 25)
{
setMessage(drop, "L' allegato non può superare i 25 MB di dimensione.");
} else
{
setMessage(drop, null);
}
}
function removeFile(name, elem)
{
if (isTouchDevice() && !elem.classList.contains("targeted"))
{
addClass(elem, "targeted");
setTimeout(() => removeClass(elem, "targeted"), 1000);
return;
}
allFiles.splice(allFiles.indexOf(allFiles.find(f => f.name === name)), 1);
updateFiles();
}
function isTouchDevice()
{
return ('ontouchstart' in document.documentElement);
}
function allowDrop(ev)
{
ev.preventDefault();
addClass(fileDrop, "dragHover");
}
function dragEnd(ev)
{
removeClass(fileDrop, "dragHover");
}
function drop(ev)
{
ev.preventDefault();
ev.stopPropagation();
removeClass(fileDrop, "dragHover");
if (ev.dataTransfer.items)
{
[...ev.dataTransfer.items].forEach((item, i) =>
{
if (item.kind === "file")
{
allFiles.push(item.getAsFile());
console.log(item);
}
});
} else
{
[...ev.dataTransfer.files].forEach((file, i) =>
{
allFiles.push(file);
console.log(file);
});
}
updateFiles();
}
async function guessCountry()
{
if (locationInput?.classList.contains("fixed") || countryInput?.classList.contains("fixed"))
{
return;
}
var code = shadowRoot.getElementById("zipcode-input")?.value ?? "";
var loc = locationInput?.value ?? "";
if (code.length == 0) return;
let response = await fetch("https://jobportal.wenatex.com/public/widget/form/location/?zipCode=" + code + "&location=" + loc,
{
method: "get"
}
);
// no content
if (response.status == 204) return;
var res = await response.json();
if (res.Country && countryInput)
{
setValue(countryInput, res.Country);
}
if (res.Location)
{
addClass(locationInput, "fixed");
setValue(locationInput, res.Location);
phoneInput?.focus();
} else
{
locationInput?.focus();
}
}
function phonePlaceholder()
{
switch (countryCodeInput?.value)
{
case "+41": return "21 3456789";
case "+39": return "06 1234567";
case "+49": return "30 123456789";
case "+43":
default:
return "664 1234567";
}
}
async function validatePhone()
{
if (!phoneInput) return;
if (countryCodeInput)
{
if (countryCodeInput.value.length > 0 && !countryCodeInput.value.startsWith("+"))
{
countryCodeInput.value = "+" + countryCodeInput.value;
}
if (!phoneInput.value || !countryCodeInput.value)
{
// removeClass(phoneInput, "invalid");
return;
}
}
var number = countryCodeInput?.value + phoneInput.value;
let response = await fetch("https://jobportal.wenatex.com/public/widget/form/phone/" + number.split("+").join(""), { method: "get" });
var result = await response.text();
if (!result || result.length === 0)
{
addClass(phoneInput, "invalid");
} else
{
removeClass(phoneInput, "invalid");
phoneInput.value = result;
}
}
function updateCountry(val)
{
if (!countryCodeInput) return;
if (countryCodeInput.classList.contains("fixed"))
{
return;
}
switch (val)
{
case "AT":
setValue(countryCodeInput, "+43");
break;
case "DE":
setValue(countryCodeInput, "+49");
break;
case "IT":
setValue(countryCodeInput, "+39");
break;
case "CH":
setValue(countryCodeInput, "+41");
break;
}
}
function addClass(el, className)
{
if (!el) return;
if (!el.classList.contains(className))
{
el.classList.add(className);
}
}
function removeClass(el, className)
{
if (!el) return;
if (el.classList.contains(className))
{
el.classList.remove(className);
}
}
function setValidity(el, valid)
{
if (valid)
{
removeClass(el, "invalid");
} else
{
addClass(el, "invalid");
}
}
function setValue(el, val)
{
if (!el) return;
el.value = val;
el.dispatchEvent(new Event('change'));
}
function birthdatePartChanged(src)
{
var d = shadowRoot.getElementById("birthdate-day");
var m = shadowRoot.getElementById("birthdate-month");
var y = shadowRoot.getElementById("birthdate-year");
if (!d || !m || !y) return;
var arr = [d, m, y];
arr.forEach(input =>
{
if (input.value >= parseInt(input.max)) input.value = parseInt(input.max);
});
var index = arr.indexOf(src);
if (src.value.length === src.max.length)
{
if (index < arr.length - 1) arr[index + 1].focus();
else streetInput.focus();
}
var b = shadowRoot.getElementById("birthdate-container");
}
function setMessage(input, msg)
{
var el = input.parentElement.getElementsByClassName("msg")[0];
if (el)
{
el.innerHTML = msg;
setValidity(input, !msg);
}
}
function birthdateClicked(e)
{
if (e.target !== bdContainer)
{
return;
}
shadowRoot.getElementById("birthdate-day").focus();
}
function display(elem, val)
{
elem.style.display = val;
}
function attachFloatingLabels()
{
var controls = shadowRoot.querySelectorAll(".form-control");
controls.forEach(function (control)
{
if (control.querySelector("input[type=checkbox]")) return; // Checkbox ausnehmen
var field = control.querySelector(".form-input, select, textarea");
if (!field) return;
function update()
{
var up = field.tagName === "SELECT" ||
(field.value != null && field.value.toString().trim() !== "");
if (up) addClass(control, "label-up");
else removeClass(control, "label-up");
}
field.addEventListener("input", update);
field.addEventListener("change", update);
update();
});
}
function applyDefaults()
{
if (countryInput)
{
countryInput.value = "-1";
if (countryInput.value !== "-1") addClass(countryInput, "fixed");
}
if (countryCodeInput)
{
countryCodeInput.value = "";
if (countryCodeInput.value?.length > 0)
{
addClass(countryCodeInput, "fixed");
phoneInput.placeholder = phonePlaceholder();
}
}
}
applyDefaults();
attachFloatingLabels();
attachValidation();
updateIcon(0);
}
w_be87dc5aa55144d0bbd3102ddfb80cec_scope._construct();`;
var w_be87dc5aa55144d0bbd3102ddfb80cec_dataLayer;
/* (function (w, d, s, l, i) {
w[l] = w[l] || []; w[l].push({
'gtm.start':
new Date().getTime(), event: 'gtm.js'
}); var f = d.getElementsByTagName(s)[0],
j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
w_be87dc5aa55144d0bbd3102ddfb80cec_dataLayer = w[l];
})(window, document, 'script', 'dataLayer', 'GTM-KZ2SM4'); */
function w_be87dc5aa55144d0bbd3102ddfb80cec_getDefaultBackground() {
var div = document.createElement("div");
document.head.appendChild(div);
var bg = window.getComputedStyle(div).backgroundColor;
document.head.removeChild(div);
return bg;
}
function w_be87dc5aa55144d0bbd3102ddfb80cec_getInheritedBackgroundColor(el) {
var defaultStyle = w_be87dc5aa55144d0bbd3102ddfb80cec_getDefaultBackground();
var backgroundColor = window.getComputedStyle(el).backgroundColor;
if (backgroundColor != defaultStyle) return backgroundColor;
if (!el.parentElement) return defaultStyle;
return w_be87dc5aa55144d0bbd3102ddfb80cec_getInheritedBackgroundColor(el.parentElement);
}
var w_be87dc5aa55144d0bbd3102ddfb80cec_thisScript = document.currentScript ?? shadowRoot.getElementById("jopoform-explicit");
var w_be87dc5aa55144d0bbd3102ddfb80cec_shadowRoot;
var w_be87dc5aa55144d0bbd3102ddfb80cec_style;
var w_be87dc5aa55144d0bbd3102ddfb80cec_script;
function w_be87dc5aa55144d0bbd3102ddfb80cec_insert() {
w_be87dc5aa55144d0bbd3102ddfb80cec_style = document.createElement("style");
w_be87dc5aa55144d0bbd3102ddfb80cec_style.innerHTML = w_be87dc5aa55144d0bbd3102ddfb80cec_in_widgetCss;
w_be87dc5aa55144d0bbd3102ddfb80cec_script = document.createElement("script");
w_be87dc5aa55144d0bbd3102ddfb80cec_script.textContent = w_be87dc5aa55144d0bbd3102ddfb80cec_in_widgetJs;
w_be87dc5aa55144d0bbd3102ddfb80cec_div = document.createElement("div");
w_be87dc5aa55144d0bbd3102ddfb80cec_div.style.background = "white";
w_be87dc5aa55144d0bbd3102ddfb80cec_div.id = "w_be87dc5aa55144d0bbd3102ddfb80cec_container";
w_be87dc5aa55144d0bbd3102ddfb80cec_shadowRoot = w_be87dc5aa55144d0bbd3102ddfb80cec_div.attachShadow({ mode: 'open' });
w_be87dc5aa55144d0bbd3102ddfb80cec_shadowRoot.innerHTML = w_be87dc5aa55144d0bbd3102ddfb80cec_in_widgetHtml;
w_be87dc5aa55144d0bbd3102ddfb80cec_shadowRoot.appendChild(w_be87dc5aa55144d0bbd3102ddfb80cec_style);
w_be87dc5aa55144d0bbd3102ddfb80cec_shadowRoot.appendChild(w_be87dc5aa55144d0bbd3102ddfb80cec_script);
if (typeof(shadowRoot) !== 'undefined') {
console.log(shadowRoot);
}
w_be87dc5aa55144d0bbd3102ddfb80cec_thisScript.parentNode.insertBefore(w_be87dc5aa55144d0bbd3102ddfb80cec_div, w_be87dc5aa55144d0bbd3102ddfb80cec_thisScript);
}
if (document.readyState === "complete" || document.readyState === "interactive") {
w_be87dc5aa55144d0bbd3102ddfb80cec_insert();
} else {
document.addEventListener("DOMContentLoaded", function() {
w_be87dc5aa55144d0bbd3102ddfb80cec_insert();
});
}