!function(n){"use strict";"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=n(require("jquery")):n(window.jQuery)}(function(n){"use strict";n.fn.fileinputLocales={};n.fn.fileinputThemes={};var g,y,p,ft,l,w,u,a,at,r,i,vt,nt,yt,pt,f,wt,bt,kt,dt,gt,ni,ti,ii,ri,ui,fi,ei,oi,si,hi,ci,li,ai,vi,et,b,s,o,yi,pi,wi,bi,ki,di,gi,nr,tr,ir,rr,ot,st,ur,tt,h,ht,v,t,c,e,it,fr,k,rt,er,ut,ct,lt,d;g=".fileinput";y="kvFileinputModal";p='style="width:{width};height:{height};"';ft='<param name="controller" value="true" />\n<param name="allowFullScreen" value="true" />\n<param name="allowScriptAccess" value="always" />\n<param name="autoPlay" value="false" />\n<param name="autoStart" value="false" />\n<param name="quality" value="high" />\n';l='<div class="file-preview-other">\n<span class="{previewFileIconClass}">{previewFileIcon}<\/span>\n<\/div>';w=window.URL||window.webkitURL;u=function(n,t,i){return void 0!==n&&(i?n===t:n.match(t))};a=function(n){if("Microsoft Internet Explorer"!==navigator.appName)return!1;if(10===n)return new RegExp("msie\\s"+n,"i").test(navigator.userAgent);var i,t=document.createElement("div");return t.innerHTML="<!--[if IE "+n+"]> <i><\/i> <![endif]-->",i=t.getElementsByTagName("i").length,document.body.appendChild(t),t.parentNode.removeChild(t),i};at=function(){return new RegExp("Edge/[0-9]+","i").test(navigator.userAgent)};r=function(n,t,i,r){var u=r?t:t.split(" ").join(g+" ")+g;n.off(u).on(u,i)};i={data:{},init:function(n){var t=n.initialPreview,r=n.id;t.length>0&&!c(t)&&(t=t.split(n.initialPreviewDelimiter));i.data[r]={content:t,config:n.initialPreviewConfig,tags:n.initialPreviewThumbTags,delimiter:n.initialPreviewDelimiter,previewFileType:n.initialPreviewFileType,previewAsData:n.initialPreviewAsData,template:n.previewGenericTemplate,showZoom:n.fileActionSettings.showZoom,showDrag:n.fileActionSettings.showDrag,getSize:function(t){return n._getSize(t)},parseTemplate:function(t,i,r,u,f,e,o){return n._generatePreviewTemplate(t,i,r,u,f,!1,null," file-preview-initial",e,o)},msg:function(t){return n._getMsgSelected(t)},initId:n.previewInitId,footer:n._getLayoutTemplate("footer").replace(/\{progress}/g,n._renderThumbProgress()),isDelete:n.initialPreviewShowDelete,caption:n.initialCaption,actions:function(t,i,r,u,f,e,o){return n._renderFileActions(t,i,r,u,f,e,o,!0)}}},fetch:function(n){return i.data[n].content.filter(function(n){return null!==n})},count:function(n,t){return i.data[n]&&i.data[n].content?t?i.data[n].content.length:i.fetch(n).length:0},get:function(r,u,f){var h,c,l,v,y,p,a="init_"+u,s=i.data[r],o=s.config[u],w=s.content[u],b=s.initId+"-"+a,d=" file-preview-initial",g=e("previewAsData",o,s.previewAsData);return f=void 0===f?!0:f,w?(o&&o.frameClass&&(d+=" "+o.frameClass),g?(l=s.previewAsData?e("type",o,s.previewFileType||"generic"):"generic",v=e("caption",o),y=i.footer(r,u,f,o&&o.size||null),p=e("filetype",o,l),h=s.parseTemplate(l,w,v,p,b,y,a,null)):h=s.template.replace(/\{previewId}/g,b).replace(/\{frameClass}/g,d).replace(/\{fileindex}/g,a).replace(/\{content}/g,s.content[u]).replace(/\{template}/g,e("type",o,s.previewFileType)).replace(/\{footer}/g,i.footer(r,u,f,o&&o.size||null)),s.tags.length&&s.tags[u]&&(h=k(h,s.tags[u])),t(o)||t(o.frameAttr)||(c=n(document.createElement("div")).html(h),c.find(".file-preview-initial").attr(o.frameAttr),h=c.html(),c.remove()),h):""},add:function(t,r,u,f,e){var s,o=n.extend(!0,{},i.data[t]);return c(r)||(r=r.split(o.delimiter)),e?(s=o.content.push(r)-1,o.config[s]=u,o.tags[s]=f):(s=r.length-1,o.content=r,o.config=u,o.tags=f),i.data[t]=o,s},set:function(t,r,u,f,e){var o,h,s=n.extend(!0,{},i.data[t]);if(r&&r.length&&(c(r)||(r=r.split(s.delimiter)),h=r.filter(function(n){return null!==n}),h.length)){if(void 0===s.content&&(s.content=[]),void 0===s.config&&(s.config=[]),void 0===s.tags&&(s.tags=[]),e){for(o=0;o<r.length;o++)r[o]&&s.content.push(r[o]);for(o=0;o<u.length;o++)u[o]&&s.config.push(u[o]);for(o=0;o<f.length;o++)f[o]&&s.tags.push(f[o])}else s.content=r,s.config=u,s.tags=f;i.data[t]=s}},unset:function(n,t){var r=i.count(n);if(r){if(1===r)return i.data[n].content=[],i.data[n].config=[],void(i.data[n].tags=[]);i.data[n].content[t]=null;i.data[n].config[t]=null;i.data[n].tags[t]=null}},out:function(n){var r,u="",e=i.data[n],f=i.count(n,!0),t;if(0===f)return{content:"",caption:""};for(t=0;f>t;t++)u+=i.get(n,t);return r=e.msg(i.count(n)),{content:'<div class="file-initial-thumbs">'+u+"<\/div>",caption:r}},footer:function(n,r,u,f){var o=i.data[n];if(u=void 0===u?!0:u,0===o.config.length||t(o.config[r]))return"";var s=o.config[r],c=e("caption",s),l=e("width",s,"auto"),h=e("url",s,!1),a=e("key",s,null),v=e("showDelete",s,!0),y=e("showZoom",s,o.showZoom),p=e("showDrag",s,o.showDrag),w=h===!1&&u,b=o.isDelete?o.actions(!1,v,y,p,w,h,a):"",k=o.footer.replace(/\{actions}/g,b);return k.replace(/\{caption}/g,c).replace(/\{size}/g,o.getSize(f)).replace(/\{width}/g,l).replace(/\{indicator}/g,"").replace(/\{indicatorTitle}/g,"")}};vt=function(n,t){return t=t||0,"number"==typeof n?n:("string"==typeof n&&(n=parseFloat(n)),isNaN(n)?t:n)};nt=function(){return!(!window.File||!window.FileReader)};yt=function(){var n=document.createElement("div");return!a(9)&&!at()&&(void 0!==n.draggable||void 0!==n.ondragstart&&void 0!==n.ondrop)};pt=function(){return nt()&&window.FormData};f=function(n,t){n.removeClass(t).addClass(t)};rr={showRemove:!0,showUpload:!0,showZoom:!0,showDrag:!0,removeIcon:'<i class="glyphicon glyphicon-trash text-danger"><\/i>',removeClass:"btn btn-xs btn-default",removeTitle:"Remove file",uploadIcon:'<i class="glyphicon glyphicon-upload text-info"><\/i>',uploadClass:"btn btn-xs btn-default",uploadTitle:"Upload file",zoomIcon:'<i class="glyphicon glyphicon-zoom-in"><\/i>',zoomClass:"btn btn-xs btn-default",zoomTitle:"View Details",dragIcon:'<i class="glyphicon glyphicon-menu-hamburger"><\/i>',dragClass:"text-info",dragTitle:"Move / Rearrange",dragSettings:{},indicatorNew:'<i class="glyphicon glyphicon-hand-down text-warning"><\/i>',indicatorSuccess:'<i class="glyphicon glyphicon-ok-sign text-success"><\/i>',indicatorError:'<i class="glyphicon glyphicon-exclamation-sign text-danger"><\/i>',indicatorLoading:'<i class="glyphicon glyphicon-hand-up text-muted"><\/i>',indicatorNewTitle:"Not uploaded yet",indicatorSuccessTitle:"Uploaded",indicatorErrorTitle:"Upload Error",indicatorLoadingTitle:"Uploading ..."};wt='{preview}\n<div class="kv-upload-progress hide"><\/div>\n<div class="input-group {class}">\n   {caption}\n   <div class="input-group-btn">\n       {remove}\n       {cancel}\n       {upload}\n       {browse}\n   <\/div>\n<\/div>';bt='{preview}\n<div class="kv-upload-progress hide"><\/div>\n{remove}\n{cancel}\n{upload}\n{browse}\n';kt='<div class="file-preview {class}">\n    {close}    <div class="{dropClass}">\n    <div class="file-preview-thumbnails">\n    <\/div>\n    <div class="clearfix"><\/div>    <div class="file-preview-status text-center text-success"><\/div>\n    <div class="kv-fileinput-error"><\/div>\n    <\/div>\n<\/div>';gt='<div class="close fileinput-remove">&times;<\/div>\n';dt='<i class="glyphicon glyphicon-file kv-caption-icon"><\/i>';ni='<div tabindex="500" class="form-control file-caption {class}">\n   <div class="file-caption-name"><\/div>\n<\/div>\n';ti='<button type="{type}" tabindex="500" title="{title}" class="{css}" {status}>{icon} {label}<\/button>';ii='<a href="{href}" tabindex="500" title="{title}" class="{css}" {status}>{icon} {label}<\/a>';ri='<div tabindex="500" class="{css}" {status}>{icon} {label}<\/div>';ui='<div id="'+y+'" class="file-zoom-dialog modal fade" tabindex="-1" aria-labelledby="'+y+'Label"><\/div>';fi='<div class="modal-dialog modal-lg" role="document">\n  <div class="modal-content">\n    <div class="modal-header">\n      <div class="kv-zoom-actions pull-right">{toggleheader}{fullscreen}{borderless}{close}<\/div>\n      <h3 class="modal-title">{heading} <small><span class="kv-zoom-title"><\/span><\/small><\/h3>\n    <\/div>\n    <div class="modal-body">\n      <div class="floating-buttons"><\/div>\n      <div class="kv-zoom-body file-zoom-content"><\/div>\n{prev} {next}\n    <\/div>\n  <\/div>\n<\/div>\n';ei='<div class="progress">\n    <div class="{class}" role="progressbar" aria-valuenow="{percent}" aria-valuemin="0" aria-valuemax="100" style="width:{percent}%;">\n        {percent}%\n     <\/div>\n<\/div>';oi=" <br><samp>({sizeText})<\/samp>";si='<div class="file-thumbnail-footer">\n    <div class="file-footer-caption" title="{caption}">{caption}{size}<\/div>\n    {progress} {actions}\n<\/div>';hi='<div class="file-actions">\n    <div class="file-footer-buttons">\n        {upload} {delete} {zoom} {other}    <\/div>\n    {drag}\n    <div class="file-upload-indicator" title="{indicatorTitle}">{indicator}<\/div>\n    <div class="clearfix"><\/div>\n<\/div>';ci='<button type="button" class="kv-file-remove {removeClass}" title="{removeTitle}" {dataUrl}{dataKey}>{removeIcon}<\/button>\n';li='<button type="button" class="kv-file-upload {uploadClass}" title="{uploadTitle}">{uploadIcon}<\/button>';ai='<button type="button" class="kv-file-zoom {zoomClass}" title="{zoomTitle}">{zoomIcon}<\/button>';vi='<span class="file-drag-handle {dragClass}" title="{dragTitle}">{dragIcon}<\/span>';et='<div class="file-preview-frame{frameClass}" id="{previewId}" data-fileindex="{fileindex}" data-template="{template}"';b=et+'><div class="kv-file-content">\n';s=et+' title="{caption}" '+p+'><div class="kv-file-content">\n';o="<\/div>{footer}\n<\/div>\n";yi="{content}\n";pi='<div class="kv-preview-data file-preview-html" title="{caption}" '+p+">{data}<\/div>\n";wi='<img src="{data}" class="kv-preview-data file-preview-image" title="{caption}" alt="{caption}" '+p+">\n";bi='<textarea class="kv-preview-data file-preview-text" title="{caption}" readonly '+p+">{data}<\/textarea>\n";ki='<video class="kv-preview-data" width="{width}" height="{height}" controls>\n<source src="{data}" type="{type}">\n'+l+"\n<\/video>\n";di='<audio class="kv-preview-data" controls>\n<source src="{data}" type="{type}">\n'+l+"\n<\/audio>\n";gi='<object class="kv-preview-data file-object" type="application/x-shockwave-flash" width="{width}" height="{height}" data="{data}">\n'+ft+" "+l+"\n<\/object>\n";nr='<object class="kv-preview-data file-object" data="{data}" type="{type}" width="{width}" height="{height}">\n<param name="movie" value="{caption}" />\n'+ft+" "+l+"\n<\/object>\n";tr='<embed class="kv-preview-data" src="{data}" width="{width}" height="{height}" type="application/pdf">\n';ir='<div class="kv-preview-data file-preview-other-frame">\n'+l+"\n<\/div>\n";ot={main1:wt,main2:bt,preview:kt,close:gt,fileIcon:dt,caption:ni,modalMain:ui,modal:fi,progress:ei,size:oi,footer:si,actions:hi,actionDelete:ci,actionUpload:li,actionZoom:ai,actionDrag:vi,btnDefault:ti,btnLink:ii,btnBrowse:ri};st={generic:b+yi+o,html:b+pi+o,image:b+wi+o,text:b+bi+o,video:s+ki+o,audio:s+di+o,flash:s+gi+o,object:s+nr+o,pdf:s+tr+o,other:s+ir+o};tt=["image","html","text","video","audio","flash","pdf","object"];ht={image:{width:"auto",height:"160px"},html:{width:"213px",height:"160px"},text:{width:"213px",height:"160px"},video:{width:"213px",height:"160px"},audio:{width:"213px",height:"80px"},flash:{width:"213px",height:"160px"},object:{width:"160px",height:"160px"},pdf:{width:"160px",height:"160px"},other:{width:"160px",height:"160px"}};ur={image:{width:"100%",height:"100%"},html:{width:"100%",height:"100%","min-height":"480px"},text:{width:"100%",height:"100%","min-height":"480px"},video:{width:"auto",height:"100%","max-width":"100%"},audio:{width:"100%",height:"30px"},flash:{width:"auto",height:"480px"},object:{width:"auto",height:"100%","min-height":"480px"},pdf:{width:"100%",height:"100%","min-height":"480px"},other:{width:"auto",height:"100%","min-height":"480px"}};v={image:function(n,t){return u(n,"image.*")||u(t,/\.(gif|png|jpe?g)$/i)},html:function(n,t){return u(n,"text/html")||u(t,/\.(htm|html)$/i)},text:function(n,t){return u(n,"text.*")||u(t,/\.(xml|javascript)$/i)||u(t,/\.(txt|md|csv|nfo|ini|json|php|js|css)$/i)},video:function(n,t){return u(n,"video.*")&&(u(n,/(ogg|mp4|mp?g|webm|3gp)$/i)||u(t,/\.(og?|mp4|webm|mp?g|3gp)$/i))},audio:function(n,t){return u(n,"audio.*")&&(u(t,/(ogg|mp3|mp?g|wav)$/i)||u(t,/\.(og?|mp3|mp?g|wav)$/i))},flash:function(n,t){return u(n,"application/x-shockwave-flash",!0)||u(t,/\.(swf)$/i)},pdf:function(n,t){return u(n,"application/pdf",!0)||u(t,/\.(pdf)$/i)},object:function(){return!0},other:function(){return!0}};t=function(t,i){return void 0===t||null===t||0===t.length||i&&""===n.trim(t)};c=function(n){return Array.isArray(n)||"[object Array]"===Object.prototype.toString.call(n)};e=function(n,t,i){return i=i||"","object"==typeof t&&n in t?t[n]:i};h=function(i,r,u){return t(i)||t(i[r])?u:n(i[r])};it=function(){return Math.round((new Date).getTime()+100*Math.random())};fr=function(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")};k=function(t,i){var r=t;return i?(n.each(i,function(n,t){"function"==typeof t&&(t=t());r=r.split(n).join(t)}),r):r};rt=function(n){var t=n.is("img")?n.attr("src"):n.find("source").attr("src");w.revokeObjectURL(t)};er=function(n){var t=n.lastIndexOf("/");return-1===t&&(t=n.lastIndexOf("\\")),n.split(n.substring(t,t+1)).pop()};ut=function(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement};ct=function(n){n&&!ut()?document.documentElement.requestFullscreen?document.documentElement.requestFullscreen():document.documentElement.msRequestFullscreen?document.documentElement.msRequestFullscreen():document.documentElement.mozRequestFullScreen?document.documentElement.mozRequestFullScreen():document.documentElement.webkitRequestFullscreen&&document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen()};lt=function(n,t,i){if(i>=n.length)for(var r=i-n.length;r--+1;)n.push(void 0);return n.splice(i,0,n.splice(t,1)[0]),n};d=function(t,i){var r=this;r.$element=n(t);r._validate()&&(r.isPreviewable=nt(),r.isIE9=a(9),r.isIE10=a(10),r.isPreviewable||r.isIE9?(r._init(i),r._listen()):r.$element.removeClass("file-loading"))};d.prototype={constructor:d,_init:function(r){var e,u=this,o=u.$element;n.each(r,function(n,t){switch(n){case"minFileCount":case"maxFileCount":case"maxFileSize":u[n]=vt(t);break;default:u[n]=t}});t(u.allowedPreviewTypes)&&(u.allowedPreviewTypes=tt);u.fileInputCleared=!1;u.fileBatchCompleted=!0;u.isPreviewable||(u.showPreview=!1);u.uploadFileAttr=t(o.attr("name"))?"file_data":o.attr("name");u.reader=null;u.formdata={};u.clearStack();u.uploadCount=0;u.uploadStatus={};u.uploadLog=[];u.uploadAsyncCount=0;u.loadedImages=[];u.totalImagesCount=0;u.ajaxRequests=[];u.isError=!1;u.ajaxAborted=!1;u.cancelling=!1;e=u._getLayoutTemplate("progress");u.progressTemplate=e.replace("{class}",u.progressClass);u.progressCompleteTemplate=e.replace("{class}",u.progressCompleteClass);u.progressErrorTemplate=e.replace("{class}",u.progressErrorClass);u.dropZoneEnabled=yt()&&u.dropZoneEnabled;u.isDisabled=u.$element.attr("disabled")||u.$element.attr("readonly");u.isUploadable=pt()&&!t(u.uploadUrl);u.isClickable=u.browseOnZoneClick&&u.showPreview&&(u.isUploadable&&u.dropZoneEnabled||!t(u.defaultPreviewContent));u.slug="function"==typeof r.slugCallback?r.slugCallback:u._slugDefault;u.mainTemplate=u.showCaption?u._getLayoutTemplate("main1"):u._getLayoutTemplate("main2");u.captionTemplate=u._getLayoutTemplate("caption");u.previewGenericTemplate=u._getPreviewTemplate("generic");u.resizeImage&&(u.maxImageWidth||u.maxImageHeight)&&(u.imageCanvas=document.createElement("canvas"),u.imageCanvasContext=u.imageCanvas.getContext("2d"));t(u.$element.attr("id"))&&u.$element.attr("id",it());void 0===u.$container?u.$container=u._createContainer():u._refreshContainer();u.$dropZone=u.$container.find(".file-drop-zone");u.$progress=u.$container.find(".kv-upload-progress");u.$btnUpload=u.$container.find(".fileinput-upload");u.$captionContainer=h(r,"elCaptionContainer",u.$container.find(".file-caption"));u.$caption=h(r,"elCaptionText",u.$container.find(".file-caption-name"));u.$previewContainer=h(r,"elPreviewContainer",u.$container.find(".file-preview"));u.$preview=h(r,"elPreviewImage",u.$container.find(".file-preview-thumbnails"));u.$previewStatus=h(r,"elPreviewStatus",u.$container.find(".file-preview-status"));u.$errorContainer=h(r,"elErrorContainer",u.$previewContainer.find(".kv-fileinput-error"));t(u.msgErrorClass)||f(u.$errorContainer,u.msgErrorClass);u.$errorContainer.hide();u.fileActionSettings=n.extend(!0,rr,r.fileActionSettings);u.previewInitId="preview-"+it();u.id=u.$element.attr("id");i.init(u);u._initPreview(!0);u._initPreviewActions();u.options=r;u._setFileDropZoneTitle();u.$element.removeClass("file-loading");u.$element.attr("disabled")&&u.disable();u._initZoom()},_validate:function(){var n,t=this;return"file"===t.$element.attr("type")?!0:(n='<div class="help-block alert alert-warning"><h4>Invalid Input Type<\/h4>You must set an input <code>type = file<\/code> for <b>bootstrap-fileinput<\/b> plugin to initialize.<\/div>',t.$element.after(n),!1)},_errorsExist:function(){var t,i=this;return i.$errorContainer.find("li").length?!0:(t=n(document.createElement("div")).html(i.$errorContainer.html()),t.find("span.kv-error-close").remove(),t.find("ul").remove(),!!n.trim(t.text()).length)},_errorHandler:function(n,t){var i=this,r=n.target.error;r.code===r.NOT_FOUND_ERR?i._showError(i.msgFileNotFound.replace("{name}",t)):r.code===r.SECURITY_ERR?i._showError(i.msgFileSecured.replace("{name}",t)):r.code===r.NOT_READABLE_ERR?i._showError(i.msgFileNotReadable.replace("{name}",t)):r.code===r.ABORT_ERR?i._showError(i.msgFilePreviewAborted.replace("{name}",t)):i._showError(i.msgFilePreviewError.replace("{name}",t))},_addError:function(n){var i=this,t=i.$errorContainer;n&&t.length&&(t.html(i.errorCloseButton+n),r(t.find(".kv-error-close"),"click",function(){t.fadeOut("slow")}))},_resetErrors:function(n){var t=this,i=t.$errorContainer;t.isError=!1;t.$container.removeClass("has-error");i.html("");n?i.fadeOut("slow"):i.hide()},_showFolderError:function(n){var i,t=this,r=t.$errorContainer;n&&(i=t.msgFoldersNotAllowed.replace(/\{n}/g,n),t._addError(i),f(t.$container,"has-error"),r.fadeIn(800),t._raise("filefoldererror",[n,i]))},_showUploadError:function(n,t,i){var r=this,u=r.$errorContainer,o=i||"fileuploaderror",e=t&&t.id?'<li data-file-id="'+t.id+'">'+n+"<\/li>":"<li>"+n+"<\/li>";return 0===u.find("ul").length?r._addError("<ul>"+e+"<\/ul>"):u.find("ul").append(e),u.fadeIn(800),r._raise(o,[t,n]),r.$container.removeClass("file-input-new"),f(r.$container,"has-error"),!0},_showError:function(n,t,i){var r=this,u=r.$errorContainer,e=i||"fileerror";return t=t||{},t.reader=r.reader,r._addError(n),u.fadeIn(800),r._raise(e,[t,n]),r.isUploadable||r._clearFileInput(),r.$container.removeClass("file-input-new"),f(r.$container,"has-error"),r.$btnUpload.attr("disabled",!0),!0},_noFilesError:function(n){var t=this,r=t.minFileCount>1?t.filePlural:t.fileSingle,i=t.msgFilesTooLess.replace("{n}",t.minFileCount).replace("{files}",r),u=t.$errorContainer;t._addError(i);t.isError=!0;t._updateFileDetails(0);u.fadeIn(800);t._raise("fileerror",[n,i]);t._clearFileInput();f(t.$container,"has-error")},_parseError:function(t,i,r){var e=this,f=n.trim(i+""),o="."===f.slice(-1)?"":".",u=void 0!==t.responseJSON&&void 0!==t.responseJSON.error?t.responseJSON.error:t.responseText;return e.cancelling&&e.msgUploadAborted&&(f=e.msgUploadAborted),e.showAjaxErrorDetails&&u?(u=n.trim(u.replace(/\n\s*\n/g,"\n")),u=u.length>0?"<pre>"+u+"<\/pre>":"",f+=o+u):f+=o,e.cancelling=!1,r?"<b>"+r+": <\/b>"+f:f},_parseFileType:function(n){for(var f,u,i,o=this,r=0;r<tt.length;r+=1)if(i=tt[r],f=e(i,o.fileTypeSettings,v[i]),u=f(n.type,n.name)?i:"",!t(u))return u;return"other"},_parseFilePreviewIcon:function(t,i){var e,u,r=this,f=r.previewFileIcon;return i&&i.indexOf(".")>-1&&(u=i.split(".").pop(),r.previewFileIconSettings&&r.previewFileIconSettings[u]&&(f=r.previewFileIconSettings[u]),r.previewFileExtSettings&&n.each(r.previewFileExtSettings,function(n,t){return r.previewFileIconSettings[n]&&t(u)?void(f=r.previewFileIconSettings[n]):void(e=!0)})),t.indexOf("{previewFileIcon}")>-1?t.replace(/\{previewFileIconClass}/g,r.previewFileIconClass).replace(/\{previewFileIcon}/g,f):t},_raise:function(t,i){var u=this,r=n.Event(t);if(void 0!==i?u.$element.trigger(r,i):u.$element.trigger(r),r.isDefaultPrevented())return!1;if(!r.result)return r.result;switch(t){case"filebatchuploadcomplete":case"filebatchuploadsuccess":case"fileuploaded":case"fileclear":case"filecleared":case"filereset":case"fileerror":case"filefoldererror":case"fileuploaderror":case"filebatchuploaderror":case"filedeleteerror":case"filecustomerror":case"filesuccessremove":break;default:u.ajaxAborted=r.result}return!0},_listenFullScreen:function(n){var r,i,u=this,t=u.$modal;t&&t.length&&(r=t&&t.find(".btn-fullscreen"),i=t&&t.find(".btn-borderless"),r.length&&i.length&&(r.removeClass("active").attr("aria-pressed","false"),i.removeClass("active").attr("aria-pressed","false"),n?r.addClass("active").attr("aria-pressed","true"):i.addClass("active").attr("aria-pressed","true"),t.hasClass("file-zoom-fullscreen")?u._maximizeZoomDialog():n?u._maximizeZoomDialog():i.removeClass("active").attr("aria-pressed","false")))},_listen:function(){var t=this,i=t.$element,u=i.closest("form"),f=t.$container;r(i,"change",n.proxy(t._change,t));t.showBrowse&&r(t.$btnFile,"click",n.proxy(t._browse,t));r(u,"reset",n.proxy(t.reset,t));r(f.find(".fileinput-remove:not([disabled])"),"click",n.proxy(t.clear,t));r(f.find(".fileinput-cancel"),"click",n.proxy(t.cancel,t));t._initDragDrop();t.isUploadable||r(u,"submit",n.proxy(t._submitForm,t));r(t.$container.find(".fileinput-upload"),"click",n.proxy(t._uploadClick,t));r(n(window),"resize",function(){t._listenFullScreen(screen.width===window.innerWidth&&screen.height===window.innerHeight)});r(n(document),"webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange",function(){t._listenFullScreen(ut())});t._initClickable()},_initClickable:function(){var t,i=this;i.isClickable&&(t=i.isUploadable?i.$dropZone:i.$preview.find(".file-default-preview"),f(t,"clickable"),t.attr("tabindex",-1),r(t,"click",function(r){var u=n(r.target);u.parents(".file-preview-thumbnails").length&&!u.parents(".file-default-preview").length||(i.$element.trigger("click"),t.blur())}))},_initDragDrop:function(){var t=this,i=t.$dropZone;t.isUploadable&&t.dropZoneEnabled&&t.showPreview&&(r(i,"dragenter dragover",n.proxy(t._zoneDragEnter,t)),r(i,"dragleave",n.proxy(t._zoneDragLeave,t)),r(i,"drop",n.proxy(t._zoneDrop,t)),r(n(document),"dragenter dragover drop",t._zoneDragDropInit))},_zoneDragDropInit:function(n){n.stopPropagation();n.preventDefault()},_zoneDragEnter:function(t){var i=this,r=n.inArray("Files",t.originalEvent.dataTransfer.types)>-1;return i._zoneDragDropInit(t),i.isDisabled||!r?(t.originalEvent.dataTransfer.effectAllowed="none",void(t.originalEvent.dataTransfer.dropEffect="none")):void f(i.$dropZone,"file-highlighted")},_zoneDragLeave:function(n){var t=this;t._zoneDragDropInit(n);t.isDisabled||t.$dropZone.removeClass("file-highlighted")},_zoneDrop:function(n){var i=this;n.preventDefault();i.isDisabled||t(n.originalEvent.dataTransfer.files)||(i._change(n,"dragdrop"),i.$dropZone.removeClass("file-highlighted"))},_uploadClick:function(n){var r,u=this,i=u.$container.find(".fileinput-upload"),f=!i.hasClass("disabled")&&t(i.attr("disabled"));if(!n||!n.isDefaultPrevented()){if(!u.isUploadable)return void(f&&"submit"!==i.attr("type")&&(r=i.closest("form"),r.length&&r.trigger("submit"),n.preventDefault()));n.preventDefault();f&&u.upload()}},_submitForm:function(){var n=this,i=n.$element,t=i.get(0).files;return t&&n.minFileCount>0&&n._getFileCount(t.length)<n.minFileCount?(n._noFilesError({}),!1):!n._abort({})},_clearPreview:function(){var n=this,t=n.showUploadedThumbs?n.$preview.find(".file-preview-frame:not(.file-preview-success)"):n.$preview.find(".file-preview-frame");t.remove();n.$preview.find(".file-preview-frame").length&&n.showPreview||n._resetUpload();n._validateDefaultPreview()},_initSortable:function(){var r,u,t=this,f=t.$preview;window.Sortable&&(r=f.find(".file-initial-thumbs"),u={handle:".drag-handle-init",dataIdAttr:"data-preview-id",draggable:".file-preview-initial",onSort:function(r){var u=r.oldIndex,f=r.newIndex;t.initialPreview=lt(t.initialPreview,u,f);t.initialPreviewConfig=lt(t.initialPreviewConfig,u,f);i.init(t);t._raise("filesorted",{previewId:n(r.item).attr("id"),oldIndex:u,newIndex:f,stack:t.initialPreviewConfig})}},r.data("sortable")&&r.sortable("destroy"),n.extend(!0,u,t.fileActionSettings.dragSettings),r.sortable(u))},_initPreview:function(n){var u,r=this,f=r.initialCaption||"";return i.count(r.id)?(u=i.out(r.id),f=n&&r.initialCaption?r.initialCaption:u.caption,r.$preview.html(u.content),r._setCaption(f),r._initSortable(),void(t(u.content)||r.$container.removeClass("file-input-new"))):(r._clearPreview(),void(n?r._setCaption(f):r._initCaption()))},_getZoomButton:function(n){var t=this,r=t.previewZoomButtonIcons[n],u=t.previewZoomButtonClasses[n],f=' title="'+(t.previewZoomButtonTitles[n]||"")+'" ',i=f+("close"===n?' data-dismiss="modal" aria-hidden="true"':"");return"fullscreen"!==n&&"borderless"!==n&&"toggleheader"!==n||(i+=' data-toggle="button" aria-pressed="false" autocomplete="off"'),'<button type="button" class="'+u+" btn-"+n+'"'+i+">"+r+"<\/button>"},_getModalContent:function(){var n=this;return n._getLayoutTemplate("modal").replace(/\{heading}/g,n.msgZoomModalHeading).replace(/\{prev}/g,n._getZoomButton("prev")).replace(/\{next}/g,n._getZoomButton("next")).replace(/\{toggleheader}/g,n._getZoomButton("toggleheader")).replace(/\{fullscreen}/g,n._getZoomButton("fullscreen")).replace(/\{borderless}/g,n._getZoomButton("borderless")).replace(/\{close}/g,n._getZoomButton("close"))},_listenModalEvent:function(n){var i=this,t=i.$modal,r=function(n){return{sourceEvent:n,previewId:t.data("previewId"),modal:t}};t.on(n+".bs.modal",function(u){var f=t.find(".btn-fullscreen"),e=t.find(".btn-borderless");i._raise("filezoom"+n,r(u));"shown"===n&&(e.removeClass("active").attr("aria-pressed","false"),f.removeClass("active").attr("aria-pressed","false"),t.hasClass("file-zoom-fullscreen")&&(i._maximizeZoomDialog(),ut()?f.addClass("active").attr("aria-pressed","true"):e.addClass("active").attr("aria-pressed","true")))})},_initZoom:function(){var i,t=this,r=t._getLayoutTemplate("modalMain"),u="#"+y;t.$modal=n(u);t.$modal&&t.$modal.length||(i=n(document.createElement("div")).html(r).insertAfter(t.$container),t.$modal=n("#"+y).insertBefore(i),i.remove());t.$modal.html(t._getModalContent());t._listenModalEvent("show");t._listenModalEvent("shown");t._listenModalEvent("hide");t._listenModalEvent("hidden");t._listenModalEvent("loaded")},_initZoomButtons:function(){var i,r,t=this,f=t.$modal.data("previewId")||"",u=t.$preview.find(".file-preview-frame").toArray(),e=u.length,o=t.$modal.find(".btn-prev"),s=t.$modal.find(".btn-next");e&&(i=n(u[0]),r=n(u[e-1]),o.removeAttr("disabled"),s.removeAttr("disabled"),i.length&&i.attr("id")===f&&o.attr("disabled",!0),r.length&&r.attr("id")===f&&s.attr("disabled",!0))},_maximizeZoomDialog:function(){var o=this,t=o.$modal,u=t.find(".modal-header:visible"),f=t.find(".modal-footer:visible"),i=t.find(".modal-body"),r=n(window).height(),e=0;t.addClass("file-zoom-fullscreen");u&&u.length&&(r-=u.outerHeight(!0));f&&f.length&&(r-=f.outerHeight(!0));i&&i.length&&(e=i.outerHeight(!0)-i.height(),r-=e);t.find(".kv-zoom-body").height(r)},_resizeZoomDialog:function(n){var i=this,t=i.$modal,r=t.find(".btn-fullscreen"),u=t.find(".btn-borderless");if(t.hasClass("file-zoom-fullscreen"))ct(!1),n?r.hasClass("active")||(t.removeClass("file-zoom-fullscreen"),i._resizeZoomDialog(!0),u.hasClass("active")&&u.removeClass("active").attr("aria-pressed","false")):r.hasClass("active")?r.removeClass("active").attr("aria-pressed","false"):(t.removeClass("file-zoom-fullscreen"),i.$modal.find(".kv-zoom-body").css("height",i.zoomModalHeight));else{if(!n)return void i._maximizeZoomDialog();ct(!0)}t.focus()},_setZoomContent:function(t,i){var c,y,l,p,o,s,a,v,e=this,h=t.attr("id"),u=e.$modal,w=u.find(".btn-prev"),b=u.find(".btn-next"),k=u.find(".btn-fullscreen"),d=u.find(".btn-borderless"),g=u.find(".btn-toggleheader");y=t.data("template")||"generic";c=t.find(".kv-file-content");l=c.length?c.html():"";p=t.find(".file-footer-caption").text()||"";u.find(".kv-zoom-title").html(p);o=u.find(".kv-zoom-body");i?(v=o.clone().insertAfter(o),o.html(l).hide(),v.fadeOut("fast",function(){o.fadeIn("fast");v.remove()})):o.html(l);a=e.previewZoomSettings[y];a&&(s=o.find(".kv-preview-data"),f(s,"file-zoom-detail"),n.each(a,function(n,t){s.css(n,t);(s.attr("width")&&"width"===n||s.attr("height")&&"height"===n)&&s.removeAttr(n)}));u.data("previewId",h);r(w,"click",function(){e._zoomSlideShow("prev",h)});r(b,"click",function(){e._zoomSlideShow("next",h)});r(k,"click",function(){e._resizeZoomDialog(!0)});r(d,"click",function(){e._resizeZoomDialog(!1)});r(g,"click",function(){var t,n=u.find(".modal-header"),i=u.find(".modal-body .floating-buttons"),r=n.find(".kv-zoom-actions"),f=function(t){var r=e.$modal.find(".kv-zoom-body"),i=e.zoomModalHeight;u.hasClass("file-zoom-fullscreen")&&(i=r.outerHeight(!0),t||(i-=n.outerHeight(!0)));r.css("height",t?i+t:i)};n.is(":visible")?(t=n.outerHeight(!0),n.slideUp("slow",function(){r.find(".btn").appendTo(i);f(t)})):(i.find(".btn").appendTo(r),n.slideDown("slow",function(){f()}));u.focus()});r(u,"keydown",function(n){var t=n.which||n.keyCode;37!==t||w.attr("disabled")||e._zoomSlideShow("prev",h);39!==t||b.attr("disabled")||e._zoomSlideShow("next",h)})},_zoomPreview:function(n){var i,t=this;if(!n.length)throw"Cannot zoom to detailed preview!";t.$modal.html(t._getModalContent());i=n.closest(".file-preview-frame");t._setZoomContent(i);t.$modal.modal("show");t._initZoomButtons()},_zoomSlideShow:function(t,i){var o,r,f,u=this,h=u.$modal.find(".kv-zoom-actions .btn-"+t),e=u.$preview.find(".file-preview-frame").toArray(),s=e.length;if(!h.attr("disabled")){for(r=0;s>r;r++)if(n(e[r]).attr("id")===i){f="prev"===t?r-1:r+1;break}0>f||f>=s||!e[f]||(o=n(e[f]),o.length&&u._setZoomContent(o,!0),u._initZoomButtons(),u._raise("filezoom"+t,{previewId:i,modal:u.$modal}))}},_initZoomButton:function(){var t=this;t.$preview.find(".kv-file-zoom").each(function(){var i=n(this);r(i,"click",function(){t._zoomPreview(i)})})},_initPreviewActions:function(){var u=this,o=u.deleteExtraData||{},e=function(){var n=u.isUploadable?i.count(u.id):u.$element.get(0).files.length;0!==u.$preview.find(".kv-file-remove").length||n||(u.reset(),u.initialCaption="")};u._initZoomButton();u.$preview.find(".kv-file-remove").each(function(){var c=n(this),w=c.data("url")||u.deleteUrl,a=c.data("key");if(!t(w)&&void 0!==a){var b,l,y,s,h=c.closest(".file-preview-frame"),p=i.data[u.id],v=h.data("fileindex");v=parseInt(v.replace("init_",""));y=t(p.config)&&t(p.config[v])?null:p.config[v];s=t(y)||t(y.extra)?o:y.extra;"function"==typeof s&&(s=s());l={id:c.attr("id"),key:a,extra:s};b=n.extend(!0,{},{url:w,type:"POST",dataType:"json",data:n.extend(!0,{},{key:a},s),beforeSend:function(n){u.ajaxAborted=!1;u._raise("filepredelete",[a,n,s]);u.ajaxAborted?n.abort():(f(h,"file-uploading"),f(c,"disabled"))},success:function(n,r,f){var o,y;return t(n)||t(n.error)?(i.unset(u.id,v),o=i.count(u.id),y=o>0?u._getMsgSelected(o):"",u._raise("filedeleted",[a,f,s]),u._setCaption(y),h.removeClass("file-uploading").addClass("file-deleted"),void h.fadeOut("slow",function(){u._clearObjects(h);h.remove();e();o||0!==u.getFileStack().length||(u._setCaption(""),u.reset())})):(l.jqXHR=f,l.response=n,u._showError(n.error,l,"filedeleteerror"),h.removeClass("file-uploading"),c.removeClass("disabled"),void e())},error:function(n,t,i){var r=u._parseError(n,i);l.jqXHR=n;l.response={};u._showError(r,l,"filedeleteerror");h.removeClass("file-uploading");e()}},u.ajaxDeleteSettings);r(c,"click",function(){return u._validateMinCount()?void n.ajax(b):!1})}})},_clearObjects:function(t){t.find("video audio").each(function(){this.pause();n(this).remove()});t.find("img object div").each(function(){n(this).remove()})},_clearFileInput:function(){var e,r,u,f=this,i=f.$element;t(i.val())||(f.isIE9||f.isIE10?(e=i.closest("form"),r=n(document.createElement("form")),u=n(document.createElement("div")),i.before(u),e.length?e.after(r):u.after(r),r.append(i).trigger("reset"),u.before(i).remove(),r.remove()):i.val(""),f.fileInputCleared=!0)},_resetUpload:function(){var n=this;n.uploadCache={content:[],config:[],tags:[],append:!0};n.uploadCount=0;n.uploadStatus={};n.uploadLog=[];n.uploadAsyncCount=0;n.loadedImages=[];n.totalImagesCount=0;n.$btnUpload.removeAttr("disabled");n._setProgress(0);f(n.$progress,"hide");n._resetErrors(!1);n.ajaxAborted=!1;n.ajaxRequests=[];n._resetCanvas()},_resetCanvas:function(){var n=this;n.canvas&&n.imageCanvasContext&&n.imageCanvasContext.clearRect(0,0,n.canvas.width,n.canvas.height)},_hasInitialPreview:function(){var n=this;return!n.overwriteInitial&&i.count(n.id)},_resetPreview:function(){var t,r,n=this;i.count(n.id)?(t=i.out(n.id),n.$preview.html(t.content),r=n.initialCaption?n.initialCaption:t.caption,n._setCaption(r)):(n._clearPreview(),n._initCaption());n.showPreview&&(n._initZoom(),n._initSortable())},_clearDefaultPreview:function(){var n=this;n.$preview.find(".file-default-preview").remove()},_validateDefaultPreview:function(){var n=this;n.showPreview&&!t(n.defaultPreviewContent)&&(n.$preview.html('<div class="file-default-preview">'+n.defaultPreviewContent+"<\/div>"),n.$container.removeClass("file-input-new"),n._initClickable())},_resetPreviewThumbs:function(n){var r,t=this;return n?(t._clearPreview(),void t.clearStack()):void(t._hasInitialPreview()?(r=i.out(t.id),t.$preview.html(r.content),t._setCaption(r.caption),t._initPreviewActions()):t._clearPreview())},_getLayoutTemplate:function(n){var i=this,r=e(n,i.layoutTemplates,ot[n]);return t(i.customLayoutTags)?r:k(r,i.customLayoutTags)},_getPreviewTemplate:function(n){var i=this,r=e(n,i.previewTemplates,st[n]);return t(i.customPreviewTags)?r:k(r,i.customPreviewTags)},_getOutData:function(n,t,i){var r=this;return n=n||{},t=t||{},i=i||r.filestack.slice(0)||{},{form:r.formdata,files:i,filenames:r.filenames,extra:r._getExtraData(),response:t,reader:r.reader,jqXHR:n}},_getMsgSelected:function(n){var t=this,i=1===n?t.fileSingle:t.filePlural;return t.msgSelected.replace("{n}",n).replace("{files}",i)},_getThumbs:function(n){return n=n||"",this.$preview.find(".file-preview-frame:not(.file-preview-initial)"+n)},_getExtraData:function(n,t){var i=this,r=i.uploadExtraData;return"function"==typeof i.uploadExtraData&&(r=i.uploadExtraData(n,t)),r},_initXhr:function(n,t,i){var r=this;return n.upload&&n.upload.addEventListener("progress",function(n){var u=0,f=n.loaded||n.position,e=n.total;n.lengthComputable&&(u=Math.ceil(f/e*100));t?r._setAsyncUploadStatus(t,u,i):r._setProgress(Math.ceil(u))},!1),n},_ajaxSubmit:function(t,i,r,u,f,e){var s,o=this;o._raise("filepreajax",[f,e]);o._uploadExtra(f,e);s=n.extend(!0,{},{xhr:function(){var t=n.ajaxSettings.xhr();return o._initXhr(t,f,o.getFileStack().length)},url:o.uploadUrl,type:"POST",dataType:"json",data:o.formdata,cache:!1,processData:!1,contentType:!1,beforeSend:t,success:i,complete:r,error:u},o.ajaxSettings);o.ajaxRequests.push(n.ajax(s))},_initUploadSuccess:function(t,r,u){var h,v,y,a,e,o,s,l,f=this;f.showPreview&&"object"==typeof t&&!n.isEmptyObject(t)&&void 0!==t.initialPreview&&t.initialPreview.length>0&&(f.hasInitData=!0,e=t.initialPreview||[],o=t.initialPreviewConfig||[],s=t.initialPreviewThumbTags||[],h=!(void 0!==t.append&&!t.append),e.length>0&&!c(e)&&(e=e.split(f.initialPreviewDelimiter)),f.overwriteInitial=!1,f.initialPreview.concat(e),f.initialPreviewThumbTags.concat(s),f.initialPreviewConfig.concat(o),void 0!==r?u?(l=r.attr("data-fileindex"),f.uploadCache.content[l]=e[0],f.uploadCache.config[l]=o[0],f.uploadCache.tags[l]=s[0],f.uploadCache.append=h):(y=i.add(f.id,e,o[0],s[0],h),v=i.get(f.id,y,!1),a=n(v).hide(),r.after(a).fadeOut("slow",function(){a.fadeIn("slow").css("display:inline-block");f._initPreviewActions();f._clearFileInput();r.remove()})):(i.set(f.id,e,o,s,h),f._initPreview(),f._initPreviewActions()))},_initSuccessThumbs:function(){var t=this;t.showPreview&&t._getThumbs(".file-preview-success").each(function(){var i=n(this),u=i.find(".kv-file-remove");u.removeAttr("disabled");r(u,"click",function(){var n=t._raise("filesuccessremove",[i.attr("id"),i.data("fileindex")]);rt(i);n!==!1&&i.fadeOut("slow",function(){i.remove();t.$preview.find(".file-preview-frame").length||t.reset()})})})},_checkAsyncComplete:function(){for(var r,t=this,i=0;i<t.filestack.length;i++)if(t.filestack[i]&&(r=t.previewInitId+"-"+i,-1===n.inArray(r,t.uploadLog)))return!1;return t.uploadAsyncCount===t.uploadLog.length},_uploadExtra:function(t,i){var r=this,u=r._getExtraData(t,i);0!==u.length&&n.each(u,function(n,t){r.formdata.append(n,t)})},_uploadSingle:function(r,u,e){var l,s,w,a,y,b,k,d,g,v,o=this,nt=o.getFileStack().length,p=new FormData,h=o.previewInitId+"-"+r,tt=o.filestack.length>0||!n.isEmptyObject(o.uploadExtraData),c={id:h,index:r};o.formdata=p;o.showPreview&&(s=n("#"+h+":not(.file-preview-initial)"),a=s.find(".kv-file-upload"),y=s.find(".kv-file-remove"),n("#"+h).find(".file-thumb-progress").removeClass("hide"));0===nt||!tt||a&&a.hasClass("disabled")||o._abort(c)||(v=function(n,t){o.updateStack(n,void 0);o.uploadLog.push(t);o._checkAsyncComplete()&&(o.fileBatchCompleted=!0)},w=function(){var n=o.uploadCache;o.fileBatchCompleted&&setTimeout(function(){o.showPreview&&(i.set(o.id,n.content,n.config,n.tags,n.append),o.hasInitData&&(o._initPreview(),o._initPreviewActions()));o.unlock();o._clearFileInput();o._raise("filebatchuploadcomplete",[o.filestack,o._getExtraData()]);o.uploadCount=0;o.uploadStatus={};o.uploadLog=[];o._setProgress(100)},100)},b=function(t){l=o._getOutData(t);o.fileBatchCompleted=!1;o.showPreview&&(s.hasClass("file-preview-success")||(o._setThumbStatus(s,"Loading"),f(s,"file-uploading")),a.attr("disabled",!0),y.attr("disabled",!0));e||o.lock();o._raise("filepreupload",[l,h,r]);n.extend(!0,c,l);o._abort(c)&&(t.abort(),o._setProgressCancelled())},k=function(i,u,f){l=o._getOutData(f,i);n.extend(!0,c,l);setTimeout(function(){t(i)||t(i.error)?(o.showPreview&&(o._setThumbStatus(s,"Success"),a.hide(),o._initUploadSuccess(i,s,e)),o._raise("fileuploaded",[l,h,r]),e?v(r,h):o.updateStack(r,void 0)):(o._showUploadError(i.error,c),o._setPreviewError(s,r),e&&v(r,h))},100)},d=function(){setTimeout(function(){o.showPreview&&(a.removeAttr("disabled"),y.removeAttr("disabled"),s.removeClass("file-uploading"));e?w():(o.unlock(!1),o._clearFileInput());o._initSuccessThumbs()},100)},g=function(t,i,f){var l=o._parseError(t,f,e?u[r].name:null);setTimeout(function(){e&&v(r,h);o.uploadStatus[h]=100;o._setPreviewError(s,r);n.extend(!0,c,o._getOutData(t));o._showUploadError(l,c)},100)},p.append(o.uploadFileAttr,u[r],o.filenames[r]),p.append("file_id",r),o._ajaxSubmit(b,k,d,g,h,r))},_uploadBatch:function(){var u,e,o,s,h,i=this,r=i.filestack,c=r.length,l=i.filestack.length>0||!n.isEmptyObject(i.uploadExtraData);i.formdata=new FormData;0!==c&&l&&!i._abort({})&&(h=function(){n.each(r,function(n){i.updateStack(n,void 0)});i._clearFileInput()},u=function(t){i.lock();var r=i._getOutData(t);i.showPreview&&i._getThumbs().each(function(){var t=n(this),r=t.find(".kv-file-upload"),u=t.find(".kv-file-remove");t.hasClass("file-preview-success")||(i._setThumbStatus(t,"Loading"),f(t,"file-uploading"));r.attr("disabled",!0);u.attr("disabled",!0)});i._raise("filebatchpreupload",[r]);i._abort(r)&&(t.abort(),i._setProgressCancelled())},e=function(r,u,f){var o=i._getOutData(f,r),s=i._getThumbs(),e=0,c=t(r)||t(r.errorkeys)?[]:r.errorkeys;t(r)||t(r.error)?(i._raise("filebatchuploadsuccess",[o]),h(),i.showPreview?(s.each(function(){var t=n(this),r=t.find(".kv-file-upload");t.find(".kv-file-upload").hide();i._setThumbStatus(t,"Success");t.removeClass("file-uploading");r.removeAttr("disabled")}),i._initUploadSuccess(r)):i.reset()):(i.showPreview&&(s.each(function(){var t=n(this),r=t.find(".kv-file-remove"),u=t.find(".kv-file-upload");return t.removeClass("file-uploading"),u.removeAttr("disabled"),r.removeAttr("disabled"),0===c.length?void i._setPreviewError(t):(-1!==n.inArray(e,c)?i._setPreviewError(t):(t.find(".kv-file-upload").hide(),i._setThumbStatus(t,"Success"),i.updateStack(e,void 0)),void e++)}),i._initUploadSuccess(r)),i._showUploadError(r.error,o,"filebatchuploaderror"))},s=function(){i._setProgress(100);i.unlock();i._initSuccessThumbs();i._clearFileInput();i._raise("filebatchuploadcomplete",[i.filestack,i._getExtraData()])},o=function(t,r,u){var f=i._getOutData(t),e=i._parseError(t,u);i._showUploadError(e,f,"filebatchuploaderror");i.uploadFileCount=c-1;i.showPreview&&(i._getThumbs().each(function(){var t=n(this),r=t.attr("data-fileindex");t.removeClass("file-uploading");void 0!==i.filestack[r]&&i._setPreviewError(t)}),i._getThumbs().removeClass("file-uploading"),i._getThumbs(" .kv-file-upload").removeAttr("disabled"),i._getThumbs(" .kv-file-delete").removeAttr("disabled"))},n.each(r,function(n,u){t(r[n])||i.formdata.append(i.uploadFileAttr,u,i.filenames[n])}),i._ajaxSubmit(u,e,s,o))},_uploadExtraOnly:function(){var r,u,f,e,n=this,i={};n.formdata=new FormData;n._abort(i)||(r=function(t){n.lock();var r=n._getOutData(t);n._raise("filebatchpreupload",[r]);n._setProgress(50);i.data=r;i.xhr=t;n._abort(i)&&(t.abort(),n._setProgressCancelled())},u=function(i,r,u){var f=n._getOutData(u,i);t(i)||t(i.error)?(n._raise("filebatchuploadsuccess",[f]),n._clearFileInput(),n._initUploadSuccess(i)):n._showUploadError(i.error,f,"filebatchuploaderror")},f=function(){n._setProgress(100);n.unlock();n._clearFileInput();n._raise("filebatchuploadcomplete",[n.filestack,n._getExtraData()])},e=function(t,r,u){var f=n._getOutData(t),e=n._parseError(t,u);i.data=f;n._showUploadError(e,f,"filebatchuploaderror")},n._ajaxSubmit(r,u,f,e))},_initFileActions:function(){var t=this;t.showPreview&&(t._initZoomButton(),t.$preview.find(".kv-file-remove").each(function(){var s,e,h,c,l=n(this),u=l.closest(".file-preview-frame"),f=u.attr("id"),o=u.attr("data-fileindex");r(l,"click",function(){return c=t._raise("filepreremove",[f,o]),c!==!1&&t._validateMinCount()?(s=u.hasClass("file-preview-error"),rt(u),void u.fadeOut("slow",function(){t.updateStack(o,void 0);t._clearObjects(u);u.remove();f&&s&&t.$errorContainer.find('li[data-file-id="'+f+'"]').fadeOut("fast",function(){n(this).remove();t._errorsExist()||t._resetErrors()});t._clearFileInput();var r=t.getFileStack(!0),c=i.count(t.id),l=r.length,a=t.showPreview&&t.$preview.find(".file-preview-frame").length;0!==l||0!==c||a?(e=c+l,h=e>1?t._getMsgSelected(e):r[0]?t._getFileNames()[0]:"",t._setCaption(h)):t.reset();t._raise("fileremoved",[f,o])})):!1})}),t.$preview.find(".kv-file-upload").each(function(){var i=n(this);r(i,"click",function(){var n=i.closest(".file-preview-frame"),r=n.attr("data-fileindex");n.hasClass("file-preview-error")||t._uploadSingle(r,t.filestack,!1)})}))},_hideFileIcon:function(){this.overwriteInitial&&this.$captionContainer.find(".kv-caption-icon").hide()},_showFileIcon:function(){this.$captionContainer.find(".kv-caption-icon").show()},_getSize:function(n){var t=parseFloat(n),i,e,r,u,f;return null===n||isNaN(t)?"":(u=this,f=u.fileSizeGetter,"function"==typeof f?r=f(n):(i=Math.floor(Math.log(t)/Math.log(1024)),e=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],r=1*(t/Math.pow(1024,i)).toFixed(2)+" "+e[i]),u._getLayoutTemplate("size").replace("{sizeText}",r))},_generatePreviewTemplate:function(n,t,i,r,u,f,o,s,h,c){var y,w,l=this,v=l._getPreviewTemplate(n),b=s||"",a=e(n,l.previewSettings,ht[n]),p=l.slug(i),k=h||l._renderFileFooter(p,o,a.width,f);return c=c||u.slice(u.lastIndexOf("-")+1),v=l._parseFilePreviewIcon(v,i),"text"===n||"html"===n?(w="text"===n?fr(t):t,y=v.replace(/\{previewId}/g,u).replace(/\{caption}/g,p).replace(/\{width}/g,a.width).replace(/\{height}/g,a.height).replace(/\{frameClass}/g,b).replace(/\{cat}/g,r).replace(/\{footer}/g,k).replace(/\{fileindex}/g,c).replace(/\{data}/g,w).replace(/\{template}/g,n)):y=v.replace(/\{previewId}/g,u).replace(/\{caption}/g,p).replace(/\{frameClass}/g,b).replace(/\{type}/g,r).replace(/\{fileindex}/g,c).replace(/\{width}/g,a.width).replace(/\{height}/g,a.height).replace(/\{footer}/g,k).replace(/\{data}/g,t).replace(/\{template}/g,n),y},_previewDefault:function(t,i,r){var u=this,e=u.$preview,f=e.find(".file-live-thumbs");if(u.showPreview){var o,s=t?t.name:"",h=t?t.type:"",c=r===!0&&!u.isUploadable,l=w.createObjectURL(t);u._clearDefaultPreview();o=u._generatePreviewTemplate("other",l,s,h,i,c,t.size);f.length||(f=n(document.createElement("div")).addClass("file-live-thumbs").appendTo(e));f.append("\n"+o);r===!0&&u.isUploadable&&u._setThumbStatus(n("#"+i),"Error")}},_previewFile:function(t,i,r,u,f){if(this.showPreview){var c,e=this,o=e._parseFileType(i),l=i?i.name:"",p=e.slug(l),a=e.allowedPreviewTypes,v=e.allowedPreviewMimeTypes,y=e.$preview,w=a&&a.indexOf(o)>=0,s=y.find(".file-live-thumbs"),h="text"===o||"html"===o||"image"===o?r.target.result:f,b=v&&-1!==v.indexOf(i.type);s.length||(s=n(document.createElement("div")).addClass("file-live-thumbs").appendTo(y));"html"===o&&e.purifyHtml&&window.DOMPurify&&(h=window.DOMPurify.sanitize(h));w||b?(c=e._generatePreviewTemplate(o,h,l,i.type,u,!1,i.size),e._clearDefaultPreview(),s.append("\n"+c),e._validateImage(t,u,p,i.type)):e._previewDefault(i,u);e._initSortable()}},_slugDefault:function(n){return t(n)?"":String(n).replace(/[\-\[\]\/\{}:;#%=\(\)\*\+\?\\\^\$\|<>&"']/g,"_")},_readFiles:function(i){this.reader=new FileReader;var s,r=this,d=r.$element,b=r.$preview,f=r.reader,l=r.$previewContainer,h=r.$previewStatus,g=r.msgLoading,k=r.msgProgress,nt=r.previewInitId,o=i.length,a=r.fileTypeSettings,tt=r.filestack.length,y=r.maxFilePreviewSize&&parseFloat(r.maxFilePreviewSize),it=b.length&&(!y||isNaN(y)),p=function(t,u,f,e){var o=n.extend(!0,{},r._getOutData({},{},i),{id:f,index:e}),h={id:f,index:e,file:u,files:i};return r._previewDefault(u,f,!0),r.isUploadable&&r.addToStack(void 0),setTimeout(function(){s(e+1)},100),r._initFileActions(),r.removeFromPreviewOnError&&n("#"+f).remove(),r.isUploadable?r._showUploadError(t,o):r._showError(t,h)};r.loadedImages=[];r.totalImagesCount=0;n.each(i,function(n,t){var i=r.fileTypeSettings.image||v.image;i&&i(t.type)&&r.totalImagesCount++});s=function(n){if(t(d.attr("multiple"))&&(o=1),n>=o)return r.isUploadable&&r.filestack.length>0?r._raise("filebatchselected",[r.getFileStack()]):r._raise("filebatchselected",[i]),l.removeClass("file-thumb-loading"),void h.html("");var pt,wt,vt,at,ut,bt,ot,kt=tt+n,et=nt+"-"+kt,rt=i[n],ft=r.slug(rt.name),ct=(rt.size||0)/1e3,yt="",dt=w.createObjectURL(rt),lt=0,st=r.allowedFileTypes,gt=t(st)?"":st.join(", "),ht=r.allowedFileExtensions,ni=t(ht)?"":ht.join(", ");if(t(ht)||(yt=new RegExp("\\.("+ht.join("|")+")$","i")),ct=ct.toFixed(2),r.maxFileSize>0&&ct>r.maxFileSize)return ut=r.msgSizeTooLarge.replace("{name}",ft).replace("{size}",ct).replace("{maxSize}",r.maxFileSize),void(r.isError=p(ut,rt,et,n));if(!t(st)&&c(st)){for(at=0;at<st.length;at+=1)bt=st[at],vt=a[bt],ot=void 0!==vt&&vt(rt.type,ft),lt+=t(ot)?0:ot.length;if(0===lt)return ut=r.msgInvalidFileType.replace("{name}",ft).replace("{types}",gt),void(r.isError=p(ut,rt,et,n))}return 0!==lt||t(ht)||!c(ht)||t(yt)||(ot=u(ft,yt),lt+=t(ot)?0:ot.length,0!==lt)?r.showPreview?!it&&ct>y?(l.addClass("file-thumb-loading"),r._previewDefault(rt,et),r._initFileActions(),r._updateFileDetails(o),void s(n+1)):(b.length&&void 0!==FileReader?(h.html(g.replace("{index}",n+1).replace("{files}",o)),l.addClass("file-thumb-loading"),f.onerror=function(n){r._errorHandler(n,ft)},f.onload=function(t){r._previewFile(n,rt,t,et,dt);r._initFileActions()},f.onloadend=function(){ut=k.replace("{index}",n+1).replace("{files}",o).replace("{percent}",50).replace("{name}",ft);setTimeout(function(){h.html(ut);r._updateFileDetails(o);s(n+1)},100);r._raise("fileloaded",[rt,et,n,f])},f.onprogress=function(t){if(t.lengthComputable){var i=t.loaded/t.total*100,r=Math.ceil(i);ut=k.replace("{index}",n+1).replace("{files}",o).replace("{percent}",r).replace("{name}",ft);setTimeout(function(){h.html(ut)},100)}},pt=e("text",a,v.text),wt=e("image",a,v.image),pt(rt.type,ft)?f.readAsText(rt,r.textEncoding):wt(rt.type,ft)?f.readAsDataURL(rt):f.readAsArrayBuffer(rt)):(r._previewDefault(rt,et),setTimeout(function(){s(n+1);r._updateFileDetails(o)},100),r._raise("fileloaded",[rt,et,n,f])),void r.addToStack(rt)):(r.addToStack(rt),setTimeout(function(){s(n+1)},100),void r._raise("fileloaded",[rt,et,n,f])):(ut=r.msgInvalidFileExtension.replace("{name}",ft).replace("{extensions}",ni),void(r.isError=p(ut,rt,et,n)))};s(0);r._updateFileDetails(o,!1)},_updateFileDetails:function(n){var t=this,r=t.$element,u=t.getFileStack(),o=a(9)&&er(r.val())||r[0].files[0]&&r[0].files[0].name||u.length&&u[0].name||"",f=t.slug(o),e=t.isUploadable?u.length:n,s=i.count(t.id)+e,h=e>1?t._getMsgSelected(s):f;t.isError?(t.$previewContainer.removeClass("file-thumb-loading"),t.$previewStatus.html(""),t.$captionContainer.find(".kv-caption-icon").hide()):t._showFileIcon();t._setCaption(h,t.isError);t.$container.removeClass("file-input-new file-input-ajax-new");1===arguments.length&&t._raise("fileselect",[n,f]);i.count(t.id)&&t._initPreviewActions()},_setThumbStatus:function(n,t){var r=this;if(r.showPreview){var u="indicator"+t,e=u+"Title",o="file-preview-"+t.toLowerCase(),i=n.find(".file-upload-indicator"),f=r.fileActionSettings;n.removeClass("file-preview-success file-preview-error file-preview-loading");"Error"===t&&n.find(".kv-file-upload").attr("disabled",!0);"Success"===t&&(n.find(".file-drag-handle").remove(),i.css("margin-left",0));i.html(f[u]);i.attr("title",f[e]);n.addClass(o)}},_setProgressCancelled:function(){var n=this;n._setProgress(100,n.$progress,n.msgCancelled)},_setProgress:function(n,i,r){var u=this,f=Math.min(n,100),e=100>f?u.progressTemplate:r?u.progressErrorTemplate:u.progressCompleteTemplate;i=i||u.$progress;t(e)||(i.html(e.replace(/\{percent}/g,f)),r&&i.find('[role="progressbar"]').html(r))},_setFileDropZoneTitle:function(){var r,n=this,i=n.$container.find(".file-drop-zone"),u=n.dropZoneTitle;n.isClickable&&(r=t(n.$element.attr("multiple"))?n.fileSingle:n.filePlural,u+=n.dropZoneClickTitle.replace("{files}",r));i.find("."+n.dropZoneTitleClass).remove();n.isUploadable&&n.showPreview&&0!==i.length&&!(n.getFileStack().length>0)&&n.dropZoneEnabled&&(0===i.find(".file-preview-frame").length&&t(n.defaultPreviewContent)&&i.prepend('<div class="'+n.dropZoneTitleClass+'">'+u+"<\/div>"),n.$container.removeClass("file-input-new"),f(n.$container,"file-input-ajax-new"))},_setAsyncUploadStatus:function(t,i,r){var u=this,f=0;u._setProgress(i,n("#"+t).find(".file-thumb-progress"));u.uploadStatus[t]=i;n.each(u.uploadStatus,function(n,t){f+=t});u._setProgress(Math.ceil(f/r))},_validateMinCount:function(){var n=this,t=n.isUploadable?n.getFileStack().length:n.$element.get(0).files.length;return n.validateInitialCount&&n.minFileCount>0&&n._getFileCount(t-1)<n.minFileCount?(n._noFilesError({}),!1):!0},_getFileCount:function(n){var t=this,r=0;return t.validateInitialCount&&!t.overwriteInitial&&(r=i.count(t.id),n+=r),n},_getFileName:function(n){if(n&&n.name)return this.slug(n.name)},_getFileNames:function(n){var t=this;return t.filenames.filter(function(t){return n?void 0!==t:void 0!==t&&null!==t})},_setPreviewError:function(n,t,i){var r=this;t&&r.updateStack(t,i);r.removeFromPreviewOnError?n.remove():r._setThumbStatus(n,"Error")},_checkDimensions:function(n,i,r,u,f,e,o){var a,l,s,v,h=this,y="Small"===i?"min":"max",c=h[y+"Image"+e];!t(c)&&r.length&&(s=r[0],l="Width"===e?s.naturalWidth||s.width:s.naturalHeight||s.height,v="Small"===i?l>=c:c>=l,v||(a=h["msgImage"+e+i].replace("{name}",f).replace("{size}",c),h._showUploadError(a,o),h._setPreviewError(u,n,null)))},_validateImage:function(n,t,i,u){var s,h,c,f=this,l=f.$preview,o=l.find("#"+t),e=o.find("img");i=i||"Untitled";e.length&&r(e,"load",function(){h=o.width();c=l.width();h>c&&(e.css("width","100%"),o.css("width","97%"));s={ind:n,id:t};f._checkDimensions(n,"Small",e,o,i,"Width",s);f._checkDimensions(n,"Small",e,o,i,"Height",s);f.resizeImage||(f._checkDimensions(n,"Large",e,o,i,"Width",s),f._checkDimensions(n,"Large",e,o,i,"Height",s));f._raise("fileimageloaded",[t]);f.loadedImages.push({ind:n,img:e,thumb:o,pid:t,typ:u});f._validateAllImages();w.revokeObjectURL(e.attr("src"))})},_validateAllImages:function(){var i,t,f,e,u,r,o,n=this,s={};if(n.loadedImages.length===n.totalImagesCount&&(n._raise("fileimagesloaded"),n.resizeImage)){for(o=n.isUploadable?n._showUploadError:n._showError,i=0;i<n.loadedImages.length;i++)t=n.loadedImages[i],f=t.img,e=t.thumb,u=t.pid,r=t.ind,s={id:u,index:r},n._getResizedImage(f[0],t.typ,u,r)||(o(n.msgImageResizeError,s,"fileimageresizeerror"),n._setPreviewError(e,r));n._raise("fileimagesresized")}},_getResizedImage:function(n,t,i,r){var h,c,u=this,f=n.naturalWidth,e=n.naturalHeight,l=1,o=u.maxImageWidth||f,s=u.maxImageHeight||e,v=f&&e,a=u.imageCanvas,y=u.imageCanvasContext;if(!v)return!1;if(f===o&&e===s)return!0;t=t||u.resizeDefaultImageType;h=f>o;c=e>s;l="width"===u.resizePreference?h?o/f:c?s/e:1:c?s/e:h?o/f:1;u._resetCanvas();f*=l;e*=l;a.width=f;a.height=e;try{return y.drawImage(n,0,0,f,e),a.toBlob(function(n){u._raise("fileimageresized",[i,r]);u.filestack[r]=n},t,u.resizeQuality),!0}catch(p){return!1}},_initBrowse:function(n){var t=this;t.showBrowse?(t.$btnFile=n.find(".btn-file"),t.$btnFile.append(t.$element)):t.$element.hide()},_initCaption:function(){var n=this,i=n.initialCaption||"";return n.overwriteInitial||t(i)?(n.$caption.html(""),!1):(n._setCaption(i),!0)},_setCaption:function(i,r){var f,o,e,s,u=this,h=u.getFileStack();if(u.$caption.length){if(r)f=n("<div>"+u.msgValidationError+"<\/div>").text(),e=h.length,s=e?1===e&&h[0]?u._getFileNames()[0]:u._getMsgSelected(e):u._getMsgSelected(u.msgNo),o='<span class="'+u.msgValidationErrorClass+'">'+u.msgValidationErrorIcon+(t(i)?s:i)+"<\/span>";else{if(t(i))return;f=n("<div>"+i+"<\/div>").text();o=u._getLayoutTemplate("fileIcon")+f}u.$caption.html(o);u.$caption.attr("title",f);u.$captionContainer.find(".file-caption-ellipsis").attr("title",f)}},_createContainer:function(){var t=this,i=n(document.createElement("div")).attr({"class":"file-input file-input-new"}).html(t._renderMain());return t.$element.before(i),t._initBrowse(i),t.theme&&i.addClass("theme-"+t.theme),i},_refreshContainer:function(){var n=this,t=n.$container;t.before(n.$element);t.html(n._renderMain());n._initBrowse(t)},_renderMain:function(){var n=this,t=n.isUploadable&&n.dropZoneEnabled?" file-drop-zone":"file-drop-disabled",i=n.showClose?n._getLayoutTemplate("close"):"",r=n.showPreview?n._getLayoutTemplate("preview").replace(/\{class}/g,n.previewClass).replace(/\{dropClass}/g,t):"",u=n.isDisabled?n.captionClass+" file-caption-disabled":n.captionClass,f=n.captionTemplate.replace(/\{class}/g,u+" kv-fileinput-caption");return n.mainTemplate.replace(/\{class}/g,n.mainClass+(!n.showBrowse&&n.showCaption?" no-browse":"")).replace(/\{preview}/g,r).replace(/\{close}/g,i).replace(/\{caption}/g,f).replace(/\{upload}/g,n._renderButton("upload")).replace(/\{remove}/g,n._renderButton("remove")).replace(/\{cancel}/g,n._renderButton("cancel")).replace(/\{browse}/g,n._renderButton("browse"))},_renderButton:function(n){var i=this,u=i._getLayoutTemplate("btnDefault"),f=i[n+"Class"],o=i[n+"Title"],s=i[n+"Icon"],r=i[n+"Label"],h=i.isDisabled?" disabled":"",e="button";switch(n){case"remove":if(!i.showRemove)return"";break;case"cancel":if(!i.showCancel)return"";f+=" hide";break;case"upload":if(!i.showUpload)return"";i.isUploadable&&!i.isDisabled?u=i._getLayoutTemplate("btnLink").replace("{href}",i.uploadUrl):e="submit";break;case"browse":if(!i.showBrowse)return"";u=i._getLayoutTemplate("btnBrowse");break;default:return""}return f+="browse"===n?" btn-file":" fileinput-"+n+" fileinput-"+n+"-button",t(r)||(r=' <span class="'+i.buttonLabelClass+'">'+r+"<\/span>"),u.replace("{type}",e).replace("{css}",f).replace("{title}",o).replace("{status}",h).replace("{icon}",s).replace("{label}",r)},_renderThumbProgress:function(){return'<div class="file-thumb-progress hide">'+this.progressTemplate.replace(/\{percent}/g,"0")+"<\/div>"},_renderFileFooter:function(n,t,i,r){var e,u=this,f=u.fileActionSettings,a=f.showRemove,o=f.showDrag,v=f.showUpload,s=f.showZoom,h=u._getLayoutTemplate("footer"),c=r?f.indicatorError:f.indicatorNew,l=r?f.indicatorErrorTitle:f.indicatorNewTitle;return t=u._getSize(t),e=u.isUploadable?h.replace(/\{actions}/g,u._renderFileActions(a,v,s,o,!1,!1,!1)).replace(/\{caption}/g,n).replace(/\{size}/g,t).replace(/\{width}/g,i).replace(/\{progress}/g,u._renderThumbProgress()).replace(/\{indicator}/g,c).replace(/\{indicatorTitle}/g,l):h.replace(/\{actions}/g,u._renderFileActions(!1,!1,s,o,!1,!1,!1)).replace(/\{caption}/g,n).replace(/\{size}/g,t).replace(/\{width}/g,i).replace(/\{progress}/g,"").replace(/\{indicator}/g,c).replace(/\{indicatorTitle}/g,l),e=k(e,u.previewThumbTags)},_renderFileActions:function(n,t,i,r,u,f,e,o){if(!(n||t||i||r))return"";var c,h=this,w=f===!1?"":' data-url="'+f+'"',l=e===!1?"":' data-key="'+e+'"',a="",v="",y="",p="",b=h._getLayoutTemplate("actions"),s=h.fileActionSettings,k=h.otherActionButtons.replace(/\{dataKey}/g,l),d=u?s.removeClass+" disabled":s.removeClass;return t&&(a=h._getLayoutTemplate("actionDelete").replace(/\{removeClass}/g,d).replace(/\{removeIcon}/g,s.removeIcon).replace(/\{removeTitle}/g,s.removeTitle).replace(/\{dataUrl}/g,w).replace(/\{dataKey}/g,l)),n&&(v=h._getLayoutTemplate("actionUpload").replace(/\{uploadClass}/g,s.uploadClass).replace(/\{uploadIcon}/g,s.uploadIcon).replace(/\{uploadTitle}/g,s.uploadTitle)),i&&(y=h._getLayoutTemplate("actionZoom").replace(/\{zoomClass}/g,s.zoomClass).replace(/\{zoomIcon}/g,s.zoomIcon).replace(/\{zoomTitle}/g,s.zoomTitle)),r&&o&&(c="drag-handle-init "+s.dragClass,p=h._getLayoutTemplate("actionDrag").replace(/\{dragClass}/g,c).replace(/\{dragTitle}/g,s.dragTitle).replace(/\{dragIcon}/g,s.dragIcon)),b.replace(/\{delete}/g,a).replace(/\{upload}/g,v).replace(/\{zoom}/g,y).replace(/\{drag}/g,p).replace(/\{other}/g,k)},_browse:function(n){var t=this;t._raise("filebrowse");n&&n.isDefaultPrevented()||(t.isError&&!t.isUploadable&&t.clear(),t.$captionContainer.focus())},_change:function(r){var u=this,l=u.$element;if(!u.isUploadable&&t(l.val())&&u.fileInputCleared)return void(u.fileInputCleared=!1);u.fileInputCleared=!1;var f,y,o,s,p,e,w=arguments.length>1,h=u.isUploadable,a=0,c=w?r.originalEvent.dataTransfer.files:l.get(0).files,b=u.filestack.length,d=t(l.attr("multiple")),k=d&&b>0,v=0,g=function(t,i,r,f){var e=n.extend(!0,{},u._getOutData({},{},c),{id:r,index:f}),o={id:r,index:f,file:i,files:c};return u.isUploadable?u._showUploadError(t,e):u._showError(t,o)};if(u.reader=null,u._resetUpload(),u._hideFileIcon(),u.isUploadable&&u.$container.find(".file-drop-zone ."+u.dropZoneTitleClass).remove(),w)for(f=[];c[a];)s=c[a],s.type||s.size%4096!=0?f.push(s):v++,a++;else f=void 0===r.target.files?r.target&&r.target.value?[{name:r.target.value.replace(/^.+\\/,"")}]:[]:r.target.files;if(t(f)||0===f.length)return h||u.clear(),u._showFolderError(v),void u._raise("fileselectnone");if(u._resetErrors(),e=f.length,o=u._getFileCount(u.isUploadable?u.getFileStack().length+e:e),u.maxFileCount>0&&o>u.maxFileCount){if(!u.autoReplace||e>u.maxFileCount)return p=u.autoReplace&&e>u.maxFileCount?e:o,y=u.msgFilesTooMany.replace("{m}",u.maxFileCount).replace("{n}",p),u.isError=g(y,null,null,null),u.$captionContainer.find(".kv-caption-icon").hide(),u._setCaption("",!0),void u.$container.removeClass("file-input-new file-input-ajax-new");o>u.maxFileCount&&u._resetPreviewThumbs(h)}else!h||k?(u._resetPreviewThumbs(!1),k&&u.clearStack()):!h||0!==b||i.count(u.id)&&!u.overwriteInitial||u._resetPreviewThumbs(!0);u.isPreviewable?u._readFiles(f):u._updateFileDetails(1);u._showFolderError(v)},_abort:function(t){var r,i=this;return i.ajaxAborted&&"object"==typeof i.ajaxAborted&&void 0!==i.ajaxAborted.message?(r=n.extend(!0,{},i._getOutData(),t),r.abortData=i.ajaxAborted.data||{},r.abortMessage=i.ajaxAborted.message,i.cancel(),i._setProgress(100,i.$progress,i.msgCancelled),i._showUploadError(i.ajaxAborted.message,r,"filecustomerror"),!0):!1},_resetFileStack:function(){var t=this,i=0,r=[],u=[];t._getThumbs().each(function(){var f=n(this),o=f.attr("data-fileindex"),e=t.filestack[o];-1!==o&&(void 0!==e?(r[i]=e,u[i]=t._getFileName(e),f.attr({id:t.previewInitId+"-"+i,"data-fileindex":i}),i++):f.attr({id:"uploaded-"+it(),"data-fileindex":"-1"}))});t.filestack=r;t.filenames=u},clearStack:function(){var n=this;return n.filestack=[],n.filenames=[],n.$element},updateStack:function(n,t){var i=this;return i.filestack[n]=t,i.filenames[n]=i._getFileName(t),i.$element},addToStack:function(n){var t=this;return t.filestack.push(n),t.filenames.push(t._getFileName(n)),t.$element},getFileStack:function(n){var t=this;return t.filestack.filter(function(t){return n?void 0!==t:void 0!==t&&null!==t})},lock:function(){var n=this;return n._resetErrors(),n.disable(),n.showRemove&&f(n.$container.find(".fileinput-remove"),"hide"),n.showCancel&&n.$container.find(".fileinput-cancel").removeClass("hide"),n._raise("filelock",[n.filestack,n._getExtraData()]),n.$element},unlock:function(n){var t=this;return void 0===n&&(n=!0),t.enable(),t.showCancel&&f(t.$container.find(".fileinput-cancel"),"hide"),t.showRemove&&t.$container.find(".fileinput-remove").removeClass("hide"),n&&t._resetFileStack(),t._raise("fileunlock",[t.filestack,t._getExtraData()]),t.$element},cancel:function(){var i,t=this,r=t.ajaxRequests,u=r.length;if(u>0)for(i=0;u>i;i+=1)t.cancelling=!0,r[i].abort();return t._setProgressCancelled(),t._getThumbs().each(function(){var i=n(this),r=i.attr("data-fileindex");i.removeClass("file-uploading");void 0!==t.filestack[r]&&(i.find(".kv-file-upload").removeClass("disabled").removeAttr("disabled"),i.find(".kv-file-remove").removeClass("disabled").removeAttr("disabled"));t.unlock()}),t.$element},clear:function(){var r,t=this;return t.$btnUpload.removeAttr("disabled"),t._getThumbs().find("video,audio,img").each(function(){rt(n(this))}),t._resetUpload(),t.clearStack(),t._clearFileInput(),t._resetErrors(!0),t._raise("fileclear"),t._hasInitialPreview()?(t._showFileIcon(),t._resetPreview(),t._initPreviewActions(),t.$container.removeClass("file-input-new")):(t._getThumbs().each(function(){t._clearObjects(n(this))}),t.isUploadable&&(i.data[t.id]={}),t.$preview.html(""),r=!t.overwriteInitial&&t.initialCaption.length>0?t.initialCaption:"",t._setCaption(r),t.$caption.attr("title",""),f(t.$container,"file-input-new"),t._validateDefaultPreview()),0===t.$container.find(".file-preview-frame").length&&(t._initCaption()||t.$captionContainer.find(".kv-caption-icon").hide()),t._hideFileIcon(),t._raise("filecleared"),t.$captionContainer.focus(),t._setFileDropZoneTitle(),t.$element},reset:function(){var n=this;return n._resetPreview(),n.$container.find(".fileinput-filename").text(""),n._raise("filereset"),f(n.$container,"file-input-new"),(n.$preview.find(".file-preview-frame").length||n.isUploadable&&n.dropZoneEnabled)&&n.$container.removeClass("file-input-new"),n._setFileDropZoneTitle(),n.clearStack(),n.formdata={},n.$element},disable:function(){var n=this;return n.isDisabled=!0,n._raise("filedisabled"),n.$element.attr("disabled","disabled"),n.$container.find(".kv-fileinput-caption").addClass("file-caption-disabled"),n.$container.find(".btn-file, .fileinput-remove, .fileinput-upload, .file-preview-frame button").attr("disabled",!0),n._initDragDrop(),n.$element},enable:function(){var n=this;return n.isDisabled=!1,n._raise("fileenabled"),n.$element.removeAttr("disabled"),n.$container.find(".kv-fileinput-caption").removeClass("file-caption-disabled"),n.$container.find(".btn-file, .fileinput-remove, .fileinput-upload, .file-preview-frame button").removeAttr("disabled"),n._initDragDrop(),n.$element},upload:function(){var i,f,r,t=this,u=t.getFileStack().length,e=!n.isEmptyObject(t._getExtraData());if(t.minFileCount>0&&t._getFileCount(u)<t.minFileCount)return void t._noFilesError({});if(t.isUploadable&&!t.isDisabled&&(0!==u||e)){if(t._resetUpload(),t.$progress.removeClass("hide"),t.uploadCount=0,t.uploadStatus={},t.uploadLog=[],t.lock(),t._setProgress(2),0===u&&e)return void t._uploadExtraOnly();if(r=t.filestack.length,t.hasInitData=!1,!t.uploadAsync)return t._uploadBatch(),t.$element;for(f=t._getOutData(),t._raise("filebatchpreupload",[f]),t.fileBatchCompleted=!1,t.uploadCache={content:[],config:[],tags:[],append:!0},t.uploadAsyncCount=t.getFileStack().length,i=0;r>i;i++)t.uploadCache.content[i]=null,t.uploadCache.config[i]=null,t.uploadCache.tags[i]=null;for(i=0;r>i;i++)void 0!==t.filestack[i]&&t._uploadSingle(i,t.filestack,!0)}},destroy:function(){var n=this,t=n.$container;return t.find(".file-drop-zone").off(),n.$element.insertBefore(t).off(g).removeData(),t.off().remove(),n.$element},refresh:function(t){var i=this,r=i.$element;return t=t?n.extend(!0,{},i.options,t):i.options,i.destroy(),r.fileinput(t),r.val()&&r.trigger("change.fileinput"),r}};n.fn.fileinput=function(i){if(nt()||a(9)){var u=Array.apply(null,arguments),r=[];switch(u.shift(),this.each(function(){var h,f=n(this),e=f.data("fileinput"),o="object"==typeof i&&i,c=o.theme||f.data("theme"),l={},a={},s=o.language||f.data("language")||"en";e||(c&&(a=n.fn.fileinputThemes[c]||{}),"en"===s||t(n.fn.fileinputLocales[s])||(l=n.fn.fileinputLocales[s]||{}),h=n.extend(!0,{},n.fn.fileinput.defaults,a,n.fn.fileinputLocales.en,l,o,f.data()),e=new d(this,h),f.data("fileinput",e));"string"==typeof i&&r.push(e[i].apply(e,u))}),r.length){case 0:return this;case 1:return r[0];default:return r}}};n.fn.fileinput.defaults={language:"en",showCaption:!0,showBrowse:!0,showPreview:!0,showRemove:!0,showUpload:!0,showCancel:!0,showClose:!0,showUploadedThumbs:!0,browseOnZoneClick:!1,autoReplace:!1,previewClass:"",captionClass:"",mainClass:"file-caption-main",mainTemplate:null,purifyHtml:!0,fileSizeGetter:null,initialCaption:"",initialPreview:[],initialPreviewDelimiter:"*$$*",initialPreviewAsData:!1,initialPreviewFileType:"image",initialPreviewConfig:[],initialPreviewThumbTags:[],previewThumbTags:{},initialPreviewShowDelete:!0,removeFromPreviewOnError:!1,deleteUrl:"",deleteExtraData:{},overwriteInitial:!0,layoutTemplates:ot,previewTemplates:st,previewZoomSettings:ur,previewZoomButtonIcons:{prev:'<i class="glyphicon glyphicon-triangle-left"><\/i>',next:'<i class="glyphicon glyphicon-triangle-right"><\/i>',toggleheader:'<i class="glyphicon glyphicon-resize-vertical"><\/i>',fullscreen:'<i class="glyphicon glyphicon-fullscreen"><\/i>',borderless:'<i class="glyphicon glyphicon-resize-full"><\/i>',close:'<i class="glyphicon glyphicon-remove"><\/i>'},previewZoomButtonClasses:{prev:"btn btn-navigate",next:"btn btn-navigate",toggleheader:"btn btn-default btn-header-toggle",fullscreen:"btn btn-default",borderless:"btn btn-default",close:"btn btn-default"},allowedPreviewTypes:null,allowedPreviewMimeTypes:null,allowedFileTypes:null,allowedFileExtensions:null,defaultPreviewContent:null,customLayoutTags:{},customPreviewTags:{},previewSettings:ht,fileTypeSettings:v,previewFileIcon:'<i class="glyphicon glyphicon-file"><\/i>',previewFileIconClass:"file-other-icon",previewFileIconSettings:{},previewFileExtSettings:{},buttonLabelClass:"hidden-xs",browseIcon:'<i class="glyphicon glyphicon-folder-open"><\/i>&nbsp;',browseClass:"btn btn-primary",removeIcon:'<i class="glyphicon glyphicon-trash"><\/i>',removeClass:"btn btn-default",cancelIcon:'<i class="glyphicon glyphicon-ban-circle"><\/i>',cancelClass:"btn btn-default",uploadIcon:'<i class="glyphicon glyphicon-upload"><\/i>',uploadClass:"btn btn-default",uploadUrl:null,uploadAsync:!0,uploadExtraData:{},zoomModalHeight:480,minImageWidth:null,minImageHeight:null,maxImageWidth:null,maxImageHeight:null,resizeImage:!1,resizePreference:"width",resizeQuality:.92,resizeDefaultImageType:"image/jpeg",maxFileSize:0,maxFilePreviewSize:25600,minFileCount:0,maxFileCount:0,validateInitialCount:!1,msgValidationErrorClass:"text-danger",msgValidationErrorIcon:'<i class="glyphicon glyphicon-exclamation-sign"><\/i> ',msgErrorClass:"file-error-message",progressThumbClass:"progress-bar progress-bar-success progress-bar-striped active",progressClass:"progress-bar progress-bar-success progress-bar-striped active",progressCompleteClass:"progress-bar progress-bar-success",progressErrorClass:"progress-bar progress-bar-danger",previewFileType:"image",elCaptionContainer:null,elCaptionText:null,elPreviewContainer:null,elPreviewImage:null,elPreviewStatus:null,elErrorContainer:null,errorCloseButton:'<span class="close kv-error-close">&times;<\/span>',slugCallback:null,dropZoneEnabled:!0,dropZoneTitleClass:"file-drop-zone-title",fileActionSettings:{},otherActionButtons:"",textEncoding:"UTF-8",ajaxSettings:{},ajaxDeleteSettings:{},showAjaxErrorDetails:!0};n.fn.fileinputLocales.en={fileSingle:"file",filePlural:"files",browseLabel:"Browse &hellip;",removeLabel:"Remove",removeTitle:"Clear selected files",cancelLabel:"Cancel",cancelTitle:"Abort ongoing upload",uploadLabel:"Upload",uploadTitle:"Upload selected files",msgNo:"No",msgCancelled:"Cancelled",msgZoomModalHeading:"Detailed Preview",msgSizeTooLarge:'File "{name}" (<b>{size} KB<\/b>) exceeds maximum allowed upload size of <b>{maxSize} KB<\/b>.',msgFilesTooLess:"You must select at least <b>{n}<\/b> {files} to upload.",msgFilesTooMany:"Number of files selected for upload <b>({n})<\/b> exceeds maximum allowed limit of <b>{m}<\/b>.",msgFileNotFound:'File "{name}" not found!',msgFileSecured:'Security restrictions prevent reading the file "{name}".',msgFileNotReadable:'File "{name}" is not readable.',msgFilePreviewAborted:'File preview aborted for "{name}".',msgFilePreviewError:'An error occurred while reading the file "{name}".',msgInvalidFileType:'Invalid type for file "{name}". Only "{types}" files are supported.',msgInvalidFileExtension:'Invalid extension for file "{name}". Only "{extensions}" files are supported.',msgUploadAborted:"The file upload was aborted",msgValidationError:"Validation Error",msgLoading:"Loading file {index} of {files} &hellip;",msgProgress:"Loading file {index} of {files} - {name} - {percent}% completed.",msgSelected:"{n} {files} selected",msgFoldersNotAllowed:"Drag & drop files only! {n} folder(s) dropped were skipped.",msgImageWidthSmall:'Width of image file "{name}" must be at least {size} px.',msgImageHeightSmall:'Height of image file "{name}" must be at least {size} px.',msgImageWidthLarge:'Width of image file "{name}" cannot exceed {size} px.',msgImageHeightLarge:'Height of image file "{name}" cannot exceed {size} px.',msgImageResizeError:"Could not get the image dimensions to resize.",msgImageResizeException:"Error while resizing the image.<pre>{errors}<\/pre>",dropZoneTitle:"Drag & drop files here &hellip;",dropZoneClickTitle:"<br>(or click to select {files})",previewZoomButtonTitles:{prev:"View previous file",next:"View next file",toggleheader:"Toggle header",fullscreen:"Toggle full screen",borderless:"Toggle borderless mode",close:"Close detailed preview"}};n.fn.fileinput.Constructor=d;n(document).ready(function(){var t=n("input.file[type=file]");t.length&&t.fileinput()})}),function(n){"use strict";n.fn.fileinputLocales.es={fileSingle:"archivo",filePlural:"archivos",browseLabel:"Examinar &hellip;",removeLabel:"Quitar",removeTitle:"Quitar archivos seleccionados",cancelLabel:"Cancelar",cancelTitle:"Abortar la subida en curso",uploadLabel:"Subir archivo",uploadTitle:"Subir archivos seleccionados",msgNo:"No",msgCancelled:"Cancelado",msgZoomModalHeading:"Vista previa detallada",msgSizeTooLarge:'Archivo "{name}" (<b>{size} KB<\/b>) excede el tamaño máximo permitido de <b>{maxSize} KB<\/b>.',msgFilesTooLess:"Debe seleccionar al menos <b>{n}<\/b> {files} a cargar.",msgFilesTooMany:"El número de archivos seleccionados a cargar <b>({n})<\/b> excede el límite máximo permitido de <b>{m}<\/b>.",msgFileNotFound:'Archivo "{name}" no encontrado.',msgFileSecured:'No es posible acceder al archivo "{name}" porque estará siendo usado por otra aplicación o no tengamos permisos de lectura.',msgFileNotReadable:'No es posible acceder al archivo "{name}".',msgFilePreviewAborted:'Previsualización del archivo "{name}" cancelada.',msgFilePreviewError:'Ocurrió un error mientras se leía el archivo "{name}".',msgInvalidFileType:'Tipo de archivo no válido para "{name}". Sólo archivos "{types}" son permitidos.',msgInvalidFileExtension:'Extensión de archivo no válido para "{name}". Sólo archivos "{extensions}" son permitidos.',msgUploadAborted:"La carga de archivos se ha cancelado",msgValidationError:"Error de validacion",msgLoading:"Subiendo archivo {index} de {files} &hellip;",msgProgress:"Subiendo archivo {index} de {files} - {name} - {percent}% completado.",msgSelected:"{n} {files} seleccionado(s)",msgFoldersNotAllowed:"Arrastre y suelte únicamente archivos. Omitida(s) {n} carpeta(s).",msgImageWidthSmall:'El ancho de la imagen "{name}" debe ser al menos {size} px.',msgImageHeightSmall:'La altura de la imagen "{name}" debe ser al menos {size} px.',msgImageWidthLarge:'El ancho de la imagen "{name}" no puede exceder de {size} px.',msgImageHeightLarge:'La altura de la imagen "{name}" no puede exceder de {size} px.',msgImageResizeError:"No se pudo obtener las dimensiones de imagen para cambiar el tamaño.",msgImageResizeException:"Error al cambiar el tamaño de la imagen.<pre>{errors}<\/pre>",dropZoneTitle:"Arrastre y suelte aquí los archivos &hellip;",dropZoneClickTitle:"<br>(or click to select {files})",fileActionSettings:{removeTitle:"Eliminar archivo",uploadTitle:"Subir archivo",zoomTitle:"Ver detalles",dragTitle:"Mover / Arreglar de nuevo",indicatorNewTitle:"No subido todavía",indicatorSuccessTitle:"Subido",indicatorErrorTitle:"Subir Error",indicatorLoadingTitle:"Subiendo ..."},previewZoomButtonTitles:{prev:"Ver archivo anterior",next:"Ver archivo siguiente",toggleheader:"Activar encabezado",fullscreen:"Activar pantalla completa",borderless:"Activar el modo sin bordes",close:"Cerrar vista detallada"}}}(window.jQuery)