$(this).closest('#contactTopicFormConfigWrapper').find('.js-contactTopicFormConfig')
.formValidation(
{
autoFocus: false,
framework: 'bootstrap',
icon: {
valid: null,
invalid: null,
validating: null
},
fields: {
'values[contactTopicFormDefinition_contactTopic]': {
trigger: 'change',
validators: {
notEmpty: {
message: 'Vyberte předmět\/téma',
message_en: 'Vyberte předmět\/téma'
}
}
}
}
}
)
.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 */
var $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 = 'ShortContactTopic';
if (!formId || formId === 'cfRequest' || formId === 'cfResponse') {
formId = 'contactTopicFormDefinition';
}
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();
}
};
2
Asunto
Selecciona uno de los siguientes temas
$(this).closest('#contactSubjectFormConfigWrapper').find('.js-contactSubjectFormConfig')
.formValidation(
{
autoFocus: false,
framework: 'bootstrap',
icon: {
valid: null,
invalid: null,
validating: null
},
fields: {
'values[contactSubjectFormDefinition_contactSubject]': {
trigger: 'change',
validators: {
notEmpty: {
message: 'Vyberte předmět\/téma',
message_en: 'Vyberte předmět\/téma'
}
}
}
}
}
)
.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 */
var $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 = 'ShortContactSubject';
if (!formId || formId === 'cfRequest' || formId === 'cfResponse') {
formId = 'contactSubjectFormDefinition';
}
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('#contactSubjectOtherFormConfigWrapper').find('.js-contactSubjectOtherFormConfig')
.formValidation(
{
autoFocus: false,
framework: 'bootstrap',
icon: {
valid: null,
invalid: null,
validating: null
},
fields: {
'values[contactSubjectOtherFormDefinition_contactSubjectTxt]': {
trigger: 'keyup',
validators: {
notEmpty: {
message: 'Uveďte předmět',
message_en: 'Uveďte předmět'
},
stringLength: {
message: 'Počet znaků v tomto poli musí být od 0 do 40.',
message_en: 'The number of characters for this field must be between 0 and 40',
min: 0
,
max: 40
},
}
}
}
}
)
.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 */
var $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 = 'contactSubjectOther';
if (!formId || formId === 'cfRequest' || formId === 'cfResponse') {
formId = 'contactSubjectOtherFormDefinition';
}
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();
}
};
{"didYouKnowLabel":"Věděli jste, že:","product-size":["Chcete-li zjistit svou ideální velikost, použijte naši tabulku velikostí.","Pro více informací navštivte <a href="/s-swarovski-ring-size/" target="_blank" rel="noopener noreferrer">Tabulka Velikostí</a>."],"product-availability":["Pro kontrolu dostupnosti v obchodě postupujte podle těchto kroků: <br/>1.Vyberte si produkt v našem online obchodě. <br/>2.Na stránce podrobností produktu vedle „Přidat do košíku” vyberte „Najít v obchodě” a poté klikněte na „Click & Collect: Zkontrolovat dostupnost”. <br/>3.Zadejte svou aktuální nebo preferovanou polohu a prozkoumejte dostupné možnosti.","Pro více informací prosím zkontrolujte <a href="/s-faq-order/?accordionID=CC-Overview_AE-product_availibility" target="_blank" rel="noopener noreferrer">Časté dotazy</a>."],"product-colors":["Použijte filtr barev na stránce seznamu produktů nebo zkontrolujte barevné varianty na stránce s podrobnostmi o produktu, abyste našli dokonalou shodu."],"promotion-info":["Swarovski po celý rok pořádá prodejní akce; abyste zůstali informováni, doporučujeme přihlásit se k odběru našeho newsletteru."],"promotion-extension":["Naše akce mají vždy pevně stanovené období platnosti. Jakmile uplyne konečné datum, slevové kódy přestanou fungovat nebo se vrátí standardní cena. Objednávky provedené před spuštěním akce nelze změnit, aby bylo možné využít nejnovější akci."],"promotion-quality":["Zkontrolujte Podmínky a Pravidla promoakce, abyste se ujistili, že váš produkt splňuje podmínky, a ověřte, že objednávka byla zadána během promočního období.","Pro více informací prosím zkontrolujte <a href="/s-faq-order/?accordionID=CC-Overview_AE-purchase_qualify" target="_blank" rel="noopener noreferrer">Časté dotazy</a>."],"order-resendOrderConfirmation":["Samozřejmě! Pokud chcete získat aktualizaci ke své objednávce, navštivte <a href="/s-faq-orderstatus/Swarovski-Order-Status-FAQs/" target="_blank" rel="noopener noreferrer">stav objednávky</a>. Pokud neznáte číslo své objednávky, jednoduše uveďte svou e-mailovou adresu a my vám znovu zašleme potvrzení objednávky."],"order-orderStatus":["Stav vaší objednávky si můžete snadno zkontrolovat zde <a href="/s-faq-orderstatus/Swarovski-Order-Status-FAQs/" target="_blank" rel="noopener noreferrer">Stav objednávky</a>."],"order-cancelEntire":["Zrušení objednávky může být možné přibližně do 15 minut od obdržení potvrzení objednávky.","Pro více informací prosím zkontrolujte <a href="/s-faq-order/?accordionID=CC-Overview_AE-cancel_order_new" target="_blank" rel="noopener noreferrer">Časté dotazy</a>."],"order-cancelPartially":["Částečné zrušení není možné, pouze úplné zrušení objednávky do přibližně 15 minut od potvrzení.","Podrobnosti naleznete v <a href="/s-faq-order/?accordionID=CC-Overview_AE-cancel_order_new" target="_blank" rel="noopener noreferrer">FAQ</a>."],"order-changeBillingAddress":["Nemůžeme změnit fakturační adresu."],"order-return":["můžete postupovat podle kroků uvedených v našich <a href="/s-faq-return/?accordionID=CC-Overview_AE-how-do-I-return-my-item" target="_blank" rel="noopener noreferrer">FAQ</a> pro podrobné pokyny."],"order-returnPolicy":["Další informace o naší zásadě vrácení najdete zde <a href="/s-faq-return/?accordionID=CC-Overview_AE-can-I-do-a-return" target="_blank" rel="noopener noreferrer">FAQ</a>"],"order-onlineRefundStatus":["Vrácení trvá přibližně 14 pracovních dnů. Jakmile obdržíme vaši vrácenou objednávku, obdržíte potvrzovací e-mail a refundace může trvat až 10 pracovních dnů, než se objeví na vašem účtu.","Pro více informací navštivte naši <a href="/s-faq-return/?accordionID=CC-Purchase-Returns_AE-when-will-I-receive-my-refund" target="_blank" rel="noopener noreferrer">Časté dotazy</a>."],"exchange-exchangeProduct":["Výměny nejsou možné. Prosím, vraťte nežádoucí zboží podle naší politiky vrácení a zadejte novou objednávku na správný produkt.","Pro více informací navštivte naši <a href="/s-faq-return/?accordionID=CC-Purchase-Returns_AE-exchange-purchase" target="_blank" rel="noopener noreferrer">Časté dotazy</a>."],"exchange-exchangeInStore":["Můžete najít podrobné informace v našich <a href="/s-faq-return/?accordionID=CC-Purchase-Returns_AE-exchange-product" target="_blank" rel="noopener noreferrer">FAQ</a>"],"exchange-exchangeProductFromAnotherCountry":["Z různých důvodů nemá Swarovski globální politiku výměny nebo vrácení zboží. Proto nemůžeme vyměnit, nahradit nebo vrátit produkty zakoupené v jiných zemích."],"delivery-tracking":["Sledovací odkaz jste obdrželi s potvrzením odeslání. Alternativně můžete průběh zásilky zkontrolovat zde: <a href="/s-faq-orderstatus/Swarovski-Order-Status-FAQs/" target="_blank" rel="noopener noreferrer">order status</a>."],"delivery-damagedItem":["Za vzniklé nepříjemnosti se omlouváme. Kontaktujte prosím naši zákaznickou podporu a zašlete fotografie přepravního obalu a poškozeného výrobku, a my pro vás najdeme řešení."],"delivery-missingItem":["Za vzniklé nepříjemnosti se omlouváme. Byla přepravní krabice poškozena? Kontaktujte prosím naši zákaznickou podporu a zašlete fotografie přepravní krabice, a my to prošetříme a najdeme řešení."],"delivery-changeAddress":["Změna doručovací adresy nebo data nemusí být možná, jakmile je balíček na cestě. Pro správu možností doručení můžete využít webový portál našeho doručovacího partnera.","Pro více informací navštivte naši <a href="/s-faq-shipping/Swarovski-Shipping-FAQs/?accordionID=CC-Overview_AE-delivery_address" target="_blank" rel="noopener noreferrer">Časté dotazy</a>."],"delivery-changeCountry":["Dorucení do jiné země/regionu není možné. Objednejte si prosím v online obchodě cílové destinace. Chcete-li změnit zemi/region a jazyk, klikněte na název země/regionu v nabídce výběru."],"payment-electronicCard":["Elektronické dárkové karty se zadávají ve fázi platby při pokladně. Zkontrolujte, zda zadáváte správně 10místné nebo 16místné číslo karty. Ujistěte se, že nezadáváte slevový kód nebo voucher.","Další informace najdete zde <a href="/s-faq-giftcard-voucher/Swarovski-Gift-Cards-Voucher-FAQs/?accordionID=CC-Purchase-Vouchers_AE-voucher-not-working" target="_blank" rel="noopener noreferrer">FAQ</a>"],"payment-multipleElectronicGiftCards":["Chcete-li platit více dárkovými kartami, postupujte podle kroků ke sloučení dárkových karet ve fázi platby."],"payment-payWith":["Chcete-li uplatnit svou dárkovou kartu, postupujte podle těchto jednoduchých kroků popsaných v našich <a href="/s-faq-giftcard-voucher/Swarovski-Gift-Cards-Voucher-FAQs/?accordionID=CC-Purchase-Vouchers_AE-redeem-gift-card" target="_blank" rel="noopener noreferrer">FAQ</a>."],"payment-rejection":["Ujistěte se, že vaše platba a osobní údaje jsou konzistentní. Další informace naleznete v našich <a href="/s-faq-payment/Swarovski-Payment-FAQs/?accordionID=CC-Purchase-Payment_AE-methods" target="_blank" rel="noopener noreferrer">FAQ</a>."],"website-unableToCheckout":["Por favor, consulte aquí antes de contactarnos <a href="/s-faq-order/?accordionID=CC-Purchase-Order_AE-website-issue" target="_blank" rel="noopener noreferrer">Problema de sitio web en FAQ</a>."],"website-resetPassword":["Por favor, use la función "¿Olvidó su contraseña?".","Para más información por favor consulte aquí <a href="/s-faq-order/?accordionID=CC-Purchase-Order_AE-reset_pasword" target="_blank" rel="noopener noreferrer">FAQ</a>."],"website-unableToLogin":["Por favor, use la función "¿Olvidó su contraseña?".","Para más información por favor consulte aquí <a href="/s-faq-order/?accordionID=CC-Purchase-Order_AE-reset_pasword" target="_blank" rel="noopener noreferrer">FAQ</a>."],"swarovskiclub-unsubscribeNewsletter":["Enviamos dos tipos de correos electrónicos: boletines con promociones y colecciones, y actualizaciones de membresía (recompensas, estado o cambios en el programa). Para darse de baja de los boletines, haga clic en "cancelar suscripción" al final del correo o actualice sus configuraciones en "Mi cuenta" en Swarovski.com. Para detener todas las comunicaciones, incluidas las recompensas, comuníquese con Atención al Cliente para cerrar su cuenta."],"swarovskiclub-emailAfterUnsubscribe":["Si se ha dado de baja de nuestro boletín pero sigue siendo miembro de Swarovski Club, seguirá recibiendo correos electrónicos sobre recompensas, estado de nivel o cambios en el programa. Para detener esto, comuníquese con Atención al Cliente para cerrar su cuenta. Es posible que también esté suscrito a actualizaciones de una de nuestras submarcas."],"swarovskiclub-voucherNotWorking":["Para más detalles, por favor visite nuestra entrada en el FAQ sobre cómo vincular su membresía de club y utilizar su cupón de descuento <a href="/s-faq-club/?accordionID=CC-Membership-Swa-Club_AE-not-use-discount-voucher" target="_blank" rel="noopener noreferrer">FAQ</a>."],"swarovskiclub-extendedVoucher":["Los cupones de descuento del Swarovski Club no se pueden extender. El período de validez está especificado en los Términos y Condiciones incluidos en el correo electrónico de recompensa que recibió."],"swarovskiclub-saleItem":["Los cupones de descuento del Swarovski Club no se pueden usar en artículos en oferta. Para más detalles, consulte los Términos y Condiciones incluidos en el correo electrónico de recompensa que recibió."],"swarovskiclub-birthdayGiftVoucher":["Puede recoger su regalo en su tienda preferida. Si no tiene una o no está seguro de cuál visitar, puede iniciar sesión en su cuenta y seleccionar una tienda preferida. Alternativamente, también puede usar nuestro Localizador de Tiendas para encontrar una tienda que ofrezca el Swarovski Club. Los clientes en algunos mercados pueden canjear su regalo en línea con su próxima compra en línea."],"scsmembership-renewMembership":["Para renovar su membresía, siga estos sencillos pasos descritos en nuestra <a href="/s-faq-scs/Swarovski-Crystal-Society-FAQs-/?accordionID=SCS-LP_FAQ_AE-how-can-I-renew-membership" target="_blank" rel="noopener noreferrer">FAQ</a>"],"scsmembership-becomeMember":["Para convertirse en un nuevo miembro, siga estos sencillos pasos descritos en nuestra <a href="/s-faq-scs/Swarovski-Crystal-Society-FAQs-/?accordionID=CC-Membership-SCS_AE-how-to-join-renew-online" target="_blank" rel="noopener noreferrer">FAQ</a>"],"scsmembership-membershipArrival":["Los paquetes de membresía generalmente se envían de 4 a 6 semanas después de la inscripción, con nuevas membresías o renovaciones despachadas el primer día del mes siguiente. Para membresías de 3 años (2º y 3º año), los paquetes se envían a principios de año, lo que permite a los miembros disfrutar del regalo anual y explorar nuevas novedades."],"warranty-itemCoveredByWarrant":["Swarovski ofrece una garantía completa por defectos de fabricación y materiales en productos comprados en tiendas oficiales o minoristas autorizados.","Para más detalles sobre nuestra política de garantía, consulta nuestro <a href="/s-faq-warranty/?accordionID=CC-Products-Warranty_AE-policy" target="_blank" rel="noopener noreferrer">FAQ</a>"],"warranty-warrantyPolicy":["Para obtener una visión completa de nuestra política de garantía, visite nuestra sección dedicada de <a href="/s-faq-warranty/?accordionID=CC-Products-Warranty_AE-policy" target="_blank" rel="noopener noreferrer">Preguntas frecuentes</a>."],"repair-repairableItem":["Para averiguarlo, por favor lleva tu producto y comprobante de compra a la tienda Swarovski más cercana para su evaluación.","Puedes encontrar la tienda más cercana utilizando nuestro <a href="/store-finder/?features=repairService" target="_blank" rel="noopener noreferrer">Buscador de Tiendas</a> en línea"],"repair-status":["Puedes revisar fácilmente el estado de tu reparación aquí <a href="/s-faq-repairs/Swarovski-Repair-Replacement-FAQs/?accordionID=CheckRepairStatusThemedAccordionEntryComponent" target="_blank" rel="noopener noreferrer">Ver estado de reparación</a>"],"repair-cost":["Por favor, lleva tu producto y comprobante de compra a tu tienda Swarovski más cercana para una evaluación.","Puedes encontrar tu tienda más cercana utilizando nuestro <a href="/store-finder/?features=repairService" target="_blank" rel="noopener noreferrer">Localizador de Tiendas</a> en línea"],"repair-visitStore":["Debe visitar una tienda porque sólo las tiendas autorizadas están equipadas para evaluar y reparar adecuadamente el producto."]}
3
Opciones de contacto
Elije tu opción de contacto preferida
E-mailová adresa
Předpokládaná čekací doba:
1- 3 business days
Si tienes alguna pregunta o necesitas más información, no dudes en ponerte en contacto con nosotros a través del siguiente formulario. Estaremos encantados de ayudarte.
$(this).closest('#aa-contactEmailFormConfigWrapper').find('.js-aa-contactEmailFormConfig')
.formValidation(
{
autoFocus: false,
framework: 'bootstrap',
icon: {
valid: null,
invalid: null,
validating: null
},
fields: {
'values[contactEmailFormDefinition_title]': {
trigger: 'change',
validators: {
}
},
'values[contactEmailFormDefinition_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]*\u0024', ''))) {
messages.push('Povolena jsou pouze písmena.');
messagesEN.push('Povolena jsou pouze písmena.');
errorOccured |= true;
}
if (!value.trim().match(new RegExp('(?:^\u0024)|(?:^.*[a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F]{2}.*\u0024)|(?:^.*[^a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F. \\u3000\'\\-].*\u0024)', ''))) {
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[contactEmailFormDefinition_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]*\u0024', ''))) {
messages.push('Povolena jsou pouze písmena.');
messagesEN.push('Povolena jsou pouze písmena.');
errorOccured |= true;
}
if (!value.trim().match(new RegExp('(?:^\u0024)|(?:^.*[a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F]{2}.*\u0024)|(?:^.*[^a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F. \\u3000\'\\-].*\u0024)', ''))) {
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[contactEmailFormDefinition_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\\\\(\\\\)\\- \\\\.]*\u0024', ''))) {
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;
}
}
},
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[contactEmailFormDefinition_email]': {
trigger: 'blur',
validators: {
regexp: {
regexp: new RegExp('^(?=.{0,255}\u0024)(?=.{0,64}@)(?:(?!^\\.)(?!.*\\.@)(?!.*\\.\\.)[a-zA-Z0-9!#.\u0024%&\'*+\/=?^_‘{|}~-]+|\"(?:[\\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-]*\u0024)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\u0024', ''),
message: 'Zadejte prosím svou e-mailovou adresu.',
message_en: 'Zadejte prosím svou e-mailovou adresu.'
},
notEmpty: {
message: 'Zadejte prosím svou e-mailovou adresu.',
message_en: 'Zadejte prosím svou 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[contactEmailFormDefinition_country]': {
trigger: 'change',
validators: {
notEmpty: {
message: 'Zadejte prosím svou zemi\/region.',
message_en: 'Zadejte prosím svou zemi\/region.'
}
}
},
'values[contactEmailFormDefinition_swaClubMember]': {
trigger: 'change',
validators: {
}
},
'values[contactEmailFormDefinition_scsMember]': {
trigger: 'change',
validators: {
}
},
'values[contactEmailFormDefinition_scsMemberNumber]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'Zadejte prosím své členské číslo SCS.',
message_en: 'Zadejte prosím své členské číslo SCS.'
},
stringLength: {
message: 'Počet znaků v tomto poli musí být od 0 do 11.',
message_en: 'The number of characters for this field must be between 0 and 11',
min: 0
,
max: 11
},
}
},
'values[contactEmailFormDefinition_message]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'Zadejte prosím zprávu.',
message_en: 'Zadejte prosím zprávu.'
},
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
},
}
},
'values[contactEmailFormDefinition_contactOrderNo]': {
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('^([a-zA-Z0-9]{15})\u0024|^\u0024', ''))) {
messages.push('Please enter a valid order number (15 digits)');
messagesEN.push('Please enter a valid order number (15 digits)');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
stringLength: {
message: 'Počet znaků v tomto poli musí být od 0 do 40.',
message_en: 'The number of characters for this field must be between 0 and 40',
min: 0
,
max: 40
},
}
},
'values[contactEmailFormDefinition_contactRepairNo]': {
trigger: 'blur',
validators: {
stringLength: {
message: 'Počet znaků v tomto poli musí být od 0 do 40.',
message_en: 'The number of characters for this field must be between 0 and 40',
min: 0
,
max: 40
},
}
},
'values[contactEmailFormDefinition_contactTopic]': {
trigger: 'change',
validators: {
notEmpty: {
message: 'Vyberte předmět\/téma',
message_en: 'Vyberte předmět\/téma'
}
}
},
'values[contactEmailFormDefinition_contactSubject]': {
trigger: 'change',
validators: {
notEmpty: {
message: 'Vyberte předmět\/téma',
message_en: 'Vyberte předmět\/téma'
}
}
},
'values[contactEmailFormDefinition_contactSubjectTxt]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'Uveďte předmět',
message_en: 'Uveďte předmět'
},
stringLength: {
message: 'Počet znaků v tomto poli musí být od 0 do 40.',
message_en: 'The number of characters for this field must be between 0 and 40',
min: 0
,
max: 40
},
}
}
}
}
)
.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 */
var $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 = 'contactEmail';
if (!formId || formId === 'cfRequest' || formId === 'cfResponse') {
formId = 'contactEmailFormDefinition';
}
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();
}
};