Wybierz temat, byśmy mogli pomóc Ci w bardziej odpowiedni sposób
$(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: 'Vă rugăm să selectați tema\/subiectul',
message_en: 'Vă rugăm să selectați tema\/subiectul'
}
}
}
}
}
)
.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 = '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
Temat
Zaznacz jeden z następujących tematów
$(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: 'Vă rugăm să selectați tema\/subiectul',
message_en: 'Vă rugăm să selectați tema\/subiectul'
}
}
}
}
}
)
.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 = '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: 'Vă rugăm să introduceți subiectul',
message_en: 'Vă rugăm să introduceți subiectul'
},
stringLength: {
message: 'Numărul de caractere pentru acest câmp trebuie să fie între 0 și 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);
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 = '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":"Știați că:","product-size":["Aby poznać swój idealny rozmiar, skorzystaj z naszego przewodnika rozmiarów.","Więcej informacji znajdziesz w naszym <a href="/s-swarovski-ring-size/" target="_blank" rel="noopener noreferrer">Tabele rozmiarów</a>."],"product-availability":["Aby sprawdzić dostępność w sklepie, wykonaj następujące kroki: <br/>1. Wybierz produkt z naszego sklepu internetowego. <br/>2. Na stronie szczegółów produktu, obok "Dodaj do koszyka", wybierz "Znajdź w sklepie", a następnie kliknij "Click & Collect: Sprawdź dostępność". <br/>3. Wprowadź swoją aktualną lub preferowaną lokalizację i przeglądaj dostępne opcje.","Więcej informacji znajdziesz w naszych <a href="/s-faq-order/?accordionID=CC-Overview_AE-product_availibility" target="_blank" rel="noopener noreferrer">FAQ</a>."],"product-colors":["Użyj filtra kolorów na stronie listy produktów lub sprawdź warianty kolorystyczne na stronie produktu, aby znaleźć pożądaną wersję."],"promotion-info":["Swarovski oferuje promocje przez cały rok; aby być na bieżąco, zalecamy zapisanie się do naszego newslettera."],"promotion-extension":["Nasze promocje zawsze mają określony czas ważności. Po upływie daty zakończenia kody rabatowe przestają działać lub powraca cena standardowa. Zamówienia złożone przed rozpoczęciem promocji nie mogą zostać zmienione, aby skorzystać z aktualnej promocji."],"promotion-quality":["Sprawdź warunki promocji, aby upewnić się, że Twój produkt kwalifikuje się do promocji i potwierdź, że Twoje zamówienie zostało złożone w okresie promocyjnym.","Więcej szczegółów znajdziesz w naszych <a href="/s-faq-order/?accordionID=CC-Overview_AE-purchase_qualify" target="_blank" rel="noopener noreferrer">FAQ</a>."],"order-resendOrderConfirmation":["Oczywiście! Jeśli chcesz sprawdzić status swojego zamówienia, odwiedź <a href="/s-faq-orderstatus/Swarovski-Order-Status-FAQs/" target="_blank" rel="noopener noreferrer">status zamówienia</a>. Jeśli nie znasz numeru zamówienia, podaj swój adres e-mail, a wyślemy potwierdzenie zamówienia ponownie."],"order-orderStatus":["Możesz łatwo sprawdzić status swojego zamówienia tutaj <a href="/s-faq-orderstatus/Swarovski-Order-Status-FAQs/" target="_blank" rel="noopener noreferrer">Status zamówienia</a>."],"order-cancelEntire":["Anulowanie zamówienia może być możliwe w ciągu około 15 minut od otrzymania potwierdzenia zamówienia.","Więcej informacji znajdziesz w naszych <a href="/s-faq-order/?accordionID=CC-Overview_AE-cancel_order_new" target="_blank" rel="noopener noreferrer">FAQ</a>."],"order-cancelPartially":["Nie ma możliwości częściowego anulowania zamówienia – można jedynie anulować całe zamówienie w ciągu około 15 minut od otrzymania potwierdzenia.","Więcej informacji znajdziesz w <a href="/s-faq-order/?accordionID=CC-Overview_AE-cancel_order_new" target="_blank" rel="noopener noreferrer">FAQ</a>."],"order-changeBillingAddress":["Nie możemy zmienić adresu rozliczeniowego."],"order-return":["Możesz postępować zgodnie z krokami opisanymi w naszym <a href="/s-faq-return/?accordionID=CC-Overview_AE-how-do-I-return-my-item" target="_blank" rel="noopener noreferrer">FAQ</a>, aby uzyskać szczegółowe wskazówki."],"order-returnPolicy":["Aby uzyskać więcej informacji o naszej polityce zwrotów, kliknij tutaj <a href="/s-faq-return/?accordionID=CC-Overview_AE-can-I-do-a-return" target="_blank" rel="noopener noreferrer">FAQ</a>"],"order-onlineRefundStatus":["Zwroty zajmują około 14 dni roboczych. Otrzymasz e-mail z potwierdzeniem, gdy otrzymamy Twój zwrot, a zwrot pieniędzy może zająć do 10 dni roboczych, aby pojawił się na Twoim koncie.","Więcej szczegółów znajdziesz w naszych <a href="/s-faq-return/?accordionID=CC-Purchase-Returns_AE-when-will-I-receive-my-refund" target="_blank" rel="noopener noreferrer">FAQ</a>."],"exchange-exchangeProduct":["Wymiany nie są możliwe. Prosimy o zwrot niechcianych produktów zgodnie z naszą polityką zwrotów i złożenie nowego zamówienia na odpowiedni produkt.","Więcej szczegółów znajdziesz w naszych <a href="/s-faq-return/?accordionID=CC-Purchase-Returns_AE-exchange-purchase" target="_blank" rel="noopener noreferrer">FAQ</a>."],"exchange-exchangeInStore":["Możesz znaleźć szczegółowe informacje w naszym <a href="/s-faq-return/?accordionID=CC-Purchase-Returns_AE-exchange-product" target="_blank" rel="noopener noreferrer">FAQ</a>."],"exchange-exchangeProductFromAnotherCountry":["Z różnych powodów firma Swarovski nie ma międzynarodowej polityki wymiany ani zwrotu. W związku z tym nie możemy wymienić, zastąpić ani zaakceptować zwrotu produktów zakupionych w innych krajach."],"delivery-tracking":["Otrzymałeś link do śledzenia razem z potwierdzeniem wysyłki. Możesz również sprawdzić status przesyłki tutaj: <a href="/s-faq-orderstatus/Swarovski-Order-Status-FAQs/" target="_blank" rel="noopener noreferrer">order status</a>."],"delivery-damagedItem":["Przepraszamy za wszelkie niedogodności. Prosimy o kontakt z naszym działem obsługi klienta i wysłanie zdjęć przesyłki oraz uszkodzonego produktu, a my poszukamy dla Państwa rozwiązania.znajdziemy dla Państwa rozwiązanie."],"delivery-missingItem":["Przepraszamy za wszelkie niedogodności. Czy przesyłka została uszkodzona? Prosimy o kontakt z naszym działem obsługi klienta i wysłanie zdjęć przesyłki, a my to sprawdzimy i znajdziemy dla Państwa rozwiązanie."],"delivery-changeAddress":["Zmiana adresu dostawy lub daty może być niemożliwa, gdy przesyłka jest już w drodze. Możesz skorzystać z portalu internetowego naszego partnera dostaw, aby zarządzać opcjami dostawy.","Więcej szczegółów znajdziesz w naszych <a href="/s-faq-shipping/Swarovski-Shipping-FAQs/?accordionID=CC-Overview_AE-delivery_address" target="_blank" rel="noopener noreferrer">FAQ</a>."],"delivery-changeCountry":["Dostawa do innego kraju/regionu nie jest możliwa. Proszę złożyć zamówienie w sklepie internetowym miejsca docelowego. Aby zmienić kraj/region i język, kliknij odpowiednią nazwę w menu."],"payment-electronicCard":["Elektronicznych kart podarunkowych używa się na etapie płatności. Upewnij się, że poprawnie wprowadzasz 10- lub 16-cyfrowy numer karty. Sprawdź, czy nie wpisujesz kodu zniżkowego albo kuponu rabatowego.","Więcej informacji znajdziesz tutaj <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":["Aby zapłacić kilkoma kartami podarunkowymi, postępuj zgodnie z krokami łączenia kart podarunkowych na etapie płatności."],"payment-payWith":["Aby zrealizować swoją kartę podarunkową, postępuj zgodnie z prostymi krokami opisanymi w naszym <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":["Proszę upewnić się, że szczegóły płatności i dane osobowe są poprawne. Aby uzyskać więcej informacji, sprawdź nasze <a href="/s-faq-payment/Swarovski-Payment-FAQs/?accordionID=CC-Purchase-Payment_AE-methods" target="_blank" rel="noopener noreferrer">FAQ</a>."],"website-unableToCheckout":["Sprawdź informacje tutaj przed skontaktowaniem się z nami <a href="/s-faq-order/?accordionID=CC-Purchase-Order_AE-website-issue" target="_blank" rel="noopener noreferrer">Problem z witryną FAQ</a>."],"website-resetPassword":["Proszę użyć funkcji „Nie pamiętam hasła”.","Więcej informacji znajdziesz tutaj <a href="/s-faq-order/?accordionID=CC-Purchase-Order_AE-reset_pasword" target="_blank" rel="noopener noreferrer">FAQ</a>."],"website-unableToLogin":["Proszę użyć funkcji „Nie pamiętam hasła”.","Więcej informacji znajdziesz tutaj <a href="/s-faq-order/?accordionID=CC-Purchase-Order_AE-reset_pasword" target="_blank" rel="noopener noreferrer">FAQ</a>."],"swarovskiclub-unsubscribeNewsletter":["Przesyłamy dwa rodzaje e-maili: newsletter z promocjami i kolekcjami oraz aktualizacje dotyczące członkostwa (informacje o nagrodach, statusie lub zmianach w programie). Aby zrezygnować z newslettera, kliknij „Usuń subskrypcję” na dole wiadomości lub zmień ustawienia w zakładce „Moje konto” na Swarovski.com. Jeśli chcesz zrezygnować ze wszystkich wiadomości, w tym dotyczących nagród, skontaktuj się z Obsługą Klienta w celu usunięcia swojego konta."],"swarovskiclub-emailAfterUnsubscribe":["Jeśli zrezygnowałeś z naszego newslettera, ale nadal jesteś członkiem Swarovski Club, wciąż będziesz otrzymywać e-maile o nagrodach, statusie lub zmianach w programie. Aby zrezygnować z takich wiadomości, skontaktuj się z Obsługą Klienta w celu zamknięcia konta. Możesz również otrzymywać aktualizacje od jednego z naszych partnerów."],"swarovskiclub-voucherNotWorking":["Aby uzyskać więcej szczegółów, zapoznaj się z artykułem w naszym FAQ na temat członkostwa w klubie i wykorzystania kuponów rabatowych <a href="/s-faq-club/?accordionID=CC-Membership-Swa-Club_AE-not-use-discount-voucher" target="_blank" rel="noopener noreferrer">FAQ</a>."],"swarovskiclub-extendedVoucher":["Bony rabatowe Swarovski Club nie podlegają przedłużeniu. Okres ważności jest wskazany w Warunkach zawartych w otrzymanym mailu z nagrodą."],"swarovskiclub-saleItem":["Bony rabatowe Swarovski Club nie mogą być wykorzystane na przecenione artykuły. Więcej szczegółów znajdziesz w Warunkach w otrzymanym mailu z nagrodą."],"swarovskiclub-birthdayGiftVoucher":["Swój prezent możesz odebrać w wybranym sklepie. Jeśli nie masz preferowanego sklepu lub nie wiesz, do którego się udać, zaloguj się na swoje konto i wskaż sklep, który Ci odpowiada. Alternatywnie skorzystaj z naszej Wyszukiwarki Sklepów, aby znaleźć placówkę oferującą program Swarovski Club. W niektórych krajach klienci mogą również odebrać prezent online podczas kolejnych zakupów internetowych."],"scsmembership-renewMembership":["Aby odnowić członkostwo, wykonaj proste kroki opisane w naszym <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":["Aby dołączyć do programu, wykonaj proste kroki opisane w naszym <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":["Pakiety członkowskie są zazwyczaj wysyłane 4-6 tygodni po rejestracji, a nowe lub odnowione członkostwa są wysyłane pierwszego dnia następnego miesiąca. Dla członkostw 3-letnich (2. i 3. rok) pakiety są wysyłane na początku roku, dzięki czemu członkowie mogą cieszyć się corocznym prezentem i odkrywać nowości."],"warranty-itemCoveredByWarrant":["Swarovski oferuje pełną gwarancję na wady produkcyjne i materiałowe na produkty zakupione w oficjalnych sklepach lub u autoryzowanych sprzedawców.","Więcej szczegółów na temat naszej polityki gwarancyjnej znajdziesz w naszych <a href="/s-faq-warranty/?accordionID=CC-Products-Warranty_AE-policy" target="_blank" rel="noopener noreferrer">FAQ</a>."],"warranty-warrantyPolicy":["Wszystkie informacje dotyczące naszej polityki gwarancyjnej znajdziesz w odpowiedniej sekcji <a href="/s-faq-warranty/?accordionID=CC-Products-Warranty_AE-policy" target="_blank" rel="noopener noreferrer">FAQ</a>."],"repair-repairableItem":["Aby uzyskać więcej informacji, przynieś swój produkt oraz dowód zakupu do najbliższego sklepu Swarovski w celu oceny.","Najbliższy sklep możesz znaleźć, korzystając z naszego <a href="/store-finder/?features=repairService" target="_blank" rel="noopener noreferrer">Lokalizatora sklepów</a>."],"repair-status":["Możesz łatwo sprawdzić status swojej naprawy tutaj <a href="/s-faq-repairs/Swarovski-Repair-Replacement-FAQs/?accordionID=CheckRepairStatusThemedAccordionEntryComponent" target="_blank" rel="noopener noreferrer">Wyświetl status naprawy</a>."],"repair-cost":["Przynieś swój produkt oraz dowód zakupu do najbliższego sklepu Swarovski w celu oceny.","Najbliższy sklep możesz znaleźć, korzystając z naszego <a href="/store-finder/?features=repairService" target="_blank" rel="noopener noreferrer">Lokalizatora sklepów</a>."],"repair-visitStore":["Należy udać się do sklepu, ponieważ tylko autoryzowane sklepy dysponują odpowiednimi narzędziami do oceny i naprawy produktu."]}
3
Contact Options
Choose your preferred contact option
E-mail
Durata estimată de așteptare:
1- 3 zile lucrătoare
If you have a question or require further information, then please feel free to contact us using the form below. We would be happy to help.
$(this).closest('#hu-contactEmailFormConfigWrapper').find('.js-hu-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]*$', ''))) {
messages.push('Sunt permise doar litere');
messagesEN.push('Sunt permise doar litere');
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('Lungimea minimă este de 2 caractere');
messagesEN.push('Lungimea minimă este de 2 caractere');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'Vă rugăm să vă introduceți prenumele.',
message_en: 'Vă rugăm să vă introduceți prenumele.'
},
stringLength: {
message: 'Ați depășit lungimea maximă de 40 caractere pentru acest câmp',
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]*$', ''))) {
messages.push('Sunt permise numai litere');
messagesEN.push('Sunt permise numai litere');
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('Lungimea minimă este de 2 caractere');
messagesEN.push('Lungimea minimă este de 2 caractere');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'Vă rugăm să vă introduceți numele de familie.',
message_en: 'Vă rugăm să vă introduceți numele de familie.'
},
stringLength: {
message: 'Ați depășit lungimea maximă de 40 caractere pentru acest câmp',
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\\\\(\\\\)\\- \\\\.]*$', ''))) {
messages.push('vă rugăm să introduceți numărul dvs. de telefon. (doar cifre, fără spații)');
messagesEN.push('vă rugăm să introduceți numărul dvs. de telefon. (doar cifre, fără spații)');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
stringLength: {
message: 'Ați depășit lungimea maximă de 20 caractere pentru acest câmp',
message_en: 'You have exceeded the maximum length of 20 characters for this field',
max: 20
},
callbackPhone: {
alias: 'callback',
message: 'Vă rugăm să introduceți numărul dvs. de telefon',
message_en: 'Vă rugăm să introduceți numărul dvs. de telefon',
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}$)(?=.{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: 'Vă rugăm să introduceți adresa de e-mail.',
message_en: 'Vă rugăm să introduceți adresa de e-mail.'
},
notEmpty: {
message: 'Vă rugăm să introduceți adresa de e-mail.',
message_en: 'Vă rugăm să introduceți adresa de e-mail.'
},
stringLength: {
message: 'Numărul de caractere pentru acest câmp trebuie să fie între 0 și 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: 'Vă rugăm să introduceți țara\/regiunea.',
message_en: 'Vă rugăm să introduceți țara\/regiunea.'
}
}
},
'values[contactEmailFormDefinition_swaClubMember]': {
trigger: 'change',
validators: {
}
},
'values[contactEmailFormDefinition_scsMember]': {
trigger: 'change',
validators: {
}
},
'values[contactEmailFormDefinition_scsMemberNumber]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'Vă rugăm să introduceți numărul dvs. de membru SCS',
message_en: 'Vă rugăm să introduceți numărul dvs. de membru SCS'
},
stringLength: {
message: 'Numărul de caractere pentru acest câmp trebuie să fie între 0 și 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: 'Vă rugăm să introduceți un mesaj',
message_en: 'Vă rugăm să introduceți un mesaj'
},
stringLength: {
message: 'Numărul de caractere pentru acest câmp trebuie să fie între 0 și 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})$|^$', ''))) {
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: 'Numărul de caractere pentru acest câmp trebuie să fie între 0 și 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: 'Numărul de caractere pentru acest câmp trebuie să fie între 0 și 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: 'Vă rugăm să selectați tema\/subiectul',
message_en: 'Vă rugăm să selectați tema\/subiectul'
}
}
},
'values[contactEmailFormDefinition_contactSubject]': {
trigger: 'change',
validators: {
notEmpty: {
message: 'Vă rugăm să selectați tema\/subiectul',
message_en: 'Vă rugăm să selectați tema\/subiectul'
}
}
},
'values[contactEmailFormDefinition_contactSubjectTxt]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'Vă rugăm să introduceți subiectul',
message_en: 'Vă rugăm să introduceți subiectul'
},
stringLength: {
message: 'Numărul de caractere pentru acest câmp trebuie să fie între 0 și 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);
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 = '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();
}
};