/*!!! copied from the white-label wl_Dialog.js !!!*/
function redirect(n){$(window).trigger("redirect");window.location.href=n}function downloadFile(n){window.location.href=n}function reload(){$(window).trigger("redirect");window.location.reload()}function reloadOpener(){if(window.opener)try{window.opener.location.reload()}catch(n){if(n instanceof DOMException&&n.code===DOMException.SECURITY_ERR)return;throw n;}}function copyToClipboard(n){var t=$("<input>");$("body").append(t);t.val(n).select();document.execCommand("copy");t.remove()}function canCloseWindow(){return window.opener!=null}function include(n){var t=document.createElement("script");t.src=n;t.type="text/javascript";document.getElementsByTagName("head").item(0).appendChild(t)}function getFunctionByName(n){var t;if(!n)return undefined;if(_.isFunction(n))return n;var i=window,r=n.split("."),u=r.pop();for(t=0;t<r.length;t++)i=i[r[t]];return i[u]}function callFunction(n){var i,t,r;return n?(i=_.without(arguments,n),t=function(n,t){if(!n)return undefined;if(!_.isFunction(n))throw error("Couldn't resolve function "+n.toString());return n.apply(t,i)},_.isString(n)?(_.each(n.split(","),function(n){if(n){var i=n.indexOf(".")!=-1?getFunctionByName(n.substring(0,n.lastIndexOf("."))):null;r=t(getFunctionByName(n),i)}}),r):t(n)):undefined}function htmlEncode(n){if(!n)return"";return n.replace(/&/g,"&amp;").replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,function(n){var t=n.charCodeAt(0),i=n.charCodeAt(1);return"&#"+((t-55296)*1024+(i-56320)+65536)+";"}).replace(/([^\#-~| |!])/g,function(n){return"&#"+n.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function htmlDecode(n){if(!n)return"";var t=document.createElement("pre");return t.innerHTML=n.replace(/</g,"&lt;"),t.textContent}function generateImagePreviewUrl(n,t,i){return sprintf("https://openwaterserverless.azurewebsites.net/api/imageconvert?url=%s&width=%d&height=%d&color=white",encodeURIComponent(n),t,i)}function isEmail(n){var t=n.lastIndexOf("@"),i=n.substr(t+1);return n.split(/[,;]/).length==1&&t>0&&n.lastIndexOf(".")>t&&n.length-t>4&&!n.contains(" ")&&i.match(appConfig.regexLib.urlDomain)}function showGlobalSpinner(){$("#globalSpinner").show()}function hideGlobalSpinner(){$("#globalSpinner").hide()}function getFileExtension(n){var t=n.split(".");return t.length===1||t[0]===""&&t.length===2?"":t.pop()}function buildRandomFilenamePreservingExtension(n){var t=getFileExtension(n);return uuid.v4()+(!t?"":".")+t}function scrollToElement(n){$("html, body").scrollTop(n.offset().top-($(window).height()-n.outerHeight(!0))/2)}var _parseIntOriginal,namespace;$.fn.fadeInSlide=function(n,t){return $.isFunction(n)&&(t=n),n||(n=200),t||(t=function(){}),this.each(function(){var i=$(this);i.fadeTo(n/2,1).slideDown(n/2,function(){t()})}),this};$.fn.fadeOutSlide=function(n,t){return $.isFunction(n)&&(t=n),n||(n=200),t||(t=function(){}),this.each(function(){var i=$(this);i.fadeTo(n/2,0).slideUp(n/2,function(){i.remove();t()})}),this};$.msg=function(n,t){function o(n,t){return'<div class="msg-box"><h3>'+(t||"")+'<\/h3><a tabindex="10" aria-label="'+n+'" class="msg-close">close<\/a><div class="msg-content">'+n.replace("\n","<br>")+"<\/div><\/div>"}function s(){r=$(o(n,t.header));closeall=$(".msg-box-close");e?closeall.length?r.insertBefore(closeall):(r.appendTo(i),$('<div class="msg-box-close">close all<\/div>').appendTo(i).fadeInSlide(t.fadeTime)):r.appendTo(i);r.fadeInSlide(t.fadeTime);i.data("msgcount",++e);t.sticky||u(r,t.live)}function u(n,r,f){$.isFunction(r)?(f=r,r=0):r||(r=0);setTimeout(function(){i.data("pause")?u(n,r):n.fadeOutSlide(t.fadeTime,function(){var r=$(".msg-box").length;r<2&&$(".msg-box-close").length&&$(".msg-box-close").fadeOutSlide(t.fadeTime);i.data("msgcount",r);$.isFunction(f)&&f.call(n)})},r)}var t=$.extend({},$.msg.defaults,t),i=$("#wl_msg"),r,f,e;return(i.length||(i=$("<div/>",{id:"wl_msg"}).appendTo("body").data("msgcount",0),f=parseInt(i.css("top"),10),i.bind("mouseenter",function(){i.data("pause",!0)}).bind("mouseleave",function(){i.data("pause",!1)}),i.delegate(".msg-close","click",function(){i.data("pause",!1);u($(this).parent())}),i.delegate(".msg-box-close","click",function(){i.fadeOutSlide(t.fadeTime)}),$(window).unbind("scroll.wl_msg").bind("scroll.wl_msg",function(){var n=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop;n>f?window.navigator.standalone===undefined?i.css({position:"fixed",top:10}):i.css({top:n+10}):window.navigator.standalone===undefined?i.removeAttr("style"):i.css({top:f})}).trigger("scroll.wl_msg")),!n)?!1:(e=i.data("msgcount"),s(),{close:function(n){u(r,n)},setHeader:function(n){r.find("h3").eq(0).text(n)},setBody:function(n){r.find(".msg-content").eq(0).html(n)},closeAll:function(n){i.fadeOutSlide(t.fadeTime,function(){$.isFunction(n)&&n.call(this)})}})};$.msg.defaults={header:null,live:5e3,topoffset:90,fadeTime:500,sticky:!1};$(document).ready(function(){$.msg(!1)}),function(n){window.Alert={success:function(t,i){n.msg(t,{header:"Success",live:i||1500});n("#wl_msg .msg-box:last h3").addClass("success")},error:function(t,i,r){var u,f;if(!t)throw new Error("Error is not defined.");u=_.isString(t)?t:t.supportId?"An error has occurred. Please try again in 1-2 minutes. If the error continues please contact support and reference the support id..<br/><br/>Support ID: "+t.supportId:t.description?t.description:t.formElementErrors?t.formElementErrors[0].description:"Unknown server error ("+t.status+").";_.isArray(r)&&!!r.length&&(f=_(r).map(function(n){return sprintf("<a href='%(url)s' "+(n.onClick?"onclick='%(onClick)s'":"target='_blank'")+">%(label)s<\/a>",n)}).join("<span>|<\/span>"),u+="<br/>"+f);n.msg(u,{header:"Error",live:i,sticky:i===undefined});n("#wl_msg .msg-box:last h3").addClass("alert")}}}(jQuery),function(n){function t(n){return n&&n.id&&n.id!=="0"&&n.id!=="00000000-0000-0000-0000-000000000000"}function i(n){var i=document.createElement("a"),t=document.createElement("a");i.href=location.href;try{return t.href=n,t.href=t.href,i.protocol+"//"+i.host!=t.protocol+"//"+t.host}catch(r){return!0}}n.fn.extend({findView:function(n){var t="[data-viewName='"+n+"']";return this.find(t).addBack(t).data("view")}});n.extend(Backbone.History.prototype,{origStart:Backbone.History.prototype.start,start:function(){Backbone.History.started||this.origStart.call(this)}});n.extend(Backbone.Events,{delegateTo:function(n,t){if(!this._events)return this;for(var i,r=_.keys(this._events);i=r.shift();)_.each(this._events[i],function(r){if(r&&r.context===t)n.on(i,r.callback,r.context)});return this.off(null,null,t),this}});n.extend(Backbone.Model.prototype,Backbone.Events,{origSet:Backbone.Model.prototype.set,set:function(n,t,i){return this.origSet.call(this,n,t,i)&&(this.readOnly=this.get("readOnly")),this},clone:function(){var t=new this.constructor(n.extend(!0,{},this.toJSON()),this.options);return t.collection=this.collection,t},isNew:function(){return this.collection&&!this.collection.get(this.id)||!t(this)},destroy:function(t){var r,i,u;if(t||(t={}),r=t.url||_.result(this,"destroyUrl"),!t.localMode&&!r)throw"destroy url is undefined!";return r&&(r=n.templates(r).render(this.attributes)),i=this,u=t.success,t.success=function(n,t,r,f){i.trigger("destroy",i,i.collection,t);i.collection&&i.collection.remove(i);u&&u(i,n,t,r,f)},t.localMode?(t.success=BackboneExtHelpers.wrapSuccess(t.success,t.error,t),t.success()):Backbone.destroy(r,t)},save:function(n){var i,t,r;if(n||(n={}),i=n.url||_.result(this,"saveUrl"),!i&&!n.localMode)throw"save url is undefined!";return t=this,r=n.success,n.success=function(n,i,u,f){(i.localMode||t.set(t.parse(n.result,f),{silent:!0}))&&(t.trigger("change",t),t.collection&&!t.collection.get(t.id)&&t.collection.add(t),r&&r(t,n,i,u,f))},n.localMode?(n.success=BackboneExtHelpers.wrapSuccess(n.success,n.error,n),n.success()):n.method?Backbone._sync(i,n.method.toUpperCase(),this,n):this.isNew()?Backbone.post(i,this,n):Backbone.put(i,this,n)}});n.extend(Backbone.Collection.prototype,Backbone.Events,{origPrepareModel:Backbone.Collection.prototype._prepareModel,_prepareModel:function(n,t){this.options&&_.isFunction(this.model)&&(t=_.extend({},this.options,t));var i=this.origPrepareModel.call(this,n,t);return i&&(i.collection=this),i},"new":function(n,t){return this._prepareModel(n,t)}});n.extend(Backbone.View.prototype,Backbone.Events,{origConfigure:Backbone.View.prototype._configure,_configure:function(n){if(Notifier.get("global").trigger("backboneViewCreated",this),this.settings=n.settings,this.parentView=n.parentView,this.routes&&_.isObject(this.routes)){var i=this.render,t=this,r=_.once(function(){var n=_.clone(t.routes),i;_.chain(n).keys().each(function(i){n[i]=_.bind(t[n[i]],t)});i=new(Backbone.Router.extend({routes:n}));Backbone.History.started||Backbone.history.start();t.trigger("routesBound",i)});this.render=function(n){var u=undefined;return i&&(u=i.call(t,n)),r(),u}}return this.origConfigure.call(this,n)},origEnsureElement:Backbone.View.prototype._ensureElement,_ensureElement:function(){this.origEnsureElement.apply(this);var n=this.viewName||this.getViewName&&this.getViewName();n&&this.$el.attr("data-viewName",n).data("view",this)},origTrigger:Backbone.View.prototype.trigger,trigger:function(){this.origTrigger.apply(this,arguments);this.parentView&&this.parentView.trigger&&this.parentView.trigger.apply(this.parentView,arguments)},setModel:function(n){return this.model&&this.model.delegateTo&&this.model.off&&this.model.delegateTo(n,this),this.model=n,this.options.model=n,this},getForm:function(){var n=this.$el.is("form")?this.$el:this.$("form");if(n.length==0)return null;if(n.length==1)return n;throw"There are more than one form in the current view.";},getFormUrl:function(n){return(n||this.getForm()).attr("action")},resetForm:function(n){n=n||{};var t=n.form||this.getForm();return t.reset({dontResetHiddenInputs:n.dontResetHiddenInputs}),t.clearErrors(),this},bindToModel:function(n){return n=n||this.model,this.getForm().fillFrom(_(n.attributes).pick(_.chain(n.attributes).keys().reject(function(n){return n.startsWith("_")||n.startsWith("$")}).value())),this},save:function(n){return n=n||{},this.model||(this.model=new Backbone.Model),n.form=n.form||this.getForm(),n.url=n.url||this.getFormUrl(n.form),!n.method&&n.form&&(n.method=n.form.find("input[name='"+appConfig.httpMethodOverrideFormInputName+"']:hidden").val()),n.replaceModelWithFormData&&this.model.clear({silent:!0}),this.model.set(_.extend(n.form.toObject(),n.data),{silent:!0}),this.model.save(n)},submitForm:function(n){var r,u,i,f;if(n=n||{},n.form=n.form||this.getForm(),!n.method&&n.form&&(n.method=n.form.find("input[name='"+appConfig.httpMethodOverrideFormInputName+"']:hidden").val()),r=_.extend(n.form.toObject(),n.data),u=n.url||this.getFormUrl(n.form),!u)throw"submit url is undefined!";return n.refreshModel&&this.model&&(i=this.model,f=n.success,n.success=function(n){i.set(_.extend({},r,i.parse(n.result)));i.collection&&!i.collection.get(i.id)&&i.collection.add(i);f&&f.apply(arguments)}),n.method?Backbone._sync(u,n.method.toUpperCase(),r,n):t(r)?Backbone.put(u,r,n):Backbone.post(u,r,n)},show:function(){return this.$el.show(),this},hide:function(){return this.$el.hide(),this},toggle:function(n){return n===undefined?this.$el.toggle():this.$el.toggle(n),this},close:function(){this.undelegateEvents();this.model&&this.model.off(null,null,this);this.onClose&&this.onClose()},scrollTop:function(t){if(Browser.isFirefox())n(window).scrollTop(0);else{var i=this.$el.offset().top-(t||0);n(window).scrollTop(i)}}});n.extend(Backbone,{post:function(n,t,i){return Backbone._sync(n,"POST",t,i)},put:function(n,t,i){return Backbone._sync(n,"PUT",t,i)},destroy:function(n,t){return t=t||{},t.successMessage=t.successMessage||"Deleted successfully.",Backbone._sync(n,"DELETE",null,t)},get:function(n,t){return Backbone._sync(n,"GET",null,t)},invoke:function(n,t,i){return i=i||{},i.dontShowSuccessAlert=!0,Backbone.post(n,t,i)},runReportAsync:function(n,t,i){return Backbone.invoke(n,t,{success:function(n){CronJob.poll(n.result.jobId,{showModal:i,success:function(n){n.url&&downloadFile(n.url)},message:appConfig.isBackend?undefined:"Please wait as your report generates."})}})},_sync:function(t,r,u,f){var o,e,s;return f||(f={}),f.url=t,f.error=BackboneExtHelpers.wrapError(f.error,f,u),r!="GET"&&(f.success=BackboneExtHelpers.wrapSuccess(f.success,f.error,f)),u&&(_.isString(u)?f.data=u:u instanceof FormData?(f.data=u,f.contentType=!1):(f.data=JSON.stringify(u),f.contentType="application/json")),o=f.success,o&&(f.success=function(n,t,i,r){f.showGlobalSpinner&&hideGlobalSpinner();o({result:n,requestData:u},t,i,r)}),f.dontShowWaitCursor||r=="GET"||n("body").css("cursor","wait"),f.showGlobalSpinner&&showGlobalSpinner(),e={},f.form&&(s=f.form.toObject(),s[appConfig.googleRecaptchaResponseHeaderName]&&(e[appConfig.googleRecaptchaResponseHeaderName]=s[appConfig.googleRecaptchaResponseHeaderName])),r=="GET"||i(t)||(e[appConfig.requestVerificationTokenHeaderName]=appConfig.requestVerificationToken,appConfig.saveToken&&(e[appConfig.saveTokenHeaderName]=appConfig.saveToken)),_.isEmpty(e)||(f.beforeSend=function(n){_(e).each(function(t,i){n.setRequestHeader(i,t)})}),Backbone.sync({POST:"create",PUT:"update",DELETE:"delete",GET:"read"}[r],new Backbone.Model,f)}});window.BackboneExtHelpers={wrapSuccess:function(t,i,r){return function(i,u,f){r.dontShowWaitCursor||n("body").css("cursor","auto");r.form&&r.form.clearErrors();r.dontShowSuccessAlert||Alert.success(r.successMessage||"Changes have been saved successfully.");r.form&&r.form.trigger("save",i);t&&t(i,r,u,f);f&&f.status==200&&i&&i.result&&i.result.redirectUrl&&redirect(i.result.redirectUrl)}},wrapError:function(t,i,r){return function(u){var e,f,o;i.dontShowWaitCursor||n("body").css("cursor","auto");i.showGlobalSpinner&&hideGlobalSpinner();e=u.getResponseHeader("content-type")||"";f={};u.status==503?Alert.error("System Maintenance is in Progress. Please try again in a few minutes."):u.status==404?Alert.error("Resource is not found."):e.indexOf("application/json")!=-1?(f=n.parseJSON(u.responseText),f.status=u.status,i.dontShowErrorAlert||Alert.error(f),i&&i.form&&i.form.highlightErrorFields(f)):appConfig.isDevEnvironment&&u.responseText?(o=e.indexOf("text/html")!=-1?n(u.responseText).filter(function(){return n(this).is(".titleerror")}).text().replace("Exception: ",""):u.responseText.split("\r\n")[0],window.errors=window.errors||[],window.errors.push(u.responseText),Alert.error(o,undefined,[{url:"javascript:void(0);",onClick:"window.open().document.write(window.errors["+(window.errors.length-1)+"])",label:"Show details"},])):i.dontShowTimeoutErrorAlert&&(u.status==504||u.status==524)||Alert.error(u.status==0?"A connection issue occurred, please try again.":sprintf("Unknown server error (%d).",u.status));i&&i.form&&i.form.triggerHandler("error",f);t?t(u,i,status):r&&r.trigger&&r.trigger("error",r,u,i)}}}}(jQuery),function(){function n(n){return navigator.userAgent.toLowerCase().indexOf(n.toLowerCase())!=-1}var t="MSIE";window.Browser={isIe8:function(){return Browser.getIeVersion()==8},getIeVersion:function(){return Browser.isIe()?Browser.isIe11()?11:parseFloat(navigator.appVersion.split(t)[1]):null},isIe:function(){return n(t)||Browser.isIe11()},isIe11:function(){return n("Trident/")},isChrome:function(){return n("chrome")},isFirefox:function(){return n("firefox")}}}(),function(n){var t=n.fn.columnFilter;n.fn.columnFilter=function(i){var u;if(!i||this.filteredColumnIndex===undefined)return this;i.sPlaceHolder||(i.sPlaceHolder="toolbar:center");var f="<tfoot><tr>",r=[],o=this;if(_(this.api().columns().indexes()).each(function(n){n==o.filteredColumnIndex?(f+=sprintf("<th>%s<\/th>",i.defaultValue||""),r.push({type:"select",label:i.label,values:i.values,selected:i.selectedValue,bSmart:i.bSmart,valueDelimiterInSmartMode:i.valueDelimiterInSmartMode,dontUseDefaultValue:i.dontUseDefaultValue})):(f+="<th><\/th>",r.push(null))}),f+="<\/tr><\/tfoot>",this.append(f),r.length){_.each(r,function(n){n&&(n.values=_(n.values).map(function(n){return typeof n=="string"?e(n):(n.value=e(n.value),n)}))});function e(t){return htmlEncode(n.trim(t.replace(/\s+/g," ")))}}return t.call(this,{aoColumns:r,sPlaceHolder:i.sPlaceHolder}),i.sPlaceHolder=="toolbar:center"&&(u=this.closest("div.dataTables_wrapper"),u.find("tfoot tr th").each(function(t){if(n(this).css("display")!="none"){var i=n(this).find("span.filterColumn");i.length!=0&&(u.find(".dataTablesToolbar .centerDiv").append(r[t].label),u.find(".dataTablesToolbar .centerDiv").append(i.clone(!0)))}}),u.find("tfoot").remove()),this}}(jQuery),function(){var n={title:"Are you sure?",icon:"warning",buttons:{cancel:"Cancel",confirm:"OK"}};window.Confirmation={request:function(t,i){var r=_(n).clone();return i=_.extend(r,i,{title:null,content:$("<p><\/p>").addClass("swal-title").html(i.isMessageHtml?t:t.split("\n").join("<br>"))[0]}),swal(i).then(function(n){var t=n?i.callback:i.cancelCallback;$.isFunction(t)&&t()})},requestDelete:function(n,t){return n=_.extend({itemName:"item"},n),t=t||sprintf("Are you sure you want to delete this %(itemName)s?",n),this.request(t,n)},alert:function(n,t){return t=_.extend({buttons:{cancel:!1,confirm:!0}},t),this.request(n,t)},close:function(){swal.close()}}}(),function(n){var t=0;window.CronJob={getActiveBackgroundJobsCount:function(){return t},poll:function(i,r){var o,u,e,f,s;t++;r=r||{};o=(new Date).getTime();r.hideSpinner||n("body").addClass("waitCursor");f="#emailAdminWhenJobIsComplete";s=window.setInterval(function(){var c=Math.floor(((new Date).getTime()-o)/1e3),h,l,a;c>5&&r.showModal&&(u||(u=n.alert("",{buttons:[{text:n.alert.defaults.text.ok,click:function(){n(f).is(":checked")&&Backbone.put(appConfig.enableAdminEmailNotificationAboutJobCompletionUrl.replace("{{:jobId}}",i),{},{success:function(){redirect(appConfig.myTasksListUrl)}});n(this).dialog("close");n("#wl_dialog").remove()}}]}),u.setHeader("Background Task Processing"),n("body").removeClass("waitCursor")),h=r.message?r.message+"<br/><br/>":r.currentPageJob?sprintf("<strong>This task is now running<\/strong><br/><br/>Please do not leave this page.<br/><br/>Time Elapsed: %s second(s)<br/><br/>",c):sprintf("<strong>Please wait as your request is processed<\/strong><br/><br/>You may also continue working on other pages and view the results of this operation by clicking 'Tasks/Reports' at the top right.<br/><br/>Time Elapsed: %s second(s)<br/><br/>",c),h+="<input type='checkbox' id='emailAdminWhenJobIsComplete' name='emailAdminWhenJobIsComplete' style ='vertical-align: -2px; margin-right: 5px;'",n(f).is(":checked")&&(h+="checked='checked'"),h+="> <label for='emailAdminWhenJobIsComplete'>Email me when done<\/label> <br/><br/>",u.setBody(h),currentUser.isSuperAdmin&&n(f).click(function(){n(this).is(":checked")&&Confirmation.alert(sprintf("Super Admin emails will be sent to %s",currentUser.email))}));l=function(){if(window.clearInterval(s),n("body").removeClass("waitCursor"),u)try{u.close()}catch(i){if(i.message!=="cannot call methods on dialog prior to initialization; attempted to call method 'close'")throw i;}t--};a=r.backgroundJobPollUrl||appConfig.backgroundJobPollUrl;e||(e=!0,Backbone.invoke(a.replace("{{:jobId}}",i),null,{dontShowWaitCursor:!0,dontShowErrorAlert:!0,dontShowTimeoutErrorAlert:r.dontShowTimeoutErrorAlert,success:function(n){var t=n.result,u;t.stateName=="Succeeded"?(l(),r.success&&r.success(t.result),r.complete&&r.complete()):t.stateName=="Failed"||t.stateName=="Deleted"?(l(),r.error?r.error(t):n.result&&(u=[],appConfig.isDevEnvironment&&u.add({url:appConfig.hangfireDashboardRootUrl+"/jobs/details/"+i,label:"Open in Hangfire Dashboard"}),Alert.error(t.result,undefined,u)),r.complete&&r.complete()):t.stateName=="Processing"&&r.processing&&r.processing(t)}}).always(function(){e=!1}))},1500)}}}(jQuery),function(n){function u(n,t,i){var r=n.api().row(t.closest("tr")),u=r.data();u.isSelected=i;r.data(u)}function y(n){var i="input.checkAll",t;n.on("change",i,{dataTable:n},f);t="input.selectRow:not(.checkAll)";n.on("change",t,{dataTable:n},e);n.on("click",t,{dataTable:n},o);n.api().one("destroy",function(){n.off("change",i,f);n.off("change",t,e);n.off("click",t,o)})}function f(t){var i=t.data.dataTable,e=i.find(t.target),r=e.is(":checked"),f=i.find("input.selectRow:not(.checkAll):not(:disabled)");f.prop("checked",r);_(f).each(function(t){u(i,n(t),r)});i.trigger("selectedRowsChanged.dataTable",{selectedRowCount:i.api().getSelectedRows().length})}function e(t){var i=t.data.dataTable,r;i.find(".checkAll").prop("checked",!i.find("input:not(.checkAll):not(:checked)").length);r=n(t.target);u(i,r,r.is(":checked"));i.trigger("selectedRowsChanged.dataTable",{selectedRowCount:i.api().getSelectedRows().length})}function o(i){var u=i.data.dataTable,f=u.api().row(n(this).closest("tr")).data().id,e=n(i.target).is(":checked"),r,o;t&&i.shiftKey&&e&&(r=!1,o=u.find("input.selectRow:not(.checkAll):not(:disabled)"),_(o).each(function(i){var e=n(i),o=u.api().row(e.closest("tr")).data().id;if(o===f||o===t){r=!r;return}r&&e.prop("checked",!0).change()}));t=e?f:undefined}function p(t,i,r){Backbone.get(appConfig.bulkRowSelectorTemplateUrl,{dataType:"html",success:function(u){var f,e,o;if(u.result){f=n(u.result);e=f.closest(".bulkRowSelector");t.after(f);o=t.attr("id");o&&e.attr("relatedTableId",o);t.bulkRowSelectorView=new widgets.bulkRowSelector.BulkRowSelectorView({el:e,columnTitle:r.columnTitle,columnTitleInPlural:r.columnTitleInPlural});t.bulkRowSelectorView.render();t.bulkRowSelectorView.on("bulkRowSelectionApplied",function(n){var u=[],f;_(n).each(function(n){var t=i.api().checkCheckboxBy(r.columnId,n);t||u.push(n)});f=n.length;t.bulkRowSelectorView.showResults(f-u.length,f,u)});i.closest("div.dataTables_wrapper").on("click","button.bulkRowSelectorBtn",function(){t.bulkRowSelectorView.showDialog()})}}})}function w(t,i){t.createdCell=function(t,r,u){var f=uuid.v4();n.templates(f,i);t.title=n.render(f,u)}}function b(n,t){n.createdCell=function(n,i){var r=i.hasOwnProperty(t)&&typeof i[t]=="string"?htmlDecode(i[t]):i[t];_.isNullOrUndefined(r)&&(r="");n.title=r}}function i(n,t){n.data=function(n,i){return i?t.call(null,n):n}}function k(n,t){t.on("change",s,{dataTable:n});t.on("add",h,{dataTable:n});t.on("remove",c,{dataTable:n});t.on("reset",l,{dataTable:n});var i=t._events;i.change.unshift(i.change.pop());i.add.unshift(i.add.pop());i.remove.unshift(i.remove.pop());i.reset.unshift(i.reset.pop());n.api().one("destroy",function(){t.off("change",s);t.off("add",h);t.off("remove",c);t.off("reset",l)})}function s(n,t){var i=this.dataTable.api(),r={reDraw:!0},f=n.idAttribute||"id",u=i.findRowIndexUsingCol(n.id,f);u!=-1&&(_.extend(r,t),i.row(u).data(n.attributes),r.reDraw&&i.draw())}function h(n,t,i){var r=this.dataTable.api();r.row.add(n.attributes);i.dontRedrawDataTable||r.draw()}function c(n){var t=this.dataTable.api(),r=n.idAttribute||"id",i=t.findRowIndexUsingCol(n.id,r);i!=-1&&t.row(i).remove().draw()}function l(){this.dataTable.api().clear().draw()}function d(n,t,i,r){var u=n.find("tbody");u.sortable({cursor:"move",axis:"y",tolerance:"intersect",opacity:.4,start:function(n,t){t.item.find("td").not("td:nth-child(2)").hide()},stop:function(n,t){t.item.find("td").not("td:nth-child(2)").show()},update:function(u,f){_.isFunction(r)?r(n,f,i):a(n,t,i,"sortOrder")}})}function g(t,i,r,u){function c(n){var t=n.data("multidrag");t.find("td").css("background-color","");n.after(t);e.find("tr").removeClass("sortable")}var f=t.api();if(_(f.data()).any(function(n){return!_(n).has(r.orderDataKey)||!_(n).has("id")||!_(n).has("path")||!_(n).has("parentId")}))throw Error("Row data must have 'id', 'path', 'parentId' and order property specified by 'orderDataKey' option.");var o=function(n,t){return _(n.split("_")).indexOf(t.toString())>=0},s=function(n){return n.path.split("_").length},h=function(n,t,i){var r=n.data("parentId"),u=f.row(i).data(),c=u!=undefined,e=f.row(t).data(),h=e!=undefined,l=h?e.parentId:undefined;return r==l||c&&r&&o(u.path,r)&&(!h||s(e)<s(u))},e=t.find("tbody");e.sortable({cursor:"move",axis:"y",tolerance:"intersect",opacity:.4,appendTo:"tbody",cursorAt:{top:5,left:5},forcePlaceholderSize:!0,placeholder:"placeholderClass",helper:function(t,i){var h=f.row(i).data(),c=i.find(".reorderCell"),u,s;e.sortable("option","cursorAt",{top:c.height()/2,left:c.width()/2});var l=f.rows(function(n,t){return o(t.path,h.id)}).nodes().to$(),a=i.width(),r=n("<tr><td><table><\/table><\/td><\/tr>");return r.css("width",a),r.css("height",i.height()*l.length),r.attr("colspan",i.find("td").length),r.find("td").css({"max-width":"inherit",width:a}),u=l.not(i),u.addClass("dragging"),i.data("multidrag",u),i.data("parentId",h.parentId),s=r.find("table"),s.append(i.clone().addClass("dragging")),s.append(u),e.sortable("refresh"),r},change:function(n,t){var i=h(t.item,t.placeholder.next(":not(.ui-sortable-helper)"),t.placeholder.prev(":not(.ui-sortable-helper)"));t.helper.find("table td").css("background-color",i?"":"red")},stop:function(n,t){t.item.data("itemUpdated")?t.item.removeData("itemUpdated"):c(t.item)},update:function(n,i){i.item.data("itemUpdated",!0);var f=!1;h(i.item,i.item.next(":not(.ui-sortable-helper)"),i.item.prev(":not(.ui-sortable-helper)"))||(f=!0,e.sortable("cancel"));c(i.item);f||a(t,r.url,u,r.orderDataKey)}})}function a(t,i,r,u){var h=t.find("tbody tr"),f=t.api(),e=n.map(h,function(n){return f.row(n).data()}),o=f.rows().data().length,c=o===e.length?_.range(o):_(e).chain().map(function(n){return n.sortOrder}).sortBy().value(),s=_(e).map(function(n,t){return{id:n.id,sortOrder:c[t]}}),l=f.page.info();Backbone.post(i,{sortOrderInfos:s},{success:function(){_(e).each(function(n,t){var i=s[t].sortOrder,e,o;r?(e=r.get(n.id),e.set(u,i)):(o=f.findRowIndexUsingCol(n.id,"id"),n[u]=i,f.row(o).data(n).draw())});f.page(l.page).draw();t.trigger("sortOrdersChanged.dataTable")},error:function(){f.order([[0,"asc"]])}})}var r=n.fn.dataTable,t,v;n.fn.dataTable=function(t){var f,e,o=t&&t.bulkRowSelectorData&&t.allowSelection&&t.columns&&_(t.columns).some(function(n){return n.id==t.bulkRowSelectorData.columnId}),s,h,u;return t&&(t.data instanceof Backbone.Collection&&(t.collection=t.data,t.data=t.collection.map(function(n){return n.attributes})),(t.changeSortOrderUrl||t.hierarchicalSortingOptions)&&(s=t.hierarchicalSortingOptions&&t.hierarchicalSortingOptions.reorderCellWidth?t.hierarchicalSortingOptions.reorderCellWidth:"15%",h=t.hierarchicalSortingOptions&&t.hierarchicalSortingOptions.orderDataKey?t.hierarchicalSortingOptions.orderDataKey:"sortOrder",t.columns=_.union([{data:h,searchable:!1,visible:!1},{width:s,template:"<div class='reorderCell'><\/div>",searchable:!1,className:"reorderColumn dataEdit"}],t.columns),_(t.columns).each(function(n){n.orderable=!1}),t.order=[[0,"asc"]]),t.columns&&(t.allowSelection&&(t.selectableColumn?t.columns.unshift(t.selectableColumn):t.columns.unshift({title:"<input type='checkbox' class='checkAll'/>",width:"4%",searchable:!1,orderable:!1,template:"<input type='checkbox' class='selectRow' {{if unremovable}}disabled='disabled'{{/if}} {{if isSelected}}checked='checked'{{/if}} />",className:"selectableColumn"}),_(t.order).each(function(n){n.length>0&&(n[0]+=1)})),_.chain(t.columns).each(function(t){var r="",u;(t.template?(u=uuid.v4(),n.templates(u,{markup:t.template,helpers:t.templateHelpers}),i(t,function(i){if(i.fieldCellValues){var r=_(i.fieldCellValues).find(function(n){return n.fieldId==t.id});r&&_.extend(i,r)}return n.render(u,i)})):_.isString(t.data)&&(r=t.data,t.dontEncodeHtml||i(t,function(t){return n.views.converters.encodeHtml(t[r])}),t.type=="money"&&i(t,function(n){return n[r].formatMoney()})),t.createdCell)||(t.tooltipTemplate?w(t,t.tooltipTemplate):t.showDataAsTooltip&&r&&b(t,r))})),(t.columns||t.columnDefs)&&_(t.columns||t.columnDefs).each(function(n,t){if(n.columnFilter)if(f===undefined)f=t,e=n.columnFilter;else throw"DataTable can't have more than one filtered column.";n.title=="Action"&&(n.orderable=!1,n.searchable=!1,n.className=(n.className||"")+" action")})),u=r.call(n(this),n.extend(!0,{},appConfig.dataTable,{initComplete:function(){var n=this.closest(".tableWrapper"),r,i,u,e;t.maxHeight&&n.height(t.maxHeight);t.description&&n.find("thead").before('<caption class="visuallyHidden">'+t.description+"<\/caption>");var f=n.find("input[type='checkbox'].selectRow").length,s=n.find("input[type='checkbox']:checked.selectRow").length,h=f>0&&f==s;(n.find("input[type='checkbox'].checkAll").prop("checked",h),r=this.closest("div.dataTables_wrapper"),i=r.prev("div.dataTablesLeftToolbar"),i.length!=0)&&(u="bulkRowSelectorBtn",o&&!i.find("button."+u).length&&(e=sprintf("Bulk select by %s",t.bulkRowSelectorData.columnTitle),i.append("<button class='"+u+"' style='display:block;'>"+e+"<\/button>")),r.find(".dataTablesToolbar .leftDiv").empty().append(i.show().detach()))}},t)),t&&(t.collection&&k(u,t.collection),t.changeSortOrderUrl&&d(u,t.changeSortOrderUrl,t.collection,t.updateSortOrderCallback),t.hierarchicalSortingOptions&&g(u,this,t.hierarchicalSortingOptions,t.collection),t.allowSelection&&y(u),f!==undefined&&(u.filteredColumnIndex=f,e===!0&&(e={values:_(u.api().data()).chain().map(function(n){return n[f]}).uniq().value()}),u.columnFilter(e)),o&&p(this,u,t.bulkRowSelectorData)),u};n.extend(n.fn.DataTable.Api.register("findRowIndexUsingCol",function(n,t){var i=[];return this.rows(function(r,u){return u[t]==n&&i.push(r),!1}),i.length>0?i[0]:-1}),n.fn.DataTable.Api.register("getSelectedRows",function(){var n=this;return _(n.rows(function(n,t){return t.isSelected}).eq(0)).map(function(t){return n.row(t)})}),n.fn.DataTable.Api.register("getSelectedIds",function(){return _(this.getSelectedRows()).map(function(n){return n.data().id})}),n.fn.DataTable.Api.register("removeSelectedRows",function(){return this.rows("tr:has(input.selectRow:checked)").remove().draw()}),n.fn.DataTable.Api.register("checkCheckboxById",function(n){this.checkCheckboxBy("id",n)}),n.fn.DataTable.Api.register("checkCheckboxBy",function(n,t){var i=this,u=!1;_(i.rows().eq(0)).each(function(r){var o=i.row(r),f=o.data(),e;f[n]==t&&(e=i.row(r).nodes().to$().find("input"),e.not(".width").prop("disabled",f.unremovable),e.prop("checked",!0),f.isSelected=!0,o.data(f),u=!0)});var r=i.tables().nodes().to$(),f=r.find("input[type='checkbox'].selectRow").length,e=r.find("input[type='checkbox']:checked.selectRow").length,o=f>0&&f==e;return r.find("input[type='checkbox'].checkAll").prop("checked",o),r.trigger("selectedRowsChanged.dataTable",{selectedRowCount:this.getSelectedRows().length}),u}),n.fn.DataTable.Api.register("atLeastOneChecked",function(){return this.getSelectedIds().length>0}),n.fn.DataTable.Api.register("toggleReorderingMode",function(t){this.column(".reorderColumn").visible(t);n(this.table().body()).sortable(t?"enable":"disable")}),n.fn.DataTable.Api.register("loadDataFromUrl",function(n,t){t=t||{};this.settings()[0].oLanguage.sEmptyTable="Please wait...";this.clear().draw();var i=this;Backbone.get(n,{success:function(n){var r=n.result.data;t.onDataLoaded&&t.onDataLoaded(r);r.length||(i.settings()[0].oLanguage.sEmptyTable=t.emptyTableMessage||appConfig.dataTable.language.emptyTable);i.rows.add(r).draw()}})}));n.extend(n.fn.dataTableExt.oApi,{addRowCallback:function(n,t){this.fnSettings().aoRowCallback.push({fn:t})}});v=r.ext.type.order["num-pre"];n.extend(n.fn.DataTable.ext.type.order,{"num-pre":function(n){return v(n)||0},"date-pre":function(n){return n.asDate()||0},"date-us-pre":function(t){var f;if(n.trim(t)!=""){var e=n.trim(t).split(" "),s=e[1].split(":"),o=e[0].split("/"),h=o[2],r=o[0],u=o[1],i=s[0],c=s[1],l=e[2];parseInt(r,10)<10&&(r="0"+parseInt(r,10));u<10&&(u="0"+u);l=="PM"&&i<12&&(i=parseInt(i,10)+12);parseInt(i,10)<10&&(i="0"+parseInt(i,10));f=(h+r+u+i+c)*1}else f=Infinity;return f},"mixed-string-number-pre":function(n){return _.isNumber(n)?parseFloat(n):n},"date-us-asc":function(n,t){return n-t},"date-us-desc":function(n,t){return t-n}})}(jQuery),function(n){function r(t,i,r){function s(){_.each(u,function(t){n.textEditor(t).destroy()})}var u=_(t.find("textarea.textEditor")).map(function(t){return n(t).attr("id")}),o=_.object(u,_(u).map(function(t){return _.extend(n.textEditor(t).config,n("#"+t).data("settings"))})),f,e;s();f=i.open;i.open=function(t,i){_.each(_.keys(o),function(i){n(t.target).find("textarea[id='"+i+"']").textEditor(o[i])});f&&f.call(r,t,i)};e=i.close;i.close=function(n,t){s();e&&e.call(r,n,t)}}function u(n){var t=n.find("script");return t.remove(),t}function f(t,i){var r=document.getElementById(t.attr("id"));n.each(i,function(){r.appendChild(this)})}var i=n.ui.dialog.prototype._create,t;n.ui.dialog.prototype._create=function(){var t,e;if(n(this.element).length>1)throw"Multiple elements are not supported.";t=n(this.element).find("textarea.textEditor").length>0;t&&r(n(this.element),this.options,this);e=u(n(this.element));i.apply(this,arguments);t&&f(n(this.element),e)};n.ui.dialog.prototype._title=function(n){this.options.title?this.options.renderTitleAsHtml?n.html(this.options.title):n.text(this.options.title):n.html("&#160;")};t=n.ui.dialog.prototype._allowInteraction;n.ui.dialog.prototype._allowInteraction=function(i){return n(i.target).closest(".cke_dialog").length>0||t.call(this,i)}}(jQuery),function(){window.GoogleAnalytics={logEvent:function(n,t,i){window._ga&&ga("send","event",n,t,i)}}}(jQuery);Array.prototype.add||(Array.prototype.add=function(n){this.push(n)});Array.prototype.remove||(Array.prototype.remove=function(n){var t=this.indexOf(n);t>-1&&this.splice(t,1)});String.prototype.contains||(String.prototype.contains=function(n){return this.indexOf(n)!==-1});String.prototype.startsWith||(String.prototype.startsWith=function(n){return this.substr(0,n.length)===n});String.prototype.endsWith||(String.prototype.endsWith=function(n){return this.length<n.length?!1:this.substr(this.length-n.length)===n});String.prototype.shortenText=function(n){return this.length<=n?this:this.substring(0,n)+" ..."};String.prototype.asBool=function(){return this.toLowerCase()=="true"};String.prototype.asInt=function(){return parseInt(this)};String.prototype.asFloat=function(n){var i=parseFloat(this),t;return _.isUndefined(n)?i:(t=i.toFixed(n),n!==0&&(t=t.replace(/\.?0+$/,"")),parseFloat(t))};String.prototype.asMoment=function(){var n=moment(this,moment.ISO_8601);return n.isValid()||(n=moment(this,appConfig.dateFormat+" "+appConfig.timeFormat,!0)),n.isValid()||(n=moment(this,appConfig.dateFormat,!0)),n.isValid()||(n=moment(this,appConfig.timeFormat,!0)),n};String.prototype.asDate=function(){var n=this.asMoment();return n.isValid()?n.toDate():null};String.prototype.escapeRegExpSpecialCharacters=function(){return this.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")};_parseIntOriginal=window.parseInt;window.parseInt=function(n,t){return t?_parseIntOriginal(n,t):_parseIntOriginal(n,10)};String.prototype.formatDate=function(n){var t,i,r;if(n=(n||"{d}").toLowerCase(),t=appConfig.dateFormat+" "+appConfig.timeFormat,_.contains(["{d}","{date}","date"],n)?n=appConfig.dateFormat:_.contains(["{dt}","{datetime}","datetime"],n)?n=t:_.contains(["{t}","{time}","time"],n)&&(n=appConfig.timeFormat),n=n.replace("a","A"),i=moment(this.substr(0,19),moment.ISO_8601),i.isValid())return i.format(n);if(r=moment(this,[appConfig.dateFormat,t,appConfig.timeFormat]),r.isValid())return r.format(n);throw"Invalid date value '"+this.toString()+"'.";};String.prototype.formatMoney=function(){return this.asInt().formatMoney()};String.prototype.formatPhoneNumber=function(){return intlTelInputUtils.formatNumber(this,null,1)};String.prototype.firstLetterToUpperCase=function(){return this.slice(0,1).toUpperCase()+this.slice(1)};String.prototype.firstLetterToLowerCase=function(){return this.slice(0,1).toLowerCase()+this.slice(1)};String.prototype.splitUpperCase=function(){return this.split(/(?=[A-Z])/).join(" ")};String.prototype.withoutHtml=function(){var n=this.replace(new RegExp("<\/?(sub|sup)>","g"),""),t="!_space_!";return n=n.replace(/<\/?(?:[a-zA-Z0-9]+|!--)[\s\S]*?>/g,t),n=n.replace(new RegExp("(?:"+t+"){2,}","g"),t),n=n.replace(new RegExp(t+"\\s|\\s"+t,"g")," "),n=n.replace(new RegExp("^"+t+"|"+t+"$","gm"),""),n=n.replace(new RegExp(t,"g")," "),htmlDecode(n)};String.prototype.removeSpaces=function(){return this.replace(/\s+/g,"")};String.prototype.matchAllRegex=function(n){for(var t=[],i;i=n.exec(this);)t.add(i);return t};String.prototype.replaceAll=function(n,t){return this.replace(new RegExp(n,"g"),t)};String.prototype.isEmptyGuid=function(){return this.toLowerCase()===uuid.empty()};Date.prototype.toServerDate=function(){return this.getMonth()+1+"/"+this.getDate()+"/"+this.getFullYear()+" "+this.getHours()+":"+this.getMinutes()+":"+this.getSeconds()+"."+this.getMilliseconds()};Number.prototype.formatMoney=function(n,t,i,r){t=isNaN(t=Math.abs(t))?2:t;n=n!==undefined?n:appConfig.baseCurrencySymbol||"$";i=i||",";r=r||".";var f=this,o=f<0?"-":"",e=parseInt(f=Math.abs(+f||0).toFixed(t),10)+"",u=(u=e.length)>3?u%3:0;return n+o+(u?e.substr(0,u)+i:"")+e.substr(u).replace(/(\d{3})(?=\d)/g,"$1"+i)+(t?r+Math.abs(f-e).toFixed(t).slice(2):"")};_.isUndefined(uuid)&&(uuid={});uuid.empty=function(){return"00000000-0000-0000-0000-000000000000"};namespace=function(n,t){var r=n.split("."),i,u;for(t=t||window,i=0,u=r.length;i<u;i++)t=t[r[i]]=t[r[i]]||{};return t},function(n){function t(n,t){n.toggleClass("disabledContainer",t)}n.fn.extend({hasValue:function(){return _(this.map(function(){if(this.type==="radio"||this.type==="checkbox"){var t=n(this).attr("name");return n("[name='"+t+"']:checked").length>0}return!!n(this).val()})).any()},outerHtml:function(){return n(this).clone().wrap("<div><\/div>").parent().html()},insertAt:function(n,t){var i=this.children();i.length==0||i.length<=t?this.append(n):t==0?i.eq(0).before(n):i.eq(t-1).after(n)},buttonTitle:function(n){var t=this.is("button")?this.text:this.val;return n?(this.data("originalTitle")||this.data("originalTitle",t.call(this)),t.call(this,n),this):t.call(this)},restoreButtonTitle:function(){return this.data("originalTitle")&&this.buttonTitle(this.data("originalTitle")),this},events:function(){return n._data(this[0],"events")},appendScripts:function(t){var i=this;n.each(t.find("script"),function(){i.get(0).appendChild(this)})},reset:function(t){return t=t||{},n.each(this,function(){var i=n(this),r=i.is(":input")?i:i.find(":input");t.dontResetHiddenInputs&&(r=r.filter(":not(input[type='hidden'])"));r.not("input[type=button], input[type=submit]").each(function(){var t=n(this);if(t.is(":checkbox")||t.is(":radio"))this.checked=!1;else{if(this.type=="hidden"&&!this.id&&!t.is(".dateTime"))return;t.val()&&(t.is(".textEditor")?t.textEditor().setData("",function(){t.change()}):t.val("").change())}})}),this},ignoreOnSubmit:function(n){return n===!1?this.removeClass("ignoreOnSubmit"):this.addClass("ignoreOnSubmit")},inputValidationError:function(n){return n===!1?this.removeClass("input-validation-error"):this.addClass("input-validation-error")},toggleDisabledState:function(n){return this.prop("disabled",!!n)},toggleDisabledFromJsApiState:function(n){return this.toggleClass("disabledFromJsApi",!!n).toggleDisabledState(n)},hasHorizontalScrollBar:function(){var n=this[0];return n.clientWidth<n.scrollWidth},disableContainer:function(){t(this,!0)},enableContainer:function(){t(this,!1)}});n.escapeSelector=function(n){return n.replace(/(:|\.|\[|\]|,|=|@)/g,"\\$1")};n.expr[":"].parents=function(t,i,r){return n(t).parents(r[3]).length>0}}(jQuery),function(n){n.fn.extend({fillFrom:function(t,i){var r=this;return i=i||"",n.each(t,function(t,u){var e,o,f;if(_.isArray(u)){e={};for(o in u)e[t+"["+o+"]"]=u[o];r.fillFrom(e,i);return}if(t=i+t.firstLetterToUpperCase(),_.isObject(u)&&r.fillFrom(u,t+"."),f=r.find("#"+t),f.length==0)if(f=r.find("[name='"+t+"']"),f.length==2&&f.eq(0).is(":checkbox"))f=f.eq(0);else if(f.length>1&&f.is(":radio")){f.each(function(){n(this).prop("checked",n(this).val().toLowerCase()==(u!==undefined&&u!==null&&u.toString().toLowerCase()))});return}f.length==1&&(f.is(":checkbox")?(r.find("input[name='"+t+"']:hidden").val(!1),f.val(!0),f.prop("checked",u)):f.is(":file")?f.val(u):f.is(".textEditor")?f.textEditor().setData(u||""):(f.is(".hasDatepicker")||f.is(".dateTime"))&&u?f.parent().dateTimePicker().setValue(u):f.val(u))}),this},submitWithoutValidation:function(){if(!this.is("form"))throw"Target element is not a form!";return this.clearErrors(),this.validate().cancelSubmit=!0,this.submit(),this},submitter:function(t){return _.isUndefined(t)?this.data("submitter")||n([]):(this.data("submitter",t),this)},disableOnSubmit:function(t,i){_.isUndefined(t)&&(t=!0);i=i||{};var r=this.filter("form");return r.length==0?this:(r.each(function(){var r=!_.isUndefined(n(this).data("disableOnSubmitOptions"));if(n(this).data("disableOnSubmitOptions",t?i:null),!r){n(this).on("submit",function(t){var i=n(this).data("disableOnSubmitOptions"),r=n(t.target);(r.data("status")=="inProgress"&&(t.preventDefault(),t.stopImmediatePropagation()),r.data("status","inProgress"),i)&&setTimeout(function(){if(r.data("status")!="complete"){r.disableSubmitControls(i);var t=r.submitter();t.length!=0&&(i.processingText?t.buttonTitle(i.processingText):t.buttonTitle().indexOf("Save")!=-1&&t.buttonTitle("Saving..."),i.processingCursor&&n("body").css("cursor",i.processingCursor))}},i.waitTimeout||500)});n(this).on("save error cancel",function(t){var r=n(this).data("disableOnSubmitOptions"),i=n(t.target);(i.data("status","complete"),r)&&(i.enableSubmitControls(),n("body").css("cursor","auto"))})}}),this)},disableSubmitControls:function(t){t=t||{};var i=this;return t.disableTimeout&&(this.data.enablingTimer=setTimeout(function(){i.enableSubmitControls()},t.disableTimeout)),this.find(".submit").each(function(){n(this).attr("disabled","disabled")}),this},enableSubmitControls:function(){return clearTimeout(this.data.enablingTimer),this.find(".submit").each(function(){n(this).removeAttr("disabled")}),this.submitter().restoreButtonTitle(),this},disableOnRedirect:function(){var t=this.filter("form");if(t.length==0)return this;n(window).on("redirect",function(){t.each(function(){n(this).disableSubmitControls()})});return this},autoSaveOnSubmit:function(){n(this).each(function(){(new(Backbone.View.extend({el:n(this),events:{submit:"onFormSubmit"},onFormSubmit:function(n){n.preventDefault();this.submitForm({dontShowSuccessAlert:this.$el.hasClass("dontShowSuccessAlert")})}}))).render()})},searchOnSubmit:function(){n(this).each(function(){(new(Backbone.View.extend({el:n(this),events:{submit:"onFormSubmit"},onFormSubmit:function(t){var i,r,u;t.preventDefault();i=this.getForm().toObject();r={};_(i).chain().keys().filter(function(n){return!_.isFunction(i[n])}).each(function(n){var t=i[n];r[n]=t?encodeURIComponent(t):t});u=n.templates(this.$el.attr("action")).render(r);redirect(u)}}))).render()})}});n(function(){n("form").on("click",".submit",function(t){n(this).closest("form").data("submitter",n(t.target))});n("body").on("newFormAdded",function(t,i){n(i).on("click",".submit",function(t){n(this).closest("form").data("submitter",n(t.target))})})})}(jQuery),function(n){var t=n.fn.validate;n.fn.extend({validate:function(n){var i,u;if(this.length==0)return null;if(this.length>1)throw"Validate invocation is not supported for multiple elements at once.";if(i=this.data("validator"),i)return i;i=t.call(this,n);this.on("submit.validator.ext",function(n){(i.cancelSubmit||!i.valid()||_(i.invalid).keys().length>0)&&(n.preventDefault(),n.stopImmediatePropagation())});var r=this.events().submit,f=r.pop(),e=r.pop();r.unshift(e,f);this.events().submit=r;u=this;this.find("button[type='button'].cancel").on("click",function(){u.validate().cancelSubmit=!1});return i},clearErrors:function(){var n=this.is("form")?this:this.find("form"),t;return n.length==0?this:(t=n.validate(),t.reset(),t.invalid={},n.find(".validation-summary-errors ul").empty(),this.clearErrorsForElements(n.find(".field-validation-error, .input-validation-error")),this)},clearErrorsForElements:function(t){_(t).each(function(t){var i=n(t);i.hasClass("field-validation-error")?i.removeClass("field-validation-error").addClass("field-validation-valid"):i.hasClass("input-validation-error")&&i.removeClass("input-validation-error").addClass("input-validation-valid")})},highlightErrorFields:function(n){var i=this,r,u,t;i.clearErrors();for(r in n.formElementErrors)u=n.formElementErrors[r].elementName,t=i.find("#"+u),t.removeClass("valid"),t.addClass("input-validation-error");return this},enableRequiredValidationRule:function(t){return t=_.isUndefined(t)?!0:t,this.each(function(){t?n(this).rules("add",{required:!0}):n(this).rules("remove","required")})},enableAtLeastOneCheckedValidationRule:function(t){t=_.isUndefined(t)?!0:t;var i=this;return i.each(function(){t?n(this).rules("add",{atLeastOneChecked:i,messages:{atLeastOneChecked:"Field is Required"}}):n(this).rules("remove","atLeastOneChecked")})},addExtendedEmailValidationRule:function(){this.rules("add",{extendedemail:!0,messages:{extendedemail:"Please enter a valid email address."}});this.addErrorContainerIfNotExists()},addUrlValidationRule:function(){this.rules("add",{urlWithOptionalProtocolPrefix:!0,messages:{urlWithOptionalProtocolPrefix:"Please enter a valid URL"}})},addTextLengthValidationRules:function(n,t,i){var r=function(){throw new Error("Text length count mode '"+i+"' is not supported.");};n&&(i=="Words"?this.rules("add",{minWordCount:n,messages:{minWordCount:sprintf(n==1?"Please enter at least one word.":"Please enter at least %s words.",n)}}):i=="Characters"?this.rules("add",{minCharCount:n,messages:{minCharCount:sprintf(n==1?"Please enter at least one character.":"Please enter at least %s characters.",n)}}):r());t&&(i=="Words"?this.rules("add",{maxWordCount:t,messages:{maxWordCount:sprintf(t==1?"Please enter no more than one word.":"Please enter no more than %s words.",t)}}):i=="Characters"?this.rules("add",{maxCharCount:t,messages:{maxCharCount:sprintf(t==1?"Please enter no more than one character.":"Please enter no more than %s characters.",t)}}):r())},applyStylesForRequiredFields:function(){var t=(this.is("form")?this:this.find("form")).filter(function(){return n(this).isValidatorAttached()}),i='<span class="required" aria-label="Required"><\/span>';return t.find("label[for]").each(function(){var r=n(this),f,u,t,e;if(!r.find("span.required").length&&(f=r.attr("for"),u=r.closest("section"),u.length)&&(t=u.find("#"+f),t.length||(t=u.find('[name="'+f+'"]')),t.length)&&!t.is(":radio"))for(e in t.rules())if(e.required||e=="required"){r.append(i);return}}),t.each(function(){var t=n(this);t.find("span.required").length>0&&t.find("fieldset").append('<section class="requiredFieldNote"><div>'+i+" indicates required field<\/div><\/section>")}),this},isValidatorAttached:function(){return this.is("form")?n.data(this[0],"validator")!=null:!1}})}(jQuery);$.views.helpers({lower:function(n){return n.toLowerCase()},upper:function(n){return n?n.toUpperCase():""},firstLetterToLowerCase:function(n){return n?n.firstLetterToLowerCase():""},firstLetterToUpperCase:function(n){return n?n.firstLetterToUpperCase():""},formatDate:function(n,t){return n?n.formatDate(t):""},formatMoney:function(n,t){return!n&&n!=0?"":n.formatMoney(t)},range:function(n,t){return _.range(n,t)},isEmpty:function(n){return _.isEmpty(n)},normalize:function(n){return n?n.replace(" ","_"):""},contains:function(n,t){return n?$.inArray(t,_.isString(n)?n.split(","):n)!=-1:!1},hasEmptyOption:function(n){return _.some(n,function(n){return n==""||!n.value})},sortBy:function(n,t){return _(n).sortBy(function(n){return n[t]})}});$.extend({render:function(n,t,i){var e,r,u,f;if(!_.isString(n))throw"tmplName must be a string";return t=t||{},i=i||{},e=i.templates||$.templates,r=e[n],i.templates&&(u=function(n){n.templates||(_.each(n.tmpls,function(n){u(n)}),n.templates=i.templates)},_.each(i.templates,function(n){u(n)})),f=function(){return{ctx:$.views.helpers,data:i.parentData,views:[],tmpl:{},_:{}}},r.render.call(r,t,null,!1,_.extend(f(),{parent:i.parentData?f():null}))}});$.views.converters({encodeHtml:function(n){if(!_.isString(n))return n;var t=$.views.converters.html(n);return $.views.converters.newLineToBr(t)},newLineToBr:function(n){return _.isString(n)?n?n.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):"":n},jsonFriendly:function(n){return _.isString(n)?n?n.replace(/\t/g," ").replace(/\\/g,"\\\\").replace(/"/g,"&#34;").replace(/'/g,"&#39;"):"":n},tableCell:function(n){return n=$.views.converters.encodeHtml(n),$.views.converters.jsonFriendly(n)},friendlyBool:function(n){return n===!1?"No":n===!0?"Yes":"N/A"}}),function(){var n=!1;window.keepUserSessionAlive=function(){if(appConfig.isHighSecurityModeEnabled&&!n){n=!0;setInterval(function(){Backbone.get(appConfig.keepUserSessionAliveUrl,{dontShowSuccessAlert:!0,dontShowErrorAlert:!0,dontShowWaitCursor:!0})},3e5)}}}(),function(n){function t(t){var r,i,u;this.options=t||{};r=this.options.unloadPreventerMessage||"Warning: You may have unsaved changes on this page.  Press cancel and then the 'Save' button at the bottom of this page before leaving.";i=this;this.isBound=!1;this.unloadPreventer=function(n){if(n.type=="beforeunload")return r;Confirmation.request(r,{callback:function(){i.unbind()},cancelCallback:function(){n.preventDefault();n.stopImmediatePropagation()}})};u=this.options.suppressionEvents;u&&_.each(u,function(t){n(t.sourceElementSelector).on(t.name,function(){i.unbind();i.bindOnElementClick()})})}window.LeavingViewProtector={protectors:[],start:function(n){var i=new t(n);return i.bindOnElementClick(),this.protectors.add(i),i},stop:function(){_(this.protectors).chain().filter(function(n){return n.isBound}).each(function(n){n.unbind()})}};n.extend(t.prototype,{bind:function(){n(window).on("beforeunload",this.unloadPreventer);if(this.options.leavingViewSelector)n(this.options.leavingViewSelector).on("click",this.unloadPreventer);this.isBound=!0},unbind:function(){n(window).off("beforeunload",this.unloadPreventer);this.options.leavingViewSelector&&n(this.options.leavingViewSelector).off("click",this.unloadPreventer);this.isBound=!1},bindOnElementClick:function(){if(this.options.elementSelector){var r=this,t=n(this.options.elementSelector),i=function(u){n(u.target).hasClass("suppressLvpBinding")||(r.bind(),t.off("click",i))};t.on("click",i)}else this.bind()}})}(jQuery),function(){window.Notifier={notifiers:[],get:function(n){var t=this.notifiers[n];return t||(t=this.notifiers[n]=_.extend({},Backbone.Events)),t}}}(jQuery),function(n){window.Security={applyReadOnlyPolicy:function(t){var i=_.isUndefined(t)?n("[data-readOnly]"):n(t),e=this.isReadOnly(i),r,u,f;e&&(i.find(".dataEdit").hide(),r=i.is("form")?i:i.find("form"),r.find("input[type='text'], input[type='number'], textarea").attr("readonly","readonly"),r.find("input[type='checkbox'], input[type='radio'], input[type='file'], select").attr("disabled","disabled"),r.find("button.submit").hide(),r.find("button.dataEdit, form button.submit").closest("section").hide(),r.find("button.cancel").closest("section").show(),u=i.find("table tbody"),u.find("tr td a.dataEdit").prev().hide(),_.each(n.fn.DataTable.tables(),function(t){n.contains(i.get(0),t)&&n(t).dataTable().addRowCallback(function(t){n("td a.dataEdit",t).prev().addBack().hide();n("td.dataEdit",t).hide()})}),u.hasClass("ui-sortable")&&u.sortable("instance")&&u.sortable("disable"),f=r.find("input[type='text']"),f.hasClass("hasDatepicker")&&f.datepicker("disable"),i.find("div.fileUpload").each(function(){n(this).fileUploader().dontShowDeleteButton()}))},isReadOnly:function(n){var t=n.attr("data-readOnly")||n.closest("[data-readOnly]").attr("data-readOnly");return t?t.asBool():!1}}}(jQuery);$(function(){Notifier.get("global").on("backboneViewCreated",function(n){var t=n.render;n.render=function(){var n=t.apply(this,arguments);return Security.applyReadOnlyPolicy(this.el),n}})}),function(n){function i(t,i){t.each(function(){var t=i.find(n(this).attr("href")).first(),r=function(n){return!n.children().length&&!n.text().match(/\S/)};(r(t)||t.children().length==1&&r(t.children().first()))&&(n(this).hide(),t.hide())})}function r(t,i){if(i.is(".routed, .respectHash")){if(i.is(".respectHash")){var r={"":"handleTab"};t.each(function(){r[(n(this).attr("data-route")||n(this).attr("href")).replace("#","")]="handleTab"});new(Backbone.Router.extend({routes:r,handleTab:function(){i.selectRoutedTab()}}));Backbone.history.start()}i.on("tabsbeforeactivate",function(n,t){var r="",f=t.newTab.find("a").attr("data-route")||t.newPanel.attr("id"),u,e,i;if(f.indexOf(":")>-1)for(u=f.split("/"),e=window.location.hash.split("/"),i=0;i<u.length;i++)i>0&&(r+="/"),r+=u[i].indexOf(":")>-1?e[i]:u[i];else r=f;return window.location.hash!=r&&(window.location.hash=r),!1})}}var t=n.ui.tabs.prototype._create;n.extend(n.ui.tabs.prototype,{_create:function(){if(this.length==0)return this;window.location.hash.startsWith("#/")&&(window.location.hash=window.location.hash.replace("#/","#"));t.apply(this);var n=this.element,u=n.find("ul>li>a[href^='#']");return i(u,n),r(u,n),n.show(0),this}});n.extend(n.fn,{selectRoutedTab:function(n,t){return t=t||{},!n&&window.location.hash&&(n=window.location.hash.substring(1),n.indexOf("/")>0&&(n=n.substring(n.lastIndexOf("/")+1))),t.suppressEvent=!0,this.selectTab(n,t)},selectTab:function(n,t){var r,i,u,f;if(this.length==0||!n)return this;if(t=t||{},this.isTabSelected(n))return t.callback&&t.callback.call(),this;if(r=null,i=this.tabs("widget"),t.suppressEvent&&(r=_(i.events()).chain().find(function(n){return n[0].type=="tabsbeforeactivate"}).clone().value(),i.off("tabsbeforeactivate")),t.callback){u=function(){i.off("tabsactivate",null,u);t.callback.call()};i.on("tabsactivate",u)}if(this.showTabHeader(n),f=this.tabIndex(n),f!=-1&&this.tabs("option","active",this.tabIndex(n)),t.suppressEvent)i.on(r[0].type,r[0].handler);return this},tabIndex:function(n){return n?this.find("ul li a").index(this.find('ul li a[href="#'+n+'"]')):-1},isTabSelected:function(n){return this.tabs("option","active")==this.tabIndex(n)},enableTab:function(n){return this.tabs("enable",n)},disableTab:function(n){if(!n)return this;var t=this;return this.isTabSelected(n)?(setTimeout(function(){t.tabs("disable",n)},10),this):this.tabs("disable",n)},toggleTabHeader:function(n,t){return n?(this.find('ul li a[href="#'+n+'"]').toggle(t).parent().toggle(t),this):this},showTabHeader:function(n){return this.toggleTabHeader(n,!0)},hideTabHeader:function(n){return this.toggleTabHeader(n,!1)}})}(jQuery),function(n){function i(t){var i=n(t),r=i.parents().addBack().filter("form").add(i.find("form")),f=r.not(r.has("[data-val=true]")),u=[];return f.each(function(){var t=n(this).children(":eq(0)");t.attr("data-val",!0);u.push(t)}),function(){_.each(u,function(n){n.removeAttr("data-val")})}}var t=n.validator.unobtrusive.parse;_.extend(n.validator.unobtrusive,{parse:function(n){var r=i(n);t.call(this,n);r()}});n.validator.unobtrusive.adapters.addBool("extendedemail");n.validator.unobtrusive.adapters.addBool("extendedemailorplaceholder");n.validator.unobtrusive.adapters.addBool("multipleextendedemail");n.validator.unobtrusive.adapters.addBool("multipleextendedemailorplaceholder");_.extend(n.fn,{addErrorContainerIfNotExists:function(t){this.getErrorContainerIfExists(t)||this.after(n("<span><\/span>").attr({"data-valmsg-replace":!0,"data-valmsg-for":t||this.attr("name")}))},getErrorContainerIfExists:function(n){var t=this.next();return t&&t.is("span[data-valmsg-for='"+(n||this.attr("name"))+"']")?t:null}})}(jQuery),function(n){function t(t,i){var r=n(i).is("textarea.textEditor");return r?t.withoutHtml():t}function f(t){var i=0;return t.each(function(){n(this).is(":checked")&&i++}),i}function e(i){var r=0;return i.each(function(){var i=n(this),u=t(i.val(),i);r+=u.length}),r}function o(i){var r=0;return i.each(function(){var i=n(this),u=t(i.val(),i),f=u.match(appConfig.regexLib.words)||[];r+=f.length}),r}function i(n){return n.hasClass("ignoreOnSubmit")||n.closest("section").hasClass("ignoreOnSubmit")}var s=n.validator.prototype.elements,h=n.validator.prototype.elementValue,c=n.validator.prototype.errors,r,u;n.extend(n.validator.prototype,{getForm:function(){return n(this.currentForm)},elements:function(t){var i,r;return t=t||{},i=s.call(this),i=i.add(this.settings.customElementsToValidate).not(this.settings.ignore),r=t.includeHidden?i:i.not(":hidden"),r.add(i.filter("textarea.textEditor").filter(function(){return!n(this).textEditor().isHidden()}))},validateElements:function(t,i){var f;t=t||this.getForm();_.isArray(t)&&(t=n(_(t).chain().filter(function(n){return n.length>0}).map(function(n){return n.get(0)}).value()));f=this.elements(i);t&&(f=f.filter(function(){return t.has(this).length>0||t.is(this)}));var r=this,e=!1,u=null,o=[];return f.each(function(){var t=!1,i;if(this.type==="radio"){if(n.inArray(this.name,o)!=-1)return;o.push(this.name)}else this.type==="textarea"?(i=n(this),i.hasClass("textEditor")&&(t=!0),this.value=n.trim(i.val())):this.type==="text"&&(this.value=n.trim(n(this).val()));r.check(this)?t&&r.settings.unhighlight.call(r,this,r.settings.errorClass,r.settings.validClass):(e=!0,u||(u=this),t&&r.settings.highlight.call(r,this,r.settings.errorClass,r.settings.validClass))}),u&&n(u).is("textarea.textEditor")&&(n("html, body").scrollTop(n(u).next().offset().top),n(u).textEditor().focus()),!e},optional:function(t){return!n.validator.methods.required.call(this,n.trim(this.elementValue(t)),t)},checkForm:function(){return this.prepareForm(),this.validateElements()},checkElements:function(t,i){return this.prepareForm(),this.validateElements(t,i),n.extend(this.submitted,this.errorMap),this.invalid=n.extend({},this.errorMap),this.showErrors(),this.valid()},enableValidationOnFocusOutOrKeyUpEvents:function(t){t=_.isUndefined(t)?!0:t;this.settings.onfocusout=t?n.validator.defaults.onfocusout:!1;this.settings.onkeyup=t?n.validator.defaults.onkeyup:!1},addCustomElementToValidate:function(n,t){n.length&&(n=n[0]);this.settings.customElementsToValidate?this.settings.customElementsToValidate.push(n):this.settings.customElementsToValidate=[n];this.addCustomValueFunction(n,t)},addCustomValueFunction:function(n,t){n.length&&(n=n[0]);_.isFunction(t)&&(this.settings.customValueFunctions?this.settings.customValueFunctions.push({elementName:n.name,getValue:t}):this.settings.customValueFunctions=[{elementName:n.name,getValue:t}])},elementValue:function(n){if(this.settings.customValueFunctions){var t=_(this.settings.customValueFunctions).findWhere({elementName:n.name});if(t)return t.getValue(n)}return h.call(this,n)},errors:function(){return c.call(this).filter("[id$='-error']")}});r=n.validator.defaults.highlight;u=n.validator.defaults.unhighlight;delete n.validator.classRuleSettings.date;n.validator.setDefaults({ignore:"input[type='hidden'], input[type='button'], .ignoreOnSubmit:not(.forceValidation), :parents(.ignoreOnSubmit:not(.forceValidation))",highlight:function(t,i,u){var f,e;t.type==="radio"?(f=this.findByName(t.name),f.each(function(){n(this).attr("disabled")||n(this).addClass(i).removeClass(u)})):t.type==="checkbox"?(e=n(t).attr("class").split(" ")[0],this.getForm().find("."+n.escapeSelector(e)).each(function(){n(this).addClass(i).removeClass(u)})):n(t).is("textarea.textEditor")?n(t).parent().find(".cke").addClass(i).removeClass(u):n(t).is("input.digitalSignature")?n(t).siblings(".digitalSignatureContainer").addClass(i).removeClass(u):r.call(this,t,i,u)},unhighlight:function(t,i,r){var f,e;t.type==="radio"?(f=this.findByName(t.name),f.each(function(){n(this).removeClass(i).addClass(r)})):t.type==="checkbox"?(e=n(t).attr("class").split(" ")[0],this.getForm().find("."+e).each(function(){n(this).removeClass(i).addClass(r)})):n(t).is("textarea.textEditor")?n(t).parent().find(".cke").removeClass(i).addClass(r):n(t).is("input.digitalSignature")?n(t).siblings(".digitalSignatureContainer").removeClass(i).addClass(r):u.call(this,t,i,r)}});n.extend(n.validator.messages,{required:"Field is Required",max:"Please enter a value less than or equal to {0}.",min:"Please enter a value greater than or equal to {0}."});n.extend(n.validator.methods,{requiredIfAssignedElementEmpty:function(t,i,r){return n(r).val()==""?t!="":!0},minWordCount:function(n,i,r){n=t(n,i);var u=n.match(appConfig.regexLib.words)||[];return u.length>=r},maxWordCount:function(n,i,r){n=t(n,i);var u=n.match(appConfig.regexLib.words)||[];return u.length<=r},minWordCountInGroup:function(n,t,i){return o(i.elements)>=i.minLength},maxWordCountInGroup:function(n,t,i){return o(i.elements)<=i.maxLength},minCharCount:function(n,i,r){return n=t(n,i),n.length>=r},maxCharCount:function(n,i,r){return n=t(n,i),n.length<=r},minCharCountInGroup:function(n,t,i){return e(i.elements)>=i.minLength},maxCharCountInGroup:function(n,t,i){return e(i.elements)<=i.maxLength},atLeastOneChecked:function(t,i,r){var u=!1;return r.each(function(){return u=n(this).is(":checked"),!u}),u},minSelectedValueCount:function(n,t,i){return f(i.elements)>=i.minSelectedValueCount},maxSelectedValueCount:function(n,t,i){return f(i.elements)<=i.maxSelectedValueCount},extendedemail:function(n,t){return this.optional(t)||isEmail(n)},extendedemailorplaceholder:function(t,i){return n.validator.methods.extendedemail.call(this,t,i)||/^{[^{}]+}$/.test(t)},multipleextendedemail:function(t,i){if(this.optional(i))return!0;var r=!0,u=this;return _(t.split(/[,;]/)).each(function(t){var f=t.trim();f==""||n.validator.methods.extendedemail.call(u,f,i)||(r=!1)}),r},multipleextendedemailorplaceholder:function(t,i){if(this.optional(i))return!0;var r=!0,u=this;return _(t.split(/[,;]/)).each(function(t){var f=t.trim();f==""||n.validator.methods.extendedemailorplaceholder.call(u,f,i)||(r=!1)}),r},validDate:function(n,t,i){if(this.optional(t))return!0;if(i==="mm/dd/yy"||i==="m/d/yy")return/^(0?[1-9]|1[012])[- \/.](0?[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/.test(n);if(i==="dd/mm/yy"||i==="d/m/yy")return/^(0?[1-9]|[12][0-9]|3[01])[- \/.](0?[1-9]|1[012])[- \/.]\d{4}$/.test(n);throw new Error(i+" format is not supported.");},minDate:function(n,t,i){return this.optional(t)||n.asMoment().isSameOrAfter(i.asMoment())},maxDate:function(n,t,i){return this.optional(t)||n.asMoment().isSameOrBefore(i.asMoment())},greaterThan:function(n,t,r){return this.optional(t)||i(r)||n.asInt()>r.val().asInt()},lessThan:function(n,t,r){return this.optional(t)||i(r)||n.asInt()<r.val().asInt()},greaterThanOrEqualTo:function(n,t,r){return this.optional(t)||i(r)||n.asInt()>=r.val().asInt()},lessThanOrEqualTo:function(n,t,r){return this.optional(t)||i(r)||n.asInt()<=r.val().asInt()},urlWithOptionalProtocolPrefix:function(n,t){return this.optional(t)||appConfig.regexLib.url.test(n)},vimeoUrl:function(n,t){return this.optional(t)||appConfig.regexLib.vimeoLink.test(n)},maxPrecision:function(n,t,i){var r=new RegExp("^(?:\\-?\\d*\\.\\d{0,"+i+"}|\\-?\\d+)$");return this.optional(t)||r.test(n)},regex:function(n,t,i){var r=new RegExp(i);return this.optional(t)||r.test(n)},minRowCount:function(n,t,i){return n.length>=i},validOnExternalSource:function(t,i,r){var u=!1,f,e;return t&&(Backbone.post(r,{value:t},{"async":!1,dontShowSuccessAlert:!0,success:function(n){u=n.result.isValid;f=n.result.message}}),u||(e=n(i).getErrorContainerIfExists(),e&&(this.settings.messages[i.name].validOnExternalSource=f||""))),this.optional(i)||u},selectedFromExternalSource:function(t,i){return this.optional(i)||!n(i).hasClass("ignoreOnSubmit")},url:function(n,t){var i=new RegExp("^(?:(?:https?|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))\\.?)(?::\\d{2,5})?(?:[/?#]\\S*)?$","i");return this.optional(t)||i.test(n)}})}(jQuery);DateTimePickerView=Backbone.View.extend({events:{"focusout .date":"onDateChanged","change .hours, .minutes, .amPm":"onTimeChanged"},initialize:function(n){if(this.settings=n.settings||{},this.settings.mode=(this.settings.mode||"date").toLowerCase(),this.dateEl=this.$(".date"),this.dateTimeEl=this.$(".dateTime"),this.hoursEl=this.$(".hours"),this.minutesEl=this.$(".minutes"),this.amPmEl=this.$(".amPm"),this.settings.readOnly){this.dateEl.attr("readonly","readonly");this.hoursEl.attr("disabled","disabled");this.minutesEl.attr("disabled","disabled");this.amPmEl.attr("disabled","disabled");return}var t=this;(this.settings.mode=="datetime"?_.each([this.dateEl,this.hoursEl,this.minutesEl,this.amPmEl,this.dateTimeEl],function(n){n.show()}):this.settings.mode=="date"?(this.dateEl.show(),_.each([this.hoursEl,this.minutesEl,this.amPmEl,this.dateTimeEl],function(n){n.hide()})):this.settings.mode=="time"&&(this.dateEl.hide(),_.each([this.hoursEl,this.minutesEl,this.amPmEl,this.dateTimeEl],function(n){n.show()})),this.settings.required&&(this.dateEl.length&&this.dateEl.rules("add",{required:!0,messages:{required:""}}),this.hoursEl.length&&this.minutesEl.length&&this.amPmEl.length&&(this.hoursEl.rules("add",{required:!0,messages:{required:""}}),this.minutesEl.rules("add",{required:!0,messages:{required:""}}),this.amPmEl.rules("add",{required:!0,messages:{required:""}}))),this.dateEl.length&&!this.settings.disableDateValidator&&this.dateEl.rules("add",{validDate:this._convertDateFormat(appConfig.dateFormat),messages:{validDate:"Please enter a valid date."}}),Browser.isIe8())||(this.dateEl.datepicker({prevText:"Prev",nextText:"Next",monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],changeMonth:!0,changeYear:!0,dateFormat:this._convertDateFormat(appConfig.dateFormat),yearRange:"c-100:c+10",onSelect:function(){t._composeDateTimeValue();$(this).change();var n=t.$el.closest("form").validate();n.element(t.dateEl);t.trigger("select")},beforeShow:function(){var n,i;t.settings.maxDateProvider&&(n=$(t.settings.maxDateProvider).dateTimePicker().dateEl.val(),$(this).datepicker("option","maxDate",n));t.settings.minDateProvider&&(i=$(t.settings.minDateProvider).dateTimePicker().dateEl.val(),$(this).datepicker("option","minDate",i))}}),this.dateEl.length&&this._processDateMinMaxValues())},render:function(){},onDateChanged:function(){this._composeDateTimeValue();this.trigger("select")},onTimeChanged:function(){this._composeDateTimeValue()},setDateProviders:function(n){this.settings.maxDateProvider=n.maxDateProvider;this.settings.minDateProvider=n.minDateProvider},setMinMaxValues:function(n){this.settings.minValue=n.minValue;this.settings.maxValue=n.maxValue;this.dateEl.length&&this._processDateMinMaxValues()},getValue:function(n){var t=this.dateTimeEl.val();return n&&t.length?t.formatDate():t},setValue:function(n){this.dateEl.val(n.formatDate("{d}"));this.hoursEl.val(n.formatDate("h"));this.minutesEl.val(n.formatDate("m"));this.amPmEl.val(n.formatDate("A"));this._setDateTimeElValue(n.formatDate(this.settings.mode))},clearValue:function(){_.each([this.dateEl,this.hoursEl,this.minutesEl,this.amPmEl,this.dateTimeEl],function(n){n.val("")});this.trigger("dateTimeValueChanged")},disable:function(){this.dateEl.datepicker("destroy");this.dateEl.attr("readonly","readonly");_.each([this.hoursEl,this.minutesEl,this.amPmEl],function(n){n.attr("disabled","disabled")})},toggleDisabledState:function(n){this.dateEl.toggleDisabledFromJsApiState(n);this.hoursEl.toggleDisabledFromJsApiState(n);this.minutesEl.toggleDisabledFromJsApiState(n);this.amPmEl.toggleDisabledFromJsApiState(n)},_composeDateTimeValue:function(){var n="",i=this.dateEl.val(),f=this.hoursEl.val()+":"+this.minutesEl.val()+" "+this.amPmEl.val(),t=moment(f,"h:m A",!0),r=this.dateEl.length&&this.dateEl.valid(),u=t.isValid();this.settings.mode=="datetime"&&r&&u?n=i+" "+t.format(appConfig.timeFormat):this.settings.mode=="date"&&r?n=i:this.settings.mode=="time"&&u&&(n=t.format(appConfig.timeFormat));this._setDateTimeElValue(n)},_processDateMinMaxValues:function(){var t=this.$el.closest("form").isValidatorAttached(),n;this.settings.minValue&&(n=this.dateEl.val(),this.dateEl.datepicker("option","minDate",this.settings.minValue),n&&this.dateEl.val(n),t&&this.dateEl.rules("add",{minDate:this.settings.minValue,messages:{minDate:"Please enter a value greater than or equal to "+this.settings.minValue+"."}}));this.settings.maxValue&&(this.dateEl.datepicker("option","maxDate",this.settings.maxValue),t&&this.dateEl.rules("add",{maxDate:this.settings.maxValue,messages:{maxDate:"Please enter a value less than or equal to "+this.settings.maxValue+"."}}))},_setDateTimeElValue:function(n){var t=n.asMoment();t.isValid()&&(this.settings.mode=="datetime"?n=t.format("YYYY-MM-DDTHH:mm"):this.settings.mode=="date"?n=t.format("YYYY-MM-DD"):this.settings.mode=="time"&&(n=t.format("HH:mm")));this.dateTimeEl.val(n);this.trigger("dateTimeValueChanged")},_convertDateFormat:function(n){var t=n;return t=t.replace("D","d"),t=t.replace("dddd","DD"),t=t.replace("ddd","D"),t=t.indexOf("MMMM")!=-1?t.replace("MMMM","MM"):t.indexOf("MMM")!=-1?t.replace("MMM","M"):t.indexOf("MM")!=-1?t.replace("MM","mm"):t.replace("M","m"),t.indexOf("YYYY")!=-1?t.replace("YYYY","yy"):t.replace("YY","y")}}),function(n){n.extend(n.fn,{dateTimePicker:function(n){var i,t;return this.length==0?null:(i=this.is(".dateTimePicker")?this:this.find(".dateTimePicker"),i.length==0)?null:(t=i.data("dateTimePicker"),t)?t:(t=new DateTimePickerView({el:i,settings:n}),t.render(),i.data("dateTimePicker",t),t)}})}(jQuery),function(){var n=window.sha512;window.sha512=function(t,i){return n(t,i).toUpperCase()}}();_.mixin({asIntArray:function(n){if(!_(n).all(function(n){return typeof n=="string"||typeof n=="number"}))throw"Array contains items which can't be cast to int.";return _(n).map(function(n){return typeof n=="string"?n.asInt():n})},toDictionary:function(n,t,i){if(!t)throw"Key selector is required.";var r={};return _(n).each(function(n){var u=i?i(n):n;r[t(n)]=u}),r},isNullOrUndefined:function(n){return _.isNull(n)||_.isUndefined(n)},sum:function(n){return _(n).reduce(function(n,t){return n+t},0)}});namespace("widgets.bulkRowSelector");widgets.bulkRowSelector.BulkRowSelectorView=Backbone.View.extend({events:{"click button.select":"onSelectClicked","click button.close":"onCloseClicked"},initialize:function(n){_.extend(this,n);this.setElement(n.el);this.$el.dialog({modal:!0,width:700,height:500,autoOpen:!1,resizable:!1,title:sprintf("Bulk select by %s",this.columnTitle)})},render:function(){this.$(".selectedValueSection label").text(sprintf("Enter %s, one per line",this.columnTitleInPlural));this._buildTable()},onSelectClicked:function(){var n=this.$("#selectedValues").val(),t;if(!n){Alert.error(sprintf("Enter %s",this.columnTitleInPlural));return}t=n.replace(/\n/g,",").replace(/\s/g,"").match(/[^,]+/g);this.trigger("bulkRowSelectionApplied",t)},onCloseClicked:function(){this._close()},showDialog:function(){this._clean();this._toggleSections(!1);this.$el.dialog("open")},showResults:function(n,t,i){n==t&&this._close();this._toggleSections(!0);this.$("#bulkRowSelectorResult").text(sprintf("Result: %d of %d rows were selected",n,t));var r=this;_(i).each(function(n){r.resultTable.row.add({value:n,message:sprintf("%s does not exist.",r.columnTitle)})});this.resultTable.draw()},_buildTable:function(){this.resultTable=this.$("table").DataTable({maxHeight:"330px",columns:[{title:this.columnTitle,width:"40%",data:"value"},{title:"Message",width:"60%",data:"message"},],searching:!0})},_toggleSections:function(n){this.$(".resultSection").toggle(n);this.$(".inputSection").toggle(!n)},_clean:function(){this.$("#bulkRowSelectorResult").text();this.$("#selectedValues").val("");this.resultTable.clear().draw()},_close:function(){this._clean();this.$el.dialog("close")}});namespace("common.widgets");common.widgets.AsyncViewLoadingPanelView=Backbone.View.extend({viewName:"common.widgets.AsyncViewLoadingPanelView",initialize:function(n){_.extend(this,n);this.overrideDocumentOnReady()},render:function(){var n=this;Backbone.get(this.loadingUrl,{dataType:"html",beforeSend:function(t){t.setRequestHeader(n.asyncViewLoadHeaderName,!0);$("body").findView("widgets.mediaList.MediaListView")&&t.setRequestHeader("X-atLeastOneMediaListRendered",!0)},success:function(t){function u(){for(var t;t=window.readyList.shift();)t();n.trigger("loadSuccess");Security.applyReadOnlyPolicy(n.$el)}var i=$(t.result),r=i.find("script[src]"),f=_(r).any(function(n){return $(n).hasClass("waitForLoad")});r.appendTo("head");n.$el.html(i);_(n.$("form")).each(function(n){var t=$(n);t.trigger("newFormAdded",t);$.validator.unobtrusive.parse(t);t.applyStylesForRequiredFields()});f?setTimeout(u,1e3):u()}})},overrideDocumentOnReady:function(){window.readyList||(window.readyList=[],jQuery.fn.ready=function(){arguments.length&&_.isFunction(arguments[0])&&window.readyList.push(arguments[0])})}});namespace("common.widgets").BreadcrumbView=Backbone.View.extend({updateLastItem:function(n){this.$el.find("a").last().text(n)}});namespace("common.widgets");common.widgets.PdfViewerView=Backbone.View.extend({renderingCancelEventName:"renderingCancel",initialize:function(n){_.extend(this,n);this._initializeRenderingState()},render:function(){var t=Browser.isIe(),i=this.fileData.size<=52428800,r,n;this.$el.append($.parseHTML($.render("pdfViewerTmpl",{isIe:t,hasAcceptableSizeForPreview:i},{templates:window.pdfViewerTemplates})));!t&&i&&(this._isFullScreenEnabled()||this.$("button.presentationMode").hide(),r=this,n=window["pdfjs-dist/build/pdf"].getDocument(this.fileData.url),n.onProgress=function(n){var t=n.loaded/n.total==1;t&&r.$("div.spinner").remove()},n.promise.then(this._extractPagesFromPdf.bind(this)).then(this._activatePresentationMode.bind(this)).then(this._appendCanvasToEachViewerElementAndRenderPdfPages.bind(this)))},onFullScreenChanged:function(n){var i=1,t=0;this._isFullScreen()||(i=this._getPdfViewportScale(n[0]),t=400);this.$("div.viewer").css("height",t?t+"px":"");this._renderPdfPages(n,i)},_extractPagesFromPdf:function(n){return Promise.all(_.range(1,n.numPages+1).map(function(t){return n.getPage(t)}))},_appendCanvasToEachViewerElementAndRenderPdfPages:function(n){var t=this;_(n).each(function(){t.$("div.viewer").append("<canvas style='margin: auto; display: block;'><\/canvas>")});this._renderPdfPages(n,this._getPdfViewportScale(n[0]))},_activatePresentationMode:function(n){var i,r,t;if(!n.length)throw new Error("PDF doesn't contain pages to be rendered.");if(this._isFullScreenEnabled()){Browser.isIe()?(i=$(document),r="MSFullscreenChange"):(i=this.$("div.viewer"),r="webkitfullscreenchange mozfullscreenchange fullscreenchange");t=this;i.on(r,function(){t.onFullScreenChanged(n)});this.$("button.presentationMode").on("click",function(n){(n.preventDefault(),t._isFullScreenEnabled())&&(t._isFullScreen()||t._requestFullScreen(i[0]))});return n}},_getPdfViewportScale:function(n){var t=n.getViewport({scale:1}),i=this.$("div.viewer");return(i.width()-10)/t.width},_renderPdfPages:function(n,t){function f(){i.isRendering=!0;i._renderPdfPage(n[r],t,u[r],function f(){var e=i.isRenderingCancel;if(e||r>=n.length-1){i._resetRenderingState();e&&i.trigger(i.renderingCancelEventName);return}r++;i._renderPdfPage(n[r],t,u[r],f)})}var r=0,i=this,u=this.$("canvas");if(this.isRendering){this.on(this.renderingCancelEventName,function(){i.off(i.renderingCancelEventName);f()});this.isRenderingCancel=!0}else f()},_renderPdfPage:function(n,t,i,r){var u=n.getViewport({scale:t}),f;i.width=u.width;i.height=u.height;f={canvasContext:i.getContext("2d"),viewport:u};n.render(f).promise.then(r)},_isFullScreenEnabled:function(){return document.fullscreenEnabled||document.mozFullScreenEnabled||document.webkitFullscreenEnabled||document.msFullscreenEnabled},_isFullScreen:function(){return document.fullscreenElement||document.mozFullScreen||document.webkitIsFullScreen||document.msFullscreenElement},_requestFullScreen:function(n){n.requestFullscreen?n.requestFullscreen():n.mozRequestFullScreen?n.mozRequestFullScreen():n.webkitRequestFullscreen?n.webkitRequestFullscreen():n.msRequestFullscreen&&n.msRequestFullscreen()},_resetRenderingState:function(){this._initializeRenderingState()},_initializeRenderingState:function(){this.isRenderingCancel=!1;this.isRendering=!1}});namespace("common.widgets");common.widgets.CloudflareStreamViewerView=Backbone.View.extend({events:{"click input.setCustomStartEndTime":"onSetCustomStartEndTimeClicked","click a.setToCurrentFrame.startTime":"onSetStartTimeToCurrentFrameClicked","click a.setToCurrentFrame.endTime":"onSetEndTimeToCurrentFrameClicked","click .captionsSection button.delete":"onDeleteCaptionsClicked"},initialize:function(n){_.extend(this,n);this.width=this.width||420;this.height=this.height||320;this.streamInfo.startTime&&(this.streamInfo.startTime=this._parseTime(this.streamInfo.startTime));this.streamInfo.endTime&&(this.streamInfo.endTime=this._parseTime(this.streamInfo.endTime));this.streamInfo.duration=this._parseTime(this.streamInfo.duration);$.templates("cloudflareStreamViewerTmpl",$("#cloudflareStreamViewerTmpl").html());this.templates=_.clone($.templates)},render:function(){var n,t;return(this.$el.append($.parseHTML($.render("cloudflareStreamViewerTmpl",{videoUid:this.streamInfo.videoUid,isDeleted:this.streamInfo.isDeleted,enableStartEndTimeEditing:this.enableStartEndTimeEditing,areStartAndEndTimePresent:this.streamInfo.startTime!=null&&this.streamInfo.endTime!=null,enableCaptionsEditing:this.enableCaptionsEditing,hasCaptions:this.streamInfo.hasCaptions,lastModified:new Date(this.streamInfo.lastModified).getTime(),width:this.width,height:this.height},{templates:this.templates}))),this.streamInfo.isDeleted)?this:(this.playerIframe=this.$("iframe")[0],this.player=Stream(this.playerIframe),this.$startTimeInput=this.$("input.startTime"),this.$endTimeInput=this.$("input.endTime"),n=this,this.enableStartEndTimeEditing&&(this._initTimeInput(this.$startTimeInput,{minValueProvider:function(){return n._parseTime("0:00:00")},maxValueProvider:function(){return n._parseTimeFromInput(n.$endTimeInput)}}),this._initTimeInput(this.$endTimeInput,{minValueProvider:function(){return n._parseTimeFromInput(n.$startTimeInput)},maxValueProvider:function(){return n.streamInfo.duration}}),this._formatTimeIntoInput(this.streamInfo.startTime||this._parseTime("0:00:00"),this.$startTimeInput),this._formatTimeIntoInput(this.streamInfo.endTime||this.streamInfo.duration,this.$endTimeInput)),this.enforcePlaybackWithinStartEndTime&&this.streamInfo.startTime!=null&&this.streamInfo.endTime!=null&&(this._setPlayerCurrentTime(this.streamInfo.startTime),this.player.addEventListener("playing",function(){n._coercePlayerCurrentTimeInStartEndTimeRange()}),this.player.addEventListener("timeupdate",function(){n._coercePlayerCurrentTimeInStartEndTimeRange()})),this.enableCaptionsEditing&&(t=10,this.captionsUploader=this.$("input[name='cloudflareStreamCaptions_"+this.streamInfo.videoUid+"']").fileUploader(_.extend({allowedFileExtensions:"vtt",maxFileSize:t,ignoreOnSubmit:!0,onSuccess:_.bind(this.onCaptionsMediaCreated,this)},_(this.parentFileUploaderOptions).pick("params","ownerId","mediaDataProviderUrl","deleteUrl","successCallbackUrl","uploadParams")))),this)},onCaptionsMediaCreated:function(n){this._toggleUploadCaptionsSection(!1);var t=this;Backbone.invoke(this.parentFileUploaderOptions.setCloudflareStreamCaptionsUrl,{videoMediaId:this.mediaId,captionsMediaId:n.id},{success:function(){t._toggleDeleteCaptionsSection(!0);Alert.success("Captions have been set successfully.");t._refreshPlayerIframe()},error:function(){t.captionsUploader.reset();t._toggleUploadCaptionsSection(!0)}})},onSetCustomStartEndTimeClicked:function(n){this._toggleStartEndTimeSection($(n.target).is(":checked"))},onSetStartTimeToCurrentFrameClicked:function(){var n=this._getPlayerCurrentTime();this._parseTimeFromInput(this.$endTimeInput)<n&&this._formatTimeIntoInput(n,this.$endTimeInput);this._formatTimeIntoInput(n,this.$startTimeInput)},onSetEndTimeToCurrentFrameClicked:function(){var n=this._getPlayerCurrentTime();this._parseTimeFromInput(this.$startTimeInput)>n&&this._formatTimeIntoInput(n,this.$startTimeInput);this._formatTimeIntoInput(n,this.$endTimeInput)},onDeleteCaptionsClicked:function(){var n=this;Confirmation.request("Are you sure you want to delete the captions? This cannot be undone!",{callback:function(){n._toggleDeleteCaptionsSection(!1);Backbone.destroy(n.parentFileUploaderOptions.deleteCloudflareStreamCaptionsUrl.replace("{{:videoMediaId}}",n.mediaId),{success:function(){n.captionsUploader.reset();n._toggleUploadCaptionsSection(!0);n._refreshPlayerIframe()},error:function(){n._toggleDeleteCaptionsSection(!0)}})}})},saveCustomStartEndTime:function(){var n=this;return new Promise(function(t,i){var r=n.$(".setCustomStartEndTime").is(":checked");Backbone.invoke(n.parentFileUploaderOptions.saveVideoStartEndTimeUrl,{mediaId:n.mediaId,startTime:r?n.$startTimeInput.val():null,endTime:r?n.$endTimeInput.val():null},{success:function(){t()},error:function(){Alert.error("Failed to set custom start/end time.");i()}})})},_initTimeInput:function(n,t){var i=this;n.inputmask({regex:"\\d:[0-5]\\d:[0-5]\\d",placeholder:"0:00:00",nullable:!1,clearMaskOnLostFocus:!1}).blur(function(n){var r=i._parseTimeFromInput($(n.target)),u=i._clampTime(r,t.minValueProvider(),t.maxValueProvider());i._formatTimeIntoInput(u,$(n.target))})},_toggleStartEndTimeSection:function(n){this.$(".startEndTimeSection").toggle(n)},_toggleDeleteCaptionsSection:function(n){this.$(".captionsSection div.delete").toggle(n)},_toggleUploadCaptionsSection:function(n){this.$(".captionsSection div.upload").toggle(n)},_refreshPlayerIframe:function(){this.playerIframe.src=this.playerIframe.src.replace(/lastModified=\d+/,"lastModified="+(new Date).getTime())},_getPlayerCurrentTime:function(){var n=this.player.currentTime;return moment.duration(n*1e3)},_setPlayerCurrentTime:function(n){this.player.currentTime=n.asSeconds()},_coercePlayerCurrentTimeInStartEndTimeRange:function(){this._getPlayerCurrentTime()<this.streamInfo.startTime?this._setPlayerCurrentTime(this.streamInfo.startTime):this._getPlayerCurrentTime()>this.streamInfo.endTime&&(this._setPlayerCurrentTime(this.streamInfo.endTime),this.player.pause())},_parseTime:function(n){return moment.duration(n,"H:mm:ss")},_parseTimeFromInput:function(n){return this._parseTime(n.val())},_formatTime:function(n){return moment.utc(n.asMilliseconds()).format("H:mm:ss")},_formatTimeIntoInput:function(n,t){t.val(this._formatTime(n))},_clampTime:function(n,t,i){return n<t?t:n>i?i:n}}),function(n){function t(n,t){var o,u,f,e,r;this.options=t||{};o=(_.isNullOrUndefined(this.options.maxFileSize)||this.options.maxFileSize==""?appConfig.maxFileSize:Math.min(this.options.maxFileSize,appConfig.maxFileSize))*i;u=undefined;this.options.allowedFileExtensions&&(u=_(this.options.allowedFileExtensions.match(/[^\s.,]+/g)).map(function(n){return"."+n}));f=_.extend({},this.options.uploadParams,{maxFileSizeBytes:o,allowedFileTypes:u,isPrivate:this.options.params.isPrivate});this.uploadClient=!this.options.uploadParams.directUploadSettingsUrl?new widgets.fileUploader.FilestackUploaderView(f):new widgets.fileUploader.UppyUploaderView(f);e=this;this.uploadClient.on("fileUploaded",this._finishFilePicker,this);this.uploadClient.on("error",function(){e._handleErrorOrCancel(!0)},this);this.uploadClient.on("close",function(){e._handleErrorOrCancel(!1)},this);this.form=n.closest("form");this.disableFormOnSubmit=this.form.disableOnSubmit();this.fileUploadContainer=n.closest(".fileUpload");this.mediaIdInput=n;r=this.fileUploadContainer.find("input[type='file']");_.isUndefined(this.options.disabled)||r.attr("disabled",this.options.disabled);_.isUndefined(this.options.required)||r.toggleClass("required",this.options.required);r.attr("name",uuid.v4());_.isUndefined(this.options.required)||(r.toggleClass("required",this.options.required),this.options.required&&(r.enableRequiredValidationRule(this.options.required),r.addErrorContainerIfNotExists()));this.fileUploaded=!1}var i=1048576;n.extend(n.fn,{fileUploader:function(n){var r,u,i,f;return this.length==0?null:(u="div.fileUpload",r=this.is(u)?this:this.is("input")?this.closest(u):this.find(u),window.filepickerScriptLoadError)?(window.GoogleAnalytics.logEvent("Error","Filepicker","Load"),r.find("input[type='file']").hide(),r.find(".fileUploadWarning").show(),null):(i=r.data("fileUploader"),i)?i:(f=this,f.is("input")||(f=r.find("input.mediaIdInput")),i=new t(f,n),i.init(),r.data("fileUploader",i),i)}});n.extend(t.prototype,{init:function(){if(this.options.uploadOnSelect=!0,this.options.uploadOnSelect)this._uploadOnSelect();else this.form.on("submit",_.bind(this.startUpload,this));var t=this;this.fileUploadContainer.find(".preview .delete button").on("click",function(){Confirmation.requestDelete({callback:function(){Backbone.destroy(t.options.deleteUrl.replace("{{:id}}",t.mediaIdInput.val()),{success:function(){(t.fileUploaded=!1,t.fileUploadContainer.find(".preview").hide(),t.fileUploadContainer.find(".preview iframe").remove(),t.fileUploadContainer.find(".preview .content").empty(),t.mediaIdInput.val("").change(),t.clear(),t.renderPreviewTimeoutHandle&&(clearTimeout(t.renderPreviewTimeoutHandle),t.renderPreviewTimeoutHandle=undefined),t.options.onDelete&&t.options.onDelete(),t._addFileInput(),t.options.ignoreOnSubmit)||(t.options.dontStartLeavingViewProtector||t.leavingViewProtector?t.leavingViewProtector&&(t.leavingViewProtector.unbind(),t.leavingViewProtector=null):t.leavingViewProtector=LeavingViewProtector.start(),n(t).triggerHandler("deleted"))},error:function(){t._handleErrorOrCancel(!0)}})}})});this.form.on("save",function(){t.options.ignoreOnSubmit||(t.leavingViewProtector&&(t.leavingViewProtector.unbind(),t.leavingViewProtector=null),t.cloudflareStreamViewerView&&t.cloudflareStreamViewerView.saveCustomStartEndTime())});return this.options.fileData&&this.options.fileData.url?this._renderPreview(this.options.fileData):this.mediaIdInput.val()&&this.renderPreviewWithMediaId(this.mediaIdInput.val()),this},startUpload:function(n){return n.preventDefault(),n.stopImmediatePropagation(),this.disableFormOnSubmit&&(this.form.disableOnSubmit(!1),this.form.disableSubmitControls()),this.fileUploadContainer.find("input[type='file'], span.description, span.field-validation-error").hide(),this.form.find("input[type='file']").not(this.fileUploadContainer.find("input[type='file']")).prop("disabled",!0),this.form.find(".delete").hide(),this.uploadClient.startUpload(),this},setMediaId:function(n){this.mediaIdInput.val(n).change();this.clear();this.fileUploaded=!0;var t=this.renderPreviewWithMediaId(n);return this.disableFormOnSubmit&&(this.form.enableSubmitControls(),this.form.disableOnSubmit(!0)),this.options.dontStartLeavingViewProtector||this.options.ignoreOnSubmit||this.leavingViewProtector||(this.leavingViewProtector=LeavingViewProtector.start()),t},uploadFile:function(n){if(!(n instanceof File))throw new Error("Input object should be of type 'File'.");var t=this;return new Promise(function(i,r){t.uploadClient.uploadFile(n).then(function(n){t._finishFilePicker(n).then(i).catch(r)}).catch(r)})},setOwner:function(n){return this.options.params.owner=n,this},setOwnerId:function(n){return this.options.ownerId=n,this},dontShowDeleteButton:function(n){return this.options.dontShowDeleteButton=n,this.fileUploadContainer.find(".preview .delete").toggle(!n),this},toggleDisabledState:function(n){this.dontShowDeleteButton(n);var t=this.fileUploadContainer.find("input[type='file']");t.toggleDisabledFromJsApiState(n)},renderPreviewWithMediaId:function(n){if(!n)return this.reset(),Promise.resolve();this.mediaIdInput.val(n);this.hideUploadPanel();this.fileUploadContainer.find(".preview .previewBox").length==0&&this.fileUploadContainer.find(".preview .delete").hide();var t=this,i=this.options.mediaDataProviderUrl.replace("{{:id}}",n)+"?owner="+t.options.params.owner;return new Promise(function(r,u){Backbone.get(i,{success:function(i){var f,u;if(!i.result){t.reset();Alert.error('Media "'+n+"\" doesn't exist.");f=t.form.validate();f.settings.highlight.call(f,t.fileUploadContainer.find("input[type='file']")[0],f.settings.errorClass,f.settings.validClass);return}i.result.waitForPreview&&(t.renderPreviewTimeoutHandle=setTimeout(function(){t.renderPreviewWithMediaId(n)},1e4));u=i.result.media;u.url=i.result.url;u.urlWithoutCache=i.result.urlWithoutCache;u.filePreviewGroups=i.result.filePreviewGroups;u.previewFailed=i.result.previewFailed;i.result.previewUrl&&(u.previewUrl=i.result.previewUrl);i.result.previewCloudflareStreamInfo&&(u.previewCloudflareStreamInfo=i.result.previewCloudflareStreamInfo);t._renderPreview(u);r()},error:function(n){t.form.trigger("error");n.status>=500&&u("Internal Server Error has occurred while accessing media data.");n.status>=400&&u("You are not allowed to access media.")}})})},loadImage:function(t,i){var r=this;return window.loadImage(t,function(u){var f=n("<a target='_blank'>"+(u.outerHTML||i)+"<\/a>").attr("href",t);this.fileUploadContainer.find(".preview .content").empty().append(f);this.dontShowDeleteButton(this.options.dontShowDeleteButton);r.hideUploadPanel();r.fileUploadContainer.find(".preview").fadeIn()},{maxHeight:150,maxWidth:150}),this},reset:function(){this.mediaIdInput.val("");this.fileUploaded=!1;this.fileUploadContainer.find(".preview").hide();this.fileUploadContainer.find(".preview .content").empty();var n=this.fileUploadContainer.find("input[type='file']");return n.length==0?this._addFileInput():n.val(""),this},clear:function(){var n=this.form.find("input[type='file']");return n.removeClass("exclude"),this.options.disabled||n.removeAttr("disabled"),this.options.dontShowDeleteButton||this.form.find(".delete").show(),this},hideUploadPanel:function(){var n=this.fileUploadContainer.find("input[type='file']").getErrorContainerIfExists();return n&&n.remove(),this.fileUploadContainer.find("span.description").hide(),this.fileUploadContainer.find("input[type='file']").remove(),this},setRequiredOption:function(n){this.options.required=n},setAllowedFileTypes:function(n){this.uploadClient.setAllowedFileTypes(n)},_uploadOnSelect:function(n){if(n=_.isUndefined(n)||n,this.options.uploadOnSelect=n,n)this.fileUploadContainer.on("click","input[type='file']",_.bind(this.startUpload,this));else this.fileUploadContainer.off("click","input[type='file']");return this},_finishFilePicker:function(t){var r={owner:this.options.params.owner,isPrivate:this.options.params.isPrivate,fileName:t.filename,name:t.filename,tempUrl:t.url,key:t.key,size:t.size,contentType:t.contentType},i;return this.options.showVideoPreview&&(r.showVideoPreview=!0),this.options.forceCache&&(r.forceCache=!0),r.ownerId=this.options.ownerId,this.hideUploadPanel(),this.options.dontShowPreviewOnUpload||this._showLoadingPreviewIndicator(),i=this,new Promise(function(t,u){Backbone.invoke(i.options.successCallbackUrl,r,{success:function(r){var u=r.result.media;if(u.url=r.result.url,i.setMediaId(u.id).then(function(){t(u);n(i).triggerHandler("uploadIsFinished")}),i.options.onSuccess)i.options.onSuccess(u)},error:function(){Alert.error("Your file could not be processed at this time, please try again in a few moments.");i._handleErrorOrCancel(!0);u()}})})},_renderPreview:function(t){var r,u,i,f;return!t||!t.url?this:(this.hideUploadPanel(),this._showLoadingPreviewIndicator(),u=this.fileUploadContainer.find(".preview"),u.find(".previewBox").remove(),i=n("<div class='previewBox' />"),appConfig.isFilePreviewEnabled&&(this.options.showDocumentPreview&&t.filePreviewGroups.isDocument&&t.url?(i.css({position:"relative"}),t.contentType==="application/pdf"?new common.widgets.PdfViewerView({el:i,fileData:t}).render():Preview.canPreviewOfficeDocument(t.contentType,t.size)&&Preview.generateOfficeDocumentPreview(i,t.urlWithoutCache,"400px","100%",{contentType:t.contentType,size:t.size})):this.options.showImagePreview&&t.filePreviewGroups.isImage?r=t.urlWithoutCache:this.options.showAudioPreview&&t.filePreviewGroups.isAudio?r=t.url:appConfig.isVideoPreviewEnabled&&this.options.showVideoPreview&&t.filePreviewGroups.isVideo&&(t.previewFailed?i.append("<span class='error'>We could not transcode your video file.                             Try re-uploading as an mp4 encoded in H.264 format with AAC audio.<\/span>"):t.previewCloudflareStreamInfo?this.cloudflareStreamViewerView=new common.widgets.CloudflareStreamViewerView({el:i,mediaId:t.id,streamInfo:t.previewCloudflareStreamInfo,enableStartEndTimeEditing:this.options.enableCloudflareStreamsStartEndTimeEditing,enableCaptionsEditing:this.options.enableCloudflareStreamCaptionsEditing,enforcePlaybackWithinStartEndTime:this.options.enforceCloudflareStreamsPlaybackWithinStartEndTime,parentFileUploaderOptions:_.clone(this.options)}).render():t.previewUrl?r=t.previewUrl:i.append("<img src='/common/Content/images/loading.gif'/>                             <span>Processing Video<\/span><br/>                             <span class='small'>You may continue completing the form as processing occurs.<\/span>"))),f=n("<a class='link' target='_blank'>"+t.name+"<\/a>").attr("href",t.url),u.find(".content").empty().append(f),this.dontShowDeleteButton(this.options.dontShowDeleteButton),u.append(i),r&&(Preview.generate(i.first(),r,320,420,t.url),i.append("<div><span>This is a low-res preview. Click on the filename above to view the original.<\/span><\/div>")),this)},_handleErrorOrCancel:function(n){this.options.uploadOnSelect&&(this.reset(),this.disableFormOnSubmit&&(this.fileUploadContainer.find("input[type='file'], span.description, span.field-validation-error").show(),this.form.enableSubmitControls(),this.form.disableOnSubmit(!0)));this.form.trigger(n?"error":"cancel");this.clear()},_showLoadingPreviewIndicator:function(){var n=this.fileUploadContainer.find(".preview");return n.find(".delete").hide(),n.show(),n.find(".content").text("Please wait..."),this},_addFileInput:function(){var n=this.fileUploadContainer.find("span.description");n.before("<input type='file' name='"+uuid.v4()+"' "+(this.options.required?"class='required' ":"")+(this.options.disabled?"disabled='disable'":"")+" />");this.options.required&&this.fileUploadContainer.find("input[type='file']").addErrorContainerIfNotExists();n.show()}})}(jQuery);namespace("widgets.fileUploader");widgets.fileUploader.FilestackUploaderView=Backbone.View.extend({initialize:function(n){_.extend(this,n);this.filestackClient=filestack.init(n.pickerOptions.apiKey,{security:{policy:n.pickerOptions.policy,signature:n.pickerOptions.signature}})},startUpload:function(){var n=this,t=this._buildMediaKey(uuid.v4()),i=this.allowedFileTypes&&!_(this.allowedFileTypes).any(function(n){return n==".mp4"})?_(this.pickerOptions.services).filter(function(n){return n!="video"}):this.pickerOptions.services,r={startUploadingWhenMaxFilesReached:!0,maxSize:this.maxFileSizeBytes,maxFiles:1,fromSources:i,storeTo:this._buildStoreOptions(t),accept:this.allowedFileTypes,acceptFn:function(t,i){function f(t){return _(r).any(function(n){return n==t||n.endsWith("/*")&&n.startsWith(t.split("/")[0]+"/")})?Promise.resolve():Promise.reject(sprintf("File %(fileName)s is not an accepted file type. The accepted file types are %(allowedFileTypes)s",{fileName:u,allowedFileTypes:n.allowedFileTypes}))}var r,u;return _.isUndefined(n.allowedFileTypes)?Promise.resolve():(r=_.clone(_(i.acceptMime).filter(function(n){return!_.isNullOrUndefined(n)})),_(r).contains("audio/mp3")&&r.push("audio/mpeg"),_(r).contains("video/x-msvideo")&&r.push("video/vnd.avi"),u=_.isNullOrUndefined(t.originalFile)?t.filename:t.originalFile.name,_.isUndefined(t.mimetype)?i.mimeFromMagicBytes(t.originalFile).then(function(n){return f(n)}):f(t.mimetype))},onUploadDone:function(i){var r=i.filesUploaded[0];n.trigger("fileUploaded",{key:t,filename:r.filename,contentType:r.mimetype,size:r.size,url:r.url})},onFileUploadFailed:function(t,i){window.appConfig.isDevEnvironment&&console.log(i);n.trigger("error",i)},onClose:function(){n.trigger("close")}};this.filestackClient.picker(r).open()},uploadFile:function(n){if(!(n instanceof File))throw new Error("Provided object should be of type 'File'.");var t=this._buildMediaKey(buildRandomFilenamePreservingExtension(n.name)),i=this._buildStoreOptions(t);return this.filestackClient.upload(n,undefined,i).then(function(n){return{key:t,filename:n.filename,contentType:n.mimetype,size:n.size,url:n.url}})},setAllowedFileTypes:function(n){this.allowedFileTypes=n},_buildStoreOptions:function(n){var t=this.storeOptions;return{location:t.location,path:t.path+n,access:this.isPrivate?"private":"public"}},_buildMediaKey:function(n){return this.mediaKeyWithIdPlaceholder.replace("{{:id}}",n)}});namespace("widgets.fileUploader");widgets.fileUploader.UppyUploaderView=Backbone.View.extend({initialize:function(n){_.extend(this,n);this.uppyClient=new Uppy.Uppy({autoProceed:!0,allowMultipleUploadBatches:!1,restrictions:{maxFileSize:n.maxFileSize,maxNumberOfFiles:1,allowedFileTypes:n.allowedFileTypes}});var t=this;this.uppyClient.use(Uppy.Dashboard,{inline:!1,showProgressDetails:!0,closeAfterFinish:!0,hidePauseResumeButton:!0}).on("complete",function(n){t.trigger("fileUploaded",t._mapCompleteResult(n))}).on("error",function(n){window.appConfig.isDevEnvironment&&console.log(n.stack);t.trigger("error",n)}).on("dashboard:modal-closed",function(){t.uppyClient.cancelAll();t.trigger("close")});this._addAwsS3Plugin(this.uppyClient)},startUpload:function(){this.uppyClient.getPlugin("Dashboard").openModal()},uploadFile:function(n){var t,i;if(!(n instanceof File))throw new Error("Provided object should be of type 'File'.");return t=new Uppy.Uppy,this._addAwsS3Plugin(t),t.addFile(n),i=this,t.upload().then(function(n){return i._mapCompleteResult(n)})},setAllowedFileTypes:function(n){this.uppyClient.setOptions({restrictions:{allowedFileTypes:n}})},_addAwsS3Plugin:function(n){var t=this;this.isMultipartUploadSupported?n.use(Uppy.AwsS3Multipart,{getChunkSize:function(){return 8388608},createMultipartUpload:function(n){return new Promise(function(i,r){Backbone.post(t.createMultipartUploadUrl,{key:n.meta.key=t._buildMediaKey(n),contentType:n.type,isPrivate:t.isPrivate},{dontShowWaitCursor:!0,dontShowSuccessAlert:!0,success:function(n){i(n.result)},error:function(){r()}})})},listParts:function(n,i){return new Promise(function(n,r){Backbone.post(t.listMultipartUploadPartsUrl,i,{dontShowWaitCursor:!0,dontShowSuccessAlert:!0,success:function(t){n(t.result)},error:function(){r()}})})},signPart:function(n,i){return new Promise(function(r,u){Backbone.post(t.signMultipartUploadPartUrl,{key:i.key,uploadId:i.uploadId,partNumber:i.partNumber,contentType:n.type,isPrivate:t.isPrivate},{dontShowWaitCursor:!0,dontShowSuccessAlert:!0,success:function(n){r(n.result)},error:function(){u()}})})},abortMultipartUpload:function(n,i){return new Promise(function(n,r){Backbone.post(t.abortMultipartUploadUrl,i,{dontShowWaitCursor:!0,dontShowSuccessAlert:!0,success:function(t){n(t.result)},error:function(){r()}})})},completeMultipartUpload:function(n,i){return new Promise(function(n,r){Backbone.post(t.completeMultipartUploadUrl,i,{dontShowWaitCursor:!0,dontShowSuccessAlert:!0,success:function(){n({})},error:function(){r()}})})}}):n.use(Uppy.AwsS3,{getUploadParameters:function(n){return new Promise(function(i,r){Backbone.post(t.directUploadSettingsUrl,{mediaKey:n.meta.key=t._buildMediaKey(n),contentType:n.type,isPrivate:t.isPrivate},{dontShowSuccessAlert:!0,success:function(n){i(n.result)},error:function(){r()}})})}})},_mapCompleteResult:function(n){var t=n.successful[0];return{key:t.meta.key,filename:t.name,size:t.size,contentType:t.type}},_buildMediaKey:function(n){return this.mediaKeyWithIdPlaceholder.replace("{{:id}}",buildRandomFilenamePreservingExtension(n.name))}})