!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery","jquery.ui.widget"],t):t(window.jQuery)}(function(t){"use strict";t.support.fileInput=!(new RegExp("(Android (1\\.[0156]|2\\.[01]))|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)|(w(eb)?OSBrowser)|(webOS)|(Kindle/(1\\.0|2\\.[05]|3\\.0))").test(window.navigator.userAgent)||t('<input type="file">').prop("disabled")),t.support.xhrFileUpload=!(!window.XMLHttpRequestUpload||!window.FileReader),t.support.xhrFormDataFileUpload=!!window.FormData,t.support.blobSlice=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice),t.widget("blueimp.fileupload",{options:{dropZone:t(document),pasteZone:t(document),fileInput:void 0,replaceFileInput:!0,paramName:void 0,singleFileUploads:!0,limitMultiFileUploads:void 0,sequentialUploads:!1,limitConcurrentUploads:void 0,forceIframeTransport:!1,redirect:void 0,redirectParamName:void 0,postMessage:void 0,multipart:!0,maxChunkSize:void 0,uploadedBytes:void 0,recalculateProgress:!0,progressInterval:100,bitrateInterval:500,autoUpload:!0,messages:{uploadedBytes:"Uploaded bytes exceed file size"},i18n:function(e,i){return e=this.messages[e]||e.toString(),i&&t.each(i,function(t,i){e=e.replace("{"+t+"}",i)}),e},formData:function(t){return t.serializeArray()},add:function(e,i){(i.autoUpload||i.autoUpload!==!1&&t(this).fileupload("option","autoUpload"))&&i.process().done(function(){i.submit()})},processData:!1,contentType:!1,cache:!1},_specialOptions:["fileInput","dropZone","pasteZone","multipart","forceIframeTransport"],_blobSlice:t.support.blobSlice&&function(){var t=this.slice||this.webkitSlice||this.mozSlice;return t.apply(this,arguments)},_BitrateTimer:function(){this.timestamp=Date.now?Date.now():(new Date).getTime(),this.loaded=0,this.bitrate=0,this.getBitrate=function(t,e,i){var r=t-this.timestamp;return(!this.bitrate||!i||r>i)&&(this.bitrate=8*(e-this.loaded)*(1e3/r),this.loaded=e,this.timestamp=t),this.bitrate}},_isXHRUpload:function(e){return!e.forceIframeTransport&&(!e.multipart&&t.support.xhrFileUpload||t.support.xhrFormDataFileUpload)},_getFormData:function(e){var i;return"function"==typeof e.formData?e.formData(e.form):t.isArray(e.formData)?e.formData:"object"===t.type(e.formData)?(i=[],t.each(e.formData,function(t,e){i.push({name:t,value:e})}),i):[]},_getTotal:function(e){var i=0;return t.each(e,function(t,e){i+=e.size||1}),i},_initProgressObject:function(e){var i={loaded:0,total:0,bitrate:0};e._progress?t.extend(e._progress,i):e._progress=i},_initResponseObject:function(t){var e;if(t._response)for(e in t._response)t._response.hasOwnProperty(e)&&delete t._response[e];else t._response={}},_onProgress:function(t,e){if(t.lengthComputable){var i,r=Date.now?Date.now():(new Date).getTime();if(e._time&&e.progressInterval&&r-e._time<e.progressInterval&&t.loaded!==t.total)return;e._time=r,i=Math.floor(t.loaded/t.total*(e.chunkSize||e._progress.total))+(e.uploadedBytes||0),this._progress.loaded+=i-e._progress.loaded,this._progress.bitrate=this._bitrateTimer.getBitrate(r,this._progress.loaded,e.bitrateInterval),e._progress.loaded=e.loaded=i,e._progress.bitrate=e.bitrate=e._bitrateTimer.getBitrate(r,i,e.bitrateInterval),this._trigger("progress",t,e),this._trigger("progressall",t,this._progress)}},_initProgressListener:function(e){var i=this,r=e.xhr?e.xhr():t.ajaxSettings.xhr();r.upload&&(t(r.upload).bind("progress",function(t){var r=t.originalEvent;t.lengthComputable=r.lengthComputable,t.loaded=r.loaded,t.total=r.total,i._onProgress(t,e)}),e.xhr=function(){return r})},_isInstanceOf:function(t,e){return Object.prototype.toString.call(e)==="[object "+t+"]"},_initXHRData:function(e){var i,r=this,n=e.files[0],a=e.multipart||!t.support.xhrFileUpload,o=e.paramName[0];e.headers=t.extend({},e.headers),e.contentRange&&(e.headers["Content-Range"]=e.contentRange),a&&!e.blob&&this._isInstanceOf("File",n)||(e.headers["Content-Disposition"]='attachment; filename="'+encodeURI(n.name)+'"'),a?t.support.xhrFormDataFileUpload&&(e.postMessage?(i=this._getFormData(e),e.blob?i.push({name:o,value:e.blob}):t.each(e.files,function(t,r){i.push({name:e.paramName[t]||o,value:r})})):(r._isInstanceOf("FormData",e.formData)?i=e.formData:(i=new FormData,t.each(this._getFormData(e),function(t,e){i.append(e.name,e.value)})),e.blob?i.append(o,e.blob,n.name):t.each(e.files,function(t,n){(r._isInstanceOf("File",n)||r._isInstanceOf("Blob",n))&&i.append(e.paramName[t]||o,n,n.name)})),e.data=i):(e.contentType=n.type,e.data=e.blob||n),e.blob=null},_initIframeSettings:function(e){var i=t("<a></a>").prop("href",e.url).prop("host");e.dataType="iframe "+(e.dataType||""),e.formData=this._getFormData(e),e.redirect&&i&&i!==location.host&&e.formData.push({name:e.redirectParamName||"redirect",value:e.redirect})},_initDataSettings:function(t){this._isXHRUpload(t)?(this._chunkedUpload(t,!0)||(t.data||this._initXHRData(t),this._initProgressListener(t)),t.postMessage&&(t.dataType="postmessage "+(t.dataType||""))):this._initIframeSettings(t)},_getParamName:function(e){var i=t(e.fileInput),r=e.paramName;return r?t.isArray(r)||(r=[r]):(r=[],i.each(function(){for(var e=t(this),i=e.prop("name")||"files[]",n=(e.prop("files")||[1]).length;n;)r.push(i),n-=1}),r.length||(r=[i.prop("name")||"files[]"])),r},_initFormSettings:function(e){e.form&&e.form.length||(e.form=t(e.fileInput.prop("form")),e.form.length||(e.form=t(this.options.fileInput.prop("form")))),e.paramName=this._getParamName(e),e.url||(e.url=e.form.prop("action")||location.href),e.type=(e.type||"string"===t.type(e.form.prop("method"))&&e.form.prop("method")||"").toUpperCase(),"POST"!==e.type&&"PUT"!==e.type&&"PATCH"!==e.type&&(e.type="POST"),e.formAcceptCharset||(e.formAcceptCharset=e.form.attr("accept-charset"))},_getAJAXSettings:function(e){var i=t.extend({},this.options,e);return this._initFormSettings(i),this._initDataSettings(i),i},_getDeferredState:function(t){return t.state?t.state():t.isResolved()?"resolved":t.isRejected()?"rejected":"pending"},_enhancePromise:function(t){return t.success=t.done,t.error=t.fail,t.complete=t.always,t},_getXHRPromise:function(e,i,r){var n=t.Deferred(),a=n.promise();return i=i||this.options.context||a,e===!0?n.resolveWith(i,r):e===!1&&n.rejectWith(i,r),a.abort=n.promise,this._enhancePromise(a)},_addConvenienceMethods:function(e,i){var r=this,n=function(e){return t.Deferred().resolveWith(r,[e]).promise()};i.process=function(t,e){return(t||e)&&(i._processQueue=this._processQueue=(this._processQueue||n(this)).pipe(t,e)),this._processQueue||n(this)},i.submit=function(){return"pending"!==this.state()&&(i.jqXHR=this.jqXHR=r._trigger("submit",e,this)!==!1&&r._onSend(e,this)),this.jqXHR||r._getXHRPromise()},i.abort=function(){return this.jqXHR?this.jqXHR.abort():r._getXHRPromise()},i.state=function(){return this.jqXHR?r._getDeferredState(this.jqXHR):this._processQueue?r._getDeferredState(this._processQueue):void 0},i.progress=function(){return this._progress},i.response=function(){return this._response}},_getUploadedBytes:function(t){var e=t.getResponseHeader("Range"),i=e&&e.split("-"),r=i&&i.length>1&&parseInt(i[1],10);return r&&r+1},_chunkedUpload:function(e,i){e.uploadedBytes=e.uploadedBytes||0;var r,n,a=this,o=e.files[0],s=o.size,l=e.uploadedBytes,c=e.maxChunkSize||s,h=this._blobSlice,u=t.Deferred(),d=u.promise();return this._isXHRUpload(e)&&h&&(l||s>c)&&!e.data?i?!0:l>=s?(o.error=e.i18n("uploadedBytes"),this._getXHRPromise(!1,e.context,[null,"error",o.error])):(n=function(){var i=t.extend({},e),d=i._progress.loaded;i.blob=h.call(o,l,l+c,o.type),i.chunkSize=i.blob.size,i.contentRange="bytes "+l+"-"+(l+i.chunkSize-1)+"/"+s,a._initXHRData(i),a._initProgressListener(i),r=(a._trigger("chunksend",null,i)!==!1&&t.ajax(i)||a._getXHRPromise(!1,i.context)).done(function(r,o,c){l=a._getUploadedBytes(c)||l+i.chunkSize,d+i.chunkSize-i._progress.loaded&&a._onProgress(t.Event("progress",{lengthComputable:!0,loaded:l-i.uploadedBytes,total:l-i.uploadedBytes}),i),e.uploadedBytes=i.uploadedBytes=l,i.result=r,i.textStatus=o,i.jqXHR=c,a._trigger("chunkdone",null,i),a._trigger("chunkalways",null,i),s>l?n():u.resolveWith(i.context,[r,o,c])}).fail(function(t,e,r){i.jqXHR=t,i.textStatus=e,i.errorThrown=r,a._trigger("chunkfail",null,i),a._trigger("chunkalways",null,i),u.rejectWith(i.context,[t,e,r])})},this._enhancePromise(d),d.abort=function(){return r.abort()},n(),d):!1},_beforeSend:function(t,e){0===this._active&&(this._trigger("start"),this._bitrateTimer=new this._BitrateTimer,this._progress.loaded=this._progress.total=0,this._progress.bitrate=0),this._initResponseObject(e),this._initProgressObject(e),e._progress.loaded=e.loaded=e.uploadedBytes||0,e._progress.total=e.total=this._getTotal(e.files)||1,e._progress.bitrate=e.bitrate=0,this._active+=1,this._progress.loaded+=e.loaded,this._progress.total+=e.total},_onDone:function(e,i,r,n){var a=n._progress.total,o=n._response;n._progress.loaded<a&&this._onProgress(t.Event("progress",{lengthComputable:!0,loaded:a,total:a}),n),o.result=n.result=e,o.textStatus=n.textStatus=i,o.jqXHR=n.jqXHR=r,this._trigger("done",null,n)},_onFail:function(t,e,i,r){var n=r._response;r.recalculateProgress&&(this._progress.loaded-=r._progress.loaded,this._progress.total-=r._progress.total),n.jqXHR=r.jqXHR=t,n.textStatus=r.textStatus=e,n.errorThrown=r.errorThrown=i,this._trigger("fail",null,r)},_onAlways:function(t,e,i,r){this._trigger("always",null,r)},_onSend:function(e,i){i.submit||this._addConvenienceMethods(e,i);var r,n,a,o,s=this,l=s._getAJAXSettings(i),c=function(){return s._sending+=1,l._bitrateTimer=new s._BitrateTimer,r=r||((n||s._trigger("send",e,l)===!1)&&s._getXHRPromise(!1,l.context,n)||s._chunkedUpload(l)||t.ajax(l)).done(function(t,e,i){s._onDone(t,e,i,l)}).fail(function(t,e,i){s._onFail(t,e,i,l)}).always(function(t,e,i){if(s._onAlways(t,e,i,l),s._sending-=1,s._active-=1,l.limitConcurrentUploads&&l.limitConcurrentUploads>s._sending)for(var r=s._slots.shift();r;){if("pending"===s._getDeferredState(r)){r.resolve();break}r=s._slots.shift()}0===s._active&&s._trigger("stop")})};return this._beforeSend(e,l),this.options.sequentialUploads||this.options.limitConcurrentUploads&&this.options.limitConcurrentUploads<=this._sending?(this.options.limitConcurrentUploads>1?(a=t.Deferred(),this._slots.push(a),o=a.pipe(c)):(this._sequence=this._sequence.pipe(c,c),o=this._sequence),o.abort=function(){return n=[void 0,"abort","abort"],r?r.abort():(a&&a.rejectWith(l.context,n),c())},this._enhancePromise(o)):c()},_onAdd:function(e,i){var r,n,a,o,s=this,l=!0,c=t.extend({},this.options,i),h=c.limitMultiFileUploads,u=this._getParamName(c);if((c.singleFileUploads||h)&&this._isXHRUpload(c))if(!c.singleFileUploads&&h)for(a=[],r=[],o=0;o<i.files.length;o+=h)a.push(i.files.slice(o,o+h)),n=u.slice(o,o+h),n.length||(n=u),r.push(n);else r=u;else a=[i.files],r=[u];return i.originalFiles=i.files,t.each(a||i.files,function(n,o){var c=t.extend({},i);return c.files=a?o:[o],c.paramName=r[n],s._initResponseObject(c),s._initProgressObject(c),s._addConvenienceMethods(e,c),l=s._trigger("add",e,c)}),l},_replaceFileInput:function(e){var i=e.clone(!0);t("<form></form>").append(i)[0].reset(),e.after(i).detach(),t.cleanData(e.unbind("remove")),this.options.fileInput=this.options.fileInput.map(function(t,r){return r===e[0]?i[0]:r}),e[0]===this.element[0]&&(this.element=i)},_handleFileTreeEntry:function(e,i){var r,n=this,a=t.Deferred(),o=function(t){t&&!t.entry&&(t.entry=e),a.resolve([t])};return i=i||"",e.isFile?e._file?(e._file.relativePath=i,a.resolve(e._file)):e.file(function(t){t.relativePath=i,a.resolve(t)},o):e.isDirectory?(r=e.createReader(),r.readEntries(function(t){n._handleFileTreeEntries(t,i+e.name+"/").done(function(t){a.resolve(t)}).fail(o)},o)):a.resolve([]),a.promise()},_handleFileTreeEntries:function(e,i){var r=this;return t.when.apply(t,t.map(e,function(t){return r._handleFileTreeEntry(t,i)})).pipe(function(){return Array.prototype.concat.apply([],arguments)})},_getDroppedFiles:function(e){e=e||{};var i=e.items;return i&&i.length&&(i[0].webkitGetAsEntry||i[0].getAsEntry)?this._handleFileTreeEntries(t.map(i,function(t){var e;return t.webkitGetAsEntry?(e=t.webkitGetAsEntry(),e&&(e._file=t.getAsFile()),e):t.getAsEntry()})):t.Deferred().resolve(t.makeArray(e.files)).promise()},_getSingleFileInputFiles:function(e){e=t(e);var i,r,n=e.prop("webkitEntries")||e.prop("entries");if(n&&n.length)return this._handleFileTreeEntries(n);if(i=t.makeArray(e.prop("files")),i.length)void 0===i[0].name&&i[0].fileName&&t.each(i,function(t,e){e.name=e.fileName,e.size=e.fileSize});else{if(r=e.prop("value"),!r)return t.Deferred().resolve([]).promise();i=[{name:r.replace(/^.*\\/,"")}]}return t.Deferred().resolve(i).promise()},_getFileInputFiles:function(e){return e instanceof t&&1!==e.length?t.when.apply(t,t.map(e,this._getSingleFileInputFiles)).pipe(function(){return Array.prototype.concat.apply([],arguments)}):this._getSingleFileInputFiles(e)},_onChange:function(e){var i=this,r={fileInput:t(e.target),form:t(e.target.form)};this._getFileInputFiles(r.fileInput).always(function(t){r.files=t,i.options.replaceFileInput&&i._replaceFileInput(r.fileInput),i._trigger("change",e,r)!==!1&&i._onAdd(e,r)})},_onPaste:function(e){var i=e.originalEvent&&e.originalEvent.clipboardData&&e.originalEvent.clipboardData.items,r={files:[]};i&&i.length&&(t.each(i,function(t,e){var i=e.getAsFile&&e.getAsFile();i&&r.files.push(i)}),this._trigger("paste",e,r)!==!1&&this._onAdd(e,r))},_onDrop:function(t){t.dataTransfer=t.originalEvent&&t.originalEvent.dataTransfer;var e=this,i=t.dataTransfer,r={};i&&i.files&&i.files.length&&(t.preventDefault(),this._getDroppedFiles(i).always(function(i){r.files=i,e._trigger("drop",t,r)!==!1&&e._onAdd(t,r)}))},_onDragOver:function(e){e.dataTransfer=e.originalEvent&&e.originalEvent.dataTransfer;var i=e.dataTransfer,r={dropEffect:"copy",preventDefault:!0};i&&-1!==t.inArray("Files",i.types)&&this._trigger("dragover",e,r)!==!1&&(i.dropEffect=r.dropEffect,r.preventDefault&&e.preventDefault())},_initEventHandlers:function(){this._isXHRUpload(this.options)&&(this._on(this.options.dropZone,{dragover:this._onDragOver,drop:this._onDrop}),this._on(this.options.pasteZone,{paste:this._onPaste})),t.support.fileInput&&this._on(this.options.fileInput,{change:this._onChange})},_destroyEventHandlers:function(){this._off(this.options.dropZone,"dragover drop"),this._off(this.options.pasteZone,"paste"),this._off(this.options.fileInput,"change")},_setOption:function(e,i){var r=-1!==t.inArray(e,this._specialOptions);r&&this._destroyEventHandlers(),this._super(e,i),r&&(this._initSpecialOptions(),this._initEventHandlers())},_initSpecialOptions:function(){var e=this.options;void 0===e.fileInput?e.fileInput=this.element.is('input[type="file"]')?this.element:this.element.find('input[type="file"]'):e.fileInput instanceof t||(e.fileInput=t(e.fileInput)),e.dropZone instanceof t||(e.dropZone=t(e.dropZone)),e.pasteZone instanceof t||(e.pasteZone=t(e.pasteZone))},_getRegExp:function(t){var e=t.split("/"),i=e.pop();return e.shift(),new RegExp(e.join("/"),i)},_isRegExpOption:function(e,i){return"url"!==e&&"string"===t.type(i)&&/^\/.*\/[igm]{0,3}$/.test(i)},_initDataAttributes:function(){var e=this,i=this.options;t.each(t(this.element[0].cloneNode(!1)).data(),function(t,r){e._isRegExpOption(t,r)&&(r=e._getRegExp(r)),i[t]=r})},_create:function(){this._initDataAttributes(),this._initSpecialOptions(),this._slots=[],this._sequence=this._getXHRPromise(!0),this._sending=this._active=0,this._initProgressObject(this),this._initEventHandlers()},active:function(){return this._active},progress:function(){return this._progress},add:function(e){var i=this;e&&!this.options.disabled&&(e.fileInput&&!e.files?this._getFileInputFiles(e.fileInput).always(function(t){e.files=t,i._onAdd(null,e)}):(e.files=t.makeArray(e.files),this._onAdd(null,e)))},send:function(e){if(e&&!this.options.disabled){if(e.fileInput&&!e.files){var i,r,n=this,a=t.Deferred(),o=a.promise();return o.abort=function(){return r=!0,i?i.abort():(a.reject(null,"abort","abort"),o)},this._getFileInputFiles(e.fileInput).always(function(t){if(!r){if(!t.length)return a.reject(),void 0;e.files=t,i=n._onSend(null,e).then(function(t,e,i){a.resolve(t,e,i)},function(t,e,i){a.reject(t,e,i)})}}),this._enhancePromise(o)}if(e.files=t.makeArray(e.files),e.files.length)return this._onSend(null,e)}return this._getXHRPromise(!1,e&&e.context)}})});