// source --> https://doctorfullinyeccion.cl/wp-content/plugins/swastarkencl/assets/js/front-swastarkencl.js?ver=7.0 
/**
 * Swastarkencl is private software: you CANNOT redistribute it, sell it and/or 
 * modify it under or in any form without written authorization of its owner / developer.
 *
 * Swastarkencl is distributed / sell in the hope that it will be useful to you.
 *
 * You should have received a copy of its License along with Swastarkencl. 
 * If not, see https://www.softwareagil.com.
 */


// ATTENTION: Select2 is a problematic library with Starken's functionalies. It was removed intentionally!

jQuery(document).ready(function($) {
    var Swastarkencl = {
        current_state_agencies_list: null,
        current_state_selected: null,
        current_rut_entered: null,
        current_agency_selected: null,
        trigger_list_communes_change_event: true,
        previous_selected_commune: null,
        selected_commune_city_name: null,
        selected_commune_agency_name: null,
        loading_agencies: false,
        selected_state_need_agencies: true,
        current_shipping_city_value: null,
        DEBUG_MODE: false,

        scroll_to: function (element, callback) {
            $([document.documentElement, document.body]).animate({
                scrollTop: element.offset().top - 50
            }, 500, callback);
        },

        load_agencies_by_state: function (state_id) {
            Swastarkencl.current_state_selected = state_id;
            $('#swastarkencl-list-of-agencies').addClass('swastarkencl-loading-agencies');
            $('#swastarkencl-list-of-agencies').empty();
            $.ajax({
                type : "POST",
                dataType : "json",
                url : swastarkencl.url,
                data : {
                    action: swastarkencl.commune_agencies_from_api_action,
                    state_id: state_id,
                    nonce: swastarkencl.nonce
                },

                beforeSend: function() {
                    $('#swastarkencl-loading-indicator').show();
                    Swastarkencl.loading_agencies = true;
                },

                success: Swastarkencl.handleAgenciesResponse
            });
        },

        handleAgenciesResponse: function (response) {
            var active_agencies = 0;
            Swastarkencl.selected_state_need_agencies = true;
            Swastarkencl.loading_agencies = false;

            if (
                (response != null && response.agencies.length == 0)
                || (response != null && response.city != null && response.city.destino_indirecto)
            ) {
                Swastarkencl.selected_state_need_agencies = false;
                Swastarkencl.selected_commune_city_name = response.city !== null ?? response.city.name;
                Swastarkencl.save_customer_agency();
                $('#swastarkencl-list-of-regions').trigger('change');
                return;
            }
            
            Swastarkencl.selected_commune_city_name = response != null ?? response.city.name;
            // Set state agencies holder to use in other parts
            Swastarkencl.current_state_agencies_list = [];
            Swastarkencl.current_state_agencies_list[Swastarkencl.current_state_selected] = response;

            if (response != null && response.agencies.length > 0) {

                // Visibility of agencies wrappers
                $('#swastarkencl-agencies-wrapper-row').show();
                $('#swastarkencl-agency-details-wrapper').hide();

                $('#swastarkencl-list-of-agencies').append($('<option>', {
                    value: '',
                    text: $('#swastarkencl-list-of-agencies').data('empty-option-label')
                }));

                for(i in response.agencies) {
                    if (response.agencies[i].status.toLowerCase() == "active" && response.agencies[i].code_dls != null) {
                        active_agencies++;
                        var newOption = $('<option>', {
                            value: response.agencies[i].code_dls,
                            text: response.agencies[i].name
                        });

                        if (response.agencies[i].code_dls == $('#swastarkencl-list-of-agencies').data('selected-agency')) {
                            $(newOption).prop('selected', true);
                        }
                        $('#swastarkencl-list-of-agencies').append(newOption);
                    }
                }

                $('#swastarkencl-list-of-agencies')
                    .removeClass('swastarkencl-loading-agencies')
                    .addClass('swastarkencl-agencies-loaded');
            }

            if (active_agencies == 0 && $('#swastarkencl-list-of-agencies').length > 0) {
                $('#swastarkencl-agencies-wrapper-row').hide();
                Swastarkencl.hideLodingIndicator();
                $('#swastarkencl-list-of-communes').prop(
                    'selectedIndex',
                    Swastarkencl.previous_selected_commune
                ).change();
                $('#swastarkencl-list-of-regions').trigger('change');
                return;
            }

            // Hide loading element
            Swastarkencl.hideLodingIndicator();
            $('#swastarkencl-list-of-regions').trigger('change');
        },

        show_agency_details: function(agency_dls_code) {
            var agencies = Swastarkencl.current_state_agencies_list[Swastarkencl.current_state_selected].agencies;
            if (agencies != null && agencies.length > 0) {
                $('#swastarkencl-agency-details-wrapper').show();

                for(i in agencies) {
                    if (agencies[i].code_dls == agency_dls_code) {
                        $('#swastarkencl_agency_location').attr(
                            'href',
                            'https://www.google.com/maps/@'+agencies[i].latitude+','+agencies[i].longitude+',18z'
                        )
                        $('#swastarkencl-agency-address-value').html(agencies[i].address);

                        if (agencies[i].phone != '') {
                            $('#swastarkencl-agency-phone-value').html(agencies[i].phone);
                        }

                        $('#swastarkencl-agency-delivery-value').html(
                            agencies[i].delivery ? $('#swastarkencl-agency-delivery-value').data('yes') : $('#swastarkencl-agency-delivery-value').data('no')
                        );

                        $('#swastarkencl-agency-weight-restrictions-value').html(agencies[i].weight_restriction);
                    }
                }
            }
        },

        add_state_listener: function () {
            Swastarkencl.previous_selected_commune = $('#swastarkencl-list-of-communes').prop('selectedIndex');

            $(document).on('change', '#swastarkencl-list-of-communes', function() {
                var state_id = $(this).find('option:selected').val();
                Swastarkencl.current_agency_selected = null;

                if (state_id == '') {
                    $('#swastarkencl-list-of-agencies').empty();
                    return;
                }

                // Secure that billing_address_2 | Number is always displayed!
                // Use it when Correos de Chile is available
                $('#billing_address_2, form [name="billing_address_2"]').parent().parent().show();

                $('#swastarkencl-agencies-wrapper-row').hide();

                if ($('[name="billing_rut"]').val() == '') {
                    Swastarkencl.scroll_to($('[name="billing_rut"]'), function() {
                        $('[name="billing_rut"]').focus();
                        if (Swastarkencl.trigger_list_communes_change_event) {
                            $('#swastarkencl-list-of-communes').val(null).trigger('change');
                            Swastarkencl.trigger_list_communes_change_event = false
                        }
                    });
                } else if (swastarkencl.hide_deliver_to_agencies_options !== 'yes') {
                    Swastarkencl.log('Since agencies are enabled, load_agencies_by_state() is executed');
                    Swastarkencl.load_agencies_by_state(state_id);
                } else {
                    Swastarkencl.current_state_selected = state_id;
                    Swastarkencl.save_customer_agency();
                }

                if (document.querySelector('#swastarkencl-rating-message')) {
                    document.querySelector('#swastarkencl-rating-message').style.display = 'block';
                }
            });

            var state_id = $('#swastarkencl-list-of-communes').find('option:selected').val();
            if (state_id != '') {
                Swastarkencl.load_agencies_by_state(state_id);
            }
        },

        add_agency_listener: function () {
            $(document).on('change', '#swastarkencl-list-of-agencies', function() {
                var agency_dls_code = $(this).find('option:selected').val();
                if (agency_dls_code == '' || agency_dls_code == null) {
                    $('#swastarkencl-agency-details-wrapper').hide();
                } else {
                    // Indicator is hide when save_customer_agency() finish
                    $('#swastarkencl-loading-indicator').show();
                    Swastarkencl.log('As the agency was changed and it has a dls code, its details are displayed and the agency associated with the current client will be saved');
                    // Set last agency selected
                    Swastarkencl.current_agency_selected = agency_dls_code;
                    Swastarkencl.selected_commune_agency_name = $(this).find('option:selected').text();
                    Swastarkencl.show_agency_details(agency_dls_code);
                    Swastarkencl.save_customer_agency();
                }
            });
        },

        save_customer_agency: function () {
            var fields_already_set = [];
            $('[name=checkout]').find('input').each(function(i, o) {
                if ($(o).val() && $(o).attr('name') !== undefined && $(o).attr('name').indexOf('billing') != -1) {
                    fields_already_set.push({key: $(o).attr('name'), value: $(o).val()});
                }
            });

            $.ajax({
                type : "POST",
                dataType : "json",
                url : swastarkencl.url,
                data : {
                    action: swastarkencl.change_agency_action,
                    nonce: swastarkencl.nonce,
                    agency_id: Swastarkencl.current_agency_selected,
                    state_id: Swastarkencl.current_state_selected,
                    customer_rut: $('[name="billing_rut"]').val(),
                    customer_selected_region: $("#swastarkencl-list-of-regions :selected").val(),
                    customer_prev_rut: null,
                    fields_already_set: fields_already_set
                },

                beforeSend: function () {
                    // code
                },

                success: function(response) {
                    if (response.reload == true) {
                        Swastarkencl.log('Here woo update_checkout is trigger to show shipping options');
                        Swastarkencl.tryToListShippingOptions();
                    }
                }
            });
        },

        tryToListShippingOptions: function () {
            // In case cart has a named "calc_shipping" element
            // TODO: check if these lines are already unnecessary
            if ($("[name='calc_shipping']").length > 0) {
                $("[name='calc_shipping']").prop('disabled', false);
                $("[name='calc_shipping']").click();
                Swastarkencl.log('calc_shipping button was use to trigger update_cart event');
                // Swastarkencl.hideLodingIndicator();
                return;
            }

            $(document.body).trigger("update_checkout");
        },

        handler_placing_order_button: function() {
            var selected_shipping_option = $('.woocommerce-shipping-methods input[type=radio]:checked');
            if (selected_shipping_option.length > 0) {
                const agency_needed = (
                    selected_shipping_option.val().toString().toLowerCase().split('-')[1] == 'agencia'
                    || selected_shipping_option.val().toString().toLowerCase().split('-')[1] == 'sucursal'
                );

                if (
                    agency_needed
                    && (
                        $('#swastarkencl-list-of-agencies option').length == 0
                        || $('#swastarkencl-list-of-agencies option:selected').val() == ''
                    )
                ) {
                    $('#place_order').prop('disabled', true);
                    $('#place_order').css('cursor', 'not-allowed');
                } else {
                    $('#place_order').css('cursor', 'pointer');
                    $('#place_order').prop('disabled', false);
                }

                Swastarkencl.swastarkencl_on_arrival_payment_message();
            } else if (selected_shipping_option.length > 0) {
                $('#place_order').css('cursor', 'pointer');
                $('#place_order').prop('disabled', false);
            }
        },

        swastarkencl_on_arrival_payment_message: function() {
            var selected_shipping_option = $('.woocommerce-shipping-methods input[type=radio]:checked');
            if (selected_shipping_option.length > 0) {
                const payment_type = parseInt(selected_shipping_option.val().toString().toLowerCase().split('-')[2]) === 3
                if (payment_type) {
                    if ($('.swastarkencl-arrival-message').length == 0) {
                        selected_shipping_option.parent().append(`
                            <small class="swastarkencl-arrival-message" style="display: block !important; color:red; font-size:10pt;">
                            ` + $('#swastarkencl-list-of-communes').attr('data-payment-on-arrival-message')  + `
                            </small>
                        `);
                    }
                }
            }
        },

        // TODO: check if these line are already unnecessary
        hideLodingIndicator: function() {
            if (document.querySelector('#swastarkencl-loading-indicator')) {
                document.querySelector('#swastarkencl-loading-indicator').style.display = 'none';
            }
        },

        regionAndCommuneInCheckoutFields: function() {
            if (swastarkencl.enable_region_commune_in_checkout_fields == 'yes') {
                // Select first region option 
                if ($('#swastarkencl-list-of-regions').data('placeholder') !== undefined) {
                    $('<option value="">--' + $('#swastarkencl-list-of-regions').data('placeholder') + '--</option>')
                        .insertBefore($('#swastarkencl-list-of-regions option:first-child'));
                }

                if ($('#swastarkencl-list-of-regions').data('current-region-id') == '') {
                    $('#swastarkencl-list-of-regions').prop("selectedIndex", 0);
                }

                // Select first commune option 
                if ($('#swastarkencl-list-of-communes').data('placeholder') !== undefined) {
                    $('<option value="">--' + $('#swastarkencl-list-of-communes').data('placeholder') + '--</option>')
                        .insertBefore($('#swastarkencl-list-of-communes option:first-child'));
                }

                if ($('#swastarkencl-list-of-communes').data('swastarkencl-current-cummune-id') == '') {
                    $('#swastarkencl-list-of-communes').prop("selectedIndex", 0);
                }

                // Set data-region-dls attribute at load because enable_region_commune_in_checkout_fields is yes

                let communeRegion = $('#swastarkencl-list-of-communes').data('commune-region-dls-code');
                
                $('#swastarkencl-list-of-communes option').each((i, o) => {
                    if (communeRegion !== undefined) {
                        /*
                        if ($('#swastarkencl-list-of-regions').data('current-region-id') == communeRegion[o.value]) {
                            $(o).prop('hidden', false);
                        } else {
                            $(o).prop('hidden', true);
                        }
                        */
                        if (communeRegion[o.value] != undefined) {
                            $(o).attr('data-region-dls', communeRegion[o.value]);
                        }
                    }
                });
            }
        },

        run: function() {
            $('#swastarkencl-list-of-communes, #swastarkencl-list-of-regions').addClass('form-control');

            // Fire on update_checkout
            $( document.body ).on( 'updated_checkout', (data) => {
                if (document.querySelector('#swastarkencl-rating-message')) {
                    document.querySelector('#swastarkencl-rating-message').style.display = 'none';
                }
            });

            // TODO: check if these line are already unnecessary
            Swastarkencl.hideLodingIndicator();

            if (swastarkencl.hide_starken_section_in_cart === 'yes' && swastarkencl.is_cart === '1') {
                return;
            }

            if (swastarkencl.hide_deliver_to_agencies_options === 'yes') {
                Swastarkencl.add_state_listener(true);
            } else {
                Swastarkencl.log('As agencies are enabled, listeners are added to states and agencies');
                Swastarkencl.add_state_listener();
                Swastarkencl.add_agency_listener();
            }

            Swastarkencl.regionAndCommuneInCheckoutFields();

            if ($('[name=billing_rut]').val() === '') {
                $('#swastarkencl-list-of-regions').prop("selectedIndex", 0);
            }

            // At load, hidden all previous shipping options
            document.querySelectorAll(`
                input[value='NORMAL-AGENCIA-3'],
                input[value='NORMAL-DOMICILIO-3'],
                input[value='EXPRESS-AGENCIA-3'],
                input[value='EXPRESS-DOMICILIO-3'],
                input[value='NORMAL-AGENCIA-2'],
                input[value='NORMAL-DOMICILIO-2'],
                input[value='EXPRESS-AGENCIA-2'],
                input[value='EXPRESS-DOMICILIO-2'],

                input[value='EXPRESO-AGENCIA-3'],
                input[value='EXPRESO-DOMICILIO-3'],
                input[value='EXPRESO-AGENCIA-2'],
                input[value='EXPRESO-DOMICILIO-2'],

                input[value='NORMAL-SUCURSAL-3'],
                input[value='EXPRESS-SUCURSAL-3'],
                input[value='NORMAL-SUCURSAL-2'],
                input[value='EXPRESS-SUCURSAL-2'],
                input[value='EXPRESO-SUCURSAL-3'],
                input[value='EXPRESO-SUCURSAL-2']
            `).forEach((i, o) => {
                if (i !== undefined) {
                    i.parentNode.style.display = 'none';
                }
            });

            if ($("[name='calc_shipping']").length === 0) {
                // At load
                Swastarkencl.tryToListShippingOptions();
            }

            setInterval(() => {
                var selected_shipping_option = $('.woocommerce-shipping-methods input[type=radio]:checked');
                if (selected_shipping_option.length > 0) {
                    const agency_needed = (
                        selected_shipping_option.val().toString().toLowerCase().split('-')[1] == 'agencia'
                        || selected_shipping_option.val().toString().toLowerCase().split('-')[1] == 'sucursal'
                    );

                    if (Swastarkencl.current_state_agencies_list && Swastarkencl.current_state_selected) {
                        var state_id = $('#swastarkencl-list-of-communes').find('option:selected').val();
                        if (
                            $(document).find('#swastarkencl-list-of-agencies option').length == 0
                            && !Swastarkencl.loading_agencies
                        ) {
                            Swastarkencl.handleAgenciesResponse(
                                Swastarkencl.current_state_agencies_list[Swastarkencl.current_state_selected]
                            );
                        }
                    }
                }
                Swastarkencl.swastarkencl_on_arrival_payment_message();
            }, 2000);

            // TODO: check if these lines are already unnecessary
            setInterval(() => {
                // hide loading indicator if not loading agencies
                if (
                    (Swastarkencl.current_state_agencies_list != null && Swastarkencl.current_state_agencies_list.length > 0)
                    && !Swastarkencl.loading_agencies
                    || (!Swastarkencl.selected_state_need_agencies && !Swastarkencl.loading_agencies)
                ) {
                    Swastarkencl.hideLodingIndicator();
                }
            }, 5000);

            $(document).on('DOMSubtreeModified', '#order_review', function() {
                Swastarkencl.handler_placing_order_button();
            });

            $(document).on('change', '#swastarkencl-list-of-regions', function(event) {
                // reset commune select
                //$('#swastarkencl-list-of-communes').prop("selectedIndex", 0);
                //$('#swastarkencl-list-of-agencies').prop("selectedIndex", 0);
                $('#swastarkencl-list-of-communes, #swastarkencl-list-of-communes-label').css({
                    'display': 'block',
                    'width': '100%'
                });
                if ($('#swastarkencl-list-of-communes').data('with-enable-region') != 'yes') {
                    var current_value = $('#swastarkencl-list-of-communes').val();
                    if (!current_value) {
                        current_value = $('#swastarkencl-list-of-communes').data('swastarkencl-current-cummune-id');
                    }
                    if (current_value && $('#swastarkencl-list-of-communes option[value='+current_value+']').length) {
                        $('#swastarkencl-list-of-communes').val(current_value);
                    }
                    var default_agency = $('#swastarkencl-list-of-agencies').data('selected-agency');
                    if (default_agency && $('#swastarkencl-list-of-agencies option[value='+default_agency+']').length) {
                        $('#swastarkencl-list-of-agencies').val(default_agency);
                    }
                    return;
                }
                if ($('#swastarkencl-list-of-communes:not(.eventAdded)').length) {
                    $('#swastarkencl-list-of-communes').addClass('eventAdded').parent().append('<select id="swastarkencl-list-of-communes-all" style="display:none"></select>');
                    $('#swastarkencl-list-of-communes').children().each((i, o) => {
                        $('#swastarkencl-list-of-communes-all').append($(o).clone(true));
                    });
                }
                var current_value = $('#swastarkencl-list-of-communes').val();
                if (!current_value) {
                    current_value = $('#swastarkencl-list-of-communes').data('swastarkencl-current-cummune-id');
                }
                $('#swastarkencl-list-of-communes option').remove();
                $('#swastarkencl-list-of-communes-all').children().each((i, o) => {
                    if ($(o).attr('value') != '') {
                        if ($(o).data('region-dls') == event.target.options[event.target.selectedIndex].value) {
                            $('#swastarkencl-list-of-communes').append($(o).clone(true));
                        }
                    } else {
                        $('#swastarkencl-list-of-communes').append($(o).clone(true));
                    }
                });
                if (current_value && $('#swastarkencl-list-of-communes option[value='+current_value+']').length) {
                    $('#swastarkencl-list-of-communes').val(current_value);
                }
                var default_agency = $('#swastarkencl-list-of-agencies').data('selected-agency');
                if (default_agency && $('#swastarkencl-list-of-agencies option[value='+default_agency+']').length) {
                    $('#swastarkencl-list-of-agencies').val(default_agency);
                }
            });

            Swastarkencl.current_agency_selected = $('#swastarkencl-list-of-agencies').data('selected-agency');
            Swastarkencl.current_state_selected = $('#swastarkencl-list-of-communes').data('swastarkencl-current-cummune-id');            
            if (Swastarkencl.current_agency_selected && Swastarkencl.current_state_selected) {
                Swastarkencl.log('At first load, if there is an previous selected agency and state, they are saved');
                $('#swastarkencl-loading-indicator').show();
                Swastarkencl.save_customer_agency();
            }
            $('#swastarkencl-list-of-regions').trigger('change');
        },

        log: function() {
            if (Swastarkencl.DEBUG_MODE) {
                console.log(...arguments);
            }
        }
    };

    Swastarkencl.run();

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