Brezplačna standardna dostava pri nakupu nad 75 EUR
Registracija
Pozdrav
ime *
Priimek *
Ulica/št. *
Vrstica naslova za dostavo 2
Poštna številka *
Kraj/mesto *
Država *
E-pošta *
Potrdite e-poštni *
Telefon *
MM
YYYY
Datum rojstva
MON
TUE
WED
THU
FRI
SAT
SUN
Nastavite geslo *
Potrdi geslo *
Ko vnesete svoje osebne podatke, soglašate z našim Pravilnikom o varstvu zasebnosti in uporabi piškotkov.
Stay up to date
By joining, you will be the first to know about new product launches, promotions, events and much more.
$(this).closest('#si-longRegistrationFormConfigWrapper').find('.js-si-longRegistrationFormConfig') .formValidation( { autoFocus: false, framework: 'bootstrap', icon: { valid: null, invalid: null, validating: null }, fields: { 'values[longRegistrationFormDefinition_title]': { trigger: 'change', validators: { } }, 'values[longRegistrationFormDefinition_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('Dovoljene so samo črke'); messagesEN.push('Dovoljene so samo črke'); 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('Minimum length is 2 characters'); messagesEN.push('Minimum length is 2 characters'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Vnesite svoje ime.', message_en: 'Vnesite svoje ime.' }, stringLength: { message: 'Presegli ste največjo dolžino 40 znakov za to polje', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[longRegistrationFormDefinition_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('Dovoljene so samo črke'); messagesEN.push('Dovoljene so samo črke'); 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('Minimum length is 2 characters'); messagesEN.push('Minimum length is 2 characters'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Vnesite svoj priimek.', message_en: 'Vnesite svoj priimek.' }, stringLength: { message: 'Presegli ste največjo dolžino 40 znakov za to polje', message_en: 'You have exceeded the maximum length of 40 characters for this field', max: 40 }, } }, 'values[longRegistrationFormDefinition_addressLine1]': { 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-9\\s].*)(?!(.*(mailbox|Postfach|postfach|post fach|Post Fach|Post fach|post Fach|PickPost|Mailbox|PSC Box|PO Box|P.O. box|Post Box|Post Office Box|Postal Box|Packstation|packstation|pack station|Schließfach|schließfach|schliessfach|casella postale|codigo postal|Boîte Postale|Boite postale|Casier postal|Case Postale|우편 번호|郵便番号|邮递区号|私書箱)))(.*)$', 'i'))) { messages.push('To polje mora vsebovati vsaj eno črko. Dostava v poštni predal ni možna.'); messagesEN.push('To polje mora vsebovati vsaj eno črko. Dostava v poštni predal ni možna.'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Vnesite ulico\/hišno številko svojega prebivališča', message_en: 'Vnesite ulico\/hišno številko svojega prebivališča' }, stringLength: { message: 'Presegli ste največjo dolžino 30 znakov za to polje', message_en: 'You have exceeded the maximum length of 30 characters for this field', max: 30 }, } }, 'values[longRegistrationFormDefinition_addressLine2]': { 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('^(?!(.*(CP|mailbox|Postfach|postfach|post fach|Post Fach|Post fach|post Fach|PickPost|Mailbox|PSC Box|PO Box|P.O. box|Post Box|Post Office Box|Postal Box|Packstation|packstation|pack station|Schließfach|schließfach|schliessfach|casella postale|codigo postal|Boîte Postale|Boite postale|Casier postal|Case Postale|우편 번호|郵便番号|邮递区号|私書箱)))(.*)$', 'i'))) { messages.push('Naslov poštnega predala ni dovoljen. Prosimo, vnesite veljaven naslov.'); messagesEN.push('Naslov poštnega predala ni dovoljen. Prosimo, vnesite veljaven naslov.'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, stringLength: { message: 'Presegli ste največjo dolžino 30 znakov za to polje', message_en: 'You have exceeded the maximum length of 30 characters for this field', max: 30 }, } }, 'values[longRegistrationFormDefinition_zip]': { 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('^(\\d{4})?$', ''))) { messages.push('popravite poštno številko, na primer 1000 Ljubljana (4 števke)'); messagesEN.push('popravite poštno številko, na primer 1000 Ljubljana (4 števke)'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Vnesite svojo poštno številko.', message_en: 'Vnesite svojo poštno številko.' }, stringLength: { message: 'Presegli ste največjo dolžino 9 znakov za to polje', message_en: 'You have exceeded the maximum length of 9 characters for this field', max: 9 }, } }, 'values[longRegistrationFormDefinition_town]': { trigger: 'blur', validators: { notEmpty: { message: 'Vnesite mesto.', message_en: 'Vnesite mesto.' }, stringLength: { message: 'Presegli ste največjo dolžino 30 znakov za to polje', message_en: 'You have exceeded the maximum length of 30 characters for this field', max: 30 }, } }, 'values[longRegistrationFormDefinition_country]': { trigger: 'change', validators: { notEmpty: { message: 'Vnesite svojo državo\/regijo.', message_en: 'Vnesite svojo državo\/regijo.' } } }, 'values[longRegistrationFormDefinition_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('vnesite svojo telefonsko številko (samo številke, brez presledkov).'); messagesEN.push('vnesite svojo telefonsko številko (samo številke, brez presledkov).'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Vnesite svojo telefonsko številko', message_en: 'Vnesite svojo telefonsko številko' }, stringLength: { message: 'Presegli ste največjo dolžino 20 znakov za to polje', message_en: 'You have exceeded the maximum length of 20 characters for this field', max: 20 }, callbackPhone: { alias: 'callback', message: 'Vnesite svojo telefonsko številko', message_en: 'Vnesite svojo telefonsko številko', 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[longRegistrationFormDefinition_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: 'Vnesite e-poštni naslov.', message_en: 'Vnesite e-poštni naslov.' }, notEmpty: { message: 'Vnesite e-poštni naslov.', message_en: 'Vnesite e-poštni naslov.' }, stringLength: { message: 'Število znakov v tem polju mora biti med 0 in 70', message_en: 'The number of characters for this field must be between 0 and 70', min: 0 , max: 70 }, } }, 'values[longRegistrationFormDefinition_birthdate_day]': { err: "#longRegistrationFormDefinition_birthdate-date-error-messages", excluded: false, trigger: 'blur', validators: { callback: { message: 'Please enter a valid birthdate day', message_en: 'Please enter a valid birthdate day', callback: function(value, validator, $field) { var input = $('#longRegistrationFormDefinition_birthdate_day'); if($('#longRegistrationFormDefinition_birthdate_month').val() && value && $('#longRegistrationFormDefinition_birthdate_year').val()){ var currentDate = new Date().getTime(); var fieldsDDMMYYYY = value ? new Date($('#longRegistrationFormDefinition_birthdate_month').val() + "." + value + "." + $('#longRegistrationFormDefinition_birthdate_year').val()).getTime() : new Date().getTime() + 1; if(typeof fieldsDDMMYYYY == "number" && ((fieldsDDMMYYYY > currentDate)||(fieldsDDMMYYYY < currentDate))) { $('.js-si-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_year]'); } } if (ACC.global.isDateFieldEmpty("longRegistrationFormDefinition_birthdate")) { if ($("small[data-fv-for='" + 'values[longRegistrationFormDefinition_birthdate_month]' +"']").attr('data-fv-result') == "INVALID") { $('.js-si-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_month'); } if ($("small[data-fv-for='" + 'values[longRegistrationFormDefinition_birthdate_year]' +"']").attr('data-fv-result') == "INVALID") { $('.js-si-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_year]'); } input.addClass('date-input-no-confirmation'); return true; } else { input.removeClass('date-input-no-confirmation'); } if ($field.val().match("^\\d+$") == null) { return false; } var value = parseInt($field.val()); var monthValue = $('#longRegistrationFormDefinition_birthdate_month').val(); var yearValue = $('#longRegistrationFormDefinition_birthdate_year').val(); if (monthValue == "" && yearValue == "") { return value >= 1 && value <= 31; } if (monthValue == "2" && yearValue == "") { return value >= 1 && value <= 29; } var month = parseInt(monthValue); var year = parseInt(yearValue); return value >= 1 && value <= ACC.global.numberOfDaysInMonth(month, year); } } } }, 'values[longRegistrationFormDefinition_birthdate_month]': { err: "#longRegistrationFormDefinition_birthdate-date-error-messages", excluded: false, trigger: 'blur', validators: { callback: { message: 'Please enter a valid birthdate month', message_en: 'Please enter a valid birthdate month', callback: function(value, validator, $field) { if(value && $('#longRegistrationFormDefinition_birthdate_day').val() && $('#longRegistrationFormDefinition_birthdate_year').val()){ var currentDate = new Date().getTime(); var fieldsDDMMYYYY = new Date(value + "." + $('#longRegistrationFormDefinition_birthdate_day').val() + "." + $('#longRegistrationFormDefinition_birthdate_year').val()).getTime(); if(typeof fieldsDDMMYYYY == "number" && ((fieldsDDMMYYYY > currentDate)||(fieldsDDMMYYYY < currentDate))) { $('.js-si-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_year]'); } } if (ACC.global.isDateFieldEmpty("longRegistrationFormDefinition_birthdate")) { if ($("small[data-fv-for='" + 'values[longRegistrationFormDefinition_birthdate_day]' +"']").attr('data-fv-result') == "INVALID") { $('.js-si-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_day]'); } if ($("small[data-fv-for='" + 'values[longRegistrationFormDefinition_birthdate_year]' +"']").attr('data-fv-result') == "INVALID") { $('.js-si-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_year]'); } $('#longRegistrationFormDefinition_birthdate_month').addClass('date-input-no-confirmation'); return true; } else { $('#longRegistrationFormDefinition_birthdate_month').removeClass('date-input-no-confirmation'); } if ($field.val().match("^\\d+$") == null){ return false; } var value = parseInt($field.val()); if ($('#longRegistrationFormDefinition_birthdate_day').val() != "") { $('.js-si-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_day]'); } return value >= 1 && value <= 12; } } } }, 'values[longRegistrationFormDefinition_birthdate_year]': { err: "#longRegistrationFormDefinition_birthdate-date-error-messages", excluded: false, trigger: 'blur', validators: { callback: { message: 'Vnesite veljavno letnico rojstva', message_en: 'Vnesite veljavno letnico rojstva', callback: function(value, validator, $field) { var value = $field.val(); var currentDate = new Date().getTime(); var fieldsDDMMYYYY = value ? new Date($('#longRegistrationFormDefinition_birthdate_month').val() + "." + $('#longRegistrationFormDefinition_birthdate_day').val() + "." + value).getTime() : new Date().getTime()+1; if (ACC.global.isDateFieldEmpty("longRegistrationFormDefinition_birthdate")) { if ($("small[data-fv-for='" + 'values[longRegistrationFormDefinition_birthdate_day]' +"']").attr('data-fv-result') == "INVALID") { $('.js-si-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_day]'); } if ($("small[data-fv-for='" + 'values[longRegistrationFormDefinition_birthdate_month]' +"']").attr('data-fv-result') == "INVALID") { $('.js-si-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_month]'); } $('#longRegistrationFormDefinition_birthdate_year').addClass('date-input-no-confirmation'); return true; } else { $('#longRegistrationFormDefinition_birthdate_year').removeClass('date-input-no-confirmation'); } if($('#longRegistrationFormDefinition_birthdate_month').val() && value && $('#longRegistrationFormDefinition_birthdate_day').val()){ if(typeof fieldsDDMMYYYY == "number" && (fieldsDDMMYYYY > currentDate)) { return false; } else if (typeof fieldsDDMMYYYY == "number" && (fieldsDDMMYYYY < currentDate)) { return true; } } if (!ACC.global.isValidYear("longRegistrationFormDefinition_birthdate")) { $('.js-si-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_day]'); $('.js-si-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_month]'); $('#longRegistrationFormDefinition_birthdate_year').removeClass('date-input-no-confirmation'); return false; } if (value.match("^\\d{4}$") != null) { if ($('#longRegistrationFormDefinition_birthdate_day').val() != "") { $('.js-si-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_day]'); } return true; } return false; } } } }, 'values[longRegistrationFormDefinition_birthdate]': { trigger: 'blur', validators: { /** * Validating date field with custom format when given both date and time. * More info on how to configure other attributes and supported formats: * https://old.formvalidation.io/validators/date/ */ date: { format: 'DD.MM.YYYY', separator: '.', max: '25.06.2024', message: 'Vnesite veljaven datum rojstva dd.MM.yyyy', message_en: 'Vnesite veljaven datum rojstva dd.MM.yyyy' }, callbackDate: { alias: 'callback', callback: function(value, validator, $field) { /** The day/month/year fields are hidden in the UI and are populated in JS, by splitting the date field. The change in the fields is not detected in the validation framework and it requires to manually call the revalidation after each change of the date field. Otherwise, the fields will remain in an invalid state and the form validation will fail (preventing the form submission). */ $('.js-si-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_day]'); $('.js-si-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_month]'); $('.js-si-longRegistrationFormConfig').formValidation('revalidateField', 'values[longRegistrationFormDefinition_birthdate_year]'); return true; } }, } }, 'values[longRegistrationFormDefinition_password]': { 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.match(new RegExp('(^$|^(?=.*[0-9])(?=.*[A-Z]).{7,}$)', ''))) { messages.push('The password has to be at least 7 characters long as well as contain one number and one capital letter.'); messagesEN.push('The password has to be at least 7 characters long as well as contain one number and one capital letter.'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Please enter a password.', message_en: 'Please enter a password.' }, } }, 'values[longRegistrationFormDefinition_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: 'Vnesite e-poštni naslov.', message_en: 'Vnesite e-poštni naslov.' }, notEmpty: { message: 'Vnesite e-poštni naslov.', message_en: 'Vnesite e-poštni naslov.' }, stringLength: { message: 'Število znakov v tem polju mora biti med 0 in 70', message_en: 'The number of characters for this field must be between 0 and 70', min: 0 , max: 70 }, identical: { field: 'values[longRegistrationFormDefinition_email]', message: 'Polji se ne ujemata.', message_en: 'The fields do not match.' } } }, 'values[longRegistrationFormDefinition_passwordConfirm]': { 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.match(new RegExp('(^$|^(?=.*[0-9])(?=.*[A-Z]).{7,}$)', ''))) { messages.push('The password has to be at least 7 characters long as well as contain one number and one capital letter.'); messagesEN.push('The password has to be at least 7 characters long as well as contain one number and one capital letter.'); errorOccured |= true; } if (errorOccured) { return { valid: false, message: messages.join('<br/>'), message_en: messagesEN } } else { return true; } } }, notEmpty: { message: 'Potrdite svoje geslo.', message_en: 'Potrdite svoje geslo.' }, identical: { field: 'values[longRegistrationFormDefinition_password]', message: 'Polji se ne ujemata.', message_en: 'The fields do not match.' } } }, 'values[longRegistrationFormDefinition_newsletter]': { trigger: 'change', validators: { } } } } ) .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); 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/ */ data.fv.disableSubmitButtons(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 = 'registerNewCustomer'; if (!formId || formId === 'cfRequest' || formId === 'cfResponse') { formId = 'longRegistrationFormDefinition'; } 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(); } }; $('.js-longRegistrationFormDefinition_birthdate_day').blur(function() { removeDateMoleculeError($('.js-longRegistrationFormDefinition_birthdate').closest('.form-combo-molecule')); triggerFormValidation("day", false, "longRegistrationFormDefinition_birthdate", "dd.MM.yyyy"); }); $('.js-longRegistrationFormDefinition_birthdate_month').blur(function() { removeDateMoleculeError($('.js-longRegistrationFormDefinition_birthdate').closest('.form-combo-molecule')); triggerFormValidation("month", false, "longRegistrationFormDefinition_birthdate", "dd.MM.yyyy"); }); $('.js-longRegistrationFormDefinition_birthdate_year').blur(function() { removeDateMoleculeError($('.js-longRegistrationFormDefinition_birthdate').closest('.form-combo-molecule')); triggerFormValidation("year", false, "longRegistrationFormDefinition_birthdate", "dd.MM.yyyy"); });