// source --> https://www.guenergy.gr/wp-content/plugins/wt-smart-coupons-for-woocommerce/public/js/wt-smart-coupon-public.js?ver=2.2.9 
jQuery(function ($) {
    "use strict";
    $('form.checkout').on('change.wt_sc_payment_method_change', 'input[name="payment_method"]', function () {

        let t = {updateTimer: !1, dirtyInput: !1,
            reset_update_checkout_timer: function () {
                clearTimeout(t.updateTimer)
            }, trigger_update_checkout: function () {
                t.reset_update_checkout_timer(), t.dirtyInput = !1,
                        $(document.body).trigger("update_checkout")
            }
        };
        t.trigger_update_checkout();
        
    });


    $('document').ready(function(){
        
        /* After the coupon box click event was done */
        $(document).on("wt_sc_api_coupon_click_done", function(e){
            wt_unblock_node($( 'div.wt_coupon_wrapper'));
            wt_unblock_node($("div.wt-mycoupons"));
            wt_unblock_node($("div.wt_store_credit"));
        });

        /** Handle keyboard Enter press on coupons */
        $( document ).on("keypress", '.wt-single-coupon.active-coupon', function(e){
            if( 13 === e.which ) { // Enter key
                $( this ).trigger( 'click' );
            }
        } );

        $(document).on("click", '.wt-single-coupon.active-coupon', function(){        
            
            if(!$('.woocommerce-notices-wrapper').length){
                $('#main').prepend('<div class="woocommerce-notices-wrapper"></div>');
            }
            
            const coupon_code = ( typeof $(this).attr('data-code') === 'undefined' ? $(this).find('code').text() : $(this).attr('data-code') );
            const coupon_id = $(this).attr('data-id');

            $('div.wt_coupon_wrapper, div.wt_store_credit').each(function(){
                if($(this).find('.wt-single-coupon').length)
                {
                    wt_block_node($(this));
                }
            });

            /* For checkout block compatibility */
            if( $('.wc-block-checkout, .wc-block-cart').length ) {
                
                const coupon_click_event = new CustomEvent("wt_sc_api_coupon_clicked", {
                    detail:{ 'coupon_code' : coupon_code, 'coupon_id': coupon_id}
                });
                document.dispatchEvent(coupon_click_event);
                return false;
            }
            
            const data = {
                'coupon_code'   : coupon_code,
                'coupon_id'     : coupon_id,
                '_wpnonce'      : WTSmartCouponOBJ.nonces.apply_coupon
            };

            $.ajax({
                type: "POST",
                async: true,
                url: WTSmartCouponOBJ.wc_ajax_url + 'apply_coupon_on_click',
                data: data,
                success: function (response) {
                    if ( $( '.woocommerce-cart-form' ).length) {
                        update_cart(true);  // need only for cart page
                    }
                    
                    wt_unblock_node( $( 'div.wt_coupon_wrapper' ) );
                    wt_unblock_node($("div.wt-mycoupons"));
                    wt_unblock_node($("div.wt_store_credit"));

                    $( '.woocommerce-error, .woocommerce-message, .woocommerce-info' ).remove();
                    show_notice( response );
                    $(document.body).trigger("update_checkout");
                    $( document.body ).trigger("applied_coupon");

                    $('html, body').animate({
                        scrollTop: $(".woocommerce").offset().top
                    }, 1000);
                }
            });

        });

        /* For checkout block */
        if( $('.wc-block-checkout').length ) {
            $( document ).on("click", '[name="radio-control-wc-payment-method-options"]', function(){
                WTSmartCouponOBJ.payment_method = $('[name="radio-control-wc-payment-method-options"]:checked').val();
                let parent_div = $('[name="radio-control-wc-payment-method-options"]').parents('.wc-block-components-radio-control');
                parent_div.find('.wc-block-components-radio-control__option').removeClass('wc-block-components-radio-control__option-checked');
                wbte_set_block_checkout_values();
            });

            setTimeout( wbte_set_block_checkout_values, 200);
        }
    
    });

    /** Update payment method on session, if coupons are changed update checkout */
    $( document.body ).on( 'payment_method_selected', 
        function() {
            jQuery( document ).on( "updated_checkout", 
                function(){
                    const selectedPaymentMethod = $( 'form.checkout' ).find( 'input[name="payment_method"]:checked' ).val();
                    $.ajax({
                        type: "POST",
                        url: WTSmartCouponOBJ.wc_ajax_url + 'wbte_sc_update_payment_method_on_session',
                        data: {
                            'payment_method': selectedPaymentMethod,
                            '_wpnonce': WTSmartCouponOBJ.nonces.public
                        },
                        success: function( response ) {
                            if ( response ) {
                                $( 'form.checkout' ).trigger( 'update' );
                            }
                        }
                    });
                }
            );
        }
    );

    const wbte_set_block_checkout_values = function() {

        let payment_method = '';
        const shipping_method = {};
      
        if( $('[name="radio-control-wc-payment-method-options"]').length ) {
            
            /* Prepare payment method from radio button */
            payment_method = $('[name="radio-control-wc-payment-method-options"]:checked').val();           

        }
        
        /* Prepare shipping method from radio button */
        if( $('.wc-block-components-shipping-rates-control input[type="radio"]').length ) {         
            $('.wc-block-components-shipping-rates-control input[type="radio"]:checked').each(function(index){
                shipping_method[index] = $(this).val(); 
            });
        }

        /* Store the value to global variable to prevent future auto refresh blocking */
        WTSmartCouponOBJ.shipping_method = shipping_method;
        WTSmartCouponOBJ.payment_method = payment_method;

        
        /* Send ajax request to set the value */
        let order_summary_block = $('.wp-block-woocommerce-checkout-order-summary-block');
        wt_block_node( order_summary_block );
        
        $.ajax({
            type: "POST",
            async: true,
            url: WTSmartCouponOBJ.wc_ajax_url + 'wbte_sc_set_block_checkout_values',
            data: { '_wpnonce': WTSmartCouponOBJ.nonces.public, 'payment_method': payment_method, 'shipping_method': shipping_method },
            dataType: 'json',
            success:function( data ) {
                wt_unblock_node( order_summary_block );
            },
            error:function() {
               wt_unblock_node( order_summary_block ); 
            }
        });

        /* Trigger checkout block refresh */
        setTimeout(function(){ 
            const checkout_value_updated_event = new CustomEvent("wbte_sc_checkout_value_updated", {
                detail:{ 'payment_method' : payment_method, 'shipping_method': shipping_method }
            });
            document.dispatchEvent(checkout_value_updated_event);
        }, 1000);
        
    }

    
    /**
     * Function from cart.js by woocommmerce
     * @param {bool} preserve_notices 
     */
    const update_cart = function( preserve_notices ) {
        const $form = $( '.woocommerce-cart-form' );
        wt_block_node( $form );
        wt_block_node( $( 'div.cart_totals' ) );
        
        

        // Make call to actual form post URL.
        $.ajax( {
            type:     $form.attr( 'method' ),
            url:      $form.attr( 'action' ),
            data:     $form.serialize(),
            dataType: 'html',
            success:  function( response ) {
                update_wc_div( response, preserve_notices );
            },
            complete: function() {
                wt_unblock_node( $form );
                wt_unblock_node( $( 'div.cart_totals' ) );
            }
        } );
    }


    /**
     * 
     * @param {string} html_str 
     * @param {bool} preserve_notices 
     */
    const update_wc_div = function( html_str, preserve_notices ) {
        const $html       = $.parseHTML( html_str );
        const $new_form   = $( '.woocommerce-cart-form', $html );
        const $new_totals = $( '.cart_totals', $html );
        const $notices    = $( '.woocommerce-error, .woocommerce-message, .woocommerce-info', $html );

        // No form, cannot do this.
        if ( $( '.woocommerce-cart-form' ).length === 0 ) {
            window.location.href = window.location.href;
            return;
        }

        // Remove errors
        if ( ! preserve_notices ) {
            $( '.woocommerce-error, .woocommerce-message, .woocommerce-info' ).remove();
        }

        if ( $new_form.length === 0 ) {
            // If the checkout is also displayed on this page, trigger reload instead.
            if ( $( '.woocommerce-checkout' ).length ) {
                window.location.href = window.location.href;
                return;
            }

            // No items to display now! Replace all cart content.
            const $cart_html = $( '.cart-empty', $html ).closest( '.woocommerce' );
            $( '.woocommerce-cart-form__contents' ).closest( '.woocommerce' ).replaceWith( $cart_html );

            // Display errors
            if ( $notices.length > 0 ) {
                show_notice( $notices );
            }
        } else {
            // If the checkout is also displayed on this page, trigger update event.
            if ( $( '.woocommerce-checkout' ).length ) {
                $( document.body ).trigger( 'update_checkout' );
            }

            $( '.woocommerce-cart-form' ).replaceWith( $new_form );
            $( '.woocommerce-cart-form' ).find( ':input[name="update_cart"]' ).prop( 'disabled', true );

            if ( $notices.length > 0 ) {
                show_notice( $notices );
            }

            update_cart_totals_div( $new_totals );
        }

        $( document.body ).trigger( 'updated_wc_div' );
    };
    

    /**
     * Function from woocmmerce cart.js
     * @param {string} html_str 
     */
    const update_cart_totals_div = function( html_str ) {
        $( '.cart_totals' ).replaceWith( html_str );
        $( document.body ).trigger( 'updated_cart_totals' );
    };



    /**
     * function from cart.js by wooocommerce
     * @param { jQuery object } node 
     */
    const wt_block_node = function( node ) {

        node.addClass( 'processing' );

        if(typeof $.fn.block === 'function')
        {
            node.block({
                message: null,
                overlayCSS: {
                    background: '#fff',
                    opacity: 0.6
                }
            });
        }
    }
    window.wbte_sc_block_node = wt_block_node;
    
    /**
     * function from cart.js by wooocommerce
     * @param {jQuery object} $node 
     */
    const wt_unblock_node = function( node ) {
        
        node.removeClass( 'processing' );
        
        if(typeof $.fn.unblock === 'function')
        {
            node.unblock();
        }      
    };
    window.wbte_sc_unblock_node = wt_unblock_node;


    const show_notice = function( html_element, $target ) {
        if ( ! $target ) {
            $target = $( '.woocommerce-notices-wrapper:first' ) || $( '.cart-empty' ).closest( '.woocommerce' ) || $( '.woocommerce-cart-form' );
        }
        $target.prepend( html_element );
    };

});
// source --> https://www.guenergy.gr/wp-content/plugins/popups-for-divi/scripts/ie-compat.min.js?ver=3.2.7 
!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";var e,t=[],r="ResizeObserver loop completed with undelivered notifications.";!function(e){e.BORDER_BOX="border-box",e.CONTENT_BOX="content-box",e.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"}(e||(e={}));var n,o,i,s,a,c=function(e){return Object.freeze(e)},u=function(e,t){this.inlineSize=e,this.blockSize=t,c(this)},h=function(){function e(e,t,r,n){return this.x=e,this.y=t,this.width=r,this.height=n,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,c(this)}return e.prototype.toJSON=function(){var e=this;return{x:e.x,y:e.y,top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.width,height:e.height}},e.fromRect=function(t){return new e(t.x,t.y,t.width,t.height)},e}(),f=function(e){return e instanceof SVGElement&&"getBBox"in e},l=function(e){if(f(e)){var t=e.getBBox(),r=t.width,n=t.height;return!r&&!n}var o=e,i=o.offsetWidth,s=o.offsetHeight;return!(i||s||e.getClientRects().length)},d=function(e){var t,r;if(e instanceof Element)return!0;var n=null===(r=null===(t=e)||void 0===t?void 0:t.ownerDocument)||void 0===r?void 0:r.defaultView;return!!(n&&e instanceof n.Element)},p="undefined"!=typeof window?window:{},v=new WeakMap,g=/auto|scroll/,b=/^tb|vertical/,m=/msie|trident/i.test(p.navigator&&p.navigator.userAgent),y=function(e){return parseFloat(e||"0")},w=function(e,t,r){return void 0===e&&(e=0),void 0===t&&(t=0),void 0===r&&(r=!1),new u((r?t:e)||0,(r?e:t)||0)},E=c({devicePixelContentBoxSize:w(),borderBoxSize:w(),contentBoxSize:w(),contentRect:new h(0,0,0,0)}),S=function(e,t){if(void 0===t&&(t=!1),v.has(e)&&!t)return v.get(e);if(l(e))return v.set(e,E),E;var r=getComputedStyle(e),n=f(e)&&e.ownerSVGElement&&e.getBBox(),o=!m&&"border-box"===r.boxSizing,i=b.test(r.writingMode||""),s=!n&&g.test(r.overflowY||""),a=!n&&g.test(r.overflowX||""),u=n?0:y(r.paddingTop),d=n?0:y(r.paddingRight),p=n?0:y(r.paddingBottom),S=n?0:y(r.paddingLeft),x=n?0:y(r.borderTopWidth),T=n?0:y(r.borderRightWidth),z=n?0:y(r.borderBottomWidth),B=S+d,O=u+p,R=(n?0:y(r.borderLeftWidth))+T,M=x+z,A=a?e.offsetHeight-M-e.clientHeight:0,k=s?e.offsetWidth-R-e.clientWidth:0,C=o?B+R:0,N=o?O+M:0,D=n?n.width:y(r.width)-C-k,F=n?n.height:y(r.height)-N-A,P=D+B+k+R,_=F+O+A+M,j=c({devicePixelContentBoxSize:w(Math.round(D*devicePixelRatio),Math.round(F*devicePixelRatio),i),borderBoxSize:w(P,_,i),contentBoxSize:w(D,F,i),contentRect:new h(S,u,D,F)});return v.set(e,j),j},x=function(t,r,n){var o=S(t,n),i=o.borderBoxSize,s=o.contentBoxSize,a=o.devicePixelContentBoxSize;switch(r){case e.DEVICE_PIXEL_CONTENT_BOX:return a;case e.BORDER_BOX:return i;default:return s}},T=function(e){var t=S(e);this.target=e,this.contentRect=t.contentRect,this.borderBoxSize=c([t.borderBoxSize]),this.contentBoxSize=c([t.contentBoxSize]),this.devicePixelContentBoxSize=c([t.devicePixelContentBoxSize])},z=function(e){if(l(e))return 1/0;for(var t=0,r=e.parentNode;r;)t+=1,r=r.parentNode;return t},B=function(){var e=1/0,r=[];t.forEach((function(t){if(0!==t.activeTargets.length){var n=[];t.activeTargets.forEach((function(t){var r=new T(t.target),o=z(t.target);n.push(r),t.lastReportedSize=x(t.target,t.observedBox),o<e&&(e=o)})),r.push((function(){t.callback.call(t.observer,n,t.observer)})),t.activeTargets.splice(0,t.activeTargets.length)}}));for(var n=0,o=r;n<o.length;n++){(0,o[n])()}return e},O=function(e){t.forEach((function(t){t.activeTargets.splice(0,t.activeTargets.length),t.skippedTargets.splice(0,t.skippedTargets.length),t.observationTargets.forEach((function(r){r.isActive()&&(z(r.target)>e?t.activeTargets.push(r):t.skippedTargets.push(r))}))}))},R=function(){var e,n=0;for(O(n);t.some((function(e){return e.activeTargets.length>0}));)n=B(),O(n);return t.some((function(e){return e.skippedTargets.length>0}))&&("function"==typeof ErrorEvent?e=new ErrorEvent("error",{message:r}):((e=document.createEvent("Event")).initEvent("error",!1,!1),e.message=r),window.dispatchEvent(e)),n>0},M=[],A=function(e){if(!n){var t=0,r=document.createTextNode("");new MutationObserver((function(){return M.splice(0).forEach((function(e){return e()}))})).observe(r,{characterData:!0}),n=function(){r.textContent=""+(t?t--:t++)}}M.push(e),n()},k=0,C={attributes:!0,characterData:!0,childList:!0,subtree:!0},N=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],D=function(e){return void 0===e&&(e=0),Date.now()+e},F=!1,P=new(function(){function e(){var e=this;this.stopped=!0,this.listener=function(){return e.schedule()}}return e.prototype.run=function(e){var t=this;if(void 0===e&&(e=250),!F){F=!0;var r,n=D(e);r=function(){var r=!1;try{r=R()}finally{if(F=!1,e=n-D(),!k)return;r?t.run(1e3):e>0?t.run(e):t.start()}},A((function(){requestAnimationFrame(r)}))}},e.prototype.schedule=function(){this.stop(),this.run()},e.prototype.observe=function(){var e=this,t=function(){return e.observer&&e.observer.observe(document.body,C)};document.body?t():p.addEventListener("DOMContentLoaded",t)},e.prototype.start=function(){var e=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),N.forEach((function(t){return p.addEventListener(t,e.listener,!0)})))},e.prototype.stop=function(){var e=this;this.stopped||(this.observer&&this.observer.disconnect(),N.forEach((function(t){return p.removeEventListener(t,e.listener,!0)})),this.stopped=!0)},e}()),_=function(e){!k&&e>0&&P.start(),!(k+=e)&&P.stop()},j=function(){function t(t,r){this.target=t,this.observedBox=r||e.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return t.prototype.isActive=function(){var e,t=x(this.target,this.observedBox,!0);return e=this.target,f(e)||function(e){switch(e.tagName){case"INPUT":if("image"!==e.type)break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1}(e)||"inline"!==getComputedStyle(e).display||(this.lastReportedSize=t),this.lastReportedSize.inlineSize!==t.inlineSize||this.lastReportedSize.blockSize!==t.blockSize},t}(),I=function(e,t){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=e,this.callback=t},L=new WeakMap,W=function(e,t){for(var r=0;r<e.length;r+=1)if(e[r].target===t)return r;return-1},X=function(){function e(){}return e.connect=function(e,t){var r=new I(e,t);L.set(e,r)},e.observe=function(e,r,n){var o=L.get(e),i=0===o.observationTargets.length;W(o.observationTargets,r)<0&&(i&&t.push(o),o.observationTargets.push(new j(r,n&&n.box)),_(1),P.schedule())},e.unobserve=function(e,r){var n=L.get(e),o=W(n.observationTargets,r),i=1===n.observationTargets.length;o>=0&&(i&&t.splice(t.indexOf(n),1),n.observationTargets.splice(o,1),_(-1))},e.disconnect=function(e){var t=this,r=L.get(e);r.observationTargets.slice().forEach((function(r){return t.unobserve(e,r.target)})),r.activeTargets.splice(0,r.activeTargets.length)},e}(),V=function(){function e(e){if(0===arguments.length)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if("function"!=typeof e)throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");X.connect(this,e)}return e.prototype.observe=function(e,t){if(0===arguments.length)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!d(e))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");X.observe(this,e,t)},e.prototype.unobserve=function(e){if(0===arguments.length)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!d(e))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");X.unobserve(this,e)},e.prototype.disconnect=function(){X.disconnect(this)},e.toString=function(){return"function ResizeObserver () { [polyfill code] }"},e}();Element.prototype.matches||(Element.prototype.matches=Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector||function(e){for(var t=(this.document||this.ownerDocument).querySelectorAll(e),r=t.length;--r>=0&&t.item(r)!==this;);return r>-1}),Array.from||(Array.from=(o=Object.prototype.toString,i=function(e){return"function"==typeof e||"[object Function]"===o.call(e)},s=Math.pow(2,53)-1,a=function(e){var t=function(e){var t=Number(e);return isNaN(t)?0:0!==t&&isFinite(t)?(t>0?1:-1)*Math.floor(Math.abs(t)):t}(e);return Math.min(Math.max(t,0),s)},function(e){var t=this,r=Object(e);if(null==e)throw new TypeError("Array.from requires an array-like object - not null or undefined");var n,o=arguments.length>1?arguments[1]:void 0;if(void 0!==o){if(!i(o))throw new TypeError("Array.from: when provided, the second argument must be a function");arguments.length>2&&(n=arguments[2])}for(var s,c=a(r.length),u=i(t)?Object(new t(c)):new Array(c),h=0;h<c;)s=r[h],u[h]=o?void 0===n?o(s,h):o.call(n,s,h):s,h+=1;return u.length=c,u})),function(){var e=Array.prototype.slice;try{e.call(document.documentElement)}catch(t){Array.prototype.slice=function(t,r){if(r=void 0!==r?r:this.length,"[object Array]"===Object.prototype.toString.call(this))return e.call(this,t,r);var n,o,i=[],s=this.length,a=t||0;a=a>=0?a:Math.max(0,s+a);var c="number"==typeof r?Math.min(r,s):s;if(r<0&&(c=s+r),(o=c-a)>0)if(i=new Array(o),this.charAt)for(n=0;n<o;n++)i[n]=this.charAt(a+n);else for(n=0;n<o;n++)i[n]=this[a+n];return i}}}(),window.ResizeObserver=V,String.prototype.padStart||Object.defineProperty(String.prototype,"padStart",{configurable:!0,writable:!0,value:function(e,t){return e>>=0,t=String(void 0!==t?t:" "),this.length>e?String(this):((e-=this.length)>t.length&&(t+=t.repeat(e/t.length)),t.slice(0,e)+String(this))}})}));
// source --> https://www.guenergy.gr/wp-content/themes/divi-cart-pro//assets/js/script.js?ver=6.9.4 
jQuery(document).ready(function($){
	function dfh_collapse_menu() {
		var ParentMenuItem = $('#et_mobile_nav_menu .et_mobile_menu .menu-item-has-children > a');
		ParentMenuItem.off('click').click(function() {
			$(this).attr('href', '#/');  
			$(this).parent().children().children().toggleClass('dfh-show-menu-items');
			$(this).toggleClass('dfh-menu-switched-icon');
		});
	}

	$(window).load(function() {
		setTimeout(function() {
			dfh_collapse_menu();
		}, 700);
	});
});
// source --> https://www.guenergy.gr/wp-content/plugins/minimum-purchase-for-woocommerce/woo-integration/js/vtmin-clear-cart-msgs.js?ver=6.9.4 
     jQuery(document).ready(function($) {
     //******************
     //v1.09.8 NEW
     //******************
     /*
     wc_clear_notices
     doesn't clear old notices in all cases
     this takes care of it.
     Switched on via filter.
     */
        /*  THESE TWO ONLY WORK 1ST TIME
        $(".remove").click(function(e) {  //'remove' is the class on the 'x' to delete products from the cart
          $(".woocommerce-error").remove();
          e.preventDefault();
         });
         
       $(".button").click(function(e) { //'button' is the class for the 'apply coupon' and 'update cart' buttons
        $(".woocommerce-error").remove();
        e.preventDefault();
       });
       */

      $(document).delegate('.remove', 'click', function(){
        $(".woocommerce-error").remove();
      });

      $(document).delegate('.button', 'click', function(){
        $(".woocommerce-error").remove();
      });
                                                                      
    });