(function(n){"use strict";typeof define=="function"&&define.amd?define(["jquery","./jquery.fileupload-ui"],n):typeof exports=="object"?n(require("jquery")):n(window.jQuery)})(function(n){"use strict";n.widget("blueimp.fileupload",n.blueimp.fileupload,{options:{processdone:function(n,t){t.context.find(".start").button("enable")},progress:function(n,t){t.context&&t.context.find(".progress").progressbar("option","value",parseInt(t.loaded/t.total*100,10))},progressall:function(t,i){var r=n(this);r.find(".fileupload-progress").find(".progress").progressbar("option","value",parseInt(i.loaded/i.total*100,10)).end().find(".progress-extended").each(function(){n(this).html((r.data("blueimp-fileupload")||r.data("fileupload"))._renderExtendedProgress(i))})}},_renderUpload:function(t,i){var r=this._super(t,i),u=n(window).width()>480;return r.find(".progress").empty().progressbar(),r.find(".start").button({icons:{primary:"ui-icon-circle-arrow-e"},text:u}),r.find(".cancel").button({icons:{primary:"ui-icon-cancel"},text:u}),r.hasClass("fade")&&r.hide(),r},_renderDownload:function(t,i){var r=this._super(t,i),u=n(window).width()>480;return r.find(".delete").button({icons:{primary:"ui-icon-trash"},text:u}),r.hasClass("fade")&&r.hide(),r},_startHandler:function(t){n(t.currentTarget).button("disable");this._super(t)},_transition:function(t){var i=n.Deferred();return t.hasClass("fade")?t.fadeToggle(this.options.transitionDuration,this.options.transitionEasing,function(){i.resolveWith(t)}):i.resolveWith(t),i},_create:function(){this._super();this.element.find(".fileupload-buttonbar").find(".fileinput-button").each(function(){var t=n(this).find("input:file").detach();n(this).button({icons:{primary:"ui-icon-plusthick"}}).append(t)}).end().find(".start").button({icons:{primary:"ui-icon-circle-arrow-e"}}).end().find(".cancel").button({icons:{primary:"ui-icon-cancel"}}).end().find(".delete").button({icons:{primary:"ui-icon-trash"}}).end().find(".progress").progressbar()},_destroy:function(){this.element.find(".fileupload-buttonbar").find(".fileinput-button").each(function(){var t=n(this).find("input:file").detach();n(this).button("destroy").append(t)}).end().find(".start").button("destroy").end().find(".cancel").button("destroy").end().find(".delete").button("destroy").end().find(".progress").progressbar("destroy");this._super()}})}),function(n){"use strict";typeof define=="function"&&define.amd?define(["jquery","./jquery.fileupload"],n):typeof exports=="object"?n(require("jquery")):n(window.jQuery)}(function(n){"use strict";var t=n.blueimp.fileupload.prototype.options.add;n.widget("blueimp.fileupload",n.blueimp.fileupload,{options:{processQueue:[],add:function(i,r){var u=n(this);r.process(function(){return u.fileupload("process",r)});t.call(this,i,r)}},processActions:{},_processFile:function(t,i){var r=this,f=n.Deferred().resolveWith(r,[t]),u=f.promise();return this._trigger("process",null,t),n.each(t.processQueue,function(t,f){var e=function(t){return i.errorThrown?n.Deferred().rejectWith(r,[i]).promise():r.processActions[f.action].call(r,t,f)};u=u.then(e,f.always&&e)}),u.done(function(){r._trigger("processdone",null,t);r._trigger("processalways",null,t)}).fail(function(){r._trigger("processfail",null,t);r._trigger("processalways",null,t)}),u},_transformProcessQueue:function(t){var i=[];n.each(t.processQueue,function(){var r={},f=this.action,u=this.prefix===!0?f:this.prefix;n.each(this,function(i,f){r[i]=n.type(f)==="string"&&f.charAt(0)==="@"?t[f.slice(1)||(u?u+i.charAt(0).toUpperCase()+i.slice(1):i)]:f});i.push(r)});t.processQueue=i},processing:function(){return this._processing},process:function(t){var i=this,r=n.extend({},this.options,t);return r.processQueue&&r.processQueue.length&&(this._transformProcessQueue(r),this._processing===0&&this._trigger("processstart"),n.each(t.files,function(u){var f=u?n.extend({},r):r,e=function(){return t.errorThrown?n.Deferred().rejectWith(i,[t]).promise():i._processFile(f,t)};f.index=u;i._processing+=1;i._processingQueue=i._processingQueue.then(e,e).always(function(){i._processing-=1;i._processing===0&&i._trigger("processstop")})})),this._processingQueue},_create:function(){this._super();this._processing=0;this._processingQueue=n.Deferred().resolveWith(this).promise()}})}),function(n){"use strict";typeof define=="function"&&define.amd?define(["jquery","tmpl","./jquery.fileupload-image","./jquery.fileupload-audio","./jquery.fileupload-video","./jquery.fileupload-validate"],n):typeof exports=="object"?n(require("jquery"),require("tmpl")):n(window.jQuery,window.tmpl)}(function(n,t){"use strict";n.blueimp.fileupload.prototype._specialOptions.push("filesContainer","uploadTemplateId","downloadTemplateId");n.widget("blueimp.fileupload",n.blueimp.fileupload,{options:{autoUpload:!1,uploadTemplateId:"template-upload",downloadTemplateId:"template-download",filesContainer:undefined,prependFiles:!1,dataType:"json",messages:{unknownError:"Unknown error"},getNumberOfFiles:function(){return this.filesContainer.children().not(".processing").length},getFilesFromResponse:function(t){return t.result&&n.isArray(t.result.files)?t.result.files:[]},add:function(t,i){if(t.isDefaultPrevented())return!1;var u=n(this),r=u.data("blueimp-fileupload")||u.data("fileupload"),f=r.options;i.context=r._renderUpload(i.files).data("data",i).addClass("processing");f.filesContainer[f.prependFiles?"prepend":"append"](i.context);r._forceReflow(i.context);r._transition(i.context);i.process(function(){return u.fileupload("process",i)}).always(function(){i.context.each(function(t){n(this).find(".size").text(r._formatFileSize(i.files[t].size))}).removeClass("processing");r._renderPreviews(i)}).done(function(){i.context.find(".start").prop("disabled",!1);r._trigger("added",t,i)!==!1&&(f.autoUpload||i.autoUpload)&&i.autoUpload!==!1&&i.submit()}).fail(function(){i.files.error&&i.context.each(function(t){var r=i.files[t].error;r&&n(this).find(".error").text(r)})})},send:function(t,i){if(t.isDefaultPrevented())return!1;var r=n(this).data("blueimp-fileupload")||n(this).data("fileupload");return i.context&&i.dataType&&i.dataType.substr(0,6)==="iframe"&&i.context.find(".progress").addClass(!n.support.transition&&"progress-animated").attr("aria-valuenow",100).children().first().css("width","100%"),r._trigger("sent",t,i)},done:function(t,i){if(t.isDefaultPrevented())return!1;var r=n(this).data("blueimp-fileupload")||n(this).data("fileupload"),o=i.getFilesFromResponse||r.options.getFilesFromResponse,e=o(i),u,f;i.context?i.context.each(function(o){var s=e[o]||{error:"Empty file upload result"};f=r._addFinishedDeferreds();r._transition(n(this)).done(function(){var e=n(this);u=r._renderDownload([s]).replaceAll(e);r._forceReflow(u);r._transition(u).done(function(){i.context=n(this);r._trigger("completed",t,i);r._trigger("finished",t,i);f.resolve()})})}):(u=r._renderDownload(e)[r.options.prependFiles?"prependTo":"appendTo"](r.options.filesContainer),r._forceReflow(u),f=r._addFinishedDeferreds(),r._transition(u).done(function(){i.context=n(this);r._trigger("completed",t,i);r._trigger("finished",t,i);f.resolve()}))},fail:function(t,i){if(t.isDefaultPrevented())return!1;var r=n(this).data("blueimp-fileupload")||n(this).data("fileupload"),f,u;i.context?i.context.each(function(e){if(i.errorThrown!=="abort"){var o=i.files[e];o.error=o.error||i.errorThrown||i.i18n("unknownError");u=r._addFinishedDeferreds();r._transition(n(this)).done(function(){var e=n(this);f=r._renderDownload([o]).replaceAll(e);r._forceReflow(f);r._transition(f).done(function(){i.context=n(this);r._trigger("failed",t,i);r._trigger("finished",t,i);u.resolve()})})}else u=r._addFinishedDeferreds(),r._transition(n(this)).done(function(){n(this).remove();r._trigger("failed",t,i);r._trigger("finished",t,i);u.resolve()})}):i.errorThrown!=="abort"?(i.context=r._renderUpload(i.files)[r.options.prependFiles?"prependTo":"appendTo"](r.options.filesContainer).data("data",i),r._forceReflow(i.context),u=r._addFinishedDeferreds(),r._transition(i.context).done(function(){i.context=n(this);r._trigger("failed",t,i);r._trigger("finished",t,i);u.resolve()})):(r._trigger("failed",t,i),r._trigger("finished",t,i),r._addFinishedDeferreds().resolve())},progress:function(t,i){if(t.isDefaultPrevented())return!1;var r=Math.floor(i.loaded/i.total*100);i.context&&i.context.each(function(){n(this).find(".progress").attr("aria-valuenow",r).children().first().css("width",r+"%")})},progressall:function(t,i){if(t.isDefaultPrevented())return!1;var r=n(this),u=Math.floor(i.loaded/i.total*100),f=r.find(".fileupload-progress"),e=f.find(".progress-extended");e.length&&e.html((r.data("blueimp-fileupload")||r.data("fileupload"))._renderExtendedProgress(i));f.find(".progress").attr("aria-valuenow",u).children().first().css("width",u+"%")},start:function(t){if(t.isDefaultPrevented())return!1;var i=n(this).data("blueimp-fileupload")||n(this).data("fileupload");i._resetFinishedDeferreds();i._transition(n(this).find(".fileupload-progress")).done(function(){i._trigger("started",t)})},stop:function(t){if(t.isDefaultPrevented())return!1;var i=n(this).data("blueimp-fileupload")||n(this).data("fileupload"),r=i._addFinishedDeferreds();n.when.apply(n,i._getFinishedDeferreds()).done(function(){i._trigger("stopped",t)});i._transition(n(this).find(".fileupload-progress")).done(function(){n(this).find(".progress").attr("aria-valuenow","0").children().first().css("width","0%");n(this).find(".progress-extended").html("&nbsp;");r.resolve()})},processstart:function(t){if(t.isDefaultPrevented())return!1;n(this).addClass("fileupload-processing")},processstop:function(t){if(t.isDefaultPrevented())return!1;n(this).removeClass("fileupload-processing")},destroy:function(t,i){if(t.isDefaultPrevented())return!1;var r=n(this).data("blueimp-fileupload")||n(this).data("fileupload"),u=function(){r._transition(i.context).done(function(){n(this).remove();r._trigger("destroyed",t,i)})};i.url?(i.dataType=i.dataType||r.options.dataType,n.ajax(i).done(u).fail(function(){r._trigger("destroyfailed",t,i)})):u()}},_resetFinishedDeferreds:function(){this._finishedUploads=[]},_addFinishedDeferreds:function(t){return t||(t=n.Deferred()),this._finishedUploads.push(t),t},_getFinishedDeferreds:function(){return this._finishedUploads},_enableDragToDesktop:function(){var t=n(this),i=t.prop("href"),r=t.prop("download"),u="application/octet-stream";t.bind("dragstart",function(n){try{n.originalEvent.dataTransfer.setData("DownloadURL",[u,r,i].join(":"))}catch(t){}})},_formatFileSize:function(n){return typeof n!="number"?"":n>=1e9?(n/1e9).toFixed(2)+" GB":n>=1e6?(n/1e6).toFixed(2)+" MB":(n/1e3).toFixed(2)+" KB"},_formatBitrate:function(n){return typeof n!="number"?"":n>=1e9?(n/1e9).toFixed(2)+" Gbit/s":n>=1e6?(n/1e6).toFixed(2)+" Mbit/s":n>=1e3?(n/1e3).toFixed(2)+" kbit/s":n.toFixed(2)+" bit/s"},_formatTime:function(n){var i=new Date(n*1e3),t=Math.floor(n/86400);return t=t?t+"d ":"",t+("0"+i.getUTCHours()).slice(-2)+":"+("0"+i.getUTCMinutes()).slice(-2)+":"+("0"+i.getUTCSeconds()).slice(-2)},_formatPercentage:function(n){return(n*100).toFixed(2)+" %"},_renderExtendedProgress:function(n){return this._formatBitrate(n.bitrate)+" | "+this._formatTime((n.total-n.loaded)*8/n.bitrate)+" | "+this._formatPercentage(n.loaded/n.total)+" | "+this._formatFileSize(n.loaded)+" / "+this._formatFileSize(n.total)},_renderTemplate:function(t,i){if(!t)return n();var r=t({files:i,formatFileSize:this._formatFileSize,options:this.options});return r instanceof n?r:n(this.options.templatesContainer).html(r).children()},_renderPreviews:function(t){t.context.find(".preview").each(function(i,r){n(r).append(t.files[i].preview)})},_renderUpload:function(n){return this._renderTemplate(this.options.uploadTemplate,n)},_renderDownload:function(n){return this._renderTemplate(this.options.downloadTemplate,n).find("a[download]").each(this._enableDragToDesktop).end()},_startHandler:function(t){t.preventDefault();var r=n(t.currentTarget),u=r.closest(".template-upload"),i=u.data("data");r.prop("disabled",!0);i&&i.submit&&i.submit()},_cancelHandler:function(t){t.preventDefault();var r=n(t.currentTarget).closest(".template-upload,.template-download"),i=r.data("data")||{};i.context=i.context||r;i.abort?i.abort():(i.errorThrown="abort",this._trigger("fail",t,i))},_deleteHandler:function(t){t.preventDefault();var i=n(t.currentTarget);this._trigger("destroy",t,n.extend({context:i.closest(".template-download"),type:"DELETE"},i.data()))},_forceReflow:function(t){return n.support.transition&&t.length&&t[0].offsetWidth},_transition:function(t){var i=n.Deferred();return n.support.transition&&t.hasClass("fade")&&t.is(":visible")?t.bind(n.support.transition.end,function(r){r.target===t[0]&&(t.unbind(n.support.transition.end),i.resolveWith(t))}).toggleClass("in"):(t.toggleClass("in"),i.resolveWith(t)),i},_initButtonBarEventHandlers:function(){var t=this.element.find(".fileupload-buttonbar"),i=this.options.filesContainer;this._on(t.find(".start"),{click:function(n){n.preventDefault();i.find(".start").click()}});this._on(t.find(".cancel"),{click:function(n){n.preventDefault();i.find(".cancel").click()}});this._on(t.find(".delete"),{click:function(n){n.preventDefault();i.find(".toggle:checked").closest(".template-download").find(".delete").click();t.find(".toggle").prop("checked",!1)}});this._on(t.find(".toggle"),{change:function(t){i.find(".toggle").prop("checked",n(t.currentTarget).is(":checked"))}})},_destroyButtonBarEventHandlers:function(){this._off(this.element.find(".fileupload-buttonbar").find(".start, .cancel, .delete"),"click");this._off(this.element.find(".fileupload-buttonbar .toggle"),"change.")},_initEventHandlers:function(){this._super();this._on(this.options.filesContainer,{"click .start":this._startHandler,"click .cancel":this._cancelHandler,"click .delete":this._deleteHandler});this._initButtonBarEventHandlers()},_destroyEventHandlers:function(){this._destroyButtonBarEventHandlers();this._off(this.options.filesContainer,"click");this._super()},_enableFileInputButton:function(){this.element.find(".fileinput-button input").prop("disabled",!1).parent().removeClass("disabled")},_disableFileInputButton:function(){this.element.find(".fileinput-button input").prop("disabled",!0).parent().addClass("disabled")},_initTemplates:function(){var n=this.options;n.templatesContainer=this.document[0].createElement(n.filesContainer.prop("nodeName"));t&&(n.uploadTemplateId&&(n.uploadTemplate=t(n.uploadTemplateId)),n.downloadTemplateId&&(n.downloadTemplate=t(n.downloadTemplateId)))},_initFilesContainer:function(){var t=this.options;t.filesContainer===undefined?t.filesContainer=this.element.find(".files"):t.filesContainer instanceof n||(t.filesContainer=n(t.filesContainer))},_initSpecialOptions:function(){this._super();this._initFilesContainer();this._initTemplates()},_create:function(){this._super();this._resetFinishedDeferreds();n.support.fileInput||this._disableFileInputButton()},enable:function(){var n=!1;this.options.disabled&&(n=!0);this._super();n&&(this.element.find("input, button").prop("disabled",!1),this._enableFileInputButton())},disable:function(){this.options.disabled||(this.element.find("input, button").prop("disabled",!0),this._disableFileInputButton());this._super()}})}),function(n){"use strict";typeof define=="function"&&define.amd?define(["jquery","./jquery.fileupload-process"],n):typeof exports=="object"?n(require("jquery")):n(window.jQuery)}(function(n){"use strict";n.blueimp.fileupload.prototype.options.processQueue.push({action:"validate",always:!0,acceptFileTypes:"@",maxFileSize:"@",minFileSize:"@",maxNumberOfFiles:"@",disabled:"@disableValidation"});n.widget("blueimp.fileupload",n.blueimp.fileupload,{options:{getNumberOfFiles:n.noop,messages:{maxNumberOfFiles:"Maximum number of files exceeded",acceptFileTypes:"File type not allowed",maxFileSize:"File is too large",minFileSize:"File is too small"}},processActions:{validate:function(t,i){if(i.disabled)return t;var e=n.Deferred(),u=this.options,r=t.files[t.index],f;return(i.minFileSize||i.maxFileSize)&&(f=r.size),n.type(i.maxNumberOfFiles)==="number"&&(u.getNumberOfFiles()||0)+t.files.length>i.maxNumberOfFiles?r.error=u.i18n("maxNumberOfFiles"):!i.acceptFileTypes||i.acceptFileTypes.test(r.type)||i.acceptFileTypes.test(r.name)?f>i.maxFileSize?r.error=u.i18n("maxFileSize"):n.type(f)==="number"&&f<i.minFileSize?r.error=u.i18n("minFileSize"):delete r.error:r.error=u.i18n("acceptFileTypes"),r.error||t.files.error?(t.files.error=!0,e.rejectWith(this,[t])):e.resolveWith(this,[t]),e.promise()}}})}),function(n){"use strict";typeof define=="function"&&define.amd?define(["jquery","load-image","./jquery.fileupload-process"],n):typeof exports=="object"?n(require("jquery"),require("load-image")):n(window.jQuery,window.loadImage)}(function(n,t){"use strict";n.blueimp.fileupload.prototype.options.processQueue.unshift({action:"loadVideo",prefix:!0,fileTypes:"@",maxFileSize:"@",disabled:"@disableVideoPreview"},{action:"setVideo",name:"@videoPreviewName",disabled:"@disableVideoPreview"});n.widget("blueimp.fileupload",n.blueimp.fileupload,{options:{loadVideoFileTypes:/^video\/.*$/},_videoElement:document.createElement("video"),processActions:{loadVideo:function(i,r){if(r.disabled)return i;var u=i.files[i.index],e,f;return this._videoElement.canPlayType&&this._videoElement.canPlayType(u.type)&&(n.type(r.maxFileSize)!=="number"||u.size<=r.maxFileSize)&&(!r.fileTypes||r.fileTypes.test(u.type))&&(e=t.createObjectURL(u),e)?(f=this._videoElement.cloneNode(!1),f.src=e,f.controls=!0,i.video=f,i):i},setVideo:function(n,t){return n.video&&!t.disabled&&(n.files[n.index][t.name||"preview"]=n.video),n}}})}),function(n){"use strict";typeof define=="function"&&define.amd?define(["jquery"],n):typeof exports=="object"?n(require("jquery")):n(window.jQuery)}(function(n){"use strict";var t=0;n.ajaxTransport("iframe",function(i){if(i.async){var e=i.initialIframeSrc||"javascript:false;",r,u,f;return{send:function(o,s){r=n('<form style="display:none;"><\/form>');r.attr("accept-charset",i.formAcceptCharset);f=/\?/.test(i.url)?"&":"?";i.type==="DELETE"?(i.url=i.url+f+"_method=DELETE",i.type="POST"):i.type==="PUT"?(i.url=i.url+f+"_method=PUT",i.type="POST"):i.type==="PATCH"&&(i.url=i.url+f+"_method=PATCH",i.type="POST");t+=1;u=n('<iframe src="'+e+'" name="iframe-transport-'+t+'"><\/iframe>').bind("load",function(){var t,f=n.isArray(i.paramName)?i.paramName:[i.paramName];u.unbind("load").bind("load",function(){var t;try{if(t=u.contents(),!t.length||!t[0].firstChild)throw new Error;}catch(i){t=undefined}s(200,"success",{iframe:t});n('<iframe src="'+e+'"><\/iframe>').appendTo(r);window.setTimeout(function(){r.remove()},0)});r.prop("target",u.prop("name")).prop("action",i.url).prop("method",i.type);i.formData&&n.each(i.formData,function(t,i){n('<input type="hidden"/>').prop("name",i.name).val(i.value).appendTo(r)});i.fileInput&&i.fileInput.length&&i.type==="POST"&&(t=i.fileInput.clone(),i.fileInput.after(function(n){return t[n]}),i.paramName&&i.fileInput.each(function(t){n(this).prop("name",f[t]||i.paramName)}),r.append(i.fileInput).prop("enctype","multipart/form-data").prop("encoding","multipart/form-data"),i.fileInput.removeAttr("form"));r.submit();t&&t.length&&i.fileInput.each(function(i,r){var u=n(t[i]);n(r).prop("name",u.prop("name")).attr("form",u.attr("form"));u.replaceWith(r)})});r.append(u).appendTo(document.body)},abort:function(){u&&u.unbind("load").prop("src",e);r&&r.remove()}}}});n.ajaxSetup({converters:{"iframe text":function(t){return t&&n(t[0].body).text()},"iframe json":function(t){return t&&n.parseJSON(n(t[0].body).text())},"iframe html":function(t){return t&&n(t[0].body).html()},"iframe xml":function(t){var i=t&&t[0];return i&&n.isXMLDoc(i)?i:n.parseXML(i.XMLDocument&&i.XMLDocument.xml||n(i.body).html())},"iframe script":function(t){return t&&n.globalEval(n(t[0].body).text())}}})})