$(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: 'Επιλέξτε το θέμα σας',
message_en: 'Επιλέξτε το θέμα σας'
}
}
}
}
}
)
.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
Θέμα
Επιλέξτε ένα από τα ακόλουθα θέματα
$(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: 'Επιλέξτε το θέμα σας',
message_en: 'Επιλέξτε το θέμα σας'
}
}
}
}
}
)
.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: 'Εισαγάγετε το θέμα σας',
message_en: 'Εισαγάγετε το θέμα σας'
},
stringLength: {
message: 'Ο αριθμός των χαρακτήρων σε αυτό το πεδίο πρέπει να είναι μεταξύ 0 και 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":"Το γνωρίζατε:","product-size":["Για να βρείτε το ακριβές μέγεθός σας, παρακαλούμε χρησιμοποιήστε τον οδηγό μεγεθών μας.","Για περισσότερες πληροφορίες, παρακαλώ ελέγξτε τον <a href="/s-swarovski-ring-size/" target="_blank" rel="noopener noreferrer">Οδηγός μεγεθών</a>."],"product-availability":["Για να ελέγξετε τη διαθεσιμότητα σε κατάστημα, ακολουθήστε αυτά τα βήματα: <br/>1. Επιλέξτε το προϊόν σας από το ηλεκτρονικό μας κατάστημα. <br/>2. Στη σελίδα λεπτομερειών του προϊόντος, δίπλα από το "Προσθήκη στο Καλάθι", επιλέξτε "Εύρεση σε Κατάστημα" και στη συνέχεια κάντε κλικ στο "Click & Collect: Ελέγξτε διαθεσιμότητα." <br/>3. Εισάγετε την τρέχουσα ή προτιμώμενη τοποθεσία σας και δείτε τις διαθέσιμες επιλογές.","Για περισσότερες πληροφορίες, παρακαλώ ελέγξτε τις <a href="/s-faq-order/?accordionID=CC-Overview_AE-product_availibility" target="_blank" rel="noopener noreferrer">FAQ</a>."],"product-colors":["Χρησιμοποιήστε το φίλτρο χρώματος στη σελίδα λίστας προϊόντων ή ελέγξτε τις παραλλαγές χρωμάτων στη σελίδα λεπτομερειών προϊόντος για να βρείτε την τέλεια αντιστοιχία."],"promotion-info":["Η Swarovski πραγματοποιεί προσφορές καθ' όλη τη διάρκεια του έτους. Για να είστε ενημερωμένοι, σας προτείνουμε να εγγραφείτε στο ενημερωτικό μας δελτίο."],"promotion-extension":["Οι προσφορές μας έχουν πάντα προκαθορισμένες περιόδους ισχύος και μόλις παρέλθει η ημερομηνία λήξης, οι κωδικοί έκπτωσης σταματούν αυτόματα να λειτουργούν ή επιστρέφει η κανονική τιμή. Οι παραγγελίες που έγιναν πριν από την κυκλοφορία μιας προσφοράς δεν μπορούν να τροποποιηθούν για να επωφεληθούν από τη νέα προσφορά."],"promotion-quality":["Ελέγξτε τους όρους και προϋποθέσεις της προωθητικής ενέργειας για να βεβαιωθείτε ότι το προϊόν σας πληροί τα κριτήρια και επιβεβαιώστε ότι η παραγγελία σας έγινε κατά την περίοδο της προσφοράς.","Για περισσότερες λεπτομέρειες, δείτε τις <a href="/s-faq-order/?accordionID=CC-Overview_AE-purchase_qualify" target="_blank" rel="noopener noreferrer">FAQ</a>."],"order-resendOrderConfirmation":["Βεβαίως! Αν θέλετε ενημέρωση για την παραγγελία σας, επισκεφθείτε <a href="/s-faq-orderstatus/Swarovski-Order-Status-FAQs/" target="_blank" rel="noopener noreferrer">κατάσταση παραγγελίας</a>. Αν δεν γνωρίζετε τον αριθμό παραγγελίας σας, απλώς δώστε τη διεύθυνση email σας και θα σας ξαναστείλουμε την επιβεβαίωση της παραγγελίας."],"order-orderStatus":["Μπορείτε εύκολα να ελέγξετε την κατάσταση της παραγγελίας σας εδώ <a href="/s-faq-orderstatus/Swarovski-Order-Status-FAQs/" target="_blank" rel="noopener noreferrer">Κατάσταση Παραγγελίας</a>."],"order-cancelEntire":["Η ακύρωση παραγγελίας μπορεί να είναι δυνατή εντός 15 λεπτών (περίπου) από τη λήψη της επιβεβαίωσης παραγγελίας σας.","Για περισσότερες πληροφορίες, παρακαλώ ελέγξτε τις <a href="/s-faq-order/?accordionID=CC-Overview_AE-cancel_order_new" target="_blank" rel="noopener noreferrer">FAQ</a>."],"order-cancelPartially":["Μερικές ακυρώσεις δεν είναι δυνατές, μόνο πλήρεις ακυρώσεις παραγγελίας εντός περίπου 15 λεπτών από την επιβεβαίωση.","Δείτε τις <a href="/s-faq-order/?accordionID=CC-Overview_AE-cancel_order_new" target="_blank" rel="noopener noreferrer">Συχνές Ερωτήσεις</a> για λεπτομέρειες."],"order-changeBillingAddress":["Δεν μπορούμε να αλλάξουμε τη διεύθυνση χρέωσης."],"order-return":["Γνωρίζατε: ότι μπορείτε να ακολουθήσετε τα βήματα που περιγράφονται στις <a href="/s-faq-return/?accordionID=CC-Overview_AE-how-do-I-return-my-item" target="_blank" rel="noopener noreferrer">FAQ</a> μας για αναλυτική καθοδήγηση."],"order-returnPolicy":["Για περισσότερες πληροφορίες σχετικά με την πολιτική επιστροφών μας, κάντε κλικ εδώ <a href="/s-faq-return/?accordionID=CC-Overview_AE-can-I-do-a-return" target="_blank" rel="noopener noreferrer">FAQ</a>"],"order-onlineRefundStatus":["Οι επιστροφές διαρκούν περίπου 14 εργάσιμες ημέρες. Θα λάβετε ένα email επιβεβαίωσης μόλις λάβουμε την επιστροφή σας, και η επιστροφή χρημάτων μπορεί να διαρκέσει έως 10 εργάσιμες ημέρες για να εμφανιστεί στον λογαριασμό σας.","Για περισσότερες λεπτομέρειες, δείτε τις <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":["Οι ανταλλαγές δεν είναι δυνατές. Παρακαλούμε επιστρέψτε τα ανεπιθύμητα προϊόντα σύμφωνα με την πολιτική επιστροφών μας και πραγματοποιήστε νέα παραγγελία για το σωστό προϊόν.","Για περισσότερες λεπτομέρειες, δείτε τις <a href="/s-faq-return/?accordionID=CC-Purchase-Returns_AE-exchange-purchase" target="_blank" rel="noopener noreferrer">FAQ</a>."],"exchange-exchangeInStore":["Μπορείτε να βρείτε λεπτομερείς πληροφορίες στις <a href="/s-faq-return/?accordionID=CC-Purchase-Returns_AE-exchange-product" target="_blank" rel="noopener noreferrer">FAQ</a> μας."],"exchange-exchangeProductFromAnotherCountry":["Για διάφορους λόγους, η Swarovski δεν διαθέτει παγκόσμια πολιτική ανταλλαγής ή επιστροφής χρημάτων. Ως εκ τούτου, δεν μπορούμε να ανταλλάξουμε, αντικαταστήσουμε ή επιστρέψουμε προϊόντα που αγοράστηκαν σε άλλες χώρες."],"delivery-tracking":["Λάβατε τον σύνδεσμο παρακολούθησης με την επιβεβαίωση αποστολής σας. Εναλλακτικά, μπορείτε να ελέγξετε την πρόοδο της αποστολής σας εδώ: <a href="/s-faq-orderstatus/Swarovski-Order-Status-FAQs/" target="_blank" rel="noopener noreferrer">order status</a>."],"delivery-damagedItem":["Ζητούμε συγγνώμη για την ταλαιπωρία. Παρακαλούμε επικοινωνήστε με την εξυπηρέτηση πελατών μας και στείλτε μας φωτογραφίες του κουτιού αποστολής και του κατεστραμμένου προϊόντος, και θα αναζητήσουμε λύση για εσάς."],"delivery-missingItem":["Ζητούμε συγγνώμη για την ταλαιπωρία. Έχει παραβιαστεί το κουτί αποστολής"],"delivery-changeAddress":["Η αλλαγή της διεύθυνσης ή της ημερομηνίας παράδοσης μπορεί να μην είναι δυνατή όταν το δέμα είναι σε μεταφορά. Μπορείτε να χρησιμοποιήσετε την διαδικτυακή πύλη του συνεργάτη παράδοσης για να διαχειριστείτε τις επιλογές παράδοσης.","Για περισσότερες λεπτομέρειες, δείτε τις <a href="/s-faq-shipping/Swarovski-Shipping-FAQs/?accordionID=CC-Overview_AE-delivery_address" target="_blank" rel="noopener noreferrer">FAQ</a>."],"delivery-changeCountry":["Δεν είναι δυνατή η παράδοση σε άλλη χώρα/περιοχή. Παρακαλούμε παραγγείλετε από το ηλεκτρονικό κατάστημα του προορισμού παράδοσης. Για να αλλάξετε χώρα/περιοχή και γλώσσα, κάντε κλικ στο όνομα της χώρας/περιοχής στο μενού επιλογών."],"payment-electronicCard":["Οι ηλεκτρονικές δωροκάρτες εισάγονται στο στάδιο πληρωμής στο ταμείο. Επιβεβαιώστε ότι εισάγετε σωστά τον 10ψήφιο ή 16ψήφιο αριθμό κάρτας. Βεβαιωθείτε ότι δεν εισάγετε κωδικό έκπτωσης ή κουπόνι.","Για περισσότερες πληροφορίες, δείτε εδώ <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":["Για να πληρώσετε με πολλές δωροκάρτες, ακολουθήστε τα βήματα για να συγχωνεύσετε τις δωροκάρτες στο στάδιο πληρωμής."],"payment-payWith":["Για να εξαργυρώσετε την δωροκάρτα σας, ακολουθήστε αυτά τα εύκολα βήματα που περιγράφονται στην ενότητα <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":["Βεβαιωθείτε ότι η πληρωμή και τα προσωπικά σας δεδομένα είναι συνεπή. Για περισσότερες πληροφορίες, ελέγξτε τις <a href="/s-faq-payment/Swarovski-Payment-FAQs/?accordionID=CC-Purchase-Payment_AE-methods" target="_blank" rel="noopener noreferrer">FAQ</a> μας."],"website-unableToCheckout":["Παρακαλώ ελέγξτε εδώ πριν επικοινωνήσετε μαζί μας <a href="/s-faq-order/?accordionID=CC-Purchase-Order_AE-website-issue" target="_blank" rel="noopener noreferrer">Ζήτημα ιστότοπου FAQ</a>."],"website-resetPassword":["Παρακαλώ χρησιμοποιήστε τη λειτουργία "Ξεχάσατε τον κωδικό σας".","Για περισσότερες πληροφορίες, ελέγξτε εδώ <a href="/s-faq-order/?accordionID=CC-Purchase-Order_AE-reset_pasword" target="_blank" rel="noopener noreferrer">FAQ</a>."],"website-unableToLogin":["Παρακαλώ χρησιμοποιήστε τη λειτουργία "Ξεχάσατε τον κωδικό σας".","Για περισσότερες πληροφορίες, ελέγξτε εδώ <a href="/s-faq-order/?accordionID=CC-Purchase-Order_AE-reset_pasword" target="_blank" rel="noopener noreferrer">FAQ</a>."],"swarovskiclub-unsubscribeNewsletter":["Στέλνουμε δύο τύπους email: ενημερωτικά δελτία με προσφορές και συλλογές και ενημερώσεις συνδρομής (ανταμοιβές, κατάσταση ή αλλαγές προγράμματος). Για να καταργήσετε την εγγραφή σας από τα ενημερωτικά δελτία, κάντε κλικ στο «διαγραφή εγγραφής» στο κάτω μέρος του email ή ενημερώστε τις ρυθμίσεις σας στο «Ο λογαριασμός μου» στο Swarovski.com. Για να σταματήσετε όλες τις επικοινωνίες, συμπεριλαμβανομένων των ανταμοιβών, επικοινωνήστε με την Εξυπηρέτηση Πελατών για να κλείσετε τον λογαριασμό σας."],"swarovskiclub-emailAfterUnsubscribe":["Εάν έχετε καταργήσει την εγγραφή σας από το ενημερωτικό μας δελτίο αλλά παραμένετε μέλος του Swarovski Club, θα συνεχίσετε να λαμβάνετε email σχετικά με ανταμοιβές, κατάσταση επιπέδου ή αλλαγές προγράμματος. Για να σταματήσετε αυτά, επικοινωνήστε με την Εξυπηρέτηση Πελατών για να κλείσετε τον λογαριασμό σας. Μπορεί επίσης να είστε εγγεγραμμένοι σε ενημερώσεις από μία από τις υπο-μάρκες μας."],"swarovskiclub-voucherNotWorking":["Για περισσότερες λεπτομέρειες, παρακαλούμε επισκεφθείτε την ενότητα FAQ μας σχετικά με τον τρόπο σύνδεσης της ιδιότητας μέλους και τη χρήση του εκπτωτικού κουπονιού σας <a href="/s-faq-club/?accordionID=CC-Membership-Swa-Club_AE-not-use-discount-voucher" target="_blank" rel="noopener noreferrer">FAQ</a>."],"swarovskiclub-extendedVoucher":["Οι εκπτωτικοί κωδικοί του Swarovski Club δεν μπορούν να παραταθούν. Η περίοδος ισχύος αναφέρεται στους Όρους και Προϋποθέσεις που περιλαμβάνονται στο email ανταμοιβής που λάβατε."],"swarovskiclub-saleItem":["Τα κουπόνια έκπτωσης του Swarovski Club δεν μπορούν να χρησιμοποιηθούν με εκπτωτικά προϊόντα. Για περισσότερες λεπτομέρειες, ανατρέξτε στους Όρους και Προϋποθέσεις που περιλαμβάνονται στο email ανταμοιβής που λάβατε."],"swarovskiclub-birthdayGiftVoucher":["Μπορείτε να παραλάβετε το δώρο σας από το προτιμώμενο σας κατάστημα. Εάν δεν έχετε ή δεν είστε σίγουροι ποιο να επισκεφτείτε, μπορείτε να συνδεθείτε στον λογαριασμό σας και να επιλέξετε ένα προτιμώμενο κατάστημα. Εναλλακτικά, μπορείτε επίσης να χρησιμοποιήσετε τον Εντοπιστή Καταστημάτων για να βρείτε ένα κατάστημα που προσφέρει το Swarovski Club. Οι πελάτες σε ορισμένες αγορές μπορούν να εξαργυρώσουν το δώρο τους ηλεκτρονικά με την επόμενη διαδικτυακή αγορά τους."],"scsmembership-renewMembership":["Για να ανανεώσετε τη συνδρομή σας, ακολουθήστε αυτά τα εύκολα βήματα που περιγράφονται στην ενότητα <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":["Για να γίνετε νέο μέλος, ακολουθήστε αυτά τα εύκολα βήματα που περιγράφονται στην ενότητα <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":["Τα πακέτα συνδρομής αποστέλλονται συνήθως 4-6 εβδομάδες μετά την εγγραφή, με νέες ή ανανεωμένες συνδρομές να αποστέλλονται την πρώτη ημέρα του επόμενου μήνα. Για συνδρομές 3 ετών (2ο και 3ο έτος), τα πακέτα αποστέλλονται στις αρχές του έτους, επιτρέποντας στα μέλη να απολαύσουν το ετήσιο δώρο και να εξερευνήσουν νέες καινοτομίες."],"warranty-itemCoveredByWarrant":["Η Swarovski παρέχει πλήρη εγγύηση για κατασκευαστικά και υλικά ελαττώματα σε προϊόντα που αγοράστηκαν από επίσημα καταστήματα ή εξουσιοδοτημένους εμπόρους.","Για λεπτομέρειες σχετικά με την πολιτική εγγύησης μας, δείτε τις <a href="/s-faq-warranty/?accordionID=CC-Products-Warranty_AE-policy" target="_blank" rel="noopener noreferrer">FAQ</a>."],"warranty-warrantyPolicy":["Για μια πλήρη επισκόπηση της πολιτικής εγγύησής μας, επισκεφθείτε την ειδική ενότητα <a href="/s-faq-warranty/?accordionID=CC-Products-Warranty_AE-policy" target="_blank" rel="noopener noreferrer">FAQ</a>."],"repair-repairableItem":["Για να μάθετε περισσότερα, παρακαλώ προσκομίστε το προϊόν σας και την απόδειξη αγοράς στο πλησιέστερο κατάστημα Swarovski για αξιολόγηση.","Μπορείτε να βρείτε το πλησιέστερο κατάστημά σας χρησιμοποιώντας το online <a href="/store-finder/?features=repairService" target="_blank" rel="noopener noreferrer">Εντοπιστή Καταστήματος</a>."],"repair-status":["Μπορείτε εύκολα να ελέγξετε την κατάσταση της επισκευής σας εδώ <a href="/s-faq-repairs/Swarovski-Repair-Replacement-FAQs/?accordionID=CheckRepairStatusThemedAccordionEntryComponent" target="_blank" rel="noopener noreferrer">Έλεγχος Κατάστασης Επισκευής</a>."],"repair-cost":["Παρακαλώ προσκομίστε το προϊόν σας και την απόδειξη αγοράς στο πλησιέστερο κατάστημα Swarovski για αξιολόγηση.","Μπορείτε να βρείτε το πλησιέστερο κατάστημά σας χρησιμοποιώντας το online <a href="/store-finder/?features=repairService" target="_blank" rel="noopener noreferrer">Εντοπιστή Καταστήματος</a>."],"repair-visitStore":["Πρέπει να επισκεφθείτε ένα κατάστημα επειδή μόνο τα εξουσιοδοτημένα καταστήματα είναι εξοπλισμένα για να αξιολογούν και να επισκευάζουν σωστά το προϊόν."]}
Αν έχετε κάποια απορία ή θέλετε περισσότερες πληροφορίες, επικοινωνήστε μαζί μας χρησιμοποιώντας την παρακάτω φόρμα. Θα χαρούμε να σας βοηθήσουμε.
$(this).closest('#gr-contactEmailFormConfigWrapper').find('.js-gr-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('Επιτρέπονται μόνο γράμματα');
messagesEN.push('Επιτρέπονται μόνο γράμματα');
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('Ο ελάχιστος αριθμός χαρακτήρων είναι 2 χαρακτήρες');
messagesEN.push('Ο ελάχιστος αριθμός χαρακτήρων είναι 2 χαρακτήρες');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'Εισαγάγετε το όνομά σας.',
message_en: 'Εισαγάγετε το όνομά σας.'
},
stringLength: {
message: 'Έχετε υπερβεί το μέγιστο μήκος 40 χαρακτήρων για αυτό το πεδίο',
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('Επιτρέπονται μόνο γράμματα');
messagesEN.push('Επιτρέπονται μόνο γράμματα');
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('Ο ελάχιστος αριθμός χαρακτήρων είναι 2 χαρακτήρες');
messagesEN.push('Ο ελάχιστος αριθμός χαρακτήρων είναι 2 χαρακτήρες');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'Εισαγάγετε το επώνυμό σας.',
message_en: 'Εισαγάγετε το επώνυμό σας.'
},
stringLength: {
message: 'Έχετε υπερβεί το μέγιστο μήκος 40 χαρακτήρων για αυτό το πεδίο',
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('εισαγάγετε τον αριθμό τηλεφώνου σας. (Μόνο αριθμοί, χωρίς κενά)');
messagesEN.push('εισαγάγετε τον αριθμό τηλεφώνου σας. (Μόνο αριθμοί, χωρίς κενά)');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
stringLength: {
message: 'Έχετε υπερβεί το μέγιστο μήκος 20 χαρακτήρων για αυτό το πεδίο',
message_en: 'You have exceeded the maximum length of 20 characters for this field',
max: 20
},
callbackPhone: {
alias: 'callback',
message: 'Εισαγάγετε τον αριθμό τηλεφώνου σας',
message_en: 'Εισαγάγετε τον αριθμό τηλεφώνου σας',
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: 'Εισαγάγετε τη διεύθυνση email σας.',
message_en: 'Εισαγάγετε τη διεύθυνση email σας.'
},
notEmpty: {
message: 'Εισαγάγετε τη διεύθυνση email σας.',
message_en: 'Εισαγάγετε τη διεύθυνση email σας.'
},
stringLength: {
message: 'Ο αριθμός των χαρακτήρων σε αυτό το πεδίο πρέπει να είναι μεταξύ 0 και 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: 'Εισαγάγετε τη χώρα\/περιοχή σας.',
message_en: 'Εισαγάγετε τη χώρα\/περιοχή σας.'
}
}
},
'values[contactEmailFormDefinition_swaClubMember]': {
trigger: 'change',
validators: {
}
},
'values[contactEmailFormDefinition_scsMember]': {
trigger: 'change',
validators: {
}
},
'values[contactEmailFormDefinition_scsMemberNumber]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'Εισαγάγετε τον αριθμό μέλους SCS',
message_en: 'Εισαγάγετε τον αριθμό μέλους SCS'
},
stringLength: {
message: 'Ο αριθμός των χαρακτήρων σε αυτό το πεδίο πρέπει να είναι μεταξύ 0 και 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: 'Εισαγάγετε ένα μήνυμα',
message_en: 'Εισαγάγετε ένα μήνυμα'
},
stringLength: {
message: 'Ο αριθμός των χαρακτήρων σε αυτό το πεδίο πρέπει να είναι μεταξύ 0 και 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: 'Ο αριθμός των χαρακτήρων σε αυτό το πεδίο πρέπει να είναι μεταξύ 0 και 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: 'Ο αριθμός των χαρακτήρων σε αυτό το πεδίο πρέπει να είναι μεταξύ 0 και 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: 'Επιλέξτε το θέμα σας',
message_en: 'Επιλέξτε το θέμα σας'
}
}
},
'values[contactEmailFormDefinition_contactSubject]': {
trigger: 'change',
validators: {
notEmpty: {
message: 'Επιλέξτε το θέμα σας',
message_en: 'Επιλέξτε το θέμα σας'
}
}
},
'values[contactEmailFormDefinition_contactSubjectTxt]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'Εισαγάγετε το θέμα σας',
message_en: 'Εισαγάγετε το θέμα σας'
},
stringLength: {
message: 'Ο αριθμός των χαρακτήρων σε αυτό το πεδίο πρέπει να είναι μεταξύ 0 και 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();
}
};
Το πρόγραμμα περιήγησής σας έχει ενεργοποιημένο τον αποκλεισμό cookies, ενεργοποιήστε τα cookies και φορτώστε εκ νέου για να συνεχίσετε τη χρήση του ιστοτόπου.