(function(b){var a=function(d,c){this.container=b(d);this.isMultiple=this.container.find(".bs-images-wrap").data("multiple");this.init()};a.prototype={constructor:a,addImage:function(c){var f=this,e,d=c.parents(".bs-field-wrap");e=wp.media({multiple:f.isMultiple});e.on("select",function(){var g=e.state().get("selection");if(!g){return}g.each(function(j){var i=d.find(".bs-image-wrap.bs-image-template").clone().removeClass("bs-image-template");var h=f.updateImage(i,j);d.find(".bs-images-wrap").append(h);if(!f.isMultiple){c.hide()}})});e.open()},editImage:function(c){var f=this,e,d=c.parents(".bs-field-wrap");e=wp.media({multiple:false});e.on("open",function(){var g=e.state().get("selection"),i=c.parents(".bs-image-wrap").find("input[type=hidden]").val(),h=wp.media.model.Attachment.get(i);h.fetch();g.add(h?[h]:[])});e.on("select",function(){var g=e.state().get("selection");if(!g){return}g.each(function(h){f.updateImage(c.parents(".bs-image-wrap"),h)})});e.open()},updateImage:function(d,e){if("thumbnail" in e.attributes.sizes){var c=e.attributes.sizes.thumbnail.url}else{var c=e.attributes.url}d.find("input[type=hidden]").attr("value",e.id).removeAttr("disabled");d.find("img").attr("src",c);return d},deleteImage:function(c){c.closest(".bs-image-wrap").remove();if(!this.isMultiple){this.container.find(".bs-add-image").show()}},sortable:function(){if(!this.isMultiple){return}var c=this;this.container.find(".bs-images-wrap").sortable({handle:".bs-toolbar .dashicons-menu",placeholder:"bs-image-placeholder",cursor:"move",start:function(f,d){d.placeholder.height(c.container.find(".bs-image-wrap").outerHeight()-6);d.placeholder.width(c.container.find(" .bs-image-wrap").outerWidth()-6)}})},init:function(){this.sortable();this.listen()},listen:function(){var c=this;this.container.on("click",".bs-add-image",function(){c.addImage(b(this))});this.container.on("click",".dashicons-post-trash",function(d){d.preventDefault();c.deleteImage(b(this))});this.container.on("click",".dashicons-edit",function(d){d.preventDefault();c.editImage(b(this))})}};b.fn.beansFieldImage=function(c){return this.each(function(){if(!b.data(this,"plugin_beansFieldImages")){b.data(this,"plugin_beansFieldImage",new a(this,c))}})};b(document).ready(function(c){c(".bs-field.bs-image").beansFieldImage()})})(jQuery);