!function(e,i){"function"==typeof define&&define.amd?define(["jquery"],i):"object"==typeof exports?module.exports=i(require("jquery")):e.Dropify=i(e.$)}(this,function(e){function i(i,s){defaults={defaultFile:"",messages:{defaultMessage:"Drag and drop a file here",replaceMessage:"Drag and drop or click to replace",removeMessage:"Remove"},tpl:{wrap:'
',message:' ',preview:'',clearButton:''}},this.element=i,this.settings=e.extend(!0,defaults,s,e(this.element).data()),this._name=t,this.imgFileFormats=["png","jpg","jpeg","gif","bpm"],this.filename=null,this.filenameElt=null,this.wrap=null,this.preview=null,this.isIE=document.all&&!window.atob,this.isDisabled=!1,this.translate(),this.init()}var t="dropify";return i.prototype={init:function(){if(!this.isIE){var i=this;i.createElements(),i.setSize(),e(this.element).on("change",function(){i.resetPreview(),i.filename=i.getFilename(e(this).val()),i.setFilename(i.filename),i.readUrl(this)})}},createElements:function(){var i=e(this.element),t=(i.val()||"",this.settings.defaultFile||"");if(i.wrap(e(this.settings.tpl.wrap)),this.wrap=i.parent(),this.isTouchDevice()===!0&&this.wrap.addClass("touch-fallback"),i.attr("disabled")&&(this.isDisabled=!0,this.wrap.addClass("disabled")),e(this.settings.tpl.message).insertBefore(i),this.preview=e(this.settings.tpl.preview),this.preview.insertAfter(i),this.isDisabled===!1){this.clearButton=e(this.settings.tpl.clearButton),this.clearButton.insertAfter(this.element);var s=this;this.clearButton.on("click",function(){s.clearElement()})}this.filenameElt=e(this.settings.tpl.filename),this.filenameElt.prependTo(this.preview.find(".dropify-infos-inner")),""!=t&&(this.filename=t,this.setPreview(t),this.setFilename(this.getFilename(t)))},readUrl:function(e){if(e.files&&e.files[0]){var i=new FileReader,t=this;i.onload=function(i){t.setPreview(i.target.result,e.files[0].name)},i.readAsDataURL(e.files[0])}},setPreview:function(i){this.wrap.addClass("has-preview");var t=this.preview.children(".dropify-render");this.isImage()===!0?e("").attr("src",i).appendTo(t):e("").attr("class","file-icon").appendTo(t),this.preview.fadeIn()},resetPreview:function(){this.wrap.removeClass("has-preview");var e=this.preview.children(".dropify-render");e.find("i").remove(),e.find("img").remove(),this.preview.hide()},getFilename:function(e){var i=e.split("\\").pop();return i==e&&(i=e.split("/").pop()),""!=e?i:""},setFilename:function(e){this.filenameElt.children(".dropify-filename-inner").html(e)},clearElement:function(){e(this.element).replaceWith(e(this.element).val("").clone(!0)),this.resetPreview()},setSize:function(){this.settings.height&&this.wrap.height(this.settings.height)},isTouchDevice:function(){return"ontouchstart"in window||navigator.MaxTouchPoints>0||navigator.msMaxTouchPoints>0},isImage:function(){var i=this.filename.split(".").pop().toLowerCase();return"-1"!=e.inArray(i,this.imgFileFormats)?!0:!1},translate:function(){for(var e in this.settings.tpl)for(var i in this.settings.messages)this.settings.tpl[e]=this.settings.tpl[e].replace(i,this.settings.messages[i])}},e.fn[t]=function(s){return this.each(function(){e.data(this,"plugin_"+t)||e.data(this,"plugin_"+t,new i(this,s))}),this},i});