Bezplatné standardní dodání při objednávce nad 2 460 Kč
Vyhledat

Firemní dárky

Žádost o informacei

Přidali jste produkty do svého dotazu. Uveďte množství a vyplňte formulář. Náš zástupce vás bude kontaktovat.

Nepřidali jste žádné produkty do svého dotazu. Klikněte na odkaz pro zobrazení a přidání produktů do svého dotazu pro přesnější nabídku nebo pokračujte bez produktů.

Wprowadź swoje dane, aby mógł skontaktować się z Tobą jeden z naszych opiekunów ds. upominków firmowych.
Salutation *
Pani
Pan
Křestní jméno *
Příjmení *
Pracovní pozice
Název společnosti *
Please select a country... *
Afganistan
Albania
Algieria
Andora
Angola
Anguilla
Antarktyka
Antigua i Barbuda
Arabia Saudyjska
Argentyna
Armenia
Aruba
Australia
Austria
Azerbejdżan
Bahamy
Bahrajn
Bangladesz
Barbados
Belgia
Belize
Benin
Bermudy
Bhutan
Białoruś
Boliwia
Botswana
Bośnia i Hercegowina
Brazylia
Brunei Darussalam
Brytyjskie Terytorium Oceanu Indyjskiego
Brytyjskie Wyspy Dziewicze
Burkina Faso
Burundi
Bułgaria
Chile
Chiny
Chorwacja
Curaçao
Cypr
Czad
Czechy
Dalekie Wyspy Mniejsze Stanów Zjednoczonych
Dania
Demokratyczna Republika Konga
Dominika
Dżibuti
Egipt
Ekwador
Erytrea
Estonia
Etiopia
Falklandy
Fidżi
Filipiny
Finlandia
Francja
Francuskie Terytoria Południowe
Gabon
Gambia
Georgia Południowa i Sandwich Południowy
Ghana
Gibraltar
Grecja
Grenada
Grenlandia
Gruzja
Guam
Guernsey
Gujana
Gujana Francuska
Gwadelupa
Gwatemala
Gwinea
Gwinea Bissau
Gwinea Równikowa
Haiti
Hiszpania
Holandia
Holandia Karaibska
Honduras
Hongkong
Indie
Indonezja
Irak
Iran
Irlandia
Islandia
Izrael
Jamajka
Japonia
Jemen
Jersey
Jordania
Kajmany
Kambodża
Kamerun
Kanada
Katar
Kazachstan
Kenia
Kirgistan
Kiribati
Kolumbia
Komory
Kongo
Korea Południowa
Korea Północna
Kostaryka
Kuba
Kuwejt
Laotańska Republika Ludowo-Demokratyczna
Lesotho
Liban
Liberia
Libia
Liechtenstein
Litwa
Luksemburg
Macedonia
Madagaskar
Majotta
Makau
Malawi
Malediwy
Malezja
Mali
Malta
Mariany Północne
Maroko
Martynika
Mauretania
Mauritius
Meksyk
Mjanma
Monako
Mongolia
Montenegro
Montserrat
Mozambik
Mołdawia
Namibia
Nauru
Nepal
Niemcy
Niger
Nigeria
Nikaragua
Niue
Norfolk
Norwegia
Nowa Kaledonia
Nowa Zelandia
Oman
Pakistan
Palau
Panama
Papua-Nowa Gwinea
Paragwaj
Peru
Pitcairn
Polinezja Francuska
Polska
Portoryko
Portugalia
RPA
Republika Dominikany
Republika Środkowoafrykańska
Reunion
Rumunia
Rwanda
Sahara Zachodnia
Saint Kitts i Nevis
Saint Lucia
Saint Martin (część francuska)
Saint Vincent i Grenadyny
Salwador
Samoa
Samoa Amerykańskie
San Marino
Senegal
Serbia
Seszele
Sfederowane Stany Mikronezji
Sierra Leone
Singapur
Sint Maarten (część holenderska)
Somalia
Sri Lanka
Stany Zjednoczone
Suazi
Sudan
Surinam
Svalbard i Jan Mayen
Syryjska Republika Arabska
Szwajcaria
Szwecja
Słowacja
Słowenia
Tadżykistan
Tajlandia
Tajwan
Tanzania
Terytoria palestyńskie
Timor Wschodni
Togo
Tokelau
Tonga
Trinidad i Tobago
Tunezja
Turcja
Turkmenistan
Turks i Caicos
Tuwalu
Uganda
Ukraina
Urugwaj
Uzbekistan
Vanuatu
Wallis i Futuna
Watykan
Wenezuela
Wielka Brytania
Wietnam
Wspólnota Saint Barthélemy
Wspólnota Terytorialna Saint Pierre i Miquelon
Wybrzeże Kości Słoniowej
Wyspa Bouveta
Wyspa Bożego Narodzenia
Wyspa Man
Wyspa Świętej Heleny, Wyspa Wniebowstąpienia i Tristan da Cunha
Wyspy Alandzkie
Wyspy Cooka
Wyspy Dziewicze Stanów Zjednoczonych
Wyspy Heard i McDonald
Wyspy Kokosowe
Wyspy Marshalla
Wyspy Owcze
Wyspy Salomona
Wyspy Zielonego Przylądka
Wyspy Świętego Tomasza i Książęca
Węgry
Włochy
Zambia
Zimbabwe
Zjednoczone Emiraty Arabskie
Łotwa
Telefonní číslo *
Pracovní e-mail *
Potvrďte obchodní e-mailovou adresu  *
Počet zaměstnanců *
1-10 pracownicy
11-50 pracownicy
51-200 pracownicy
201-500 pracownicy
501-1,000 pracownicy
1,001-5,000 pracownicy
5,001-10,000 pracownicy
>10,000 pracownicy
Zbývá 1000 znaků
* Povinná pole
.on('success.field.fv', function() { /* note: we need to check if there is an error in the form, as the plugin does a validation on field level. Validating the whole form on blur of a field is no option, as the customer does not want to see error messages on all fields when entering one field. In case of an error on at least one field we disable the submit button manually */ var $form = $(this).closest('form'); if ($form.find('.form-group.has-error').length > 0) { var $button = $form.find('.js-button'); if (!$button.hasClass('disabled')) { $button.addClass('disabled'); } } }) .on('err.field.fv', function(e, data) { /* * On error field validation, enable submit button. * Source: https://old.formvalidation.io/examples/enabling-submit-button/ */ data.fv.disableSubmitButtons(false); $(data.element).attr('aria-invalid', 'true'); // Get error messages var messages = data.fv.getMessages(data.element); // ✅ Announce error to screen readers if ($(data.element).closest('.js-advent-calendar-container').length > 0 && messages.length > 0 && window.ACC && window.ACC.adventcalendar && typeof ACC.adventcalendar.adventcalendarUpdateErrorSpanAttributes === 'function') { const selectedField = data.element.attr('id'); ACC.adventcalendar.adventcalendarUpdateErrorSpanAttributes(selectedField, true); ACC.adventcalendar.announceToScreenReader('Error: ' + messages[0]); } if(data.element.closest('.form-combo-molecule').length){ /* Get the messages of field */ var messages = data.fv.getMessages(data.element); /* Get the error message content of the field */ var errorContent = data.element.closest('.form-combo-molecule').find('.errors'); /* Get the hidden error message of the field */ var errorField = errorContent.find('.swa-form-input__error-message[data-field="' + data.field + '"][style="display: none;"]'); /* Loop over the messages */ for (var i in messages) { if (errorField[1] == undefined) { var newErrorContainer = document.createElement("small"); $(newErrorContainer).attr("class", "swa-form-input__error-message swa-headline-sans--supertiny"); $(newErrorContainer).attr("data-field", data.field); $(newErrorContainer).attr("data-fv-validator", "callback"); $(newErrorContainer).attr("data-fv-for", $(data.element[0]).attr("name") ); $(newErrorContainer).attr("data-fv-result", "INVALID"); $(newErrorContainer).attr("data-tracked", "true"); $(newErrorContainer).html(messages[i]); if (errorContent.text().includes(messages[i])) { $(newErrorContainer).hide(); } errorContent.append(newErrorContainer); } } } }) .on('success.field.fv', function(e, data) { /* * On success field validation, enable submit button. * Source: https://old.formvalidation.io/examples/enabling-submit-button/ */ if ($(data.element).closest('.js-advent-calendar-container').length > 0 && window.ACC && window.ACC.adventcalendar && typeof ACC.adventcalendar.adventcalendarUpdateErrorSpanAttributes === 'function') { const selectedField = data.element.attr('id'); ACC.adventcalendar.adventcalendarUpdateErrorSpanAttributes(selectedField, false); } data.fv.disableSubmitButtons(false); // ✅ Remove aria-invalid on field $(data.element).attr('aria-invalid', 'false'); /* Remove the field messages */ $errorContent = data.element.closest('.form-combo-molecule').find('.errors'); $errorContent.find('.swa-form-input__error-message[data-field="' + data.field + '"]').remove(); $errorContent.find('.swa-form-input__error-message[data-fv-result="INVALID"]').removeAttr("style"); }) .on('success.form.fv', function() { var formId = 'corporateGiftsContactForm'; if (!formId || formId === 'cfRequest' || formId === 'cfResponse') { formId = 'corporateGiftsContactFormDefinition'; } ACC.tracking.pushFormSubmit(formId); }); var replaceDatePatternWithValue = function(mandatory, fieldConfigCode, fieldConfigPattern) { var date = fieldConfigPattern.toUpperCase(); var year = $("#" + fieldConfigCode + "_year").val(); var month = $("#" + fieldConfigCode + "_month").val(); var day = $("#" + fieldConfigCode + "_day").val(); date = date.replace(/[Y]+/, year); date = date.replace(/[M]+/, month); date = date.replace(/[D]+/, day); var hiddenDateField = $('.js-' + fieldConfigCode + '_hidden'); if (mandatory) { hiddenDateField.val(date); } else { hiddenDateField.val(date == "" ? "" : date); } }; var triggerFormValidation = function(fieldId, mandatory, fieldCode, dateFormat) { replaceDatePatternWithValue(mandatory, fieldCode, dateFormat); $('.js-fieldCode').formValidation('revalidateField', 'values[fieldCode_'+ fieldId + ']'); }; var removeDateMoleculeError = function(molecule) { if(molecule.hasClass('has-error')){ molecule.removeClass('has-error'); molecule.find('.help-block').find('span').remove(); } };
$(this).closest('#corporateGiftsContactFormConfigWrapper').find('.js-corporateGiftsContactFormConfig') .formValidation( { autoFocus: false, framework: 'bootstrap', icon: { valid: null, invalid: null, validating: null }, fields: { 'values[corporateGiftsContactFormDefinition_title]': { trigger: 'change', validators: { notEmpty: { message: 'Zvolte prosím titul.', message_en: 'Zvolte prosím titul.' } } }, 'values[corporateGiftsContactFormDefinition_firstName]': { trigger: 'blur', validators: { callback: { callback: function(value, validator, $field) { var messages = []; var messagesEN = []; var errorOccured = false; if ($field.attr('regexCheckDisabled') === 'true') { return true; } if (!value.trim().match(new RegExp('^[. \\u3000\'\\-a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F\\u4E00-\\u9FFF\\u3400-\\u4DBF\\u3040-\\u30FF\\uF900-\\uFAFF\\uFF66-\\uFF9F\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uAC00-\\uD7FF\\u3005\\u3006\\u3024\\u3029\\u3031-\\u3035\\u0E00-\\u0E7F]*$', ''))) { messages.push('Povolena jsou pouze písmena'); messagesEN.push('Povolena jsou pouze písmena'); errorOccured |= true; } if (!value.trim().match(new RegExp('(?:^$)|(?:^.*[a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F]{2}.*$)|(?:^.*[^a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F. \\u3000\'\\-].*$)', ''))) { messages.push('Minimální délka je 2 znaků'); messagesEN.push('Minimální délka je 2 znaků'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Zadejte prosím křestní jméno.', message_en: 'Zadejte prosím křestní jméno.' }, stringLength: { message: 'Přesáhli jste maximální povolenou délku 40 znaků v tomto poli.', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[corporateGiftsContactFormDefinition_lastName]': { trigger: 'blur', validators: { callback: { callback: function(value, validator, $field) { var messages = []; var messagesEN = []; var errorOccured = false; if ($field.attr('regexCheckDisabled') === 'true') { return true; } if (!value.trim().match(new RegExp('^[. \\u3000\'\\-a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F\\u4E00-\\u9FFF\\u3400-\\u4DBF\\u3040-\\u30FF\\uF900-\\uFAFF\\uFF66-\\uFF9F\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uAC00-\\uD7FF\\u3005\\u3006\\u3024\\u3029\\u3031-\\u3035\\u0E00-\\u0E7F]*$', ''))) { messages.push('Povolena jsou pouze písmena'); messagesEN.push('Povolena jsou pouze písmena'); errorOccured |= true; } if (!value.trim().match(new RegExp('(?:^$)|(?:^.*[a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F]{2}.*$)|(?:^.*[^a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F. \\u3000\'\\-].*$)', ''))) { messages.push('Minimální délka je 2 znaků'); messagesEN.push('Minimální délka je 2 znaků'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Zadejte prosím své příjmení.', message_en: 'Zadejte prosím své příjmení.' }, stringLength: { message: 'Přesáhli jste maximální povolenou délku 40 znaků v tomto poli.', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[corporateGiftsContactFormDefinition_jobTitle]': { trigger: 'blur', validators: { stringLength: { message: 'Přesáhli jste maximální povolenou délku 40 znaků v tomto poli.', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[corporateGiftsContactFormDefinition_companyName]': { trigger: 'blur', validators: { notEmpty: { message: 'Uveďte název vaší společnosti.', message_en: 'Uveďte název vaší společnosti.' }, stringLength: { message: 'Přesáhli jste maximální povolenou délku 40 znaků v tomto poli.', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[corporateGiftsContactFormDefinition_email]': { trigger: 'blur', validators: { regexp: { regexp: new RegExp('^(?=.{0,255}$)(?=.{0,64}@)(?:(?!^\\.)(?!.*\\.@)(?!.*\\.\\.)[a-zA-Z0-9!#.$%&\'*+\/=?^_‘{|}~-]+|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f]){1,62}\")@(?!-)(?!.*\\.-)(?!.*-\\.)(?:[a-zA-Z0-9-]{1,61}\\.){1,126}(?=[a-zA-Z0-9-]*[a-zA-Z][a-zA-Z0-9-]*$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$', ''), message: 'Uveďte svou pracovní e-mailovou adresu.', message_en: 'Uveďte svou pracovní e-mailovou adresu.' }, notEmpty: { message: 'Uveďte svou pracovní e-mailovou adresu.', message_en: 'Uveďte svou pracovní e-mailovou adresu.' }, stringLength: { message: 'Počet znaků v tomto poli musí být od 0 do 70.', message_en: 'The number of characters for this field must be between 0 and 70', min: 0 , max: 70 }, } }, 'values[corporateGiftsContactFormDefinition_emailConfirm]': { trigger: 'blur', validators: { regexp: { regexp: new RegExp('^(?=.{0,255}$)(?=.{0,64}@)(?:(?!^\\.)(?!.*\\.@)(?!.*\\.\\.)[a-zA-Z0-9!#.$%&\'*+\/=?^_‘{|}~-]+|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f]){1,62}\")@(?!-)(?!.*\\.-)(?!.*-\\.)(?:[a-zA-Z0-9-]{1,61}\\.){1,126}(?=[a-zA-Z0-9-]*[a-zA-Z][a-zA-Z0-9-]*$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$', ''), message: 'Uveďte svou pracovní e-mailovou adresu.', message_en: 'Uveďte svou pracovní e-mailovou adresu.' }, notEmpty: { message: 'Uveďte svou pracovní e-mailovou adresu.', message_en: 'Uveďte svou pracovní e-mailovou adresu.' }, stringLength: { message: 'Počet znaků v tomto poli musí být od 0 do 70.', message_en: 'The number of characters for this field must be between 0 and 70', min: 0 , max: 70 }, identical: { field: 'values[corporateGiftsContactFormDefinition_email]', message: 'Pole se neshodují.', message_en: 'The fields do not match.' } } }, 'values[corporateGiftsContactFormDefinition_country]': { trigger: 'change', validators: { notEmpty: { message: 'Zadejte prosím svou zemi\/region.', message_en: 'Zadejte prosím svou zemi\/region.' } } }, 'values[corporateGiftsContactFormDefinition_phone]': { trigger: 'blur', validators: { callback: { callback: function(value, validator, $field) { var messages = []; var messagesEN = []; var errorOccured = false; if ($field.attr('regexCheckDisabled') === 'true') { return true; } if (!value.trim().match(new RegExp('^[\\\\+]{0,1}[0-9\\\\(\\\\)\\- \\\\.]*$', ''))) { messages.push('Zadejte prosím své telefonní číslo. (pouze číslice, bez mezer)'); messagesEN.push('Zadejte prosím své telefonní číslo. (pouze číslice, bez mezer)'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Zadejte prosím své telefonní číslo.', message_en: 'Zadejte prosím své telefonní číslo.' }, stringLength: { message: 'Přesáhli jste maximální povolenou délku 20 znaků v tomto poli.', message_en: 'You have exceeded the maximum length of 20 characters for this field', max: 20 }, callbackPhone: { alias: 'callback', message: 'Zadejte prosím své telefonní číslo.', message_en: 'Zadejte prosím své telefonní číslo.', callback: function (value, validator, $field) { if (value === '') { return true; } var prefixCountry = $field.siblings('.flag-container').children('.selected-flag').attr('title'); var isValidPrefix = prefixCountry !== undefined && prefixCountry !== 'Unknown'; if (!isValidPrefix) { return false; } var prefix = prefixCountry.split("+")[1]; var isMinimumLength = true; var minLength = ""; if (minLength !== null) { if (value.startsWith("+")) { if ((value.length - prefix.length - 1) < minLength) { isMinimumLength = false; } } else if (value.length < minLength) { isMinimumLength = false; } } return isMinimumLength; } }, } }, 'values[corporateGiftsContactFormDefinition_companySize]': { trigger: 'change', validators: { notEmpty: { message: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.global-b2bCustomerContact-companySize, error.genericConfigurableForm.companySize\u003C\/span\u003E', message_en: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.global-b2bCustomerContact-companySize, error.genericConfigurableForm.companySize\u003C\/span\u003E' } } }, 'values[corporateGiftsContactFormDefinition_message]': { trigger: 'blur', validators: { notEmpty: { message: 'Please fill in your contact reason', message_en: 'Please fill in your contact reason' }, stringLength: { message: 'Počet znaků v tomto poli musí být od 0 do 1000.', message_en: 'The number of characters for this field must be between 0 and 1000', min: 0 , max: 1000 }, } }, } } ) .on('success.field.fv', function() { /* note: we need to check if there is an error in the form, as the plugin does a validation on field level. Validating the whole form on blur of a field is no option, as the customer does not want to see error messages on all fields when entering one field. In case of an error on at least one field we disable the submit button manually */ var $form = $(this).closest('form'); if ($form.find('.form-group.has-error').length > 0) { var $button = $form.find('.js-button'); if (!$button.hasClass('disabled')) { $button.addClass('disabled'); } } }) .on('err.field.fv', function(e, data) { /* * On error field validation, enable submit button. * Source: https://old.formvalidation.io/examples/enabling-submit-button/ */ data.fv.disableSubmitButtons(false); $(data.element).attr('aria-invalid', 'true'); // Get error messages var messages = data.fv.getMessages(data.element); // ✅ Announce error to screen readers if ($(data.element).closest('.js-advent-calendar-container').length > 0 && messages.length > 0 && window.ACC && window.ACC.adventcalendar && typeof ACC.adventcalendar.adventcalendarUpdateErrorSpanAttributes === 'function') { const selectedField = data.element.attr('id'); ACC.adventcalendar.adventcalendarUpdateErrorSpanAttributes(selectedField, true); ACC.adventcalendar.announceToScreenReader('Error: ' + messages[0]); } if(data.element.closest('.form-combo-molecule').length){ /* Get the messages of field */ var messages = data.fv.getMessages(data.element); /* Get the error message content of the field */ var errorContent = data.element.closest('.form-combo-molecule').find('.errors'); /* Get the hidden error message of the field */ var errorField = errorContent.find('.swa-form-input__error-message[data-field="' + data.field + '"][style="display: none;"]'); /* Loop over the messages */ for (var i in messages) { if (errorField[1] == undefined) { var newErrorContainer = document.createElement("small"); $(newErrorContainer).attr("class", "swa-form-input__error-message swa-headline-sans--supertiny"); $(newErrorContainer).attr("data-field", data.field); $(newErrorContainer).attr("data-fv-validator", "callback"); $(newErrorContainer).attr("data-fv-for", $(data.element[0]).attr("name") ); $(newErrorContainer).attr("data-fv-result", "INVALID"); $(newErrorContainer).attr("data-tracked", "true"); $(newErrorContainer).html(messages[i]); if (errorContent.text().includes(messages[i])) { $(newErrorContainer).hide(); } errorContent.append(newErrorContainer); } } } }) .on('success.field.fv', function(e, data) { /* * On success field validation, enable submit button. * Source: https://old.formvalidation.io/examples/enabling-submit-button/ */ if ($(data.element).closest('.js-advent-calendar-container').length > 0 && window.ACC && window.ACC.adventcalendar && typeof ACC.adventcalendar.adventcalendarUpdateErrorSpanAttributes === 'function') { const selectedField = data.element.attr('id'); ACC.adventcalendar.adventcalendarUpdateErrorSpanAttributes(selectedField, false); } data.fv.disableSubmitButtons(false); // ✅ Remove aria-invalid on field $(data.element).attr('aria-invalid', 'false'); /* Remove the field messages */ $errorContent = data.element.closest('.form-combo-molecule').find('.errors'); $errorContent.find('.swa-form-input__error-message[data-field="' + data.field + '"]').remove(); $errorContent.find('.swa-form-input__error-message[data-fv-result="INVALID"]').removeAttr("style"); }) .on('success.form.fv', function() { var formId = 'corporateGiftsContactForm'; if (!formId || formId === 'cfRequest' || formId === 'cfResponse') { formId = 'corporateGiftsContactFormDefinition'; } ACC.tracking.pushFormSubmit(formId); }); var replaceDatePatternWithValue = function(mandatory, fieldConfigCode, fieldConfigPattern) { var date = fieldConfigPattern.toUpperCase(); var year = $("#" + fieldConfigCode + "_year").val(); var month = $("#" + fieldConfigCode + "_month").val(); var day = $("#" + fieldConfigCode + "_day").val(); date = date.replace(/[Y]+/, year); date = date.replace(/[M]+/, month); date = date.replace(/[D]+/, day); var hiddenDateField = $('.js-' + fieldConfigCode + '_hidden'); if (mandatory) { hiddenDateField.val(date); } else { hiddenDateField.val(date == "" ? "" : date); } }; var triggerFormValidation = function(fieldId, mandatory, fieldCode, dateFormat) { replaceDatePatternWithValue(mandatory, fieldCode, dateFormat); $('.js-fieldCode').formValidation('revalidateField', 'values[fieldCode_'+ fieldId + ']'); }; var removeDateMoleculeError = function(molecule) { if(molecule.hasClass('has-error')){ molecule.removeClass('has-error'); molecule.find('.help-block').find('span').remove(); } };