Εταιρικά δώρα
Αίτημα παροχής πληροφοριώνi
Έχετε προσθέσει προϊόντα στο αίτημά σας. Αναφέρετε τις ποσότητες που επιθυμείτε και συμπληρώστε τη φόρμα. Ένας από τους εκπροσώπους μας θα επικοινωνήσει μαζί σας.
Δεν έχετε προσθέσει κανένα προϊόν στο αίτημά σας. Κάντε κλικ στον σύνδεσμο για να δείτε και να προσθέσετε προϊόντα στο αίτημά σας για πιο λεπτομερή προσφορά ή για να συνεχίσετε χωρίς προϊόντα.
Συμπληρώστε τα στοιχεία σας και ένας από τους διαχειριστές λογαριασμού εταιρικών δώρων θα επικοινωνήσει μαζί σας.
$(this).closest('#corporateGiftsContactFormConfigWrapper').find('.js-corporateGiftsContactFormConfig')
.formValidation(
{
autoFocus: false,
framework: 'bootstrap',
icon: {
valid: null,
invalid: null,
validating: null
},
fields: {
'values[corporateGiftsContactFormDefinition_title]': {
trigger: 'change',
validators: {
notEmpty: {
message: 'Εισαγάγετε έναν τίτλο',
message_en: 'Εισαγάγετε έναν τίτλο'
}
}
},
'values[corporateGiftsContactFormDefinition_firstName]': {
trigger: 'blur',
validators: {
callback: {
callback: function(value, validator, $field) {
var messages = [];
var messagesEN = [];
var errorOccured = false;
if ($field.attr('regexCheckDisabled') === 'true') {
return true;
}
if (!value.trim().match(new RegExp('^[. \\u3000\'\\-a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F\\u4E00-\\u9FFF\\u3400-\\u4DBF\\u3040-\\u30FF\\uF900-\\uFAFF\\uFF66-\\uFF9F\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uAC00-\\uD7FF\\u3005\\u3006\\u3024\\u3029\\u3031-\\u3035\\u0E00-\\u0E7F]*$', ''))) {
messages.push('Επιτρέπονται μόνο γράμματα');
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[corporateGiftsContactFormDefinition_lastName]': {
trigger: 'blur',
validators: {
callback: {
callback: function(value, validator, $field) {
var messages = [];
var messagesEN = [];
var errorOccured = false;
if ($field.attr('regexCheckDisabled') === 'true') {
return true;
}
if (!value.trim().match(new RegExp('^[. \\u3000\'\\-a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0370-\\u03FF\\u1F00-\\u1FFF\\u0400-\\u052F\\u1C80-\\u1C8F\\u2DE0-\\u2DFF\\uA640-\\uA69F\\u4E00-\\u9FFF\\u3400-\\u4DBF\\u3040-\\u30FF\\uF900-\\uFAFF\\uFF66-\\uFF9F\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uAC00-\\uD7FF\\u3005\\u3006\\u3024\\u3029\\u3031-\\u3035\\u0E00-\\u0E7F]*$', ''))) {
messages.push('Επιτρέπονται μόνο γράμματα');
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[corporateGiftsContactFormDefinition_jobTitle]': {
trigger: 'blur',
validators: {
stringLength: {
message: 'Έχετε υπερβεί το μέγιστο μήκος 40 χαρακτήρων για αυτό το πεδίο',
message_en: 'You have exceeded the maximum length of 40 characters for this field',
max: 40
},
}
},
'values[corporateGiftsContactFormDefinition_companyName]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'Εισαγάγετε την επωνυμία της εταιρείας σας.',
message_en: 'Εισαγάγετε την επωνυμία της εταιρείας σας.'
},
stringLength: {
message: 'Έχετε υπερβεί το μέγιστο μήκος 40 χαρακτήρων για αυτό το πεδίο',
message_en: 'You have exceeded the maximum length of 40 characters for this field',
max: 40
},
}
},
'values[corporateGiftsContactFormDefinition_email]': {
trigger: 'blur',
validators: {
regexp: {
regexp: new RegExp('^(?=.{0,255}$)(?=.{0,64}@)(?:(?!^\\.)(?!.*\\.@)(?!.*\\.\\.)[a-zA-Z0-9!#.$%&\'*+\/=?^_‘{|}~-]+|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f]){1,62}\")@(?!-)(?!.*\\.-)(?!.*-\\.)(?:[a-zA-Z0-9-]{1,61}\\.){1,126}(?=[a-zA-Z0-9-]*[a-zA-Z][a-zA-Z0-9-]*$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$', ''),
message: 'Εισαγάγετε την επαγγελματική διεύθυνση 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[corporateGiftsContactFormDefinition_emailConfirm]': {
trigger: 'blur',
validators: {
regexp: {
regexp: new RegExp('^(?=.{0,255}$)(?=.{0,64}@)(?:(?!^\\.)(?!.*\\.@)(?!.*\\.\\.)[a-zA-Z0-9!#.$%&\'*+\/=?^_‘{|}~-]+|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f]){1,62}\")@(?!-)(?!.*\\.-)(?!.*-\\.)(?:[a-zA-Z0-9-]{1,61}\\.){1,126}(?=[a-zA-Z0-9-]*[a-zA-Z][a-zA-Z0-9-]*$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$', ''),
message: 'Εισαγάγετε την επαγγελματική διεύθυνση 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
},
identical: {
field: 'values[corporateGiftsContactFormDefinition_email]',
message: 'Τα πεδία δεν ταιριάζουν.',
message_en: 'The fields do not match.'
}
}
},
'values[corporateGiftsContactFormDefinition_country]': {
trigger: 'change',
validators: {
notEmpty: {
message: 'Εισαγάγετε τη χώρα\/περιοχή σας.',
message_en: 'Εισαγάγετε τη χώρα\/περιοχή σας.'
}
}
},
'values[corporateGiftsContactFormDefinition_phone]': {
trigger: 'blur',
validators: {
callback: {
callback: function(value, validator, $field) {
var messages = [];
var messagesEN = [];
var errorOccured = false;
if ($field.attr('regexCheckDisabled') === 'true') {
return true;
}
if (!value.trim().match(new RegExp('^[\\\\+]{0,1}[0-9\\\\(\\\\)\\- \\\\.]*$', ''))) {
messages.push('εισαγάγετε τον αριθμό τηλεφώνου σας. (Μόνο αριθμοί, χωρίς κενά)');
messagesEN.push('εισαγάγετε τον αριθμό τηλεφώνου σας. (Μόνο αριθμοί, χωρίς κενά)');
errorOccured |= true;
}
if (errorOccured) {
return {
valid: false,
message: messages.join('<br/>'),
message_en: messagesEN
}
} else {
return true;
}
}
},
notEmpty: {
message: 'Εισαγάγετε τον αριθμό τηλεφώνου σας',
message_en: 'Εισαγάγετε τον αριθμό τηλεφώνου σας'
},
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[corporateGiftsContactFormDefinition_companySize]': {
trigger: 'change',
validators: {
notEmpty: {
message: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.global-b2bCustomerContact-companySize, error.genericConfigurableForm.companySize\u003C\/span\u003E',
message_en: '\u003Cspan style=\'color:#ff0000;\'\u003Eerror.genericConfigurableForm.global-b2bCustomerContact-companySize, error.genericConfigurableForm.companySize\u003C\/span\u003E'
}
}
},
'values[corporateGiftsContactFormDefinition_message]': {
trigger: 'blur',
validators: {
notEmpty: {
message: 'Συμπληρώστε τον λόγο επικοινωνίας',
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
},
}
},
}
}
)
.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 = 'corporateGiftsContactForm';
if (!formId || formId === 'cfRequest' || formId === 'cfResponse') {
formId = 'corporateGiftsContactFormDefinition';
}
ACC.tracking.pushFormSubmit(formId);
});
var replaceDatePatternWithValue = function(mandatory, fieldConfigCode, fieldConfigPattern) {
var date = fieldConfigPattern.toUpperCase();
var year = $("#" + fieldConfigCode + "_year").val();
var month = $("#" + fieldConfigCode + "_month").val();
var day = $("#" + fieldConfigCode + "_day").val();
date = date.replace(/[Y]+/, year);
date = date.replace(/[M]+/, month);
date = date.replace(/[D]+/, day);
var hiddenDateField = $('.js-' + fieldConfigCode + '_hidden');
if (mandatory) {
hiddenDateField.val(date);
} else {
hiddenDateField.val(date == "" ? "" : date);
}
};
var triggerFormValidation = function(fieldId, mandatory, fieldCode, dateFormat) {
replaceDatePatternWithValue(mandatory, fieldCode, dateFormat);
$('.js-fieldCode').formValidation('revalidateField', 'values[fieldCode_'+ fieldId + ']');
};
var removeDateMoleculeError = function(molecule) {
if(molecule.hasClass('has-error')){
molecule.removeClass('has-error');
molecule.find('.help-block').find('span').remove();
}
};