!function(a,b,c,d){a(function(){var e=(a(".wc-gzd-legal-checkboxes"),a(".wc-gzd-legal-checkbox-rows")),f=a(".wc-shipping-zone-save"),g=c.template("wc-gzd-legal-checkbox-row"),h=Backbone.Model.extend({changes:{},logChanges:function(a){var b=this.changes||{};_.each(a,function(a,c){b[c]=_.extend(b[c]||{id:c},a)}),this.changes=b,this.trigger("change:checkboxes")},discardChanges:function(a){var b=this.changes||{},c=null,d=_.indexBy(this.get("checkboxes"),"id");b[a]&&void 0!==b[a].priority&&(c=b[a].priority),delete b[a],null!==c&&d[a]&&d[a].priority!==c&&(b[a]=_.extend(b[a]||{},{id:a,priority:c})),this.changes=b,0===_.size(this.changes)&&k.clearUnloadConfirmation()},save:function(){_.size(this.changes)?a.post(d+(d.indexOf("?")>0?"&":"?")+"action=woocommerce_gzd_legal_checkboxes_save_changes",{wc_gzd_legal_checkbox_nonce:b.checkboxes_nonce,changes:this.changes},this.onSaveResponse,"json"):j.trigger("saved:checkboxes")},onSaveResponse:function(a,c){"success"===c&&(a.success?(j.set("checkboxes",a.data.checkboxes),j.trigger("change:checkboxes"),j.changes={},j.trigger("saved:checkboxes")):window.alert(b.strings.save_failed))}}),i=Backbone.View.extend({rowTemplate:g,initialize:function(){this.listenTo(this.model,"change:checkboxes",this.setUnloadConfirmation),this.listenTo(this.model,"saved:checkboxes",this.clearUnloadConfirmation),this.listenTo(this.model,"saved:checkboxes",this.render),e.on("change",{view:this},this.updateModelOnChange),e.on("sortupdate",{view:this},this.updateModelOnSort),a(window).on("beforeunload",{view:this},this.unloadConfirmation),a(document.body).on("click",".wc-gzd-legal-checkbox-add",{view:this},this.onAddNewRow)},block:function(){a(this.el).block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){a(this.el).unblock()},render:function(){var b=_.indexBy(this.model.get("checkboxes"),"id"),c=this;c.$el.empty(),c.unblock(),_.size(b)&&(b=_(b).chain().sortBy(function(a){return parseInt(a.priority,10)}).value(),a.each(b,function(a,b){c.renderRow(b)})),c.initRows()},renderRow:function(a){var b=this;b.$el.append(b.rowTemplate(a)),b.initRow(a)},initRow:function(a){var b=this,c=b.$el.find('tr[data-id="'+a.id+'"]');b.renderLocations(a.id,a.location_titles),b.renderStatus(a.id,"yes"===a.is_enabled,"enabled"),b.renderStatus(a.id,"yes"===a.is_mandatory,"mandatory"),b.disableDelete(a.id,"yes"===a.is_core),c.find(".wc-gzd-legal-checkbox-delete").on("click",{view:this},this.onDeleteRow)},initRows:function(){a("#tiptip_holder").removeAttr("style"),a("#tiptip_arrow").removeAttr("style"),a(".tips").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:50})},disableDelete:function(b,c){var d=a('.wc-gzd-legal-checkboxes tr[data-id="'+b+'"]');c&&(d.find(".wc-gzd-legal-checkbox-delete").remove(),d.find(".row-actions .sep").remove())},renderStatus:function(b,c,d){var e=a('.wc-gzd-legal-checkboxes tr[data-id="'+b+'"]'),f=e.find("td.wc-gzd-legal-checkbox-"+d);class_name="enabled",c||(class_name="disabled"),f.empty(),f.html('')},renderLocations:function(b,c){var d=a('.wc-gzd-legal-checkboxes tr[data-id="'+b+'"]'),e=d.find("td.wc-gzd-legal-checkbox-locations ul");e.find(".wc-gzd-legal-checkbox-location").remove(),_.size(c)&&_.each(c,function(a,b){e.append('")})},onDeleteRow:function(c){var d=c.data.view,e=d.model,f=_.indexBy(e.get("checkboxes"),"id"),g={},h=a(this).closest("tr"),i=h.data("id");c.preventDefault(),window.confirm(b.strings.delete_confirmation_msg)&&f[i]&&(delete f[i],g[i]=_.extend(g[i]||{},{deleted:"deleted"}),e.set("checkboxes",f),e.logChanges(g),c.data.view.block(),c.data.view.model.save())},setUnloadConfirmation:function(){this.needsUnloadConfirm=!0,f.prop("disabled",!1)},clearUnloadConfirmation:function(){this.needsUnloadConfirm=!1,f.prop("disabled",!0)},unloadConfirmation:function(a){return a.data.view.needsUnloadConfirm?(a.returnValue=b.strings.unload_confirmation_msg,window.event.returnValue=b.strings.unload_confirmation_msg,b.strings.unload_confirmation_msg):void 0},updateModelOnChange:function(b){var c=b.data.view.model,d=a(b.target),e=d.closest("tr").data("id"),f=d.data("attribute"),g=d.val(),h=_.indexBy(c.get("checkboxes"),"id"),i={};h[e]&&h[e][f]===g||(h[e]={},h[e][f]=g),c.logChanges(i)},updateModelOnSort:function(b){var c=b.data.view,d=c.model,e=_.indexBy(d.get("checkboxes"),"id"),f=a("tbody.wc-gzd-legal-checkbox-rows tr"),g={};_.each(f,function(b){var c=a(b).data("id"),d=null,f=parseInt(a(b).index(),10);e[c]&&(d=parseInt(e[c].priority,10)),d!==f&&(g[c]=_.extend(g[c]||{},{priority:f}))}),_.size(g)&&(d.logChanges(g),b.data.view.block(),b.data.view.model.save())}}),j=new h({checkboxes:b.checkboxes}),k=new i({model:j,el:e});k.render(),e.sortable({items:"tr",cursor:"move",axis:"y",handle:"td.wc-gzd-legal-checkbox-sort",scrollSensitivity:40})})}(jQuery,wc_gzd_legal_checkboxes_params,wp,ajaxurl);