// source --> https://activus-sport.pl/wp-content/plugins/local-pickup-for-woocommerce/public/js/local-pickup-woocommerce-public.js?ver=v1.1.2 
(function( $ ) {
	'use strict';

	/**
	 * All of the code for your public-facing JavaScript source
	 * should reside in this file.
	 *
	 * Note: It has been assumed you will write jQuery code here, so the
	 * $ function reference has been prepared for usage within the scope
	 * of this function.
	 *
	 * This enables you to define handlers, for when the DOM is ready:
	 *
	 * $(function() {
	 *
	 * });
	 *
	 * When the window is loaded:
	 *
	 * $( window ).load(function() {
	 *
	 * });
	 *
	 * ...and/or other possibilities.
	 *
	 * Ideally, it is not considered best practise to attach more than a
	 * single DOM-ready or window-load handler for a particular page.
	 * Although scripts in the WordPress core, Plugins and Themes may be
	 * practising this, we should strive to set a better example in our own work.
	 */
    $(function() {
        //pickup location dropdown init & change event ( "o" function in reference plugin )
        function dslpfw_initiate_select2() {
            var selct2_obj = $('.pickup-location-list');
            // var width = selct2_obj.closest('td').css('width');
            
            // Fixes for #105002 ticket issue
            if (selct2_obj.length === 0) { return; }

            selct2_obj.select2({ 
                width: 'resolve',
                templateResult: function (state) {
                    if (!state.id) {
                        return state.text;
                    }
                    var location_name = state.name ? state.name : $(state.element).data('name'),
                        location_address = state.address ? state.address : $(state.element).data('address'),
                        location_postcode = state.postcode ? state.postcode : $(state.element).data('postcode');
                    var $state = $(
                        '<span>' + location_name + '</span><br>' + 
                        '<small>' + location_address + ' - <em>' + location_postcode + '</em></small>'
                    );
                    return $state ? $state : state.text;
                },
                matcher: function(params, data) {
                    // If there are no search terms, return all of the data
                    if ($.trim(params.term) === '') {
                        return data;
                    }

                    // Prepare variables for matching
                    var term = params.term.toLowerCase();

                    // Search name, address, postcode fields
                    var name = '';
                    var address = '';
                    var postcode = '';
                    
                    // state.option for legacy, state.element for select2 4+
                    if (data.name) {
                        name = data.name.toLowerCase();
                    } else if (data.element) {
                        name = ($(data.element).data('name') || '').toLowerCase();
                    }

                    if (data.address) {
                        address = data.address.toLowerCase();
                    } else if (data.element) {
                        address = ($(data.element).data('address') || '').toLowerCase();
                    }
                    
                    if (data.postcode) {
                        postcode = data.postcode.toLowerCase();
                    } else if (data.element) {
                        var postcodeData = $(data.element).data('postcode');
                        postcode = (typeof postcodeData === 'string' ? postcodeData : (postcodeData !== undefined && postcodeData !== null ? String(postcodeData) : '')).toLowerCase();
                    }

                    // If search term matches name, address, or postcode
                    if (
                        name.indexOf(term) > -1 ||
                        address.indexOf(term) > -1 ||
                        postcode.indexOf(term) > -1
                    ) {
                        return data;
                    }

                    // Return null if not matched
                    return null;
                }
            });

            selct2_obj.off('change.ds-local-pickup').on( 'change.ds-local-pickup', function () {
                var object_type = $(this).data('pickup-object-type');
                var object_id = $(this).data('pickup-object-id');
                var current_val = $(this).val();
                var data;
                if( 'cart-item' === object_type ){
                    data = { 
                        action: 'dslpfw_set_cart_item_handling', 
                        security: dslpfw_front_vars.dslpfw_set_cart_item_handling_nonce, 
                        cart_item_key: object_id, 
                        pickup_data: { 
                            handling: 'pickup',
                            pickup_location_id: current_val 
                        } 
                    };
                }
                if( 'package' === object_type ){
                    data = { 
                        action: 'dslpfw_set_package_handling', 
                        security: dslpfw_front_vars.dslpfw_set_package_handling_nonce, 
                        package_id: object_id,  
                        pickup_location_id: current_val 
                    };
                } 
                $('.woocommerce-cart-form, .cart_totals, .woocommerce-checkout-review-order').block({
                    message: null,
                    overlayCSS: {
                        background: 'rgb(255, 255, 255)',
                        opacity: 0.6,
                    },
                });
                $.ajax({
                    type: 'POST',
                    url: dslpfw_front_vars.ajaxurl,
                    data: data,
                    success: function( responce ){
                        $('.woocommerce-cart-form, .cart_totals, .woocommerce-checkout-review-order').unblock();
                        if( responce.success ) {
                            if( dslpfw_front_vars.is_cart ) {
                                $(document).trigger('wc_update_cart');
                            }
                            if( dslpfw_front_vars.is_checkout ) {
                                $(document.body).trigger('update_checkout');
                            }
                        }
                    }
                });
            });
        }
        dslpfw_initiate_select2();

        //Toggle pickup and shipping handling for cart items ( "c" function in reference plugin )
        function dslpfw_toggle_pickup_shipping_handling() {
            $('a.dslpfw-local-pickup-enable, a.dslpfw-local-pickup-disable').on('click', function (e) {
                e.preventDefault();
                var handling;
                var toggle_parent = $(this).closest('.dslpfw-pickup-location-field-toggle');
                if( $(this).hasClass('dslpfw-local-pickup-enable') ) {
                    handling = 'pickup'; 
                    toggle_parent.find('a.dslpfw-local-pickup-enable').parent().hide();
                    toggle_parent.find('a.dslpfw-local-pickup-disable').parent().show();
                    toggle_parent.find('> div').show();
                } else {
                    handling = 'ship';
                    toggle_parent.find('a.dslpfw-local-pickup-enable').parent().show();
                    toggle_parent.find('a.dslpfw-local-pickup-disable').parent().hide();
                    toggle_parent.find('> div').hide();
                }
                var pickup_location_id = $(this).closest('td').find('.pickup-location-list').val();

                var data = {
                    action: 'dslpfw_set_cart_item_handling',
                    security: dslpfw_front_vars.dslpfw_set_cart_item_handling_nonce,
                    cart_item_key: toggle_parent.data('pickup-object-id'),
                    pickup_data: { 
                        handling: handling, 
                        pickup_location_id: pickup_location_id 
                    },
                };
                $('.woocommerce-cart-form').block({
                    message: null,
                    overlayCSS: {
                        background: 'rgb(255, 255, 255)',
                        opacity: 0.6,
                    },
                });
                $.ajax({
                    type: 'POST',
                    url: dslpfw_front_vars.ajaxurl,
                    data: data,
                    success: function( responce ){
                        if( 'per-order' === dslpfw_front_vars.pickup_selection_mode) {
                            $('.pickup-location-list').trigger('change');
                        }
                        $('.woocommerce-cart-form').unblock();
                        if( responce.success ) {
                            if( dslpfw_front_vars.is_cart ) {
                                $(document).trigger('wc_update_cart');
                            }
                            if( dslpfw_front_vars.is_checkout ) {
                                $(document.body).trigger('update_checkout');
                            }
                        }
                    }
                });
            });
        }
        dslpfw_toggle_pickup_shipping_handling();

        //On change shipping methos session data modify ( "i" function in reference plugin )
        $('input[name^="shipping_method"][type="radio"]').off('change.ds-local-pickup').on('change.ds-local-pickup', function () {
            var shipping_type = $(this).is(':checked') && 'ds_local_pickup' === $(this).val() ? 'pickup' : 'ship';
            var package_id = $(this).attr('data-index');
            $.ajax({
                type: 'POST',
                url: dslpfw_front_vars.ajaxurl,
                data: {
                    action: 'dslpfw_set_package_items_handling', 
                    security: dslpfw_front_vars.dslpfw_set_package_items_handling_nonce, 
                    package_id: package_id,  
                    handling: shipping_type
                },
                success: function( responce ){
                    if( responce.success ) {
                        if( dslpfw_front_vars.is_cart ) {
                            $(document.body).on('updated_shipping_method', function () {
                                return $(document).trigger('wc_update_cart');
                            });
                        }
                        if( dslpfw_front_vars.is_checkout ) {
                            h(document.body).one('updated_checkout', function () {
                                return h(document.body).trigger('update_checkout');
                            });
                        }
                    }
                }
            });
        });

        if(dslpfw_front_vars.is_cart) {
            remove_shipping_calc_and_details();
        }
        if(dslpfw_front_vars.is_checkout){
            dslpfw_show_hide_shipping_fields_checkout();
        }
        
        $('#order_review').find('> p.woocommerce-shipping-contents').remove(),
        $(document.body).on('updated_cart_totals', function () {
            remove_shipping_calc_and_details();
            dslpfw_toggle_pickup_shipping_handling();
            dslpfw_initiate_select2();
        });

        $(document.body).on('updated_checkout', function () {
            dslpfw_show_hide_shipping_fields_checkout();
            if( $('.dslpfw-pickup-location-appointment') ) {
                $('.dslpfw-pickup-location-appointment').each(function(){
                    var $this = $(this);
                    var pickup_location = $this.find('input.dslpfw-pickup-location-appointment-date').data('location-id');
                    $.ajax({
                        type: 'POST',
                        url: dslpfw_front_vars.ajaxurl,
                        data: {
                            action: 'dslpfw_get_pickup_location_appointment_data', 
                            security: dslpfw_front_vars.dslpfw_get_pickup_location_appointment_data_nonce, 
                            location_id: pickup_location
                        },
                        success: function( responce ){
                            if( responce.success ) {
                                update_datepicker($this, responce.data);
                            }                            
                        }
                    });
                });
                dslpfw_toggle_pickup_shipping_handling();
                dslpfw_initiate_select2();
            }
        });
    });

    function update_datepicker( $this, $appointment_data) {
        var datepicker_field = $this.find('input.dslpfw-pickup-location-appointment-date');
        var datepicker_field_val = $this.find('input.dslpfw-pickup-location-appointment-date-alt');
        var clear_datepicker = $this.find('[id^=dslpfw-date-clear-]');
        var datepicker_val = datepicker_field.val();
        var location_id = datepicker_field.data('location-id');
        var package_id = datepicker_field.data('package-id');
        var date_from_datepicker = ( '' !== datepicker_val ) ? new Date(datepicker_val) : ($appointment_data.default_date && '' !== $appointment_data.default_date ? new Date(1e3 * $appointment_data.default_date) : null );
        var disabled_dates = $appointment_data.unavailable_dates ? $.map($appointment_data.unavailable_dates, function (date) {
            return date;
        }) : [];
        
        // datepicker_field.attr('value', '');
        // datepicker_field.trigger('change');
        // datepicker_field.removeClass('hasDatepicker');
        // datepicker_field.datepicker('destroy');

        var min_date = new Date(1e3 * $appointment_data.calendar_start);
        var max_date = new Date(1e3 * $appointment_data.calendar_end);
        min_date = new Date(min_date.getTime() + 60 * min_date.getTimezoneOffset() * 1e3);
        max_date = new Date(max_date.getTime() + 60 * max_date.getTimezoneOffset() * 1e3);
        date_from_datepicker = new Date(date_from_datepicker.getTime() + 60 * date_from_datepicker.getTimezoneOffset() * 1e3);

        datepicker_field.datepicker({
            minDate: min_date,
            maxDate: max_date,
            altField: '#' + datepicker_field_val.attr('id'),
            altFormat: 'yy-mm-dd',
            dateFormat: 'MM dd, yy',
            defaultDate: date_from_datepicker || null,
            firstDay: dslpfw_front_vars.start_of_week,
            prevText: '',
            nextText: '',
            showOn: 'both',
            gotoCurrent: true,
            changeMonth: true,
            changeYear: true,
            beforeShow: function (e, t) {
                return $(t.dpDiv).addClass('dslpfw-appointment-datepicker').addClass('dslpfw-appointment-datepicker-' + package_id);
            },
            beforeShowDay: function (date) {
                date = $.datepicker.formatDate('yy-mm-dd', date);
                return [-1 === disabled_dates.indexOf(date), 'dslpfw_available'];
            },
            onSelect: show_timerange,
        })
        .one('init', function () {
            return $('button.ui-datepicker-trigger').attr('title', dslpfw_front_vars.datepicker_title);
        })
        .trigger('init');
        
        $this.find('select.dslpfw-pickup-location-appointment-offset').select2().on('change', function (e) {
            return e.preventDefault(), e.stopPropagation(), show_timerange($.datepicker.formatDate('yy-mm-dd', datepicker_field.datepicker('getDate')), datepicker_field);
        });

        var selected_date = datepicker_field.val() && datepicker_field.val().match(/^\d{4}-\d{2}-\d{2}$/) ? $.datepicker.parseDate('yy-mm-dd', datepicker_field.val()) : null;
        if( selected_date ){
            datepicker_field.datepicker('setDate', selected_date);
            $('#ui-datepicker-div').hide();
        } else {
            if( $appointment_data.auto_select_default && $appointment_data.default_date && '' !== $appointment_data.default_date ){
                var default_date = $.datepicker.parseDate('yy-mm-dd', $appointment_data.default_date);
                datepicker_field.datepicker('setDate', default_date);
                $('#ui-datepicker-div').hide();
                show_timerange( default_date, datepicker_field );
            }
        }

        clear_datepicker.on( 'click', function(e){
            e.preventDefault();
            $('.woocommerce-checkout-review-order').block({
                message: null,
                overlayCSS: {
                    background: 'rgb(255, 255, 255)',
                    opacity: 0.6,
                },
            });
            datepicker_field.datepicker('setDate', null);
            datepicker_field.attr('value', '');
            $.ajax({
                type: 'POST',
                url: dslpfw_front_vars.ajaxurl,
                data: {
                    action: 'dslpfw_set_package_handling', 
                    security: dslpfw_front_vars.dslpfw_set_package_handling_nonce, 
                    pickup_date: '', 
                    package_id: package_id, 
                    pickup_location_id: location_id,
                },
                success: function( responce ){
                    $('.woocommerce-checkout-review-order').unblock();
                    if( responce.success ) {
                        $this.find('.dslpfw-pickup-location-schedule').empty();
                        $(document.body).trigger('update_checkout');
                    }                            
                }
            });
        });
    }

    function show_timerange( datetext, ele ) {
        ele = ele.input ? ele.input : ele;
        var location_id = ele.data('location-id');
        var show_schedule_ele = ele.parent().parent();
        var package_id = ele.data('package-id');
        var pickup_date = $('#dslpfw-pickup-date-' + package_id).val();
        var pickup_offset = $('#dslpfw-pickup-appointment-offset-' + package_id);
        var pickup_offset_val = pickup_offset.val();
        if( datetext && pickup_date && new Date(pickup_date) ) {
            ele.attr( 'value', datetext );
            $('.woocommerce-checkout-review-order').block({
                message: null,
                overlayCSS: {
                    background: 'rgb(255, 255, 255)',
                    opacity: 0.6,
                },
            });
            $.ajax({
                type: 'POST',
                url: dslpfw_front_vars.ajaxurl,
                data: {
                    action: 'dslpfw_set_package_handling', 
                    security: dslpfw_front_vars.dslpfw_set_package_handling_nonce, 
                    pickup_date: pickup_date, 
                    package_id: package_id, 
                    pickup_location_id: location_id, 
                    appointment_offset: pickup_offset_val
                },
                success: function( responce ){
                    if( responce.success ) {
                        if( pickup_offset.length === 0 ) {
                            $.ajax({
                                type: 'POST',
                                url: dslpfw_front_vars.ajaxurl,
                                data: {
                                    action: 'dslpfw_get_pickup_location_opening_hours_list', 
                                    security: dslpfw_front_vars.dslpfw_get_pickup_location_opening_hours_list_nonce, 
                                    location: location_id, 
                                    package_id: package_id, 
                                    pickup_date: pickup_date
                                },
                                success: function( responce ){
                                    if (responce && responce.success) {
                                        var append_html = show_schedule_ele.find('.dslpfw-pickup-location-schedule');
                                        append_html.empty();
                                        append_html.append(responce.data);
                                        $(document.body).trigger('update_checkout');
                                    }
                                    $('.woocommerce-checkout-review-order').unblock();              
                                }
                            });
                        } else {
                            $(document.body).trigger('update_checkout');
                            $('.woocommerce-checkout-review-order').unblock();
                        }
                    } else {
                        $('.woocommerce-checkout-review-order').unblock();
                    }                        
                }
            });
        }
    }

    /** hide shipping calc and address for shipping details ("u" function in reference plugin) */
    function remove_shipping_calc_and_details(){
        $('.woocommerce-shipping-totals').each(function () {
            var checkValue = $(this).find('input.shipping_method:checked').val();
            var hiddenValue = $(this).find('input:hidden.shipping_method').val();
            if (checkValue === dslpfw_front_vars.shipping_method_id || hiddenValue === dslpfw_front_vars.shipping_method_id) {
                $(this).find('p.woocommerce-shipping-destination, .woocommerce-shipping-calculator').hide();
            }
        });
    }
    /** Hide shipping method checkbox from checkout page for pickup only ("p" function in reference plugin) */
    function dslpfw_show_hide_shipping_fields_checkout(){
        if( ! dslpfw_front_vars.dslpfw_display_shipping_address_fields ){
            var pickup_selected;
            if( 'per-item' === dslpfw_front_vars.pickup_selection_mode) {
                pickup_selected = parseInt($('#dslpfw-packages-to-pickup').val());
            } else {
                pickup_selected = $('.woocommerce-shipping-methods').find('input[value=ds_local_pickup]:checked').length;
        
                // If no radio button is found, get the value from the hidden input for local pick up
                if ( pickup_selected === 0 ) {
                    pickup_selected = $('input[type="hidden"][name^="shipping_method"][value="ds_local_pickup"]').length;
                }
            }

            if( pickup_selected > 0 ) {
                $('#shiptobilling, #ship-to-different-address').hide(),
                $('#shiptobilling, #ship-to-different-address').parent().find('h3').hide(),
                $('#ship-to-different-address input').prop('checked', !1),
                $('.shipping_address').hide();
            } else {
                $('#shiptobilling, #ship-to-different-address').show(),
                $('#shiptobilling, #ship-to-different-address').parent().find('h3').show(),
                $('#ship-to-different-address input').is(':checked') ? $('.shipping_address').show() : $('.shipping_address').hide();
            }
        }
    }

})( jQuery );
// source --> https://activus-sport.pl/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js?ver=2.7.0-wc.10.7.0 
/*!
 * 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)}();