File: /python/moda/public_html/tech/old/modules/addons/project_management/assets/js/master.min.js
!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&module.exports?module.exports=e(require("jquery")):e(window.jQuery)}(function(z){"use strict";var O,c;z.fn.fileinputLocales={},z.fn.fileinputThemes={},O={FRAMES:".kv-preview-thumb",SORT_CSS:"file-sortable",STYLE_SETTING:'style="width:{width};height:{height};"',OBJECT_PARAMS:'<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',DEFAULT_PREVIEW:'<div class="file-preview-other">\n<span class="{previewFileIconClass}">{previewFileIcon}</span>\n</div>',MODAL_ID:"kvFileinputModal",MODAL_EVENTS:["show","shown","hide","hidden","loaded"],objUrl:window.URL||window.webkitURL,compare:function(e,t,i){return void 0!==e&&(i?e===t:e.match(t))},isIE:function(e){var t;return"Microsoft Internet Explorer"===navigator.appName&&(10===e?new RegExp("msie\\s"+e,"i").test(navigator.userAgent):((t=document.createElement("div")).innerHTML="\x3c!--[if IE "+e+"]> <i></i> <![endif]--\x3e",e=t.getElementsByTagName("i").length,document.body.appendChild(t),t.parentNode.removeChild(t),e))},initModal:function(e){var t=z("body");t.length&&e.appendTo(t)},isEmpty:function(e,t){return null==e||0===e.length||t&&""===z.trim(e)},isArray:function(e){return Array.isArray(e)||"[object Array]"===Object.prototype.toString.call(e)},ifSet:function(e,t,i){return i=i||"",t&&"object"==typeof t&&e in t?t[e]:i},cleanArray:function(e){return(e=e instanceof Array?e:[]).filter(function(e){return null!=e})},spliceArray:function(e,t){var i,n=0,a=[];if(!(e instanceof Array))return[];for(i=0;i<e.length;i++)i!==t&&(a[n]=e[i],n++);return a},getNum:function(e,t){return t=t||0,"number"!=typeof e&&("string"==typeof e&&(e=parseFloat(e)),isNaN(e))?t:e},hasFileAPISupport:function(){return!(!window.File||!window.FileReader)},hasDragDropSupport:function(){var e=document.createElement("div");return!O.isIE(9)&&(void 0!==e.draggable||void 0!==e.ondragstart&&void 0!==e.ondrop)},hasFileUploadSupport:function(){return O.hasFileAPISupport()&&window.FormData},addCss:function(e,t){e.removeClass(t).addClass(t)},getElement:function(e,t,i){return O.isEmpty(e)||O.isEmpty(e[t])?i:z(e[t])},uniqId:function(){return Math.round((new Date).getTime()+100*Math.random())},htmlEncode:function(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},replaceTags:function(e,t){var i=e;return t&&z.each(t,function(e,t){"function"==typeof t&&(t=t()),i=i.split(e).join(t)}),i},cleanMemory:function(e){e=(e.is("img")?e:e.find("source")).attr("src");O.objUrl.revokeObjectURL(e)},findFileName:function(e){var t=e.lastIndexOf("/");return-1===t&&(t=e.lastIndexOf("\\")),e.split(e.substring(t,t+1)).pop()},checkFullScreen:function(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement},toggleFullScreen:function(e){var t=document,i=t.documentElement;i&&e&&!O.checkFullScreen()?i.requestFullscreen?i.requestFullscreen():i.msRequestFullscreen?i.msRequestFullscreen():i.mozRequestFullScreen?i.mozRequestFullScreen():i.webkitRequestFullscreen&&i.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):t.exitFullscreen?t.exitFullscreen():t.msExitFullscreen?t.msExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.webkitExitFullscreen&&t.webkitExitFullscreen()},moveArray:function(e,t,i){if(i>=e.length)for(var n=i-e.length;1+n--;)e.push(void 0);return e.splice(i,0,e.splice(t,1)[0]),e},cleanZoomCache:function(e){var t=e.closest(".kv-zoom-cache-theme");(t=t.length?t:e.closest(".kv-zoom-cache")).remove()}},(c=function(e,t){var i=this;i.$element=z(e),i._validate()&&(i.isPreviewable=O.hasFileAPISupport(),i.isIE9=O.isIE(9),i.isIE10=O.isIE(10),i.isPreviewable||i.isIE9?(i._init(t),i._listen()):i.$element.removeClass("file-loading"))}).prototype={constructor:c,_init:function(e){var t,i=this,n=i.$element;i.options=e,z.each(e,function(e,t){switch(e){case"minFileCount":case"maxFileCount":case"maxFileSize":i[e]=O.getNum(t);break;default:i[e]=t}}),i.$form=n.closest("form"),i._initTemplateDefaults(),i.fileInputCleared=!1,i.fileBatchCompleted=!0,i.isPreviewable||(i.showPreview=!1),i.uploadFileAttr=O.isEmpty(n.attr("name"))?"file_data":n.attr("name"),i.reader=null,i.formdata={},i.clearStack(),i.uploadCount=0,i.uploadStatus={},i.uploadLog=[],i.uploadAsyncCount=0,i.loadedImages=[],i.totalImagesCount=0,i.ajaxRequests=[],i.isError=!1,i.ajaxAborted=!1,i.cancelling=!1,t=i._getLayoutTemplate("progress"),i.progressTemplate=t.replace("{class}",i.progressClass),i.progressCompleteTemplate=t.replace("{class}",i.progressCompleteClass),i.progressErrorTemplate=t.replace("{class}",i.progressErrorClass),i.dropZoneEnabled=O.hasDragDropSupport()&&i.dropZoneEnabled,i.isDisabled=n.attr("disabled")||n.attr("readonly"),i.isDisabled&&n.attr("disabled",!0),i.isUploadable=O.hasFileUploadSupport()&&!O.isEmpty(i.uploadUrl),i.isClickable=i.browseOnZoneClick&&i.showPreview&&(i.isUploadable&&i.dropZoneEnabled||!O.isEmpty(i.defaultPreviewContent)),i.slug="function"==typeof e.slugCallback?e.slugCallback:i._slugDefault,i.mainTemplate=i.showCaption?i._getLayoutTemplate("main1"):i._getLayoutTemplate("main2"),i.captionTemplate=i._getLayoutTemplate("caption"),i.previewGenericTemplate=i._getPreviewTemplate("generic"),i.resizeImage&&(i.maxImageWidth||i.maxImageHeight)&&(i.imageCanvas=document.createElement("canvas"),i.imageCanvasContext=i.imageCanvas.getContext("2d")),O.isEmpty(n.attr("id"))&&n.attr("id",O.uniqId()),i.namespace=".fileinput_"+n.attr("id").replace(/-/g,"_"),void 0===i.$container?i.$container=i._createContainer():i._refreshContainer(),t=i.$container,i.$dropZone=t.find(".file-drop-zone"),i.$progress=t.find(".kv-upload-progress"),i.$btnUpload=t.find(".fileinput-upload"),i.$captionContainer=O.getElement(e,"elCaptionContainer",t.find(".file-caption")),i.$caption=O.getElement(e,"elCaptionText",t.find(".file-caption-name")),i.$previewContainer=O.getElement(e,"elPreviewContainer",t.find(".file-preview")),i.$preview=O.getElement(e,"elPreviewImage",t.find(".file-preview-thumbnails")),i.$previewStatus=O.getElement(e,"elPreviewStatus",t.find(".file-preview-status")),i.$errorContainer=O.getElement(e,"elErrorContainer",i.$previewContainer.find(".kv-fileinput-error")),O.isEmpty(i.msgErrorClass)||O.addCss(i.$errorContainer,i.msgErrorClass),i.$errorContainer.hide(),i.previewInitId="preview-"+O.uniqId(),i._initPreviewCache(),i._initPreview(!0),i._initPreviewActions(),i._setFileDropZoneTitle(),n.removeClass("file-loading"),n.attr("disabled")&&i.disable(),i._initZoom()},_initTemplateDefaults:function(){var i=this,e='<div id="'+O.MODAL_ID+'" class="file-zoom-dialog modal fade" tabindex="-1" aria-labelledby="'+O.MODAL_ID+'Label"></div>',t='<div class="kv-preview-data file-preview-html" title="{caption}" '+O.STYLE_SETTING+">{data}</div>\n",n='<img src="{data}" class="file-preview-image kv-preview-data" title="{caption}" alt="{caption}" '+O.STYLE_SETTING+">\n",a='<textarea class="kv-preview-data file-preview-text" title="{caption}" readonly '+O.STYLE_SETTING+">{data}</textarea>\n",s='<video class="kv-preview-data file-preview-video" width="{width}" height="{height}" controls>\n<source src="{data}" type="{type}">\n'+O.DEFAULT_PREVIEW+"\n</video>\n",r='<div class="file-preview-audio"><audio class="kv-preview-data" controls>\n<source src="{data}" type="{type}">\n'+O.DEFAULT_PREVIEW+"\n</audio></div>\n",o='<object class="kv-preview-data file-object" type="application/x-shockwave-flash" width="{width}" height="{height}" data="{data}">\n'+O.OBJECT_PARAMS+" "+O.DEFAULT_PREVIEW+"\n</object>\n",l='<object class="kv-preview-data file-object" data="{data}" type="{type}" width="{width}" height="{height}">\n<param name="movie" value="{caption}" />\n'+O.OBJECT_PARAMS+" "+O.DEFAULT_PREVIEW+"\n</object>\n",d='<div class="kv-preview-data file-preview-other-frame">\n'+O.DEFAULT_PREVIEW+"\n</div>\n";i.defaults={layoutTemplates:{main1:'{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>',main2:'{preview}\n<div class="kv-upload-progress hide"></div>\n{remove}\n{cancel}\n{upload}\n{browse}\n',preview:'<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>',close:'<div class="close fileinput-remove">×</div>\n',fileIcon:'<i class="glyphicon glyphicon-file kv-caption-icon"></i>',caption:'<div tabindex="500" class="form-control file-caption {class}">\n <div class="file-caption-name"></div>\n</div>\n',modalMain:e,modal:'<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 {zoomFrameClass}"></div>\n{prev} {next}\n </div>\n </div>\n</div>\n',progress:'<div class="progress">\n <div class="{class}" role="progressbar" aria-valuenow="{percent}" aria-valuemin="0" aria-valuemax="100" style="width:{percent}%;">\n {status}\n </div>\n</div>',size:" <samp>({sizeText})</samp>",footer:'<div class="file-thumbnail-footer">\n <div class="file-footer-caption" title="{caption}">{caption}<br>{size}</div>\n {progress} {actions}\n</div>',actions:'<div class="file-upload-indicator" title="{indicatorTitle}">{indicator}</div>\n{drag}\n<div class="file-actions">\n <div class="file-footer-buttons">\n {upload} {delete} {zoom} {other} </div>\n <div class="clearfix"></div>\n</div>',actionDelete:'<button type="button" class="kv-file-remove {removeClass}" title="{removeTitle}" {dataUrl}{dataKey}>{removeIcon}</button>\n',actionUpload:'<button type="button" class="kv-file-upload {uploadClass}" title="{uploadTitle}">{uploadIcon}</button>',actionZoom:'<button type="button" class="kv-file-zoom {zoomClass}" title="{zoomTitle}">{zoomIcon}</button>',actionDrag:'<span class="file-drag-handle {dragClass}" title="{dragTitle}">{dragIcon}</span>',btnDefault:'<button type="{type}" tabindex="500" title="{title}" class="{css}" {status}>{icon} {label}</button>',btnLink:'<a href="{href}" tabindex="500" title="{title}" class="{css}" {status}>{icon} {label}</a>',btnBrowse:'<div tabindex="500" class="{css}" {status}>{icon} {label}</div>',zoomCache:'<div class="kv-zoom-cache" style="display:none">{zoomContent}</div>'},previewMarkupTags:{tagBefore1:'<div class="file-preview-frame {frameClass}" id="{previewId}" data-fileindex="{fileindex}" data-template="{template}"><div class="kv-file-content">\n',tagBefore2:'<div class="file-preview-frame {frameClass}" id="{previewId}" data-fileindex="{fileindex}" data-template="{template}" title="{caption}"><div class="kv-file-content">\n',tagAfter:"</div>{footer}\n</div>\n"},previewContentTemplates:{generic:"{content}\n",html:t,image:n,text:a,video:s,audio:r,flash:o,object:l,pdf:'<embed class="kv-preview-data" src="{data}" width="{width}" height="{height}" type="application/pdf">\n',other:d},allowedPreviewTypes:["image","html","text","video","audio","flash","pdf","object"],previewTemplates:{},previewSettings:{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:"auto"},pdf:{width:"160px",height:"160px"},other:{width:"160px",height:"160px"}},previewZoomSettings:{image:{width:"auto",height:"auto","max-width":"100%","max-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"}},fileTypeSettings:{image:function(e,t){return O.compare(e,"image.*")||O.compare(t,/\.(gif|png|jpe?g)$/i)},html:function(e,t){return O.compare(e,"text/html")||O.compare(t,/\.(htm|html)$/i)},text:function(e,t){return O.compare(e,"text.*")||O.compare(t,/\.(xml|javascript)$/i)||O.compare(t,/\.(txt|md|csv|nfo|ini|json|php|js|css)$/i)},video:function(e,t){return O.compare(e,"video.*")&&(O.compare(e,/(ogg|mp4|mp?g|mov|webm|3gp)$/i)||O.compare(t,/\.(og?|mp4|webm|mp?g|mov|3gp)$/i))},audio:function(e,t){return O.compare(e,"audio.*")&&(O.compare(t,/(ogg|mp3|mp?g|wav)$/i)||O.compare(t,/\.(og?|mp3|mp?g|wav)$/i))},flash:function(e,t){return O.compare(e,"application/x-shockwave-flash",!0)||O.compare(t,/\.(swf)$/i)},pdf:function(e,t){return O.compare(e,"application/pdf",!0)||O.compare(t,/\.(pdf)$/i)},object:function(){return!0},other:function(){return!0}},fileActionSettings:{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 ..."}},z.each(i.defaults,function(e,t){"allowedPreviewTypes"===e?void 0===i.allowedPreviewTypes&&(i.allowedPreviewTypes=t):i[e]=z.extend(!0,{},t,i[e])}),i._initPreviewTemplates()},_initPreviewTemplates:function(){var i,n=this,e=n.defaults,a=n.previewMarkupTags,s=a.tagAfter;z.each(e.previewContentTemplates,function(e,t){O.isEmpty(n.previewTemplates[e])&&(i=a.tagBefore2,"generic"!==e&&"image"!==e&&"html"!==e&&"text"!==e||(i=a.tagBefore1),n.previewTemplates[e]=i+t+s)})},_initPreviewCache:function(){var h=this;h.previewCache={data:{},init:function(){var e=h.initialPreview;0<e.length&&!O.isArray(e)&&(e=e.split(h.initialPreviewDelimiter)),h.previewCache.data={content:e,config:h.initialPreviewConfig,tags:h.initialPreviewThumbTags}},fetch:function(){return h.previewCache.data.content.filter(function(e){return null!==e})},count:function(e){return h.previewCache.data&&h.previewCache.data.content?(e?h.previewCache.data.content:h.previewCache.fetch()).length:0},get:function(e,t){function i(e,t,i,n,a,s,r,o,l){return o=" file-preview-initial "+O.SORT_CSS+(o?" "+o:""),h._generatePreviewTemplate(e,t,i,n,a,!1,null,o,s,r,l)}var n,a,s,r,o="init_"+e,l=h.previewCache.data,d=l.config[e],c=l.content[e],u=h.previewInitId+"-"+o,p=O.ifSet("previewAsData",d,h.initialPreviewAsData);return c?(t=void 0===t||t,n=O.ifSet("type",d,h.initialPreviewFileType||"generic"),a=O.ifSet("filename",d,O.ifSet("caption",d)),s=O.ifSet("filetype",d,n),t=h.previewCache.footer(e,t,d&&d.size||null),r=O.ifSet("frameClass",d),p=p?i(n,c,a,s,u,t,o,r):i("generic",c,a,s,u,t,o,r,n).replace(/\{content}/g,l.content[e]),l.tags.length&&l.tags[e]&&(p=O.replaceTags(p,l.tags[e])),O.isEmpty(d)||O.isEmpty(d.frameAttr)||((c=z(document.createElement("div")).html(p)).find(".file-preview-initial").attr(d.frameAttr),p=c.html(),c.remove()),p):""},add:function(e,t,i,n){var a,s=h.previewCache.data;return O.isArray(e)||(e=e.split(h.initialPreviewDelimiter)),n?(a=s.content.push(e)-1,s.config[a]=t,s.tags[a]=i):(a=e.length-1,s.content=e,s.config=t,s.tags=i),h.previewCache.data=s,a},set:function(e,t,i,n){var a,s=h.previewCache.data;if(e&&e.length&&(e=O.isArray(e)?e:e.split(h.initialPreviewDelimiter)).filter(function(e){return null!==e}).length){if(void 0===s.content&&(s.content=[]),void 0===s.config&&(s.config=[]),void 0===s.tags&&(s.tags=[]),n){for(a=0;a<e.length;a++)e[a]&&s.content.push(e[a]);for(a=0;a<t.length;a++)t[a]&&s.config.push(t[a]);for(a=0;a<i.length;a++)i[a]&&s.tags.push(i[a])}else s.content=e,s.config=t,s.tags=i;h.previewCache.data=s}},unset:function(e){var t=h.previewCache.count();t&&(1===t?(h.previewCache.data.content=[],h.previewCache.data.config=[],h.previewCache.data.tags=[],h.initialPreview=[],h.initialPreviewConfig=[],h.initialPreviewThumbTags=[]):(h.previewCache.data.content[e]=null,h.previewCache.data.config[e]=null,h.previewCache.data.tags[e]=null))},out:function(){var e,t="",i=h.previewCache.count(!0);if(0===i)return{content:"",caption:""};for(e=0;e<i;e++)t+=h.previewCache.get(e);return{content:t,caption:h._getMsgSelected(h.previewCache.count())}},footer:function(e,t,i){var n=h.previewCache.data;if(!n||!n.config||0===n.config.length||O.isEmpty(n.config[e]))return"";t=void 0===t||t;var n=n.config[e],e=O.ifSet("caption",n),a="",s=O.ifSet("width",n,"auto"),r=O.ifSet("url",n,!1),o=O.ifSet("key",n,null),l=h.fileActionSettings,d=O.ifSet("showDelete",n,!0),c=O.ifSet("showZoom",n,l.showZoom),n=O.ifSet("showDrag",n,l.showDrag);return h.initialPreviewShowDelete&&(a=h._renderFileActions(!1,d,c,n,!1===r&&t,r,o,!0)),h._getLayoutTemplate("footer").replace(/\{progress}/g,h._renderThumbProgress()).replace(/\{actions}/g,a).replace(/\{caption}/g,e).replace(/\{size}/g,h._getSize(i)).replace(/\{width}/g,s).replace(/\{indicator}/g,"").replace(/\{indicatorTitle}/g,"")}},h.previewCache.init()},_handler:function(e,t,i){var n=this.namespace,t=t.split(" ").join(n+" ")+n;e&&e.length&&e.off(t).on(t,i)},_log:function(e){var t=this.$element.attr("id");t&&(e='"'+t+'": '+e),void 0!==window.console.log?window.console.log(e):window.alert(e)},_validate:function(){var e="file"===this.$element.attr("type");return e||this._log('The input "type" must be set to "file" for initializing the "bootstrap-fileinput" plugin.'),e},_errorsExist:function(){var e;return!!this.$errorContainer.find("li").length||((e=z(document.createElement("div")).html(this.$errorContainer.html())).find("span.kv-error-close").remove(),e.find("ul").remove(),!!z.trim(e.text()).length)},_errorHandler:function(e,t){var i=this,e=e.target.error;e.code===e.NOT_FOUND_ERR?i._showError(i.msgFileNotFound.replace("{name}",t)):e.code===e.SECURITY_ERR?i._showError(i.msgFileSecured.replace("{name}",t)):e.code===e.NOT_READABLE_ERR?i._showError(i.msgFileNotReadable.replace("{name}",t)):e.code===e.ABORT_ERR?i._showError(i.msgFilePreviewAborted.replace("{name}",t)):i._showError(i.msgFilePreviewError.replace("{name}",t))},_addError:function(e){var t=this.$errorContainer;e&&t.length&&(t.html(this.errorCloseButton+e),this._handler(t.find(".kv-error-close"),"click",function(){t.fadeOut("slow")}))},_resetErrors:function(e){var t=this.$errorContainer;this.isError=!1,this.$container.removeClass("has-error"),t.html(""),e?t.fadeOut("slow"):t.hide()},_showFolderError:function(e){var t,i=this,n=i.$errorContainer;e&&(t=i.msgFoldersNotAllowed.replace(/\{n}/g,e),i._addError(t),O.addCss(i.$container,"has-error"),n.fadeIn(800),i._raise("filefoldererror",[e,t]))},_showUploadError:function(e,t,i){var n=this,a=n.$errorContainer,i=i||"fileuploaderror",s=t&&t.id?'<li data-file-id="'+t.id+'">'+e+"</li>":"<li>"+e+"</li>";return 0===a.find("ul").length?n._addError("<ul>"+s+"</ul>"):a.find("ul").append(s),a.fadeIn(800),n._raise(i,[t,e]),n.$container.removeClass("file-input-new"),O.addCss(n.$container,"has-error"),!0},_showError:function(e,t,i){var n=this,a=n.$errorContainer,i=i||"fileerror";return(t=t||{}).reader=n.reader,n._addError(e),a.fadeIn(800),n._raise(i,[t,e]),n.isUploadable||n._clearFileInput(),n.$container.removeClass("file-input-new"),O.addCss(n.$container,"has-error"),n.$btnUpload.attr("disabled",!0),!0},_noFilesError:function(e){var t=this,i=1<t.minFileCount?t.filePlural:t.fileSingle,i=t.msgFilesTooLess.replace("{n}",t.minFileCount).replace("{files}",i),n=t.$errorContainer;t._addError(i),t.isError=!0,t._updateFileDetails(0),n.fadeIn(800),t._raise("fileerror",[e,i]),t._clearFileInput(),O.addCss(t.$container,"has-error")},_parseError:function(e,t,i,n){var a=this,i=z.trim(i+""),s="."===i.slice(-1)?"":".",t=void 0!==t.responseJSON&&void 0!==t.responseJSON.error?t.responseJSON.error:t.responseText;return a.cancelling&&a.msgUploadAborted&&(i=a.msgUploadAborted),a.showAjaxErrorDetails&&t?i+=s+(t=0<(t=z.trim(t.replace(/\n\s*\n/g,"\n"))).length?"<pre>"+t+"</pre>":""):i+=s,i===s&&(i=a.msgAjaxError.replace("{operation}",e)),a.cancelling=!1,n?"<b>"+n+": </b>"+i:i},_parseFileType:function(e){for(var t,i=this.allowedPreviewTypes||[],n=0;n<i.length;n++)if(t=i[n],t=(0,this.fileTypeSettings[t])(e.type,e.name)?t:"",!O.isEmpty(t))return t;return"other"},_getPreviewIcon:function(e){var i,n=this,a=null;return e&&-1<e.indexOf(".")&&(i=e.split(".").pop(),n.previewFileIconSettings&&n.previewFileIconSettings[i]&&(a=n.previewFileIconSettings[i]),n.previewFileExtSettings)&&z.each(n.previewFileExtSettings,function(e,t){n.previewFileIconSettings[e]&&t(i)&&(a=n.previewFileIconSettings[e])}),a},_parseFilePreviewIcon:function(e,t){t=this._getPreviewIcon(t)||this.previewFileIcon;return e=-1<e.indexOf("{previewFileIcon}")?e.replace(/\{previewFileIconClass}/g,this.previewFileIconClass).replace(/\{previewFileIcon}/g,t):e},_raise:function(e,t){var i=z.Event(e);if(void 0!==t?this.$element.trigger(i,t):this.$element.trigger(i),i.isDefaultPrevented()||!1===i.result)return!1;switch(e){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:this.ajaxAborted=i.result}return!0},_listenFullScreen:function(e){var t,i,n=this.$modal;n&&n.length&&(t=n&&n.find(".btn-fullscreen"),i=n&&n.find(".btn-borderless"),t.length)&&i.length&&(t.removeClass("active").attr("aria-pressed","false"),i.removeClass("active").attr("aria-pressed","false"),(e?t:i).addClass("active").attr("aria-pressed","true"),n.hasClass("file-zoom-fullscreen")||e?this._maximizeZoomDialog():i.removeClass("active").attr("aria-pressed","false"))},_listen:function(){var e=this,t=e.$element,i=e.$form,n=e.$container;e._handler(t,"change",z.proxy(e._change,e)),e.showBrowse&&e._handler(e.$btnFile,"click",z.proxy(e._browse,e)),e._handler(n.find(".fileinput-remove:not([disabled])"),"click",z.proxy(e.clear,e)),e._handler(n.find(".fileinput-cancel"),"click",z.proxy(e.cancel,e)),e._initDragDrop(),e._handler(i,"reset",z.proxy(e.reset,e)),e.isUploadable||e._handler(i,"submit",z.proxy(e._submitForm,e)),e._handler(e.$container.find(".fileinput-upload"),"click",z.proxy(e._uploadClick,e)),e._handler(z(window),"resize",function(){e._listenFullScreen(screen.width===window.innerWidth&&screen.height===window.innerHeight)}),e._handler(z(document),"webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange",function(){e._listenFullScreen(O.checkFullScreen())}),e._initClickable()},_initClickable:function(){var t,i=this;i.isClickable&&(t=i.isUploadable?i.$dropZone:i.$preview.find(".file-default-preview"),O.addCss(t,"clickable"),t.attr("tabindex",-1),i._handler(t,"click",function(e){e=z(e.target);e.parents(".file-preview-thumbnails").length&&!e.parents(".file-default-preview").length||(i.$element.trigger("click"),t.blur())}))},_initDragDrop:function(){var e=this,t=e.$dropZone;e.isUploadable&&e.dropZoneEnabled&&e.showPreview&&(e._handler(t,"dragenter dragover",z.proxy(e._zoneDragEnter,e)),e._handler(t,"dragleave",z.proxy(e._zoneDragLeave,e)),e._handler(t,"drop",z.proxy(e._zoneDrop,e)),e._handler(z(document),"dragenter dragover drop",e._zoneDragDropInit))},_zoneDragDropInit:function(e){e.stopPropagation(),e.preventDefault()},_zoneDragEnter:function(e){var t=-1<z.inArray("Files",e.originalEvent.dataTransfer.types);this._zoneDragDropInit(e),this.isDisabled||!t?(e.originalEvent.dataTransfer.effectAllowed="none",e.originalEvent.dataTransfer.dropEffect="none"):O.addCss(this.$dropZone,"file-highlighted")},_zoneDragLeave:function(e){this._zoneDragDropInit(e),this.isDisabled||this.$dropZone.removeClass("file-highlighted")},_zoneDrop:function(e){e.preventDefault(),this.isDisabled||O.isEmpty(e.originalEvent.dataTransfer.files)||(this._change(e,"dragdrop"),this.$dropZone.removeClass("file-highlighted"))},_uploadClick:function(e){var t=this.$container.find(".fileinput-upload"),i=!t.hasClass("disabled")&&O.isEmpty(t.attr("disabled"));e&&e.isDefaultPrevented()||(this.isUploadable?(e.preventDefault(),i&&this.upload()):i&&"submit"!==t.attr("type")&&((i=t.closest("form")).length&&i.trigger("submit"),e.preventDefault()))},_submitForm:function(){var e=this,t=e.$element.get(0).files;return t&&0<e.minFileCount&&e._getFileCount(t.length)<e.minFileCount?(e._noFilesError({}),!1):!e._abort({})},_clearPreview:function(){var e=this,t=e.$preview;(e.showUploadedThumbs?t.find(O.FRAMES+":not(.file-preview-success)"):t.find(O.FRAMES)).each(function(){var e=z(this);e.remove(),O.cleanZoomCache(t.find("#zoom-"+e.attr("id")))}),e.$preview.find(O.FRAMES).length&&e.showPreview||e._resetUpload(),e._validateDefaultPreview()},_initSortable:function(){var s=this,e=s.$preview,t="."+O.SORT_CSS;window.KvSortable&&0!==e.find(t).length&&(t={handle:".drag-handle-init",dataIdAttr:"data-preview-id",draggable:t,onSort:function(e){var t,i=e.oldIndex,n=e.newIndex;s.initialPreview=O.moveArray(s.initialPreview,i,n),s.initialPreviewConfig=O.moveArray(s.initialPreviewConfig,i,n),s.previewCache.init();for(var a=0;a<s.initialPreviewConfig.length;a++)null!==s.initialPreviewConfig[a]&&(t=s.initialPreviewConfig[a].key,z(".kv-file-remove[data-key='"+t+"']").closest(O.FRAMES).attr("data-fileindex","init_"+a).data("fileindex","init_"+a));s._raise("filesorted",{previewId:z(e.item).attr("id"),oldIndex:i,newIndex:n,stack:s.initialPreviewConfig})}},e.data("kvsortable")&&e.kvsortable("destroy"),z.extend(!0,t,s.fileActionSettings.dragSettings),e.kvsortable(t))},_initPreview:function(e){var t,i=this,n=i.initialCaption||"";i.previewCache.count()?(t=i.previewCache.out(),n=e&&i.initialCaption?i.initialCaption:t.caption,i.$preview.html(t.content),i._setInitThumbAttr(),i._setCaption(n),i._initSortable(),O.isEmpty(t.content)||i.$container.removeClass("file-input-new")):(i._clearPreview(),e?i._setCaption(n):i._initCaption())},_getZoomButton:function(e){var t=this.previewZoomButtonIcons[e],i=this.previewZoomButtonClasses[e],n=' title="'+(this.previewZoomButtonTitles[e]||"")+'" '+("close"===e?' data-dismiss="modal" aria-hidden="true"':"");return"fullscreen"!==e&&"borderless"!==e&&"toggleheader"!==e||(n+=' data-toggle="button" aria-pressed="false" autocomplete="off"'),'<button type="button" class="'+i+" btn-"+e+'"'+n+">"+t+"</button>"},_getModalContent:function(){var e=this;return e._getLayoutTemplate("modal").replace(/\{zoomFrameClass}/g,e.frameClass).replace(/\{heading}/g,e.msgZoomModalHeading).replace(/\{prev}/g,e._getZoomButton("prev")).replace(/\{next}/g,e._getZoomButton("next")).replace(/\{toggleheader}/g,e._getZoomButton("toggleheader")).replace(/\{fullscreen}/g,e._getZoomButton("fullscreen")).replace(/\{borderless}/g,e._getZoomButton("borderless")).replace(/\{close}/g,e._getZoomButton("close"))},_listenModalEvent:function(n){var a=this,s=a.$modal;s.on(n+".bs.modal",function(e){var t=s.find(".btn-fullscreen"),i=s.find(".btn-borderless");a._raise("filezoom"+n,{sourceEvent:e,previewId:s.data("previewId"),modal:s}),"shown"===n&&(i.removeClass("active").attr("aria-pressed","false"),t.removeClass("active").attr("aria-pressed","false"),s.hasClass("file-zoom-fullscreen"))&&(a._maximizeZoomDialog(),(O.checkFullScreen()?t:i).addClass("active").attr("aria-pressed","true"))})},_initZoom:function(){var i=this,e=i._getLayoutTemplate("modalMain"),t="#"+O.MODAL_ID;i.showPreview&&(i.$modal=z(t),i.$modal&&i.$modal.length||(e=z(document.createElement("div")).html(e).insertAfter(i.$container),i.$modal=z(t).insertBefore(e),e.remove()),O.initModal(i.$modal),i.$modal.html(i._getModalContent()),z.each(O.MODAL_EVENTS,function(e,t){i._listenModalEvent(t)}))},_initZoomButtons:function(){var e,t=this.$modal.data("previewId")||"",i=this.$preview.find(O.FRAMES).toArray(),n=i.length,a=this.$modal.find(".btn-prev"),s=this.$modal.find(".btn-next");i.length<2?(a.hide(),s.hide()):(a.show(),s.show(),n&&(e=z(i[0]),i=z(i[n-1]),a.removeAttr("disabled"),s.removeAttr("disabled"),e.length&&e.attr("id")===t&&a.attr("disabled",!0),i.length)&&i.attr("id")===t&&s.attr("disabled",!0))},_maximizeZoomDialog:function(){var e=this.$modal,t=e.find(".modal-header:visible"),i=e.find(".modal-footer:visible"),n=e.find(".modal-body"),a=z(window).height();e.addClass("file-zoom-fullscreen"),t&&t.length&&(a-=t.outerHeight(!0)),i&&i.length&&(a-=i.outerHeight(!0)),n&&n.length&&(a-=n.outerHeight(!0)-n.height()),e.find(".kv-zoom-body").height(a)},_resizeZoomDialog:function(e){var t=this,i=t.$modal,n=i.find(".btn-fullscreen"),a=i.find(".btn-borderless");if(i.hasClass("file-zoom-fullscreen"))O.toggleFullScreen(!1),e?n.hasClass("active")||(i.removeClass("file-zoom-fullscreen"),t._resizeZoomDialog(!0),a.hasClass("active")&&a.removeClass("active").attr("aria-pressed","false")):n.hasClass("active")?n.removeClass("active").attr("aria-pressed","false"):(i.removeClass("file-zoom-fullscreen"),t.$modal.find(".kv-zoom-body").css("height",t.zoomModalHeight));else{if(!e)return void t._maximizeZoomDialog();O.toggleFullScreen(!0)}i.focus()},_setZoomContent:function(e,t){var i,n,a,s=this,r=e.attr("id"),o=s.$modal,l=o.find(".btn-prev"),d=o.find(".btn-next"),c=o.find(".btn-fullscreen"),u=o.find(".btn-borderless"),p=o.find(".btn-toggleheader"),h=s.$preview.find("#zoom-"+r),m=h.attr("data-template")||"generic",h=h.find(".kv-file-content"),h=h.length?h.html():"",e=(e.data("caption")||"")+" "+(e.data("size")||"");o.find(".kv-zoom-title").html(e),i=o.find(".kv-zoom-body"),o.removeClass("kv-single-content"),t?(a=i.clone().insertAfter(i),i.html(h).hide(),a.fadeOut("fast",function(){i.fadeIn("fast"),a.remove()})):i.html(h),(e=s.previewZoomSettings[m])&&(n=i.find(".kv-preview-data"),O.addCss(n,"file-zoom-detail"),z.each(e,function(e,t){n.css(e,t),(n.attr("width")&&"width"===e||n.attr("height")&&"height"===e)&&n.removeAttr(e)})),o.data("previewId",r),s._handler(l,"click",function(){s._zoomSlideShow("prev",r)}),s._handler(d,"click",function(){s._zoomSlideShow("next",r)}),s._handler(c,"click",function(){s._resizeZoomDialog(!0)}),s._handler(u,"click",function(){s._resizeZoomDialog(!1)}),s._handler(p,"click",function(){function e(e){var t=s.$modal.find(".kv-zoom-body"),i=s.zoomModalHeight;o.hasClass("file-zoom-fullscreen")&&(i=t.outerHeight(!0),e||(i-=n.outerHeight(!0))),t.css("height",e?i+e:i)}var t,n=o.find(".modal-header"),i=o.find(".modal-body .floating-buttons"),a=n.find(".kv-zoom-actions");n.is(":visible")?(t=n.outerHeight(!0),n.slideUp("slow",function(){a.find(".btn").appendTo(i),e(t)})):(i.find(".btn").appendTo(a),n.slideDown("slow",function(){e()})),o.focus()}),s._handler(o,"keydown",function(e){e=e.which||e.keyCode;37!==e||l.attr("disabled")||s._zoomSlideShow("prev",r),39!==e||d.attr("disabled")||s._zoomSlideShow("next",r)})},_zoomPreview:function(e){var t=this.$modal;if(!e.length)throw"Cannot zoom to detailed preview!";O.initModal(t),t.html(this._getModalContent()),e=e.closest(O.FRAMES),this._setZoomContent(e),t.modal("show"),this._initZoomButtons()},_zoomSlideShow:function(e,t){var i,n,a=this,s=a.$modal.find(".kv-zoom-actions .btn-"+e),r=a.$preview.find(O.FRAMES).toArray(),o=r.length;if(!s.attr("disabled")){for(i=0;i<o;i++)if(z(r[i]).attr("id")===t){n="prev"===e?i-1:i+1;break}n<0||o<=n||!r[n]||((s=z(r[n])).length&&a._setZoomContent(s,!0),a._initZoomButtons(),a._raise("filezoom"+e,{previewId:t,modal:a.$modal}))}},_initZoomButton:function(){var t=this;t.$preview.find(".kv-file-zoom").each(function(){var e=z(this);t._handler(e,"click",function(){t._zoomPreview(e)})})},_clearObjects:function(e){e.find("video audio").each(function(){this.pause(),z(this).remove()}),e.find("img object div").each(function(){z(this).remove()})},_clearFileInput:function(){var e,t,i,n=this.$element;this.fileInputCleared=!0,O.isEmpty(n.val())||(this.isIE9||this.isIE10?(e=n.closest("form"),t=z(document.createElement("form")),i=z(document.createElement("div")),n.before(i),(e.length?e:i).after(t),t.append(n).trigger("reset"),i.before(n).remove(),t.remove()):n.val(""))},_resetUpload:function(){var e=this;e.uploadCache={content:[],config:[],tags:[],append:!0},e.uploadCount=0,e.uploadStatus={},e.uploadLog=[],e.uploadAsyncCount=0,e.loadedImages=[],e.totalImagesCount=0,e.$btnUpload.removeAttr("disabled"),e._setProgress(0),O.addCss(e.$progress,"hide"),e._resetErrors(!1),e.ajaxAborted=!1,e.ajaxRequests=[],e._resetCanvas(),e.cacheInitialPreview={},e.overwriteInitial&&(e.initialPreview=[],e.initialPreviewConfig=[],e.initialPreviewThumbTags=[],e.previewCache.data={content:[],config:[],tags:[]})},_resetCanvas:function(){var e=this;e.canvas&&e.imageCanvasContext&&e.imageCanvasContext.clearRect(0,0,e.canvas.width,e.canvas.height)},_hasInitialPreview:function(){return!this.overwriteInitial&&this.previewCache.count()},_resetPreview:function(){var e,t=this;t.previewCache.count()?(e=t.previewCache.out(),t.$preview.html(e.content),t._setInitThumbAttr(),e=t.initialCaption||e.caption,t._setCaption(e)):(t._clearPreview(),t._initCaption()),t.showPreview&&(t._initZoom(),t._initSortable())},_clearDefaultPreview:function(){this.$preview.find(".file-default-preview").remove()},_validateDefaultPreview:function(){var e=this;e.showPreview&&!O.isEmpty(e.defaultPreviewContent)&&(e.$preview.html('<div class="file-default-preview">'+e.defaultPreviewContent+"</div>"),e.$container.removeClass("file-input-new"),e._initClickable())},_resetPreviewThumbs:function(e){var t=this;e?(t._clearPreview(),t.clearStack()):t._hasInitialPreview()?(e=t.previewCache.out(),t.$preview.html(e.content),t._setInitThumbAttr(),t._setCaption(e.caption),t._initPreviewActions()):t._clearPreview()},_getLayoutTemplate:function(e){e=this.layoutTemplates[e];return O.isEmpty(this.customLayoutTags)?e:O.replaceTags(e,this.customLayoutTags)},_getPreviewTemplate:function(e){e=this.previewTemplates[e];return O.isEmpty(this.customPreviewTags)?e:O.replaceTags(e,this.customPreviewTags)},_getOutData:function(e,t,i){var n=this;return e=e||{},t=t||{},i=i||n.filestack.slice(0)||{},{form:n.formdata,files:i,filenames:n.filenames,filescount:n.getFilesCount(),extra:n._getExtraData(),response:t,reader:n.reader,jqXHR:e}},_getMsgSelected:function(e){var t=1===e?this.fileSingle:this.filePlural;return 0<e?this.msgSelected.replace("{n}",e).replace("{files}",t):this.msgNoFilesSelected},_getThumbs:function(e){return this.$preview.find(O.FRAMES+":not(.file-preview-initial)"+(e=e||""))},_getExtraData:function(e,t){var i=this.uploadExtraData;return i="function"==typeof this.uploadExtraData?this.uploadExtraData(e,t):i},_initXhr:function(e,a,s){var r=this;return e.upload&&e.upload.addEventListener("progress",function(e){var t=0,i=e.total,n=e.loaded||e.position;e.lengthComputable&&(t=Math.floor(n/i*100)),a?r._setAsyncUploadStatus(a,t,s):r._setProgress(t)},!1),e},_ajaxSubmit:function(e,t,i,n,a,s){var r=this;r._raise("filepreajax",[a,s])&&(r._uploadExtra(a,s),s=z.extend(!0,{},{xhr:function(){var e=z.ajaxSettings.xhr();return r._initXhr(e,a,r.getFileStack().length)},url:r.uploadUrl,type:"POST",dataType:"json",data:r.formdata,cache:!1,processData:!1,contentType:!1,beforeSend:e,success:t,complete:i,error:n},r.ajaxSettings),r.ajaxRequests.push(z.ajax(s)))},_mergeArray:function(e,t){var i=O.cleanArray(this[e]),t=O.cleanArray(t);this[e]=i.concat(t)},_initUploadSuccess:function(e,t,i){var n,a,s,r,o=this;o.showPreview&&"object"==typeof e&&!z.isEmptyObject(e)&&void 0!==e.initialPreview&&0<e.initialPreview.length&&(o.hasInitData=!0,a=e.initialPreview||[],s=e.initialPreviewConfig||[],r=e.initialPreviewThumbTags||[],e=!(void 0!==e.append&&!e.append),0<a.length&&!O.isArray(a)&&(a=a.split(o.initialPreviewDelimiter)),o._mergeArray("initialPreview",a),o._mergeArray("initialPreviewConfig",s),o._mergeArray("initialPreviewThumbTags",r),void 0!==t?i?(i=t.attr("data-fileindex"),o.uploadCache.content[i]=a[0],o.uploadCache.config[i]=s[0]||[],o.uploadCache.tags[i]=r[0]||[],o.uploadCache.append=e):(i=o.previewCache.add(a,s[0],r[0],e),i=o.previewCache.get(i,!1),(i=(n=z(document.createElement("div")).html(i).hide().insertAfter(t)).find(".kv-zoom-cache"))&&i.length&&i.insertAfter(t),t.fadeOut("slow",function(){var e=n.find(".file-preview-frame");e&&e.length&&e.insertBefore(t).fadeIn("slow").css("display:inline-block"),o._initPreviewActions(),o._clearFileInput(),O.cleanZoomCache(o.$preview.find("#zoom-"+t.attr("id"))),t.remove(),n.remove(),o._initSortable()})):(o.previewCache.set(a,s,r,e),o._initPreview(),o._initPreviewActions()))},_initSuccessThumbs:function(){var a=this;a.showPreview&&a._getThumbs(O.FRAMES+".file-preview-success").each(function(){var i=z(this),n=a.$preview,e=i.find(".kv-file-remove");e.removeAttr("disabled"),a._handler(e,"click",function(){var e=i.attr("id"),t=a._raise("filesuccessremove",[e,i.data("fileindex")]);O.cleanMemory(i),!1!==t&&i.fadeOut("slow",function(){O.cleanZoomCache(n.find("#zoom-"+e)),i.remove(),n.find(O.FRAMES).length||a.reset()})})})},_checkAsyncComplete:function(){for(var e,t=this,i=0;i<t.filestack.length;i++)if(t.filestack[i]&&(e=t.previewInitId+"-"+i,-1===z.inArray(e,t.uploadLog)))return!1;return t.uploadAsyncCount===t.uploadLog.length},_uploadExtra:function(e,t){var i=this,e=i._getExtraData(e,t);0!==e.length&&z.each(e,function(e,t){i.formdata.append(e,t)})},_uploadSingle:function(s,r,o){var a,l,e,d,t,i,n,c,u=this,p=u.getFileStack().length,h=new FormData,m=u.previewInitId+"-"+s,f=0<u.filestack.length||!z.isEmptyObject(u.uploadExtraData),g=z("#"+m).find(".file-thumb-progress"),v={id:m,index:s};u.formdata=h,u.showPreview&&(l=z("#"+m+":not(.file-preview-initial)"),d=l.find(".kv-file-upload"),t=l.find(".kv-file-remove"),g.removeClass("hide")),0===p||!f||d&&d.hasClass("disabled")||u._abort(v)||(c=function(e,t){u.updateStack(e,void 0),u.uploadLog.push(t),u._checkAsyncComplete()&&(u.fileBatchCompleted=!0)},e=function(){var e,t,i,n=u.uploadCache,a=0,s=u.cacheInitialPreview;u.fileBatchCompleted&&(s&&s.content&&(a=s.content.length),setTimeout(function(){if(u.showPreview){if(u.previewCache.set(n.content,n.config,n.tags,n.append),a){for(t=0;t<n.content.length;t++)i=t+a,s.content[i]=n.content[t],s.config.length&&(s.config[i]=n.config[t]),s.tags.length&&(s.tags[i]=n.tags[t]);u.initialPreview=O.cleanArray(s.content),u.initialPreviewConfig=O.cleanArray(s.config),u.initialPreviewThumbTags=O.cleanArray(s.tags)}else u.initialPreview=n.content,u.initialPreviewConfig=n.config,u.initialPreviewThumbTags=n.tags;u.cacheInitialPreview={},u.hasInitData&&(u._initPreview(),u._initPreviewActions())}u.unlock(),u._clearFileInput(),e=u.$preview.find(".file-preview-initial"),u.uploadAsync&&e.length&&(O.addCss(e,O.SORT_CSS),u._initSortable()),u._raise("filebatchuploadcomplete",[u.filestack,u._getExtraData()]),u.uploadCount=0,u.uploadStatus={},u.uploadLog=[],u._setProgress(101)},100))},p=function(e){a=u._getOutData(e),u.fileBatchCompleted=!1,u.showPreview&&(l.hasClass("file-preview-success")||(u._setThumbStatus(l,"Loading"),O.addCss(l,"file-uploading")),d.attr("disabled",!0),t.attr("disabled",!0)),o||u.lock(),u._raise("filepreupload",[a,m,s]),z.extend(!0,v,a),u._abort(v)&&(e.abort(),u._setProgressCancelled())},f=function(e,t,i){var n=u.showPreview&&l.attr("id")?l.attr("id"):m;a=u._getOutData(i,e),z.extend(!0,v,a),setTimeout(function(){O.isEmpty(e)||O.isEmpty(e.error)?(u.showPreview&&(u._setThumbStatus(l,"Success"),d.hide(),u._initUploadSuccess(e,l,o),u._setProgress(101,g)),u._raise("fileuploaded",[a,n,s]),o?c(s,n):u.updateStack(s,void 0)):(u._showUploadError(e.error,v),u._setPreviewError(l,s),o&&c(s,n))},100)},i=function(){setTimeout(function(){u.showPreview&&(d.removeAttr("disabled"),t.removeAttr("disabled"),l.removeClass("file-uploading")),o?e():(u.unlock(!1),u._clearFileInput()),u._initSuccessThumbs()},100)},n=function(e,t,i){var n=u.ajaxOperations.uploadThumb,a=u._parseError(n,e,i,o?r[s].name:null);setTimeout(function(){o&&c(s,m),u.uploadStatus[m]=100,u._setPreviewError(l,s),z.extend(!0,v,u._getOutData(e)),u._setProgress(101,g,u.msgAjaxProgressError.replace("{operation}",n)),u._showUploadError(a,v)},100)},h.append(u.uploadFileAttr,r[s],u.filenames[s]),h.append("file_id",s),u._ajaxSubmit(p,f,i,n,m,s))},_uploadBatch:function(){var e,t,i,r,o=this,n=o.filestack,s=n.length,a=0<o.filestack.length||!z.isEmptyObject(o.uploadExtraData);o.formdata=new FormData,0!==s&&a&&!o._abort({})&&(r=function(){z.each(n,function(e){o.updateStack(e,void 0)}),o._clearFileInput()},a=function(e){o.lock();var t=o._getOutData(e);o.showPreview&&o._getThumbs().each(function(){var e=z(this),t=e.find(".kv-file-upload"),i=e.find(".kv-file-remove");e.hasClass("file-preview-success")||(o._setThumbStatus(e,"Loading"),O.addCss(e,"file-uploading")),t.attr("disabled",!0),i.attr("disabled",!0)}),o._raise("filebatchpreupload",[t]),o._abort(t)&&(e.abort(),o._setProgressCancelled())},e=function(e,t,i){var i=o._getOutData(i,e),n=o._getThumbs(":not(.file-preview-error)"),a=0,s=O.isEmpty(e)||O.isEmpty(e.errorkeys)?[]:e.errorkeys;O.isEmpty(e)||O.isEmpty(e.error)?(o._raise("filebatchuploadsuccess",[i]),r(),o.showPreview?(n.each(function(){var e=z(this),t=e.find(".kv-file-upload");e.find(".kv-file-upload").hide(),o._setThumbStatus(e,"Success"),e.removeClass("file-uploading"),t.removeAttr("disabled")}),o._initUploadSuccess(e)):o.reset(),o._setProgress(101)):(o.showPreview&&(n.each(function(){var e=z(this),t=e.find(".kv-file-remove"),i=e.find(".kv-file-upload");e.removeClass("file-uploading"),i.removeAttr("disabled"),t.removeAttr("disabled"),0===s.length?o._setPreviewError(e):(-1!==z.inArray(a,s)?o._setPreviewError(e):(e.find(".kv-file-upload").hide(),o._setThumbStatus(e,"Success"),o.updateStack(a,void 0)),a++)}),o._initUploadSuccess(e)),o._showUploadError(e.error,i,"filebatchuploaderror"))},i=function(){o.unlock(),o._initSuccessThumbs(),o._clearFileInput(),o._raise("filebatchuploadcomplete",[o.filestack,o._getExtraData()])},t=function(e,t,i){var n=o._getOutData(e),a=o.ajaxOperations.uploadBatch,e=o._parseError(a,e,i);o._showUploadError(e,n,"filebatchuploaderror"),o.uploadFileCount=s-1,o.showPreview&&(o._getThumbs().each(function(){var e=z(this),t=e.attr("data-fileindex");e.removeClass("file-uploading"),void 0!==o.filestack[t]&&o._setPreviewError(e)}),o._getThumbs().removeClass("file-uploading"),o._getThumbs(" .kv-file-upload").removeAttr("disabled"),o._getThumbs(" .kv-file-delete").removeAttr("disabled"),o._setProgress(101,o.$progress,o.msgAjaxProgressError.replace("{operation}",a)))},z.each(n,function(e,t){O.isEmpty(n[e])||o.formdata.append(o.uploadFileAttr,t,o.filenames[e])}),o._ajaxSubmit(a,e,i,t))},_uploadExtraOnly:function(){var s=this,r={};s.formdata=new FormData,s._abort(r)||s._ajaxSubmit(function(e){s.lock();var t=s._getOutData(e);s._raise("filebatchpreupload",[t]),s._setProgress(50),r.data=t,r.xhr=e,s._abort(r)&&(e.abort(),s._setProgressCancelled())},function(e,t,i){i=s._getOutData(i,e);O.isEmpty(e)||O.isEmpty(e.error)?(s._raise("filebatchuploadsuccess",[i]),s._clearFileInput(),s._initUploadSuccess(e),s._setProgress(101)):s._showUploadError(e.error,i,"filebatchuploaderror")},function(){s.unlock(),s._clearFileInput(),s._raise("filebatchuploadcomplete",[s.filestack,s._getExtraData()])},function(e,t,i){var n=s._getOutData(e),a=s.ajaxOperations.uploadExtra,e=s._parseError(a,e,i);r.data=n,s._showUploadError(e,n,"filebatchuploaderror"),s._setProgress(101,s.$progress,s.msgAjaxProgressError.replace("{operation}",a))})},_deleteFileIndex:function(e){var t=this,i=e.attr("data-fileindex");"init_"===i.substring(0,5)&&(i=parseInt(i.replace("init_","")),t.initialPreview=O.spliceArray(t.initialPreview,i),t.initialPreviewConfig=O.spliceArray(t.initialPreviewConfig,i),t.initialPreviewThumbTags=O.spliceArray(t.initialPreviewThumbTags,i),t.$preview.find(O.FRAMES).each(function(){var e=z(this),t=e.attr("data-fileindex");"init_"===t.substring(0,5)&&(t=parseInt(t.replace("init_","")),i<t)&&e.attr("data-fileindex","init_"+--t)}),t.uploadAsync)&&(t.cacheInitialPreview=t.getPreview())},_initFileActions:function(){var d=this,c=d.$preview;d.showPreview&&(d._initZoomButton(),c.find(O.FRAMES+" .kv-file-remove").each(function(){var a,s,e=z(this),r=e.closest(O.FRAMES),o=r.attr("id"),l=r.attr("data-fileindex");d._handler(e,"click",function(){if(!1===d._raise("filepreremove",[o,l])||!d._validateMinCount())return!1;a=r.hasClass("file-preview-error"),O.cleanMemory(r),r.fadeOut("slow",function(){O.cleanZoomCache(c.find("#zoom-"+o)),d.updateStack(l,void 0),d._clearObjects(r),r.remove(),o&&a&&d.$errorContainer.find('li[data-file-id="'+o+'"]').fadeOut("fast",function(){z(this).remove(),d._errorsExist()||d._resetErrors()}),d._clearFileInput();var e=d.getFileStack(!0),t=d.previewCache.count(),i=e.length,n=d.showPreview&&c.find(O.FRAMES).length;0!==i||0!==t||n?(s=1<(s=t+i)?d._getMsgSelected(s):e[0]?d._getFileNames()[0]:"",d._setCaption(s)):d.reset(),d._raise("fileremoved",[o,l])})})}),d.$preview.find(O.FRAMES+" .kv-file-upload").each(function(){var i=z(this);d._handler(i,"click",function(){var e=i.closest(O.FRAMES),t=e.attr("data-fileindex");e.hasClass("file-preview-error")||d._uploadSingle(t,d.filestack,!1)})}))},_initPreviewActions:function(){function u(){var e=p.isUploadable?p.previewCache.count():p.$element.get(0).files.length;0!==h.find(t).length||e||(p.reset(),p.initialCaption="")}var p=this,h=p.$preview,n=p.deleteExtraData||{},t=O.FRAMES+" .kv-file-remove";p._initZoomButton(),h.find(t).each(function(){var s,e,r,o,t,l,d=z(this),i=d.data("url")||p.deleteUrl,c=d.data("key");O.isEmpty(i)||void 0===c||(s=d.closest(O.FRAMES),t=p.previewCache.data,o=s.data("fileindex"),o=parseInt(o.replace("init_","")),t=O.isEmpty(t.config)&&O.isEmpty(t.config[o])?null:t.config[o],"function"==typeof(l=O.isEmpty(t)||O.isEmpty(t.extra)?n:t.extra)&&(l=l()),r={id:d.attr("id"),key:c,extra:l},e=z.extend(!0,{},{url:i,type:"POST",dataType:"json",data:z.extend(!0,{},{key:c},l),beforeSend:function(e){p.ajaxAborted=!1,p._raise("filepredelete",[c,e,l]),p.ajaxAborted?e.abort():(O.addCss(s,"file-uploading"),O.addCss(d,"disabled"))},success:function(e,t,i){var n,a;O.isEmpty(e)||O.isEmpty(e.error)?(p.previewCache.init(),o=parseInt(s.data("fileindex").replace("init_","")),p.previewCache.unset(o),a=0<(n=p.previewCache.count())?p._getMsgSelected(n):"",p._deleteFileIndex(s),p._setCaption(a),p._raise("filedeleted",[c,i,l]),s.removeClass("file-uploading").addClass("file-deleted"),s.fadeOut("slow",function(){O.cleanZoomCache(h.find("#zoom-"+s.attr("id"))),p._clearObjects(s),s.remove(),u(),n||0!==p.getFileStack().length||(p._setCaption(""),p.reset())})):(r.jqXHR=i,r.response=e,p._showError(e.error,r,"filedeleteerror"),s.removeClass("file-uploading"),d.removeClass("disabled"),u())},error:function(e,t,i){var n=p.ajaxOperations.deleteThumb,n=p._parseError(n,e,i);r.jqXHR=e,r.response={},p._showError(n,r,"filedeleteerror"),s.removeClass("file-uploading"),u()}},p.ajaxDeleteSettings),p._handler(d,"click",function(){if(!p._validateMinCount())return!1;z.ajax(e)}))})},_hideFileIcon:function(){this.overwriteInitial&&this.$captionContainer.find(".kv-caption-icon").hide()},_showFileIcon:function(){this.$captionContainer.find(".kv-caption-icon").show()},_getSize:function(e){var t=parseFloat(e),i=this.fileSizeGetter;return z.isNumeric(e)&&z.isNumeric(t)?(t="function"==typeof i?i(t):0===t?"0.00 B":(e=Math.floor(Math.log(t)/Math.log(1024)),i=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],+(t/Math.pow(1024,e)).toFixed(2)+" "+i[e]),this._getLayoutTemplate("size").replace("{sizeText}",t)):""},_generatePreviewTemplate:function(r,e,o,l,d,t,i,c,n,u,p){function a(e,t,i,n){var a=i?"zoom-"+d:d,s=h._getPreviewTemplate(e),n=(c||"")+" "+n;return h.frameClass&&(n=h.frameClass+" "+n),i&&(n=n.replace(" "+O.SORT_CSS,"")),s=h._parseFilePreviewIcon(s,o),"text"===e&&(t=O.htmlEncode(t)),s.replace(/\{previewId}/g,a).replace(/\{caption}/g,m).replace(/\{frameClass}/g,n).replace(/\{type}/g,l).replace(/\{fileindex}/g,u).replace(/\{width}/g,g).replace(/\{height}/g,v).replace(/\{footer}/g,w).replace(/\{data}/g,t).replace(/\{template}/g,p||r)}var h=this,m=h.slug(o),s="",f=h.previewSettings[r]||h.defaults.previewSettings[r],g=f&&f.width?f.width:"",v=f&&f.height?f.height:"",w=n||h._renderFileFooter(m,i,O.isEmpty(g)?"auto":g,t),f=h._getPreviewIcon(o),n=f&&h.preferIconicPreview,i=f&&h.preferIconicZoomPreview;return u=u||d.slice(d.lastIndexOf("-")+1),h.fileActionSettings.showZoom&&(s=a(i?"other":r,e,!0,"kv-zoom-thumb")),s="\n"+h._getLayoutTemplate("zoomCache").replace("{zoomContent}",s),a(n?"other":r,e,!1,"kv-preview-thumb")+s},_previewDefault:function(e,t,i){var n,a,s,r,o,l=this,d=l.$preview;l.showPreview&&(n=e?e.name:"",a=e?e.type:"",s=e.size||0,r=l.slug(n),o=!0===i&&!l.isUploadable,e=O.objUrl.createObjectURL(e),l._clearDefaultPreview(),e=l._generatePreviewTemplate("other",e,n,a,t,o,s),d.append("\n"+e),l._setThumbAttr(t,r,s),!0===i)&&l.isUploadable&&l._setThumbStatus(z("#"+t),"Error")},_previewFile:function(e,t,i,n,a){var s,r,o,l,d,c,u,p;this.showPreview&&(r=(s=this)._parseFileType(t),o=t?t.name:"",l=s.slug(o),c=s.allowedPreviewTypes,p=s.allowedPreviewMimeTypes,d=s.$preview,c=c&&0<=c.indexOf(r),u=t.size||0,i="text"===r||"html"===r||"image"===r?i.target.result:a,a=p&&-1!==p.indexOf(t.type),"html"===r&&s.purifyHtml&&window.DOMPurify&&(i=window.DOMPurify.sanitize(i)),c||a?(p=s._generatePreviewTemplate(r,i,o,t.type,n,!1,u),s._clearDefaultPreview(),d.append("\n"+p),s._validateImage(n,l,t.type)):s._previewDefault(t,n),s._setThumbAttr(n,l,u),s._initSortable())},_setThumbAttr:function(e,t,i){e=z("#"+e);e.length&&(i=i&&0<i?this._getSize(i):"",e.data({caption:t,size:i}))},_setInitThumbAttr:function(){var e,t,i,n=this.previewCache.data,a=this.previewCache.count(!0);if(0!==a)for(var s=0;s<a;s++)t=n.config[s],i=this.previewInitId+"-init_"+s,e=O.ifSet("caption",t,O.ifSet("filename",t)),t=O.ifSet("size",t),this._setThumbAttr(i,e,t)},_slugDefault:function(e){return O.isEmpty(e)?"":String(e).replace(/[\-\[\]\/\{}:;#%=\(\)\*\+\?\\\^\$\|<>&"']/g,"_")},_readFiles:function(m){this.reader=new FileReader;var f,g=this,v=g.$element,w=g.$preview,y=g.reader,b=g.$previewContainer,C=g.$previewStatus,k=g.msgLoading,_=g.msgProgress,T=g.previewInitId,I=m.length,F=g.fileTypeSettings,x=g.filestack.length,E=g.allowedFileTypes,S=E?E.length:0,D=g.allowedFileExtensions,j=O.isEmpty(D)?"":D.join(", "),$=g.maxFilePreviewSize&&parseFloat(g.maxFilePreviewSize),P=w.length&&(!$||isNaN($)),A=function(e,t,i,n){var a=z.extend(!0,{},g._getOutData({},{},m),{id:i,index:n}),s={id:i,index:n,file:t,files:m};return g._previewDefault(t,i,!0),g.isUploadable&&(g.addToStack(void 0),setTimeout(function(){f(n+1)},100)),g._initFileActions(),g.removeFromPreviewOnError&&z("#"+i).remove(),g.isUploadable?g._showUploadError(e,a):g._showError(e,s)};g.loadedImages=[],g.totalImagesCount=0,z.each(m,function(e,t){var i=g.fileTypeSettings.image;i&&i(t.type)&&g.totalImagesCount++}),(f=function(t){if((I=O.isEmpty(v.attr("multiple"))?1:I)<=t)g.isUploadable&&0<g.filestack.length?g._raise("filebatchselected",[g.getFileStack()]):g._raise("filebatchselected",[m]),b.removeClass("file-thumb-loading"),C.html("");else{var e,i,n,a,s,r=T+"-"+(x+t),o=m[t],l=o.name?g.slug(o.name):"",d=(o.size||0)/1e3,c="",u=O.objUrl.createObjectURL(o),p=0,h="";if(0<S)for(e=0;e<S;e++)a=E[e],a=g.msgFileTypes[a]||a,h+=0===e?a:", "+a;if(!1===l)f(t+1);else if(0===l.length)i=g.msgInvalidFileName.replace("{name}",O.htmlEncode(o.name)),g.isError=A(i,o,r,t);else if(O.isEmpty(D)||(c=new RegExp("\\.("+D.join("|")+")$","i")),n=d.toFixed(2),0<g.maxFileSize&&d>g.maxFileSize)i=g.msgSizeTooLarge.replace("{name}",l).replace("{size}",n).replace("{maxSize}",g.maxFileSize),g.isError=A(i,o,r,t);else if(null!==g.minFileSize&&d<=O.getNum(g.minFileSize))i=g.msgSizeTooSmall.replace("{name}",l).replace("{size}",n).replace("{minSize}",g.minFileSize),g.isError=A(i,o,r,t);else{if(!O.isEmpty(E)&&O.isArray(E)){for(e=0;e<E.length;e+=1)s=E[e],p+=(s=F[s])&&"function"==typeof s&&s(o.type,o.name)?1:0;if(0===p)return i=g.msgInvalidFileType.replace("{name}",l).replace("{types}",h),void(g.isError=A(i,o,r,t))}0!==p||O.isEmpty(D)||!O.isArray(D)||O.isEmpty(c)||(n=O.compare(l,c),0!==(p+=O.isEmpty(n)?0:n.length))?g.showPreview?!P&&$<d?(g.addToStack(o),b.addClass("file-thumb-loading"),g._previewDefault(o,r),g._initFileActions(),g._updateFileDetails(I),f(t+1)):(w.length&&void 0!==FileReader?(C.html(k.replace("{index}",t+1).replace("{files}",I)),b.addClass("file-thumb-loading"),y.onerror=function(e){g._errorHandler(e,l)},y.onload=function(e){g._previewFile(t,o,e,r,u),g._initFileActions()},y.onloadend=function(){i=_.replace("{index}",t+1).replace("{files}",I).replace("{percent}",50).replace("{name}",l),setTimeout(function(){C.html(i),g._updateFileDetails(I),f(t+1)},100),g._raise("fileloaded",[o,r,t,y])},y.onprogress=function(e){e.lengthComputable&&(e=e.loaded/e.total*100,e=Math.ceil(e),i=_.replace("{index}",t+1).replace("{files}",I).replace("{percent}",e).replace("{name}",l),setTimeout(function(){C.html(i)},100))},c=F.text,n=F.image,c(o.type,l)?y.readAsText(o,g.textEncoding):n(o.type,l)?y.readAsDataURL(o):y.readAsArrayBuffer(o)):(g._previewDefault(o,r),setTimeout(function(){f(t+1),g._updateFileDetails(I)},100),g._raise("fileloaded",[o,r,t,y])),g.addToStack(o)):(g.addToStack(o),setTimeout(function(){f(t+1)},100),g._raise("fileloaded",[o,r,t,y])):(i=g.msgInvalidFileExtension.replace("{name}",l).replace("{extensions}",j),g.isError=A(i,o,r,t))}}})(0),g._updateFileDetails(I,!1)},_updateFileDetails:function(e){var t=this,i=t.$element,n=t.getFileStack(),i=O.isIE(9)&&O.findFileName(i.val())||i[0].files[0]&&i[0].files[0].name||n.length&&n[0].name||"",i=t.slug(i),n=t.isUploadable?n.length:e,a=t.previewCache.count()+n,n=1<n?t._getMsgSelected(a):i;t.isError?(t.$previewContainer.removeClass("file-thumb-loading"),t.$previewStatus.html(""),t.$captionContainer.find(".kv-caption-icon").hide()):t._showFileIcon(),t._setCaption(n,t.isError),t.$container.removeClass("file-input-new file-input-ajax-new"),1===arguments.length&&t._raise("fileselect",[e,i]),t.previewCache.count()&&t._initPreviewActions()},_setThumbStatus:function(e,t){var i,n,a,s,r;this.showPreview&&(n=(i="indicator"+t)+"Title",a="file-preview-"+t.toLowerCase(),s=e.find(".file-upload-indicator"),r=this.fileActionSettings,e.removeClass("file-preview-success file-preview-error file-preview-loading"),"Error"===t&&e.find(".kv-file-upload").attr("disabled",!0),"Success"===t&&(e.find(".file-drag-handle").remove(),s.css("margin-left",0)),s.html(r[i]),s.attr("title",r[n]),e.addClass(a))},_setProgressCancelled:function(){this._setProgress(101,this.$progress,this.msgCancelled)},_setProgress:function(e,t,i){var n=this,a=Math.min(e,100),s=n.progressUploadThreshold,r=e<=100?n.progressTemplate:n.progressCompleteTemplate,r=a<100?n.progressTemplate:i?n.progressErrorTemplate:r;t=t||n.$progress,O.isEmpty(r)||(e=s&&s<a&&e<=100?r.replace(/\{percent}/g,s).replace(/\{status}/g,n.msgUploadThreshold):(s=100<e?n.msgUploadEnd:a+"%",r.replace(/\{percent}/g,a).replace(/\{status}/g,s)),t.html(e),i&&t.find('[role="progressbar"]').html(i))},_setFileDropZoneTitle:function(){var e,t=this,i=t.$container.find(".file-drop-zone"),n=t.dropZoneTitle;t.isClickable&&(e=O.isEmpty(t.$element.attr("multiple"))?t.fileSingle:t.filePlural,n+=t.dropZoneClickTitle.replace("{files}",e)),i.find("."+t.dropZoneTitleClass).remove(),t.isUploadable&&t.showPreview&&0!==i.length&&!(0<t.getFileStack().length)&&t.dropZoneEnabled&&(0===i.find(O.FRAMES).length&&O.isEmpty(t.defaultPreviewContent)&&i.prepend('<div class="'+t.dropZoneTitleClass+'">'+n+"</div>"),t.$container.removeClass("file-input-new"),O.addCss(t.$container,"file-input-ajax-new"))},_setAsyncUploadStatus:function(e,t,i){var n=0;this._setProgress(t,z("#"+e).find(".file-thumb-progress")),this.uploadStatus[e]=t,z.each(this.uploadStatus,function(e,t){n+=t}),this._setProgress(Math.floor(n/i))},_validateMinCount:function(){var e=this,t=(e.isUploadable?e.getFileStack():e.$element.get(0).files).length;return!(e.validateInitialCount&&0<e.minFileCount&&e._getFileCount(t-1)<e.minFileCount&&(e._noFilesError({}),1))},_getFileCount:function(e){return this.validateInitialCount&&!this.overwriteInitial&&(e+=this.previewCache.count()),e},_getFileId:function(e){var t=this.generateFileId;return"function"==typeof t?t(e,event):e&&(t=e.webkitRelativePath||e.fileName||e.name||null)?e.size+"-"+t.replace(/[^0-9a-zA-Z_-]/gim,""):null},_getFileName:function(e){return e&&e.name?this.slug(e.name):void 0},_getFileIds:function(t){return this.fileids.filter(function(e){return t?void 0!==e:null!=e})},_getFileNames:function(t){return this.filenames.filter(function(e){return t?void 0!==e:null!=e})},_setPreviewError:function(e,t,i){void 0!==t&&this.updateStack(t,i),this.removeFromPreviewOnError?e.remove():this._setThumbStatus(e,"Error")},_checkDimensions:function(e,t,i,n,a,s,r){var o=this[("Small"===t?"min":"max")+"Image"+s];O.isEmpty(o)||!i.length||(i=i[0],i="Width"===s?i.naturalWidth||i.width:i.naturalHeight||i.height,"Small"===t?o<=i:i<=o)||(i=this["msgImage"+s+t].replace("{name}",a).replace("{size}",o),this._showUploadError(i,r),this._setPreviewError(n,e,null))},_validateImage:function(e,t,i){var n,a=this,s=a.$preview,r=s.find("#"+e),o=r.attr("data-fileindex"),l=r.find("img");t=t||"Untitled",l.length&&a._handler(l,"load",function(){n=r.width(),s.width()<n&&(l.css("width","100%"),r.css("width","97%")),n={ind:o,id:e},a._checkDimensions(o,"Small",l,r,t,"Width",n),a._checkDimensions(o,"Small",l,r,t,"Height",n),a.resizeImage||(a._checkDimensions(o,"Large",l,r,t,"Width",n),a._checkDimensions(o,"Large",l,r,t,"Height",n)),a._raise("fileimageloaded",[e]),a.loadedImages.push({ind:o,img:l,thumb:r,pid:e,typ:i}),a._validateAllImages()})},_validateAllImages:function(){var e,t=this,i={val:0},n=t.loadedImages.length;if(n===t.totalImagesCount&&(t._raise("fileimagesloaded"),t.resizeImage))for(e=0;e<t.loadedImages.length;e++)t._getResizedImage(t.loadedImages[e],i,n)},_getResizedImage:function(e,t,i){var n=this,a=z(e.img)[0],s=a.naturalWidth,r=a.naturalHeight,o=1,l=n.maxImageWidth||s,d=n.maxImageHeight||r,c=!(!s||!r),u=n.imageCanvas,p=n.imageCanvasContext,h=e.typ,m=e.pid,f=e.ind,g=e.thumb,v=function(e,t,i){n.isUploadable?n._showUploadError(e,t,i):n._showError(e,t,i),n._setPreviewError(g,f)};if(n.filestack[f]&&c&&!(s<=l&&r<=d)||(c&&n.filestack[f]&&n._raise("fileimageresized",[m,f]),t.val++,t.val===i&&n._raise("fileimagesresized"),c)){h=h||n.resizeDefaultImageType,e=l<s,c=d<r,o="width"===n.resizePreference?e?l/s:c?d/r:1:c?d/r:e?l/s:1,n._resetCanvas(),r*=o,u.width=s*=o,u.height=r;try{p.drawImage(a,0,0,s,r),u.toBlob(function(e){n.filestack[f]=e,n._raise("fileimageresized",[m,f]),t.val++,t.val===i&&n._raise("fileimagesresized",[void 0,void 0]),e instanceof Blob||v(n.msgImageResizeError,{id:m,index:f},"fileimageresizeerror")},h,n.resizeQuality)}catch(e){t.val++,t.val===i&&n._raise("fileimagesresized",[void 0,void 0]),c=n.msgImageResizeException.replace("{errors}",e.message),v(c,{id:m,index:f},"fileimageresizeexception")}}else v(n.msgImageResizeError,{id:m,index:f},"fileimageresizeerror")},_initBrowse:function(e){var t=this;t.showBrowse?(t.$btnFile=e.find(".btn-file"),t.$btnFile.append(t.$element)):t.$element.hide()},_initCaption:function(){var e=this.initialCaption||"";return this.overwriteInitial||O.isEmpty(e)?(this.$caption.html(""),!1):(this._setCaption(e),!0)},_setCaption:function(e,t){var i,n,a=this,s=a.getFileStack();if(a.$caption.length){if(t)i=z("<div>"+a.msgValidationError+"</div>").text(),s=(t=s.length)?1===t&&s[0]?a._getFileNames()[0]:a._getMsgSelected(t):a._getMsgSelected(a.msgNo),n='<span class="'+a.msgValidationErrorClass+'">'+a.msgValidationErrorIcon+(O.isEmpty(e)?s:e)+"</span>";else{if(O.isEmpty(e))return;i=z("<div>"+e+"</div>").text(),n=a._getLayoutTemplate("fileIcon")+i}a.$caption.html(n),a.$caption.attr("title",i),a.$captionContainer.find(".file-caption-ellipsis").attr("title",i)}},_createContainer:function(){var e=this,t=z(document.createElement("div")).attr({class:"file-input file-input-new"}).html(e._renderMain());return e.$element.before(t),e._initBrowse(t),e.theme&&t.addClass("theme-"+e.theme),t},_refreshContainer:function(){var e=this.$container;e.before(this.$element),e.html(this._renderMain()),this._initBrowse(e)},_renderMain:function(){var e=this,t=e.isUploadable&&e.dropZoneEnabled?" file-drop-zone":"file-drop-disabled",i=e.showClose?e._getLayoutTemplate("close"):"",t=e.showPreview?e._getLayoutTemplate("preview").replace(/\{class}/g,e.previewClass).replace(/\{dropClass}/g,t):"",n=e.isDisabled?e.captionClass+" file-caption-disabled":e.captionClass,n=e.captionTemplate.replace(/\{class}/g,n+" kv-fileinput-caption");return e.mainTemplate.replace(/\{class}/g,e.mainClass+(!e.showBrowse&&e.showCaption?" no-browse":"")).replace(/\{preview}/g,t).replace(/\{close}/g,i).replace(/\{caption}/g,n).replace(/\{upload}/g,e._renderButton("upload")).replace(/\{remove}/g,e._renderButton("remove")).replace(/\{cancel}/g,e._renderButton("cancel")).replace(/\{browse}/g,e._renderButton("browse"))},_renderButton:function(e){var t=this,i=t._getLayoutTemplate("btnDefault"),n=t[e+"Class"],a=t[e+"Title"],s=t[e+"Icon"],r=t[e+"Label"],o=t.isDisabled?" disabled":"",l="button";switch(e){case"remove":if(t.showRemove)break;return"";case"cancel":if(!t.showCancel)return"";n+=" hide";break;case"upload":if(!t.showUpload)return"";t.isUploadable&&!t.isDisabled?i=t._getLayoutTemplate("btnLink").replace("{href}",t.uploadUrl):l="submit";break;case"browse":if(!t.showBrowse)return"";i=t._getLayoutTemplate("btnBrowse");break;default:return""}return n+="browse"===e?" btn-file":" fileinput-"+e+" fileinput-"+e+"-button",O.isEmpty(r)||(r=' <span class="'+t.buttonLabelClass+'">'+r+"</span>"),i.replace("{type}",l).replace("{css}",n).replace("{title}",a).replace("{status}",o).replace("{icon}",s).replace("{label}",r)},_renderThumbProgress:function(){return'<div class="file-thumb-progress hide">'+this.progressTemplate.replace(/\{percent}/g,"0").replace(/\{status}/g,this.msgUploadBegin)+"</div>"},_renderFileFooter:function(e,t,i,n){var a=this,s=a.fileActionSettings,r=s.showRemove,o=s.showDrag,l=s.showUpload,d=s.showZoom,c=a._getLayoutTemplate("footer"),u=n?s.indicatorError:s.indicatorNew,n=n?s.indicatorErrorTitle:s.indicatorNewTitle;return t=a._getSize(t),s=(a.isUploadable?c.replace(/\{actions}/g,a._renderFileActions(l,r,d,o,!1,!1,!1)).replace(/\{caption}/g,e).replace(/\{size}/g,t).replace(/\{width}/g,i).replace(/\{progress}/g,a._renderThumbProgress()):c.replace(/\{actions}/g,a._renderFileActions(!1,!1,d,o,!1,!1,!1)).replace(/\{caption}/g,e).replace(/\{size}/g,t).replace(/\{width}/g,i).replace(/\{progress}/g,"")).replace(/\{indicator}/g,u).replace(/\{indicatorTitle}/g,n),s=O.replaceTags(s,a.previewThumbTags)},_renderFileActions:function(e,t,i,n,a,s,r,o){var l,d,c,u,p,h,m,f;return e||t||i||n?(s=!1===s?"":' data-url="'+s+'"',r=!1===r?"":' data-key="'+r+'"',p=u=c=d="",h=(l=this)._getLayoutTemplate("actions"),m=l.fileActionSettings,f=l.otherActionButtons.replace(/\{dataKey}/g,r),a=a?m.removeClass+" disabled":m.removeClass,t&&(d=l._getLayoutTemplate("actionDelete").replace(/\{removeClass}/g,a).replace(/\{removeIcon}/g,m.removeIcon).replace(/\{removeTitle}/g,m.removeTitle).replace(/\{dataUrl}/g,s).replace(/\{dataKey}/g,r)),e&&(c=l._getLayoutTemplate("actionUpload").replace(/\{uploadClass}/g,m.uploadClass).replace(/\{uploadIcon}/g,m.uploadIcon).replace(/\{uploadTitle}/g,m.uploadTitle)),i&&(u=l._getLayoutTemplate("actionZoom").replace(/\{zoomClass}/g,m.zoomClass).replace(/\{zoomIcon}/g,m.zoomIcon).replace(/\{zoomTitle}/g,m.zoomTitle)),n&&o&&(t="drag-handle-init "+m.dragClass,p=l._getLayoutTemplate("actionDrag").replace(/\{dragClass}/g,t).replace(/\{dragTitle}/g,m.dragTitle).replace(/\{dragIcon}/g,m.dragIcon)),h.replace(/\{delete}/g,d).replace(/\{upload}/g,c).replace(/\{zoom}/g,u).replace(/\{drag}/g,p).replace(/\{other}/g,f)):""},_browse:function(e){var t=this;t._raise("filebrowse"),e&&e.isDefaultPrevented()||(t.isError&&!t.isUploadable&&t.clear(),t.$captionContainer.focus())},_filterDuplicate:function(e,t,i){var n=this._getFileId(e);n&&i&&-1<i.indexOf(n)||(i=i||[],t.push(e),i.push(n))},_change:function(e){var i=this,t=i.$element;if(!i.isUploadable&&O.isEmpty(t.val())&&i.fileInputCleared)i.fileInputCleared=!1;else{i.fileInputCleared=!1;var n,a,s,r,o=[],l=1<arguments.length,d=i.isUploadable,c=(l?e.originalEvent.dataTransfer:t.get(0)).files,u=i.filestack.length,t=O.isEmpty(t.attr("multiple"))&&0<u,p=0,h=i._getFileIds();if(i.reader=null,i._resetUpload(),i._hideFileIcon(),i.isUploadable&&i.$container.find(".file-drop-zone ."+i.dropZoneTitleClass).remove(),l?z.each(c,function(e,t){t&&!t.type&&void 0!==t.size&&t.size%4096==0?p++:i._filterDuplicate(t,o,h)}):(c=e.target&&void 0===e.target.files?e.target.value?[{name:e.target.value.replace(/^.+\\/,"")}]:[]:e.target.files||{},z.each(c,function(e,t){i._filterDuplicate(t,o,h)})),O.isEmpty(o)||0===o.length)d||i.clear(),i._showFolderError(p),i._raise("fileselectnone");else{if(i._resetErrors(),l=o.length,e=i._getFileCount(i.isUploadable?i.getFileStack().length+l:l),0<i.maxFileCount&&e>i.maxFileCount){if(!i.autoReplace||l>i.maxFileCount)return l=i.autoReplace&&l>i.maxFileCount?l:e,l=i.msgFilesTooMany.replace("{m}",i.maxFileCount).replace("{n}",l),i.isError=(l=l,s=a=n=null,r=z.extend(!0,{},i._getOutData({},{},c),{id:a,index:s}),a={id:a,index:s,file:n,files:c},i.isUploadable?i._showUploadError(l,r):i._showError(l,a)),i.$captionContainer.find(".kv-caption-icon").hide(),i._setCaption("",!0),void i.$container.removeClass("file-input-new file-input-ajax-new");e>i.maxFileCount&&i._resetPreviewThumbs(d)}else!d||t?(i._resetPreviewThumbs(!1),t&&i.clearStack()):!d||0!==u||i.previewCache.count()&&!i.overwriteInitial||i._resetPreviewThumbs(!0);i.isPreviewable?i._readFiles(o):i._updateFileDetails(1),i._showFolderError(p)}}},_abort:function(e){var t=this;return!(!t.ajaxAborted||"object"!=typeof t.ajaxAborted||void 0===t.ajaxAborted.message||((e=z.extend(!0,{},t._getOutData(),e)).abortData=t.ajaxAborted.data||{},e.abortMessage=t.ajaxAborted.message,t.cancel(),t._setProgress(101,t.$progress,t.msgCancelled),t._showUploadError(t.ajaxAborted.message,e,"filecustomerror"),0))},_resetFileStack:function(){var a=this,s=0,r=[],o=[],l=[];a._getThumbs().each(function(){var e=z(this),t=e.attr("data-fileindex"),i=a.filestack[t],n=e.attr("id");"-1"!==t&&-1!==t&&(void 0!==i?(r[s]=i,o[s]=a._getFileName(i),l[s]=a._getFileId(i),e.attr({id:a.previewInitId+"-"+s,"data-fileindex":s}),s++):(t="uploaded-"+O.uniqId(),e.attr({id:t,"data-fileindex":"-1"}),a.$preview.find("#zoom-"+n).attr("id","zoom-"+t)))}),a.filestack=r,a.filenames=o,a.fileids=l},clearStack:function(){return this.filestack=[],this.filenames=[],this.fileids=[],this.$element},updateStack:function(e,t){var i=this;return i.filestack[e]=t,i.filenames[e]=i._getFileName(t),i.fileids[e]=t&&i._getFileId(t)||null,i.$element},addToStack:function(e){var t=this;return t.filestack.push(e),t.filenames.push(t._getFileName(e)),t.fileids.push(t._getFileId(e)),t.$element},getFileStack:function(t){return this.filestack.filter(function(e){return t?void 0!==e:null!=e})},getFilesCount:function(){var e=(this.isUploadable?this.getFileStack():this.$element.get(0).files).length;return this._getFileCount(e)},lock:function(){var e=this;return e._resetErrors(),e.disable(),e.showRemove&&O.addCss(e.$container.find(".fileinput-remove"),"hide"),e.showCancel&&e.$container.find(".fileinput-cancel").removeClass("hide"),e._raise("filelock",[e.filestack,e._getExtraData()]),e.$element},unlock:function(e){var t=this;return void 0===e&&(e=!0),t.enable(),t.showCancel&&O.addCss(t.$container.find(".fileinput-cancel"),"hide"),t.showRemove&&t.$container.find(".fileinput-remove").removeClass("hide"),e&&t._resetFileStack(),t._raise("fileunlock",[t.filestack,t._getExtraData()]),t.$element},cancel:function(){var e,i=this,t=i.ajaxRequests,n=t.length;if(0<n)for(e=0;e<n;e+=1)i.cancelling=!0,t[e].abort();return i._setProgressCancelled(),i._getThumbs().each(function(){var e=z(this),t=e.attr("data-fileindex");e.removeClass("file-uploading"),void 0!==i.filestack[t]&&(e.find(".kv-file-upload").removeClass("disabled").removeAttr("disabled"),e.find(".kv-file-remove").removeClass("disabled").removeAttr("disabled")),i.unlock()}),i.$element},clear:function(){var e,t=this;if(t._raise("fileclear"))return t.$btnUpload.removeAttr("disabled"),t._getThumbs().find("video,audio,img").each(function(){O.cleanMemory(z(this))}),t._resetUpload(),t.clearStack(),t._clearFileInput(),t._resetErrors(!0),t._hasInitialPreview()?(t._showFileIcon(),t._resetPreview(),t._initPreviewActions(),t.$container.removeClass("file-input-new")):(t._getThumbs().each(function(){t._clearObjects(z(this))}),t.isUploadable&&(t.previewCache.data={}),t.$preview.html(""),e=!t.overwriteInitial&&0<t.initialCaption.length?t.initialCaption:"",t.$caption.html(e),t.$caption.attr("title",""),O.addCss(t.$container,"file-input-new"),t._validateDefaultPreview()),0!==t.$container.find(O.FRAMES).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 e=this;if(e._raise("filereset"))return e._resetPreview(),e.$container.find(".fileinput-filename").text(""),O.addCss(e.$container,"file-input-new"),(e.$preview.find(O.FRAMES).length||e.isUploadable&&e.dropZoneEnabled)&&e.$container.removeClass("file-input-new"),e._setFileDropZoneTitle(),e.clearStack(),e.formdata={},e.$element},disable:function(){var e=this;return e.isDisabled=!0,e._raise("filedisabled"),e.$element.attr("disabled","disabled"),e.$container.find(".kv-fileinput-caption").addClass("file-caption-disabled"),e.$container.find(".btn-file, .fileinput-remove, .fileinput-upload, .file-preview-frame button").attr("disabled",!0),e._initDragDrop(),e.$element},enable:function(){var e=this;return e.isDisabled=!1,e._raise("fileenabled"),e.$element.removeAttr("disabled"),e.$container.find(".kv-fileinput-caption").removeClass("file-caption-disabled"),e.$container.find(".btn-file, .fileinput-remove, .fileinput-upload, .file-preview-frame button").removeAttr("disabled"),e._initDragDrop(),e.$element},upload:function(){var e,t,i=this,n=i.getFileStack().length,a=!z.isEmptyObject(i._getExtraData());if(i.isUploadable&&!i.isDisabled)if(0<i.minFileCount&&i._getFileCount(n)<i.minFileCount)i._noFilesError({});else if(i._resetUpload(),0!==n||a)if(i.$progress.removeClass("hide"),i.uploadCount=0,i.uploadStatus={},i.uploadLog=[],i.lock(),i._setProgress(2),0===n&&a)i._uploadExtraOnly();else{if(t=i.filestack.length,i.hasInitData=!1,!i.uploadAsync)return i._uploadBatch(),i.$element;for(n=i._getOutData(),i._raise("filebatchpreupload",[n]),i.fileBatchCompleted=!1,i.uploadCache={content:[],config:[],tags:[],append:!0},i.uploadAsyncCount=i.getFileStack().length,e=0;e<t;e++)i.uploadCache.content[e]=null,i.uploadCache.config[e]=null,i.uploadCache.tags[e]=null;for(i.$preview.find(".file-preview-initial").removeClass(O.SORT_CSS),i._initSortable(),i.cacheInitialPreview=i.getPreview(),e=0;e<t;e++)void 0!==i.filestack[e]&&i._uploadSingle(e,i.filestack,!0)}else i._showUploadError(i.msgUploadEmpty)},destroy:function(){var e=this.$form,t=this.$container,i=this.$element,n=this.namespace;return z(document).off(n),z(window).off(n),e&&e.length&&e.off(n),i.insertBefore(t).off(n).removeData(),t.off().remove(),i},refresh:function(e){var t=this.$element;return e=e?z.extend(!0,{},this.options,e):this.options,this.destroy(),t.fileinput(e),t.val()&&t.trigger("change.fileinput"),t},zoom:function(e){var t=this,i=z("#"+e),n=t.$modal;i.length?(O.initModal(n),n.html(t._getModalContent()),t._setZoomContent(i),n.modal("show"),t._initZoomButtons()):t._log('Cannot zoom to detailed preview! Invalid frame with id: "'+e+'".')},getPreview:function(){return{content:this.initialPreview,config:this.initialPreviewConfig,tags:this.initialPreviewThumbTags}}},z.fn.fileinput=function(o){if(O.hasFileAPISupport()||O.isIE(9)){var l=Array.apply(null,arguments),d=[];switch(l.shift(),this.each(function(){var e=z(this),t=e.data("fileinput"),i="object"==typeof o&&o,n=i.theme||e.data("theme"),a={},s={},r=i.language||e.data("language")||z.fn.fileinput.defaults.language||"en";t||(n&&(s=z.fn.fileinputThemes[n]||{}),"en"===r||O.isEmpty(z.fn.fileinputLocales[r])||(a=z.fn.fileinputLocales[r]||{}),n=z.extend(!0,{},z.fn.fileinput.defaults,s,z.fn.fileinputLocales.en,a,i,e.data()),t=new c(this,n),e.data("fileinput",t)),"string"==typeof o&&d.push(t[o].apply(t,l))}),d.length){case 0:return this;case 1:return d[0];default:return d}}},z.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,generateFileId:null,previewClass:"",captionClass:"",frameClass:"krajee-default",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,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"},preferIconicPreview:!1,preferIconicZoomPreview:!1,allowedPreviewTypes:void 0,allowedPreviewMimeTypes:null,allowedFileTypes:null,allowedFileExtensions:null,defaultPreviewContent:null,customLayoutTags:{},customPreviewTags:{},previewFileIcon:'<i class="glyphicon glyphicon-file"></i>',previewFileIconClass:"file-other-icon",previewFileIconSettings:{},previewFileExtSettings:{},buttonLabelClass:"hidden-xs",browseIcon:'<i class="glyphicon glyphicon-folder-open"></i> ',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",minFileSize:0,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",progressUploadThreshold:99,previewFileType:"image",elCaptionContainer:null,elCaptionText:null,elPreviewContainer:null,elPreviewImage:null,elPreviewStatus:null,elErrorContainer:null,errorCloseButton:'<span class="close kv-error-close">×</span>',slugCallback:null,dropZoneEnabled:!0,dropZoneTitleClass:"file-drop-zone-title",fileActionSettings:{},otherActionButtons:"",textEncoding:"UTF-8",ajaxSettings:{},ajaxDeleteSettings:{},showAjaxErrorDetails:!0},z.fn.fileinputLocales.en={fileSingle:"file",filePlural:"files",browseLabel:"Browse …",removeLabel:"Remove",removeTitle:"Clear selected files",cancelLabel:"Cancel",cancelTitle:"Abort ongoing upload",uploadLabel:"Upload",uploadTitle:"Upload selected files",msgNo:"No",msgNoFilesSelected:"No files selected",msgCancelled:"Cancelled",msgZoomModalHeading:"Detailed Preview",msgSizeTooSmall:'File "{name}" (<b>{size} KB</b>) is too small and must be larger than <b>{minSize} KB</b>.',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}".',msgInvalidFileName:'Invalid or unsupported characters in file name "{name}".',msgInvalidFileType:'Invalid type for file "{name}". Only "{types}" files are supported.',msgInvalidFileExtension:'Invalid extension for file "{name}". Only "{extensions}" files are supported.',msgFileTypes:{image:"image",html:"HTML",text:"text",video:"video",audio:"audio",flash:"flash",pdf:"PDF",object:"object"},msgUploadAborted:"The file upload was aborted",msgUploadThreshold:"Processing...",msgUploadBegin:"Initializing...",msgUploadEnd:"Done",msgUploadEmpty:"No valid data available for upload.",msgValidationError:"Validation Error",msgLoading:"Loading file {index} of {files} …",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>",msgAjaxError:"Something went wrong with the {operation} operation. Please try again later!",msgAjaxProgressError:"{operation} failed",ajaxOperations:{deleteThumb:"file delete",uploadThumb:"file upload",uploadBatch:"batch file upload",uploadExtra:"form data upload"},dropZoneTitle:"Drag & drop files here …",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"}},z.fn.fileinput.Constructor=c,z(document).ready(function(){var e=z("input.file[type=file]");e.length&&e.fileinput()})}),function(e,n){"use strict";var s=864e5,a=e.Zepto||e.jQuery;function i(e,t){var i,n=t||{};for(i in e)i in n||(n[i]=e[i]);return n}function t(e,t){var i;a?a(e).trigger(t):((i=n.createEvent("CustomEvent")).initCustomEvent(t,!0,!0,{}),e.dispatchEvent(i))}function r(e,t){return a?a(e).hasClass(t):e.classList.contains(t)}function o(e,t){this.dateDelta=null,this.timeDelta=null,this._defaults={startClass:"start",endClass:"end",timeClass:"time",dateClass:"date",defaultDateDelta:0,defaultTimeDelta:36e5,anchor:"start",parseTime:function(e){return a(e).timepicker("getTime")},updateTime:function(e,t){a(e).timepicker("setTime",t)},setMinTime:function(e,t){a(e).timepicker("option","minTime",t)},parseDate:function(e){return e.value&&a(e).datepicker("getDate")},updateDate:function(e,t){a(e).datepicker("update",t)}},this.container=e,this.settings=i(this._defaults,t),this.startDateInput=this.container.querySelector("."+this.settings.startClass+"."+this.settings.dateClass),this.endDateInput=this.container.querySelector("."+this.settings.endClass+"."+this.settings.dateClass),this.startTimeInput=this.container.querySelector("."+this.settings.startClass+"."+this.settings.timeClass),this.endTimeInput=this.container.querySelector("."+this.settings.endClass+"."+this.settings.timeClass),this.refresh(),this._bindChangeHandler()}o.prototype={constructor:o,option:function(e,t){if("object"==typeof e)this.settings=i(this.settings,e);else if("string"==typeof e&&void 0!==t)this.settings[e]=t;else if("string"==typeof e)return this.settings[e];this._updateEndMintime()},getTimeDiff:function(){var e=this.dateDelta+this.timeDelta;return!(e<0)||this.startDateInput&&this.endDateInput||(e+=s),e},refresh:function(){var e,t;this.startDateInput&&this.startDateInput.value&&this.endDateInput&&this.endDateInput.value&&(t=this.settings.parseDate(this.startDateInput),e=this.settings.parseDate(this.endDateInput),t)&&e&&(this.dateDelta=e.getTime()-t.getTime()),this.startTimeInput&&this.startTimeInput.value&&this.endTimeInput&&this.endTimeInput.value&&(e=this.settings.parseTime(this.startTimeInput),t=this.settings.parseTime(this.endTimeInput),e)&&t&&(this.timeDelta=t.getTime()-e.getTime(),this._updateEndMintime())},remove:function(){this._unbindChangeHandler()},_bindChangeHandler:function(){a?a(this.container).on("change.datepair",a.proxy(this.handleEvent,this)):this.container.addEventListener("change",this,!1)},_unbindChangeHandler:function(){a?a(this.container).off("change.datepair"):this.container.removeEventListener("change",this,!1)},handleEvent:function(e){this._unbindChangeHandler(),r(e.target,this.settings.dateClass)?""!=e.target.value?(this._dateChanged(e.target),this._timeChanged(e.target)):this.dateDelta=null:r(e.target,this.settings.timeClass)&&(""!=e.target.value?this._timeChanged(e.target):this.timeDelta=null),this._validateRanges(),this._updateEndMintime(),this._bindChangeHandler()},_dateChanged:function(e){var t,i,n;this.startDateInput&&this.endDateInput&&(t=this.settings.parseDate(this.startDateInput),i=this.settings.parseDate(this.endDateInput),t&&i?"start"==this.settings.anchor&&r(e,this.settings.startClass)?(n=new Date(t.getTime()+this.dateDelta),this.settings.updateDate(this.endDateInput,n)):"end"==this.settings.anchor&&r(e,this.settings.endClass)?(n=new Date(i.getTime()-this.dateDelta),this.settings.updateDate(this.startDateInput,n)):i<t?(n=r(e,this.settings.startClass)?this.endDateInput:this.startDateInput,e=this.settings.parseDate(e),this.dateDelta=0,this.settings.updateDate(n,e)):this.dateDelta=i.getTime()-t.getTime():null!==this.settings.defaultDateDelta?(t?(n=new Date(t.getTime()+this.settings.defaultDateDelta*s),this.settings.updateDate(this.endDateInput,n)):i&&(e=new Date(i.getTime()-this.settings.defaultDateDelta*s),this.settings.updateDate(this.startDateInput,e)),this.dateDelta=this.settings.defaultDateDelta*s):this.dateDelta=null)},_timeChanged:function(e){var t,i,n,a,s;this.startTimeInput&&this.endTimeInput&&(t=this.settings.parseTime(this.startTimeInput),i=this.settings.parseTime(this.endTimeInput),t&&i?"start"==this.settings.anchor&&r(e,this.settings.startClass)?(n=new Date(t.getTime()+this.timeDelta),this.settings.updateTime(this.endTimeInput,n),i=this.settings.parseTime(this.endTimeInput),this._doMidnightRollover(t,i)):"end"==this.settings.anchor&&r(e,this.settings.endClass)?(n=new Date(i.getTime()-this.timeDelta),this.settings.updateTime(this.startTimeInput,n),t=this.settings.parseTime(this.startTimeInput),this._doMidnightRollover(t,i)):(this._doMidnightRollover(t,i),this.startDateInput&&this.endDateInput&&(a=this.settings.parseDate(this.startDateInput),s=this.settings.parseDate(this.endDateInput)),+a==+s&&i<t?(n=r(e,this.settings.endClass)?this.endTimeInput:this.startTimeInput,a=r(e,this.settings.startClass)?this.endTimeInput:this.startTimeInput,s=this.settings.parseTime(n),this.timeDelta=0,this.settings.updateTime(a,s)):this.timeDelta=i.getTime()-t.getTime()):null!==this.settings.defaultTimeDelta?(t?(e=new Date(t.getTime()+this.settings.defaultTimeDelta),this.settings.updateTime(this.endTimeInput,e)):i&&(n=new Date(i.getTime()-this.settings.defaultTimeDelta),this.settings.updateTime(this.startTimeInput,n)),this.timeDelta=this.settings.defaultTimeDelta):this.timeDelta=null)},_doMidnightRollover:function(e,t){var i,n,a;this.startDateInput&&this.endDateInput&&(i=this.settings.parseDate(this.endDateInput),n=this.settings.parseDate(this.startDateInput),a=t.getTime()-e.getTime(),t=t<e?s:-1*s,null!==this.dateDelta&&this.dateDelta+this.timeDelta<=s&&this.dateDelta+a!=0&&(0<t||0!=this.dateDelta)&&(0<=a&&this.timeDelta<0||a<0&&0<=this.timeDelta)&&("start"==this.settings.anchor?(this.settings.updateDate(this.endDateInput,new Date(i.getTime()+t)),this._dateChanged(this.endDateInput)):"end"==this.settings.anchor&&(this.settings.updateDate(this.startDateInput,new Date(n.getTime()-t)),this._dateChanged(this.startDateInput))),this.timeDelta=a)},_updateEndMintime:function(){var e;"function"==typeof this.settings.setMinTime&&(e=null,"start"==this.settings.anchor&&(!this.dateDelta||this.dateDelta<s||this.timeDelta&&this.dateDelta+this.timeDelta<s)&&(e=this.settings.parseTime(this.startTimeInput)),this.settings.setMinTime(this.endTimeInput,e))},_validateRanges:function(){this.startTimeInput&&this.endTimeInput&&null===this.timeDelta||this.startDateInput&&this.endDateInput&&null===this.dateDelta?t(this.container,"rangeIncomplete"):!this.startDateInput||!this.endDateInput||0<=this.dateDelta+this.timeDelta?t(this.container,"rangeSelected"):t(this.container,"rangeError")}},e.Datepair=o}(window,document),function(a){a&&(a.fn.datepair=function(i){var n;return this.each(function(){var e=a(this),t=e.data("datepair");t||(t=new Datepair(this,"object"==typeof i&&i),e.data("datepair",t)),"remove"===i&&(n=t.remove(),e.removeData("datepair",t)),"string"==typeof i&&(n=t[i]())}),n||this},a("[data-datepair]").each(function(){var e=a(this);e.datepair(e.data())}))}(window.Zepto||window.jQuery),function(){var r,a,t,e,u,o,s,l,d=[].slice,c={}.hasOwnProperty;function i(){}s=function(){},i.prototype.addEventListener=i.prototype.on,i.prototype.on=function(e,t){return this._callbacks=this._callbacks||{},this._callbacks[e]||(this._callbacks[e]=[]),this._callbacks[e].push(t),this},i.prototype.emit=function(){var e,t,i,n=arguments[0],a=2<=arguments.length?d.call(arguments,1):[];if(this._callbacks=this._callbacks||{},e=this._callbacks[n])for(t=0,i=e.length;t<i;t++)e[t].apply(this,a);return this},i.prototype.removeListener=i.prototype.off,i.prototype.removeAllListeners=i.prototype.off,i.prototype.removeEventListener=i.prototype.off,i.prototype.off=function(e,t){var i,n,a,s;if(this._callbacks&&0!==arguments.length){if(i=this._callbacks[e])if(1===arguments.length)delete this._callbacks[e];else for(n=a=0,s=i.length;a<s;n=++a)if(i[n]===t){i.splice(n,1);break}}else this._callbacks={};return this},a=i,(r=function(){var z,O,e,t=Q,i=a;for(e in i)c.call(i,e)&&(t[e]=i[e]);function n(){this.constructor=t}function Q(e,t){if(this.element=e,this.version=Q.version,this.defaultOptions.previewTemplate=this.defaultOptions.previewTemplate.replace(/\n*/g,""),this.clickableElements=[],this.listeners=[],this.files=[],"string"==typeof this.element&&(this.element=document.querySelector(this.element)),!this.element||null==this.element.nodeType)throw new Error("Invalid dropzone element.");if(this.element.dropzone)throw new Error("Dropzone already attached.");if(Q.instances.push(this),this.element.dropzone=this,e=null!=(e=Q.optionsForElement(this.element))?e:{},this.options=z({},this.defaultOptions,e,null!=t?t:{}),this.options.forceFallback||!Q.isBrowserSupported())return this.options.fallback.call(this);if(null==this.options.url&&(this.options.url=this.element.getAttribute("action")),!this.options.url)throw new Error("No URL provided.");if(this.options.acceptedFiles&&this.options.acceptedMimeTypes)throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.");this.options.acceptedMimeTypes&&(this.options.acceptedFiles=this.options.acceptedMimeTypes,delete this.options.acceptedMimeTypes),this.options.method=this.options.method.toUpperCase(),(e=this.getExistingFallback())&&e.parentNode&&e.parentNode.removeChild(e),!1!==this.options.previewsContainer&&(this.options.previewsContainer?this.previewsContainer=Q.getElement(this.options.previewsContainer,"previewsContainer"):this.previewsContainer=this.element),this.options.clickable&&(!0===this.options.clickable?this.clickableElements=[this.element]:this.clickableElements=Q.getElements(this.options.clickable,"clickable")),this.init()}return n.prototype=i.prototype,t.prototype=new n,t.__super__=i.prototype,Q.prototype.Emitter=a,Q.prototype.events=["drop","dragstart","dragend","dragenter","dragover","dragleave","addedfile","addedfiles","removedfile","thumbnail","error","errormultiple","processing","processingmultiple","uploadprogress","totaluploadprogress","sending","sendingmultiple","success","successmultiple","canceled","canceledmultiple","complete","completemultiple","reset","maxfilesexceeded","maxfilesreached","queuecomplete"],Q.prototype.defaultOptions={url:null,method:"post",withCredentials:!1,parallelUploads:2,uploadMultiple:!1,maxFilesize:256,paramName:"file",createImageThumbnails:!0,maxThumbnailFilesize:10,thumbnailWidth:120,thumbnailHeight:120,filesizeBase:1e3,maxFiles:null,params:{},clickable:!0,ignoreHiddenFiles:!0,acceptedFiles:null,acceptedMimeTypes:null,autoProcessQueue:!0,autoQueue:!0,addRemoveLinks:!1,previewsContainer:null,hiddenInputContainer:"body",capture:null,renameFilename:null,dictDefaultMessage:"Drop files here to upload",dictFallbackMessage:"Your browser does not support drag'n'drop file uploads.",dictFallbackText:"Please use the fallback form below to upload your files like in the olden days.",dictFileTooBig:"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.",dictInvalidFileType:"You can't upload files of this type.",dictResponseError:"Server responded with {{statusCode}} code.",dictCancelUpload:"Cancel upload",dictCancelUploadConfirmation:"Are you sure you want to cancel this upload?",dictRemoveFile:"Remove file",dictRemoveFileConfirmation:null,dictMaxFilesExceeded:"You can not upload any more files.",accept:function(e,t){return t()},init:function(){return s},forceFallback:!1,fallback:function(){var e,t,i,n,a,s;for(this.element.className=this.element.className+" dz-browser-not-supported",n=0,a=(s=this.element.getElementsByTagName("div")).length;n<a;n++)e=s[n],/(^| )dz-message($| )/.test(e.className)&&((t=e).className="dz-message");return t||(t=Q.createElement('<div class="dz-message"><span></span></div>'),this.element.appendChild(t)),(i=t.getElementsByTagName("span")[0])&&(null!=i.textContent?i.textContent=this.options.dictFallbackMessage:null!=i.innerText&&(i.innerText=this.options.dictFallbackMessage)),this.element.appendChild(this.getFallbackForm())},resize:function(e){var t,i={srcX:0,srcY:0,srcWidth:e.width,srcHeight:e.height},n=e.width/e.height;return i.optWidth=this.options.thumbnailWidth,i.optHeight=this.options.thumbnailHeight,null==i.optWidth&&null==i.optHeight?(i.optWidth=i.srcWidth,i.optHeight=i.srcHeight):null==i.optWidth?i.optWidth=n*i.optHeight:null==i.optHeight&&(i.optHeight=1/n*i.optWidth),t=i.optWidth/i.optHeight,e.height<i.optHeight||e.width<i.optWidth?(i.trgHeight=i.srcHeight,i.trgWidth=i.srcWidth):t<n?(i.srcHeight=e.height,i.srcWidth=i.srcHeight*t):(i.srcWidth=e.width,i.srcHeight=i.srcWidth/t),i.srcX=(e.width-i.srcWidth)/2,i.srcY=(e.height-i.srcHeight)/2,i},drop:function(e){return this.element.classList.remove("dz-drag-hover")},dragstart:s,dragend:function(e){return this.element.classList.remove("dz-drag-hover")},dragenter:function(e){return this.element.classList.add("dz-drag-hover")},dragover:function(e){return this.element.classList.add("dz-drag-hover")},dragleave:function(e){return this.element.classList.remove("dz-drag-hover")},paste:s,reset:function(){return this.element.classList.remove("dz-started")},addedfile:function(t){var e,i,n,a,s,r,o,l,d,c,u,p,h;if(this.element===this.previewsContainer&&this.element.classList.add("dz-started"),this.previewsContainer){for(t.previewElement=Q.createElement(this.options.previewTemplate.trim()),t.previewTemplate=t.previewElement,this.previewsContainer.appendChild(t.previewElement),n=0,r=(d=t.previewElement.querySelectorAll("[data-dz-name]")).length;n<r;n++)d[n].textContent=this._renameFilename(t.name);for(a=0,o=(c=t.previewElement.querySelectorAll("[data-dz-size]")).length;a<o;a++)c[a].innerHTML=this.filesize(t.size);for(this.options.addRemoveLinks&&(t._removeLink=Q.createElement('<a class="dz-remove" href="javascript:undefined;" data-dz-remove>'+this.options.dictRemoveFile+"</a>"),t.previewElement.appendChild(t._removeLink)),h=this,e=function(e){return e.preventDefault(),e.stopPropagation(),t.status===Q.UPLOADING?Q.confirm(h.options.dictCancelUploadConfirmation,function(){return h.removeFile(t)}):h.options.dictRemoveFileConfirmation?Q.confirm(h.options.dictRemoveFileConfirmation,function(){return h.removeFile(t)}):h.removeFile(t)},p=[],s=0,l=(u=t.previewElement.querySelectorAll("[data-dz-remove]")).length;s<l;s++)i=u[s],p.push(i.addEventListener("click",e));return p}},removedfile:function(e){var t;return e.previewElement&&null!=(t=e.previewElement)&&t.parentNode.removeChild(e.previewElement),this._updateMaxFilesReachedClass()},thumbnail:function(e,t){var i,n,a,s;if(e.previewElement){for(e.previewElement.classList.remove("dz-file-preview"),n=0,a=(s=e.previewElement.querySelectorAll("[data-dz-thumbnail]")).length;n<a;n++)(i=s[n]).alt=e.name,i.src=t;return setTimeout(function(){return e.previewElement.classList.add("dz-image-preview")},1)}},error:function(e,t){var i,n,a,s,r;if(e.previewElement){for(e.previewElement.classList.add("dz-error"),"String"!=typeof t&&t.error&&(t=t.error),r=[],n=0,a=(s=e.previewElement.querySelectorAll("[data-dz-errormessage]")).length;n<a;n++)i=s[n],r.push(i.textContent=t);return r}},errormultiple:s,processing:function(e){if(e.previewElement&&(e.previewElement.classList.add("dz-processing"),e._removeLink))return e._removeLink.textContent=this.options.dictCancelUpload},processingmultiple:s,uploadprogress:function(e,t,i){var n,a,s,r,o;if(e.previewElement){for(o=[],a=0,s=(r=e.previewElement.querySelectorAll("[data-dz-uploadprogress]")).length;a<s;a++)"PROGRESS"===(n=r[a]).nodeName?o.push(n.value=t):o.push(n.style.width=t+"%");return o}},totaluploadprogress:s,sending:s,sendingmultiple:s,success:function(e){if(e.previewElement)return e.previewElement.classList.add("dz-success")},successmultiple:s,canceled:function(e){return this.emit("error",e,"Upload canceled.")},canceledmultiple:s,complete:function(e){if(e._removeLink&&(e._removeLink.textContent=this.options.dictRemoveFile),e.previewElement)return e.previewElement.classList.add("dz-complete")},completemultiple:s,maxfilesexceeded:s,maxfilesreached:s,queuecomplete:s,addedfiles:s,previewTemplate:'<div class="dz-preview dz-file-preview">\n <div class="dz-image"><img data-dz-thumbnail /></div>\n <div class="dz-details">\n <div class="dz-size"><span data-dz-size></span></div>\n <div class="dz-filename"><span data-dz-name></span></div>\n </div>\n <div class="dz-progress"><span class="dz-upload" data-dz-uploadprogress></span></div>\n <div class="dz-error-message"><span data-dz-errormessage></span></div>\n <div class="dz-success-mark">\n <svg width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">\n <title>Check</title>\n <defs></defs>\n <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">\n <path d="M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z" id="Oval-2" stroke-opacity="0.198794158" stroke="#747474" fill-opacity="0.816519475" fill="#FFFFFF" sketch:type="MSShapeGroup"></path>\n </g>\n </svg>\n </div>\n <div class="dz-error-mark">\n <svg width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">\n <title>Error</title>\n <defs></defs>\n <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">\n <g id="Check-+-Oval-2" sketch:type="MSLayerGroup" stroke="#747474" stroke-opacity="0.198794158" fill="#FFFFFF" fill-opacity="0.816519475">\n <path d="M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z" id="Oval-2" sketch:type="MSShapeGroup"></path>\n </g>\n </g>\n </svg>\n </div>\n</div>'},z=function(){for(var e,t,i,n=arguments[0],a=2<=arguments.length?d.call(arguments,1):[],s=0,r=a.length;s<r;s++)for(e in t=a[s])i=t[e],n[e]=i;return n},Q.prototype.getAcceptedFiles=function(){for(var e,t=this.files,i=[],n=0,a=t.length;n<a;n++)(e=t[n]).accepted&&i.push(e);return i},Q.prototype.getRejectedFiles=function(){for(var e,t=this.files,i=[],n=0,a=t.length;n<a;n++)(e=t[n]).accepted||i.push(e);return i},Q.prototype.getFilesWithStatus=function(e){for(var t,i=this.files,n=[],a=0,s=i.length;a<s;a++)(t=i[a]).status===e&&n.push(t);return n},Q.prototype.getQueuedFiles=function(){return this.getFilesWithStatus(Q.QUEUED)},Q.prototype.getUploadingFiles=function(){return this.getFilesWithStatus(Q.UPLOADING)},Q.prototype.getAddedFiles=function(){return this.getFilesWithStatus(Q.ADDED)},Q.prototype.getActiveFiles=function(){for(var e,t=this.files,i=[],n=0,a=t.length;n<a;n++)(e=t[n]).status!==Q.UPLOADING&&e.status!==Q.QUEUED||i.push(e);return i},Q.prototype.init=function(){var e,i,a,t,n,s,r,o,l,d,c,u,p,h,m,f,g,v,w;for("form"===this.element.tagName&&this.element.setAttribute("enctype","multipart/form-data"),this.element.classList.contains("dropzone")&&!this.element.querySelector(".dz-message")&&this.element.appendChild(Q.createElement('<div class="dz-default dz-message"><span>'+this.options.dictDefaultMessage+"</span></div>")),this.clickableElements.length&&(o=this,(a=function(){return o.hiddenFileInput&&o.hiddenFileInput.parentNode.removeChild(o.hiddenFileInput),o.hiddenFileInput=document.createElement("input"),o.hiddenFileInput.setAttribute("type","file"),(null==o.options.maxFiles||1<o.options.maxFiles)&&o.hiddenFileInput.setAttribute("multiple","multiple"),o.hiddenFileInput.className="dz-hidden-input",null!=o.options.acceptedFiles&&o.hiddenFileInput.setAttribute("accept",o.options.acceptedFiles),null!=o.options.capture&&o.hiddenFileInput.setAttribute("capture",o.options.capture),o.hiddenFileInput.style.visibility="hidden",o.hiddenFileInput.style.position="absolute",o.hiddenFileInput.style.top="0",o.hiddenFileInput.style.left="0",o.hiddenFileInput.style.height="0",o.hiddenFileInput.style.width="0",document.querySelector(o.options.hiddenInputContainer).appendChild(o.hiddenFileInput),o.hiddenFileInput.addEventListener("change",function(){var e,t,i,n=o.hiddenFileInput.files;if(n.length)for(t=0,i=n.length;t<i;t++)e=n[t],o.addFile(e);return o.emit("addedfiles",n),a()})})()),this.URL=null!=(s=window.URL)?s:window.webkitURL,t=0,n=(r=this.events).length;t<n;t++)e=r[t],this.on(e,this.options[e]);return this.on("uploadprogress",(l=this,function(){return l.updateTotalUploadProgress()})),this.on("removedfile",(d=this,function(){return d.updateTotalUploadProgress()})),this.on("canceled",(c=this,function(e){return c.emit("complete",e)})),this.on("complete",(u=this,function(e){if(0===u.getAddedFiles().length&&0===u.getUploadingFiles().length&&0===u.getQueuedFiles().length)return setTimeout(function(){return u.emit("queuecomplete")},0)})),i=function(e){return e.stopPropagation(),e.preventDefault?e.preventDefault():e.returnValue=!1},this.listeners=[{element:this.element,events:{dragstart:function(e){return v.emit("dragstart",e)},dragenter:function(e){return i(e),g.emit("dragenter",e)},dragover:function(e){var t;try{t=e.dataTransfer.effectAllowed}catch(e){}return e.dataTransfer.dropEffect="move"===t||"linkMove"===t?"move":"copy",i(e),f.emit("dragover",e)},dragleave:function(e){return m.emit("dragleave",e)},drop:function(e){return i(e),h.drop(e)},dragend:(p=h=m=f=g=v=this,function(e){return p.emit("dragend",e)})}}],this.clickableElements.forEach((w=this,function(t){return w.listeners.push({element:t,events:{click:function(e){return t===w.element&&e.target!==w.element&&!Q.elementInside(e.target,w.element.querySelector(".dz-message"))||w.hiddenFileInput.click(),!0}}})})),this.enable(),this.options.init.call(this)},Q.prototype.destroy=function(){var e;return this.disable(),this.removeAllFiles(!0),null!=(e=this.hiddenFileInput)&&e.parentNode&&(this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput),this.hiddenFileInput=null),delete this.element.dropzone,Q.instances.splice(Q.instances.indexOf(this),1)},Q.prototype.updateTotalUploadProgress=function(){var e,t,i,n,a,s=0,r=0;if(this.getActiveFiles().length){for(i=0,n=(a=this.getActiveFiles()).length;i<n;i++)s+=(e=a[i]).upload.bytesSent,r+=e.upload.total;t=100*s/r}else t=100;return this.emit("totaluploadprogress",t,r,s)},Q.prototype._getParamName=function(e){return"function"==typeof this.options.paramName?this.options.paramName(e):""+this.options.paramName+(this.options.uploadMultiple?"["+e+"]":"")},Q.prototype._renameFilename=function(e){return"function"!=typeof this.options.renameFilename?e:this.options.renameFilename(e)},Q.prototype.getFallbackForm=function(){var e,t;return(e=this.getExistingFallback())||(e='<div class="dz-fallback">',this.options.dictFallbackText&&(e+="<p>"+this.options.dictFallbackText+"</p>"),e+='<input type="file" name="'+this._getParamName(0)+'" '+(this.options.uploadMultiple?'multiple="multiple"':void 0)+' /><input type="submit" value="Upload!"></div>',e=Q.createElement(e),"FORM"!==this.element.tagName?(t=Q.createElement('<form action="'+this.options.url+'" enctype="multipart/form-data" method="'+this.options.method+'"></form>')).appendChild(e):(this.element.setAttribute("enctype","multipart/form-data"),this.element.setAttribute("method",this.options.method)),null!=t?t:e)},Q.prototype.getExistingFallback=function(){for(var e,t=function(e){for(var t,i=0,n=e.length;i<n;i++)if(t=e[i],/(^| )fallback($| )/.test(t.className))return t},i=["div","form"],n=0,a=i.length;n<a;n++)if(e=t(this.element.getElementsByTagName(i[n])))return e},Q.prototype.setupEventListeners=function(){for(var i,n,a,e=this.listeners,t=[],s=0,r=e.length;s<r;s++)i=e[s],t.push(function(){var e=i.events,t=[];for(n in e)a=e[n],t.push(i.element.addEventListener(n,a,!1));return t}());return t},Q.prototype.removeEventListeners=function(){for(var i,n,a,e=this.listeners,t=[],s=0,r=e.length;s<r;s++)i=e[s],t.push(function(){var e=i.events,t=[];for(n in e)a=e[n],t.push(i.element.removeEventListener(n,a,!1));return t}());return t},Q.prototype.disable=function(){var e,t,i,n,a;for(this.clickableElements.forEach(function(e){return e.classList.remove("dz-clickable")}),this.removeEventListeners(),a=[],t=0,i=(n=this.files).length;t<i;t++)e=n[t],a.push(this.cancelUpload(e));return a},Q.prototype.enable=function(){return this.clickableElements.forEach(function(e){return e.classList.add("dz-clickable")}),this.setupEventListeners()},Q.prototype.filesize=function(e){var t,i,n,a,s,r=0,o="b";if(0<e){for(t=a=0,s=(n=["TB","GB","MB","KB","b"]).length;a<s;t=++a)if(i=n[t],Math.pow(this.options.filesizeBase,4-t)/10<=e){r=e/Math.pow(this.options.filesizeBase,4-t),o=i;break}r=Math.round(10*r)/10}return"<strong>"+r+"</strong> "+o},Q.prototype._updateMaxFilesReachedClass=function(){return null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles?(this.getAcceptedFiles().length===this.options.maxFiles&&this.emit("maxfilesreached",this.files),this.element.classList.add("dz-max-files-reached")):this.element.classList.remove("dz-max-files-reached")},Q.prototype.drop=function(e){var t;e.dataTransfer&&(this.emit("drop",e),t=e.dataTransfer.files,this.emit("addedfiles",t),t.length)&&((e=e.dataTransfer.items)&&e.length&&null!=e[0].webkitGetAsEntry?this._addFilesFromItems(e):this.handleFiles(t))},Q.prototype.paste=function(e){var t;if(null!=(null!=e&&null!=(t=e.clipboardData)?t.items:void 0))return this.emit("paste",e),(t=e.clipboardData.items).length?this._addFilesFromItems(t):void 0},Q.prototype.handleFiles=function(e){for(var t,i=[],n=0,a=e.length;n<a;n++)t=e[n],i.push(this.addFile(t));return i},Q.prototype._addFilesFromItems=function(e){for(var t,i,n=[],a=0,s=e.length;a<s;a++)null!=(i=e[a]).webkitGetAsEntry&&(t=i.webkitGetAsEntry())?t.isFile?n.push(this.addFile(i.getAsFile())):t.isDirectory?n.push(this._addFilesFromDirectory(t,t.name)):n.push(void 0):null!=i.getAsFile&&(null==i.kind||"file"===i.kind)?n.push(this.addFile(i.getAsFile())):n.push(void 0);return n},Q.prototype._addFilesFromDirectory=function(e,a){var s,r,t=e.createReader(),i=function(e){return"undefined"!=typeof console&&null!==console&&"function"==typeof console.log?console.log(e):void 0};return r=this,(s=function(){return t.readEntries(function(e){var t,i,n;if(0<e.length){for(i=0,n=e.length;i<n;i++)(t=e[i]).isFile?t.file(function(e){if(!r.options.ignoreHiddenFiles||"."!==e.name.substring(0,1))return e.fullPath=a+"/"+e.name,r.addFile(e)}):t.isDirectory&&r._addFilesFromDirectory(t,a+"/"+t.name);s()}return null},i)})()},Q.prototype.accept=function(e,t){return e.size>1024*this.options.maxFilesize*1024?t(this.options.dictFileTooBig.replace("{{filesize}}",Math.round(e.size/1024/10.24)/100).replace("{{maxFilesize}}",this.options.maxFilesize)):Q.isValidFile(e,this.options.acceptedFiles)?null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles?(t(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}",this.options.maxFiles)),this.emit("maxfilesexceeded",e)):this.options.accept.call(this,e,t):t(this.options.dictInvalidFileType)},Q.prototype.addFile=function(t){return t.upload={progress:0,total:t.size,bytesSent:0},this.files.push(t),t.status=Q.ADDED,this.emit("addedfile",t),this._enqueueThumbnail(t),this.accept(t,(i=this,function(e){return e?(t.accepted=!1,i._errorProcessing([t],e)):(t.accepted=!0,i.options.autoQueue&&i.enqueueFile(t)),i._updateMaxFilesReachedClass()}));var i},Q.prototype.enqueueFiles=function(e){for(var t,i=0,n=e.length;i<n;i++)t=e[i],this.enqueueFile(t);return null},Q.prototype.enqueueFile=function(e){if(e.status!==Q.ADDED||!0!==e.accepted)throw new Error("This file can't be queued because it has already been processed or was rejected.");if(e.status=Q.QUEUED,this.options.autoProcessQueue)return setTimeout((t=this,function(){return t.processQueue()}),0);var t},Q.prototype._thumbnailQueue=[],Q.prototype._processingThumbnail=!1,Q.prototype._enqueueThumbnail=function(e){if(this.options.createImageThumbnails&&e.type.match(/image.*/)&&e.size<=1024*this.options.maxThumbnailFilesize*1024)return this._thumbnailQueue.push(e),setTimeout((t=this,function(){return t._processThumbnailQueue()}),0);var t},Q.prototype._processThumbnailQueue=function(){var e;if(!this._processingThumbnail&&0!==this._thumbnailQueue.length)return this._processingThumbnail=!0,this.createThumbnail(this._thumbnailQueue.shift(),(e=this,function(){return e._processingThumbnail=!1,e._processThumbnailQueue()}))},Q.prototype.removeFile=function(e){if(e.status===Q.UPLOADING&&this.cancelUpload(e),this.files=l(this.files,e),this.emit("removedfile",e),0===this.files.length)return this.emit("reset")},Q.prototype.removeAllFiles=function(e){var t,i,n,a;for(null==e&&(e=!1),i=0,n=(a=this.files.slice()).length;i<n;i++)(t=a[i]).status===Q.UPLOADING&&!e||this.removeFile(t);return null},Q.prototype.createThumbnail=function(e,t){var i,n=new FileReader;return n.onload=(i=this,function(){if("image/svg+xml"!==e.type)return i.createThumbnailFromUrl(e,n.result,t);i.emit("thumbnail",e,n.result),null!=t&&t()}),n.readAsDataURL(e)},Q.prototype.createThumbnailFromUrl=function(n,e,a,t){var s,r=document.createElement("img");return t&&(r.crossOrigin=t),r.onload=(s=this,function(){var e,t,i;if(n.width=r.width,n.height=r.height,null==(t=s.options.resize.call(s,n)).trgWidth&&(t.trgWidth=t.optWidth),null==t.trgHeight&&(t.trgHeight=t.optHeight),i=(e=document.createElement("canvas")).getContext("2d"),e.width=t.trgWidth,e.height=t.trgHeight,o(i,r,null!=(i=t.srcX)?i:0,null!=(i=t.srcY)?i:0,t.srcWidth,t.srcHeight,null!=(i=t.trgX)?i:0,null!=(i=t.trgY)?i:0,t.trgWidth,t.trgHeight),i=e.toDataURL("image/png"),s.emit("thumbnail",n,i),null!=a)return a()}),null!=a&&(r.onerror=a),r.src=e},Q.prototype.processQueue=function(){var e,t=this.options.parallelUploads,i=this.getUploadingFiles().length,n=i;if(!(t<=i)&&0<(e=this.getQueuedFiles()).length){if(this.options.uploadMultiple)return this.processFiles(e.slice(0,t-i));for(;n<t;){if(!e.length)return;this.processFile(e.shift()),n++}}},Q.prototype.processFile=function(e){return this.processFiles([e])},Q.prototype.processFiles=function(e){for(var t,i=0,n=e.length;i<n;i++)(t=e[i]).processing=!0,t.status=Q.UPLOADING,this.emit("processing",t);return this.options.uploadMultiple&&this.emit("processingmultiple",e),this.uploadFiles(e)},Q.prototype._getFilesWithXhr=function(a){var s;return function(){for(var e=this.files,t=[],i=0,n=e.length;i<n;i++)(s=e[i]).xhr===a&&t.push(s);return t}.call(this)},Q.prototype.cancelUpload=function(e){var t,i,n,a,s,r,o;if(e.status===Q.UPLOADING){for(n=0,s=(i=this._getFilesWithXhr(e.xhr)).length;n<s;n++)(t=i[n]).status=Q.CANCELED;for(e.xhr.abort(),a=0,r=i.length;a<r;a++)t=i[a],this.emit("canceled",t);this.options.uploadMultiple&&this.emit("canceledmultiple",i)}else(o=e.status)!==Q.ADDED&&o!==Q.QUEUED||(e.status=Q.CANCELED,this.emit("canceled",e),this.options.uploadMultiple&&this.emit("canceledmultiple",[e]));if(this.options.autoProcessQueue)return this.processQueue()},O=function(){var e=arguments[0],t=2<=arguments.length?d.call(arguments,1):[];return"function"==typeof e?e.apply(this,t):e},Q.prototype.uploadFile=function(e){return this.uploadFiles([e])},Q.prototype.uploadFiles=function(c){for(var u,e,i,t,n,a,s,r,o,l,d,p,h,m,f,g,v,w,y,b,C,k,_,T,I,F,x,E,S,D,j,$=new XMLHttpRequest,P=0,A=c.length;P<A;P++)(u=c[P]).xhr=$;for(t in _=O(this.options.method,c),m=O(this.options.url,c),$.open(_,m,!0),$.withCredentials=!!this.options.withCredentials,p=null,i=function(){for(var e=[],t=0,i=c.length;t<i;t++)u=c[t],e.push(S._errorProcessing(c,p||S.options.dictResponseError.replace("{{statusCode}}",$.status),$));return e},D=S=this,h=function(e){var t,i,n,a,s,r,o,l,d;if(null!=e)for(i=100*e.loaded/e.total,n=0,r=c.length;n<r;n++)(u=c[n]).upload={progress:i,total:e.total,bytesSent:e.loaded};else{for(t=!0,i=100,a=0,o=c.length;a<o;a++)100===(u=c[a]).upload.progress&&u.upload.bytesSent===u.upload.total||(t=!1),u.upload.progress=i,u.upload.bytesSent=u.upload.total;if(t)return}for(d=[],s=0,l=c.length;s<l;s++)u=c[s],d.push(D.emit("uploadprogress",u,i,u.upload.bytesSent));return d},$.onload=(j=this,function(t){var e;if(c[0].status!==Q.CANCELED&&4===$.readyState){if(p=$.responseText,$.getResponseHeader("content-type")&&~$.getResponseHeader("content-type").indexOf("application/json"))try{p=JSON.parse(p)}catch(e){t=e,p="Invalid JSON response from server."}return h(),200<=(e=$.status)&&e<300?j._finished(c,p,t):i()}}),$.onerror=function(){if(c[0].status!==Q.CANCELED)return i()},(null!=(_=$.upload)?_:$).onprogress=h,a={Accept:"application/json","Cache-Control":"no-cache","X-Requested-With":"XMLHttpRequest"},this.options.headers&&z(a,this.options.headers),a)(n=a[t])&&$.setRequestHeader(t,n);if(e=new FormData,this.options.params)for(l in T=this.options.params)f=T[l],e.append(l,f);for(g=0,y=c.length;g<y;g++)u=c[g],this.emit("sending",u,$,e);if(this.options.uploadMultiple&&this.emit("sendingmultiple",c,$,e),"FORM"===this.element.tagName)for(v=0,b=(I=this.element.querySelectorAll("input, textarea, select, button")).length;v<b;v++)if(o=(r=I[v]).getAttribute("name"),x=r.getAttribute("type"),"SELECT"===r.tagName&&r.hasAttribute("multiple"))for(w=0,C=(F=r.options).length;w<C;w++)(d=F[w]).selected&&e.append(o,d.value);else(!x||"checkbox"!==(x=x.toLowerCase())&&"radio"!==x||r.checked)&&e.append(o,r.value);for(s=k=0,E=c.length-1;0<=E?k<=E:E<=k;s=0<=E?++k:--k)e.append(this._getParamName(s),c[s],this._renameFilename(c[s].name));return this.submitRequest($,e,c)},Q.prototype.submitRequest=function(e,t,i){return e.send(t)},Q.prototype._finished=function(e,t,i){for(var n,a=0,s=e.length;a<s;a++)(n=e[a]).status=Q.SUCCESS,this.emit("success",n,t,i),this.emit("complete",n);if(this.options.uploadMultiple&&(this.emit("successmultiple",e,t,i),this.emit("completemultiple",e)),this.options.autoProcessQueue)return this.processQueue()},Q.prototype._errorProcessing=function(e,t,i){for(var n,a=0,s=e.length;a<s;a++)(n=e[a]).status=Q.ERROR,this.emit("error",n,t,i),this.emit("complete",n);if(this.options.uploadMultiple&&(this.emit("errormultiple",e,t,i),this.emit("completemultiple",e)),this.options.autoProcessQueue)return this.processQueue()},Q}()).version="4.3.0",r.options={},r.optionsForElement=function(e){if(e.getAttribute("id"))return r.options[t(e.getAttribute("id"))]},r.instances=[],r.forElement=function(e){if(null==(null!=(e="string"==typeof e?document.querySelector(e):e)?e.dropzone:void 0))throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.");return e.dropzone},r.autoDiscover=!0,r.discover=function(){var e,t,s,i,n,a;for(document.querySelectorAll?s=document.querySelectorAll(".dropzone"):(s=[],(e=function(e){for(var t,i=[],n=0,a=e.length;n<a;n++)t=e[n],/(^| )dropzone($| )/.test(t.className)?i.push(s.push(t)):i.push(void 0);return i})(document.getElementsByTagName("div")),e(document.getElementsByTagName("form"))),a=[],i=0,n=s.length;i<n;i++)t=s[i],!1!==r.optionsForElement(t)?a.push(new r(t)):a.push(void 0);return a},r.blacklistedBrowsers=[/opera.*Macintosh.*version\/12/i],r.isBrowserSupported=function(){var e,t,i,n=!0;if(window.File&&window.FileReader&&window.FileList&&window.Blob&&window.FormData&&document.querySelector)if("classList"in document.createElement("a"))for(e=0,t=(i=r.blacklistedBrowsers).length;e<t;e++)i[e].test(navigator.userAgent)&&(n=!1);else n=!1;else n=!1;return n},l=function(e,t){for(var i,n=[],a=0,s=e.length;a<s;a++)(i=e[a])!==t&&n.push(i);return n},t=function(e){return e.replace(/[\-_](\w)/g,function(e){return e.charAt(1).toUpperCase()})},r.createElement=function(e){var t=document.createElement("div");return t.innerHTML=e,t.childNodes[0]},r.elementInside=function(e,t){if(e===t)return!0;for(;e=e.parentNode;)if(e===t)return!0;return!1},r.getElement=function(e,t){var i;if("string"==typeof e?i=document.querySelector(e):null!=e.nodeType&&(i=e),null==i)throw new Error("Invalid `"+t+"` option provided. Please provide a CSS selector or a plain HTML element.");return i},r.getElements=function(e,t){var i,n,a,s,r,o,l;if(e instanceof Array){n=[];try{for(a=0,r=e.length;a<r;a++)i=e[a],n.push(this.getElement(i,t))}catch(e){n=null}}else if("string"==typeof e)for(n=[],s=0,o=(l=document.querySelectorAll(e)).length;s<o;s++)i=l[s],n.push(i);else null!=e.nodeType&&(n=[e]);if(null!=n&&n.length)return n;throw new Error("Invalid `"+t+"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.")},r.confirm=function(e,t,i){return window.confirm(e)?t():null!=i?i():void 0},r.isValidFile=function(e,t){var i,n,a,s,r;if(!t)return!0;for(t=t.split(","),i=(n=e.type).replace(/\/.*$/,""),s=0,r=t.length;s<r;s++)if("."===(a=(a=t[s]).trim()).charAt(0)){if(-1!==e.name.toLowerCase().indexOf(a.toLowerCase(),e.name.length-a.length))return!0}else if(/\/\*$/.test(a)){if(i===a.replace(/\/.*$/,""))return!0}else if(n===a)return!0;return!1},"undefined"!=typeof jQuery&&null!==jQuery&&(jQuery.fn.dropzone=function(e){return this.each(function(){return new r(this,e)})}),"undefined"!=typeof module&&null!==module?module.exports=r:window.Dropzone=r,r.ADDED="added",r.QUEUED="queued",r.ACCEPTED=r.QUEUED,r.UPLOADING="uploading",r.PROCESSING=r.UPLOADING,r.CANCELED="canceled",r.ERROR="error",r.SUCCESS="success",u=function(e){e.naturalWidth;var t,i,n,a,s=e.naturalHeight,r=document.createElement("canvas");for(r.width=1,r.height=s,(r=r.getContext("2d")).drawImage(e,0,0),t=r.getImageData(0,0,1,s).data,a=0,n=i=s;a<n;)0===t[4*(n-1)+3]?i=n:a=n,n=i+a>>1;return 0==(e=n/s)?1:e},o=function(e,t,i,n,a,s,r,o,l,d){var c=u(t);return e.drawImage(t,i,n,a,s,r,o,l,d/c)},e=function(t,i){var n=!1,e=!0,a=t.document,s=a.documentElement,r=a.addEventListener?"addEventListener":"attachEvent",o=a.addEventListener?"removeEventListener":"detachEvent",l=a.addEventListener?"":"on",d=function(e){if("readystatechange"!==e.type||"complete"===a.readyState)return("load"===e.type?t:a)[o](l+e.type,d,!1),!n&&(n=!0)?i.call(t,e.type||e):void 0},c=function(){try{s.doScroll("left")}catch(e){return void setTimeout(c,50)}return d("poll")};if("complete"!==a.readyState){if(a.createEventObject&&s.doScroll){try{e=!t.frameElement}catch(e){}e&&c()}return a[r](l+"DOMContentLoaded",d,!1),a[r](l+"readystatechange",d,!1),t[r](l+"load",d,!1)}},r._autoDiscoverFunction=function(){if(r.autoDiscover)return r.discover()},e(window,r._autoDiscoverFunction)}.call(this),function(e){"object"==typeof exports&&exports&&"object"==typeof module&&module&&module.exports===exports?e(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(w){var y=86400,b={am:"am",pm:"pm",AM:"AM",PM:"PM",decimal:".",mins:"mins",hr:"hr",hrs:"hrs"},C={init:function(s){return this.each(function(){var e,t=w(this),i=[];for(e in w.fn.timepicker.defaults)t.data(e)&&(i[e]=t.data(e));var n=w.extend({},w.fn.timepicker.defaults,i,s);if(n.lang&&(b=w.extend(b,n.lang)),n=r(n),t.data("timepicker-settings",n),t.addClass("ui-timepicker-input"),n.useSelect)o(t);else{if(t.prop("autocomplete","off"),n.showOn)for(var a in n.showOn)t.on(n.showOn[a]+".timepicker",C.show);t.on("change.timepicker",c),t.on("keydown.timepicker",h),t.on("keyup.timepicker",m),n.disableTextInput&&t.on("keydown.timepicker",p),c.call(t.get(0))}})},show:function(e){var t=w(this),i=t.data("timepicker-settings");if(e&&e.preventDefault(),i.useSelect)t.data("timepicker-list").focus();else{T(t)&&t.blur();var n,a,e=t.data("timepicker-list");if(!t.prop("readonly"))if(e&&0!==e.length&&"function"!=typeof i.durationTime||(o(t),e=t.data("timepicker-list")),!s(e))return t.data("ui-timepicker-value",t.val()),I(t,e),C.hide(),e.show(),n={},i.orientation.match(/r/)?n.left=t.offset().left+t.outerWidth()-e.outerWidth()+parseInt(e.css("marginLeft").replace("px",""),10):n.left=t.offset().left+parseInt(e.css("marginLeft").replace("px",""),10),"t"==(i.orientation.match(/t/)||!i.orientation.match(/b/)&&t.offset().top+t.outerHeight(!0)+e.outerHeight()>w(window).height()+w(window).scrollTop()?"t":"b")?(e.addClass("ui-timepicker-positioned-top"),n.top=t.offset().top-e.outerHeight()+parseInt(e.css("marginTop").replace("px",""),10)):(e.removeClass("ui-timepicker-positioned-top"),n.top=t.offset().top+t.outerHeight()+parseInt(e.css("marginTop").replace("px",""),10)),e.offset(n),(n=e.find(".ui-timepicker-selected")).length||(null!==(a=S(u(t)))?n=d(t,e,a):i.scrollDefault&&(n=d(t,e,i.scrollDefault()))),n&&n.length?(a=e.scrollTop()+n.position().top-n.outerHeight(),e.scrollTop(a)):e.scrollTop(0),i.stopScrollPropagation&&w(document).on("wheel.ui-timepicker",".ui-timepicker-wrapper",function(e){e.preventDefault();var t=w(this).scrollTop();w(this).scrollTop(t+e.originalEvent.deltaY)}),w(document).on("touchstart.ui-timepicker mousedown.ui-timepicker",l),w(window).on("resize.ui-timepicker",l),i.closeOnWindowScroll&&w(document).on("scroll.ui-timepicker",l),t.trigger("showTimepicker"),this}},hide:function(e){var t=w(this),i=t.data("timepicker-settings");return i&&i.useSelect&&t.blur(),w(".ui-timepicker-wrapper").each(function(){var e,t,i=w(this);s(i)&&((t=(e=i.data("timepicker-input")).data("timepicker-settings"))&&t.selectOnBlur&&x(e),i.hide(),e.trigger("hideTimepicker"))}),this},option:function(n,a){return"string"==typeof n&&void 0===a?w(this).data("timepicker-settings")[n]:this.each(function(){var e=w(this),t=e.data("timepicker-settings"),i=e.data("timepicker-list");"object"==typeof n?t=w.extend(t,n):"string"==typeof n&&(t[n]=a),t=r(t),e.data("timepicker-settings",t),i&&(i.remove(),e.data("timepicker-list",!1)),t.useSelect&&o(e)})},getSecondsFromMidnight:function(){return S(u(this))},getTime:function(e){var t=u(this);if(!t)return null;t=S(t);if(null===t)return null;e=e||new Date;e=new Date(e);return e.setHours(t/3600),e.setMinutes(t%3600/60),e.setSeconds(t%60),e.setMilliseconds(0),e},isVisible:function(){var e=this.data("timepicker-list");return!(!e||!s(e))},setTime:function(e){var t,i=this,n=i.data("timepicker-settings");return t=(n.forceRoundTime?_:E)(S(e),n),F(i,t=e&&null===t&&n.noneOption?e:t),i.data("timepicker-list")&&I(i,i.data("timepicker-list")),this},remove:function(){var e,t=this;if(t.hasClass("ui-timepicker-input"))return e=t.data("timepicker-settings"),t.removeAttr("autocomplete","off"),t.removeClass("ui-timepicker-input"),t.removeData("timepicker-settings"),t.off(".timepicker"),t.data("timepicker-list")&&t.data("timepicker-list").remove(),e.useSelect&&t.show(),t.removeData("timepicker-list"),this}};function s(e){e=e[0];return 0<e.offsetWidth&&0<e.offsetHeight}function r(e){var t;if(e.minTime&&(e.minTime=S(e.minTime)),e.maxTime&&(e.maxTime=S(e.maxTime)),e.durationTime&&"function"!=typeof e.durationTime&&(e.durationTime=S(e.durationTime)),"now"==e.scrollDefault?e.scrollDefault=function(){return e.roundingFunction(S(new Date),e)}:e.scrollDefault&&"function"!=typeof e.scrollDefault?(t=e.scrollDefault,e.scrollDefault=function(){return e.roundingFunction(S(t),e)}):e.minTime&&(e.scrollDefault=function(){return e.roundingFunction(e.minTime,e)}),"string"===w.type(e.timeFormat)&&e.timeFormat.match(/[gh]/)&&(e._twelveHourTime=!0),!1===e.showOnFocus&&-1!=e.showOn.indexOf("focus")&&e.showOn.splice(e.showOn.indexOf("focus"),1),0<e.disableTimeRanges.length){for(var i in e.disableTimeRanges)e.disableTimeRanges[i]=[S(e.disableTimeRanges[i][0]),S(e.disableTimeRanges[i][1])];e.disableTimeRanges=e.disableTimeRanges.sort(function(e,t){return e[0]-t[0]});for(i=e.disableTimeRanges.length-1;0<i;i--)e.disableTimeRanges[i][0]<=e.disableTimeRanges[i-1][1]&&(e.disableTimeRanges[i-1]=[Math.min(e.disableTimeRanges[i][0],e.disableTimeRanges[i-1][0]),Math.max(e.disableTimeRanges[i][1],e.disableTimeRanges[i-1][1])],e.disableTimeRanges.splice(i,1))}return e}function o(t){var i,e=t.data("timepicker-settings"),n=t.data("timepicker-list");if(n&&n.length&&(n.remove(),t.data("timepicker-list",!1)),e.useSelect?i=n=w("<select />",{class:"ui-timepicker-select"}):(n=w("<ul />",{class:"ui-timepicker-list"}),(i=w("<div />",{class:"ui-timepicker-wrapper",tabindex:-1})).css({display:"none",position:"absolute"}).append(n)),e.noneOption)if(!0===e.noneOption&&(e.noneOption=e.useSelect?"Time...":"None"),w.isArray(e.noneOption))for(var a in e.noneOption)parseInt(a,10)==a&&(s=k(e.noneOption[a],e.useSelect),n.append(s));else{var s=k(e.noneOption,e.useSelect);n.append(s)}e.className&&i.addClass(e.className),null===e.minTime&&null===e.durationTime||!e.showDuration||("function"!=typeof e.step&&e.step,i.addClass("ui-timepicker-with-duration"),i.addClass("ui-timepicker-step-"+e.step));var r=e.minTime,o=("function"==typeof e.durationTime?r=S(e.durationTime()):null!==e.durationTime&&(r=e.durationTime),null!==e.minTime?e.minTime:0),l=null!==e.maxTime?e.maxTime:o+y-1,d=(l<o&&(l+=y),l===y-1&&"string"===w.type(e.timeFormat)&&e.show2400&&(l=y),e.disableTimeRanges),c=0,u=d.length,p=e.step;"function"!=typeof p&&(p=function(){return e.step});for(var a=o,h=0;a<=l;a+=60*p(++h)){var m,f,g=a,v=E(g,e);(e.useSelect?m=w("<option />",{value:v}):((m=w("<li />")).addClass(g%86400<43200?"ui-timepicker-am":"ui-timepicker-pm"),m.data("time",g<=86400?g:g%86400),m)).text(v),null===e.minTime&&null===e.durationTime||!e.showDuration||(v=function(e,t){e=Math.abs(e);var i,e=Math.round(e/60),n=[];e<60?n=[e,b.mins]:(i=Math.floor(e/60),e=e%60,30==t&&30==e&&(i+=b.decimal+5),n.push(i),n.push(1==i?b.hr:b.hrs),30!=t&&e&&(n.push(e),n.push(b.mins)));return n.join(" ")}(a-r,e.step),e.useSelect?m.text(m.text()+" ("+v+")"):((f=w("<span />",{class:"ui-timepicker-duration"})).text(" ("+v+")"),m.append(f))),c<u&&(g>=d[c][1]&&(c+=1),d[c])&&g>=d[c][0]&&g<d[c][1]&&(e.useSelect?m.prop("disabled",!0):m.addClass("ui-timepicker-disabled")),n.append(m)}i.data("timepicker-input",t),t.data("timepicker-list",i),e.useSelect?(t.val()&&n.val(_(S(t.val()),e)),n.on("focus",function(){w(this).data("timepicker-input").trigger("showTimepicker")}),n.on("blur",function(){w(this).data("timepicker-input").trigger("hideTimepicker")}),n.on("change",function(){F(t,w(this).val(),"select")}),F(t,n.val(),"initial"),t.hide().after(n)):("string"==typeof(o=e.appendTo)?o=w(o):"function"==typeof o&&(o=o(t)),o.append(i),I(t,n),n.on("mousedown touchstart","li",function(e){t.off("focus.timepicker"),t.on("focus.timepicker-ie-hack",function(){t.off("focus.timepicker-ie-hack"),t.on("focus.timepicker",C.show)}),T(t)||t[0].focus(),n.find("li").removeClass("ui-timepicker-selected"),w(this).addClass("ui-timepicker-selected"),x(t)&&(t.trigger("hideTimepicker"),n.on("mouseup.timepicker touchend.timepicker","li",function(e){n.off("mouseup.timepicker touchend.timepicker"),i.hide()}))}))}function k(e,t){var i,n,a;return"object"==typeof e?(i=e.label,n=e.className,a=e.value):"string"==typeof e?i=e:w.error("Invalid noneOption value"),t?w("<option />",{value:a,class:n,text:i}):w("<li />",{class:n,text:i}).data("time",String(a))}function _(e,t){if(null!==(e=t.roundingFunction(e,t)))return E(e,t)}function l(e){e=w(e.target);0===e.closest(".ui-timepicker-input").length&&0===e.closest(".ui-timepicker-wrapper").length&&(C.hide(),w(document).unbind(".ui-timepicker"),w(window).unbind(".ui-timepicker"))}function T(e){e=e.data("timepicker-settings");return(window.navigator.msMaxTouchPoints||"ontouchstart"in document)&&e.disableTouchKeyboard}function d(e,t,i){var n;return!(!i&&0!==i)&&(e=e.data("timepicker-settings"),n=!1,i=e.roundingFunction(i,e),t.find("li").each(function(e,t){t=w(t);return"number"==typeof t.data("time")&&t.data("time")==i?(n=t,!1):void 0}),n)}function I(e,t){t.find("li").removeClass("ui-timepicker-selected");var i=S(u(e),e.data("timepicker-settings"));null!==i&&(e=d(e,t,i))&&(((i=e.offset().top-t.offset().top)+e.outerHeight()>t.outerHeight()||i<0)&&t.scrollTop(t.scrollTop()+e.position().top-e.outerHeight()),e.addClass("ui-timepicker-selected"))}function c(e,t){var i,n;""!==this.value&&"timepicker"!=t&&(!(t=w(this)).is(":focus")||e&&"change"==e.type)&&(e=t.data("timepicker-settings"),null===(i=S(this.value,e))?t.trigger("timeFormatError"):(n=!1,null!==e.minTime&&i<e.minTime&&null!==e.maxTime&&i>e.maxTime&&(n=!0),w.each(e.disableTimeRanges,function(){if(i>=this[0]&&i<this[1])return!(n=!0)}),e=E(i=e.forceRoundTime?e.roundingFunction(i,e):i,e),n?F(t,e,"error")&&t.trigger("timeRangeError"):F(t,e)))}function u(e){return e.is("input")?e.val():e.data("ui-timepicker-value")}function F(e,t,i){var n;if(e.is("input")&&(e.val(t),(n=e.data("timepicker-settings")).useSelect)&&"select"!=i&&"initial"!=i&&e.data("timepicker-list").val(_(S(t),n)),e.data("ui-timepicker-value")!=t)return e.data("ui-timepicker-value",t),"select"==i?e.trigger("selectTime").trigger("changeTime").trigger("change","timepicker"):"error"!=i&&e.trigger("changeTime"),1;e.trigger("selectTime")}function p(e){switch(e.keyCode){case 13:case 9:return;default:e.preventDefault()}}function h(e){var t=w(this),i=t.data("timepicker-list");if(!i||!s(i)){if(40!=e.keyCode)return!0;C.show.call(t.get(0)),i=t.data("timepicker-list"),T(t)||t.focus()}switch(e.keyCode){case 13:return x(t)&&C.hide.apply(this),e.preventDefault(),!1;case 38:var n=i.find(".ui-timepicker-selected");return n.length?n.is(":first-child")||(n.removeClass("ui-timepicker-selected"),n.prev().addClass("ui-timepicker-selected"),n.prev().position().top<n.outerHeight()&&i.scrollTop(i.scrollTop()-n.outerHeight())):(i.find("li").each(function(e,t){if(0<w(t).position().top)return n=w(t),!1}),n.addClass("ui-timepicker-selected")),!1;case 40:return 0===(n=i.find(".ui-timepicker-selected")).length?(i.find("li").each(function(e,t){if(0<w(t).position().top)return n=w(t),!1}),n.addClass("ui-timepicker-selected")):n.is(":last-child")||(n.removeClass("ui-timepicker-selected"),n.next().addClass("ui-timepicker-selected"),n.next().position().top+2*n.outerHeight()>i.outerHeight()&&i.scrollTop(i.scrollTop()+n.outerHeight())),!1;case 27:i.find("li").removeClass("ui-timepicker-selected"),C.hide();break;case 9:C.hide();break;default:return!0}}function m(e){var t=w(this),i=t.data("timepicker-list"),n=t.data("timepicker-settings");if(!i||!s(i)||n.disableTextInput)return!0;switch(e.keyCode){case 96:case 97:case 98:case 99:case 100:case 101:case 102:case 103:case 104:case 105:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 65:case 77:case 80:case 186:case 8:case 46:n.typeaheadHighlight?I(t,i):i.hide()}}function x(e){var t=e.data("timepicker-settings"),i=null,n=e.data("timepicker-list").find(".ui-timepicker-selected");return!n.hasClass("ui-timepicker-disabled")&&(null!==(i=n.length?n.data("time"):i)&&F(e,i="string"!=typeof i?E(i,t):i,"select"),1)}function E(e,t){if("number"!=typeof e)return null;var i=parseInt(e%60),n=parseInt(e/60%60),a=parseInt(e/3600%24),s=new Date(1970,0,2,a,n,i,0);if(isNaN(s.getTime()))return null;if("function"===w.type(t.timeFormat))return t.timeFormat(s);for(var r,o,l="",d=0;d<t.timeFormat.length;d++)switch(o=t.timeFormat.charAt(d)){case"a":l+=11<s.getHours()?b.pm:b.am;break;case"A":l+=11<s.getHours()?b.PM:b.AM;break;case"g":l+=0===(r=s.getHours()%12)?"12":r;break;case"G":r=s.getHours(),l+=r=e===y?t.show2400?24:0:r;break;case"h":l+=0===(r=0!==(r=s.getHours()%12)&&r<10?"0"+r:r)?"12":r;break;case"H":r=s.getHours(),l+=9<(r=e===y?t.show2400?24:0:r)?r:"0"+r;break;case"i":l+=9<(n=s.getMinutes())?n:"0"+n;break;case"s":l+=9<(i=s.getSeconds())?i:"0"+i;break;case"\\":d++,l+=t.timeFormat.charAt(d);break;default:l+=o}return l}function S(e,t){if(""===e||null===e)return null;if("object"==typeof e)return 3600*e.getHours()+60*e.getMinutes()+e.getSeconds();if("string"!=typeof e)return e;"a"!=(e=e.toLowerCase().replace(/[\s\.]/g,"")).slice(-1)&&"p"!=e.slice(-1)||(e+="m");var i,n,a,s="("+b.am.replace(".","")+"|"+b.pm.replace(".","")+"|"+b.AM.replace(".","")+"|"+b.PM.replace(".","")+")?",s=new RegExp("^"+s+"([0-9]?[0-9])\\W?([0-5][0-9])?\\W?([0-5][0-9])?"+s+"$"),e=e.match(s);return e?(s=parseInt(+e[2],10),i=e[1]||e[5],(a=s=24<s?s%24:s)<=12&&i&&(n=i==b.pm||i==b.PM,a=12==s?n?12:0:s+(n?12:0)),n=3600*a+60*(+e[3]||0)+(+e[4]||0),s<12&&!i&&t&&t._twelveHourTime&&t.scrollDefault&&(a=n-t.scrollDefault())<0&&y/-2<=a?(n+y/2)%y:n):null}w.fn.timepicker=function(e){return this.length?C[e]?this.hasClass("ui-timepicker-input")?C[e].apply(this,Array.prototype.slice.call(arguments,1)):this:"object"!=typeof e&&e?void w.error("Method "+e+" does not exist on jQuery.timepicker"):C.init.apply(this,arguments):this},w.fn.timepicker.defaults={appendTo:"body",className:null,closeOnWindowScroll:!1,disableTextInput:!1,disableTimeRanges:[],disableTouchKeyboard:!1,durationTime:null,forceRoundTime:!1,maxTime:null,minTime:null,noneOption:!1,orientation:"l",roundingFunction:function(e,t){var i;return null===e?null:"number"!=typeof t.step||((i=e%(60*t.step))>=30*t.step?e+=60*t.step-i:e-=i,e==y&&t.show2400)?e:e%y},scrollDefault:null,selectOnBlur:!1,show2400:!1,showDuration:!1,showOn:["click","focus"],showOnFocus:!0,step:30,stopScrollPropagation:!1,timeFormat:"g:ia",typeaheadHighlight:!0,useSelect:!1}}),$(document).ready(function(){var e=document.location.toString(),t=(e.match("#")&&($('.nav-tabs a[href="#'+e.split("#")[1]+'"]').tab("show"),window.scrollTo(0,0)),$(".nav-tabs a").on("shown.bs.tab",function(e){history.pushState?history.pushState(null,null,e.target.hash):window.location.hash=e.target.hash}),$(".ajaxfrm, .modalajaxfrm").submit(function(e){e.preventDefault();var t=$(this),e=t.serialize(),i=t.data("action"),n=t.data("requestvars");t.find(".btn").attr("disabled","disabled"),WHMCS.http.jqClient.post("addonmodules.php?module=project_management",e+"&"+n+"&ajax=1&action="+i,function(e){0==e.status?t.find(".error-feedback").html(e.error).hide().removeClass("hidden").fadeIn():(window.ProjectManagerHandlers[i](e),t.hasClass("modalajaxfrm")&&t.find(".modal").modal("hide")),t.find(".btn").removeAttr("disabled")},"json")}),$(".ajaxclick").click(function(e){e.preventDefault();$(this).serialize();var t=$(this).data("action"),e=$(this).data("requestvars");WHMCS.http.jqClient.post("addonmodules.php?module=project_management",e+"&ajax=1&action="+t,function(e){0==e.status?jQuery.growl.error({title:lang.error,message:e.error}):window.ProjectManagerHandlers[t](e)},"json")}),$(".delete-task-template").on("click",function(e){e.preventDefault();var t=$(this);swal({title:lang.deleteTaskTemplate,text:lang.deleteTaskTemplateConfirm,type:"warning",dangerMode:!0,showCancelButton:!0,confirmButtonColor:"#DD6B55",confirmButtonText:lang.yes,cancelButtonText:lang.no},function(e){e&&WHMCS.http.jqClient.jsonPost({url:moduleLink+"&ajax=1&action=deleteTaskTemplate",data:{token:csrfToken,template:t.data("template-id")},success:function(e){e.success&&(jQuery.growl.notice({title:e.successMsgTitle,message:e.successMsg}),t.closest("tr").hide("fast",function(){$(this).remove(),$(".task-template-row").length||$("#noTaskTemplates").hide().removeClass("hidden").show("fast")}))},error:function(e){swal({type:"error",dangerMode:!0,title:lang.error,text:e.error})}})})}),jQuery(".selectize-select-pm")),i=0;0<t.length&&jQuery(t).selectize({valueField:jQuery(t).attr("data-value-field"),labelField:"name",searchField:jQuery(t).attr("data-search-field").split("|"),allowEmptyOption:!0,create:!1,maxItems:1,render:{item:function(e,t){return'<div><span class="name">'+("number"==typeof e.id||"p"!=e.id.substring(0,1)?lang.taskTemplate+": ":"")+t(e.name)+"</span></div>"},option:function(e,t){return'<div><span class="name">'+t(e.name)+"</span>"+("number"!=typeof e.id&&"p"==e.id.substring(0,1)?'<span class="project">'+t(lang.projectNum)+t(e.id.substring(1))+"</span>":"")+"</div>"}},load:function(e,t){if(!e.length)return t();jQuery.ajax({url:window.location.pathname+window.location.search,type:"POST",dataType:"json",data:{ajax:1,token:jQuery("#csrfToken").val(),project:jQuery("#projectId").val(),action:"taskSearch",search:e},error:function(){t()},success:function(e){t(e.options)}})},onFocus:function(){i=this.getValue(),this.clear()},onBlur:function(){""==this.getValue()&&this.setValue(i)},onChange:function(e){e.length&&ProjectManager.call(jQuery(t).attr("data-pm-action"),"selected="+e)}})});var newProjectTicket,ProjectManager={call:function(t,e){WHMCS.http.jqClient.post("addonmodules.php?module=project_management",e+"&projectid="+$("#projectId").val()+"&ajax=1&action="+t+"&token="+$("#csrfToken").val(),function(e){0==e.status?e.error:window.ProjectManagerHandlers[t](e)},"json")},confirm:function(e,t){jQuery("#modalConfirmMsg").html(lang[e]),$("#frmModalConfirm").data("action",e).data("requestvars",t),$("#modalConfirm").modal("show").find(".btn-success").focus()}};function decodeHtml(e){return $("<div>").html(e).text()}function getClientSearchPostUrl(){return WHMCS.adminUtils.getAdminRouteUrl("/search/client")}function appendFile(e,t){var i=jQuery("#projectId").val();jQuery("#fileList").append('<div class="file" id="file-'+e+'"> <div class="pull-right"> <a id="fileView'+e+'" type="button" class="btn btn-default file-view" href="addonmodules.php?module=project_management&action=dl&projectid='+i+"&i="+e+"&msg="+t.messageId+(t.browserViewable?'&view=inline" target="_blank"':'"')+(t.isImage?' data-lightbox="project-image-'+i+'"':"")+'> <i class="fas fa-search"></i> '+lang.view+' </a> <a id="fileDownload'+e+'" href="addonmodules.php?module=project_management&action=dl&projectid='+i+"&i="+e+"&msg="+t.messageId+'" class="btn btn-default"> '+lang.download+' </a> <button type="button" class="btn btn-danger" onclick="ProjectManager.confirm(\'deletefile\', \'num='+e+"')\"> "+lang.delete+' </button> </div> <span class="title">'+t.filename+'</span><span class="extension">'+t.extension+'</span> <span class="info">'+lang.by+" <strong>"+t.admin+"</strong> x "+lang.justNow+" X "+t.filesize+"</span></div>")}function appendTicket(e){jQuery("#noTickets").hide(),jQuery("#tickets").find(".tickets").append('<div class="ticket" id="ticket-'+e.id+'"><div class="pull-right"><button type="button" class="btn btn-default view-ticket" data-ticket-id="'+e.id+'"><i class="fas fa-search"></i> '+lang.view+'</button> <button type="button" class="btn btn-danger unlink-ticket" data-ticket-tid="'+e.tid+'">'+lang.unlink+'</button></div><span class="ticketnum">#'+e.tid+'</span><span class="subject"> '+e.title+' <span class="label" style="background-color: '+e.statusColour+"; color: "+e.statusTextColour+';">'+e.status+'</span></span><span class="info">'+lang.ticketUser+":"+e.userDetails+"<br>"+lang.department+": "+e.departmentName+"<br>"+lang.lastReplyBy+" <strong>"+e.lastReplyUser+"</strong>"+(e.isAdminReply?" ("+lang.staffMember+") - ":" - ")+e.lastreply+"</span></div>")}function appendInvoice(e){jQuery("#noInvoices").hide(),jQuery("#invoices").append('<tr id="invoice-'+e.id+'" class="invoice"><td class="invoice-num">'+lang.invoiceNum+(e.invoiceNumber||e.id)+'</td><td class="invoice-data">'+e.dateCreated+' </td><td class="invoice-data">'+e.dateDue+' </td><td class="invoice-data">'+e.total+'</td><td class="invoice-data">'+e.balance+'</td><td><span class="label '+e.status.toLowerCase()+'">'+e.status+'</span></td><td class="text-right"><button type="button" class="btn btn-default view-invoice" data-invoice-id="'+e.id+'"><i class="fas fa-search font-size-normal"></i> '+lang.view+'</button> <button type="button" class="btn btn-danger unlink-invoice" data-invoice-id="'+e.id+'"><i class="fas fa-unlink font-size-normal"></i> '+lang.unlink+" </button></td></tr>")}$(document).ready(function(){$("#predefinedFilters a").click(function(e){e.preventDefault(),$("#predefinedFilters a").removeClass("active"),$(this).addClass("active"),$("#inputPredefinedFilter").val($(this).data("filter"))})}),$(document).ready(function(){$("#inputWatch").bootstrapSwitch({size:"small",onColor:"success",labelText:lang.watching}).on("switchChange.bootstrapSwitch",function(e,t){t?ProjectManager.call("watch",""):ProjectManager.call("unwatch","")}),$(document).on("click",".task-status-indicator",function(){var e=$(this).parent("td").parent("tr").attr("id");ProjectManager.call("taskstatustoggle","taskid="+e.substr(5))}),$(document).on("click",".task-edit",function(){var e=$(this).parent("div").parent("td").parent("tr").attr("id");ProjectManager.call("gettaskinfo","taskid="+e.substr(5)),$("#modalTaskEdit").modal("show")}),$(document).on("click",".task-delete",function(){var e=$(this).parent("div").parent("td").parent("tr").attr("id");ProjectManager.confirm("deletetask","taskid="+e.substr(5))}),$(document).on("click",".task-delete-button",function(){var e=$("#inputTaskId").val();$("#modalTaskEdit").modal("hide"),ProjectManager.confirm("deletetask","taskid="+e)}),$(document).on("click",".timer-edit",function(){var e=$(this).parent("td").parent("tr").attr("id");ProjectManager.call("gettimerinfo","timerid="+e.substr(6)),$("#modalEditTimer").modal("show")}),$(document).on("click",".timer-delete",function(){var e=$(this).data("timer-id");ProjectManager.confirm("deleteTimer","timerId="+e)}),$(document).on("click",".ticket-result",function(e){e.preventDefault();e=$(this).attr("data-ticket-tid");ProjectManager.call("addticket","ticketmask="+e)}),$(document).on("click",".invoice-result",function(e){e.preventDefault();e=$(this).attr("data-invoice-id");ProjectManager.call("addInvoice","invoice="+e)}),$(document).on("click",".unlink-ticket",function(){ProjectManager.call("unlinkTicket","ticketmask="+$(this).data("ticket-tid"))}),$(document).on("click",".view-ticket",function(){var e=window.open();e.opener=null,e.location="supporttickets.php?action=view&id="+$(this).data("ticket-id")}),$(document).on("click",".unlink-invoice",function(){ProjectManager.call("unlinkInvoice","invoice="+$(this).data("invoice-id"))}),$(document).on("click",".view-invoice",function(){var e=window.open();e.opener=null,e.location="invoices.php?action=edit&id="+$(this).data("invoice-id")}),$("#btnStartTimer").click(function(){$(this).prop("disabled",!0),$(this).find("i").toggleClass("fa-clock fa-spinner fa-spin"),ProjectManager.call("starttimer","")}),$("#btnEndTimer").click(function(){$(this).prop("disabled",!0),$(this).find("i").toggleClass("fa-clock fa-spinner fa-spin"),ProjectManager.call("endtimer","timerid="+$(this).data("timerid"))}),"undefined"!=typeof Sortable&&$("#adminList").length&&Sortable.create(adminList,{group:{name:"adminSort",pull:"clone",put:!1},sort:!1,ghostClass:"ghost"}),jQuery('span[id^="assigned-admin-task-"]').each(function(e,t){Sortable.create(t,{group:{name:"admin"+e,pull:!1,put:["adminSort"]},sort:!1,ghostClass:"ghost",onAdd:function(e){jQuery(e.target).html(e.item),ProjectManager.call("assigntask","taskid="+jQuery(e.target).data("id")+"&admin="+jQuery(e.item).data("id"))}})}),"undefined"!=typeof Sortable&&jQuery("#tableTasksBody").length&&Sortable.create(tableTasksBody,{group:"tasks",dataIdAttr:"data-task-id",draggable:"tr.task-line-item",store:{get:function(e){return[]},set:function(e){for(var t="",i=e.toArray(),n=0;n<i.length;n++)t+="&task["+n+"]="+i[n];ProjectManager.call("tasksort",t.substr(1))}}}),"undefined"!=typeof Sortable&&$("#dueDatePicker").length&&Sortable.create(dueDatePicker,{group:{name:"dueDateSelect",pull:"clone",put:!1},sort:!1,ghostClass:"ghost",handle:".handle",onEnd:function(){initDateRangePicker()}}),jQuery('span[id^="task-due-date-"]').each(function(e,t){Sortable.create(t,{group:{name:"due-date-"+e,pull:!1,put:["dueDateSelect"]},sort:!1,ghostClass:"ghost",onAdd:function(e){jQuery(e.target).html('<span class="label label-assigned-user">'+lang.updating+"...</span>"),ProjectManager.call("taskduedate","taskid="+jQuery(e.target).data("id")+"&duedate="+jQuery(e.item).find("input").val())}})}),jQuery(".icheck-button").each(function(){jQuery(this).iCheck({checkboxClass:"icheckbox_flat-blue",radioClass:"iradio_flat-blue"})});var e=jQuery("#toggleCompleteHide"),i=(e.on("ifChecked",function(e){jQuery(".task-line-item-completed").each(function(){jQuery(this).children().toggle("highlight")})}),e.on("ifUnchecked",function(e){jQuery(".task-line-item-completed").each(function(){jQuery(this).children().toggle("highlight")})}),Dropzone.options.myProjectUploads={maxFilesize:maximumFileSize,addRemoveLinks:!0,init:function(){this.on("sending",function(e,t,i){i.append("filesize",e.size)}),this.on("success",function(e,t){"1"!=t.status?jQuery.growl.error({title:lang.error,message:t.error}):(jQuery("#fileCount").html(t.fileCount),t.isImage,t.browserViewable,appendFile(t.key,t),this.removeFile(e),jQuery.growl.notice({title:lang.success,message:lang.fileUploadSuccess}))}),this.on("error",function(e,t,i){jQuery.growl.error({title:lang.error,message:t})})}},0);function n(e,t,i){i=i||lang.saving;var n=[],a=0,s=0;if(e&&(n=e.match(/[^\s]+/g),s=e.split(/\\r\\n|\\r|\\n/).length),n)for(var r=0;r<n.length;r++)19968<=n[r].charCodeAt(0)?a+=n[r].length:a+=1;return'<div class="small-font">'+lang.lines+": "+s+" "+lang.words+": "+a+(t?' <span class="markdown-save">'+i+"</span>":"")+"</div>"}function a(){0<=i&&(0==i&&jQuery("span.markdown-save").html("saved"),i--,setTimeout(a,1e3))}function s(e,t){var i=jQuery("#addMessage"),n=i.serialize(),a=i.data("action");void 0!==t&&t.response.newFiles.length&&jQuery.each(t.response.newFiles,function(e,t){n+="&fileId[]="+t}),WHMCS.http.jqClient.post("addonmodules.php?module=project_management",n+"&&ajax=1&action="+a,function(e){0===e.status?i.find(".error-feedback").html(e.error).hide().removeClass("hidden").fadeIn():window.ProjectManagerHandlers[a](e),i.find(".btn").removeAttr("disabled")},"json")}0<jQuery("#newTicketMessage").length&&(newProjectTicket=jQuery("#newTicketMessage").markdown({footer:'<div id="newTicketMessage-footer" class="markdown-editor-status"></div>',autofocus:!1,savable:!1,resize:"vertical",iconlibrary:"glyph",onShow:function(e){var t="",i=!1;"undefined"!=typeof Storage&&(i=!0,t=localStorage.getItem("project-"+jQuery("#projectId").val()+"-new-ticket"))&&void 0!==t&&e.setContent(t),jQuery("#newTicketMessage-footer").html(n(t,i,lang.saved))},onChange:function(e){var e=e.getContent(),t=!1;"undefined"!=typeof Storage&&(i=3,t=!0,localStorage.setItem("project-"+jQuery("#projectId").val()+"-new-ticket",e),a()),jQuery("#newTicketMessage-footer").html(n(e,t))},onPreview:function(e){var t,e=e.getContent();return jQuery.ajax({url:window.location.pathname+window.location.search,async:!1,data:{token:jQuery("#csrfToken").val(),action:"parseMarkdown",content:e,ajax:1,projectId:jQuery("#projectId").val()},dataType:"json",success:function(e){t=e}}),t.body||""},additionalButtons:[[{name:"groupCustom",data:[{name:"cmdHelp",title:lang.help,hotkey:"Ctrl+F1",btnClass:"btn open-modal",href:"supporttickets.php?action=markdown",icon:{glyph:"fas fa-question-circle",fa:"fas fa-question-circle","fa-3":"icon-question-sign"},callback:function(e){e.$editor.removeClass("md-fullscreen-mode")},additionalAttr:[{name:"data-modal-title",value:lang.markdownGuide},{name:"data-modal-size",value:"modal-lg"}]}]}]]})),jQuery("#associatedTicketSearch").on("keydown",function(e){13==e.keyCode&&(e.preventDefault(),jQuery(this).val().length<3||(jQuery("#associatedTicketResults").find(".ticket").hide().remove(),jQuery("#resultInfo").fadeIn("fast"),ProjectManager.call("searchTickets","search="+jQuery(this).val())))}),jQuery("#modalAssociateInvoice").on("show.bs.modal",function(){jQuery("#associatedInvoiceResults").find(".invoice").hide().remove(),jQuery("#invoiceResultInfo").fadeIn("fast"),ProjectManager.call("searchInvoices","search=0")}),jQuery("#associatedInvoiceSearch").on("keydown",function(e){13==e.keyCode&&(e.preventDefault(),jQuery(this).val().length<1||(jQuery("#associatedInvoiceResults").find(".invoice").hide().remove(),jQuery("#invoiceResultInfo").fadeIn("fast"),ProjectManager.call("searchInvoices","search="+jQuery(this).val())))}),jQuery("#btnMainUploadFile").on("click",function(){jQuery("#myProjectUploads").click()}),jQuery("#addMessage").on("submit",function(e){e.preventDefault();var e=jQuery("#addMessageFiles"),t=jQuery("#inputAddMessage"),i=jQuery(this);if(i.find(".btn").attr("disabled","disabled"),!t.val())return jQuery(this).find(".error-feedback").html(lang.messageRequired).hide().removeClass("hidden").fadeIn().end(),i.find(".btn").removeAttr("disabled"),!1;e.val()?(e.off("filebatchuploaderror"),e.off("filebatchuploadsuccess"),e.on("filebatchuploaderror",function(e,t,i){t.form.find(".error-feedback").html(i).hide().removeClass("hidden").fadeIn(),t.form.find(".btn").removeAttr("disabled")}),e.on("filebatchuploadsuccess",s),e.fileinput("upload")):s()}),jQuery("#btnInvoiceSelected").on("click",function(){var e=jQuery("table.timers").find('input:checked[name="timerId[]"]');if(0===e.length)return jQuery.growl.error({title:lang.error,message:lang.selectTimers}),!1;jQuery(this).prop("disabled",!0).find("i").toggleClass("fas fa-spinner fa-spin");var t="",a=(e.each(function(){t+="timerId[]="+jQuery(this).val()+"&"}),jQuery("#timersToInvoice")),i=jQuery("#modalInvoiceItems");a.html(""),WHMCS.http.jqClient.post("addonmodules.php?module=project_management",t+"ajax=1&action=prepareInvoiceTimers&projectid="+jQuery("#iIProjectId").val()+"&token="+jQuery("#csrfToken").val()+"&rate="+jQuery("#defaultRate").val(),function(n){0===n.status?i.find(".error-feedback").html(n.error).hide().removeClass("hidden").fadeIn():(i.find(".error-feedback").html("").hide(),jQuery.each(n.times,function(e,t){var i=jQuery("#timersToInvoiceSample").clone();i.find(".description").attr("name","description["+e+"]").val(t.description).end().find(".hours").attr("name","hours["+e+"]").attr("id","invoiceItemsHours"+e).val((t.seconds/3600).toFixed(2)).end().find(".displayHours").attr("name","displayHours["+e+"]").attr("data-key",e).attr("id","invoiceItemsDisplayHours"+e).val(t.hours).end().find(".itemRate").attr("name","rate["+e+"]").attr("data-key",e).attr("id","invoiceItemsRate"+e).val(t.rate).end().find(".invoiceAmount").attr("name","amount["+e+"]").attr("data-key",e).attr("id","invoiceItemsAmount"+e).val(t.amount).end().find("span.currency").html(n.currency.prefix).end().find("span.currency-suffix").html(n.currency.suffix).end(),a.append(i.children("div"))})),jQuery("#formInvoiceItems").data("requestvars",t),i.modal("show").find(".btn-success").focus()},"json")}),jQuery("#modalInvoiceItems").on("hidden.bs.modal",function(){jQuery("#btnInvoiceSelected").prop("disabled",!1).find("i").toggleClass("fas fa-spinner fa-spin")}),jQuery("#modalSaveProject").on("show.bs.modal",function(){jQuery(this).find('input[name="title"]').focus()}),jQuery("#modalTaskEdit,#modalEditTimer").on("hidden.bs.modal",function(){jQuery(this).find(".modal-body").find("div.loading,div.body-content").toggleClass("hidden")}),jQuery(document).on("keyup",".displayHours",function(){var e=jQuery(this).val().split(":"),e=Number(e[0])+Number(e[1]/60)+Number(e[2]/3600),t=jQuery(this).data("key"),i=jQuery("#invoiceItemsHours"+t),e=(i.val(e),i.val()*jQuery("#invoiceItemsRate"+t).val());jQuery("#invoiceItemsAmount"+t).val(e.toFixed(2))}).on("keyup",".itemRate",function(){var e=jQuery(this).data("key"),t=jQuery("#invoiceItemsHours"+e).val(),i=jQuery(this).val();jQuery("#invoiceItemsAmount"+e).val(parseFloat(t*i).toFixed(2))}).on("click",".message-file",function(e){e.preventDefault();e=jQuery(this).data("key");document.getElementById("fileView"+e).click()}),0<jQuery("#tableLog").length&&(jQuery("#tableLog").DataTable({dom:'<"listtable"fit>pl',info:!1,filter:!0,responsive:!0,oLanguage:{sEmptyTable:lang.noRecordsFound,sInfo:lang.tableShowingXOfY,sInfoEmpty:lang.tableShowingEmpty,sInfoFiltered:lang.tableFiltered,sInfoPostFix:"",sInfoThousands:",",sLengthMenu:lang.tableMenuLength,sLoadingRecords:lang.tableLoading,sProcessing:lang.tableProcessing,sSearch:"",sZeroRecords:lang.noRecordsFound,oPaginate:{sFirst:lang.tableFirst,sLast:lang.tableLast,sNext:lang.tableNext,sPrevious:lang.tablePrevious}},pageLength:10,order:[[0,"desc"]],lengthMenu:[[10,25,50,-1],[10,25,50,lang.all]],aoColumnDefs:[{bSortable:!1,aTargets:[1,2]}],columns:[{width:"15%"},{width:"65%"},null],stateSave:!0}),jQuery(".dataTables_filter input").attr("placeholder",lang.enterSearch)),jQuery("#addMessageFiles").fileinput({maxFileSize:1024*maximumFileSize,showUpload:!1,allowedPreviewTypes:["image","html","text","pdf"],showCaption:!0,initialCaption:lang.multipleFiles,overwriteInitial:!1,uploadUrl:"addonmodules.php?module=project_management&action=uploadFileForMessage&ajax=1&projectid="+jQuery("#projectId").val()+"&token="+jQuery("#csrfToken").val(),uploadAsync:!1,dropZoneEnabled:!1}),jQuery("#btnAddComment").on("click",function(){jQuery("#tabMessages").find("a").click(),jQuery("#inputAddMessage").focus()}),jQuery("#modalImportTasks").on("hidden.bs.modal",function(e){var t=jQuery("#importTaskResults");t.find(".ticket").remove(),t.find('[name="reference"]').remove(),t.find("#tasksResultInfo").removeClass("hidden").show(),jQuery("#btnImportTasks").addClass("disabled").prop("disabled",!0)}),jQuery("#addTimerEndDate").on("apply.daterangepicker",function(e,t){var i=jQuery("#addTimerStartDate"),n=parseInt(i.data("daterangepicker").startDate.format("X")),i=i.data("daterangepicker").startDate.format(adminJsVars.dateTimeRangeFormat);parseInt(t.startDate.format("X"))<n&&(jQuery(this).data("daterangepicker").setStartDate(i),jQuery(this).val(i))}),jQuery("#editTimerEndDate").on("apply.daterangepicker",function(e,t){var i=jQuery("#editTimerStartDate"),n=parseInt(i.data("daterangepicker").startDate.format("X")),i=i.data("daterangepicker").startDate.format(adminJsVars.dateTimeRangeFormat);parseInt(t.startDate.format("X"))<n&&(jQuery(this).data("daterangepicker").setStartDate(i),jQuery(this).val(i))})});var ProjectManagerHandlers={addmessage:function(e){var t=e.newMessage[0],i="",n=(jQuery("#projectId").val(),e.deletePermission),a="";t.attachment&&jQuery.each(t.attachment,function(e,t){i=i+'<a href="#" class="message-file" data-key="'+e+'">'+t.displayFilename+"</a>",appendFile(e,t)}),n&&(a='<div class="pull-right"><input type="button" value="Delete" class="btn btn-danger btn-xs" onclick="ProjectManager.confirm(\'deletemsg\', \'msgid='+t.id+"')\"></div>"),jQuery(".messages").prepend('<div class="message hidden" id="message-'+t.id+'"><div class="user-gravatar"><img src="'+t.gravatarUrl+'"></div><div class="number">'+t.number+'.</div><div class="content"><span class="user">'+t.name+'</span><span class="date">'+t.date+"</span>"+a+'<span class="msg">'+t.message+"</span>"+i+"</div></div>"),jQuery("#message-"+t.id).hide().removeClass("hidden").slideDown(),jQuery("#addMessage").find(".fileinput-remove").click(),jQuery("#inputAddMessage").val("").focus(),jQuery("#tabMessages").find("span").html(e.messageCount),jQuery("#fileCount").html(e.fileCount)},addtask:function(e){var t=e.newTask[0],i='<span id="assigned-admin-task-'+t.id+'" class="assigned-admin" data-id="'+t.adminId+'">'+t.assigned+"</span>",n='<span id="task-due-date-'+t.id+'" data-id="'+t.id+'" class="task-due-date"> '+t.duedate+" </span>",a=e.editPermission?'<i class="task-edit far fa-pencil-alt"></i>':"";e.deletePermission&&(""!==a&&(a+=" "),a+='<i class="task-delete far fa-trash-alt"></i>'),jQuery("#noTasks").hide(),jQuery(".tasks").append('<tr class="task-line-item hidden" id="task-'+t.id+'"><td><i class="task-status-indicator far fa-check-circle"></i><span class="description"> '+t.task+"</span> "+i+n+'<div class="actions">'+a+'</div><span id="total-time-task-'+t.id+'" class="pull-right label label-assigned-user total-time" data-task-id="'+t.id+'">00:00:00</span><br /><span class="text-grey">'+t.notes+"</span></td></tr>"),Sortable.create(document.getElementById("assigned-admin-task-"+t.id),{group:{name:"admin"+t.id,pull:!1,put:["adminSort"]},sort:!1,ghostClass:"ghost",onAdd:function(e){jQuery(e.target).html(e.item),ProjectManager.call("assigntask","taskid="+jQuery(e.target).data("id")+"&admin="+jQuery(e.item).data("id"))}}),Sortable.create(document.getElementById("task-due-date-"+t.id),{group:{name:"due-date-"+t.id,pull:!1,put:["dueDateSelect"]},sort:!1,ghostClass:"ghost",onAdd:function(e){jQuery(e.target).html('<span class="label label-assigned-user">'+lang.updating+"...</span>"),ProjectManager.call("taskduedate","taskid="+jQuery(e.target).data("id")+"&duedate="+jQuery(e.item).find("input").val())}}),jQuery("#task-"+t.id).hide().removeClass("hidden").slideDown(),jQuery("#inputAddTask, #inputAddDueDate").val(""),jQuery("#inputAssignId").val(0),jQuery("#totalTasks").html(e.summary.total),jQuery("#completedTasks").html(e.summary.completed),jQuery("#inputTaskAssignment").append(jQuery("<option></option>",{value:t.id,text:t.task})),jQuery("#editTimerTaskId").append(jQuery("<option></option>",{value:t.id,text:t.task}))},deletetask:function(e){jQuery("#task-"+e.deletedTaskId).fadeOut("fast",function(){"0"===e.summary.total&&jQuery("#noTasks").hide().removeClass("hidden").show()}),jQuery("#totalTasks").html(e.summary.total),jQuery("#completedTasks").html(e.summary.completed),jQuery("#inputTaskAssignment").find("option[value='"+e.deletedTaskId+"']").remove(),jQuery("#editTimerTaskId").find("option[value='"+e.deletedTaskId+"']").remove()},taskstatustoggle:function(e){var t=$("#task-"+e.taskId);1==e.isCompleted?(t.addClass("task-line-item-completed"),$("#toggleCompleteHide").is(":checked")&&t.addClass("hidden")):t.removeClass("task-line-item-completed"),jQuery("#totalTasks").html(e.summary.total),jQuery("#completedTasks").html(e.summary.completed)},taskedit:function(e){var e=e.task[0],t=$("#task-"+e.id).find("td");t.find(".description").text(decodeHtml(e.task)),t.find(".assigned-admin").html(e.assigned),t.find(".task-due-date").html(e.duedate),t.find(".task-notes").text(decodeHtml(e.notes))},gettaskinfo:function(e){e=e.task[0];$("#inputTaskId").val(e.id),$("#inputTaskTitle").val(decodeHtml(e.task)),$("#inputTaskNotes").val(decodeHtml(e.notes)),$("#inputTaskEditAdminAssignment").val(e.adminId),$("#inputTaskDue").val(e.rawDueDate),jQuery("#frmModalEditTask").find("div.loading,div.body-content").toggleClass("hidden")},deletemsg:function(e){jQuery("#message-"+e.deletedMessageId).fadeOut(),jQuery("#tabMessages").find("span").html(e.messageCount),jQuery.each(e.deletedFiles,function(e,t){jQuery("#file-"+t).fadeOut()}),jQuery("#fileCount").html(e.fileCount)},deletefile:function(e){jQuery("#file-"+e.deletedFileNumber).fadeOut(),jQuery('a.message-file[data-key="'+e.deletedFileNumber+'"]').remove(),jQuery("#fileCount").html(e.fileCount)},addticket:function(e){"0"==e.status?jQuery("#frmAddTicket").find(".error-feedback").html(e.error).hide().removeClass("hidden").fadeIn():(appendTicket(e.ticket),jQuery("#ticketCount").text(e.ticketCount),jQuery.growl.notice({title:lang.success,message:lang.ticketAssociated.replace(":tid",e.ticket.tid)}),jQuery("#frmAddTicket").find(".modal").modal("hide"),jQuery("#associatedTicketResults").find(".ticket").remove(),jQuery("#resultInfo").fadeIn("fast"))},openticket:function(e){"0"==e.status?jQuery.growl.error({title:lang.error,message:e.error}):(appendTicket(e.ticket),jQuery("#modalOpenTicket").find("input").not("#newTicketClientRO").each(function(){jQuery(this).val("")}),jQuery("#newTicketContact").val("0"),"undefined"!=typeof Storage&&localStorage.removeItem("project-"+jQuery("#projectId").val()+"-new-ticket"),newProjectTicket[0].value="",jQuery("#ticketCount").text(e.ticketCount),jQuery.growl.notice({title:lang.success,message:lang.ticketCreated.replace(":tid",e.ticket.tid)}))},starttimer:function(e){$("#btnStartTimer").hide().find("i").toggleClass("fa-clock fa-spinner fa-spin"),$("#btnEndTimer").removeProp("disabled").removeClass("hidden").show().data("timerid",e.newTimerId);e=e.newTimer[0];$(".timers").append('<tr id="timer-'+e.id+'"><td><input title="Timer '+e.id+'" type="checkbox" name="timerId[]" value="'+e.id+'" /></td><td>'+e.date+"</td><td>"+e.adminName+"</td><td>"+e.taskName+"</td><td>"+e.startTime+'</td><td class="timer-end-time">'+e.endTime+'</td><td><i class="fas fa-times-circle"></i></td><td class="timer-duration">'+e.duration+'</td><td><a href="#" class="timer-edit"><i class="fas fa-pencil-alt"></i></a></td><td></td></tr>'),$("#timer-"+e.id).find('input[type="checkbox"]').prop("disabled",!0).addClass("disabled"),jQuery("#noTimers").hide()},endtimer:function(e){$("#btnStartTimer").removeProp("disabled").removeClass("hidden").show(),$("#btnEndTimer").hide().find("i").toggleClass("fa-clock fa-spinner fa-spin");var t=e.endedTimerId,t=$("#timer-"+t),i=e.timer[0],n=$("#total-time-task-"+i.taskId);t.find(".timer-end-time").html(i.endTime),t.find(".timer-duration").html(i.duration),t.find('input[type="checkbox"]').prop("disabled",!1).removeClass("disabled"),i.taskId&&n.length&&n.html(i.totalTaskTime),$("#time-logged").html(e.totalTime),$("#time-billed").html(e.totalBilled)},deleteTimer:function(e){var t=e.deletedTimerId,t=$("#timer-"+t);$(t).fadeOut("fast",function(){e.totalCount||$("#noTimers").hide().removeClass("hidden").show(),e.openTimerId||($("#btnStartTimer").removeProp("disabled").removeClass("hidden").show(),$("#btnEndTimer").hide())}),$("#time-logged").html(e.totalTime),$("#time-billed").html(e.totalBilled)},taskduedate:function(e){"0"==e.status?jQuery.growl.error({title:lang.error,message:e.error}):(jQuery.growl.notice({title:lang.success,message:lang.dueDateUpdated}),jQuery("#task-due-date-"+e.taskId).html(e.dueDate))},tasksort:function(e){"0"==e.status?jQuery.growl.error({title:lang.error,message:e.error}):jQuery.growl.notice({title:lang.success,message:e.successMsg})},assigntask:function(e){"0"==e.status?jQuery.growl.error({title:lang.error,message:e.error}):jQuery.growl.notice({title:lang.success,message:lang.assignmentUpdated})},searchTickets:function(e){"0"==e.status?(jQuery("#frmAddTicket").find(".error-feedback").html(e.error).hide().removeClass("hidden").fadeIn(),jQuery("#associatedTicketResults").find(".ticket").hide().remove(),jQuery("#resultInfo").fadeIn("fast")):jQuery("#resultInfo").fadeOut("fast",function(){0==e.tickets.length?jQuery("#associatedTicketResults").append('<a class="list-group-item ticket bottom-margin-5">'+lang.noTicketsFound+"</a>"):e.tickets.forEach(function(e){jQuery("#associatedTicketResults").append('<a class="list-group-item ticket bottom-margin-5 ticket-result" data-ticket-tid="'+e.tid+'" href="#"><span class="ticketnum">'+lang.ticketNum+e.tid+'</span> <span class="subject">'+e.title+'</span> <span class="label" style="background-color: '+e.statusColour+"; color: "+e.statusTextColour+';">'+e.status+"</span></a>")})})},unlinkTicket:function(e){"0"==e.status?jQuery.growl.error({title:lang.error,message:e.error}):(jQuery("#ticket-"+e.ticketId).toggle("highlight").remove(),jQuery("#ticketCount").text(e.ticketCount),"0"===e.ticketCount&&jQuery("#noTickets").show(),jQuery.growl.notice({title:lang.success,message:lang.ticketRemoved}))},unlinkInvoice:function(e){"0"==e.status?jQuery.growl.error({title:lang.error,message:e.error}):(jQuery("#invoice-"+e.invoiceId).toggle("highlight").remove(),jQuery("#associatedInvoiceCount").text(e.invoiceCount),"0"===e.invoiceCount&&jQuery("#noInvoices").show(),jQuery.growl.notice({title:lang.success,message:lang.invoiceRemoved}))},searchInvoices:function(e){"0"==e.status?(jQuery("#frmAddInvoice").find(".error-feedback").html(e.error).hide().removeClass("hidden").fadeIn(),jQuery("#associatedInvoiceResults").find(".invoice").remove(function(){jQuery("#invoiceResultInfo").fadeIn("fast")})):jQuery("#invoiceResultInfo").fadeOut("fast",function(){0==e.invoices.length?jQuery("#associatedInvoiceResults").append('<a class="list-group-item invoice bottom-margin-5">'+lang.noInvoicesFound+"</a>"):e.invoices.forEach(function(e){jQuery("#associatedInvoiceResults").append('<a class="list-group-item invoice bottom-margin-5 invoice-result" data-invoice-id="'+e.id+'" href="#"><span class="invoice-data">'+lang.invoiceNum+(e.invoiceNumber||e.id)+'</span> <span class="invoice-data"> - '+lang.total+": "+e.total+'</span><span class="invoice-data"> - '+lang.due+": "+e.dateDue+'</span><span class="label '+e.status.toLowerCase()+'">'+e.status+"</span></a>")})})},addInvoice:function(e){var t;"0"==e.status?jQuery("#frmAddInvoice").find(".error-feedback").html(e.error).hide().removeClass("hidden").fadeIn():(appendInvoice(t=e.invoice),jQuery("#associatedInvoiceCount").text(e.invoiceCount),jQuery.growl.notice({title:lang.success,message:lang.invoiceAssociated.replace(":num",t.id)}),jQuery("#frmAddInvoice").find(".modal").modal("hide"),jQuery("#associatedInvoiceResults").find(".ticket").remove(),jQuery("#invoiceResultInfo").fadeIn("fast"))},createInvoice:function(e){var t;"0"==e.status?jQuery("#frmCreateInvoice").find(".error-feedback").html(e.error).hide().removeClass("hidden").fadeIn():(appendInvoice(t=e.invoice),jQuery("#associatedInvoiceCount").text(e.invoiceCount),jQuery.growl.notice({title:lang.success,message:lang.invoiceCreated.replace(":num",t.id)}),jQuery("#frmCreateInvoice").find(".modal").modal("hide"),jQuery("#createInvoiceApplyTax").removeAttr("checked"),jQuery("#createInvoiceSendEmail").removeAttr("checked"),jQuery("#createInvoiceCreated").val(""),jQuery("#createInvoiceDue").val(""),jQuery("#createInvoiceAmount").val(""),jQuery("#createInvoiceDescription").val(""))},selectTaskList:function(e){var t,i;"0"==e.status?jQuery("#formImportTasks").find(".error-feedback").html(e.error).hide().removeClass("hidden").fadeIn():(t=e.tasks,i=jQuery("#importTaskResults"),jQuery("#tasksResultInfo").fadeOut("fast",function(){jQuery(this).addClass("hidden").show(),i.find(".ticket").fadeOut("fast",function(){jQuery(this).remove()}),i.find('[name="reference"]').remove(),void 0===t?i.append('<a class="list-group-item ticket bottom-margin-5">'+lang.noTasksFound+"</a>"):(t.forEach(function(e){i.append('<div class="row list-group-item ticket bottom-margin-5"><div class="col-md-1"><input type="checkbox" name="taskId[]" value="'+e.id+'" checked="checked" class="checkbox-inline"></div><div class="col-md-9"><span class="subject">'+e.name+"</span></div></div>")}),i.append('<input type="hidden" name="reference" value="'+e.reference+'" />'))}).promise().done(function(){addedItems=jQuery("#importTaskResults").find(".list-group-item");var e=jQuery("#btnImportTasks");0<addedItems.length?e.prop("disabled",!1).removeClass("disabled"):e.prop("disabled",!0).addClass("disabled")}))},importTasks:function(e){var t=e.editPermission,i=e.deletePermission,n=t?'<i class="task-edit far fa-pencil-alt"></i>':"";i&&(""!==n&&(n+=" "),n+='<i class="task-delete far fa-trash-alt"></i>'),e.tasks.forEach(function(e){$(".tasks").append('<tr class="task-line-item hidden" id="task-'+e.id+'"><td><i class="task-status-indicator far fa-check-circle"></i><span class="description"> '+e.task+"</span> "+e.assigned+e.duedate+'<div class="actions">'+n+'</div><br /><span class="text-grey">'+e.notes+"</span></td></tr>"),$("#task-"+e.id).hide().removeClass("hidden").slideDown()}),jQuery("#totalTasks").html(e.summary.total),jQuery("#completedTasks").html(e.summary.completed)},watch:function(e){},unwatch:function(e){},saveTaskList:function(e){jQuery("#formSaveTaskList").find(".modal").modal("hide").end().find('input[name="name"]').val(""),jQuery.growl.notice({title:lang.success,message:lang.taskListCreated+": "+e.taskListName})},gettimerinfo:function(e){jQuery("#editTimers");var e=e.timer[0],t=jQuery("#editTimerTaskId"),i=jQuery("#editTimerAdminId"),n=jQuery("#editTimerStartDate"),a=jQuery("#editTimerEndDate");jQuery("#frmTimeTrackingTimerId").val(e.id),t.val(e.taskId),i.val(e.adminId),a.val(e.endDateTime),a.data("daterangepicker").setStartDate(e.endDateTime),a.data("daterangepicker").setEndDate(e.endDateTime),n.val(e.dateTime),n.data("daterangepicker").setStartDate(e.dateTime),n.data("daterangepicker").setEndDate(e.dateTime),jQuery("#frmTimeTracking").find("div.loading,div.body-content").toggleClass("hidden").end().find(".btn-primary").focus()},updateTimer:function(e){var e=e.timer[0],t='<i class="fas fa-times-circle"></i>',i=jQuery("#total-time-task-"+e.taskId);1===e.billed&&(t='<i class="fas fa-check-circle"></i>'),jQuery("#timer-"+e.id).html('<td><input title="Timer '+e.id+'" type="checkbox" name="timerId[]" value="'+e.id+'"/></td><td>'+e.date+"</td><td>"+e.adminName+"</td><td>"+e.taskName+"</td><td>"+e.startTime+'</td><td class="timer-end-time">'+e.endTime+"</td><td>"+t+'</td><td class="timer-duration">'+e.duration+'</td><td><a href="#" class="timer-edit"><i class="fas fa-pencil-alt"></i></a></td><td></td>'),"-"===e.endTime&&jQuery("#timer-"+timerId).find('input[type="checkbox"]').prop("disabled",!0).addClass("disabled"),e.taskId&&i.length&&i.html(e.totalTaskTime),jQuery.growl.notice({title:lang.success,message:lang.timerEdited})},taskTimeAdd:function(e){var t,i,n;"0"===e.status?jQuery.growl.error({title:lang.error,message:e.error}):(t=e.timer[0],i='<i class="fas fa-times-circle"></i>',n=jQuery("#total-time-task-"+t.taskId),1===t.billed&&(i='<i class="fas fa-check-circle"></i>'),jQuery("#noTimers").hide(),jQuery("#timersTable").append('<tr id="timer-'+t.id+'"><td><input title="Timer '+t.id+'" type="checkbox" name="timerId[]" value="'+t.id+'"/></td><td>'+t.date+"</td><td>"+t.adminName+"</td><td>"+t.taskName+"</td><td>"+t.startTime+'</td><td class="timer-end-time">'+t.endTime+"</td><td>"+i+'</td><td class="timer-duration">'+t.duration+'</td><td><a href="#" class="timer-edit"><i class="fas fa-pencil-alt"></i></a></td></tr>'),t.taskId&&n.length&&n.html(t.totalTaskTime),$("#time-logged").html(e.totalTime),$("#time-billed").html(e.totalBilled),jQuery.growl.notice({title:lang.success,message:lang.timeAdded}))},invoiceItems:function(e){var a=jQuery("#timersTable"),t=e.timers,i=e.invoice;a.find("tbody").html(""),jQuery.each(t,function(e,t){var i="",n="";"-"!==t.endTime&&!t.billed||(i=' disabled="disabled"',n=' class="disabled"'),a.find("tbody").append('<tr id="'+t.id+'"><td><input title="Timer '+t.id+'" type="checkbox" name="timerId[]" value="'+t.id+'"'+i+n+"/></td><td>"+t.date+"</td><td>"+t.adminName+"</td><td>"+t.taskName+"</td><td>"+t.startTime+"</td><td"+("-"!==t.endTime?"":' class="timer-end-time"')+">"+t.endTime+"</td><td>"+(t.billed?'<i class="fas fa-check-circle"></i>':'<i class="fas fa-times-circle"></i>')+"</td><td"+("-"!==t.endTime?"":' class="timer-duration"')+">"+t.duration+'</td><td><a href="#" class="timer-edit" onclick="return false;"><i class="fas fa-pencil-alt"></i></a></td></tr>')}),jQuery("#time-logged").html(e.totalTime),jQuery("#time-billed").html(e.totalBilled),jQuery("#associatedInvoiceCount").text(e.invoiceCount),appendInvoice(i),jQuery.growl.notice({title:lang.success,message:lang.invoiceGenerated+": "+e.invoiceId})},saveProject:function(e){var t=jQuery("#detailsDue"),i=jQuery("#detailsAssigned"),n=jQuery("#detailsClient"),a=jQuery("#detailsStatus"),s=jQuery("#detailsUpdated"),r=jQuery("#createInvoice"),o=jQuery("#btnInvoiceSelected"),l=jQuery("#openTicketClient"),d=jQuery("#openTicketNoClient"),c=jQuery("#newTicketClientRO"),u=jQuery("#btnSendEmail"),p=jQuery("#projectTitle"),h=jQuery("#detailsClientLi");p.html(e.title),t.html(e.due),i.html(e.admin),n.html(e.client),a.html(e.status),s.html(e.modified),r.addClass("disabled").prop("disabled",!0),o.addClass("disabled").prop("disabled",!0),l.addClass("hidden"),d.removeClass("hidden"),u.addClass("hidden"),h.attr("data-toggle","modal"),e.clientId&&(h.removeAttr("data-toggle"),r.removeClass("disabled").prop("disabled",!1),o.removeClass("disabled").prop("disabled",!1),l.removeClass("hidden"),d.addClass("hidden"),c.val(e.clientName),u.removeClass("hidden"))},sendEmail:function(e){"0"===e.status?jQuery("#formSendEmail").find(".error-feedback").html(e.error).hide().removeClass("hidden").fadeIn():jQuery.growl.notice({title:lang.success,message:lang.emailSent})},duplicateProject:function(e){"0"===e.status?jQuery("#formSendEmail").find(".error-feedback").html(e.error).hide().removeClass("hidden").fadeIn():window.location.href="addonmodules.php?module=project_management&m=view&projectid="+e.newProjectId}};!function(e,t){"function"==typeof define&&define.amd?define(["jquery","sifter","microplugin"],t):"object"==typeof exports?module.exports=t(require("jquery"),require("sifter"),require("microplugin")):e.Selectize=t(e.jQuery,e.Sifter,e.MicroPlugin)}(this,function(_,c,e){"use strict";function n(){}_.fn.removeHighlight=function(){return this.find("span.highlight").each(function(){this.parentNode.firstChild.nodeName;var e=this.parentNode;e.replaceChild(this.firstChild,this),e.normalize()}).end()};function l(e){return void 0!==e}function T(e){return null==e?null:"boolean"==typeof e?e?"1":"0":e+""}function o(e){return(e+"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function i(t,i,e){var n,a=t.trigger,s={};for(n in t.trigger=function(){var e=arguments[0];if(-1===i.indexOf(e))return a.apply(t,arguments);s[e]=arguments},e.apply(t,[]),t.trigger=a,s)s.hasOwnProperty(n)&&a.apply(t,s[n])}function d(e){var t,i,n={};return"selectionStart"in e?(n.start=e.selectionStart,n.length=e.selectionEnd-n.start):document.selection&&(e.focus(),t=document.selection.createRange(),i=document.selection.createRange().text.length,t.moveStart("character",-e.value.length),n.start=t.text.length-i,n.length=i),n}function f(s){function e(e,t){var i,n,a;t=t||{},(e=e||window.event||{}).metaKey||e.altKey||!t.force&&!1===s.data("grow")||(t=s.val(),e.type&&"keydown"===e.type.toLowerCase()&&(i=97<=(a=e.keyCode)&&a<=122||65<=a&&a<=90||48<=a&&a<=57||32===a,46===a||8===a?(n=d(s[0])).length?t=t.substring(0,n.start)+t.substring(n.start+n.length):8===a&&n.start?t=t.substring(0,n.start-1)+t.substring(n.start+1):46===a&&void 0!==n.start&&(t=t.substring(0,n.start)+t.substring(n.start+1)):i&&(a=e.shiftKey,n=String.fromCharCode(e.keyCode),t+=n=a?n.toUpperCase():n.toLowerCase())),i=s.attr("placeholder"),e=s,(n=((a=t=!t&&i?i:t)?(a=_("<test>").css({position:"absolute",top:-99999,left:-99999,width:"auto",padding:0,whiteSpace:"pre"}).text(a).appendTo("body"),u(e,a,["letterSpacing","fontSize","fontFamily","fontWeight","textTransform"]),e=a.width(),a.remove(),e):0)+4)===r)||(r=n,s.width(n),s.triggerHandler("resize"))}var r=null;s.on("keydown keyup update blur",e),e()}function p(e,t){var i,n,a,s,r,o=this,l=e[0],d=(l.selectize=o,window.getComputedStyle&&window.getComputedStyle(l,null));if(d=(d?d.getPropertyValue("direction"):l.currentStyle&&l.currentStyle.direction)||e.parents("[dir]:first").attr("dir")||"",_.extend(o,{order:0,settings:t,$input:e,tabIndex:e.attr("tabindex")||"",tagType:"select"===l.tagName.toLowerCase()?1:2,rtl:/rtl/i.test(d),eventNS:".selectize"+ ++p.count,highlightedValue:null,isOpen:!1,isDisabled:!1,isRequired:e.is("[required]"),isInvalid:!1,isLocked:!1,isFocused:!1,isInputHidden:!1,isSetup:!1,isShiftDown:!1,isCmdDown:!1,isCtrlDown:!1,ignoreFocus:!1,ignoreBlur:!1,ignoreHover:!1,hasOptions:!1,currentResults:null,lastValue:"",caretPos:0,loading:0,loadedSearches:{},$activeOption:null,$activeItems:[],optgroups:{},options:{},userOptions:{},items:[],renderCache:{},onSearchChange:null===t.loadThrottle?o.onSearchChange:(a=o.onSearchChange,s=t.loadThrottle,function(){var e=this,t=arguments;window.clearTimeout(r),r=window.setTimeout(function(){a.apply(e,t)},s)})}),o.sifter=new c(this.options,{diacritics:t.diacritics}),o.settings.options){for(i=0,n=o.settings.options.length;i<n;i++)o.registerOption(o.settings.options[i]);delete o.settings.options}if(o.settings.optgroups){for(i=0,n=o.settings.optgroups.length;i<n;i++)o.registerOptionGroup(o.settings.optgroups[i]);delete o.settings.optgroups}o.settings.mode=o.settings.mode||(1===o.settings.maxItems?"single":"multi"),"boolean"!=typeof o.settings.hideSelected&&(o.settings.hideSelected="multi"===o.settings.mode),o.initializePlugins(o.settings.plugins),o.setupCallbacks(),o.setupTemplates(),o.setup()}n.prototype={on:function(e,t){this._events=this._events||{},this._events[e]=this._events[e]||[],this._events[e].push(t)},off:function(e,t){var i=arguments.length;return 0===i?delete this._events:1===i?delete this._events[e]:(this._events=this._events||{},void(e in this._events!=!1&&this._events[e].splice(this._events[e].indexOf(t),1)))},trigger:function(e){if(this._events=this._events||{},e in this._events!=!1)for(var t=0;t<this._events[e].length;t++)this._events[e][t].apply(this,Array.prototype.slice.call(arguments,1))}},n.mixin=function(e){for(var t=["on","off","trigger"],i=0;i<t.length;i++)e.prototype[t[i]]=n.prototype[t[i]]};var t,g=/Mac/.test(navigator.userAgent),v=g?91:17,w=g?18:17,y=!/android/i.test(window.navigator.userAgent)&&!!document.createElement("input").validity,a={before:function(e,t,i){var n=e[t];e[t]=function(){return i.apply(e,arguments),n.apply(e,arguments)}},after:function(t,e,i){var n=t[e];t[e]=function(){var e=n.apply(t,arguments);return i.apply(t,arguments),e}}},u=function(e,t,i){var n,a,s={};if(i)for(n=0,a=i.length;n<a;n++)s[i[n]]=e.css(i[n]);else s=e.css();t.css(s)};return n.mixin(p),void 0!==e?e.mixin(p):(e="Dependency MicroPlugin is missing",t=(t={explanation:'Make sure you either: (1) are using the "standalone" version of Selectize, or (2) require MicroPlugin before you load Selectize.'})||{},console.error("Selectize: "+e),t.explanation&&(console.group&&console.group(),console.error(t.explanation),console.group)&&console.groupEnd()),_.extend(p.prototype,{setup:function(){var i,e,n,t=this,a=t.settings,s=t.eventNS,r=_(window),o=_(document),l=t.$input,d=t.settings.mode,c=l.attr("class")||"",u=_("<div>").addClass(a.wrapperClass).addClass(c).addClass(d),p=_("<div>").addClass(a.inputClass).addClass("items").appendTo(u),h=_('<input type="text" autocomplete="off" />').appendTo(p).attr("tabindex",l.is(":disabled")?"-1":t.tabIndex),m=_(a.dropdownParent||u),d=_("<div>").addClass(a.dropdownClass).addClass(d).hide().appendTo(m),m=_("<div>").addClass(a.dropdownContentClass).appendTo(d);(e=l.attr("id"))&&(h.attr("id",e+"-selectized"),_("label[for='"+e+"']").attr("for",e+"-selectized")),t.settings.copyClassesToDropdown&&d.addClass(c),u.css({width:l[0].style.width}),t.plugins.names.length&&(e="plugin-"+t.plugins.names.join(" plugin-"),u.addClass(e),d.addClass(e)),(null===a.maxItems||1<a.maxItems)&&1===t.tagType&&l.attr("multiple","multiple"),t.settings.placeholder&&h.attr("placeholder",a.placeholder),!t.settings.splitOn&&t.settings.delimiter&&(c=t.settings.delimiter.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),t.settings.splitOn=new RegExp("\\s*"+c+"+\\s*")),l.attr("autocorrect")&&h.attr("autocorrect",l.attr("autocorrect")),l.attr("autocapitalize")&&h.attr("autocapitalize",l.attr("autocapitalize")),t.$wrapper=u,t.$control=p,t.$control_input=h,t.$dropdown=d,t.$dropdown_content=m,d.on("mouseenter","[data-selectable]",function(){return t.onOptionHover.apply(t,arguments)}),d.on("mousedown click","[data-selectable]",function(){return t.onOptionSelect.apply(t,arguments)}),e="mousedown",c="*:not(input)",n=function(){return t.onItemSelect.apply(t,arguments)},(i=p).on(e,c,function(e){for(var t=e.target;t&&t.parentNode!==i[0];)t=t.parentNode;return e.currentTarget=t,n.apply(this,[e])}),f(h),p.on({mousedown:function(){return t.onMouseDown.apply(t,arguments)},click:function(){return t.onClick.apply(t,arguments)}}),h.on({mousedown:function(e){e.stopPropagation()},keydown:function(){return t.onKeyDown.apply(t,arguments)},keyup:function(){return t.onKeyUp.apply(t,arguments)},keypress:function(){return t.onKeyPress.apply(t,arguments)},resize:function(){t.positionDropdown.apply(t,[])},blur:function(){return t.onBlur.apply(t,arguments)},focus:function(){return t.ignoreBlur=!1,t.onFocus.apply(t,arguments)},paste:function(){return t.onPaste.apply(t,arguments)}}),o.on("keydown"+s,function(e){t.isCmdDown=e[g?"metaKey":"ctrlKey"],t.isCtrlDown=e[g?"altKey":"ctrlKey"],t.isShiftDown=e.shiftKey}),o.on("keyup"+s,function(e){e.keyCode===w&&(t.isCtrlDown=!1),16===e.keyCode&&(t.isShiftDown=!1),e.keyCode===v&&(t.isCmdDown=!1)}),o.on("mousedown"+s,function(e){if(t.isFocused){if(e.target===t.$dropdown[0]||e.target.parentNode===t.$dropdown[0])return!1;t.$control.has(e.target).length||e.target===t.$control[0]||t.blur(e.target)}}),r.on(["scroll"+s,"resize"+s].join(" "),function(){t.isOpen&&t.positionDropdown.apply(t,arguments)}),r.on("mousemove"+s,function(){t.ignoreHover=!1}),this.revertSettings={$children:l.children().detach(),tabindex:l.attr("tabindex")},l.attr("tabindex",-1).hide().after(t.$wrapper),_.isArray(a.items)&&(t.setValue(a.items),delete a.items),y&&l.on("invalid"+s,function(e){e.preventDefault(),t.isInvalid=!0,t.refreshState()}),t.updateOriginalInput(),t.refreshItems(),t.refreshState(),t.updatePlaceholder(),t.isSetup=!0,l.is(":disabled")&&t.disable(),t.on("change",this.onChange),l.data("selectize",t),l.addClass("selectized"),t.trigger("initialize"),!0===a.preload&&t.onSearchChange("")},setupTemplates:function(){var i=this.settings.labelField,n=this.settings.optgroupLabelField;this.settings.render=_.extend({},{optgroup:function(e){return'<div class="optgroup">'+e.html+"</div>"},optgroup_header:function(e,t){return'<div class="optgroup-header">'+t(e[n])+"</div>"},option:function(e,t){return'<div class="option">'+t(e[i])+"</div>"},item:function(e,t){return'<div class="item">'+t(e[i])+"</div>"},option_create:function(e,t){return'<div class="create">Add <strong>'+t(e.input)+"</strong>…</div>"}},this.settings.render)},setupCallbacks:function(){var e,t,i={initialize:"onInitialize",change:"onChange",item_add:"onItemAdd",item_remove:"onItemRemove",clear:"onClear",option_add:"onOptionAdd",option_remove:"onOptionRemove",option_clear:"onOptionClear",optgroup_add:"onOptionGroupAdd",optgroup_remove:"onOptionGroupRemove",optgroup_clear:"onOptionGroupClear",dropdown_open:"onDropdownOpen",dropdown_close:"onDropdownClose",type:"onType",load:"onLoad",focus:"onFocus",blur:"onBlur"};for(e in i)i.hasOwnProperty(e)&&(t=this.settings[i[e]])&&this.on(e,t)},onClick:function(e){this.isFocused||(this.focus(),e.preventDefault())},onMouseDown:function(e){var t=this,i=e.isDefaultPrevented();_(e.target);if(t.isFocused){if(e.target!==t.$control_input[0])return"single"===t.settings.mode?t.isOpen?t.close():t.open():i||t.setActiveItem(null),!1}else i||window.setTimeout(function(){t.focus()},0)},onChange:function(){this.$input.trigger("change")},onPaste:function(e){var a=this;a.isFull()||a.isInputHidden||a.isLocked?e.preventDefault():a.settings.splitOn&&setTimeout(function(){var e=a.$control_input.val();if(e.match(a.settings.splitOn))for(var t=_.trim(e).split(a.settings.splitOn),i=0,n=t.length;i<n;i++)a.createItem(t[i])},0)},onKeyPress:function(e){var t;return this.isLocked?e&&e.preventDefault():(t=String.fromCharCode(e.keyCode||e.which),this.settings.create&&"multi"===this.settings.mode&&t===this.settings.delimiter?(this.createItem(),e.preventDefault(),!1):void 0)},onKeyDown:function(e){e.target,this.$control_input[0];var t,i=this;if(i.isLocked)9!==e.keyCode&&e.preventDefault();else{switch(e.keyCode){case 65:if(i.isCmdDown)return void i.selectAll();break;case 27:return void(i.isOpen&&(e.preventDefault(),e.stopPropagation(),i.close()));case 78:if(!e.ctrlKey||e.altKey)break;case 40:return!i.isOpen&&i.hasOptions?i.open():i.$activeOption&&(i.ignoreHover=!0,(t=i.getAdjacentOption(i.$activeOption,1)).length)&&i.setActiveOption(t,!0,!0),void e.preventDefault();case 80:if(!e.ctrlKey||e.altKey)break;case 38:return i.$activeOption&&(i.ignoreHover=!0,(t=i.getAdjacentOption(i.$activeOption,-1)).length)&&i.setActiveOption(t,!0,!0),void e.preventDefault();case 13:return void(i.isOpen&&i.$activeOption&&(i.onOptionSelect({currentTarget:i.$activeOption}),e.preventDefault()));case 37:return void i.advanceSelection(-1,e);case 39:return void i.advanceSelection(1,e);case 9:return i.settings.selectOnTab&&i.isOpen&&i.$activeOption&&(i.onOptionSelect({currentTarget:i.$activeOption}),i.isFull()||e.preventDefault()),void(i.settings.create&&i.createItem()&&e.preventDefault());case 8:case 46:return void i.deleteSelection(e)}!i.isFull()&&!i.isInputHidden||(g?e.metaKey:e.ctrlKey)||e.preventDefault()}},onKeyUp:function(e){var t=this;if(t.isLocked)return e&&e.preventDefault();e=t.$control_input.val()||"";t.lastValue!==e&&(t.lastValue=e,t.onSearchChange(e),t.refreshOptions(),t.trigger("type",e))},onSearchChange:function(t){var i=this,n=i.settings.load;n&&!i.loadedSearches.hasOwnProperty(t)&&(i.loadedSearches[t]=!0,i.load(function(e){n.apply(i,[t,e])}))},onFocus:function(e){var t=this,i=t.isFocused;if(t.isDisabled)return t.blur(),e&&e.preventDefault(),!1;t.ignoreFocus||(t.isFocused=!0,"focus"===t.settings.preload&&t.onSearchChange(""),i||t.trigger("focus"),t.$activeItems.length||(t.showInput(),t.setActiveItem(null),t.refreshOptions(!!t.settings.openOnFocus)),t.refreshState())},onBlur:function(e,t){var i,n=this;n.isFocused&&(n.isFocused=!1,n.ignoreFocus||(n.ignoreBlur||document.activeElement!==n.$dropdown_content[0]?(i=function(){n.close(),n.setTextboxValue(""),n.setActiveItem(null),n.setActiveOption(null),n.setCaret(n.items.length),n.refreshState(),t&&t.focus&&t.focus(),n.ignoreFocus=!1,n.trigger("blur")},n.ignoreFocus=!0,n.settings.create&&n.settings.createOnBlur?n.createItem(null,!1,i):i()):(n.ignoreBlur=!0,n.onFocus(e))))},onOptionHover:function(e){this.ignoreHover||this.setActiveOption(e.currentTarget,!1)},onOptionSelect:function(e){var t,i=this;e.preventDefault&&(e.preventDefault(),e.stopPropagation()),(t=_(e.currentTarget)).hasClass("create")?i.createItem(null,function(){i.settings.closeAfterSelect&&i.close()}):void 0!==(t=t.attr("data-value"))&&(i.lastQuery=null,i.setTextboxValue(""),i.addItem(t),i.settings.closeAfterSelect?i.close():!i.settings.hideSelected&&e.type&&/mouse/.test(e.type)&&i.setActiveOption(i.getOption(t)))},onItemSelect:function(e){this.isLocked||"multi"===this.settings.mode&&(e.preventDefault(),this.setActiveItem(e.currentTarget,e))},load:function(e){var t=this,i=t.$wrapper.addClass(t.settings.loadingClass);t.loading++,e.apply(t,[function(e){t.loading=Math.max(t.loading-1,0),e&&e.length&&(t.addOption(e),t.refreshOptions(t.isFocused&&!t.isInputHidden)),t.loading||i.removeClass(t.settings.loadingClass),t.trigger("load",e)}])},setTextboxValue:function(e){var t=this.$control_input;t.val()!==e&&(t.val(e).triggerHandler("update"),this.lastValue=e)},getValue:function(){return 1===this.tagType&&this.$input.attr("multiple")?this.items:this.items.join(this.settings.delimiter)},setValue:function(e,t){i(this,t?[]:["change"],function(){this.clear(t),this.addItems(e,t)})},setActiveItem:function(e,t){var i,n,a,s,r,o,l=this;if("single"!==l.settings.mode)if((e=_(e)).length){if("mousedown"===(i=t&&t.type.toLowerCase())&&l.isShiftDown&&l.$activeItems.length){for(o=l.$control.children(".active:last"),o=Array.prototype.indexOf.apply(l.$control[0].childNodes,[o[0]]),(a=Array.prototype.indexOf.apply(l.$control[0].childNodes,[e[0]]))<o&&(r=o,o=a,a=r),n=o;n<=a;n++)s=l.$control[0].childNodes[n],-1===l.$activeItems.indexOf(s)&&(_(s).addClass("active"),l.$activeItems.push(s));t.preventDefault()}else"mousedown"===i&&l.isCtrlDown||"keydown"===i&&this.isShiftDown?e.hasClass("active")?(r=l.$activeItems.indexOf(e[0]),l.$activeItems.splice(r,1),e.removeClass("active")):l.$activeItems.push(e.addClass("active")[0]):(_(l.$activeItems).removeClass("active"),l.$activeItems=[e.addClass("active")[0]]);l.hideInput(),this.isFocused||l.focus()}else _(l.$activeItems).removeClass("active"),l.$activeItems=[],l.isFocused&&l.showInput()},setActiveOption:function(e,t,i){var n,a,s,r,o=this;o.$activeOption&&o.$activeOption.removeClass("active"),o.$activeOption=null,(e=_(e)).length&&(o.$activeOption=e.addClass("active"),!t&&l(t)||(e=o.$dropdown_content.height(),n=o.$activeOption.outerHeight(!0),t=o.$dropdown_content.scrollTop()||0,r=(s=a=o.$activeOption.offset().top-o.$dropdown_content.offset().top+t)-e+n,e+t<a+n?o.$dropdown_content.stop().animate({scrollTop:r},i?o.settings.scrollDuration:0):a<t&&o.$dropdown_content.stop().animate({scrollTop:s},i?o.settings.scrollDuration:0)))},selectAll:function(){var e=this;"single"!==e.settings.mode&&(e.$activeItems=Array.prototype.slice.apply(e.$control.children(":not(input)").addClass("active")),e.$activeItems.length&&(e.hideInput(),e.close()),e.focus())},hideInput:function(){this.setTextboxValue(""),this.$control_input.css({opacity:0,position:"absolute",left:this.rtl?1e4:-1e4}),this.isInputHidden=!0},showInput:function(){this.$control_input.css({opacity:1,position:"relative",left:0}),this.isInputHidden=!1},focus:function(){var e=this;e.isDisabled||(e.ignoreFocus=!0,e.$control_input[0].focus(),window.setTimeout(function(){e.ignoreFocus=!1,e.onFocus()},0))},blur:function(e){this.$control_input[0].blur(),this.onBlur(null,e)},getScoreFunction:function(e){return this.sifter.getScoreFunction(e,this.getSearchOptions())},getSearchOptions:function(){var e=this.settings,t=e.sortField;return{fields:e.searchField,conjunction:e.searchConjunction,sort:t="string"==typeof t?[{field:t}]:t}},search:function(e){var t,i,n,a=this,s=a.settings,r=this.getSearchOptions();if(s.score&&"function"!=typeof(n=a.settings.score.apply(this,[e])))throw new Error('Selectize "score" setting must be a function that returns a function');if(e!==a.lastQuery?(a.lastQuery=e,i=a.sifter.search(e,_.extend(r,{score:n})),a.currentResults=i):i=_.extend(!0,{},a.currentResults),s.hideSelected)for(t=i.items.length-1;0<=t;t--)-1!==a.items.indexOf(T(i.items[t].id))&&i.items.splice(t,1);return i},refreshOptions:function(e){void 0===e&&(e=!0);var t,i,n,a,s,r,o,l,d,c,u,p,h,m,f,g,v=this,w=_.trim(v.$control_input.val()),y=v.search(w),b=v.$dropdown_content,C=v.$activeOption&&T(v.$activeOption.attr("data-value")),k=y.items.length;for("number"==typeof v.settings.maxOptions&&(k=Math.min(k,v.settings.maxOptions)),a={},s=[],t=0;t<k;t++)for(r=v.options[y.items[t].id],o=v.render("option",r),l=r[v.settings.optgroupField]||"",i=0,n=(d=_.isArray(l)?l:[l])&&d.length;i<n;i++)l=d[i],v.optgroups.hasOwnProperty(l)||(l=""),a.hasOwnProperty(l)||(a[l]=document.createDocumentFragment(),s.push(l)),a[l].appendChild(o);for(this.settings.lockOptgroupOrder&&s.sort(function(e,t){return(v.optgroups[e].$order||0)-(v.optgroups[t].$order||0)}),c=document.createDocumentFragment(),t=0,k=s.length;t<k;t++)v.optgroups.hasOwnProperty(l=s[t])&&a[l].childNodes.length?((u=document.createDocumentFragment()).appendChild(v.render("optgroup_header",v.optgroups[l])),u.appendChild(a[l]),c.appendChild(v.render("optgroup",_.extend({},v.optgroups[l],{html:(f=u,g=void 0,(g=document.createElement("div")).appendChild(f.cloneNode(!0)),g.innerHTML),dom:u})))):c.appendChild(a[l]);if(b.html(c),v.settings.highlight&&y.query.length&&y.tokens.length)for(b.removeHighlight(),t=0,k=y.tokens.length;t<k;t++)!function(e,t){var r,o;if("string"!=typeof t||t.length)r="string"==typeof t?new RegExp(t,"i"):t,o=function(e){var t=0;if(3===e.nodeType){var i,n,a=e.data.search(r);0<=a&&0<e.data.length&&(n=e.data.match(r),(i=document.createElement("span")).className="highlight",(a=e.splitText(a)).splitText(n[0].length),n=a.cloneNode(!0),i.appendChild(n),a.parentNode.replaceChild(i,a),t=1)}else if(1===e.nodeType&&e.childNodes&&!/(script|style)/i.test(e.tagName))for(var s=0;s<e.childNodes.length;++s)s+=o(e.childNodes[s]);return t},e.each(function(){o(this)})}(b,y.tokens[t].regex);if(!v.settings.hideSelected)for(t=0,k=v.items.length;t<k;t++)v.getOption(v.items[t]).addClass("selected");(p=v.canCreate(w))&&(b.prepend(v.render("option_create",{input:w})),m=_(b[0].childNodes[0])),v.hasOptions=0<y.items.length||p,v.hasOptions?(0<y.items.length?((w=C&&v.getOption(C))&&w.length?h=w:"single"===v.settings.mode&&v.items.length&&(h=v.getOption(v.items[0])),h&&h.length||(h=m&&!v.settings.addPrecedence?v.getAdjacentOption(m,1):b.find("[data-selectable]:first"))):h=m,v.setActiveOption(h),e&&!v.isOpen&&v.open()):(v.setActiveOption(null),e&&v.isOpen&&v.close())},addOption:function(e){var t,i,n,a=this;if(_.isArray(e))for(t=0,i=e.length;t<i;t++)a.addOption(e[t]);else(n=a.registerOption(e))&&(a.userOptions[n]=!0,a.lastQuery=null,a.trigger("option_add",n,e))},registerOption:function(e){var t=T(e[this.settings.valueField]);return null!=t&&!this.options.hasOwnProperty(t)&&(e.$order=e.$order||++this.order,this.options[t]=e,t)},registerOptionGroup:function(e){var t=T(e[this.settings.optgroupValueField]);return!!t&&(e.$order=e.$order||++this.order,this.optgroups[t]=e,t)},addOptionGroup:function(e,t){t[this.settings.optgroupValueField]=e,(e=this.registerOptionGroup(t))&&this.trigger("optgroup_add",e,t)},removeOptionGroup:function(e){this.optgroups.hasOwnProperty(e)&&(delete this.optgroups[e],this.renderCache={},this.trigger("optgroup_remove",e))},clearOptionGroups:function(){this.optgroups={},this.renderCache={},this.trigger("optgroup_clear")},updateOption:function(e,t){var i,n,a,s=this;if(e=T(e),i=T(t[s.settings.valueField]),null!==e&&s.options.hasOwnProperty(e)){if("string"!=typeof i)throw new Error("Value must be set in option data");a=s.options[e].$order,i!==e&&(delete s.options[e],-1!==(n=s.items.indexOf(e)))&&s.items.splice(n,1,i),t.$order=t.$order||a,s.options[i]=t,n=s.renderCache.item,a=s.renderCache.option,n&&(delete n[e],delete n[i]),a&&(delete a[e],delete a[i]),-1!==s.items.indexOf(i)&&(n=s.getItem(e),a=_(s.render("item",t)),n.hasClass("active")&&a.addClass("active"),n.replaceWith(a)),s.lastQuery=null,s.isOpen&&s.refreshOptions(!1)}},removeOption:function(e,t){var i=this,n=(e=T(e),i.renderCache.item),a=i.renderCache.option;n&&delete n[e],a&&delete a[e],delete i.userOptions[e],delete i.options[e],i.lastQuery=null,i.trigger("option_remove",e),i.removeItem(e,t)},clearOptions:function(){var e=this;e.loadedSearches={},e.userOptions={},e.renderCache={},e.options=e.sifter.items={},e.lastQuery=null,e.trigger("option_clear"),e.clear()},getOption:function(e){return this.getElementWithValue(e,this.$dropdown_content.find("[data-selectable]"))},getAdjacentOption:function(e,t){var i=this.$dropdown.find("[data-selectable]"),e=i.index(e)+t;return 0<=e&&e<i.length?i.eq(e):_()},getElementWithValue:function(e,t){if(null!=(e=T(e)))for(var i=0,n=t.length;i<n;i++)if(t[i].getAttribute("data-value")===e)return _(t[i]);return _()},getItem:function(e){return this.getElementWithValue(e,this.$control.children())},addItems:function(e,t){for(var i=_.isArray(e)?e:[e],n=0,a=i.length;n<a;n++)this.isPending=n<a-1,this.addItem(i[n],t)},addItem:function(s,r){i(this,r?[]:["change"],function(){var e,t,i,n=this,a=n.settings.mode;s=T(s),-1!==n.items.indexOf(s)?"single"===a&&n.close():n.options.hasOwnProperty(s)&&("single"===a&&n.clear(r),"multi"===a&&n.isFull()||(e=_(n.render("item",n.options[s])),i=n.isFull(),n.items.splice(n.caretPos,0,s),n.insertAtCaret(e),n.isPending&&(i||!n.isFull())||n.refreshState(),n.isSetup&&(i=n.$dropdown_content.find("[data-selectable]"),n.isPending||(t=n.getOption(s),t=n.getAdjacentOption(t,1).attr("data-value"),n.refreshOptions(n.isFocused&&"single"!==a),t&&n.setActiveOption(n.getOption(t))),!i.length||n.isFull()?n.close():n.positionDropdown(),n.updatePlaceholder(),n.trigger("item_add",s,e),n.updateOriginalInput({silent:r}))))})},removeItem:function(e,t){var i,n,a=this,s=e instanceof _?e:a.getItem(e);e=T(s.attr("data-value")),-1!==(i=a.items.indexOf(e))&&(s.remove(),s.hasClass("active")&&(n=a.$activeItems.indexOf(s[0]),a.$activeItems.splice(n,1)),a.items.splice(i,1),a.lastQuery=null,!a.settings.persist&&a.userOptions.hasOwnProperty(e)&&a.removeOption(e,t),i<a.caretPos&&a.setCaret(a.caretPos-1),a.refreshState(),a.updatePlaceholder(),a.updateOriginalInput({silent:t}),a.positionDropdown(),a.trigger("item_remove",e,s))},createItem:function(e,i){var n=this,a=n.caretPos,s=(e=e||_.trim(n.$control_input.val()||""),arguments[arguments.length-1]);if("function"!=typeof s&&(s=function(){}),"boolean"!=typeof i&&(i=!0),!n.canCreate(e))return s(),!1;n.lock();var t,r,o="function"==typeof n.settings.create?this.settings.create:function(e){var t={};return t[n.settings.labelField]=e,t[n.settings.valueField]=e,t},l=(r=!(t=function(e){var t;return n.unlock(),!e||"object"!=typeof e||"string"!=typeof(t=T(e[n.settings.valueField]))?s():(n.setTextboxValue(""),n.addOption(e),n.setCaret(a),n.addItem(t),n.refreshOptions(i&&"single"!==n.settings.mode),void s(e))}),function(){r||(r=!0,t.apply(this,arguments))}),o=o.apply(this,[e,l]);return void 0!==o&&l(o),!0},refreshItems:function(){this.lastQuery=null,this.isSetup&&this.addItem(this.items),this.refreshState(),this.updateOriginalInput()},refreshState:function(){this.refreshValidityState(),this.refreshClasses()},refreshValidityState:function(){if(!this.isRequired)return!1;var e=!this.items.length;this.isInvalid=e,this.$control_input.prop("required",e),this.$input.prop("required",!e)},refreshClasses:function(){var e=this,t=e.isFull(),i=e.isLocked;e.$wrapper.toggleClass("rtl",e.rtl),e.$control.toggleClass("focus",e.isFocused).toggleClass("disabled",e.isDisabled).toggleClass("required",e.isRequired).toggleClass("invalid",e.isInvalid).toggleClass("locked",i).toggleClass("full",t).toggleClass("not-full",!t).toggleClass("input-active",e.isFocused&&!e.isInputHidden).toggleClass("dropdown-active",e.isOpen).toggleClass("has-options",!_.isEmptyObject(e.options)).toggleClass("has-items",0<e.items.length),e.$control_input.data("grow",!t&&!i)},isFull:function(){return null!==this.settings.maxItems&&this.items.length>=this.settings.maxItems},updateOriginalInput:function(e){var t,i,n,a,s=this;if(e=e||{},1===s.tagType){for(n=[],t=0,i=s.items.length;t<i;t++)a=s.options[s.items[t]][s.settings.labelField]||"",n.push('<option value="'+o(s.items[t])+'" selected="selected">'+o(a)+"</option>");n.length||this.$input.attr("multiple")||n.push('<option value="" selected="selected"></option>'),s.$input.html(n.join(""))}else s.$input.val(s.getValue()),s.$input.attr("value",s.$input.val());s.isSetup&&!e.silent&&s.trigger("change",s.$input.val())},updatePlaceholder:function(){var e;this.settings.placeholder&&(e=this.$control_input,this.items.length?e.removeAttr("placeholder"):e.attr("placeholder",this.settings.placeholder),e.triggerHandler("update",{force:!0}))},open:function(){var e=this;e.isLocked||e.isOpen||"multi"===e.settings.mode&&e.isFull()||(e.focus(),e.isOpen=!0,e.refreshState(),e.$dropdown.css({visibility:"hidden",display:"block"}),e.positionDropdown(),e.$dropdown.css({visibility:"visible"}),e.trigger("dropdown_open",e.$dropdown))},close:function(){var e=this,t=e.isOpen;"single"===e.settings.mode&&e.items.length&&(e.hideInput(),e.$control_input.blur()),e.isOpen=!1,e.$dropdown.hide(),e.setActiveOption(null),e.refreshState(),t&&e.trigger("dropdown_close",e.$dropdown)},positionDropdown:function(){var e=this.$control,t="body"===this.settings.dropdownParent?e.offset():e.position();t.top+=e.outerHeight(!0),this.$dropdown.css({width:e.outerWidth(),top:t.top,left:t.left})},clear:function(e){var t=this;t.items.length&&(t.$control.children(":not(input)").remove(),t.items=[],t.lastQuery=null,t.setCaret(0),t.setActiveItem(null),t.updatePlaceholder(),t.updateOriginalInput({silent:e}),t.refreshState(),t.showInput(),t.trigger("clear"))},insertAtCaret:function(e){var t=Math.min(this.caretPos,this.items.length);0===t?this.$control.prepend(e):_(this.$control[0].childNodes[t]).before(e),this.setCaret(t+1)},deleteSelection:function(e){var t,i,n,a,s,r=this,o=e&&8===e.keyCode?-1:1,l=d(r.$control_input[0]);if(r.$activeOption&&!r.settings.hideSelected&&(a=r.getAdjacentOption(r.$activeOption,-1).attr("data-value")),n=[],r.$activeItems.length){for(s=r.$control.children(".active:"+(0<o?"last":"first")),s=r.$control.children(":not(input)").index(s),0<o&&s++,t=0,i=r.$activeItems.length;t<i;t++)n.push(_(r.$activeItems[t]).attr("data-value"));e&&(e.preventDefault(),e.stopPropagation())}else(r.isFocused||"single"===r.settings.mode)&&r.items.length&&(o<0&&0===l.start&&0===l.length?n.push(r.items[r.caretPos-1]):0<o&&l.start===r.$control_input.val().length&&n.push(r.items[r.caretPos]));if(!n.length||"function"==typeof r.settings.onDelete&&!1===r.settings.onDelete.apply(r,[n]))return!1;for(void 0!==s&&r.setCaret(s);n.length;)r.removeItem(n.pop());return r.showInput(),r.positionDropdown(),r.refreshOptions(!0),a&&(e=r.getOption(a)).length&&r.setActiveOption(e),!0},advanceSelection:function(e,t){var i,n,a,s=this;0!==e&&(s.rtl&&(e*=-1),i=0<e?"last":"first",a=d(s.$control_input[0]),s.isFocused&&!s.isInputHidden?(n=s.$control_input.val().length,(e<0?0!==a.start||0!==a.length:a.start!==n)||n||s.advanceCaret(e,t)):(a=s.$control.children(".active:"+i)).length&&(n=s.$control.children(":not(input)").index(a),s.setActiveItem(null),s.setCaret(0<e?n+1:n)))},advanceCaret:function(e,t){var i,n=this;0!==e&&(n.isShiftDown?(i=n.$control_input[0<e?"next":"prev"]()).length&&(n.hideInput(),n.setActiveItem(i),t)&&t.preventDefault():n.setCaret(n.caretPos+e))},setCaret:function(e){var t=this;if(e="single"===t.settings.mode?t.items.length:Math.max(0,Math.min(t.items.length,e)),!t.isPending)for(var i,n=t.$control.children(":not(input)"),a=0,s=n.length;a<s;a++)i=_(n[a]).detach(),a<e?t.$control_input.before(i):t.$control.append(i);t.caretPos=e},lock:function(){this.close(),this.isLocked=!0,this.refreshState()},unlock:function(){this.isLocked=!1,this.refreshState()},disable:function(){this.$input.prop("disabled",!0),this.$control_input.prop("disabled",!0).prop("tabindex",-1),this.isDisabled=!0,this.lock()},enable:function(){var e=this;e.$input.prop("disabled",!1),e.$control_input.prop("disabled",!1).prop("tabindex",e.tabIndex),e.isDisabled=!1,e.unlock()},destroy:function(){var e=this,t=e.eventNS,i=e.revertSettings;e.trigger("destroy"),e.off(),e.$wrapper.remove(),e.$dropdown.remove(),e.$input.html("").append(i.$children).removeAttr("tabindex").removeClass("selectized").attr({tabindex:i.tabindex}).show(),e.$control_input.removeData("grow"),e.$input.removeData("selectize"),_(window).off(t),_(document).off(t),_(document.body).off(t),delete e.$input[0].selectize},render:function(e,t){var i,n="",a=!1,s=this;return(a="option"!==e&&"item"!==e?a:!!(i=T(t[s.settings.valueField])))&&(l(s.renderCache[e])||(s.renderCache[e]={}),s.renderCache[e].hasOwnProperty(i))?s.renderCache[e][i]:(n=_(s.settings.render[e].apply(this,[t,o])),"option"===e||"option_create"===e?n.attr("data-selectable",""):"optgroup"===e&&(t=t[s.settings.optgroupValueField]||"",n.attr("data-group",t)),"option"!==e&&"item"!==e||n.attr("data-value",i||""),a&&(s.renderCache[e][i]=n[0]),n[0])},clearCache:function(e){void 0===e?this.renderCache={}:delete this.renderCache[e]},canCreate:function(e){var t;return!!this.settings.create&&(t=this.settings.createFilter,e.length)&&("function"!=typeof t||t.apply(this,[e]))&&("string"!=typeof t||new RegExp(t).test(e))&&(!(t instanceof RegExp)||t.test(e))}}),p.count=0,p.defaults={options:[],optgroups:[],plugins:[],delimiter:",",splitOn:null,persist:!0,diacritics:!0,create:!1,createOnBlur:!1,createFilter:null,highlight:!0,openOnFocus:!0,maxOptions:1e3,maxItems:null,hideSelected:null,addPrecedence:!1,selectOnTab:!1,preload:!1,allowEmptyOption:!1,closeAfterSelect:!1,scrollDuration:60,loadThrottle:300,loadingClass:"loading",dataAttr:"data-data",optgroupField:"optgroup",valueField:"value",labelField:"text",optgroupLabelField:"label",optgroupValueField:"value",lockOptgroupOrder:!1,sortField:"$order",searchField:["text"],searchConjunction:"and",mode:null,wrapperClass:"selectize-control",inputClass:"selectize-input",dropdownClass:"selectize-dropdown",dropdownContentClass:"selectize-dropdown-content",dropdownParent:null,copyClassesToDropdown:!0,render:{}},_.fn.selectize=function(d){function c(e,a){function t(e,t){e=_(e);var i,n=T(e.val());(n||g.allowEmptyOption)&&(l.hasOwnProperty(n)?t&&((i=l[n][b])?_.isArray(i)?i.push(t):l[n][b]=[i,t]:l[n][b]=t):((i=d(e)||{})[w]=i[w]||e.text(),i[y]=i[y]||n,i[b]=i[b]||t,l[n]=i,o.push(i),e.is(":selected")&&a.items.push(n)))}var i,n,s,r,o=a.options,l={},d=function(e){e=v&&e.attr(v);return"string"==typeof e&&e.length?JSON.parse(e):null};for(a.maxItems=e.attr("multiple")?null:1,i=0,n=(r=e.children()).length;i<n;i++)if("optgroup"===(s=r[i].tagName.toLowerCase())){m=h=p=u=c=void 0;var c,u,p,h,m,f=r[i];for((p=(f=_(f)).attr("label"))&&((h=d(f)||{})[C]=p,h[k]=p,a.optgroups.push(h)),c=0,u=(m=_("option",f)).length;c<u;c++)t(m[c],p)}else"option"===s&&t(r[i])}var u=_.fn.selectize.defaults,g=_.extend({},u,d),v=g.dataAttr,w=g.labelField,y=g.valueField,b=g.optgroupField,C=g.optgroupLabelField,k=g.optgroupValueField;return this.each(function(){if(!this.selectize){var e=_(this),t=this.tagName.toLowerCase(),i=e.attr("placeholder")||e.attr("data-placeholder"),i={placeholder:i=i||g.allowEmptyOption?i:e.children('option[value=""]').text(),options:[],optgroups:[],items:[]};if("select"===t)c(e,i);else{var n,a,s,r,t=e,o=i,l=t.attr(v);if(l)for(o.options=JSON.parse(l),n=0,a=o.options.length;n<a;n++)o.items.push(o.options[n][y]);else{l=_.trim(t.val()||"");if(g.allowEmptyOption||l.length){for(n=0,a=(s=l.split(g.delimiter)).length;n<a;n++)(r={})[w]=s[n],r[y]=s[n],o.options.push(r);o.items=s}}}new p(e,_.extend(!0,{},u,i,d))}})},_.fn.selectize.defaults=p.defaults,_.fn.selectize.support={validity:y},p.define("drag_drop",function(e){if(!_.fn.sortable)throw new Error('The "drag_drop" plugin requires jQuery UI "sortable".');var n,t,i,a;"multi"===this.settings.mode&&((n=this).lock=(t=n.lock,function(){var e=n.$control.data("sortable");return e&&e.disable(),t.apply(n,arguments)}),n.unlock=(i=n.unlock,function(){var e=n.$control.data("sortable");return e&&e.enable(),i.apply(n,arguments)}),n.setup=(a=n.setup,function(){a.apply(this,arguments);var i=n.$control.sortable({items:"[data-value]",forcePlaceholderSize:!0,disabled:n.isLocked,start:function(e,t){t.placeholder.css("width",t.helper.css("width")),i.css({overflow:"visible"})},stop:function(){i.css({overflow:"hidden"});var e=n.$activeItems?n.$activeItems.slice():null,t=[];i.children("[data-value]").each(function(){t.push(_(this).attr("data-value"))}),n.setValue(t),n.setActiveItem(e)}})}))}),p.define("dropdown_header",function(e){var t,i=this;e=_.extend({title:"Untitled",headerClass:"selectize-dropdown-header",titleRowClass:"selectize-dropdown-header-title",labelClass:"selectize-dropdown-header-label",closeClass:"selectize-dropdown-header-close",html:function(e){return'<div class="'+e.headerClass+'"><div class="'+e.titleRowClass+'"><span class="'+e.labelClass+'">'+e.title+'</span><a href="javascript:void(0)" class="'+e.closeClass+'">×</a></div></div>'}},e),i.setup=(t=i.setup,function(){t.apply(i,arguments),i.$dropdown_header=_(e.html(e)),i.$dropdown.prepend(i.$dropdown_header)})}),p.define("optgroup_columns",function(r){function e(){var e,t,i,n,a=_("[data-group]",o.$dropdown_content),s=a.length;if(s&&o.$dropdown_content.width()){if(r.equalizeHeight){for(e=t=0;e<s;e++)t=Math.max(t,a.eq(e).height());a.css({height:t})}r.equalizeWidth&&(n=o.$dropdown_content.innerWidth()-l(),i=Math.round(n/s),a.css({width:i}),1<s)&&(n=n-i*(s-1),a.eq(s-1).css({width:n}))}}var n,o=this,l=(r=_.extend({equalizeWidth:!0,equalizeHeight:!0},r),this.getAdjacentOption=function(e,t){var i=e.closest("[data-group]").find("[data-selectable]"),e=i.index(e)+t;return 0<=e&&e<i.length?i.eq(e):_()},this.onKeyDown=(n=o.onKeyDown,function(e){var t,i;if(!this.isOpen||37!==e.keyCode&&39!==e.keyCode)return n.apply(this,arguments);o.ignoreHover=!0,t=(i=this.$activeOption.closest("[data-group]")).find("[data-selectable]").index(this.$activeOption),(i=(e=(i=37===e.keyCode?i.prev("[data-group]"):i.next("[data-group]")).find("[data-selectable]")).eq(Math.min(e.length-1,t))).length&&this.setActiveOption(i)}),function(){var e,t=l.width,i=document;return void 0===t&&((e=i.createElement("div")).innerHTML='<div style="width:50px;height:50px;position:absolute;left:-50px;top:-50px;overflow:auto;"><div style="width:1px;height:100px;"></div></div>',e=e.firstChild,i.body.appendChild(e),t=l.width=e.offsetWidth-e.clientWidth,i.body.removeChild(e)),t});(r.equalizeHeight||r.equalizeWidth)&&(a.after(this,"positionDropdown",e),a.after(this,"refreshOptions",e))}),p.define("remove_button",function(e){e=_.extend({label:"×",title:"Remove",className:"remove",append:!0},e);function t(s,e){var t,i=s,r='<a href="javascript:void(0)" class="'+e.className+'" tabindex="-1" title="'+o(e.title)+'">'+e.label+"</a>";s.setup=(t=i.setup,function(){var a;e.append&&(a=i.settings.render.item,i.settings.render.item=function(e){return t=a.apply(s,arguments),i=r,n=t.search(/(<\/[^>]+>\s*)$/),t.substring(0,n)+i+t.substring(n);var t,i,n}),t.apply(s,arguments),s.$control.on("click","."+e.className,function(e){e.preventDefault(),i.isLocked||(e=_(e.currentTarget).parent(),i.setActiveItem(e),i.deleteSelection()&&i.setCaret(i.items.length))})})}var i,n,a,s,r;"single"===this.settings.mode?(i=this,(n=e).className="remove-single",s=i,r='<a href="javascript:void(0)" class="'+n.className+'" tabindex="-1" title="'+o(n.title)+'">'+n.label+"</a>",i.setup=(a=s.setup,function(){var e,t;n.append&&(e=_(s.$input.context).attr("id"),_("#"+e),t=s.settings.render.item,s.settings.render.item=function(e){return t.apply(i,arguments)+r}),a.apply(i,arguments),i.$control.on("click","."+n.className,function(e){e.preventDefault(),s.isLocked||s.clear()})})):t(this,e)}),p.define("restore_on_backspace",function(i){var n,e=this;i.text=i.text||function(e){return e[this.settings.labelField]},this.onKeyDown=(n=e.onKeyDown,function(e){var t;if(!(8===e.keyCode&&""===this.$control_input.val()&&!this.$activeItems.length&&0<=(t=this.caretPos-1)&&t<this.items.length))return n.apply(this,arguments);t=this.options[this.items[t]],this.deleteSelection(e)&&(this.setTextboxValue(i.text.apply(this,[t])),this.refreshOptions(!0)),e.preventDefault()})}),p}),$(document).ready(function(){var e,t,i;void 0!==WHMCS.selectize?(jQuery(".selectize-client-search").data("search-url",getClientSearchPostUrl()),WHMCS.selectize.clientSearch()):(e=jQuery(".selectize-client-search"),t=e.selectize({plugins:["whmcs_no_results"],valueField:e.data("value-field"),labelField:"name",searchField:["name","email","companyname"],create:!1,maxItems:1,preload:"focus",optgroupField:"status",optgroupLabelField:"name",optgroupValueField:"id",optgroups:[{$order:1,id:"active",name:e.data("active-label")},{$order:2,id:"inactive",name:e.data("inactive-label")}],render:{item:function(e,t){return"function"==typeof dropdownSelectClient&&dropdownSelectClient(t(e.id),t(e.name)+(e.companyname?" ("+t(e.companyname)+")":"")+(0<e.id?" - #"+t(e.id):""),t(e.email)),'<div><span class="name">'+t(e.name)+(e.companyname?" ("+t(e.companyname)+")":"")+(0<e.id?" - #"+t(e.id):"")+"</span></div>"},option:function(e,t){return'<div><span class="name">'+t(e.name)+(e.companyname?" ("+t(e.companyname)+")":"")+(0<e.id?" - #"+t(e.id):"")+"</span>"+(e.email?'<span class="email">'+t(e.email)+"</span>":"")+"</div>"}},load:function(e,t){jQuery.ajax({url:getClientSearchPostUrl(),type:"POST",dataType:"json",data:{dropdownsearchq:e,clientId:i},error:function(){t()},success:function(e){t(e)}})},score:function(e){var i=this.getScoreFunction(e);return function(e){var t=i(e);return t=t&&"inactive"===e.status?1e-7:t}},onChange:function(e){jQuery("#goButton").length&&e.length&&e!=i&&jQuery("#goButton").click()},onFocus:function(){i=t.getValue(),t.clear()},onBlur:function(){(""==t.getValue()||t.getValue()<1)&&t.setValue(i)}}),i="",t.length&&(t=t[0].selectize))});