// source --> https://holywings-store.com/wp-content/plugins/bulk-addto-cart-by-aheadworks/public/js/aw-bulk-addto-cart-public.js?ver=1.0 
var url    			= js_batc_var.site_url;
var aw_nonce_batc  	= js_batc_var.js_batc_nonce;
var ajax_url    	= js_batc_var.ajax_url;
var PAGINATION_SIZE = 5;

function aw_batc_public_checkIt(evt,allowed = '')
{
	evt = (evt) ? evt : window.event;
	 
	var charCode = (evt.which) ? evt.which : evt.keyCode;
	var charCode = (evt.which) ? evt.which : evt.keyCode;
	if(charCode === 46 && allowed == true)
	{
		return true;	
	}
	if(charCode > 31 && (charCode < 48 || charCode > 57))
	{
		status = "This field accepts numbers only.";
		return false;
	}
	status = "";
	return true;
}

jQuery(window).load(function(){
    /* Muliselect checkbox in data table*/
    jQuery(".hidecartbutton").hide();
    jQuery('.prod_checkbox').change(function() {
        if (!jQuery(this).is(":checked")) {
            jQuery(".aw-allselect_chk").prop('checked', false);
        }
        overallsummation();
    });


    jQuery(".aw-allselect_chk").click(function(){
        jQuery('#batc-list tr td input:checkbox').not(this).prop('checked', this.checked);
        jQuery(".aw-allselect_chk").not(this).prop('checked', this.checked);
        overallsummation();
    });

    jQuery(".batc_add_to_cart_button").click(function(e){
        e.preventDefault();
        var product       = {};
        var product_id    = '';
        var tab_id        = '';
        var id            = ''; 
        var rowid         = '';  
        var variation_id  = ''; 
        var single_prod   = [];  
        var flag          = true;
        var msg           = '';

        var redirect_to_cart= jQuery(".redirect_to_cart").val();
        var cart_page_url   = jQuery(".cart_page_url").val();

        var selected_pro= jQuery('input:checkbox:checked').map(function(index) {
                                if(jQuery.isNumeric(this.value)) {
                                    var product_id  = this.value;
                                    var currentRow  = jQuery(this).closest("tr");
                                    var row_id      = jQuery(this).closest("tr").attr('class');
                                    var rowid       = row_id.split('-');
                                    var tab_id      = rowid[rowid.length-1];    
                                    var quantity    = currentRow.find("input.batcquantity").val();
                                    var max_qty     = jQuery("#quantity-"+row_id).attr('max'); 

                                    if (parseInt(quantity) > parseInt(max_qty)) {
                                        msg ='Value must be less than or equal to ' + max_qty;
                                        jQuery("#quantity-"+row_id).css({'border':'1px solid red'});
                                        flag = false;
                                    }
                                    if (parseInt(quantity) <= 0 || quantity == "") {
                                        msg ='Value must be greater than 0';
                                        jQuery("#quantity-"+row_id).css({'border':'1px solid red'});
                                        flag = false;
                                    }
									if (flag == true) {
										jQuery("#quantity-"+row_id).css({'border':''});
									}

                                    var variation_id= currentRow.find("input.variation_id").val();
                                    product = {product_id:product_id, quantity: quantity, variation_id:variation_id};
                                    jQuery(currentRow.find('input[type="hidden"].any_variation_val')).each(function (index) {
                                        attribute_name = jQuery(this).attr('data-value');
                                        product[attribute_name] = jQuery(this).val();
                                    });
                                   return product;
                                }
                            }).get();

        if ( selected_pro.length == 0 ) {
            alert("Please select at least one product and try again");
            return false;
        }
        if(false == flag ) {
            alert(msg);
            return false;
        }

       jQuery(this).addClass('loading');
       var site_url = url+'/wp-admin/admin-ajax.php?';
       jQuery.ajax({
            url: site_url,
            type: 'POST',
            data: {action: "aw_add_multiple_products_to_cart",  products:selected_pro , redirect_to_cart:redirect_to_cart, nonce_batc_ajax:aw_nonce_batc},
            success:function(data) {
                
                if(data == 'no'){
                    jQuery('.batc_add_to_cart_button').removeClass('loading');
                    jQuery('.hidecartbutton').show();
                    jQuery.post(
                        woocommerce_params.ajax_url,
                        {'action': 'aw_batc_mode_theme_update_mini_cart'},
                        function(response) {
                            if(response){
                                var data = response.split('~');
                                jQuery('.widget_shopping_cart_content').html(data[0]);
                                var html = '<span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol"></span>&nbsp;'+data[1]+'</span> <span class="count">'+data[2]+' items</span>';
                                jQuery('a.cart-contents').html( html);
                            }
                        }
                    );
                } else if(data == 'yes'){
                    window.location.href = cart_page_url;
                }

            },
            error: function(errorThrown) {
                console.log(errorThrown);
            }
        });
    });

    /* onkey press get row total */
    jQuery(document).on('change', '.batcquantity', function(e) {
        var currentRow  = jQuery(this).closest("tr");
        var price       = parseFloat(currentRow.find('td.price').find("input.product_price").val());
        var current_sym = currentRow.find("span.symbol").text();
        var quantity    = parseInt(jQuery(this).val());
        var row_total   = price * quantity;

        var site_url = url+'/wp-admin/admin-ajax.php';
            jQuery.ajax({
                url: site_url,
                type: 'POST',
                data: {action: "aw_get_price_quantity_calculate",row_total:row_total, nonce_batc_ajax:aw_nonce_batc, screen: "site"},
                success:function(data) {

                     if(data.length>0) {
                        currentRow.find("td span.totalamount").html(data);
                        currentRow.find("td span.totalamount").attr('data-rowtotal',row_total);
                        currentRow.find("td input.totalamount").val(row_total);
                        overallsummation();
                     }
                }
            });       
        });

    overallsummation();
});

function seelct_any_variation(sel,$rowid)
{
    jQuery("#any_variation_"+$rowid).val(sel.value);
}

function change_variation_product(sel, key, product_id, $rowid)
{
    var value    = sel.value;
    var site_url = url+'/wp-admin/admin-ajax.php';
    var quantity = jQuery('#quantity-'+$rowid).val(); 
    var exist_vid= jQuery('#variation_id_'+$rowid).val(); 
    jQuery(".batc_add_to_cart_button").attr('disabled','disabled');
    jQuery.ajax({
        url: site_url,
        type: 'POST',
        data: {action: "aw_ajax_filterVariations_front", product_id:product_id, exist_vid:exist_vid,/*variation_arr:variation_arr,*/ key:key, value:value, quantity:quantity, nonce_batc_ajax:aw_nonce_batc},
        success:function(data) {

            if(data != 0){
             var data  = JSON.parse(data);
             if(data.appendto.length>0 && data.options.length>0) {
                jQuery("#selected-"+data.appendto+'-'+$rowid).find('option').removeAttr("selected") ;  
                jQuery("#selected-"+data.appendto+'-'+$rowid).empty();
                jQuery("#selected-"+data.appendto+'-'+$rowid).append(data.options);
                
                if (data.image_tag.length >0) {
                    jQuery(".product-image-"+$rowid).html("");
                    jQuery(".product-image-"+$rowid).append(data.image_tag);    
                }
                jQuery("#variation_id_"+$rowid).val(data.variation_id);
                if (data.price.length >0) {
                    
                    jQuery("#product_price-"+$rowid).val(data.price); 
                }
                if (data.rowtotal.length >0) {
                    total = quantity*data.price;
                    jQuery("#row_total-"+$rowid).val(total);   
                    jQuery("#rowtotalamt-"+$rowid).html(data.rowtotal);  
                }
                overallsummation();
                jQuery(".batc_add_to_cart_button").removeAttr('disabled');
             }
            } 
        }
    });
}

/* Total Summation of row total assign it to below table */
function overallsummation()
{
    var sum = 0;
    var current_sym = '';
    jQuery('table > tbody  > tr').each(function(index, tr) { 
         //var totasl = jQuery(tr + " span.totalamount").html();
         if(jQuery('input.prod_checkbox' , tr).is(":checked") ){
            var value = jQuery("input.totalamount", tr).val();   
            
            if(!isNaN(value)){
                sum += parseFloat(value);//Number(jQuery(this).text());   
            }
             jQuery("input.batcquantity",tr).prop('disabled', false);
         } else {
             jQuery("input.batcquantity",tr).prop('disabled', true);            
         }
    });
    var site_url = url+'/wp-admin/admin-ajax.php';
    jQuery.ajax({
        url: site_url,
        type: 'POST',
        data: {action: "aw_get_price_quantity_calculate",row_total:sum, nonce_batc_ajax:aw_nonce_batc, screen: "site"},
        success:function(data) {
             if(data.length>0) {
                jQuery('.overallsummation').text(data);
             }
        }
    });
    
}

function aw_batc_public_checkIt(evt,allowed = '')
{
	evt = (evt) ? evt : window.event;
	 
	var charCode = (evt.which) ? evt.which : evt.keyCode;
	var charCode = (evt.which) ? evt.which : evt.keyCode;
	if(charCode === 46 && allowed == true)
	{
		return true;
	}
	if(charCode > 31 && (charCode < 47 || charCode > 57))
	{
		status = "This field accepts numbers only.";
		return false;
	}
	status = "";
	return true;
}

function validation()
{
    var $flag = 0;
    var error_msg = [];
    error_msg[0] = '';
    error_msg[1] = 'Quantity is a required field';
    error_msg[2] = 'Numeric value is required';
    error_msg[3] = 'Quantity must be greater than 0';
    error_msg[4] = 'Quantity must be without decimal';
    error_msg[5] = 'Quantity must be numeric';
    jQuery('.batcquantity').each(function(index) {
        var pattern = /^\d+$/;
        var inputval= jQuery(this).val();
        var value   = parseInt(inputval);
        if (inputval.length == 0) {
            event.preventDefault();
            jQuery(this).css({'border':'1px solid red'});
            jQuery('span.errormsg-'+index).text(error_msg[1]).css({'color':'red'});
            $flag = 1;
        } 
        else if (value <=0) {
            event.preventDefault();
            jQuery(this).css({'border':'1px solid red'});
            jQuery('span.errormsg-'+index).text(error_msg[3]).css({'color':'red'});
            $flag = 3;
        } else if(!pattern.test(inputval)) 
        {
            event.preventDefault();
            jQuery(this).css({'border':'1px solid red'});
            jQuery('span.errormsg-'+index).text(error_msg[2]).css({'color':'red'});
            $flag = 4;
        } else if(!jQuery.isNumeric(inputval)) {
            event.preventDefault();
            jQuery(this).css({'border':'1px solid red'});
            jQuery('span.errormsg-'+index).text(error_msg[2]).css({'color':'red'});
            $flag = 1;
        } else {
            jQuery(this).css({'border':''});
            jQuery('span.errormsg-'+index).text(error_msg[0]).css('');
        }
    });
    if ($flag ) {
            return false;
    }
     return true;
};
// source --> https://holywings-store.com/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js?ver=2.7.0-wc.10.6.2 
/*!
 * jQuery blockUI plugin
 * Version 2.70.0-2014.11.23
 * Requires jQuery v1.7 or later
 *
 * Examples at: http://malsup.com/jquery/block/
 * Copyright (c) 2007-2013 M. Alsup
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 * Thanks to Amir-Hossein Sobhi for some excellent contributions!
 */
!function(){"use strict";function e(e){e.fn._fadeIn=e.fn.fadeIn;var t=e.noop||function(){},o=/MSIE/.test(navigator.userAgent),n=/MSIE 6.0/.test(navigator.userAgent)&&!/MSIE 8.0/.test(navigator.userAgent),i=(document.documentMode,"function"==typeof document.createElement("div").style.setExpression&&document.createElement("div").style.setExpression);e.blockUI=function(e){d(window,e)},e.unblockUI=function(e){a(window,e)},e.growlUI=function(t,o,n,i){var s=e('<div class="growlUI"></div>');t&&s.append("<h1>"+t+"</h1>"),o&&s.append("<h2>"+o+"</h2>"),n===undefined&&(n=3e3);var l=function(t){t=t||{},e.blockUI({message:s,fadeIn:"undefined"!=typeof t.fadeIn?t.fadeIn:700,fadeOut:"undefined"!=typeof t.fadeOut?t.fadeOut:1e3,timeout:"undefined"!=typeof t.timeout?t.timeout:n,centerY:!1,showOverlay:!1,onUnblock:i,css:e.blockUI.defaults.growlCSS})};l();s.css("opacity");s.on("mouseover",function(){l({fadeIn:0,timeout:3e4});var t=e(".blockMsg");t.stop(),t.fadeTo(300,1)}).on("mouseout",function(){e(".blockMsg").fadeOut(1e3)})},e.fn.block=function(t){if(this[0]===window)return e.blockUI(t),this;var o=e.extend({},e.blockUI.defaults,t||{});return this.each(function(){var t=e(this);o.ignoreIfBlocked&&t.data("blockUI.isBlocked")||t.unblock({fadeOut:0})}),this.each(function(){"static"==e.css(this,"position")&&(this.style.position="relative",e(this).data("blockUI.static",!0)),this.style.zoom=1,d(this,t)})},e.fn.unblock=function(t){return this[0]===window?(e.unblockUI(t),this):this.each(function(){a(this,t)})},e.blockUI.version=2.7,e.blockUI.defaults={message:"<h1>Please wait...</h1>",title:null,draggable:!0,theme:!1,css:{padding:0,margin:0,width:"30%",top:"40%",left:"35%",textAlign:"center",color:"#000",border:"3px solid #aaa",backgroundColor:"#fff",cursor:"wait"},themedCSS:{width:"30%",top:"40%",left:"35%"},overlayCSS:{backgroundColor:"#000",opacity:.6,cursor:"wait"},cursorReset:"default",growlCSS:{width:"350px",top:"10px",left:"",right:"10px",border:"none",padding:"5px",opacity:.6,cursor:"default",color:"#fff",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px","border-radius":"10px"},iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",forceIframe:!1,baseZ:1e3,centerX:!0,centerY:!0,allowBodyStretch:!0,bindEvents:!0,constrainTabKey:!0,fadeIn:200,fadeOut:400,timeout:0,showOverlay:!0,focusInput:!0,focusableElements:":input:enabled:visible",onBlock:null,onUnblock:null,onOverlayClick:null,quirksmodeOffsetHack:4,blockMsgClass:"blockMsg",ignoreIfBlocked:!1};var s=null,l=[];function d(d,c){var u,b,h=d==window,k=c&&c.message!==undefined?c.message:undefined;if(!(c=e.extend({},e.blockUI.defaults,c||{})).ignoreIfBlocked||!e(d).data("blockUI.isBlocked")){if(c.overlayCSS=e.extend({},e.blockUI.defaults.overlayCSS,c.overlayCSS||{}),u=e.extend({},e.blockUI.defaults.css,c.css||{}),c.onOverlayClick&&(c.overlayCSS.cursor="pointer"),b=e.extend({},e.blockUI.defaults.themedCSS,c.themedCSS||{}),k=k===undefined?c.message:k,h&&s&&a(window,{fadeOut:0}),k&&"string"!=typeof k&&(k.parentNode||k.jquery)){var y=k.jquery?k[0]:k,m={};e(d).data("blockUI.history",m),m.el=y,m.parent=y.parentNode,m.display=y.style.display,m.position=y.style.position,m.parent&&m.parent.removeChild(y)}e(d).data("blockUI.onUnblock",c.onUnblock);var g,v,I,w,U=c.baseZ;g=o||c.forceIframe?e('<iframe class="blockUI" style="z-index:'+U+++';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+c.iframeSrc+'"></iframe>'):e('<div class="blockUI" style="display:none"></div>'),v=c.theme?e('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+U+++';display:none"></div>'):e('<div class="blockUI blockOverlay" style="z-index:'+U+++';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>'),c.theme&&h?(w='<div class="blockUI '+c.blockMsgClass+' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(U+10)+';display:none;position:fixed">',c.title&&(w+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(c.title||"&nbsp;")+"</div>"),w+='<div class="ui-widget-content ui-dialog-content"></div>',w+="</div>"):c.theme?(w='<div class="blockUI '+c.blockMsgClass+' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(U+10)+';display:none;position:absolute">',c.title&&(w+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(c.title||"&nbsp;")+"</div>"),w+='<div class="ui-widget-content ui-dialog-content"></div>',w+="</div>"):w=h?'<div class="blockUI '+c.blockMsgClass+' blockPage" style="z-index:'+(U+10)+';display:none;position:fixed"></div>':'<div class="blockUI '+c.blockMsgClass+' blockElement" style="z-index:'+(U+10)+';display:none;position:absolute"></div>',I=e(w),k&&(c.theme?(I.css(b),I.addClass("ui-widget-content")):I.css(u)),c.theme||v.css(c.overlayCSS),v.css("position",h?"fixed":"absolute"),(o||c.forceIframe)&&g.css("opacity",0);var x=[g,v,I],C=e(h?"body":d);e.each(x,function(){this.appendTo(C)}),c.theme&&c.draggable&&e.fn.draggable&&I.draggable({handle:".ui-dialog-titlebar",cancel:"li"});var S=i&&(!e.support.boxModel||e("object,embed",h?null:d).length>0);if(n||S){if(h&&c.allowBodyStretch&&e.support.boxModel&&e("html,body").css("height","100%"),(n||!e.support.boxModel)&&!h)var E=p(d,"borderTopWidth"),O=p(d,"borderLeftWidth"),T=E?"(0 - "+E+")":0,M=O?"(0 - "+O+")":0;e.each(x,function(e,t){var o=t[0].style;if(o.position="absolute",e<2)h?o.setExpression("height","Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:"+c.quirksmodeOffsetHack+') + "px"'):o.setExpression("height",'this.parentNode.offsetHeight + "px"'),h?o.setExpression("width",'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'):o.setExpression("width",'this.parentNode.offsetWidth + "px"'),M&&o.setExpression("left",M),T&&o.setExpression("top",T);else if(c.centerY)h&&o.setExpression("top",'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"'),o.marginTop=0;else if(!c.centerY&&h){var n="((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "+(c.css&&c.css.top?parseInt(c.css.top,10):0)+') + "px"';o.setExpression("top",n)}})}if(k&&(c.theme?I.find(".ui-widget-content").append(k):I.append(k),(k.jquery||k.nodeType)&&e(k).show()),(o||c.forceIframe)&&c.showOverlay&&g.show(),c.fadeIn){var B=c.onBlock?c.onBlock:t,j=c.showOverlay&&!k?B:t,H=k?B:t;c.showOverlay&&v._fadeIn(c.fadeIn,j),k&&I._fadeIn(c.fadeIn,H)}else c.showOverlay&&v.show(),k&&I.show(),c.onBlock&&c.onBlock.bind(I)();if(r(1,d,c),h?(s=I[0],l=e(c.focusableElements,s),c.focusInput&&setTimeout(f,20)):function(e,t,o){var n=e.parentNode,i=e.style,s=(n.offsetWidth-e.offsetWidth)/2-p(n,"borderLeftWidth"),l=(n.offsetHeight-e.offsetHeight)/2-p(n,"borderTopWidth");t&&(i.left=s>0?s+"px":"0");o&&(i.top=l>0?l+"px":"0")}(I[0],c.centerX,c.centerY),c.timeout){var z=setTimeout(function(){h?e.unblockUI(c):e(d).unblock(c)},c.timeout);e(d).data("blockUI.timeout",z)}}}function a(t,o){var n,i,d=t==window,a=e(t),u=a.data("blockUI.history"),f=a.data("blockUI.timeout");f&&(clearTimeout(f),a.removeData("blockUI.timeout")),o=e.extend({},e.blockUI.defaults,o||{}),r(0,t,o),null===o.onUnblock&&(o.onUnblock=a.data("blockUI.onUnblock"),a.removeData("blockUI.onUnblock")),i=d?e(document.body).children().filter(".blockUI").add("body > .blockUI"):a.find(">.blockUI"),o.cursorReset&&(i.length>1&&(i[1].style.cursor=o.cursorReset),i.length>2&&(i[2].style.cursor=o.cursorReset)),d&&(s=l=null),o.fadeOut?(n=i.length,i.stop().fadeOut(o.fadeOut,function(){0==--n&&c(i,u,o,t)})):c(i,u,o,t)}function c(t,o,n,i){var s=e(i);if(!s.data("blockUI.isBlocked")){t.each(function(e,t){this.parentNode&&this.parentNode.removeChild(this)}),o&&o.el&&(o.el.style.display=o.display,o.el.style.position=o.position,o.el.style.cursor="default",o.parent&&o.parent.appendChild(o.el),s.removeData("blockUI.history")),s.data("blockUI.static")&&s.css("position","static"),"function"==typeof n.onUnblock&&n.onUnblock(i,n);var l=e(document.body),d=l.width(),a=l[0].style.width;l.width(d-1).width(d),l[0].style.width=a}}function r(t,o,n){var i=o==window,l=e(o);if((t||(!i||s)&&(i||l.data("blockUI.isBlocked")))&&(l.data("blockUI.isBlocked",t),i&&n.bindEvents&&(!t||n.showOverlay))){var d="mousedown mouseup keydown keypress keyup touchstart touchend touchmove";t?e(document).on(d,n,u):e(document).off(d,u)}}function u(t){if("keydown"===t.type&&t.keyCode&&9==t.keyCode&&s&&t.data.constrainTabKey){var o=l,n=!t.shiftKey&&t.target===o[o.length-1],i=t.shiftKey&&t.target===o[0];if(n||i)return setTimeout(function(){f(i)},10),!1}var d=t.data,a=e(t.target);return a.hasClass("blockOverlay")&&d.onOverlayClick&&d.onOverlayClick(t),a.parents("div."+d.blockMsgClass).length>0||0===a.parents().children().filter("div.blockUI").length}function f(e){if(l){var t=l[!0===e?l.length-1:0];t&&t.trigger("focus")}}function p(t,o){return parseInt(e.css(t,o),10)||0}}"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],e):e(jQuery)}();