jQuery(function($){
'use strict';
if(jQuery('#checkout_payment-page').length===0){
addInlineMessages();
function addInlineMessages(){
var woocommerceErrorsEl=$('.woocommerce-error');
var woocommerceInlineErrorsEl=$('li', woocommerceErrorsEl);
var inlineErrorMessagesEl=$('.js-custom-error-message');
if(inlineErrorMessagesEl.length){
inlineErrorMessagesEl.hide();
}
if(woocommerceInlineErrorsEl.length){
woocommerceInlineErrorsEl.each(function(){
var errorEl=$(this);
var errorText=$.trim(errorEl.html());
var targetFieldId;
var targetLabelFor=errorEl.data('id');
if(targetLabelFor){
targetFieldId=targetLabelFor.concat('_field');
}
else
{
var labelText;
var moznoLabelText=$.trim($('strong', errorEl).html());
if(!moznoLabelText.includes('Error')){
labelText=moznoLabelText;
}
if(!labelText){
if(errorText.toLowerCase().indexOf("eircode") >=0||errorText.toLowerCase().indexOf("postcode") >=0)
labelText='Eircode';
if(errorText.toLowerCase().indexOf("first") >=0) labelText="First";
if(errorText.toLowerCase().indexOf("last") >=0) labelText="Last";
if(errorText.toLowerCase().indexOf("email") >=0&&errorText.toLowerCase().indexOf("registered") < 0) labelText="mail";
if(errorText.toLowerCase().indexOf("type") >=0) labelText="type";
if(errorText.toLowerCase().indexOf("policy") >=0) labelText="consent";
}
var labelEl=$('label:contains(' + labelText + ')');
var pEl=$('p').has(labelEl);
targetFieldId=pEl.attr('id');
}
if(errorText&&(targetFieldId||targetLabelFor)){
var targetFieldEl;
if(targetFieldId){
targetFieldEl=$('#' + targetFieldId);
}else{
targetFieldEl=$('*').has(' label[for=' + targetLabelFor + ']');
}
if(targetFieldId==='order_privacy_policy_consent_field'){
document.getElementById(targetFieldId)
.appendChild(document.createElement('span'))
.classList.add('js-custom-error-message');
}
var errorMessageField=$('.js-custom-error-message', targetFieldEl);
if(targetFieldEl.length&&errorMessageField.length){
targetFieldEl.removeClass('woocommerce-validated');
targetFieldEl.addClass('woocommerce-invalid');
errorText=errorText.replace('Error:', '');
errorMessageField.html(errorText);
errorMessageField.show();
errorEl.hide();
}
else console.log('Jeden z prvkov sa nenasiel !!!', targetFieldEl, 'alebo', errorMessageField);
}});
if(woocommerceInlineErrorsEl.filter(':visible').length===0){
woocommerceErrorsEl.hide();
if(inlineErrorMessagesEl.filter(':visible').length > 0){
scrollToElement(inlineErrorMessagesEl.filter(':visible').first());
}}
else
{
scrollToElement(woocommerceErrorsEl);
}}
}
function scrollToElement(el){
if(el.length){
$([document.documentElement, document.body]).animate({
scrollTop: el.offset().top - 180
}, 2000);
}}
$(document.body).on('updated_checkout', function(){
addInlineMessages();
});
$(document.body).on('checkout_error', function(event){
jQuery('html, body').stop();
addInlineMessages();
});
$('button[value="Save address"]').on('click', function(){
addInlineMessages();
});
}});