function batchAjax(n){function f(n){var r="",u=Object.keys(n),t=u[0];for(r+=t+"="+n[t],i=1;i<u.length;i++)t=u[i],r+="&"+t+"="+n[t];return r}function o(){var n;if(u.length>0){var e=new HttpBatchConfig,o=new HttpBatchAdapter,i=new HttpBatcher(e,o,r),s=/\?/,h=t.length;return u.forEach(function(n){var r=n.data,e=r&&n.contentType?r:undefined,u;!r||_.isEmpty(n.data)||n.contentType||(n.url=n.url+=(s.test(n.url)?"&":"?")+f(r));u={url:n.url,guid:n.guid,method:n.type,data:e,contentType:n.contentType,callbackDone:function(i,r,u,f){t[f]&&t[f].resolve(i,r,u);n.complete(u)},callbackFail:function(i,r,u,f){t[f]&&t[f].reject(i,r,u);n.complete(u)}};i.batchRequest(u)}),n=i.flush(),u=[],n}}var r=n,u=[],t={},e=_.once(function(){return _.debounce(o,App.batching.batchingInterval)});return function(n){var f,i,o;return App.batching.isEnableBatching?n.auth===!1||n.auth=="maybe"&&!App.request("auth:hasToken")?($logger.info("Backbone.ajax","call without auth"),r.call(this,n)):n.isFileUpload||n.isIgnoreBatch?r.call(this,n):(f=$.Deferred(),i=f.promise(),i.then(n.success),n.guid=App.Entities.generateGuid(),t[n.guid]=f,u.push(n),o=e(),o(),i.abort=function(){delete t[n.guid]},i):r.call(this,n)}}function errorHandlingAjax(n){"use strict";function u(n){$logger.info(t,"Show session end modal window");App.module("ErrorApp").showAccountError(n.title,n.text)}function f(n){var e;if(!n||!n.responseJSON)return!1;var t=n.responseJSON.Type,i=n.responseJSON.Code,r=t==="SecurityException",o=t==="TokenValidationException"&&i==="TokenRevoke",f=t==="GetSessionException"||t==="RefreshTokenExpiredException";return!r&&!o&&!f?!1:(e=f?"CheckUserSessionExceptions":"SecurityExceptions",u(App.ErrorLocalizer.getModalText(e,n)),r&&i==="AccessDenied"?App.request("auth:refreshToken").done(function(){App.execute("main:page")}):App.execute("auth:logout",{noRequest:!0}),n.handled=!0,!0)}function a(){$logger.info(t,"Refresh token is expired: executing logout");f({responseJSON:{Type:"RefreshTokenExpiredException",Code:"RefreshTokenExpired"}})}function v(){$logger.info(t,"No token: executing logout");App.execute("auth:logout")}function e(n){var t=i();try{return l.call(this,n)}catch(r){switch(r){case t.errors.NO_TOKEN:v();return;case t.errors.REFRESH_TOKEN_EXPIRED:a();return;default:throw r;}}}function y(n){var t,i;return!n||!n.responseJSON?!1:(t=n.responseJSON.Type,i=n.responseJSON.Code,t==="MaintenanceModeException"&&i==="MaintenanceModeOn")?(App.execute("page:reload"),n.handled=!0,!0):!1}function o(n,t){return y(n)||t.noExceptHandler||f(n)}function s(n,u,f,e,s){($logger.info(t,"Request with refreshed token returned error"),o(n,e))||(s.reject(n,u,f),c(e,n),r().getErrorType(n)===i().errors.COMMON_ERROR&&h(n))}function h(n){$logger.warn(t,"Some common error: "+App.module("Utils.String").toJSON(n));var i=App.ErrorLocalizer.getModalText("errors",n);App.execute("replace:main",{title:i.title,text:i.text})}function c(n,t){n.originalErrorHandler&&n.originalErrorHandler(t)}function p(n,t){var i=App.ErrorLocalizer.getModalText("errors",n);u(i);t.reject();App.execute("auth:logout")}function w(n){var t=$.Deferred(),f=t.promise(),u;if(n.originalErrorHandler=n.error,delete n.error,u=e(n),u)return u.done(t.resolve).fail(function(u,f,l){var a,v;if(u.failedAfterRefresh){s(u,f,l,n,t);return}if(!o(u,n)){if(u.tokenRefreshFailed){p(u,t);return}a=i();switch(r().getErrorType(u)){case a.errors.TOKEN_ERROR:if(n.forceTokenRefresh=!0,v=e(n),!v)return;v.done(t.resolve).fail(function(i,r,u){s(i,r,u,n,t)});break;case a.errors.COMMON_ERROR:t.reject(u,f,l);h(u);break;default:t.reject(u,f,l);c(n,u)}}}),f.abort=function(){u&&u.abort&&u.abort()},f}var t="errorHandlingAjax",l=n,r=_.once(function(){return App.module("Utils.Ajax")}),i=_.once(function(){return App.module("Constants.Ajax")});return w}function headerSetterAjax(n){"use strict";var t=n;return function(n){var i;return n.auth&&(i=App.request("auth:entity").get("access_token"),i&&(n.headers||(n.headers={}),n.headers.Authorization="Bearer "+i)),t.call(this,n)}}function refreshTokenRepeaterAjax(n){"use strict";function r(n){var t=App.module("Settings");return n.round>t.ajaxSettings.maxRepeatCount}function u(n,i){n.round+=1;$logger.warn("refreshTokenRepeaterAjax","Repeating ajax call. Round: "+n.round);t(n).then(function(n,t,r){i.resolve(n,t,r)},function(n,t,r){i.reject(n,t,r)})}function t(n){var f=$.Deferred(),e=f.promise(),t=i.call(this,n);return t?(t.done(f.resolve).fail(function(t,i,e){t.tokenIsAlreadyRefreshed&&!r(n)?u(n,f):f.reject(t,i,e)}),e.abort=function(){t&&t.abort&&t.abort()},e):undefined}var i=n;return t}function requestInitAjax(n){"use strict";var t=n;return function(n){return n.crossDomain&&(n.crossDomain=!0),n.round||(n.round=1),n.forceTokenRefresh||(n.forceTokenRefresh=!1),t.call(this,n)}}function termsOfUseAjax(n){"use strict";function u(n,t){$logger.info(i,"Repeating ajax after ToU was accepted");n.forceTokenRefresh=!0;r(n).then(function(n,i,r){t.resolve(n,i,r)},function(n,i,r){t.reject(n,i,r)})}function e(n,r){var f;if($logger.info(i,"ToU should be accepted"),t){t.done(function(){u(n,r)});return}f=$.Deferred();t=f.promise();t.done(function(){u(n,r)}).always(function(){t=null});App.module("AccountApp.TermsOfUse").show({shouldAccept:!0,fromUser:!0,onAccepted:function(){f.resolve()},onClosedByUser:function(){f.reject();$logger.info(i,"User closed ToU: logging out");App.execute("auth:logout")}})}var i="termsOfUseAjax",f=n,r,t;return r=function(n){var i=$.Deferred(),r=i.promise(),u=App.request("auth:entity"),t;return(n.allowedWithoutTermsOfUse||!u.shouldAcceptTermsOfUse()||u.shouldRefreshPassword()||(n.forceTokenRefresh=!0),t=f.call(this,n),!t)?undefined:(t.done(i.resolve).fail(function(t,r,u){t.shouldAcceptTermsOfUse?e(n,i):i.reject(t,r,u)}),r.abort=function(){t&&t.abort&&t.abort()},r)}}function tokenAjax(n){"use strict";function r(n,i){if(n.isAborted){$logger.info(t,"Refresh token aborted");i.reject();return}if(n.tokenIsAlreadyRefreshed){$logger.info(t,"Token was already refreshed. Sending request");i.reject({tokenIsAlreadyRefreshed:!0});return}$logger.info(t,"Refresh token error");n.tokenRefreshFailed=!0;i.reject(n)}function u(n){var u=$.Deferred(),e=u.promise(),f,o=!1;return $logger.info(t,"hasValidToken false, refresh token"),n.isFileUpload&&n.pauseUpload(n),App.request("auth:refreshToken").done(function(r){if(!o){if(r&&r.shouldAcceptTermsOfUse==="True"&&!n.allowedWithoutTermsOfUse){u.reject({shouldAcceptTermsOfUse:!0});return}n.isFileUpload&&n.resumeUpload(n);f=i(n).done(u.resolve).fail(function(n,i,r){$logger.info(t,"Refresh token failed, handling error");n.failedAfterRefresh=!0;u.reject(n,i,r)})}}).fail(function(n){r(n,u)}),e.abort=function(){f&&f.abort&&f.abort();o=!0},e}function f(n){var r=App.module("Constants.Ajax");if(!App.request("auth:hasToken"))throw r.errors.NO_TOKEN;if(!App.request("auth:hasValidRefreshToken"))throw r.errors.REFRESH_TOKEN_EXPIRED;return App.request("auth:hasValidToken")&&!n.forceTokenRefresh?($logger.info(t,"No need to refresh token before request. Options: "+App.module("Utils.String").toJSON(n)),App.request("auth:setupToken"),i(n)):u(n)}function e(n){return n.auth===!1||n.auth==="maybe"&&!App.request("auth:hasToken")}function o(n){return($logger.info(t,"Starting ajax request. Url: "+n.url+", Round: "+n.round),e(n))?($logger.info(t,"call without auth"),i.call(this,n)):f.call(this,n)}var i=n,t="tokenAjax";return o}function traceAjax(n){"use strict";function f(n,r,u){$logger.debug(t,"Succeeded ajax request for "+this.url);i().traceAjax(this.type,this.url,u)}function e(n){$logger.debug(t,"Failed ajax request for "+this.url+". Response: "+u().toJSON(n));i().traceAjax(this.type,this.url,n)}var r=n,t="traceAjax",i=_.once(function(){return App.module("Utils.Ajax")}),u=_.once(function(){return App.module("Utils.String")});return function(n){return r.call(this,n).done(f).fail(e)}}function HttpBatchAdapter(){function t(t,i){var c=i.calculateBoundary(),l={method:"POST",url:"/api/batch",cache:!1,headers:i.batchRequestHeaders||{}},r=[],a,s,v,u,h,y,e;for(l.headers[n.contentType]="multipart/mixed; boundary="+c,s=0;s<t.length;s+=1){u=t[s];h=f(u.url);r.push(n.doubleDash+c);i.batchPartRequestHeaders&&(y=Object.keys(i.batchPartRequestHeaders),y.forEach(function(t){if(i.batchPartRequestHeaders.hasOwnProperty(t)){var u=t+n.colon+n.singleSpace+i.batchPartRequestHeaders[t];t.toLowerCase()==="content-disposition"&&i.uniqueRequestName!==null&&i.uniqueRequestName!==undefined&&(u+=n.semiColon+n.singleSpace+n.requestName+i.uniqueRequestName+s);r.push(u)}}));r.push("Content-Type: application/http; msgtype=request",n.emptyString);e=h.relativeUrl.split("?");v=e.length>1&&/%[A-F0-9]{2}/gi.test(e[1])===!1?encodeURI(h.relativeUrl):encodeURI(e[0])+(e.length>1?"?"+e[1]:"");r.push(u.method+" "+v+" "+n.httpVersion);u.contentType&&r.push(o(u.contentType));r.push("Host: "+h.host);r.push("X-Requested-With: XMLHttpRequest",n.emptyString);for(a in u.headers)r.push(a+n.colon+n.singleSpace+u.headers[a]);i.sendCookies===!0&&$(document)[0].cookie&&$(document)[0].cookie.length>0&&r.push("Cookie: "+$(document)[0].cookie);r.push(n.emptyString);u.data&&r.push(u.data);r.push(n.emptyString)}return r.push(n.doubleDash+c+n.doubleDash),l.data=r.join(n.newline),l}function i(t,i){for(var f,e=[],o=r(i),h=i.split(n.doubleDash+o+n.newlineVar),c=0,u=0;u<h.length;u+=1)f=h[u],f!==n.emptyString&&(e.push(s(f,t[c],o)),c+=1);return e}function r(n){var t=n.split("\n")[0];return t.replace("--","")}function u(n){return typeof n=="string"?n.replace(")]}',\n",""):n}function f(n){var t=document.createElement("a");return t.href=n,{protocol:t.protocol,host:t.host,relativeUrl:t.pathname+t.search}}function e(n,t){var i=t;return n=n.toLowerCase(),n.indexOf("json")>-1&&(t=u(t),i=$.parseJSON(t)),i}function o(n){return"Content-Type: "+n}function s(t,i,r){for(var f,c,l,s=t.split(n.newline),u={headers:{}},h=!1,o=0;o<s.length;o+=1){if(f=s[o],f===n.emptyString){h=u.contentType!==undefined;continue}if(_.isUndefined(u.contentType)&&f.indexOf("-Type")!==-1&&f.indexOf("; msgtype=response")===-1)u.contentType=f.split(n.forwardSlash)[1];else if(_.isUndefined(u.contentType)||h){if(_.isUndefined(u.statusCode)&&f.indexOf(n.httpVersion)!==-1)l=f.split(n.singleSpace),u.statusCode=parseInt(l[1],10),u.statusText=l.slice(2).join(n.singleSpace);else if(_.isUndefined(u.responseJSON)&&h){u.responseJSON="";u.responseText="";for(var a=1,v="--"+r.replace("\r",n.emptyString)+"--",y=new RegExp(v,"i");y.test(f)===!1&&o+a<=s.length;)u.responseJSON+=f,u.responseText+=f+n.newline,f=s[o+a],a+=1;u.responseText=u.responseText.substring(0,u.responseText.length-4);u.responseJSON=e(u.contentType,u.responseJSON);break}}else c=f.split(n.colon),u.headers[c[0]]=c[1].trim()}return u.headers[n.contentType]=u.contentType,new HttpBatchResponseData(i,u.statusCode,u.statusText,u.responseText,u.responseJSON,u.headers)}var n={httpVersion:"HTTP/1.1",contentType:"Content-Type",newline:"\r\n",newlineVar:"\n",emptyString:"",singleSpace:" ",forwardSlash:"/",doubleDash:"--",colon:":",semiColon:";",requestName:"name="};this.buildRequest=t;this.parseResponse=i}function HttpBatchConfig(){this.maxBatchedRequestPerCall=10;this.minimumBatchSize=2;this.sendCookies=!1;this.uniqueRequestName=null;this.batchPartRequestHeaders=null;this.calculateBoundary=function(){return(new Date).getTime().toString()}}function convertHeadersToString(n){var t,i="";for(t in n)i+=t+": "+n[t]+"\n";return i}function addRequestFn(n){this.requests.push(n);this.requests.length>=this.config.maxBatchedRequestPerCall&&this.send()}function sendFn(){var n=this,t=n.adapter,i=t.buildRequest(n.requests,n.config);return n.sendCallback(),n.ajax.call(this,i).done(function(i,r,u){var f=t.parseResponse(n.requests,i,n.config);f.forEach(function(n){var t=$.extend(!0,{},u,n);t.status>=200&&t.status<300?n.request.callbackDone(n.responseJSON,r,t,n.request.guid):n.request.callbackFail(t,"error",t.statusText,n.request.guid)})}).fail(function(t,i,r){n.requests.forEach(function(n){n.callbackFail(t,i,r,n.request.guid)})})}function BatchRequestManager(n,t,i,r){var u=this;this.config=t;this.adapter=n;this.sendCallback=r;this.requests=[];this.ajax=i}function HttpBatcher(n,t,i){function u(n){r.batchRequestManager===undefined&&(r.batchRequestManager=new BatchRequestManager(r.adapter,r.config,r.ajax,function(){r.batchRequestManager=undefined}));r.batchRequestManager.addRequest(n)}function f(){return r.batchRequestManager.send()}var r=this;r.batchRequestManager=undefined;r.config=n;r.adapter=t;r.ajax=i;r.batchRequest=u;r.flush=f}function HttpBatchResponseData(n,t,i,r,u,f){this.request=n;this.statusCode=t;this.statusText=i;this.responseText=r;this.responseJSON=u;this.headers=f}var Interceptor,App;(function(n){"use strict";var t=n.ajax,i=function(){var n=App.module("Utils.Browser");return n.isNavigatingOrRefreshing?n.isNavigatingOrRefreshing():($logger.warn("jQuery.Extensions.ajax-extensions","Utils.Browser module is not created"),!1)};n.ajax=function(){return t.apply(n,arguments).fail(function(t,r,u){return t.isAborted=u==="abort"||i(),n.Deferred().reject(t,r,u)})}})(jQuery),function(){"use strict";jQuery.fn.extend({zIndex:function(n){if(n!==undefined)return this.css("zIndex",n);if(this.length)for(var t=$(this[0]),i,r;t.length&&t[0]!==document;){if(i=t.css("position"),(i==="absolute"||i==="relative"||i==="fixed")&&(r=parseInt(t.css("zIndex"),10),!isNaN(r)&&r!==0))return r;t=t.parent()}return 0},enableButton:function(){var n=this.is("a"),t=n?this.removeClass("disabled"):this.attr("disabled",!1);return t.removeClass("bg-gray").addClass("bg-green")},disableButton:function(){var n=this.is("a"),t=n?this.addClass("disabled"):this.attr("disabled",!0);return t.addClass("bg-gray").removeClass("bg-green")},setButtonState:function(n){return n?this.enableButton():this.disableButton()},setValuePreservingCursor:function(n){var r=this.val(),t,u,f,i;return r===n?this:(t=this[0],u=t.selectionStart||0,f=t.selectionEnd||0,i=r.length-n.length,this.val(n),t.setSelectionRange(u-i,f-i),this)}})}(),function(n){"use strict";typeof define=="function"&&define.amd?define(["jquery"],n):typeof exports=="object"?n(require("jquery")):n(window.jQuery)}(function(n){"use strict";var i=0,r=["accepts","cache","contents","contentType","crossDomain","data","dataType","headers","ifModified","mimeType","password","processData","timeout","traditional","type","url","username"],t=function(n){return n};n.ajaxSetup({converters:{"postmessage text":t,"postmessage json":t,"postmessage html":t}});n.ajaxTransport("postmessage",function(t){if(t.postMessage&&window.postMessage){var u,f=n("<a>").prop("href",t.postMessage)[0],e=f.protocol+"//"+f.host,o=t.xhr().upload;return{send:function(f,s){i+=1;var h={id:"postmessage-transport-"+i},c="message."+h.id;u=n('<iframe style="display:none;" src="'+t.postMessage+'" name="'+h.id+'"><\/iframe>').bind("load",function(){n.each(r,function(n,i){h[i]=t[i]});h.dataType=h.dataType.replace("postmessage ","");n(window).bind(c,function(t){t=t.originalEvent;var i=t.data,r;t.origin===e&&i.id===h.id&&(i.type==="progress"?(r=document.createEvent("Event"),r.initEvent(i.type,!1,!0),n.extend(r,i),o.dispatchEvent(r)):(s(i.status,i.statusText,{postmessage:i.result},i.headers),u.remove(),n(window).unbind(c)))});u[0].contentWindow.postMessage(h,e)}).appendTo(document.body)},abort:function(){u&&u.remove()}}}})}),function(n){"use strict";typeof define=="function"&&define.amd?define(["jquery"],n):typeof exports=="object"?n(require("jquery")):n(window.jQuery)}(function(n){"use strict";window.XDomainRequest&&!n.support.cors&&n.ajaxTransport(function(t){if(t.crossDomain&&t.async){t.timeout&&(t.xdrTimeout=t.timeout,delete t.timeout);var i;return{send:function(r,u){function e(t,r,f,e){i.onload=i.onerror=i.ontimeout=n.noop;i=null;u(t,r,f,e)}var f=/\?/.test(t.url)?"&":"?";i=new XDomainRequest;t.type==="DELETE"?(t.url=t.url+f+"_method=DELETE",t.type="POST"):t.type==="PUT"?(t.url=t.url+f+"_method=PUT",t.type="POST"):t.type==="PATCH"&&(t.url=t.url+f+"_method=PATCH",t.type="POST");i.open(t.type,t.url);i.onload=function(){e(200,"OK",{text:i.responseText},"Content-Type: "+i.contentType)};i.onerror=function(){e(404,"Not Found")};t.xdrTimeout&&(i.ontimeout=function(){e(0,"timeout")},i.timeout=t.xdrTimeout);i.send(t.hasContent&&t.data||null)},abort:function(){i&&(i.onerror=n.noop(),i.abort())}}}})}),function(n){"use strict";typeof define=="function"&&define.amd?define(["jquery","jquery.ui.widget"],n):typeof exports=="object"?n(require("jquery"),require("./vendor/jquery.ui.widget")):n(window.jQuery)}(function(n){"use strict";function t(t){var i=t==="dragover";return function(r){r.dataTransfer=r.originalEvent&&r.originalEvent.dataTransfer;var u=r.dataTransfer;u&&n.inArray("Files",u.types)!==-1&&this._trigger(t,n.Event(t,{delegatedEvent:r}))!==!1&&(r.preventDefault(),i&&(u.dropEffect="copy"))}}n.support.fileInput=!(new RegExp("(Android (1\\.[0156]|2\\.[01]))|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)|(w(eb)?OSBrowser)|(webOS)|(Kindle/(1\\.0|2\\.[05]|3\\.0))").test(window.navigator.userAgent)||n('<input type="file">').prop("disabled"));n.support.xhrFileUpload=!!(window.ProgressEvent&&window.FileReader);n.support.xhrFormDataFileUpload=!!window.FormData;n.support.blobSlice=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice);n.widget("blueimp.fileupload",{options:{dropZone:n(document),pasteZone:undefined,fileInput:undefined,replaceFileInput:!0,paramName:undefined,singleFileUploads:!0,limitMultiFileUploads:undefined,limitMultiFileUploadSize:undefined,limitMultiFileUploadSizeOverhead:512,sequentialUploads:!1,limitConcurrentUploads:undefined,forceIframeTransport:!1,redirect:undefined,redirectParamName:undefined,postMessage:undefined,multipart:!0,maxChunkSize:undefined,uploadedBytes:undefined,recalculateProgress:!0,progressInterval:100,bitrateInterval:500,autoUpload:!0,messages:{uploadedBytes:"Uploaded bytes exceed file size"},i18n:function(t,i){return t=this.messages[t]||t.toString(),i&&n.each(i,function(n,i){t=t.replace("{"+n+"}",i)}),t},formData:function(n){return n.serializeArray()},add:function(t,i){if(t.isDefaultPrevented())return!1;(i.autoUpload||i.autoUpload!==!1&&n(this).fileupload("option","autoUpload"))&&i.process().done(function(){i.submit()})},processData:!1,contentType:!1,cache:!1},_specialOptions:["fileInput","dropZone","pasteZone","multipart","forceIframeTransport"],_blobSlice:n.support.blobSlice&&function(){var n=this.slice||this.webkitSlice||this.mozSlice;return n.apply(this,arguments)},_BitrateTimer:function(){this.timestamp=Date.now?Date.now():(new Date).getTime();this.loaded=0;this.bitrate=0;this.getBitrate=function(n,t,i){var r=n-this.timestamp;return(!this.bitrate||!i||r>i)&&(this.bitrate=(t-this.loaded)*(1e3/r)*8,this.loaded=t,this.timestamp=n),this.bitrate}},_isXHRUpload:function(t){return!t.forceIframeTransport&&(!t.multipart&&n.support.xhrFileUpload||n.support.xhrFormDataFileUpload)},_getFormData:function(t){var i;return n.type(t.formData)==="function"?t.formData(t.form,t):n.isArray(t.formData)?t.formData:n.type(t.formData)==="object"?(i=[],n.each(t.formData,function(n,t){i.push({name:n,value:t})}),i):[]},_getTotal:function(t){var i=0;return n.each(t,function(n,t){i+=t.size||1}),i},_initProgressObject:function(t){var i={loaded:0,total:0,bitrate:0};t._progress?n.extend(t._progress,i):t._progress=i},_initResponseObject:function(n){var t;if(n._response)for(t in n._response)n._response.hasOwnProperty(t)&&delete n._response[t];else n._response={}},_onProgress:function(t,i){if(t.lengthComputable){var r=Date.now?Date.now():(new Date).getTime(),u;if(i._time&&i.progressInterval&&r-i._time<i.progressInterval&&t.loaded!==t.total)return;i._time=r;u=Math.floor(t.loaded/t.total*(i.chunkSize||i._progress.total))+(i.uploadedBytes||0);this._progress.loaded+=u-i._progress.loaded;this._progress.bitrate=this._bitrateTimer.getBitrate(r,this._progress.loaded,i.bitrateInterval);i._progress.loaded=i.loaded=u;i._progress.bitrate=i.bitrate=i._bitrateTimer.getBitrate(r,u,i.bitrateInterval);this._trigger("progress",n.Event("progress",{delegatedEvent:t}),i);this._trigger("progressall",n.Event("progressall",{delegatedEvent:t}),this._progress)}},_initProgressListener:function(t){var r=this,i=t.xhr?t.xhr():n.ajaxSettings.xhr();i.upload&&(n(i.upload).bind("progress",function(n){var i=n.originalEvent;n.lengthComputable=i.lengthComputable;n.loaded=i.loaded;n.total=i.total;r._onProgress(n,t)}),t.xhr=function(){return i})},_isInstanceOf:function(n,t){return Object.prototype.toString.call(t)==="[object "+n+"]"},_initXHRData:function(t){var f=this,i,r=t.files[0],e=t.multipart||!n.support.xhrFileUpload,u=n.type(t.paramName)==="array"?t.paramName[0]:t.paramName;t.headers=n.extend({},t.headers);t.headers["Content-Range"]=t.contentRange?t.contentRange:"bytes 0-"+(r.size-1)+"/"+r.size;e&&!t.blob&&this._isInstanceOf("File",r)||(t.headers["Content-Disposition"]='attachment; filename="'+encodeURI(r.name)+'"');e?n.support.xhrFormDataFileUpload&&(t.postMessage?(i=this._getFormData(t),t.blob?i.push({name:u,value:t.blob}):n.each(t.files,function(r,f){i.push({name:n.type(t.paramName)==="array"&&t.paramName[r]||u,value:f})})):(f._isInstanceOf("FormData",t.formData)?i=t.formData:(i=new FormData,n.each(this._getFormData(t),function(n,t){i.append(t.name,t.value)})),t.blob?i.append(u,t.blob,r.name):n.each(t.files,function(r,e){(f._isInstanceOf("File",e)||f._isInstanceOf("Blob",e))&&i.append(n.type(t.paramName)==="array"&&t.paramName[r]||u,e,e.uploadName||e.name)})),t.data=i):(t.contentType=r.type||"application/octet-stream",t.data=t.blob||r);t.blob=null},_initIframeSettings:function(t){var i=n("<a><\/a>").prop("href",t.url).prop("host");t.dataType="iframe "+(t.dataType||"");t.formData=this._getFormData(t);t.redirect&&i&&i!==location.host&&t.formData.push({name:t.redirectParamName||"redirect",value:t.redirect})},_initDataSettings:function(n){this._isXHRUpload(n)?(this._chunkedUpload(n,!0)||(n.data||this._initXHRData(n),this._initProgressListener(n)),n.postMessage&&(n.dataType="postmessage "+(n.dataType||""))):this._initIframeSettings(n)},_getParamName:function(t){var r=n(t.fileInput),i=t.paramName;return i?n.isArray(i)||(i=[i]):(i=[],r.each(function(){for(var t=n(this),u=t.prop("name")||"files[]",r=(t.prop("files")||[1]).length;r;)i.push(u),r-=1}),i.length||(i=[r.prop("name")||"files[]"])),i},_initFormSettings:function(t){t.form&&t.form.length||(t.form=n(t.fileInput.prop("form")),t.form.length||(t.form=n(this.options.fileInput.prop("form"))));t.paramName=this._getParamName(t);t.url||(t.url=t.form.prop("action")||location.href);t.type=(t.type||n.type(t.form.prop("method"))==="string"&&t.form.prop("method")||"").toUpperCase();t.type!=="POST"&&t.type!=="PUT"&&t.type!=="PATCH"&&(t.type="POST");t.formAcceptCharset||(t.formAcceptCharset=t.form.attr("accept-charset"))},_getAJAXSettings:function(t){var i=n.extend({},this.options,t);return this._initFormSettings(i),this._initDataSettings(i),i},_getDeferredState:function(n){return n.state?n.state():n.isResolved()?"resolved":n.isRejected()?"rejected":"pending"},_enhancePromise:function(n){return n.success=n.done,n.error=n.fail,n.complete=n.always,n},_getXHRPromise:function(t,i,r){var u=n.Deferred(),f=u.promise();return i=i||this.options.context||f,t===!0?u.resolveWith(i,r):t===!1&&u.rejectWith(i,r),f.abort=u.promise,this._enhancePromise(f)},_addConvenienceMethods:function(t,i){var r=this,u=function(t){return n.Deferred().resolveWith(r,t).promise()};i.process=function(t,f){return(t||f)&&(i._processQueue=this._processQueue=(this._processQueue||u([this])).pipe(function(){return i.errorThrown?n.Deferred().rejectWith(r,[i]).promise():u(arguments)}).pipe(t,f)),this._processQueue||u([this])};i.submit=function(){return this.state()!=="pending"&&(i.jqXHR=this.jqXHR=r._trigger("submit",n.Event("submit",{delegatedEvent:t}),this)!==!1&&r._onSend(t,this)),this.jqXHR||r._getXHRPromise()};i.abort=function(){return this.jqXHR?this.jqXHR.abort():(this.errorThrown="abort",r._trigger("fail",null,this),r._getXHRPromise(!1))};i.state=function(){return this.jqXHR?r._getDeferredState(this.jqXHR):this._processQueue?r._getDeferredState(this._processQueue):void 0};i.processing=function(){return!this.jqXHR&&this._processQueue&&r._getDeferredState(this._processQueue)==="pending"};i.progress=function(){return this._progress};i.response=function(){return this._response}},_getUploadedBytes:function(n){var i=n.getResponseHeader("Range"),t=i&&i.split("-"),r=t&&t.length>1&&parseInt(t[1],10);return r&&r+1},_chunkedUpload:function(t,i){t.uploadedBytes=t.uploadedBytes||0;var u=this,f=t.files[0],e=f.size,r=t.uploadedBytes,c=t.maxChunkSize||e,l=this._blobSlice,o=n.Deferred(),s=o.promise(),a,h;return!(this._isXHRUpload(t)&&l&&(r||c<e))||t.data?!1:i?!0:r>=e?(f.error=t.i18n("uploadedBytes"),this._getXHRPromise(!1,t.context,[null,"error",f.error])):(h=function(){var i=n.extend({},t),s=i._progress.loaded;i.blob=l.call(f,r,r+c,f.type);i.chunkSize=i.blob.size;i.contentRange="bytes "+r+"-"+(r+i.chunkSize-1)+"/"+e;u._initXHRData(i);u._initProgressListener(i);a=(u._trigger("chunksend",null,i)!==!1&&Backbone.ajax(i)||u._getXHRPromise(!1,i.context)).done(function(f,c,l){r=u._getUploadedBytes(l)||r+i.chunkSize;s+i.chunkSize-i._progress.loaded&&u._onProgress(n.Event("progress",{lengthComputable:!0,loaded:r-i.uploadedBytes,total:r-i.uploadedBytes}),i);t.uploadedBytes=i.uploadedBytes=r;i.result=f;i.textStatus=c;i.jqXHR=l;u._trigger("chunkdone",null,i);u._trigger("chunkalways",null,i);r<e?h():o.resolveWith(i.context,[f,c,l])}).fail(function(n,t,r){i.jqXHR=n;i.textStatus=t;i.errorThrown=r;u._trigger("chunkfail",null,i);u._trigger("chunkalways",null,i);o.rejectWith(i.context,[n,t,r])})},this._enhancePromise(s),s.abort=function(){return a.abort()},h(),s)},_beforeSend:function(n,t){this._active===0&&(this._trigger("start"),this._bitrateTimer=new this._BitrateTimer,this._progress.loaded=this._progress.total=0,this._progress.bitrate=0);this._initResponseObject(t);this._initProgressObject(t);t._progress.loaded=t.loaded=t.uploadedBytes||0;t._progress.total=t.total=this._getTotal(t.files)||1;t._progress.bitrate=t.bitrate=0;this._active+=1;this._progress.loaded+=t.loaded;this._progress.total+=t.total},_onDone:function(t,i,r,u){var f=u._progress.total,e=u._response;u._progress.loaded<f&&this._onProgress(n.Event("progress",{lengthComputable:!0,loaded:f,total:f}),u);e.result=u.result=t;e.textStatus=u.textStatus=i;e.jqXHR=u.jqXHR=r;this._trigger("done",null,u)},_onFail:function(n,t,i,r){var u=r._response;r.recalculateProgress&&(this._progress.loaded-=r._progress.loaded,this._progress.total-=r._progress.total);u.jqXHR=r.jqXHR=n;u.textStatus=r.textStatus=t;u.errorThrown=r.errorThrown=i;this._trigger("fail",null,r)},_onAlways:function(n,t,i,r){this._trigger("always",null,r)},_onSend:function(t,i){i.submit||this._addConvenienceMethods(t,i);var r=this,f,s,e,h,u=r._getAJAXSettings(i),o=function(){return r._sending+=1,u._bitrateTimer=new r._BitrateTimer,f=f||((s||r._trigger("send",n.Event("send",{delegatedEvent:t}),u)===!1)&&r._getXHRPromise(!1,u.context,s)||r._chunkedUpload(u)||Backbone.ajax(u)).done(function(n,t,i){r._onDone(n,t,i,u)}).fail(function(n,t,i){r._onFail(n,t,i,u)}).always(function(n,t,i){if(r._onAlways(n,t,i,u),r._sending-=1,r._active-=1,u.limitConcurrentUploads&&u.limitConcurrentUploads>r._sending)for(var f=r._slots.shift();f;){if(r._getDeferredState(f)==="pending"){f.resolve();break}f=r._slots.shift()}r._active===0&&r._trigger("stop")})};return(this._beforeSend(t,u),this.options.sequentialUploads||this.options.limitConcurrentUploads&&this.options.limitConcurrentUploads<=this._sending)?(this.options.limitConcurrentUploads>1?(e=n.Deferred(),this._slots.push(e),h=e.pipe(o)):(this._sequence=this._sequence.pipe(o,o),h=this._sequence),h.abort=function(){return(s=[undefined,"abort","abort"],!f)?(e&&e.rejectWith(u.context,s),o()):f.abort()},this._enhancePromise(h)):o()},_onAdd:function(t,i){var a=this,p=!0,f=n.extend({},this.options,i),u=i.files,v=u.length,o=f.limitMultiFileUploads,c=f.limitMultiFileUploadSize,b=f.limitMultiFileUploadSizeOverhead,w=0,l=this._getParamName(f),s,e,h,r,y=0;if(c&&(!v||u[0].size===undefined)&&(c=undefined),(f.singleFileUploads||o||c)&&this._isXHRUpload(f))if(f.singleFileUploads||c||!o)if(!f.singleFileUploads&&c)for(h=[],s=[],r=0;r<v;r=r+1)w+=u[r].size+b,(r+1===v||w+u[r+1].size+b>c||o&&r+1-y>=o)&&(h.push(u.slice(y,r+1)),e=l.slice(y,r+1),e.length||(e=l),s.push(e),y=r+1,w=0);else s=l;else for(h=[],s=[],r=0;r<v;r+=o)h.push(u.slice(r,r+o)),e=l.slice(r,r+o),e.length||(e=l),s.push(e);else h=[u],s=[l];return i.originalFiles=u,n.each(h||u,function(r,u){var f=n.extend({},i);return f.files=h?u:[u],f.paramName=s[r],a._initResponseObject(f),a._initProgressObject(f),a._addConvenienceMethods(t,f),p=a._trigger("add",n.Event("add",{delegatedEvent:t}),f)}),p},_replaceFileInput:function(t){var i=t.fileInput,r=i.clone(!0);t.fileInputClone=r;n("<form><\/form>").append(r)[0].reset();i.after(r).detach();n.cleanData(i.unbind("remove"));this.options.fileInput=this.options.fileInput.map(function(n,t){return t===i[0]?r[0]:t});i[0]===this.element[0]&&(this.element=r)},_handleFileTreeEntry:function(t,i){var s=this,r=n.Deferred(),u=function(n){n&&!n.entry&&(n.entry=t);r.resolve([n])},h=function(n){s._handleFileTreeEntries(n,i+t.name+"/").done(function(n){r.resolve(n)}).fail(u)},e=function(){o.readEntries(function(n){n.length?(f=f.concat(n),e()):h(f)},u)},o,f=[];return i=i||"",t.isFile?t._file?(t._file.relativePath=i,r.resolve(t._file)):t.file(function(n){n.relativePath=i;r.resolve(n)},u):t.isDirectory?(o=t.createReader(),e()):r.resolve([]),r.promise()},_handleFileTreeEntries:function(t,i){var r=this;return n.when.apply(n,n.map(t,function(n){return r._handleFileTreeEntry(n,i)})).pipe(function(){return Array.prototype.concat.apply([],arguments)})},_getDroppedFiles:function(t){t=t||{};var i=t.items;return i&&i.length&&(i[0].webkitGetAsEntry||i[0].getAsEntry)?this._handleFileTreeEntries(n.map(i,function(n){var t;return n.webkitGetAsEntry?(t=n.webkitGetAsEntry(),t&&(t._file=n.getAsFile()),t):n.getAsEntry()})):n.Deferred().resolve(n.makeArray(t.files)).promise()},_getSingleFileInputFiles:function(t){t=n(t);var r=t.prop("webkitEntries")||t.prop("entries"),i,u;if(navigator.userAgent.indexOf("Safari/604")===-1&&r&&r.length)return this._handleFileTreeEntries(r);if(i=n.makeArray(t.prop("files")),i.length)i[0].name===undefined&&i[0].fileName&&n.each(i,function(n,t){t.name=t.fileName;t.size=t.fileSize});else{if(u=t.prop("value"),!u)return n.Deferred().resolve([]).promise();i=[{name:u.replace(/^.*\\/,"")}]}return n.Deferred().resolve(i).promise()},_getFileInputFiles:function(t){return!(t instanceof n)||t.length===1?this._getSingleFileInputFiles(t):n.when.apply(n,n.map(t,this._getSingleFileInputFiles)).pipe(function(){return Array.prototype.concat.apply([],arguments)})},_onChange:function(t){var r=this,i={fileInput:n(t.target),form:n(t.target.form)};this._getFileInputFiles(i.fileInput).always(function(u){i.files=u;r.options.replaceFileInput&&r._replaceFileInput(i);r._trigger("change",n.Event("change",{delegatedEvent:t}),i)!==!1&&r._onAdd(t,i)})},_onPaste:function(t){var i=t.originalEvent&&t.originalEvent.clipboardData&&t.originalEvent.clipboardData.items,r={files:[]};i&&i.length&&(n.each(i,function(n,t){var i=t.getAsFile&&t.getAsFile();i&&r.files.push(i)}),this._trigger("paste",n.Event("paste",{delegatedEvent:t}),r)!==!1&&this._onAdd(t,r))},_onDrop:function(t){t.dataTransfer=t.originalEvent&&t.originalEvent.dataTransfer;var u=this,i=t.dataTransfer,r={};i&&i.files&&i.files.length&&(t.preventDefault(),this._getDroppedFiles(i).always(function(i){r.files=i;u._trigger("drop",n.Event("drop",{delegatedEvent:t}),r)!==!1&&u._onAdd(t,r)}))},_onDragOver:t("dragover"),_onDragEnter:t("dragenter"),_onDragLeave:t("dragleave"),_initEventHandlers:function(){this._isXHRUpload(this.options)&&(this._on(this.options.dropZone,{dragover:this._onDragOver,drop:this._onDrop,dragenter:this._onDragEnter,dragleave:this._onDragLeave}),this._on(this.options.pasteZone,{paste:this._onPaste}));n.support.fileInput&&this._on(this.options.fileInput,{change:this._onChange})},_destroyEventHandlers:function(){this._off(this.options.dropZone,"dragenter dragleave dragover drop");this._off(this.options.pasteZone,"paste");this._off(this.options.fileInput,"change")},_setOption:function(t,i){var r=n.inArray(t,this._specialOptions)!==-1;r&&this._destroyEventHandlers();this._super(t,i);r&&(this._initSpecialOptions(),this._initEventHandlers())},_initSpecialOptions:function(){var t=this.options;t.fileInput===undefined?t.fileInput=this.element.is('input[type="file"]')?this.element:this.element.find('input[type="file"]'):t.fileInput instanceof n||(t.fileInput=n(t.fileInput));t.dropZone instanceof n||(t.dropZone=n(t.dropZone));t.pasteZone instanceof n||(t.pasteZone=n(t.pasteZone))},_getRegExp:function(n){var t=n.split("/"),i=t.pop();return t.shift(),new RegExp(t.join("/"),i)},_isRegExpOption:function(t,i){return t!=="url"&&n.type(i)==="string"&&/^\/.*\/[igm]{0,3}$/.test(i)},_initDataAttributes:function(){var t=this,i=this.options,r=this.element.data();n.each(this.element[0].attributes,function(n,u){var f=u.name.toLowerCase(),e;/^data-/.test(f)&&(f=f.slice(5).replace(/-[a-z]/g,function(n){return n.charAt(1).toUpperCase()}),e=r[f],t._isRegExpOption(f,e)&&(e=t._getRegExp(e)),i[f]=e)})},_create:function(){this._initDataAttributes();this._initSpecialOptions();this._slots=[];this._sequence=this._getXHRPromise(!0);this._sending=this._active=0;this._initProgressObject(this);this._initEventHandlers()},active:function(){return this._active},progress:function(){return this._progress},add:function(t){var i=this;t&&!this.options.disabled&&(t.fileInput&&!t.files?this._getFileInputFiles(t.fileInput).always(function(n){t.files=n;i._onAdd(null,t)}):(t.files=n.makeArray(t.files),this._onAdd(null,t)))},send:function(t){if(t&&!this.options.disabled){if(t.fileInput&&!t.files){var e=this,i=n.Deferred(),u=i.promise(),r,f;return u.abort=function(){return(f=!0,r)?r.abort():(i.reject(null,"abort","abort"),u)},this._getFileInputFiles(t.fileInput).always(function(n){if(!f){if(!n.length){i.reject();return}t.files=n;r=e._onSend(null,t);r.then(function(n,t,r){i.resolve(n,t,r)},function(n,t,r){i.reject(n,t,r)})}}),this._enhancePromise(u)}if(t.files=n.makeArray(t.files),t.files.length)return this._onSend(null,t)}return this._getXHRPromise(!1,t&&t.context)}})}),function(n){"use strict";typeof define=="function"&&define.amd?define(["jquery","./jquery.fileupload-ui"],n):typeof exports=="object"?n(require("jquery")):n(window.jQuery)}(function(n){"use strict";n.widget("blueimp.fileupload",n.blueimp.fileupload,{options:{processdone:function(n,t){t.context.find(".start").button("enable")},progress:function(n,t){t.context&&t.context.find(".progress").progressbar("option","value",parseInt(t.loaded/t.total*100,10))},progressall:function(t,i){var r=n(this);r.find(".fileupload-progress").find(".progress").progressbar("option","value",parseInt(i.loaded/i.total*100,10)).end().find(".progress-extended").each(function(){n(this).html((r.data("blueimp-fileupload")||r.data("fileupload"))._renderExtendedProgress(i))})}},_renderUpload:function(t,i){var r=this._super(t,i),u=n(window).width()>480;return r.find(".progress").empty().progressbar(),r.find(".start").button({icons:{primary:"ui-icon-circle-arrow-e"},text:u}),r.find(".cancel").button({icons:{primary:"ui-icon-cancel"},text:u}),r.hasClass("fade")&&r.hide(),r},_renderDownload:function(t,i){var r=this._super(t,i),u=n(window).width()>480;return r.find(".delete").button({icons:{primary:"ui-icon-trash"},text:u}),r.hasClass("fade")&&r.hide(),r},_startHandler:function(t){n(t.currentTarget).button("disable");this._super(t)},_transition:function(t){var i=n.Deferred();return t.hasClass("fade")?t.fadeToggle(this.options.transitionDuration,this.options.transitionEasing,function(){i.resolveWith(t)}):i.resolveWith(t),i},_create:function(){this._super();this.element.find(".fileupload-buttonbar").find(".fileinput-button").each(function(){var t=n(this).find("input:file").detach();n(this).button({icons:{primary:"ui-icon-plusthick"}}).append(t)}).end().find(".start").button({icons:{primary:"ui-icon-circle-arrow-e"}}).end().find(".cancel").button({icons:{primary:"ui-icon-cancel"}}).end().find(".delete").button({icons:{primary:"ui-icon-trash"}}).end().find(".progress").progressbar()},_destroy:function(){this.element.find(".fileupload-buttonbar").find(".fileinput-button").each(function(){var t=n(this).find("input:file").detach();n(this).button("destroy").append(t)}).end().find(".start").button("destroy").end().find(".cancel").button("destroy").end().find(".delete").button("destroy").end().find(".progress").progressbar("destroy");this._super()}})}),function(n){"use strict";typeof define=="function"&&define.amd?define(["jquery","./jquery.fileupload"],n):typeof exports=="object"?n(require("jquery")):n(window.jQuery)}(function(n){"use strict";var t=n.blueimp.fileupload.prototype.options.add;n.widget("blueimp.fileupload",n.blueimp.fileupload,{options:{processQueue:[],add:function(i,r){var u=n(this);r.process(function(){return u.fileupload("process",r)});t.call(this,i,r)}},processActions:{},_processFile:function(t,i){var r=this,f=n.Deferred().resolveWith(r,[t]),u=f.promise();return this._trigger("process",null,t),n.each(t.processQueue,function(t,f){var e=function(t){return i.errorThrown?n.Deferred().rejectWith(r,[i]).promise():r.processActions[f.action].call(r,t,f)};u=u.pipe(e,f.always&&e)}),u.done(function(){r._trigger("processdone",null,t);r._trigger("processalways",null,t)}).fail(function(){r._trigger("processfail",null,t);r._trigger("processalways",null,t)}),u},_transformProcessQueue:function(t){var i=[];n.each(t.processQueue,function(){var r={},f=this.action,u=this.prefix===!0?f:this.prefix;n.each(this,function(i,f){r[i]=n.type(f)==="string"&&f.charAt(0)==="@"?t[f.slice(1)||(u?u+i.charAt(0).toUpperCase()+i.slice(1):i)]:f});i.push(r)});t.processQueue=i},processing:function(){return this._processing},process:function(t){var i=this,r=n.extend({},this.options,t);return r.processQueue&&r.processQueue.length&&(this._transformProcessQueue(r),this._processing===0&&this._trigger("processstart"),n.each(t.files,function(u){var f=u?n.extend({},r):r,e=function(){return t.errorThrown?n.Deferred().rejectWith(i,[t]).promise():i._processFile(f,t)};f.index=u;i._processing+=1;i._processingQueue=i._processingQueue.pipe(e,e).always(function(){i._processing-=1;i._processing===0&&i._trigger("processstop")})})),this._processingQueue},_create:function(){this._super();this._processing=0;this._processingQueue=n.Deferred().resolveWith(this).promise()}})}),function(n){"use strict";typeof define=="function"&&define.amd?define(["jquery","tmpl","./jquery.fileupload-image","./jquery.fileupload-audio","./jquery.fileupload-video","./jquery.fileupload-validate"],n):typeof exports=="object"?n(require("jquery"),require("tmpl")):n(window.jQuery,window.tmpl)}(function(n,t){"use strict";n.blueimp.fileupload.prototype._specialOptions.push("filesContainer","uploadTemplateId","downloadTemplateId");n.widget("blueimp.fileupload",n.blueimp.fileupload,{options:{autoUpload:!1,uploadTemplateId:"template-upload",downloadTemplateId:"template-download",filesContainer:undefined,prependFiles:!1,dataType:"json",messages:{unknownError:"Unknown error"},getNumberOfFiles:function(){return this.filesContainer.children().not(".processing").length},getFilesFromResponse:function(t){return t.result&&n.isArray(t.result.files)?t.result.files:[]},add:function(t,i){if(t.isDefaultPrevented())return!1;var u=n(this),r=u.data("blueimp-fileupload")||u.data("fileupload"),f=r.options;i.context=r._renderUpload(i.files).data("data",i).addClass("processing");f.filesContainer[f.prependFiles?"prepend":"append"](i.context);r._forceReflow(i.context);r._transition(i.context);i.process(function(){return u.fileupload("process",i)}).always(function(){i.context.each(function(t){n(this).find(".size").text(r._formatFileSize(i.files[t].size))}).removeClass("processing");r._renderPreviews(i)}).done(function(){i.context.find(".start").prop("disabled",!1);r._trigger("added",t,i)!==!1&&(f.autoUpload||i.autoUpload)&&i.autoUpload!==!1&&i.submit()}).fail(function(){if(i.files.error){var u,f;r._trigger("addingfailed",t,i);i.context?i.context.each(function(e){var o=i.files[e]||{error:"Empty file upload result"};f=r._addFinishedDeferreds();r._transition(n(this)).done(function(){var e=n(this);u=r._renderDownload([o]).replaceAll(e);r._forceReflow(u);r._transition(u).done(function(){i.context=n(this);r._trigger("completed",t,i);r._trigger("finished",t,i);f.resolve()})})}):(u=r._renderDownload(files)[r.options.prependFiles?"prependTo":"appendTo"](r.options.filesContainer),r._forceReflow(u),f=r._addFinishedDeferreds(),r._transition(u).done(function(){i.context=n(this);r._trigger("completed",t,i);r._trigger("finished",t,i);f.resolve()}))}})},send:function(t,i){if(t.isDefaultPrevented())return!1;var r=n(this).data("blueimp-fileupload")||n(this).data("fileupload");return i.context&&i.dataType&&i.dataType.substr(0,6)==="iframe"&&i.context.find(".progress").addClass(!n.support.transition&&"progress-animated").attr("aria-valuenow",100).children().first().css("width","100%"),r._trigger("sent",t,i)},done:function(t,i){if(t.isDefaultPrevented())return!1;var r=n(this).data("blueimp-fileupload")||n(this).data("fileupload"),o=i.getFilesFromResponse||r.options.getFilesFromResponse,e=o(i),u,f;i.context?i.context.each(function(o){var s=e[o]||{error:"Empty file upload result"};f=r._addFinishedDeferreds();r._transition(n(this)).done(function(){var e=n(this);u=r._renderDownload([s]).replaceAll(e);r._forceReflow(u);r._transition(u).done(function(){i.context=n(this);r._trigger("completed",t,i);r._trigger("finished",t,i);f.resolve()})})}):(u=r._renderDownload(e)[r.options.prependFiles?"prependTo":"appendTo"](r.options.filesContainer),r._forceReflow(u),f=r._addFinishedDeferreds(),r._transition(u).done(function(){i.context=n(this);r._trigger("completed",t,i);r._trigger("finished",t,i);f.resolve()}))},fail:function(t,i){if(t.isDefaultPrevented())return!1;var r=n(this).data("blueimp-fileupload")||n(this).data("fileupload"),f,u;i.context?i.context.each(function(e){if(i.errorThrown!=="abort"&&e<i.files.length){var o=i.files[e];o.error=o.error||i.errorThrown||i.i18n("unknownError");u=r._addFinishedDeferreds();r._transition(n(this)).done(function(){var e=n(this);f=r._renderDownload([o]).replaceAll(e);r._forceReflow(f);r._transition(f).done(function(){i.context=n(this);r._trigger("failed",t,i);r._trigger("finished",t,i);u.resolve()})})}else u=r._addFinishedDeferreds(),r._transition(n(this)).done(function(){n(this).remove();r._trigger("failed",t,i);r._trigger("finished",t,i);u.resolve()})}):i.errorThrown!=="abort"?(i.context=r._renderUpload(i.files)[r.options.prependFiles?"prependTo":"appendTo"](r.options.filesContainer).data("data",i),r._forceReflow(i.context),u=r._addFinishedDeferreds(),r._transition(i.context).done(function(){i.context=n(this);r._trigger("failed",t,i);r._trigger("finished",t,i);u.resolve()})):(r._trigger("failed",t,i),r._trigger("finished",t,i),r._addFinishedDeferreds().resolve())},progress:function(t,i){if(t.isDefaultPrevented())return!1;var r=Math.floor(i.loaded/i.total*100);i.context&&i.context.each(function(){n(this).find(".progress").attr("aria-valuenow",r).children().first().css("width",r+"%")})},progressall:function(t,i){if(t.isDefaultPrevented())return!1;var r=n(this),u=Math.floor(i.loaded/i.total*100),f=r.find(".fileupload-progress"),e=f.find(".progress-extended");e.length&&e.html((r.data("blueimp-fileupload")||r.data("fileupload"))._renderExtendedProgress(i));f.find(".progress").attr("aria-valuenow",u).children().first().css("width",u+"%")},start:function(t){if(t.isDefaultPrevented())return!1;var i=n(this).data("blueimp-fileupload")||n(this).data("fileupload");i._resetFinishedDeferreds();i._transition(n(this).find(".fileupload-progress")).done(function(){i._trigger("started",t)})},stop:function(t){if(t.isDefaultPrevented())return!1;var i=n(this).data("blueimp-fileupload")||n(this).data("fileupload"),r=i._addFinishedDeferreds();n.when.apply(n,i._getFinishedDeferreds()).done(function(){i._trigger("stopped",t)});i._transition(n(this).find(".fileupload-progress")).done(function(){n(this).find(".progress").attr("aria-valuenow","0").children().first().css("width","0%");n(this).find(".progress-extended").html("&nbsp;");r.resolve()})},processstart:function(t){if(t.isDefaultPrevented())return!1;n(this).addClass("fileupload-processing")},processstop:function(t){if(t.isDefaultPrevented())return!1;n(this).removeClass("fileupload-processing")},destroy:function(t,i){if(t.isDefaultPrevented())return!1;var r=n(this).data("blueimp-fileupload")||n(this).data("fileupload"),u=function(){r._transition(i.context).done(function(){n(this).remove();r._trigger("destroyed",t,i)})};i.url?(i.dataType=i.dataType||r.options.dataType,n.ajax(i).done(u).fail(function(){r._trigger("destroyfailed",t,i)})):u()}},_resetFinishedDeferreds:function(){this._finishedUploads=[]},_addFinishedDeferreds:function(t){return t||(t=n.Deferred()),this._finishedUploads.push(t),t},_getFinishedDeferreds:function(){return this._finishedUploads},_enableDragToDesktop:function(){var t=n(this),i=t.prop("href"),r=t.prop("download"),u="application/octet-stream";t.bind("dragstart",function(n){try{n.originalEvent.dataTransfer.setData("DownloadURL",[u,r,i].join(":"))}catch(t){}})},_formatFileSize:function(n){return typeof n!="number"?"":n>=1e9?(n/1e9).toFixed(2)+" GB":n>=1e6?(n/1e6).toFixed(2)+" MB":(n/1e3).toFixed(2)+" KB"},_formatBitrate:function(n){return typeof n!="number"?"":n>=1e9?(n/1e9).toFixed(2)+" Gbit/s":n>=1e6?(n/1e6).toFixed(2)+" Mbit/s":n>=1e3?(n/1e3).toFixed(2)+" kbit/s":n.toFixed(2)+" bit/s"},_formatTime:function(n){var i=new Date(n*1e3),t=Math.floor(n/86400);return t=t?t+"d ":"",t+("0"+i.getUTCHours()).slice(-2)+":"+("0"+i.getUTCMinutes()).slice(-2)+":"+("0"+i.getUTCSeconds()).slice(-2)},_formatPercentage:function(n){return(n*100).toFixed(2)+" %"},_renderExtendedProgress:function(n){return this._formatBitrate(n.bitrate)+" | "+this._formatTime((n.total-n.loaded)*8/n.bitrate)+" | "+this._formatPercentage(n.loaded/n.total)+" | "+this._formatFileSize(n.loaded)+" / "+this._formatFileSize(n.total)},_renderTemplate:function(t,i){if(!t)return n();var r=t({files:i,formatFileSize:this._formatFileSize,options:this.options});return r instanceof n?r:n(this.options.templatesContainer).html(r).children()},_renderPreviews:function(t){t.context.find(".preview").each(function(i,r){n(r).append(t.files[i].preview)})},_renderUpload:function(n){return this._renderTemplate(this.options.uploadTemplate,n)},_renderDownload:function(n){return this._renderTemplate(this.options.downloadTemplate,n).find("a[download]").each(this._enableDragToDesktop).end()},_startHandler:function(t){t.preventDefault();var r=n(t.currentTarget),u=r.closest(".template-upload"),i=u.data("data");r.prop("disabled",!0);i&&i.submit&&i.submit()},_cancelHandler:function(t){t.preventDefault();var r=n(t.currentTarget).closest(".template-upload,.template-download"),i=r.data("data")||{};i.context=i.context||r;i.abort?i.abort():(i.errorThrown="abort",this._trigger("fail",t,i))},_deleteHandler:function(t){t.preventDefault();var i=n(t.currentTarget);this._trigger("destroy",t,n.extend({context:i.closest(".template-download"),type:"DELETE"},i.data()))},_forceReflow:function(t){return n.support.transition&&t.length&&t[0].offsetWidth},_transition:function(t){var i=n.Deferred();return n.support.transition&&t.hasClass("fade")&&t.is(":visible")?t.bind(n.support.transition.end,function(r){r.target===t[0]&&(t.unbind(n.support.transition.end),i.resolveWith(t))}).toggleClass("in"):(t.toggleClass("in"),i.resolveWith(t)),i},_initButtonBarEventHandlers:function(){var t=this.element.find(".fileupload-buttonbar"),i=this.options.filesContainer;this._on(t.find(".start"),{click:function(n){n.preventDefault();i.find(".start").click()}});this._on(t.find(".cancel"),{click:function(n){n.preventDefault();i.find(".cancel").click()}});this._on(t.find(".delete"),{click:function(n){n.preventDefault();i.find(".toggle:checked").closest(".template-download").find(".delete").click();t.find(".toggle").prop("checked",!1)}});this._on(t.find(".toggle"),{change:function(t){i.find(".toggle").prop("checked",n(t.currentTarget).is(":checked"))}})},_destroyButtonBarEventHandlers:function(){this._off(this.element.find(".fileupload-buttonbar").find(".start, .cancel, .delete"),"click");this._off(this.element.find(".fileupload-buttonbar .toggle"),"change.")},_initEventHandlers:function(){this._super();this._on(this.options.filesContainer,{"click .start":this._startHandler,"click .cancel":this._cancelHandler,"click .delete":this._deleteHandler});this._initButtonBarEventHandlers()},_destroyEventHandlers:function(){this._destroyButtonBarEventHandlers();this._off(this.options.filesContainer,"click");this._super()},_enableFileInputButton:function(){this.element.find(".fileinput-button input").prop("disabled",!1).parent().removeClass("disabled")},_disableFileInputButton:function(){this.element.find(".fileinput-button input").prop("disabled",!0).parent().addClass("disabled")},_initTemplates:function(){var n=this.options;n.templatesContainer=this.document[0].createElement(n.filesContainer.prop("nodeName"));t&&(n.uploadTemplateId&&(n.uploadTemplate=t(n.uploadTemplateId)),n.downloadTemplateId&&(n.downloadTemplate=t(n.downloadTemplateId)))},_initFilesContainer:function(){var t=this.options;t.filesContainer===undefined?t.filesContainer=this.element.find(".files"):t.filesContainer instanceof n||(t.filesContainer=n(t.filesContainer))},_initSpecialOptions:function(){this._super();this._initFilesContainer();this._initTemplates()},_create:function(){this._super();this._resetFinishedDeferreds();n.support.fileInput||this._disableFileInputButton()},enable:function(){var n=!1;this.options.disabled&&(n=!0);this._super();n&&(this.element.find("input, button").prop("disabled",!1),this._enableFileInputButton())},disable:function(){this.options.disabled||(this.element.find("input, button").prop("disabled",!0),this._disableFileInputButton());this._super()}})}),function(n){"use strict";typeof define=="function"&&define.amd?define(["jquery","./jquery.fileupload-process"],n):typeof exports=="object"?n(require("jquery")):n(window.jQuery)}(function(n){"use strict";n.blueimp.fileupload.prototype.options.processQueue.push({action:"validate",always:!0,acceptFileTypes:"@",maxFileSize:"@",minFileSize:"@",maxNumberOfFiles:"@",disabled:"@disableValidation"});n.widget("blueimp.fileupload",n.blueimp.fileupload,{options:{getNumberOfFiles:n.noop,messages:{maxNumberOfFiles:"Maximum number of files exceeded",acceptFileTypes:"File type not allowed",maxFileSize:"File is too large",minFileSize:"File is too small"}},processActions:{validate:function(t,i){if(i.disabled)return t;var e=n.Deferred(),u=this.options,r=t.files[t.index],f;return(i.minFileSize||i.maxFileSize)&&(f=r.size),n.type(i.maxNumberOfFiles)==="number"&&(u.getNumberOfFiles()||0)+t.files.length>i.maxNumberOfFiles?r.error=u.i18n("maxNumberOfFiles"):!i.acceptFileTypes||i.acceptFileTypes.test(r.type)||i.acceptFileTypes.test(r.name)?f>i.maxFileSize?r.error=u.i18n("maxFileSize"):n.type(f)==="number"&&f<i.minFileSize?r.error=u.i18n("minFileSize"):delete r.error:r.error=u.i18n("acceptFileTypes"),r.error||t.files.error?(t.files.error=!0,e.rejectWith(this,[t])):e.resolveWith(this,[t]),e.promise()}}})});StorageQueue={get:function(){return store.get("actionQueue")||[]},put:function(n){var t=store.get("actionQueue")||[];t.push(n);store.set("actionQueue",t)},del:function(n){if(n==="*"){store.set("actionQueue",[]);return}var t=store.get("actionQueue")||[],i=$.inArray(n,t);i!=-1&&t.splice(i,1);store.set("actionQueue",t)},check:function(n){var t=store.get("actionQueue")||[];return t.indexOf(n)!=-1}};!function(n){"function"==typeof define&&define.amd?define(["jquery"],n):n("object"==typeof exports?require("jquery"):jQuery)}(function(n){var i,t=navigator.userAgent,u=/iphone/i.test(t),f=/chrome/i.test(t),r=/android/i.test(t);n.mask={definitions:{9:"[0-9]",a:"[A-Za-z]","*":"[A-Za-z0-9]"},autoclear:!0,dataName:"rawMaskFn",placeholder:"_"};n.fn.extend({caret:function(n,t){var i;if(0!==this.length&&!this.is(":hidden"))return"number"==typeof n?(t="number"==typeof t?t:n,this.each(function(){this.setSelectionRange?this.setSelectionRange(n,t):this.createTextRange&&(i=this.createTextRange(),i.collapse(!0),i.moveEnd("character",t),i.moveStart("character",n),i.select())})):(this[0].setSelectionRange?(n=this[0].selectionStart,t=this[0].selectionEnd):document.selection&&document.selection.createRange&&(i=document.selection.createRange(),n=0-i.duplicate().moveStart("character",-1e5),t=n+i.text.length),{begin:n,end:t})},unmask:function(){return this.trigger("unmask")},mask:function(t,e){var y,l,o,c,h,a,s,p,v;return!t&&this.length>0?(y=n(this[0]),v=y.data(n.mask.dataName),v?v():void 0):(e=n.extend({autoclear:n.mask.autoclear,placeholder:n.mask.placeholder,completed:null},e),l=n.mask.definitions,o=[],c=s=t.length,h=null,n.each(t.split(""),function(n,t){"?"==t?(s--,c=n):l[t]?(o.push(new RegExp(l[t])),null===h&&(h=o.length-1),c>n&&(a=o.length-1)):o.push(null)}),this.trigger("unmask").each(function(){function nt(){if(e.completed){for(var n=h;a>=n;n++)if(o[n]&&y[n]===w(n))return;e.completed.call(v)}}function w(n){return e.placeholder.charAt(n<e.placeholder.length?n:0)}function b(n){for(;++n<s&&!o[n];);return n}function ut(n){for(;--n>=0&&!o[n];);return n}function it(n,t){var r,i;if(!(0>n)){for(r=n,i=b(t);s>r;r++)if(o[r]){if(!(s>i&&o[r].test(y[i])))break;y[r]=y[i];y[i]=w(i);i=b(i)}d();v.caret(Math.max(h,n))}}function ft(n){for(var r,u,t=n,i=w(n);s>t;t++)if(o[t]){if(r=b(t),u=y[t],y[t]=i,!(s>r&&o[r].test(u)))break;i=u}}function et(){var t=v.val(),n=v.caret();if(t.length<p.length){for(k(!0);n.begin>0&&!o[n.begin-1];)n.begin--;if(0===n.begin)for(;n.begin<h&&!o[n.begin];)n.begin++;v.caret(n.begin,n.begin)}else{for(k(!0);n.begin<s&&!o[n.begin];)n.begin++;v.caret(n.begin,n.begin)}nt()}function rt(){k();v.val()!=tt&&v.change()}function ot(n){if(!v.prop("readonly")){var f,i,t,r=n.which||n.keyCode;p=v.val();8===r||46===r||u&&127===r?(f=v.caret(),i=f.begin,t=f.end,t-i==0&&(i=46!==r?ut(i):t=b(i-1),t=46===r?b(t):t),g(i,t),it(i,t-1),n.preventDefault()):13===r?rt.call(this,n):27===r&&(v.val(tt),v.caret(0,k()),n.preventDefault())}}function st(t){var u,e,h,f,i,c;v.prop("readonly")||(f=t.which||t.keyCode,i=v.caret(),t.ctrlKey||t.altKey||t.metaKey||32>f||!f||13===f||((i.end-i.begin!=0&&(g(i.begin,i.end),it(i.begin,i.end-1)),u=b(i.begin-1),s>u&&(e=String.fromCharCode(f),o[u].test(e)))&&((ft(u),y[u]=e,d(),h=b(u),r)?(c=function(){n.proxy(n.fn.caret,v,h)()},setTimeout(c,0)):v.caret(h),i.begin<=a&&nt()),t.preventDefault()))}function g(n,t){for(var i=n;t>i&&s>i;i++)o[i]&&(y[i]=w(i))}function d(){v.val(y.join(""))}function k(n){for(var f,r=v.val(),u=-1,t=0,i=0;s>t;t++)if(o[t]){for(y[t]=w(t);i++<r.length;)if(f=r.charAt(i-1),o[t].test(f)){y[t]=f;u=t;break}if(i>r.length){g(t+1,s);break}}else y[t]===r.charAt(i)&&i++,c>t&&(u=t);return n?d():c>u+1?e.autoclear||y.join("")===ht?(v.val()&&v.val(""),g(0,s)):d():(d(),v.val(v.val().substring(0,u+1))),c?t:h}var v=n(this),y=n.map(t.split(""),function(n,t){if("?"!=n)return l[n]?w(t):n}),ht=y.join(""),tt=v.val();v.data(n.mask.dataName,function(){return n.map(y,function(n,t){return o[t]&&n!=w(t)?n:null}).join("")});v.one("unmask",function(){v.off(".mask").removeData(n.mask.dataName)}).on("focus.mask",function(){if(!v.prop("readonly")){clearTimeout(i);var n;tt=v.val();n=k();i=setTimeout(function(){d();n==t.replace("?","").length?v.caret(0,n):v.caret(n)},10)}}).on("blur.mask",rt).on("keydown.mask",ot).on("keypress.mask",st).on("input.mask paste.mask",function(){v.prop("readonly")||setTimeout(function(){var n=k(!0);v.caret(n);nt()},0)});f&&r&&v.off("input.mask").on("input.mask",et);k()}))}})}),function(n,t,i,r,u){u.addHandler({selector:'input[type="checkbox"]',events:["change"],update:function(n,t){var r=i.isBoolean(t)?t:t===n.val();n.attr("checked",r).prop("checked",r);n.toggleClass("checked",r);n.next().toggleClass("checked",r)},getVal:function(n){return n.is(":checked")},initialize:function(n,r,u){n.on("change",i.bind(function(n){var i=t(n.target);u.update(i,u.getVal(i,n,u),r,u)},this))}})}(this,$,_,Backbone,Backbone.Stickit),function(n,t,i,r,u){var f=1;u.addHandler({selector:".file-attachment",events:["fileuploadupdate","fileuploaddone"],update:function(n,t,i,r){r.initialized&&(t&&r.fileUpload.collection.reset(t),r.fileUpload.render())},onSet:function(n,t){if(t.multiple){var r=t.innerProperty;return t.trackLinks||(t.trackLinks={}),i.map(n,function(n){return t.trackLinks[n.Id]?t.trackLinks[n.Id]:i.object([r],[n])})}return n},onGet:function(n,t){if(t.initialized)return n},getVal:function(n,t,r){return r.maxNumberOfFiles>1?r.fileUpload.files:i.first(r.fileUpload.files)},initialize:function(n,t,i){var u,r;i.initialized=!0;u=i.maxNumberOfFiles||f;i.type||(i.type=n.data("type"));r=i.onGet.call(this,t.get(i.observe),i);i.fileUpload=App.request("fileupload:view",{files:r,maxNumberOfFiles:u,acceptFileTypes:i.acceptFileTypes,maxFileSize:i.maxFileSize,url:i.url,key:i.key,license:i.license,csr:i.csr,auth:!("auth"in i)||i.auth,remarkQuestion:i.remarkQuestion,remarkDescriprion:i.remarkDescriprion,fileAgreementModel:i.fileAgreementModel,requestInfo:i.requestInfo,analyticsTarget:i.analyticsTarget,analyticsRequestType:i.analyticsRequestType});n.html(i.fileUpload.$el);i.update.call(this,n,r,t,i);i.view.fileUploadView=i.fileUpload;this.listenTo(t,"stickit:unstuck",i.onDestroy.bind(this,i))},onDestroy:function(n){n.fileUpload.destroy()}})}(window,$,_,Backbone,Backbone.Stickit),function(n,t,i,r,u){"use strict";var f={initialize:function(n,r,u){var f=App.module("Entities.Validation");n.on("blur",i.bind(u.onBlur,this,r,n,u));n.on("keyup",i.bind(u.onKeyUp,this,r,n,u));n.on("keypress",i.bind(u.onKeyDown,this,r,n,u));n.on("paste",i.bind(u.onKeyDown,this,r,n,u));n.on("valid",function(){t(this).removeClass("inp-err")});n.on("invalid",function(){t(this).addClass("inp-err")});u.forbiddenCharsHandler=new f.ForbiddenCharsHandler(n,u.forbiddenChars,u.forbidSurroundingSpaces)},update:function(n,t){n.val(t)},onSet:function(n,t){var i=t.forbiddenCharsHandler.handle(n);return t.toLower&&(i=i.toLowerCase()),t.toUpper&&(i=i.toUpperCase()),i},onBlur:function(n,i,r,u){function e(n){return n.is("a.btn.btn-request-send")}var f;if(u)if(u.relatedTarget){if(e(t(u.relatedTarget)))return}else if(u.originalEvent&&u.originalEvent.explicitOriginalTarget){if(f=t(u.originalEvent.explicitOriginalTarget),e(f)||e(f.parent()))return}else if(f=t(document.activeElement),e(f))return;n.inputValidation(r.observe,i.val(),{valid:!i.hasClass("inp-err"),blur:!0})},onKeyDown:function(n,t,i,r){App.module("Entities.Validation").lengthValidationInputHandler(n,t,i,r)},onKeyUp:function(n,t,i){var r=t.val(),u=i.observe;n.inputValidation(u,r,{valid:!t.hasClass("inp-err"),input:!0})}};f.selector='input[type="text"]';u.addHandler(f);f.selector="textarea";u.addHandler(f)}(this,$,_,Backbone,Backbone.Stickit),function(n,t,i,r,u){"use strict";u.addHandler({selector:'input[type="text"].activation-code',initialize:function(n,i,r){n.on("blur",r.onBlur.bind(this,i,n,r));n.on("keyup",r.validateAndTriggerChange.bind(this,i,n,r));n.on("input",r.validateAndTriggerChange.bind(this,i,n,r));n.on("valid",function(){t(this).removeClass("inp-err")});n.on("invalid",function(){t(this).addClass("inp-err")});n.mask("*****-*****-*****-*****",{autoclear:!1,completed:r.onMasked.bind(this,i,n,r)});n.on("keydown",function(n){[73,79,76,48,96].indexOf(n.keyCode)!==-1&&n.preventDefault()})},update:function(n,t){n.val(t)},onSet:function(n,i){var r=t.trim(n);return i.toLower&&(r=r.toLowerCase()),r},getVal:function(n){return n.hasClass("invalid-code")?"":n.val()},onBlur:function(n,t,i){t.val(i.getVal(t)).attr("spellcheck",!1);n.inputValidation(i.observe,t.val(),{valid:!t.hasClass("inp-err"),blur:!0})},onMasked:function(n,t,i){i.validate(n,t,i)},validateAndTriggerChange:i.debounce(function(n,t,i){i.validate(n,t,i);t.trigger("change")},50),validate:function(n,t,i){var r=t.val(),u=!r,f=/^[-_]*$/gi.test(r),e=!u&&!f;t.toggleClass("empty-code",u).toggleClass("invalid-code",f).toggleClass("valid-code",e);n.inputValidation(i.observe,r,{valid:!t.hasClass("inp-err"),input:!0})}})}(this,$,_,Backbone,Backbone.Stickit),function(n,t,i,r,u){"use strict";u.addHandler({selector:'input[type="password"]',initialize:function(n,r,u){n.blur(function(i){function e(n){return n.is(".btn.btn-submit")}var f,o;if(i)if(i.relatedTarget){if(e(t(i.relatedTarget)))return}else if(i.originalEvent&&i.originalEvent.explicitOriginalTarget){if(f=t(i.originalEvent.explicitOriginalTarget),e(f)||e(f.parent()))return}else if(f=t(document.activeElement),e(f))return;o=n.val();r.inputValidation(u.observe,o,{valid:!n.hasClass("inp-err"),blur:!0})});n.on("keyup",function(){var t=n.val();r.inputValidation(u.observe,t,{valid:!n.hasClass("inp-err"),input:!0})});n.on("keypress",i.bind(u.onKeyDown,this,r,n,u));n.on("paste",i.bind(u.onKeyDown,this,r,n,u));n.on("valid",function(){t(this).removeClass("inp-err")});n.on("invalid",function(){t(this).addClass("inp-err")})},onKeyDown:function(n,t,i,r){App.module("Entities.Validation").lengthValidationInputHandler(n,t,i,r)}})}(this,$,_,Backbone,Backbone.Stickit),function(n,t,i,r,u){"use strict";u.addHandler({selector:"select",getVal:function(n){return n.children("option:selected").val()},initialize:function(n,i,r){var u;n.parent().prepend("<i><\/i>");i.get(r.observe)&&n.val(i.get(r.observe));u=n.children("option:selected");n.prev().text(u.text());n.attr("title",u.text());i.set(r.observe,r.getVal(n));n.change(function(){var n=t(this),r=n.prev(),u=n.width(),i=n.children("option:selected").text();n.attr("title",i);r.text(i).width(u-40)});this.listenTo(i,"change:"+r.observe,function(){i.preValidate&&(i.isValid(r.observe)||r.validateOnFocusOut!==!1)&&i.preValidate(r.observe,i.get(r.observe))});n.on("valid",function(){t(this).removeClass("inp-err")});n.on("invalid",function(){t(this).addClass("inp-err")})}})}(this,$,_,Backbone,Backbone.Stickit),function(n,t,i,r,u){"use strict";u.addHandler({selector:".select2",events:["change"],getVal:function(n,t,r){var u=r.selView.getValue(),f;return r.wholeModel?i.isObject(u)?u:(f={},f[r.valueField]=u,r.collection.findWhere(f)):u},update:function(n,t,i,r){r.selView&&r.selView.setValue(t)},setCurrentValue:function(n){var t=n.get(this.observe);this.selView.setValue(t)},initialize:function(n,r,u){var f,e;u.valueField||(u.valueField=u.textField,u.wholeModel=!0);i.isFunction(u.collection)&&(u.collection=u.collection(u.view));f=App.request("select:view",i.pick(u,["collection","textField","valueField","wholeModel","placeholder","isDisabled","ellipsize","getSuffix","adjustHeightToWindow","forbidEmpty","wrapWords"]));u.selView=f;n.html(f.render().el);e=n.find("select");e.selectmenu({type:"dropdown",appendTo:n});u.setCurrentValue(r);this.listenTo(f,"change",i.bind(function(n){r.inputValidation(u.observe,n,{input:!0})},this));this.listenTo(u.collection,"reset",function(){var t=u.collection.length===0;n.toggleClass("empty-box",t);e.selectmenu("close");e.selectmenu();t||u.setCurrentValue(r)});n.on("valid",function(){t(this).removeClass("inp-err")});n.on("invalid",function(){n.hasClass("disabled-box")||n.addClass("inp-err")});this.listenTo(r,"stickit:unstuck",function(){u.selView.destroy()})}})}(this,$,_,Backbone,Backbone.Stickit),function(n,t,i,r,u){"use strict";u.addHandler({selector:".select2-input",events:["change"],getVal:function(n,t,i){var u=i.selView.getValue(),f,e;return i.wholeModel?(f=i.collection.find(function(n){return n.get(i.textField)===u}),!f)?(e=new r.Model({}),e.set(i.textField,u),e):f:u},trimSpaces:!0,update:function(n,t,i,u){if(u.selView){var f=t instanceof r.Model?t.toJSON():t;u.selView.setValue(f)}},initialize:function(n,r,u){var e,o,f;u.valueField||(u.valueField=u.textField,u.wholeModel=!0);i.isFunction(u.collection)&&(u.collection=u.collection());e=App.request("select:view",{collection:u.collection,textField:u.textField,valueField:u.valueField,defaultValue:u.defaultValue,placeholder:u.placeholder,wholeModel:u.wholeModel,isInput:!0,observableModel:r,observableProperty:u.observe});u.selView=e;n.html(e.render().el);o=r.get(u.observe);e.setValue(o);this.listenTo(r,"change:"+u.observe,i.bind(function(){r.preValidate&&(r.isValid(u.observe)||u.validateOnFocusOut!==!1)&&r.preValidate(u.observe,r.get(u.observe))},this));n.on("valid",function(){t(this).removeClass("inp-err")});n.on("invalid",function(){t(this).addClass("inp-err")});f=n.find("input");f.on("keypress",i.bind(App.module("Entities.Validation").lengthValidationInputHandler,this,r,f,u));f.on("paste",i.bind(App.module("Entities.Validation").lengthValidationInputHandler,this,r,f,u));this.listenTo(r,"stickit:unstuck",function(){u.selView.destroy()})}})}(this,$,_,Backbone,Backbone.Stickit),function(n,t){typeof define=="function"&&define.amd?define([],t):typeof exports=="object"?module.exports=t():n.store=t()}(this,function(){function l(){try{return i in o&&o[i]}catch(n){return!1}}var n={},o=window,s=o.document,i=typeof localStorage=="unknown"||typeof localStorage=="undefined"||!window.localStorage?"sessionStorage":"localStorage",c="script",t,u,f,r;if(n.disabled=!1,n.version="1.3.17",n.set=function(){},n.get=function(){},n.has=function(t){return n.get(t)!==undefined},n.remove=function(){},n.clear=function(){},n.transact=function(t,i,r){r==null&&(r=i,i=null);i==null&&(i={});var u=n.get(t,i);r(u);n.set(t,u)},n.getAll=function(){},n.forEach=function(){},n.serialize=function(n){return JSON.stringify(n)},n.deserialize=function(n){if(typeof n!="string")return undefined;try{return JSON.parse(n)}catch(t){return n||undefined}},l())t=o[i],n.set=function(i,r){if(r===undefined)return n.remove(i);try{t.setItem(i,n.serialize(r))}catch(u){$logger.error("Store.js - failed to set storage item",u)}return r},n.get=function(i,r){var u=n.deserialize(t.getItem(i));return u===undefined?r:u},n.remove=function(n){t.removeItem(n)},n.clear=function(){t.clear()},n.getAll=function(){var t={};return n.forEach(function(n,i){t[n]=i}),t},n.forEach=function(i){for(var u,r=0;r<t.length;r++)u=t.key(r),i(u,n.get(u))};else if(s.documentElement.addBehavior){try{f=new ActiveXObject("htmlfile");f.open();f.write("<"+c+">document.w=window<\/"+c+'><iframe src="/favicon.ico"><\/iframe>');f.close();u=f.w.frames[0].document;t=u.createElement("div")}catch(v){t=s.createElement("div");u=s.body}var e=function(r){return function(){var f=Array.prototype.slice.call(arguments,0),e;return f.unshift(t),u.appendChild(t),t.addBehavior("#default#userData"),t.load(i),e=r.apply(n,f),u.removeChild(t),e}},a=new RegExp("[!\"#$%&'()*+,/\\\\:;<=>?@[\\]^`{|}~]","g"),h=function(n){return n.replace(/^d/,"___$&").replace(a,"___")};n.set=e(function(t,r,u){return(r=h(r),u===undefined)?n.remove(r):(t.setAttribute(r,n.serialize(u)),t.save(i),u)});n.get=e(function(t,i,r){i=h(i);var u=n.deserialize(t.getAttribute(i));return u===undefined?r:u});n.remove=e(function(n,t){t=h(t);n.removeAttribute(t);n.save(i)});n.clear=e(function(n){var t=n.XMLDocument.documentElement.attributes;for(n.load(i);t.length;)n.removeAttribute(t[0].name);n.save(i)});n.getAll=function(){var t={};return n.forEach(function(n,i){t[n]=i}),t};n.forEach=e(function(t,i){for(var f=t.XMLDocument.documentElement.attributes,u=0,r;r=f[u];++u)i(r.name,n.deserialize(t.getAttribute(r.name)))})}try{r="__storejs__";n.set(r,r);n.get(r)!=r&&(n.disabled=!0);n.remove(r)}catch(v){n.disabled=!0}return n.enabled=!n.disabled,n}),function(n){"use strict";var t=n.ajax;n.ajax=requestInitAjax(errorHandlingAjax(termsOfUseAjax(refreshTokenRepeaterAjax(tokenAjax(traceAjax(headerSetterAjax(batchAjax(t))))))))}(Backbone);Backbone.Model.prototype.generateGuid=function(){"use strict";function n(n){var t=(Math.random().toString(16)+"000000000").substr(2,8);return n?"-"+t.substr(0,4)+"-"+t.substr(4,4):t}return n()+n(!0)+n(!0)+n()},function(n,t,i){"use strict";t.extend(i.callbacks,{selector:"data-readonly-text",valid:function(n,i){var r=t.findKey(n.bindings,function(n){return n===i||n.observe===i}),u=n.$(r);u.trigger("valid");n.validationError&&n.validationError(i,null)},invalid:function(n,i,r){var u=t.findKey(n.bindings,function(n){return n===i||n.observe===i}),f=n.$(u);f.trigger("invalid");n.validationError&&n.validationError(i,r,{})}})}($,_,Backbone.Validation),function(n,t,i){"use strict";var f="Backbone.Validation",e=i.bind,o=i.unbind,s=[{methodName:"isValid",returnValueInCaseOfException:!0,shouldSetModelValid:!1},{methodName:"validate",returnValueInCaseOfException:undefined,shouldSetModelValid:!0},{methodName:"preValidate",returnValueInCaseOfException:undefined,shouldSetModelValid:!1},],u=function(n){return n&&n.getName?n.getName():f},r=function(n){t.each(s,function(t){var i=n[t.methodName];if(!i){$logger.error(u(n),"Model doesn't have validation method "+t.methodName);return}n[t.methodName]=function(){try{return i.apply(this,arguments)}catch(r){return $logger.error(u(n),{message:"Exception was caught while client model validation",error:App.module("Utils.Exception").getAsString(r)}),t.shouldSetModelValid&&(n._isValid=!0),t.returnValueInCaseOfException}}})};i.bind=function(n,i){i=t.extend({},i);e.call(this,n,i);var f=i.model||n.model,u=i.collection||n.collection;f?r(f):u&&(u.each(function(n){r(n)}),u.bind("add",r))};i.unbind=function(n,i){i=t.extend({},i);o.call(this,n,i);var u=i.collection||n.collection;u&&u.unbind("add",r)}}($,_,Backbone.Validation),function(n,t){"use strict";var r=n.sync,i={beforeSend:function(n){if(this.trigger("sync:start",this),App.sendRequestIdFromUi){var t=App.requestIdHeader,i=App.Entities.generateGuid();t&&(n.setRequestHeader(t,i),n[t]=i)}},complete:function(n){this.trigger("sync:stop",this);var t=App.requestIdHeader,i=n[t]}};n.sync=function(n,u,f){var o,e,s;return f||(f={}),t.defaults(f,{beforeSend:t.bind(i.beforeSend,u),complete:t.bind(i.complete,u),noExceptHandler:u.noExceptHandler}),e=r(n,u,f),s=App.cancellationContext,o=!e||n!=="read"||t.isEmpty(s)?e:App.module("CancellationThreadPromise").new(e,s),u._fetch||n!=="read"||(u._fetch=o),o}}(Backbone,_);Interceptor=function(){"use strict";var i={rethrowExceptions:!1,context:undefined,ownOnly:!0,logStartFinish:!1,loggerName:"Utils.Interceptor",except:[],loggerNameField:undefined},n=function(n){return App.module("Utils.String").toJSON(n)},t=function(t){return _.map(t,function(t){return n(t)}).join()},r=function(n,i,r,u){i.logStartFinish&&$logger.debug(u,"+"+n+"("+t(r)+")")},u=function(i,r,u,f,e){r.logStartFinish&&$logger.debug(e,"-"+i+"("+t(u)+").Result:"+n(f))},f=function(n,t,i){return function(){var f,o=i.context||this,e=i.loggerNameField?o[i.loggerNameField]:i.loggerName;r(n,i,arguments,e);try{f=t.apply(o,arguments)}catch(s){if($logger.error(e,{message:"Exception was caught in: "+n,error:App.module("Utils.Exception").getAsString(s)}),i.rethrowExceptions)throw s;}return u(n,i,arguments,f,e),f}},e=function(n,t){var u,r=t||{};_.defaults(r,i);u=r.ownOnly?_.keys(n):_.allKeys(n);_.chain(u).filter(function(t){return _.isFunction(n[t])&&!_.contains(r.except,t)}).each(function(t){n[t]=f(t,n[t],r)})};return{wrapMethods:e}}(),function(n,t,i){"use strict";n.extend(i.Application.prototype,{navigate:function(n,i){i||(i={});t.history.navigate(n,i)},getCurrentRoute:function(){var i=t.history.fragment;return n.isEmpty(i)?null:i},startHistory:function(){t.history&&t.history.start({pushState:!0})},register:function(n,t){this._registry||(this._registry={});this._registry[t]=n},unregister:function(n,t){delete this._registry[t]},resetRegistry:function(){var i=this.getRegistrySize(),t;n.each(this._registry,function(n){n.region.close()},this);t="There were "+i+" controllers in the registry, there are now "+this.getRegistrySize();this.getRegistrySize()>0?colsole.warn(t):colsole.log(t)},getRegistrySize:function(){return n.size(this._registry)}})}(_,Backbone,Marionette),function(n,t,i){"use strict";n.extend(i.AppRouter.prototype,{_addAppRoute:function(t,i,r){var u=t.executeAction;this.route(i,r,n.bind(u,t,r))}})}(_,Backbone,Marionette),function(n,t){"use strict";var i=["modelEvents"];t.each([n.View],function(n){var r=n.extend;n.extend=function(n){var u=this;return t.each(i,function(i){var r=t.extend({},u.prototype[i]||{},n[i]||{});n[i]=r}),r.apply(u,arguments)}})}(Marionette,_),function(n,t){"use strict";t.extend(n.Region.prototype,{toJSON:function(){var n=this.options&&this.options.el?this.options.el:"";return"[Region: "+n+"]"}})}(Marionette,_),function(n,t,i){"use strict";var r=function(n,t,i){return n.splice(t,0,i),n};t.extend(n.Renderer,{lookups:["apps/","components/"],render:function(n,t){if(!n)return this;var i=this.getTemplate(n);if(!i)throw"Template "+n+" not found!";return i(t)},getTemplate:function(n){var u=!1;return t.each([n,r(n.split("/"),-1,"templates").join("/")],function(n){t.each(this.lookups,function(t){!u&&i[t+n]&&(u=i[t+n])})},this),u}})}(Marionette,_,JST),function(n,t,i){"use strict";var r=i.RouteController=function(){};n.extend(r.prototype,{executeAction:function(t){var i=this[t],r=n.isFunction(i)?i:i.action;r.apply(this,Array.prototype.slice.apply(arguments,[1]))}});r.extend=function(t,i){var u=this,r,f;return r=t&&n.has(t,"constructor")?t.constructor:function(){return u.apply(this,arguments)},n.extend(r,u,i),f=function(){this.constructor=r},f.prototype=u.prototype,r.prototype=new f,t&&n.extend(r.prototype,t),r.__super__=u.prototype,r}}(_,Backbone,Marionette),function(n,t){typeof exports=="object"?module.exports=t():typeof define=="function"&&define.amd?define(t):n.Spinner=t()}(this,function(){"use strict";function r(n,t){var i=document.createElement(n||"div");for(var r in t)i[r]=t[r];return i}function t(n){for(var t=1,i=arguments.length;t<i;t++)n.appendChild(arguments[t]);return n}function v(n,t,i,r){var f=["opacity",t,~~(n*100),i,r].join("-"),o=.01+i/r*100,s=Math.max(1-(1-n)/t*(100-o),n),c=u.substring(0,u.indexOf("Animation")).toLowerCase(),l=c&&"-"+c+"-"||"";return h[f]||(e.insertRule("@"+l+"keyframes "+f+"{0%{opacity:"+s+"}"+o+"%{opacity:"+n+"}"+(o+.01)+"%{opacity:1}"+(o+t)%100+"%{opacity:"+n+"}100%{opacity:"+s+"}}",e.cssRules.length),h[f]=1),f}function o(n,t){var u=n.style,r,i;for(t=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<s.length;i++)if(r=s[i]+t,u[r]!==undefined)return r;if(u[t]!==undefined)return t}function n(n,t){for(var i in t)n.style[o(n,i)||i]=t[i];return n}function c(n){for(var r,i,t=1;t<arguments.length;t++){r=arguments[t];for(i in r)n[i]===undefined&&(n[i]=r[i])}return n}function l(n){for(var t={x:n.offsetLeft,y:n.offsetTop};n=n.offsetParent;)t.x+=n.offsetLeft,t.y+=n.offsetTop;return t}function a(n,t){return typeof n=="string"?n:n[t%n.length]}function i(n){if(typeof this=="undefined")return new i(n);this.opts=c(n||{},i.defaults,y)}function p(){function u(n,t){return r("<"+n+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',t)}e.addRule(".spin-vml","behavior:url(#default#VML)");i.prototype.lines=function(i,r){function s(){return n(u("group",{coordsize:o+" "+o,coordorigin:-e+" "+-e}),{width:o,height:o})}function l(i,f,o){t(c,t(n(s(),{rotation:360/r.lines*i+"deg",left:~~f}),t(n(u("roundrect",{arcsize:r.corners}),{width:e,height:r.width,left:r.radius,top:-r.width>>1,filter:o}),u("fill",{color:a(r.color,i),opacity:r.opacity}),u("stroke",{opacity:0}))))}var e=r.length+r.width,o=2*e,h=-(r.width+r.length)*2+"px",c=n(s(),{position:"absolute",top:h,left:h}),f;if(r.shadow)for(f=1;f<=r.lines;f++)l(f,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(f=1;f<=r.lines;f++)l(f);return t(i,c)};i.prototype.opacity=function(n,t,i,r){var u=n.firstChild;r=r.shadow&&r.lines||0;u&&t+r<u.childNodes.length&&(u=u.childNodes[t+r],u=u&&u.firstChild,u=u&&u.firstChild,u&&(u.opacity=i))}}var s=["webkit","Moz","ms","O"],h={},u,e=function(){var n=r("style",{type:"text/css"});return t(document.getElementsByTagName("head")[0],n),n.sheet||n.styleSheet}(),y={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:1/4,fps:20,zIndex:2e9,className:"spinner",top:"auto",left:"auto",position:"relative"},f;return i.defaults={},c(i.prototype,{spin:function(t){this.stop();var f=this,i=f.opts,e=f.el=n(r(0,{className:i.className}),{position:i.position,width:0,zIndex:i.zIndex}),c=i.radius+i.length+i.width,o,s;if(t&&(t.insertBefore(e,t.firstChild||null),s=l(t),o=l(e),n(e,{left:(i.left=="auto"?s.x-o.x+(t.offsetWidth>>1):parseInt(i.left,10)+c)+"px",top:(i.top=="auto"?s.y-o.y+(t.offsetHeight>>1):parseInt(i.top,10)+c)+"px"})),e.setAttribute("role","progressbar"),f.lines(e,f.opts),!u){var a=0,p=(i.lines-1)*(1-i.direction)/2,v,y=i.fps,h=y/i.speed,w=(1-i.opacity)/(h*i.trail/100),b=h/i.lines;(function k(){a++;for(var n=0;n<i.lines;n++)v=Math.max(1-(a+(i.lines-n)*b)%h*w,i.opacity),f.opacity(e,n*i.direction+p,v,i);f.timeout=f.el&&setTimeout(k,~~(1e3/y))})()}return f},stop:function(){var n=this.el;return n&&(clearTimeout(this.timeout),n.parentNode&&n.parentNode.removeChild(n),this.el=undefined),this},lines:function(i,f){function s(t,i){return n(r(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:t,boxShadow:i,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*e+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var e=0,h=(f.lines-1)*(1-f.direction)/2,o;e<f.lines;e++)o=n(r(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:u&&v(f.opacity,f.trail,h+e*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&t(o,n(s("#000","0 0 4px #000"),{top:"2px"})),t(i,t(o,s(a(f.color,e),"0 0 1px rgba(0,0,0,.1)")));return i},opacity:function(n,t,i){t<n.childNodes.length&&(n.childNodes[t].style.opacity=i)}}),f=n(r("group"),{behavior:"url(#default#VML)"}),!o(f,"transform")&&f.adj?p():u=o(f,"animation"),i}),function(n){if(typeof exports=="object")n(require("jquery"),require("spin"));else if(typeof define=="function"&&define.amd)define(["jquery","spin"],n);else{if(!window.Spinner)throw new Error("Spin.js not present");n(window.jQuery,window.Spinner)}}(function(n,t){n.fn.spin=function(i,r){return this.each(function(){var f=n(this),u=f.data();u.spinner&&(u.spinner.stop(),delete u.spinner);i!==!1&&(i=n.extend({color:r||f.css("color")},n.fn.spin.presets[i]||i),u.spinner=new t(i).spin(this))})};n.fn.spin.presets={tiny:{lines:8,length:2,width:2,radius:3},small:{lines:8,length:4,width:3,radius:5},large:{lines:10,length:8,width:4,radius:8}}});App=function(n,t,i,r,u,f){"use strict";var c=r.Application.extend({constructor:function(){this._initCallbacks=[];this.submodules={};this._initChannel();r.Application.prototype.constructor.apply(this,arguments)},_initChannel:function(){this.channelName=n.result(this,"channelName")||"global";this.channel=n.result(this,"channel")||i.Wreqr.radio.channel(this.channelName);this.vent=n.result(this,"vent")||this.channel.vent;this.commands=n.result(this,"commands")||this.channel.commands;this.reqres=n.result(this,"reqres")||this.channel.reqres},addInitializer:function(n){this._initCallbacks.push(n)},onBeforeStart:function(n,t){this._initCallbacks.forEach(function(n){n.call(this,t)},this)},execute:function(){this.commands.execute.apply(this.commands,arguments)},request:function(){return this.reqres.request.apply(this.reqres,arguments)},addRegions:function(t){n.each(t,function(n,t){this[t]=new r.Region({el:n})},this)},createRegion:function(n,t){var r=this[n],i;return r?r:(i={},i[n]=t,this.addRegions(i),this[n])}}),e=new c,s,o,h;e.addRegions({headerRegion:"#header-region",notifyRegion:"#notification-region",bannerRegion:"#banner-region",mainRegion:"#main-region",backdropRegion:"#backdrop-region",footerRegion:"#footer-region",modalRegion:"#main-modal-region"});s=e.module("Utils.String");e.on("start",function(){e.HeaderApp.show();this.getVersionsInfo();this.startHistory();e.commonErrorCodes=e.commonErrorCodes.split(",");e.tokenErrorCodes=e.tokenErrorCodes.split(",");e.request("auth:isAuthorized")&&n.defer(function(){e.execute("hub:start")})});e.commands.setHandler("page:reload",function(){i.ajax=function(){};$logger.info("App","Reloading page");window.location.reload(!0)});t(document).keyup(function(n){switch(n.keyCode){case 13:e.vent.trigger("enter:press",n);break;case 27:e.vent.trigger("esc:press",n)}});t(window).on("resize scroll",function(n){e.vent.trigger("window:resize",n)});t(window).on("scroll",function(n){e.vent.trigger("window:scroll",n)});t(window).on("error",function(n){$logger.error("App",{message:"Unhandled exception has been caught",error:e.module("Utils.Exception").getAsString(n.originalEvent.error)})});return e.getVersionsInfo=function(){var n=t("#assembly-info tbody");n.length!==0?(t.ajax({type:"Get",dataType:"json",url:"/api/Diagnostic/GetVersionsInfo"}).done(function(i){var r=t("<tr><td>Version UI:<\/td> <td>"+i.VersionUi+"<\/td><\/tr>");n.append(r);r=t("<tr><td>Version Services:<\/td> <td>"+i.VersionServices+"<\/td><\/tr>");n.append(r)}).fail(function(n){n.isAborted||$logger.error("App","Error while VersionsInfo requesting: "+s.toJSON(n))}),t.ajax({type:"Get",dataType:"json",url:e.stsServer.getUrl()+"/api/Diagnostic/GetVersionsInfo",crossDomain:e.stsServer.isCrossDomain()}).done(function(i){var r=t("<tr><td>Version STS:<\/td> <td>"+i.VersionUi+"<\/td><\/tr>");n.append(r);r=t("<tr><td>Version STS Services:<\/td> <td>"+i.VersionServices+"<\/td><\/tr>");n.append(r)}).fail(function(n){n.isAborted||$logger.error("App","Error while VersionsInfo STS requesting: "+s.toJSON(n))})):$logger.error("App","No DOM element for assemply-info")},e.toLocalDate=function(n){if(n){var t=f.utc(n);return t.toDate()}return n},o=u.prototype.formatMessage,e.globPure=n.bind(o,u),u.formatMessage=function(t){var i=o.apply(u,arguments);return n.isString(i)||!e.replaceLocalizationErrors?i:($logger.error("Globalization string not found",t),o.apply(u,["errors/globalization-not-found"]))},e.glob=u.formatMessage,h=n.once(function(){return u.pluralGenerator()}),e.globPlural=function(n){var t=h();return t(n)},e.cancellationContext=[],e.tabLoadingCancellingScope=n.once(function(){return e.module("ExclusiveCancellingScope").new()}),e}(_,$,Backbone,Marionette,Globalize,moment);App.module("Constants.Ajax",function(n){"use strict";n.errors={NO_TOKEN:"NoToken",REFRESH_TOKEN_EXPIRED:"RefreshTokenExpired",TOKEN_ERROR:"TokenError",COMMON_ERROR:"CommonError",HAS_ACTIVE_SESSIONS:"HasActiveSessions",IP_IS_BLOCKED:"IPIsBlocked"}});App.module("Constants.Captcha",function(n){"use strict";n.useCase={LOGIN:"Login",FORGOT_PASSWORD:"ForgotPassword",REGISTER:"Register",SUSPICIOUS_BEHAVIOR:"SuspiciousBehavior"}});App.module("Constants.Contracts",function(n){"use strict";n.Status={ACTIVE:"Active",EXPIRED:"Expired",EXPIRING:"Expiring",LIMIT_EXHAUSTED:"LimitExhausted"};n.STANDARD_SUPPORT_LEVEL_STATUS="StandardLevel";n.StatusOrder={};n.StatusOrder[n.Status.ACTIVE]=0;n.StatusOrder[n.Status.EXPIRING]=1;n.StatusOrder[n.STANDARD_SUPPORT_LEVEL_STATUS]=2;n.StatusOrder[n.Status.LIMIT_EXHAUSTED]=3;n.StatusOrder[n.Status.EXPIRED]=4});App.module("Constants.FileUpload",function(n){"use strict";n.cancellButton={bytesTillChunkEnd:51200}});App.module("Constants.RegEx",function(n){"use strict";n.anyWhitespaceCharacter="\\s"});App.module("Constants.Requests",function(n){"use strict";n.filterSubmitterAlgorithmModel={ALL:"All",BY_DELETED_USERS:"ByDeletedUsers",BY_NAME:"ByName",CURRENT_USER:"CurrentUser"};n.requestFriendlyStatusGroups={WAITING_FOR_RESPONSE:"WaitingForResponse",IN_WORK:"InWork",INACTIVE:"Inactive",OPEN:"Open",ALL:"All"}});App.module("Settings",function(n){"use strict";n.ajaxSettings={maxRepeatCount:5};n.modalSettings={maxVariableLength:85};n.logging={heartbeat:!1,logPerformance:!1,sizeLimit:1e3}});App.module("Utils.Ajax",function(n,t,i,r,u,f){"use strict";function h(n){var i=n.children();i.length>(t.traceMessagesCount||30)&&i.first().remove()}function c(n,i,r){var e=r.status,h="<td>"+new Date+"<\/td>",c="<td>"+r[t.requestIdHeader]+"<\/td>",l="<td>"+(n||"Unknown Method")+"<\/td>",a="<td>"+e+"<\/td>",v="<td>"+r.statusText+"<\/td>",y="<td>"+(i||"Unknown URL")+"<\/td>",s=o.toJSON(r.responseJSON||r)||"",p=e===200?s.substring(0,200):s,w='<td style="word-break: break-word;">'+f.escape(p)+"<\/td>",b=e===200?"#D0F5D8":"#F5DADA";return u('<tr style="background: '+b+'">'+h+c+l+a+v+y+w+"<\/tr>")}var s="Utils.Ajax",o=t.module("Utils.String"),e=t.module("Constants.Ajax");n.getResponseCode=function(n){var t=n.responseJSON&&n.responseJSON.Code||n.Code||n.statusText;return t?t:($logger.warn(s,"Unable to get code from response: "+o.toJSON(n)),"UnknownError")};n.getErrorType=function(i){var r;if(!i.isAborted){if(r=n.getResponseCode(i),f.contains(t.tokenErrorCodes,r))return e.errors.TOKEN_ERROR;if(f.contains(t.commonErrorCodes,r))return e.errors.COMMON_ERROR}return undefined};n.itIsHasActiveSessionsError=function(t){return n.getResponseCode(t)===e.errors.HAS_ACTIVE_SESSIONS};n.traceAjax=function(n,t,i){var r=u("#ajax-trace tbody");r.length&&(h(r),r.append(c(n,t,i)))}});App.module("Utils.Browser",function(n,t,i,r,u){"use strict";var f=!1;n.getCurrentOrigin=function(){return window.location.origin||window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:"")};n.isNavigatingOrRefreshing=function(){return f};u(window).on("beforeunload",function(){$logger.info("Utils.Browser","Browser starting navigation or refreshing");f=!0})});App.module("Utils.CancellationToken",function(n,t,i,r,u){"use strict";var f=function(){this.isCancelled=!1;this.deferred=u.Deferred();this.promise=this.deferred.promise()},e={cancel:function(){this.isCancelled=!0;this.deferred.resolve()}};e.constructor=f;f.prototype=e;n.new=function(){return new f}});App.module("Utils.Cookie",function(n){"use strict";n.get=Cookies.get.bind(Cookies);n.set=Cookies.set.bind(Cookies);n.remove=Cookies.remove.bind(Cookies)});App.module("Utils.Exception",function(n){"use strict";n.getAsString=function(n){return n.stack?n.message?n.message+"\n"+n.stack:n.stack:n.toString()}});App.module("Utils.Regex",function(n){"use strict";var t={None:0,IgnoreCase:1,Multiline:2,ExplicitCapture:4,Compiled:8,Singleline:16,IgnorePatternWhitespace:32,RightToLeft:64,ECMAScript:256,CultureInvariant:512};n.mapRegexOptions=function(n){var i="";return n&t.IgnoreCase&&(i+="i"),n&t.Multiline&&(i+="m"),i}});App.module("Utils.String",function(n,t,i,r,u,f){"use strict";function e(n){return f.flatten([n]).join("|")}n.removeNewLines=function(t){return n.removeAll(t,["\r","\n"])};n.removeAll=function(t,i){var f,o,r=t,u;if(!r||!i||!i.length)return r;f=new RegExp(e(i),"gm");do u=n.removeByRegexp(r,f),o=u.length!==r.length,r=u;while(o);return r};n.removeFromMiddle=function(t,i){return!t||!i||!i.length?t:t[0]+n.removeAll(t.slice(1,-1),i)+t[t.length-1]};n.trimEnd=function(t,i){var r;return!t||i&&!i.length?t:(r=new RegExp("("+e(i||"\\s")+")+$"),n.removeByRegexp(t,r))};n.trimStart=function(t,i){var r;return!t||i&&!i.length?t:(r=new RegExp("^("+e(i||"\\s")+")+"),n.removeByRegexp(t,r))};n.removeByRegexp=function(n,t){return n.replace(t,"")};var o=function(n,t){for(var u,f,i=0,e=n.length,r=0;r<e;r++){if(u=n.charCodeAt(r),u<128)i+=1;else if(u<2048)i+=2;else if(u<55296)i+=3;else if(u<56320)if(f=n.charCodeAt(++r),r<e&&f>=56320&&f<=57343)i+=4;else throw new Error("UCS-2 String malformed");else if(u<57344)throw new Error("UCS-2 String malformed");else i+=3;if(t&&i>t)return n.substring(0,r)}return i};n.getUtf8Length=function(n){return o(n)};n.trancateByByteLength=function(n,t){return o(n,t)};n.toJSON=function(n){try{return f.isFunction(n)?"[Function]":n==null?n===null?"null":"undefined":f.isObject(n)?n instanceof u?"[jQuery object]":JSON.stringify(n,function(n,t){return f.isFunction(t)?"[Function]":t}):n.toString()}catch(t){return"[Not serializable object]"}};n.ellipsize=function(n,t){return n.length>t?n.substring(0,t)+"...":n}});App.module("Utils.Ui",function(n){"use strict";n.getColorByRequestStatus=function(n){switch(n){case"PendingAdditionalInformationNeeded":return"red";case"InProgress":return"green";case"ResolvedSolutionProvided":return"orange";case"ResolvedRequiredInfoNotProvided":return"orange";default:return"gray"}}});App.module("CancellationThreadPromise",function(n,t,i,r,u,f){"use strict";n.new=function(n,i){function e(n,r){return f.chain(r).flatten().map(function(r){return function(){var e,u;if(n==="fail"||!f.findWhere(i,{isCancelled:!0})){u=f.difference(i,t.cancellationContext);t.cancellationContext=f.union(t.cancellationContext,i);try{e=r.apply(this,arguments);t.cancellationContext=f.difference(t.cancellationContext,u)}catch(o){t.cancellationContext=f.difference(t.cancellationContext,u);throw o;}}return e}}).value()}var r;return f.isFunction(n.abort)&&f.each(i,function(t){t.promise.always(f.bind(n.abort,n))}),r=u.Deferred(null,e,e),n.done(function(){return r.resolve.apply(r,arguments)}),n.fail(function(){return r.reject.apply(r,arguments)}),r.abort=f.isFunction(n.abort)?function(){return n.abort.apply(n,n.arguments)}:r.reject,r}});App.module("ExclusiveCancellingScope",function(n,t){"use strict";var r={reset:function(){this.cancellationToken&&this.cancellationToken.cancel();this.cancellationToken=t.module("Utils.CancellationToken").new()},getPromiseWrappingFunction:function(){var n=this.cancellationToken;return function(i){return i&&t.module("CancellationThreadPromise").new(i,[n])}}},i=function(){};r.constructor=i;i.prototype=r;n.new=function(){return new i}});App.module("Routing",function(n,t,i,r,u,f){"use strict";var e=t.module("ErrorApp");n.RouteController=r.RouteController.extend({executeAction:function(n){var u,e,o,f;if($logger.transition(n),t.vent.trigger("route",this.controllerMenuRoute),!this[n]){t.execute("error:notFound");return}e=i.history.location.pathname;t.Analytics.Interaction.pageView(e);this.currentRole=t.request("auth:role");this.isAnonymous=this.currentRole==="Anonymous";this.isAnonymous||(this.userInfo=t.request("auth:entity"));this.allowedRoles=this[n].roles||this.roles;t.mainRegionRoles=this.allowedRoles;!this.allowedRoles||this.isAllowed()?(o=arguments,u=this[n].exclusiveCancellingScope&&this[n].exclusiveCancellingScope(),u&&(u.reset(),this.promiseWrapper=u.getPromiseWrappingFunction()),f=function(){r.RouteController.prototype.executeAction.apply(this,o)}.bind(this),t.refreshMainRegion=f,f()):(this.showAccessDeniedError(),t.execute("main:page"))},showAccessDeniedError:function(){if(this.allowedRoles!=="Anonymous"||this.isAnonymous){var n=t.ErrorLocalizer.getModalText("SecurityExceptions",{responseJSON:{Type:"SecurityException",Code:"AccessDenied"}});e.showAccountError(n.title,n.text)}},isAllowed:function(){return this.isAnonymous?this.allowedRoles===this.currentRole||f.contains(this.allowedRoles,this.currentRole):f.contains(this.allowedRoles,this.currentRole)||this.allowedRoles==="Authorized"||f.contains(this.allowedRoles,"Authorized")}});t.commands.setHandler("main:page",function(){var n=t.request("auth:role");n!=="Anonymous"?t.execute("request:list"):(t.execute("account:gotologin"),t.vent.trigger("auth:loggedOut"))})});App.module("Controllers",function(n,t,i,r,u,f){"use strict";var h=t.module("Settings"),c=t.module("Utils.String"),l=t.module("Utils.Ajax"),e=r.Object.prototype,o,s;r.Controller=r.Object;configSettings.interceptMarionetteControllers&&(o=r.Controller.extend,s={rethrowExceptions:!0,logStartFinish:!0,loggerName:"Marionette.Controller",loggerNameField:"name"},r.Controller.extend=function(n){var t=n.interceptorOptions||{};return f.defaults(t,s),Interceptor.wrapMethods(n,t),o.call(this,n)});n.Base=r.Controller.extend({name:"Controllers.Base",constructor:function(n){this.childControllers=[];n||(n={});this.region=n.region||t.request("default:region");e.constructor.call(this,n);this._instance_id=f.uniqueId(this.name||"controller")},destroy:function(){delete this.region;delete this.options;f.each(this.childControllers,function(n){n&&!n.isDestroyed&&n.destroy()});e.destroy.apply(this,arguments);this.isDestroyed=!0},show:function(n,i){i||(i={});f.defaults(i,{loading:!1,region:this.region});this._setMainView(n);this._manageView(n,i);n.$el.hasClass("section")&&!n.bannerActivated&&(n.bannerActivated=!0,t.execute("show:banner"))},showError:function(n,i,r){if(f.isObject(n)&&(r=n),r=r||{},r.errorView){this.show(r.errorView,{loading:!1});return}n&&i||$logger.warn("Incorrect Controller.showError call: title "+n+" text "+i);var u=new t.ErrorApp.Show.CustomError({title:n,text:i});this.show(u,{loading:!1})},showModalError:function(n,i,r){return f.isObject(n)&&(r=n),r=r||{},this.errorView=r.errorView?r.errorView:new t.ErrorApp.Show.ModalError({title:n,text:i,onLinkInTextClicked:r.onLinkInTextClicked}),this.modalWrapper=t.request("modal:wrapper",{contentView:this.errorView,onHide:r.onHide}),r.region?r.region.show(this.modalWrapper):this.show(this.modalWrapper,{loading:!1}),this.modalWrapper},showModalSuccess:function(n){this.succView=new t.ErrorApp.Show.CustomSuccess(n);this.modalWrapper=t.request("modal:wrapper",{contentView:this.succView});t.modalRegion.show(this.modalWrapper)},getResponseMsg:function(n){var t=l.getResponseCode(n);return t==="error"?"UnknownError":t},getState:function(n){var t=this.getStoreId(),i;return this.getStoreId&&StorageQueue.check("save-store")?(StorageQueue.del("save-store"),i=store.get(t),n.noClear||store.remove(t),i):(store.remove(t),null)},saveState:function(n){if(this.getStoreId){var t=this.getStoreId(),i=store.get(t)||{};return n=f.extend(i,n),store.set(t,n)}},applyState:function(n,t){this.state=this.getState({noClear:!0});this.state?n.call(this,this.state):(this.state={},t&&t.call(this,this.state))},glob:t.glob,ellipsizeForModal:function(n){return c.ellipsize(n,h.modalSettings.maxVariableLength)},_setMainView:function(n){this._mainView||(this._mainView=n,this.listenTo(n,"destroy",this.destroy))},_manageView:function(n,i){i.loading?new t.Components.Loading.LoadingController({view:n,region:i.region,config:i.loading}):i.region.show(n,{forceShow:!0})},toJSON:function(){return this.name||this._instance_id}})});App.module("Behaviors",function(n,t,i,r){"use strict";r.Behaviors.behaviorsLookup=function(t,i){return n[i]}});App.module("Behaviors.Banners",function(n,t,i,r,u){"use strict";var f;this.startWithParent=!1;n.Banners=r.Behavior.extend({onRender:function(){f.showBanner({once:!0})},onDestroy:function(){f.hideBanner()}});f={abortLoading:function(){$logger.info("Banner: abortLoading");this.xhr&&this.xhr.abort()},hideBanner:function(){$logger.info("Banner: hideBanner");t.bannerRegion.reset();this.abortLoading()},showBanner:function(n){var r=n||{},i=u.Deferred(),e=i.promise();if($logger.info("Banner: showBanner"),this.abortLoading(),r.once)t.vent.once("route",function(){f.hideBanner()});this.banners=new t.Entities.BannerCollection;this.bannerController=new t.Components.Banner.Controller({collection:this.banners});this.bannerController.setPromise(e);this.xhr=this.banners.fetch({success:function(){},noExceptHandler:!1,error:function(n,i){var r=t.Analytics.Common;r.responseErrorEvent(r.eventCategories.BROADCAST,"Banner",i)},complete:function(n){i.resolve(n);this.bannerController.setPromise(null)}.bind(this),reset:!0})}};t.commands.setHandler("show:banner",function(){f.showBanner({once:!0})});t.commands.setHandler("hide:banner",function(){f.hideBanner()})});App.module("Behaviors.Broadcasts",function(n,t,i,r,u){"use strict";this.startWithParent=!1;n.Broadcasts=r.Behavior.extend({onRender:function(){f.showBroadcast({once:!0})},onDestroy:function(){f.hideBroadcast()}});var f={abortLoading:function(){$logger.info("Broadcast: abortLoading");this.xhr&&this.xhr.abort()},hideBroadcast:function(){$logger.info("Broadcast: hideBroadcast");t.notifyRegion.reset();this.abortLoading()},clearBroadcastCache:function(){$logger.info("Broadcast: clearBroadcastCache");this.abortLoading();var n=new t.Entities.NotificationCollection;n.clearStore()},showBroadcast:function(n){if($logger.info("Broadcast: showBroadcast"),n=n||{},this.abortLoading(),n.once)t.vent.once("route",function(){f.hideBroadcast()});if(!t.AuthInfo.isTA()){var i=u.Deferred(),r=i.promise();this.notifications=new t.Entities.NotificationCollection;this.notifications.getStore();this.notificationCtrl=new t.Components.Notif.Controller({collection:this.notifications});this.notificationCtrl.setPromise(r);this.xhr=this.notifications.fetch({success:function(){t.request("auth:isAuthorized")&&this.notifications.setStore()}.bind(this),noExceptHandler:!1,error:function(n,i){var r=t.Analytics.Common;r.responseErrorEvent(r.eventCategories.BROADCAST,"Broadcast",i)},complete:function(n){i.resolve(n);this.notificationCtrl.setPromise(null)}.bind(this),reset:!0})}}};t.commands.setHandler("show:broadcast",function(){f.showBroadcast({once:!0})});t.commands.setHandler("clear:broadcast",function(){f.clearBroadcastCache()});t.vent.on("auth:loggedOut",function(){f.hideBroadcast();f.clearBroadcastCache()});t.vent.on("auth:loggedIn",function(){f.hideBroadcast();f.clearBroadcastCache()})});App.module("Behaviors.Checkboxes",function(n,t,i,r,u,f){"use strict";this.startWithParent=!1;n.Checkboxes=r.Behavior.extend({defaults:{fields:[]},getFieldSelector:function(n){return f.findKey(this.view.bindings,function(t){return f.isString(t)?t===n:t.observe===n})},initiListener:function(n,t){f.each(n,f.bind(function(i,r){this.listenTo(this.view.model,"change:"+r,f.bind(function(r,u){t&&u===!0&&this.view.model.set(t,u);u!==!1||f.isString(i)||f.each(i,f.bind(function(n,t){this.view.model.set(t,u)},this));f.each(n,f.bind(function(n,t){this.view.model.set(t,u)},this))},this));f.isString(i)||this.initiListener(i,r)},this))},initializeCheckboxes:function(){this.initiListener(this.options.fields,null)},onRender:function(){this.initializeCheckboxes()}})});App.module("Behaviors.Comboboxes",function(n,t,i,r,u,f){"use strict";this.startWithParent=!1;n.Comboboxes=r.Behavior.extend({defaults:{fields:[]},getFieldSelector:function(n){return f.findKey(this.view.bindings,function(t){return f.isString(t)?t===n:t.observe===n})},findInner:function(n,t,i){var r;f.each(n,function(n,u){f.isString(u)&&u===t?r=n:f.isString(n)||this.findInner(n,t,i)}.bind(this));r&&this.disableInner(r,i)},disableInner:function(n,t){f.each(n,function(n,i){var r,e,o;f.isString(n)||this.disableInner(n);f.isString(i)&&(r=this.$(this.getFieldSelector(i)),r.is("select")&&(r=r.parents("span")),e=u(r).hasClass("empty-box"),e&&r.removeClass("inp-err"),o=this.view.disabledFields&&i in this.view.disabledFields?!!this.view.disabledFields[i]:!t,r.toggleClass("disabled-box",o).find("select, input").attr("disabled",o||e),r.find("select").selectmenu())}.bind(this))},changeField:function(n){f.each(n.changed,function(n,t){var i=!f.isUndefined(n);f.isNull(n)||this.findInner(this.options.fields,t,i)}.bind(this))},initializeComboboxes:function(){this.listenTo(this.view.model,"change",this.changeField.bind(this));this.disableInner(this.options.fields,!0)},onRender:function(){this.initializeComboboxes()}})});App.module("Behaviors.ValidationHandler",function(n,t,i,r,u,f){"use strict";function e(n){var t=f.filter(f.keys(n),function(t){var i=n[t];if(f.isArray(i)&&i.length>0)return!0});return f.pick(n,t)}n.Handler=function(n,i){this.errors=this.errors||[];i?this.errors.push(n):this.errors=f.reject(this.errors,function(t){return t===n});var s=e(this.model.validationState),r=this,u=function(n){return!r.checkValidation||r.checkValidation(n)},o=s.RequiredRule||[],h=f.any(o,function(t){return t.attr===n});!h&&u(n)&&r.switchError(i,n);f.delay(function(){var e=f.filter(o,function(n){return u(n.attr)&&f.contains(r.errors,n.attr)}),n=f.map(e,function(n){return n.attrName}).join(", "),i;n?(i=t.glob("errors/validationAggregation/RequiredRule",{list:n}),r.switchError(i,"RequiredRule")):r.switchError(!1,"RequiredRule")},1)}});App.module("Views",function(n,t,i,r,u,f){"use strict";var e=t.module("Utils.Ajax");f.extend(r.View.prototype,{downloadFileFormPost:function(n,t,i,r){if(!n||!t){$logger.error("Error while file downloading!");return}var o=f.reduce(f.keys(t),function(n,i){var r='<input type="hidden" name="'+i+'" value="'+encodeURIComponent(t[i])+'" />';return n+r},""),e=u('<form action="'+n+'" method="'+(i||"post")+'"'+(r?' target="_blank">':">")+"<\/form>");e.append(u(o));e.appendTo("body").submit().remove()},refreshToken:function(n){if(!t.request("auth:hasToken")){$logger.info("downloadFile","hasToken false: reddirect to login page");t.execute("auth:logout");return}var i=function(n,t,i){var r=this.url||"Unknown URL",u=this.type||"Unknown Method";e.traceAjax(u,r,i)},r=function(n){var t=this.url||"Unknown URL",i=this.type||"Unknown Method";e.traceAjax(i,t,n)};t.request("auth:hasValidToken")?($logger.info("downloadFile","hasValidToken true"),n.call(this,!0)):($logger.warn("downloadFile","hasValidToken false, refresh token"),t.request("auth:refreshToken").done(function(t,r,u){i.call(this,t,r,u);n.call(this,!1)}.bind(this)).fail(function(n,i,u){r.call(this,n,i,u);$logger.error("downloadFile","refreshToken fail, deferred reject, execute logout");t.execute("auth:logout")}.bind(this)))},downloadFile:function(n){var i={AuthorizationToken:t.request("auth:entity").get("access_token")};i.AuthorizationToken||$logger.warn("downloadFile","Missing authorization token for download file request");this.downloadFileFormPost(n,i,"post",!0)},downloadFileClick:function(n){var i=this,t=u(n.toElement||n.relatedTarget||n.target),r=t.data("href")||t.parent().data("href");this.refreshToken(function(n){i.downloadFile(r,n)})},getFileSizeString:function(n){var t=n||this.size,r,i;if(!t)return"0 B";for(r=["B","KB","MB","GB","TB"],i=0;t>=1024;)t/=1024,i++;return Number(t).toFixed(2)+" "+r[i]},getFileNameString:function(n,i){var r,u,f;return(i=i||t.fileNameEllipsis,r=n.length-i,r<=0)?n:(u=this.getFileNameBeginning(n),f=this.getFileNameEnding(n),u.substring(0,u.length-r||1)+"... "+f)},getFileNameBeginning:function(n){return(n||this.name).slice(0,-1*t.fileNameEndingLength)},getFileNameEnding:function(n){return(n||this.name).slice(-1*t.fileNameEndingLength)},ellipsizeFileNamesDynamically:function(n){var t=this.$(".text-begin");t.css({maxWidth:0});f.each(t,function(t){var i=u(t),r=i.closest(n).width()-1,e=f.union(i.siblings().toArray(),i.closest("td").siblings().toArray()),o=Math.ceil(f.reduce(e,function(n,t){return n+t.getBoundingClientRect().width},0));i.css({maxWidth:r-o})})},getFileNameWithoutExtension:function(n){var t=n.lastIndexOf(".");return t<0?n:n.substring(0,t)},getFileNameExtension:function(n){var t=n.lastIndexOf(".");return t<0?"":n.substring(t)},templateContext:function(){return{getFileNameString:this.getFileNameString,getFileSizeString:this.getFileSizeString,getFileNameBeginning:this.getFileNameBeginning,getFileNameEnding:this.getFileNameEnding,getFileNameWithoutExtension:this.getFileNameWithoutExtension,getFileNameExtension:this.getFileNameExtension}},toJSON:function(){var n=this.name||this.template||this.cid||"View";return"["+n+"]"},onBeforeDestroy:function(){this.model&&this.model.validate&&i.Validation.bind(this);this.unstickit&&this.unstickit()}})});App.module("Views",function(n,t,i,r){"use strict";n.CollectionView=r.CollectionView.extend({itemViewEventPrefix:"childview"})});App.module("Views",function(n,t,i,r){"use strict";n.CompositeView=r.CompositeView.extend({itemViewEventPrefix:"childview",serializeData:function(){return this.model?i.Model.prototype.toJSON.apply(this.model):{}}})});App.module("Views",function(n,t,i,r){"use strict";n.ItemView=r.View.extend({templateContext:function(){return r.View.prototype.templateContext()},serializeData:function(){var n={};return this.model?n=i.Model.prototype.toJSON.apply(this.model):this.collection&&(n={items:i.Collection.prototype.toJSON.apply(this.collection)}),n}})});App.module("Views",function(n,t,i,r){"use strict";n.LayoutView=r.View.extend({templateContext:function(){return{getFileNameString:this.getFileNameString,getFileSizeString:this.getFileSizeString,getFileNameBeginning:this.getFileNameBeginning,getFileNameEnding:this.getFileNameEnding}}})});App.module("Entities",function(n,t,i,r,u,f){"use strict";var e=t.module("Entities.SyncPool");t.commands.setHandler("when:fetched",function(n,t,i){var r=f.chain([n]).flatten().pluck("_fetch").value();u.when.apply(u,r).done(function(n){t.call(i||this,n)})});t.commands.setHandler("when:error",function(n,t,i){var r=f.chain([n]).flatten().pluck("_fetch").value();u.when.apply(u,r).fail(function(n){var r=f.flatten([n]);t.apply(i||this,r)})});n.commonProperties={abortFetch:function(){if(!this.syncId){$logger.warn(this.getName(),"syncId is empty");return}e.abort(this.syncId)},isModel:function(){return this instanceof i.Model},addSyncId:function(){var n=this.isModel()?"_modelSyncId_":"_collectionSyncId_";this.syncId||(this.syncId=this.getName()+f.uniqueId(n))},addToSyncPool:function(n,t,r){var u,f=this.isModel()?i.Model:i.Collection;return this.addSyncId(),u=f.prototype.sync.call(this,n,t,r),e.add(this.syncId,u),u},getName:function(){var n,t;if(this.name)return this.name;if(this.url)if(f.isFunction(this.url))try{t=this.url()}catch(i){}else f.isString(this.url)&&(t=this.url);return n=t?"Url_"+t:this.validationUrl?"ValidationUrl_"+this.validationUrl:this.cid?"Cid_"+this.cid:"Unknown",n=(this.isModel()?"BackboneModel_":"BackboneCollection_")+n,$logger.warn(n,"Model without explicit name"),n}}});App.module("Entities",function(n,t,i,r,u,f){"use strict";var e=t.module("Entities.Validation"),o=t.module("Utils.String");n.Model=i.Model.extend(f.extend({idAttribute:"Id",initialize:function(){this.listenTo(this,"error",this.onError);this.validatable&&this.setupValidation();this.onChange&&this.listenTo(this,"change",this.onChange);this.onValidationInvalid&&this.listenTo(this,"validated:invalid",this.onValidationInvalid)},setupValidation:function(){var n=this.validationUrl||this.submitUrl||this.url,t;this.validation=this.getValidationRules(n,this.validationGlobPath)||{};t=this.getFileValidationRules(n,this.validationGlobPath)||{};this.extendValidation(t);this.addClientRules(n)},addClientRules:function(n){var t=e.getClientSettings(n);f.each(t,function(n){var t=n.propertyName;this.validation[t]=this.validation[t]||[];f.each(n.rules||[],function(n){var i;f.isFunction(n)?i=n(this.validation,this.validationGlobPath):f.isObject(n)&&(i=n);i&&(this.validation[t]=this.validation[t].concat(i))},this)},this)},destroy:function(n){n||(n={});f.defaults(n,{wait:!0});i.Model.prototype.destroy.call(this,n)},sync:function(n,t,r){return r.auth=!("auth"in this)||this.auth,r.isIgnoreBatch=this.isIgnoreBatch,r.allowedWithoutTermsOfUse=this.allowedWithoutTermsOfUse,n==="read"?this.addToSyncPool(n,t,r):i.Model.prototype.sync.call(this,n,t,r)},inputValidation:function(n,t,i){var r=i&&i.valid;this.validationContext=i;f.isUndefined(r)&&(r=!0);this._fromInput=!!r;this.preValidate(n,t);delete this._fromInput;delete this.validationContext},extendValidation:function(n){this.validation=f.extend(this.validation,n)},mapRules:function(n,i,r){function u(n,i,r){return f.reduce(f.map(i,function(i){return t.globPure(i+n,r)}),function(n,t){return f.isString(n)?n:t})}return r=f.flatten([r]),f.map(i,function(t){var o=f.first(f.keys(t)),s=t[o],i=n+"."+o,e=u(i,r,s);return f.isString(e)||($logger.info(this.getName(),"Localization not found: "+i),e="Localize: "+i),t.msg=e,t},this)},getValidationRules:function(n,t){var i,r,u,o;return(t=f.flatten([t]),i=e.getDtoServerSettings(n),r=this.save,this.save=function(n,t,i){function f(n,t){return t&&t.responseJSON&&t.responseJSON.ModelState&&($logger.info(n.getName(),"Server validation errorHandlerWrapper called"),t.isValidationError=!0),t.handled?undefined:u.call(this,n,t)}var u=t.error;return t.error=f,r.call(this,n,t,i)},!i)?{}:(u=this,o=f.map(i.properties,function(n){var i={},f=n.propertyName,r=u.mapRules(f,n.rules,t),e={ServerRule:{globPath:t}};return r.push(e),i[n.propertyName]=r,i}),f.extend.apply(f,o))},getFileValidationRules:function(n,t){var i,r,u;return(t=f.flatten([t]),i=e.getFileServerSettings(n),!i)?{}:(r=this.mapRules(this.fileAttribute,i.rules,t),r.push({ServerRule:{globPath:t}}),u={},u[this.fileAttribute]=r,u)},setValidationState:function(n,i,r){var u;if(this.validationState=this.validationState||{},u=this.validationState[n]||[],r){if(!f.find(u,{attr:i})){var e=f.flatten([this.validation[i]]),o=f.find(e,function(t){return t[n]}),s=f.map(this.propsNamePath,function(n){return t.globPure(n+i)}),h=f.find(s,f.isString);u.push({attr:i,error:r,errorText:o.msg,attrName:h})}}else u=f.filter(u,function(n){return n.attr!==i});this.validationState[n]=u},inputOverflow:function(n){if(n.showModal&&t.execute("error:paste:overflow"),this.onInputOverflow&&n.rule&&n.attribute){var i={};if(i[n.attribute]=n.rule.msg,this.inputOverflowPropertiesForGa){this.inputOverflowPropertiesForGa.forEach(function(t){if(n.attribute===t)this.onInputOverflow(i)},this);return}this.onInputOverflow(i)}},onError:function(n,t){var r=t.responseJSON||{},u=r.modelState||r.ModelState,i;u&&(i={},f.each(u,function(t,r){var e=f.last(r.split(".")),h=f.first(t).split("|"),v=h[0],o=h[1],y=h[2],c,u,s,l,a;e==="File"&&(e=n.fileAttribute);c={};o&&(o=o.split("_"),f.each(o,function(n){var t=n.split(":"),i=t[0],r=t[1];c[i]=r}));i[e]={name:v,options:c,msg:y};u=n.validation[e];s=f.isArray(u);u&&(!s||f.some(u,function(n){return n.ServerRule}))&&(s||u.ServerRule)||(l={ServerRule:!0},s?u.push(l):(a={},a[e]=l,n.extendValidation(a)))}),n._ServerValidationResult=i,$logger.warn(this.getName(),"Server validation failed: "+o.toJSON(i)),n.isServerValidationCallback=!0,n.validate(!1,{noDelay:!0}),delete n.isServerValidationCallback)}},n.commonProperties))});App.module("Entities",function(n,t){"use strict";var i=t.module("Start"),r=t.module("Entities.Validation");n.StsModel=n.Model.extend({initialize:function(){r.isStsValidationLoaded||i.loadStsValidationSettings().then(function(){this.validatable&&this.setupValidation()}.bind(this));n.Model.prototype.initialize.call(this)},url:function(){return t.stsServer.getUrl()+this.validationUrl}})});App.module("Entities",function(n,t,i,r,u,f){"use strict";var o=t.module("Utils.String"),e;n.Collection=i.Collection.extend(f.extend({sync:function(n,t,r){var u=r||{};return u.auth=!("auth"in this)||this.auth,n==="read"?this.addToSyncPool(n,t,u):i.Model.prototype.sync.call(this,n,t,u)}},n.commonProperties));e=n.Collection.extend;n.PageableCollection=n.Collection.extend({queryParams:{pageSize:"top",skip:"skip",sortKey:"orderBy",order:"order",filter:"filter",directions:{asc:"asc",desc:"desc"}},state:{pageSize:10,skip:function(){return(this.currentPage-1)*this.pageSize},currentPage:1,sortKey:null,order:null,filter:null,lastPage:null,totalPages:null,totalRecords:null},constructor:function(t,i){i||(i={});this.configureQueryParams(i.queryParams||{});this.configureState(i.state||{});n.Collection.apply(this,arguments)},setDefaultErrorHandler:function(n){this.errorHandler=n},configureQueryParams:function(n){this.queryParams=this.deepClone(f.defaults({},n,this.queryParams))},configureState:function(n){this.state=this.deepClone(f.defaults({},n,this.state))},deepClone:function(n){return u.extend(!0,{},n)},fetch:function(t){var i,r,u;return t||(t={}),t.reset=!0,this.fetch_xhr&&(i=this.fetch_xhr.state(),i==="pending"&&this.fetch_xhr.abort()),t.error=t.error||this.errorHandler,t.error&&(r=t.error,u=function(n,t,i){if(t.isAborted){$logger.info(n.getName(),"Old pageable collection request aborted");return}t.responseJSON&&t.responseJSON.ModelState&&($logger.warn(n.getName(),"Server validation error: "+o.toJSON(t)),t.isValidationError=!0);r(n,t,i)},t.error=u),t.state&&f.extend(this.state,t.state),t.data=t.type==="POST"?t.data:f.extend(this.prepareData(),t.data||{}),this.fetch_xhr=n.Collection.prototype.fetch.call(this,t),this.fetch_xhr},prepareData:function(n){var e;n||(n={});var i=n.queryParams||this.queryParams,r=n.state||this.state,u=["pageSize","sortKey","order","filter","skip"],t={};return f.each(u,function(n){var e,u;f.isFunction(i[n])?(u=i[n](r),e=n):(u=f.result(r,n),e=i[n],n==="order"&&(u=i.directions[u]));f.isNull(u)||f.isUndefined(u)||(t[e]=u)},this),e=f.omit(i,u,"directions"),f.each(e,function(n,i){t[i]=f.isFunction(n)?n(r):n;(f.isUndefined(t[i])||f.isNull(t[i]))&&delete t[i]},this),this.state.filter&&(t=f.omit(t,"filter"),f.extend(t,this.state.filter)),f.pick(t,function(n){return!!n})},parse:function(n){var t=f.clone(this.state);return this.updateState(this.parseState(n,t)),this.parseRecords(n)},parseState:function(n){return{totalRecords:n.Count}},parseRecords:function(n){return n.Items},updateState:function(n){n.totalPages=Math.ceil(n.totalRecords/this.state.pageSize);n.lastPage=n.totalPages;this.state=f.extend({},this.state,n)},getPage:function(n,t){return this.setPage(n)?this.fetch(t):!1},setPage:function(n){var t={first:1,prev:this.state.currentPage-1,next:this.state.currentPage+1,last:this.state.lastPage};return(f.has(t,n)&&(n=t[n]),n>this.state.lastPage||n<1)?!1:(this.state.currentPage=n,this.trigger("collection:setpage",n),!0)},hasPrevious:function(){return this.state.currentPage>1},hasNext:function(){return this.state.currentPage<this.state.lastPage},getFirstPage:function(n){return this.getPage("first",n)},getPreviousPage:function(n){return this.getPage("prev",n)},getNextPage:function(n){return this.getPage("next",n)},getLastPage:function(n){return this.getPage("last",n)},getFilter:function(){return this.state.filter},setFilter:function(n,t,i){var r,u,e;return this.state.filter=this.state.filter||{},f.isObject(n)?(r=n,u=this,i=t,f.each(r,function(n,t){u.state.filter[t]=n})):this.state.filter[n]=t,e=(i||{}).noRequest,this.state.currentPage=1,e?void 0:this.fetch(i)},setSorting:function(n,t){return this.state.sortKey!==n||this.state.order!==t?(this.state.sortKey=n,this.state.order=t||this.state.order,!0):!1},getSortColumn:function(){return this.state.sortKey},getSortOrder:function(){return this.state.order}},{extend:function(n){var t=this;return f.each(["queryParams","state"],function(i){n[i]=f.defaults({},n[i]||{},t.prototype[i])}),e.apply(this,arguments)}})});App.module("Entities",function(n){"use strict";n.generateGuid=function(){function n(){return Math.floor((1+Math.random())*65536).toString(16).substring(1)}return function(){return n()+n()+"-"+n()+"-"+n()+"-"+n()+"-"+n()+n()+n()}}()});App.module("Entities.SyncPool",function(n){"use strict";var t={};n.add=function(i,r){r&&(t[i]&&($logger.warn("Entities.SyncPool","Xhr already exists for model with syncId - "+i+". Abort it."),n.abort(i)),r.always(function(){delete t[i]}),t[i]=r)};n.abort=function(n){var i=t[n];i&&(i.abort(),delete t[n])}});App.module("Entities",function(n,t){"use strict";var r,i;n.RegisterModel=n.Model.extend({name:"Entities.RegisterModel",url:"/api/Account/Register",auth:!1,fileAttribute:"KeyFile",defaults:{Country:"RU",ActivationCode:""},validatable:!0,validationGlobPath:"account/create/errors/",initialize:function(){n.Model.prototype.initialize.call(this)},onChange:function(n){n.analyticsInitiate||(t.Analytics.Security.initiateRegistrationEvent(),n.analyticsInitiate=!0)},onValidationInvalid:function(n,i){n.isServerValidationCallback||t.Analytics.Security.registrationStep1ValidationError(n,i)},inputOverflowPropertiesForGa:["FirstName","LastName","Company"],onInputOverflow:function(n){t.Analytics.Security.registrationStep1OverflowError(this,n)}});n.AccountLoginModel=n.Model.extend({name:"Entities.AccountLoginModel",validatable:!0,validationUrl:"Entities.AccountLoginModel",initialize:function(){n.Model.prototype.initialize.call(this)},defaults:{type:"Login"},save:function(t){t=t||{};t.data=this.toJSON();t.emulateJSON=!0;t.error=function(n,t){n.set("authError",t.responseJSON.error_description);n.validate();n.set("password","");n.set("authError","")};n.Model.prototype.save.call(this,null,t)},onChange:function(){this.sendGaInitiateEvent()},sendGaInitiateEvent:function(){this.analyticsInitiate||(t.Analytics.Security.initiateSignInEvent(),this.analyticsInitiate=!0)},onValidationInvalid:function(n,i){t.Analytics.Security.signInValidationError(n,i)}});r=n.Model.extend({validatable:!0,auth:"maybe",checkLink:function(n){return this.save(null,{success:n.success,error:n.error,validate:!1})}});n.DeleteCompanyModel=r.extend({name:"Entities.DeleteCompanyModel",url:"/api/Company/Delete",validationGlobPath:"suspiciousBehaviorBlocking/errors/"});n.RegisterWithInvitationInitiateModel=r.extend({name:"Entities.RegisterWithInvitationInitiateModel",url:"/api/Account/RegisterInvitedUserInitiate",validationGlobPath:"suspiciousBehaviorBlocking/errors/"});n.RegisterWithInvitationSubmitModel=n.Model.extend({name:"Entities.RegisterWithInvitationSubmitModel",validationGlobPath:"account/invitation/errors/",auth:!1,validatable:!0,url:"/api/Account/RegisterInvitedUserSubmit",initialize:function(){n.Model.prototype.initialize.call(this)},onChange:function(n){n.analyticsInitiate||(t.Analytics.Invite.initiateInvitationRegistrationEvent(),n.analyticsInitiate=!0)},onValidationInvalid:function(n,i){n.isServerValidationCallback||t.Analytics.Invite.invitationRegistrationValidationErrorEvent(n,i)},inputOverflowPropertiesForGa:["FirstName","LastName"],onInputOverflow:function(n){t.Analytics.Invite.invitationRegistrationInputOverflowEvent(this,n)}});i={getRegisterModel:function(t){return new n.RegisterModel(t)},getAccountLoginModelInstance:function(){return new n.AccountLoginModel},getDeleteCompanyModelInstance:function(t){return new n.DeleteCompanyModel(t)},getInvitationRegistrationSubmitModel:function(t){return new n.RegisterWithInvitationSubmitModel(t)},getInvitationRegistrationInitiateModel:function(t){return new n.RegisterWithInvitationInitiateModel(t)}};t.reqres.setHandler("account:create:model",function(n){return i.getRegisterModel(n)});t.reqres.setHandler("account:login:model:instance",function(n){return i.getAccountLoginModelInstance(n)});t.reqres.setHandler("company:delete:model",function(n){return i.getDeleteCompanyModelInstance(n)});t.reqres.setHandler("account:create:invitation:submit:model",function(n){return i.getInvitationRegistrationSubmitModel(n)});t.reqres.setHandler("account:create:invitation:initiate:model",function(n){return i.getInvitationRegistrationInitiateModel(n)})});App.module("Entities",function(n){"use strict";n.BannerCollapsedModel=n.Model.extend({name:"Entities.BannerCollapsedModel",url:function(){return"/api/Banner/SetStatusCollapsed?bannerId="+this.get("id")+"&bannerStatusCollapsed="+this.get("collapsed")}});n.BannerHiddenModel=n.Model.extend({name:"Entities.BannerHiddenModel",url:function(){return"/api/Banner/SetStatusHidden?bannerId="+this.get("id")}});n.BannerModel=n.Model.extend({name:"Entities.BannerModel"});n.BannerCollection=n.Collection.extend({name:"Entities.BannerCollection",noExceptHandler:!0,url:function(){var n=window.location.pathname.slice(1);return"/api/Banner/GetList?pagePath="+n},model:n.BannerModel})});App.module("Entities",function(n,t,i,r,u,f){"use strict";var o=t.module("Utils.String"),e;n.AuthModel=n.Model.extend({name:"Entities.AuthModel",initialize:function(){this.listenTo(this,"change",this.save)},isAuthorized:function(){var n=this.hasToken()&&this.get("passExpired")!=="True"&&this.get("shouldAcceptTermsOfUse")!=="True";return $logger.info(this.getName(),"isAuthorized:"+n),n},shouldAcceptTermsOfUse:function(){return this.hasToken()&&this.get("shouldAcceptTermsOfUse")==="True"},shouldRefreshPassword:function(){return this.hasToken()&&this.get("passExpired")==="True"},markAsShouldAcceptTermsOfUse:function(){this.set("shouldAcceptTermsOfUse","True")},markAsShouldNotAcceptTermsOfUse:function(){this.set("shouldAcceptTermsOfUse","False")},hasValidToken:function(){var n=this.hasToken()&&!this.isTokenExpired();return $logger.info(this.getName(),"hasValidToken call with result: "+n),n},hasValidRefreshToken:function(){var n=(moment()-this.get("requestStart"))/1e3;return n<t.refreshTokenLifetime},getRefreshTokenLeftTime:function(){var n=t.authModel&&t.authModel.get("requestStart");return n==null?null:n+t.refreshTokenLifetime*1e3-moment()},isTokenExpired:function(){var n=this.get("date"),f=(n-this.get("requestStart"))/1e3,i=(moment()-n)/1e3,r=this.get("expires_in")-t.tokenExpiration-f,u=i>r;return $logger.info(this.getName(),"isTokenExpired cal with result: "+u+", actual: "+i+", expiresIn: "+r),u},hasToken:function(){var n=!!this.get("access_token")&&!!this.get("refresh_token");return $logger.info(this.getName(),"hasToken call with res: "+n),n},getStore:function(){var n=store.get("auth"),t=n&&JSON.parse(n);return t||{}},load:function(){var n=this.getStore();f.isEmpty(n)?($logger.info(this.getName(),"Auth store empty"),this.clear({silent:!0})):(this.set(n,{silent:!0}),this.set({date:moment(n.date),requestStart:moment(n.requestStart)},{silent:!0}))},save:function(){store.set("auth",o.toJSON(this));t.Analytics.Security.setUserRole(this.get("role")||"Anonymous")}});e={getAuthEntity:function(){return t.authModel?t.authModel.load():(t.authModel=new n.AuthModel,t.authModel.load(),t.Analytics.Security.setUserRole(t.authModel.get("role")||"Anonymous")),t.authModel},isAuthorized:function(){return this.getAuthEntity().isAuthorized()},hasToken:function(){return this.getAuthEntity().hasToken()},hasValidToken:function(){return this.getAuthEntity().hasValidToken()},role:function(){return this.getAuthEntity().get("role")||"Anonymous"}};t.reqres.setHandler("auth:entity",function(){return e.getAuthEntity()});t.reqres.setHandler("auth:isAuthorized",function(n){return e.isAuthorized(n)});t.reqres.setHandler("auth:role",function(){return e.role()});t.reqres.setHandler("auth:hasToken",function(n){return e.hasToken(n)});t.reqres.setHandler("auth:hasValidToken",function(n){return e.getAuthEntity().hasValidToken(n)});t.reqres.setHandler("auth:hasValidRefreshToken",function(){return e.getAuthEntity().hasValidRefreshToken()})});App.module("Entities",function(n,t,i,r,u,f){"use strict";n.AuthInfo=n.Model.extend({initialize:function(){var n=store.get("Entities.AuthInfo");n&&this.set(n,{silent:!0});this.on("change",this.onChange)},onChange:function(){store.set("Entities.AuthInfo",this.attributes)},onPushNotif:function(){},cleanup:function(){store.remove("Entities.AuthInfo");this.clear({silent:!0});u.ajaxSetup({headers:{Authorization:null}})},hasTokens:function(){var n=this.get("access_token"),t=this.get("refresh_token");return!!n&&!!t},isUnknownComp:function(){return this.get("isUnknownCompany")!=="False"},isMain:function(){var n=this.get("role");return n&&n.indexOf("Main")!==-1},isUser:function(){return f.contains(["CA User","TA CA User"],this.get("role"))},isTA:function(){var n=this.get("role");return n&&n.indexOf("TA")!==-1}});t.AuthInfo=new t.Entities.AuthInfo});App.module("Entities",function(n,t){"use strict";n.ClientSession=n.Model.extend({name:"Entities.ClientSession",initialize:function(){var t=store.get("clientSession");this.on("change",this.onChange);t?this.set(t,{silent:!0}):this.set({Id:n.generateGuid()})},onChange:function(){this.saveToStore()},getId:function(){var i=store.get("clientSession"),t=this.get("Id");return t||(t=n.generateGuid()),i||(this.set({Id:t},{silent:!0}),this.saveToStore()),t||$logger.warn(this.getName(),"clientId was null or empty"),$logger.info(this.getName(),"clientId is "+t),t},saveToStore:function(){store.set("clientSession",this.attributes);$logger.track({clientSessionId:store.get("clientSession")})}});t.ClientSession=new t.Entities.ClientSession});App.module("Entities",function(n,t,i,r,u,f){"use strict";var e=t.module("Utils.String");n.AnswersModel=n.Model.extend({name:"Entities.AnswersModel",auth:!0,noExceptHandler:!0,url:"/api/Request/GetNumberOfPendingAnswer"});n.RequestCounter=n.Model.extend({name:"Entities.RequestCounter",defaults:{pendingCount:0},initialize:function(){this.listenTo(t.vent,"route",this.routeChange);this.listenTo(t.vent,"change:request:count",this.onPushNotif);this.listenTo(t.vent,"auth:loggedOut",this.clearStore);this.listenTo(t.vent,"auth:loggedIn",this.clearStore);this.answersModel=new n.AnswersModel;this.getStored()},refresh:function(n){(n=n||{},this.xhr)||(this.xhr=this.answersModel.fetch({success:f.bind(function(t,i){this.set({pendingCount:i});this.trigger("change",this);this.setStore();n.success&&n.success(t,i)},this),error:function(t,i){$logger.error(this.getName(),"Error while pending count request: "+e.toJSON(t));n.error&&n.error(t,i)},complete:f.bind(function(){this.xhr=null},this)}))},routeChange:function(){t.request("auth:isAuthorized")&&this.refresh()},onPushNotif:function(){},getStoreId:function(){return"request-count"},setStore:function(){store.set(this.getStoreId(),this.get("pendingCount"))},getStored:function(){var n=store.get(this.getStoreId());this.set({pendingCount:n})},clearStore:function(){this.clear();this.setStore()}});t.RequestCounter=new t.Entities.RequestCounter});App.module("Entities",function(n,t){"use strict";n.LogoRemoveModel=n.Model.extend({name:"Entities.LogoRemoveModel",url:"/api/Logo/LogoDelete"});n.LogoLinkModel=n.Model.extend({name:"Entities.LogoLinkModel",url:"/api/Logo/GetLogo"});n.LogoAddModel=n.Model.extend({name:"Entities.LogoAddModel",url:"/api/Logo/LogoUpload",isIgnoreBatch:!0,fileAttribute:"logoImage",validationGlobPath:"profile/companyLogo/errors/",validatable:!0,initialize:function(){n.Model.prototype.initialize.call(this)},onValidationInvalid:function(n,i){t.Analytics.Users.companyLogoValidationError(n,i)}});n.FilialsCollection=n.Collection.extend({name:"Entities.FilialsCollection",url:"/api/Company/GetCompanyOrganizations"});t.reqres.setHandler("organizations:entities",function(t){var i=new n.FilialsCollection;return i.fetch(t),i})});App.module("Entities",function(n,t){"use strict";n.CompatibleApplicationCollection=n.Collection.extend({name:"Entities.CompatibleApplicationCollection",url:function(){return"/api/License/GetCompatibleApplicationList?reconciliationId="+this.licenseId},initialize:function(n,t){t=t||{};this.licenseId=t.licenseId}});var i={getCompatibleApplicationEntities:function(t){var i=new n.CompatibleApplicationCollection([],{licenseId:t});return i.fetch(),i}};t.reqres.setHandler("compatibleApplication:entities",function(n){return i.getCompatibleApplicationEntities(n)})});App.module("Entities",function(n,t,i,r,u,f){"use strict";var e=t.module("Constants.Contracts"),o={getContractEntities:function(t){var i=new n.ContractCollection;return i.fetch(t),i}};n.ContractCollection=n.PageableCollection.extend({name:"Entities.ContractCollection",url:"/api/Contract/GetList",initialize:function(){n.PageableCollection.prototype.initialize.call(this);this.on("collection:setpage",t.Analytics.Contracts.contractsPageEvent)},parse:function(t){return t.Items&&t.Items.length&&f.each(t.Items,function(n){f.each(n.AttachedFiles,function(t){t.FileLink="/api/Contract/DownloadAttachment?id="+n.ContractId+"&fileNumber="+encodeURIComponent(t.LocalFileNumber)})}),this.sendGaEvent(t.Items),n.PageableCollection.prototype.parse.call(this,t)},sendGaEvent:function(n){var i;if(!n||!n.length){t.Analytics.Contracts.noContractsEvent(this.state.currentPage);return}if(i=f.countBy(n,function(n){return n.Status}),i[e.Status.EXPIRED]===n.length)t.Analytics.Contracts.onlyExpiredContractsEvent(this.state.currentPage);else i[e.Status.LIMIT_EXHAUSTED]&&t.Analytics.Contracts.atleastOneLimitExhaustedContractsEvent(this.state.currentPage),(i[e.Status.ACTIVE]||i[e.Status.EXPIRING])&&t.Analytics.Contracts.atleastOneActiveContractEvent(this.state.currentPage)}});t.reqres.setHandler("contract:entities",function(n){return o.getContractEntities(n)})});App.module("Entities",function(n,t,i,r,u,f){"use strict";n.CountryCollection=n.Collection.extend({name:"Entities.CountryCollection",auth:!1,url:"/api/Country/GetList",parse:function(n){this.selected=n.Selected;var t=f.findIndex(n.Items,function(n){return n.ISOCode==="ZY"});return t>=0&&n.Items.splice(t,1),n.Items}});var e={getCountryEntities:function(){var t=new n.CountryCollection;return t.fetch(),t}};t.reqres.setHandler("country:entities",function(){return e.getCountryEntities()})});App.module("Entities",function(n,t){"use strict";n.FileModel=n.Model.extend({name:"Entities.FileModel"});n.FileStorageDeleteModel=n.Model.extend({name:"Entities.FileStorageDeleteModel",url:"/api/Request/DeleteFile"});n.FileCollection=n.Collection.extend({name:"Entities.FileCollection",model:n.FileModel});t.reqres.setHandler("file:collection:instance",function(){return new n.FileCollection});t.reqres.setHandler("file:delete:model",function(t){return new n.FileStorageDeleteModel(t)})});App.module("Entities",function(n,t){"use strict";n.FileAgreementModel=n.Model.extend({name:"Entities.FileAgreementModel",url:"/api/FileAgreement/Get"});n.FileAgreementAcceptModel=n.Model.extend({name:"Entities.FileAgreementAcceptModel",url:"/api/FileAgreement/Accept"});var i={getFileAgreementEntity:function(t){var i=new n.FileAgreementModel;return i.fetch(t),i}};t.reqres.setHandler("fileAgreement:entity",function(n){return i.getFileAgreementEntity(n)});t.reqres.setHandler("fileAgreementAccept:entity",function(){return new n.FileAgreementAcceptModel})});App.module("Entities",function(n,t){"use strict";n.LicenseCollection=n.PageableCollection.extend({name:"Entities.LicenseCollection",url:"/api/License/GetList"});n.LicenseRemoveModel=n.Model.extend({name:"Entities.LicenseRemoveModel",url:"/api/License/Delete"});n.LicenseAddModel=n.Model.extend({name:"Entities.LicenseAddModel",url:"/api/License/Add",isIgnoreBatch:!0,fileAttribute:"KeyFile",defaults:{ActivationCode:""},validatable:!0,validationGlobPath:"license/add/errors/",initialize:function(){n.Model.prototype.initialize.call(this)},onValidationInvalid:function(n,i){n.noAnalytics||t.Analytics.Licenses.licenseAddValidationError(n,i)},onChange:function(n){n.dirtyCode||(t.Analytics.Licenses.initiateLicenseAddEvent(!1),n.dirtyCode=!0)}});var i={getLicenseEntities:function(t){var i=new n.LicenseCollection;return i.fetch(t),i},getLicenseAddModelInstance:function(t){return new n.LicenseAddModel(t)},getLicenseRemoveModelInstance:function(){return new n.LicenseRemoveModel}};t.reqres.setHandler("license:entities",function(n){return i.getLicenseEntities(n)});t.reqres.setHandler("license:add:model:instance",function(n){return i.getLicenseAddModelInstance(n)});t.reqres.setHandler("license:remove:model:instance",function(){return i.getLicenseRemoveModelInstance()})});App.module("Entities",function(n){"use strict";n.NotificationCollapsedModel=n.Model.extend({name:"Entities.NotificationCollapsedModel",url:function(){var n=this.get("id"),t=this.get("collapsed"),i="broadcastId="+n+"&broadcastStatusCollapsed="+t;return"/api/Broadcast/SetStatusCollapsed?"+i}});n.NotificationNeverShowModel=n.Model.extend({name:"Entities.NotificationNeverShowModel",url:function(){return"/api/Broadcast/SetStatusNeverShow?broadcastId="+this.get("id")}});n.NotificationModel=n.Model.extend({name:"Entities.NotificationModel"});n.NotificationCollection=n.Collection.extend({name:"Entities.NotificationCollection",noExceptHandler:!0,url:"/api/Broadcast/GetList",model:n.NotificationModel,getStoreId:function(){return"broadcast-collection"},setStore:function(){store.set(this.getStoreId(),JSON.stringify(this));$logger.info(this.getName(),"Saved to cache "+this.length+" item(s)")},getStore:function(){this.reset();var n=store.get(this.getStoreId());n&&this.add(JSON.parse(n));$logger.info(this.getName(),"Loaded from cache "+this.length+" item(s)")},clearStore:function(){this.reset();this.setStore();$logger.info(this.getName(),"Cache cleaned")}})});App.module("Entities",function(n,t,i,r,u,f){"use strict";function s(n){return n.replace(/\n/g,"<br />").replace(/&#10;/g,"<br />")}function c(n,t){return n?t!==4001?s(n):n.replace(/&lt;\/?\s*(img|br|u|em|b|a|p|div|font|li|ol|ul|strong|sub|sup|h[1-5])?(?:\s*\/?|\s+(?:[^&]+|&(?:[^&;]|[lg][^t&;]|[^lg&;][^&;]|[^&;]{3,});)+)&gt;/g,function(n,t){return t?f.unescape(n):n}):""}var o=t.module("Utils.String"),h=t.module("Utils.Exception"),e;n.RequestModelBase=n.Model.extend({name:"Entities.RequestModelBase",validationGlobPath:"request/errors/",initialize:function(){n.Model.prototype.initialize.call(this)},onChange:function(n,i){!n.analyticsInitiate&&i.stickitChange&&i.stickitChange.observe!=="AttachedFiles"&&(t.Analytics.Requests.initiateNewRequestOrAnswerEvent(n),n.analyticsInitiate=!0)},onValidationInvalid:function(n,t){this.validationInvalidHandler(n,t)},validationInvalidHandler:function(n,i){t.Analytics.Requests.newRequestValidationError(n,i)},getStateStoreId:function(){return"Request_"+this.stateStoreSettings.storeId+"_"+t.request("auth:entity").get("email").toLowerCase()},getStateLanguageKey:function(){return"lang_"+t.request("settings:entity").get("language").value},saveState:function(){function u(n,t,i){f.each(n||[],function(n){var r=e[n];i[n]=r&&t[n]&&t[n].get?t[n].get(r):t[n]})}var t;if(!this.stateStoreSettings||!this.stateStoreSettings.storeId){$logger.warn(this.getName(),"Couldn't save state - settings are empty");return}var i=this.getStateStoreId(),e=this.stateStoreSettings.nestedModelsProps||{},r=this.toJSON(),n={};u(this.stateStoreSettings.props,r,n);this.stateStoreSettings.languageSpecificProps&&this.stateStoreSettings.languageSpecificProps.length&&(t=this.getStateLanguageKey(),n[t]={},u(this.stateStoreSettings.languageSpecificProps,r,n[t]));store.set(i,n);$logger.debug(this.getName(),"Request submit model was saved to the storage. Key: "+i+", Model"+o.toJSON(n))},getState:function(){var t,n,i;if(!this.stateStoreSettings||!this.stateStoreSettings.storeId){$logger.warn(this.getName(),"Couldn't get state - settings are empty");return}t=this.getStateStoreId();n=store.get(t);$logger.debug(this.getName(),"Request submit model was read from the storage. Key: "+t+", Model"+o.toJSON(n));try{return n&&(i=this.getStateLanguageKey(),this.stateStoreSettings.languageSpecificProps&&this.stateStoreSettings.languageSpecificProps.length&&(f.each(n[i],function(t,i){f.contains(this.stateStoreSettings.languageSpecificProps,i)&&(n[i]=t)},this),delete n[i])),n}catch(r){$logger.error(this.getName(),{message:"Error restoring model state",error:h.getAsString(r)});this.clearState()}},loadState:function(){this.set(this.getState())},clearState:function(){var n=this.getStateStoreId();store.remove(n);$logger.debug(this.getName(),"Request submit model was removed from the storage. Key: "+n)}});n.SupportModelBase=n.RequestModelBase.extend({name:"Entities.SupportModelBase",propsNamePath:["request/support/errorProps/","request/support/props/"],initialize:function(){n.RequestModelBase.prototype.initialize.call(this)},onInputOverflow:function(n){t.Analytics.Requests.newRequestOverflowError(this,n)}});n.WorkLogCollection=n.Collection.extend({name:"Entities.WorkLogCollection",initialize:function(n){f.each(n,function(n){n.Description=c(n.Description,n.WLType);f.each(n.AttachedFiles||[],function(t){t.IsAllowedToDownload&&(t.FileLink="/api/Request/DownloadFile?id="+n.InstanceId+"&fileName="+encodeURIComponent(t.FileName))})})}});n.CommentModel=n.RequestModelBase.extend({name:"Entities.CommentModel",url:"/api/Request/AddComment",analyticsRequestType:"Request | Send answer",validatable:!0,initialize:function(){n.RequestModelBase.prototype.initialize.call(this)}});n.CloseRequestModel=n.Model.extend({name:"Entities.CloseRequestModel",url:"/api/Request/CloseRequest"});n.RequestInfoModel=n.Model.extend({name:"Entities.RequestInfoModel"});n.RequestModel=n.Model.extend({name:"Entities.RequestModel",idAttribute:"InstanceId",analyticsRequestType:"Request",url:function(){var n=this.get("IncidentNumber");return n?"/api/Request/GetDetails?number="+n:"/api/Request/GetDetailsById?id="+this.get("SRInstanceId")},parse:function(t){return t.Details||$logger.error(this.getName(),"Request withoud Details!"),t.Details=s(t.Details||""),t.Worklog.IsSuccess==="True"&&(t.Worklog=new n.WorkLogCollection(t.Worklog.Result),t.IsWorklogSuccess=!0,this.get("NeedInProgress")&&(t.UserfriendlyStatus="InProgress")),t}});n.Requests=n.PageableCollection.extend({name:"Entities.Requests",url:"/api/Request/GetList",parse:function(t){var i=f.pick(t,["Count","Requests"]),r=f.pick(t,["SpecialAuthorFilterValues","Authors"]);return this.filters=r,this.requestsExist=t.RequestsExist,n.PageableCollection.prototype.parse.call(this,i)},parseRecords:function(n){return n.Requests},initialize:function(){n.PageableCollection.prototype.initialize.call(this);this.on("collection:setpage",t.Analytics.Requests.requestPageEvent)}});n.RequestFilterModel=n.Model.extend({name:"Entities.RequestFilterModel",validatable:!0,validationUrl:"/api/Request/GetList?filterModel.IncidentSubmitter={filterModel.IncidentSubmitter}&filterModel.IncidentNumber={filterModel.IncidentNumber}&filterModel.IncidentSubmitterAlgorithm={filterModel.IncidentSubmitterAlgorithm}&filterModel.Status={filterModel.Status}&paging.Skip={paging.Skip}&paging.Top={paging.Top}",initialize:function(){n.SupportModelBase.prototype.initialize.call(this)}});n.RequestTypeList=n.Collection.extend({name:"Entities.RequestTypeList",url:"/api/Request/GetRequestTypeList"});e={getRequestEntities:function(t){var i=new n.Requests;return i.fetch(t),i},getRequestFilter:function(t){return new n.RequestFilterModel(t)},getRequestInfo:function(t){return new n.RequestInfoModel(t)},getRequestEntity:function(t){var i=new n.RequestModel({}),r=t.id,u=t.needInProgress||!1;return r.indexOf("SR")!==-1?i.set({SRInstanceId:r,NeedInProgress:u},{silent:!0}):i.set({IncidentNumber:r,NeedInProgress:u},{silent:!0}),i.fetch(),i},getCommentModelInstance:function(){return new n.CommentModel},getCloseRequestInstance:function(t){return new n.CloseRequestModel(t)},getRequestTypeList:function(t){var i=new n.RequestTypeList;return i.fetch(t),i}};t.reqres.setHandler("request:entities",function(n){return e.getRequestEntities(n)});t.reqres.setHandler("request:filter:entity",function(n){return e.getRequestFilter(n)});t.reqres.setHandler("request:info:entity",function(n){return e.getRequestInfo(n)});t.reqres.setHandler("request:entity",function(n){return e.getRequestEntity(n)});t.reqres.setHandler("close:request:model",function(n){return e.getCloseRequestInstance(n)});t.reqres.setHandler("request:comment:instance",function(){return e.getCommentModelInstance()});t.reqres.setHandler("requestTypeList:entities",function(n){return e.getRequestTypeList(n)})});App.module("Entities",function(n,t){"use strict";n.CaInitiate=n.Model.extend({name:"Entities.CaInitiate",url:"/api/Request/CaRequestInitiate"});n.CSRModel=n.RequestModelBase.extend({name:"Entities.CSRModel",url:"/api/Request/CsrRequestSubmit",analyticsRequestType:"CSR",isIgnoreBatch:!0,fileAttribute:"KeyFile",validatable:!0,initialize:function(){n.RequestModelBase.prototype.initialize.call(this)}});n.CAModel=n.SupportModelBase.extend({name:"Entities.CAModel",url:"/api/Request/CAQuestionSubmit",analyticsRequestType:"CA Question",propsNamePath:["request/ca/errorProps/","request/ca/props/"],validatable:!0,stateStoreSettings:{storeId:"CaModel",props:["Summary","Description"]},initialize:function(){n.SupportModelBase.prototype.initialize.call(this)},inputOverflowPropertiesForGa:["Summary"]});n.FeedbackInitiate=n.Model.extend({name:"Entities.FeedbackInitiate",url:"/api/Request/FeedbackInitiate"});n.FeedbackModel=n.SupportModelBase.extend({name:"Entities.FeedbackModel",url:"/api/Request/FeedbackSubmit",propsNamePath:["request/feedback/errorProps/","request/feedback/props/"],analyticsRequestType:"Complaint",validationGlobPath:"request/feedback/errors/",validatable:!0,stateStoreSettings:{storeId:"FeedbackModel",props:["Details"],languageSpecificProps:["TypeId","FeedbackRequest"],nestedModelsProps:{FeedbackRequest:"IncidentNumber"}},initialize:function(){n.SupportModelBase.prototype.initialize.call(this)},inputOverflowPropertiesForGa:[]});t.reqres.setHandler("request:ca:model:instance",function(){return new n.CAModel});t.reqres.setHandler("request:ca:initiate",function(){var t=new n.CaInitiate;return t.fetch(),t});t.reqres.setHandler("request:feedback:model",function(){return new n.FeedbackModel});t.reqres.setHandler("request:feedback:initiate",function(){var t=new n.FeedbackInitiate;return t.fetch(),t});t.reqres.setHandler("request:csr:model",function(){return new n.CSRModel})});App.module("Entities",function(n,t){"use strict";function r(){}n.SupportMSAInitiate=n.Model.extend({name:"Entities.SupportMSAInitiate",url:"/api/Request/MsaSupportRequestInitiate",parse:function(t){return this.parseSupportInfos(t),n.Model.prototype.parse.call(this,t)},parseSupportInfos:function(n){n.SupportInfos||(n.SupportInfos=[]);n.SupportInfos=!n.SupportInfos||n.SupportInfos.IsSuccess!=="True"?[]:n.SupportInfos.Result;n.SupportInfos.forEach(function(t){t&&(t.ProductIds||(t.ProductIds=[]),t.Left=t.Left&&t.Left>0?t.Left:0,t.isExpired=t.IsLimitedYes&&!t.Left,t.isCriticalIncidentBoxEnabled=!n.CriticalIncidentBoxDisabledForUser&&t.CriticalIncidentBoxEnabledForContract)})}});n.SupportTAInitiate=n.Model.extend({name:"Entities.SupportTAInitiate",url:"/api/Request/TaSupportRequestInitiate"});n.SupportInitiate=n.Model.extend({name:"Entities.SupportInitiate",url:"/api/Request/TechSupportRequestInitiate"});n.SupportModel=n.SupportModelBase.extend({name:"Entities.SupportModel",url:"/api/Request/TechSupportRequestSubmit",analyticsRequestType:"Tech Support",validatable:!0,stateStoreSettings:{storeId:"SupportModel",props:["Summary","Description"],languageSpecificProps:["ProductType","ProductId","OSVersion","ProductVersion","Type","TypeId"],nestedModelsProps:{ProductType:"Name",Type:"Name"}},initialize:function(){n.SupportModelBase.prototype.initialize.call(this)},onChange:r,inputOverflowPropertiesForGa:["Summary"]});n.SupportTAModel=n.SupportModelBase.extend({name:"Entities.SupportTAModel",url:"/api/Request/TaSupportRequestSubmit",analyticsRequestType:"TA",propsNamePath:["request/support-ta/errorProps/","request/support/errorProps/","request/support/props/"],validatable:!0,stateStoreSettings:{storeId:"SupportTaModel",props:["Summary","Description","NotifyEmails"],languageSpecificProps:["ProductId","OSVersion","ProductVersion","TypeId"]},initialize:function(){this.validationGlobPath=["request/support-ta/errors/",this.validationGlobPath];n.SupportModelBase.prototype.initialize.call(this)},inputOverflowPropertiesForGa:["Summary"]});n.SupportMSAModel=n.SupportModelBase.extend({name:"Entities.SupportMSAModel",url:"/api/Request/MsaSupportRequestSubmit",analyticsRequestType:"MSA",validatable:!0,propsNamePath:["request/support-msa/errorProps/","request/support/errorProps/","request/support/props/"],stateStoreSettings:{storeId:"SupportMsaModel",props:["Summary","Description"],languageSpecificProps:["ProductType","ProductId","OSVersion","ProductVersion","Type","TypeId","ContractSupportLevel"],nestedModelsProps:{ProductType:"Name",Type:"Name"}},initialize:function(){n.SupportModelBase.prototype.initialize.call(this)},onChange:r,inputOverflowPropertiesForGa:["Summary"]});n.KBLinksModel=n.Model.extend({name:"Entities.KBLinksModel",url:"/api/Request/GetKBLinks"});var i={getSupportModelInstance:function(){return new n.SupportModel},getTASupportModelInstance:function(){return new n.SupportTAModel},getMSASupportModelInstance:function(){return new n.SupportMSAModel},getSupportInitiate:function(){var t=new n.SupportInitiate;return t.fetch(),t},getTASupportInitiate:function(){var t=new n.SupportTAInitiate;return t.fetch(),t},getMSASupportInitiate:function(){var t=new n.SupportMSAInitiate;return t.fetch(),t}};t.reqres.setHandler("request:model:instance",function(n){switch(n.Id){case t.requests.support:return i.getSupportModelInstance();case t.requests["support-ta"]:return i.getTASupportModelInstance();case t.requests["support-msa"]:return i.getMSASupportModelInstance();default:return $logger.error("Entities","Wrong SRD Instance Id")}});t.reqres.setHandler("request:initiate",function(n){switch(n.Id){case t.requests.support:return i.getSupportInitiate();case t.requests["support-ta"]:return i.getTASupportInitiate();case t.requests["support-msa"]:return i.getMSASupportInitiate();default:return $logger.error("Entities","Wrong SRD Instance Id")}});t.reqres.setHandler("request:kblinks",function(n){Globalize.cldr.get(["globalize-messages/{bundle}","request/support/kb-links"])&&new t.Components.KBLinks.Controller(n)})});App.module("Entities",function(n,t){"use strict";n.VirlabInitiateModel=n.Model.extend({name:"Entities.VirlabInitiateModel",url:"/api/Request/AmrRequestInitiate"});n.VirlabModel=n.RequestModelBase.extend({name:"Entities.VirlabModel",url:"/api/Request/AmrRequestSubmit",analyticsRequestType:"VirLab",propsNamePath:["request/virlab/errorProps/","request/virlab/props/"],validatable:!0,stateStoreSettings:{storeId:"VirlabModel",props:["NotifyEmails","Description"],languageSpecificProps:["TypeId"]},initialize:function(){this.validationGlobPath=["request/virlab/errors/",this.validationGlobPath];n.RequestModelBase.prototype.initialize.call(this)}});var i={getVirlabInitiate:function(){var t=new n.VirlabInitiateModel;return t.fetch(),t},getVirlabModelInstance:function(){return new n.VirlabModel}};t.reqres.setHandler("virlab:initiate",function(){return i.getVirlabInitiate()});t.reqres.setHandler("request:virlab:instance",function(){return i.getVirlabModelInstance()})});App.module("Entities",function(n,t){"use strict";var i=n.StsModel.extend({name:"Entities.CaptchaModel",url:function(){return t.stsServer.getUrl()+"/api/Captcha/Get"},crossDomain:function(){return t.stsServer.isCrossDomain()},auth:!1,validationUrl:"Entities.CaptchaModel",validatable:!0,initialize:function(){n.StsModel.prototype.initialize.call(this);this.isNecessary=!0},generateNewCaptcha:function(n){this.fetch(n)}}),r=i.extend({url:function(){return t.stsServer.getUrl()+"/api/Captcha/GetForLogin"},initialize:function(){i.prototype.initialize.call(this)}});t.reqres.setHandler("captcha:entity",function(n){return new i(null,n)});t.reqres.setHandler("captcha:login:entity",function(n){return new r(null,n)})});App.module("Entities",function(n,t){"use strict";var i="/api/Password/GetPasswordResetLinkStatus",r="/api/User/GetActivateStatus",u=n.StsModel.extend({validatable:!0,auth:"maybe",isIgnoreBatch:!0,initialize:function(){this.url=t.stsServer.getUrl()+this.url;this.unset("url");n.StsModel.prototype.initialize.call(this)},checkLink:function(n){return this.save(null,{success:n.success,error:n.error,validate:!1})}});n.ResetPasswordLinkStatusModel=u.extend({name:"Entities.ResetPasswordLinkStatusModel",validationUrl:i,url:i,validationGlobPath:"suspiciousBehaviorBlocking/errors/"});n.UserActivationLinkStatusModel=u.extend({name:"Entities.UserActivationLinkStatusModel",validationUrl:r,url:r,validationGlobPath:"suspiciousBehaviorBlocking/errors/"})});App.module("Entities",function(n,t,i,r,u,f){"use strict";function e(n,i){n.repeatValidation||n.isServerValidationCallback||!f.keys(i).length||t.Analytics.Security.changePasswordStep2ValidationError(this.analyticsCategory,n,i)}n.PasswordModel=n.StsModel.extend({name:"Entities.PasswordModel",auth:!1,validatable:!0,validationGlobPath:"account/changePass/errors/",initialize:function(i){this.validationUrl=i.url;this.unset("url");n.StsModel.prototype.initialize.call(this);this.url=t.stsServer.getUrl()+i.url},onChange:function(n){n.analyticsInitiate||(t.Analytics.Security.initiatePasswordConfirmationEvent(this.analyticsCategory),n.analyticsInitiate=!0)},onValidationInvalid:e});n.RefreshPasswordModel=n.StsModel.extend({name:"Entities.RefreshPasswordModel",validatable:!0,allowedWithoutTermsOfUse:!0,validationGlobPath:"account/changePass/errors/",validationUrl:"/api/Password/SetExpiredPassword",initialize:function(){n.StsModel.prototype.initialize.call(this);this.url=t.stsServer.getUrl()+this.validationUrl},onChange:function(n){n.analyticsInitiate||(t.Analytics.Security.initiatePasswordConfirmationEvent(this.analyticsCategory),n.analyticsInitiate=!0)},onValidationInvalid:e});n.AccountForgotModel=n.StsModel.extend({name:"Entities.AccountForgotModel",auth:!1,validatable:!0,validationGlobPath:"account/forgot/errors/",validationUrl:"/api/Password/ForgotPassword",crossDomain:function(){return t.stsServer.isCrossDomain()},initialize:function(){n.StsModel.prototype.initialize.call(this);this.url=t.stsServer.getUrl()+this.validationUrl},onChange:function(n){n.analyticsInitiate||(t.Analytics.Security.initiatePasswordRecoveryEvent(),n.analyticsInitiate=!0)},onValidationInvalid:function(n,i){n.isServerValidationCallback||t.Analytics.Security.passwordRecoveryStep1ValidationError(n,i)}});var o={getAccountForgotModel:function(){return new n.AccountForgotModel}};t.reqres.setHandler("account:forgot:model",function(){return o.getAccountForgotModel()})});App.module("Entities",function(n){"use strict";var t=n.StsModel.extend({name:"Entities.TermsOfUseModel",validationUrl:"/api/TermsOfUse/Get",allowedWithoutTermsOfUse:!0}),i=n.StsModel.extend({name:"Entities.TermsOfUseAcceptModel",validationUrl:"/api/TermsOfUse/Accept",allowedWithoutTermsOfUse:!0});n.getTermsOfUse=function(n,i,r){var u=new t;return u.auth=r,u.fetch({data:{country:n,locale:i},processData:!0}),u};n.getAcceptTermsOfUseModel=function(){return new i}});App.module("Entities",function(n,t){"use strict";n.AccountDeleteModel=n.StsModel.extend({name:"Entities.AccountDeleteModel",validatable:!0,validationGlobPath:"suspiciousBehaviorBlocking/errors/",auth:!1,validationUrl:"/api/User/DeleteMyProfile",initialize:function(){n.StsModel.prototype.initialize.call(this)},crossDomain:function(){return t.stsServer.isCrossDomain()}});var i={getAccountDeleteModelInstance:function(t){return new n.AccountDeleteModel(t)}};t.reqres.setHandler("account:delete:model",function(n){return i.getAccountDeleteModelInstance(n)})});App.module("Entities",function(n,t,i,r,u,f){"use strict";n.UserPermissionsModel=n.Model.extend({name:"Entities.UserPermissionsModel",url:"/api/User/UpdatePermissions"});n.UserUpdateModel=n.Model.extend({name:"Entities.UserUpdateModel",url:"/api/User/UpdateProfileDetails",propsNamePath:["profile/personalinfo/errorProps/","profile/personalinfo/props/"],validatable:!0,validationGlobPath:"profile/errors/",initialize:function(){n.Model.prototype.initialize.call(this);this.on("sync",this.onSync)},onSync:function(n){this.analyticsSourceModel=n.toJSON()},onValidationInvalid:function(n,i){t.Analytics.Users.manageUserPersonalDataValidationError(n,i)},inputOverflowPropertiesForGa:["FirstName","LastName","Organization"],onInputOverflow:function(n){t.Analytics.Users.manageUserPersonalDataOverflowError(this,n)}});n.UserShowModel=n.Model.extend({name:"Entities.UserShowModel",url:function(){return"/api/User/GetDetails?ofUsername="+this.get("Username")},parse:function(n){return f.isObject(n)?{CompanyId:n.CompanyId,CompanyName:n.CompanyName,Country:n.CountryCode,Email:n.Email,FirstName:f.unescape(n.FirstName),LastName:f.unescape(n.LastName),Organization:f.unescape(n.Organization),Permissions:n.Permissions,Role:n.Role,OfUsername:this.attributes.Username}:undefined},getPermissionModel:function(){var t=f.extend(this.attributes.Permissions,{OfUsername:this.attributes.Username});return new n.UserPermissionsModel(t)}});n.ProfileUpdateModel=n.Model.extend({name:"Entities.ProfileUpdateModel",url:"/api/Account/UpdateMyProfile",propsNamePath:["profile/personalinfo/errorProps/","profile/personalinfo/props/"],validatable:!0,validationGlobPath:"profile/errors/",initialize:function(){n.Model.prototype.initialize.call(this);this.on("sync",this.onSync)},onSync:function(n){this.analyticsSourceModel=n.toJSON()},onValidationInvalid:function(n,i){t.Analytics.Users.profileValidationError(n,i)},inputOverflowPropertiesForGa:["FirstName","LastName","Organization"],onInputOverflow:function(n){t.Analytics.Users.profileOverflowError(this,n)}});n.ProfileModel=n.Model.extend({name:"Entities.ProfileModel",url:"/api/Account/UserInfo",parse:function(n){return f.isObject(n)?{CompanyId:n.CompanyId,CompanyLogo:n.CompanyLogo,CompanyName:n.CompanyName,Country:n.CountryCode,Email:n.Email,FirstName:f.unescape(n.FirstName),LastName:f.unescape(n.LastName),Login:n.Login,Organization:f.unescape(n.Organization),Role:n.Role,Language:n.Language,Filial:n.Organization}:undefined}});n.UserUserInfoResetPasswordModel=n.Model.extend({name:"Entities.UserUserInfoResetPasswordModel",url:"/api/user/ResetPassword"});n.UserDeleteModel=n.Model.extend({name:"Entities.UserDeleteModel",url:"/api/User/DeleteProfile"});n.UserCollection=n.PageableCollection.extend({name:"Entities.UserCollection",url:"/api/Company/GetUserList",initialize:function(){n.PageableCollection.prototype.initialize.call(this);this.on("collection:setpage",t.Analytics.Users.userListPageEvent)},parse:function(t){var i=f.pick(t,["Count","Items"]),r=f.pick(t,["Organizations","Countries"]);return this.filters=r,n.PageableCollection.prototype.parse.call(this,i)}});n.UserFilterModel=n.Model.extend({name:"Entities.UserFilterModel",defaults:{countryFilter:"",organizationFilter:""}});n.SendInvitationModel=n.Model.extend({name:"Entities.SendInvitationModel",validatable:!0,url:"/api/User/InviteForRegisterUserSubmit",validationGlobPath:"user/invite/errors/",initialize:function(){n.Model.prototype.initialize.call(this)},onValidationInvalid:function(n,i){n.isServerValidationCallback||t.Analytics.Invite.sendInvitationValidationErrorEvent(n,i)},attributeNames:{email:"OfUsername"},getEmail:function(){return this.get(this.attributeNames.email)},setEmail:function(n,t){return this.set(this.attributeNames.email,n,t)},clearEmail:function(){return this.set(this.attributeNames.email,undefined,{unset:!0})}});var e={getUserShowModel:function(t){var i=new n.UserShowModel;return i.set("Username",t.Username),i.fetch(),i},getUserUpdateModel:function(){return new n.UserUpdateModel},getProfileModel:function(t){var i=new n.ProfileModel;return i.fetch(t),i},getProfileUpdateModel:function(){return new n.ProfileUpdateModel},getUserEntities:function(t){var i=new n.UserCollection;return i.fetch(t),i},getUserFilterEntity:function(t){var i;return i=t?{country:t.countryFilter,organization:t.organization||t.filterOrganizationAlgorithm,sort:t.sort}:{},new n.UserFilterModel(i)},getUserUserInfoResetPasswordModelInstance:function(t){return new n.UserUserInfoResetPasswordModel({OfUsername:t.Username})},getUserDeleteModelInstance:function(t){return new n.UserDeleteModel({OfUsername:t.Username})},getSendInvitationModel:function(t){return new n.SendInvitationModel(t)}};t.reqres.setHandler("user:entities",function(n){return e.getUserEntities(n)});t.reqres.setHandler("user:show:entity",function(n){return e.getUserShowModel(n)});t.reqres.setHandler("user:update:entity",function(n){return e.getUserUpdateModel(n)});t.reqres.setHandler("profile:entity",function(n){return e.getProfileModel(n)});t.reqres.setHandler("profile:update:entity",function(){return e.getProfileUpdateModel()});t.reqres.setHandler("user:filter:entity",function(n){return e.getUserFilterEntity(n)});t.reqres.setHandler("userUserInfo:reset:password:model:instance",function(n){return e.getUserUserInfoResetPasswordModelInstance(n)});t.reqres.setHandler("user:remove:model:instance",function(n){return e.getUserDeleteModelInstance(n)});t.reqres.setHandler("invitation:send:model",function(n){return e.getSendInvitationModel(n)})});App.module("Entities",function(n,t){"use strict";n.UserInfoResetPasswordModel=n.Model.extend({name:"Entities.UserInfoResetPasswordModel",url:"/api/Account/ResetMyPassword"});n.ProfileDeleteModel=n.Model.extend({name:"Entities.ProfileDeleteModel",url:"/api/Account/DeleteMyProfileInitiate"});n.CompanyDeleteModel=n.Model.extend({name:"Entities.CompanyDeleteModel",url:"/api/Company/DeleteInitiate"});var i={getUserInfoResetPasswordModelInstance:function(){return new n.UserInfoResetPasswordModel},getProfileDeleteModelInstance:function(){return new n.ProfileDeleteModel},getCompanyDeleteModelInstance:function(){return new n.CompanyDeleteModel}};t.reqres.setHandler("userInfo:reset:password:model:instance",function(){return i.getUserInfoResetPasswordModelInstance()});t.reqres.setHandler("profile:remove:model:instance",function(){return i.getProfileDeleteModelInstance()});t.reqres.setHandler("company:remove:model:instance",function(){return i.getCompanyDeleteModelInstance()})});App.module("Entities.Validation",function(n,t,i,r,u,f){"use strict";var e=function(n,i,r){var u;return!r.Password||!n?undefined:(u=this.validationContext||{},u.input&&u.valid)?undefined:(this.repeatValidation||(this.repeatValidation=!0,this.validate(!1,{noDelay:!0}),delete this.repeatValidation),r.Password&&r.ConfirmPassword&&r.Password!==r.ConfirmPassword)?t.glob(this.validationGlobPath+"ConfirmPassword.EqualRule"):undefined},o=[{url:"/api/Account/Register",properties:[{propertyName:"ActivationCode",rules:[{fn:function(n,i,r){var u=Globalize.cldr.get(["globalize-messages/{bundle}","account/create"]),f=!!u.activationCodeOptional;return!f&&!r.KeyFile&&!n&&!this._fromInput?t.glob("account/create/errors/ActCodeOrKeyFileRequired"):undefined}},]},]},{url:["/api/Password/ResetPassword","/api/User/Activate","/api/Password/SetExpiredPassword"],properties:[{propertyName:"Password",rules:[{fn:e},]},{propertyName:"ConfirmPassword",rules:[function(n,i){return{RequiredRule:!0,msg:t.glob(i+"ConfirmPassword.RequiredRule")}},function(n){return n.Password&&n.Password.length?f.find(n.Password,function(n){return n.MaxByteLengthRule}):undefined},{fn:e},]},]},{url:"Entities.AccountLoginModel",properties:[{propertyName:"authError",rules:[{fn:function(n){return n||undefined}},]},{propertyName:"password",rules:[function(){return{MaxByteLengthRule:{ByteLength:t.passMaxByteLength},msg:t.glob("account/changePass/errors/Password.MaxByteLengthRule")}},]},]},{url:"Entities.CaptchaModel",properties:[{propertyName:"captcha",rules:[{fn:function(n,r,u){if(!this.isNecessary)return undefined;var e=i.Validation.validators.required(n,r,u,this),f=this.validationContext||{};return f&&(f.input||f.blur)?undefined:e?t.glob("captcha/errors/CaptchaIsRequired"):undefined}},function(){return{MaxLengthRule:{Length:t.captchaLength}}},]},]},{url:"/api/License/Add",properties:[{propertyName:"ActivationCodeOrFileRequired",rules:[{fn:function(n,i,r){return!this.isServerValidationCallback&&!r.KeyFile&&!r.ActivationCode?t.glob("license/add/errors/ActCodeOrKeyFileRequired"):undefined}},]},]},{url:["/api/Request/TechSupportRequestSubmit","/api/Request/MsaSupportRequestSubmit"],properties:[{propertyName:"ProductType",rules:[{RequiredRule:!0},]},{propertyName:"Type",rules:[{RequiredRule:!0},]},]},];n.getClientSettings=function(n){var t=f.filter(o,function(t){return t.url===n||f.isArray(t.url)&&t.url.indexOf(n)!==-1});return f.flatten(f.pluck(t,"properties"))}});App.module("Entities.Validation",function(n,t,i,r,u,f){"use strict";function o(t,i,r){var u=t;return!u||!i||!i.length||!r?u:r===n.forbiddenStringLocations.all?e.removeAll(u,i):(r&n.forbiddenStringLocations.start&&(u=e.trimStart(u,i)),r&n.forbiddenStringLocations.end&&(u=e.trimEnd(u,i)),r&n.forbiddenStringLocations.middle&&(u=e.removeFromMiddle(u,i)),u)}var e=t.module("Utils.String");n.forbiddenStringLocations={nowhere:0,start:1,middle:2,end:4,all:7};n.ForbiddenCharsHandler=function(t,i,r){var u=i?f.flatten([i]):[];u.push({chars:"\\s",location:n.forbiddenStringLocations.start|n.forbiddenStringLocations.end,doNotDisplay:r});this.handle=function(n,i){var r=n,f=!1;return u.forEach(function(n){r=o(r,n.chars,n.location);f=f||n.doNotDisplay}),!i&&f&&r!==n&&t.setValuePreservingCursor(r),r}}});App.module("Entities.Validation",function(n,t,i,r,u,f){"use strict";var o=t.module("Utils.String"),s=["MaxLengthRule","MaxByteLengthRule","TextMaxLengthLimitRule"],h=function(n,t){var i=n.validation[t];return f.isArray(i)?f.find(i,function(n){return f.any(s,function(t){return n[t]})}):null},e=function(n,t){var i=n.val(),r=n[0].selectionStart||0,u=n[0].selectionEnd||0;return i.substring(0,r)+t+i.substring(u,i.length)},c=function(n,t){var i=n.clone(),r=i.val(t).val();return i.remove(),r},l=function(n){var t=n.overflowHandlerSettings||{},i;return t.trimSpaces=n.trimSpaces,t.forbiddenCharsHandler=n.forbiddenCharsHandler,i=n.view?n.view.overflowHandlerSettings||{}:{},f.extend(i,t)};n.lengthValidationInputHandler=function(n,t,r,s){var v=r.observe,b=l(r),w=h(n,v),it,rt,ut;if(w){var k=f.first(f.keys(w)),d=i.Validation.validators[k],y=w[k];if(s.type==="paste"){if(t[0]!==document.activeElement){s.preventDefault();s.stopPropagation();return}var ft=s.originalEvent.clipboardData||window.clipboardData,g=ft.getData("Text"),p=g;b.forbiddenCharsHandler&&(p=b.forbiddenCharsHandler.handle(p,!0));b.trimSpaces&&(p=u.trim(p));var nt=p!==g,et=e(t,p),a=c(t,et),tt=d(a,v,y,n);tt&&(y.Length?a=a.substring(0,y.Length):y.ByteLength&&(a=o.trancateByByteLength(a,y.ByteLength)),nt=!0);nt&&(t.val(a),n.set(v,a),t.trigger("input"),s.preventDefault(),s.stopPropagation());tt&&n.inputOverflow({rule:w,attribute:v,showModal:!0})}else{if(it=s.ctrlKey||s.metaKey,rt=[99,67,118,86],s.which<32||it&&f.contains(rt,s.which))return;ut=d(e(t,s.key||"0"),v,y,n);ut&&(n.inputOverflow({rule:w,attribute:v,showModal:!1}),s.preventDefault(),s.stopPropagation())}}}});App.module("Entities.Validation",function(n,t,i,r,u,f){"use strict";var e=[],o=[];n.getDtoServerSettings=function(n){return f.findWhere(e,{url:n})};n.addDtoServerSettings=function(n){e=e.concat(n)};n.getFileServerSettings=function(n){return f.findWhere(o,{url:n})};n.addFileServerSettings=function(n){o=o.concat(n)};n.isStsValidationLoaded=!1});App.module("Entities.Validation",function(n,t,i,r,u,f){"use strict";var h=t.module("Utils.String"),c=t.module("Utils.Regex"),s=function(n,t,i){if(!n||!f.isString(n))return undefined;i.TrimWhiteSpaces&&(n=n.replace(/\s/,""));var r=i.ByteLength,u=h.getUtf8Length(n);return u>r?!0:undefined},e=function(n){return new RegExp(n.Pattern,c.mapRegexOptions(n.RegexOptions))},o={MultiEmailRule:function(n,t,i,r){var u;if(!n)return!1;if(u=r.validationContext||{},u.input&&u.valid)return undefined;if(!f.isString(n))return!0;var o=n.split(i.Separator),s=e(i),h=f.any(o,function(n){return n&&!s.test(n.trim())});return h===!0?!0:undefined},EmailRule:function(n,t,i,r){var u=r.validationContext||{};return u.input&&u.valid?undefined:n&&!e(i).test(n.trim())?!0:undefined},RegularExpressionRule:function(n,t,i){return n&&!e(i).test(n)?!0:undefined},RequiredRule:function(n,t,r,u){var e=i.Validation.validators.required(n,t,r,u),f=u.validationContext||{};return f.input||f.blur?undefined:e},MaxByteLengthRule:s,PasswordRule:function(n,t,i,r){var f=r.validationContext||{},u;return f.input?undefined:(u=e(i),n&&!u.test(n))?!0:undefined},MaxLengthRule:function(n,t,i){if(!n||!f.isString(n)&&!f.isArray(n))return undefined;var r=+i.Length;return n.length>r?!0:undefined},MinLengthRule:function(n,t,i,r){var e=r.validationContext||{},u;return e.input?undefined:!n||!f.isString(n)?undefined:(u=+i.Length,n.length<u)?!0:undefined},RangeRule:function(n,t,i){return f.isNumber(n)?n>=i.Minimum&&n<=i.Maximum:undefined},StringLengthRule:function(n,t,i){var r=n.length;return r>i.MaxLength||n.length<i.MinLength?!0:undefined},NotEqualToRule:function(n,t,i,r){var e=i.OtherProperty.split("."),u=r;return(f.each(e,function(n){u=u.get?u.get(n):u[n]}),n===u)?!0:undefined},FromListRule:function(n,t,i,r){var u=f.find(i.Items,function(t){return t.indexOf(n)!==-1});return u?(r.set(t,u),undefined):!0},TextMaxLengthLimitRule:s,ActivationCodeRule:function(n,t,i,r){var f=r.validationContext||{},u;return f.input||!n||/^[-_]*$/gi.test(n)?undefined:(u=e(i),!u.exec(n))?!0:undefined},HttpFileCountRule:function(n,t,i){return n?f.isArray(n)&&n.langth>i.MaxCount?!0:undefined:undefined},HttpFileSizeRule:function(n,t,i){return!n||n.size<=i.MaxSize?undefined:!0},HttpFileAgreementRule:function(){},NoNewlineRule:function(){},NoSpacesRule:function(){},StorageFileAgreementRule:function(){},NonEmptyFileRule:function(n){return!n||n.size<=1?!0:undefined},KeyFileRule:function(){},RequiredOrRule:function(){},LogoFileNameRule:function(n){if(!n||!n.name)return undefined;var i=f.last(n.name.split(".")).toLowerCase(),r=t.logo.fileNameExtensions,u=f.any(r,function(n){return n.trim().toLowerCase()===i});return u?undefined:!0},ImageContentRule:function(){},CaptchaRule:function(n,t,r,u,f){return r.Optional&&f[r.HashProperty]&&i.Validation.validators.required(n,t,r,u)?!0:undefined},ServerRule:function(n,i,r,u){var e,o,s;return u.isServerValidationCallback?(u._ServerValidationResult=u._ServerValidationResult||{},u._ServerValidationResultForAnalytics=u._ServerValidationResultForAnalytics||{},e=u._ServerValidationResult[i],e)?(u._ServerValidationResultForAnalytics[i]=u._ServerValidationResult[i],o=i+"."+e.name,s=t.globPure(f.first(r.globPath)+o,e.options),$logger.warn(u.getName(),"Server validation: "+o),f.isString(s))?s:t.globPure("errors/server-validation",{property:i,rule:e.name}):undefined:(u._ServerValidationResult&&delete u._ServerValidationResult[i],undefined)}};f.each(f.keys(o),function(n){var t=o[n],i=function(i,r,u,f,e){var o=t.call(this,i,r,u,f,e);return f.setValidationState(n,r,o),o};o[n]=i});f.extend(i.Validation.validators,o)});App.module("Localization.Loader",function(n,t,i,r,u){"use strict";var f={};n.load=function(n){var i=f[n],e,r;return i?i:(e=t.request("settings:entity").get("language").value,r=t.localization.LanguageBundles[e][n],i=u.get(r).then(function(n){return n}).then(Globalize.load).catch(function(n){return console.error("Error while loading the localization file "+r,n),n}),f[n]=i,i)}});App.module("Localization.Settings",function(n,t,i,r,u,f){"use strict";function o(n){return n.split(/[-_;]+/)[0]}function c(n){var i=f.find(t.availableLanguages,function(t){return t.indexOf(n)!==-1});return(i||t.availableLanguages[0]).trim()}function v(){return o(t.defaultLanguage)}function s(n){return f.findWhere(t.supportedLanguages,{value:n})}function h(){return s(v())}function l(n){return s(n)||h()}var e,a;n.SupportedLanguageCollection=t.Entities.Collection.extend({initialize:function(){this.add(t.supportedLanguages)}});n.LanguageModel=t.Entities.Model.extend({name:"Localization.Settings.LanguageModel",url:"/api/Account/UpdateLanguage",save:function(){t.request("auth:isAuthorized")&&t.Entities.Model.prototype.save.apply(this,arguments)}});n.SettingsModel=t.Entities.Model.extend({name:"Localization.Settings.SettingsModel",initialize:function(){this.listenTo(this,"change:language",this.onLanguageChange)},findLang:l,saveLang:function(){this.get("language")&&(sessionStorage.language=JSON.stringify(this.get("language")))},changeLang:function(n,t){t=t||{};var i=l(n);this.set({language:i},{silent:!!t&&!!t.noRequest});this.saveLang()},onLanguageChange:function(){if($logger.info(this.name,"Language was changed. Clearing broadcast cache."),t.execute("clear:broadcast"),t.request("auth:isAuthorized")){var i=t.request("auth:entity"),r=this.get("language").value,u=new n.LanguageModel({language:c(r)});u.save(null,{success:function(n){var r=o(n.get("language"));this.changeLang(r,{noRequest:!0});t.AuthInfo.set({language:r});i.set({language:r});StorageQueue.put("save-store");StorageQueue.put("lang-changed");$logger.info(this.name,"User's language was saved. Reloading the page.");t.execute("page:reload")}.bind(this),error:function(n,i){t.Analytics.Interaction.languageError(i);this.trigger("language:save:error",i);this.set({language:""},{silent:!0})}.bind(this)})}else this.saveLang(),$logger.info(this.name,"Language was saved. Reloading the page."),t.execute("page:reload")}});a={getLocalLanguage:function(){var r=sessionStorage.language,n,i,u;return r?JSON.parse(r):(n=t.clientLanguagePreferences,i=n&&n.length?n:window.navigator.languages||[window.navigator.language||window.navigator.userLanguage],i.length)?(u=o(i[0]),s(u)||h()):h()},getSettingsEntity:function(){if(!e){var t=new n.SettingsModel,i=this.getLocalLanguage();t.set({language:i,locale:c(i.value)},{silent:!0});e=t}return e}};t.reqres.setHandler("settings:entity",function(n){return a.getSettingsEntity(n)});t.reqres.setHandler("settings:set:supportedLanguages",function(n){t.supportedLanguages=n})});App.module("Analytics.Common",function(n,t,i,r,u,f){"use strict";var c=t.module("Utils.String"),o,e,s,h;n.enableTracking=function(){window.enableGoogleTagManager&&window.enableGoogleTagManager();window.enableGoogleAnalytics&&window.enableGoogleAnalytics()};n.enableTracking();n.eventCategories={LICENSES:"Licenses",SIGN_IN:"Sign in",REGISTRATION:"Registration",PASSWORD_RECOVERY:"Password recovery",HEADER:"Header",FOOTER:"Footer",NEW_REQUEST:"New request",BANNER:"Banner",BROADCAST:"Broadcast",REQUESTS:"Requests",CONTRACTS:"Contracts",USERS:"Users",PROFILE:"Profile",ERRORS:"Errors",MANAGE_USERS:"Manage users",INVITE_USER:"Invite new user",REQUESTS_SEARCH:"Requests search",HELP:"Help",GDPR:"GDPR"};n.isEnable=function(){return window.ga&&ga.loaded};n.sendEvent=function(n,t,i,r,u,f){window.dataLayer&&(window.dataLayer.push({event:["00-formFields","01-formFields","02-formFields","03-formFields"].indexOf(i)!==-1?"autoEvent":"CAevent","Event Category":n,"Event Action":t,"Event Label":i,"Event Value":r,nonInteraction:u?"true":"false"}),$logger.info("Analytics.Common.sendEvent",c.toJSON({category:n,action:t,label:i,value:r,nonInteraction:u})));f&&typeof f=="function"&&f()};o={TypeId:"Subtype"};e=function(n){return o[n]?o[n]:n.replace(/([A-Z])/g," $1").trim()};n.getErrorCodeLabel=function(t,i,r){var u;if(t&&t.responseJSON&&t.responseJSON.Code)return(u=t.responseJSON.Code.replace("Rule","").trim(),i&&(u==="UnknownError"||u==="UnexpectedError"||u==="UnexpectedException"||u==="NotMainUser"||u==="RemoteClientConfigurationException"||u==="RemoteClientNetworkException"||u==="RemoteClientPerformanceException"||u==="RemoteClientUnexpectedException"||u==="WebUnknownError"||u==="IssLicenseNotFound"||u==="Failure"))?(n.sendEvent(i,"Unknown error",r,null,!0),null):e(u);if(t&&t.responseJSON&&t.responseJSON.ModelState&&Object.keys(t.responseJSON.ModelState).length){var o=Object.keys(t.responseJSON.ModelState)[0],s=f.first(t.responseJSON.ModelState[o]),h=f.first(s.split("|")).replace("Rule","").trim();return e(h)}return null};n.responseErrorEvent=function(t,i,r,u,f,e){var o=n.getErrorCodeLabel(r,f||t,u||i);o&&n.sendEvent(t,i+" | Error",o,null,e===undefined?!0:e)};s=function(n,t,i){var r=n.replace("Rule",""),u;return r!==t?(u=e(r).replace(i,"").trim(),i+" "+u):i};h=function(n){return n&&(f.keys(n).length!==1||!n.ServerRule)};n.getValidationErrorLabels=function(n,t){var i=f.map(Object.keys(t),function(i){var u=n.validation[i],o=n._ServerValidationResultForAnalytics?n._ServerValidationResultForAnalytics[i]:null,r=e(i);return h(u)?f.each(u,function(n){if(typeof n!="function"&&n.msg===t[i]){var u=Object.keys(n);r=s(u[0],i,r)}}):o&&(r=s(o.name,i,r)),r});return i.length?i:["UI GA Parse Validation Error"]};n.getLocation=function(n){var i=new RegExp(["^(https?:)//","(([^:/?#]*)(?::([0-9]+))?)","(/[^?#]*)","(\\?[^#]*|)","(#.*|)$",].join("")),t=n.match(i);return t&&{protocol:t[1],host:t[2],hostname:t[3],port:t[4],path:t[5],search:t[6],hash:t[7]}};n.addLanguageToUrl=function(i){var r=n.getLocation(i),u=t.availableLanguages?t.request("settings:entity").get("language").value:"";return r&&r.path?"/"+u+r.path:"/"+u+i};n.getCurrentUrl=function(){return n.addLanguageToUrl(window.location.href)}});App.module("Analytics.Interaction",function(n,t,i,r,u,f){"use strict";function a(n){e.sendEvent(e.eventCategories.GDPR,"Banner | "+n)}var e=t.module("Analytics.Common"),s=t.module("Analytics.Requests"),o={},c=null,l=null,h;o.pageView=function(n,t){var i;e.isEnable()&&(n=n?e.addLanguageToUrl(n):e.getCurrentUrl(),i="Page: "+n+", Title: "+t,i!==c&&(c=i))};o.headerClick=function(n){e.sendEvent(e.eventCategories.HEADER,n+" | click",e.getCurrentUrl(),null,!1);n==="New request"&&t.AuthInfo.isTA()&&e.sendEvent(e.eventCategories.NEW_REQUEST,"TA | Pick",null,null,!1)};o.languageError=function(n){e.responseErrorEvent(e.eventCategories.FOOTER,"Language",n)};o.footerClick=function(n,t){e.sendEvent(e.eventCategories.FOOTER,n+" | click",e.getCurrentUrl(),null,!0,function(){t&&t.href&&t.target==="_blank"?window.open(t.href,"_blank"):t&&t.href&&(document.location=t.href)})};o.footerLanguageSelectEvent=function(n,t){e.sendEvent(e.eventCategories.FOOTER,"Language | select",n+" | "+e.getCurrentUrl(),null,!0,t)};o.error404Event=function(){e.sendEvent(e.eventCategories.ERRORS,"404 error",e.getCurrentUrl(),null,!0)};o.error500Event=function(){e.sendEvent(e.eventCategories.ERRORS,"500 error",e.getCurrentUrl(),null,!0)};o.fileNotFoundError=function(){var n=e.getLocation(document.referrer),t;n&&n.path&&(t=n.path?n.path.split("/"):[],t.length>1&&(t[1]==="request"&&e.sendEvent(e.eventCategories.REQUESTS,"Unknown error","Download file",null,!0),t[1]==="document"&&e.sendEvent(e.eventCategories.CONTRACTS,"Unknown error","Download contract list",null,!0)))};o.viewAccountCreateSuccess=function(){n.pageView("/virtual/account/create/success","Activation link was sent to email")};o.viewAccountForgotSuccess=function(){n.pageView("/virtual/account/forgot/success","Instructions were sent via email")};o.viewResetPasswordSuccess=function(t){switch(t){case e.eventCategories.PASSWORD_RECOVERY:n.pageView("/virtual/account/resetpassword/success","Password was changed");break;case e.eventCategories.REGISTRATION:n.pageView("/virtual/account/activate/success","Account was activated")}};o.pageViewRequestSubmitSuccess=function(t){var i=s.getRequestType(t);switch(i){case s.requestTypes.TechSupport:n.pageView("/virtual/request/submit/support","Request to technical support was sent");break;case s.requestTypes.MSA:n.pageView("/virtual/request/submit/support-msa","MSA request to technical support was sent");break;case s.requestTypes.TA:n.pageView("/virtual/request/submit/support-ta","TA request to technical support was sent");break;case s.requestTypes.VirLab:n.pageView("/virtual/request/submit/virlab","Request to virlab was sent");break;case s.requestTypes.CSR:n.pageView("/virtual/request/submit/csr","CSR request to technical support was sent");break;case s.requestTypes.CAQuestion:n.pageView("/virtual/request/submit/ca","Question about CA was sent");break;case s.requestTypes.Complaint:n.pageView("/virtual/request/submit/feedback","Feedback was sent")}};h=function(n,t){var i=t+" | "+e.getCurrentUrl(),r="Action: "+n+", Label: "+i;l!==r&&(l=r,e.sendEvent(e.eventCategories.BROADCAST,n,i,null,!0))};o.viewOpenedBroadcastEvent=function(n){h("View | Opened",n)};o.viewHiddenBroadcastEvent=function(n){h("View | Hidden",n)};o.hideBroadcastEvent=function(n){h("Hide",n)};o.closeBroadcastEvent=function(n){h("Close",n)};o.openBroadcastEvent=function(n){h("Open",n)};o.broadcastLinkClick=function(n){var t=u(n).closest("div.broadcast").find(".header").text();e.sendEvent(e.eventCategories.BROADCAST,"Broadcast | Link | Click",t+" | "+n.href,null,!0,function(){var t=u(n).attr("target");t!=="_blank"&&n&&n.href&&(document.location=n.href)})};o.bannerShowEvent=function(){a("View")};o.bannerCloseEvent=function(){a("Click")};Interceptor.wrapMethods(o);f.extend(n,o)});App.module("Analytics.Invite",function(n,t,i,r,u,f){"use strict";var e=t.module("Analytics.Common"),o={},a="Send invitation",h=function(n,t,i){e.sendEvent(e.eventCategories.INVITE_USER,a+" | "+n,t||null,null,i||!1)},v,y,c,p,l,s;o.trySendInvitationEvent=function(){h("Try")};o.invitationSuccessfullySentEvent=function(){h("Success")};v={"Of Username Required":"Email required","Of Username Email":"Email"};y=function(n){return f.map(n,function(n){return v[n]||n})};o.sendInvitationErrorEvent=function(n){var t=e.getErrorCodeLabel(n,e.eventCategories.INVITE_USER,a);t&&h("Error",t)};o.sendInvitationValidationErrorEvent=function(n,t){var i=e.getValidationErrorLabels(n,t);i=y(i);h("Error",i.join(" | "))};o.openRequestFormFromErrorWindowEvent=function(){h("Error","Open request form")};c="Accept invitation";p=function(n,t){e.sendEvent(e.eventCategories.INVITE_USER,c+" | "+n,t||null,null,!0)};o.acceptInvitationErrorEvent=function(n){var t=e.getErrorCodeLabel(n,e.eventCategories.INVITE_USER,c);t&&p("Error",t)};l="Registration | Step 1";s=function(n,t,i){var r=l+(n?" | "+n:"");e.sendEvent(e.eventCategories.INVITE_USER,r,t||null,null,i===undefined?!0:i)};o.openInvitationRegistrationEvent=function(){s("Open")};o.initiateInvitationRegistrationEvent=function(){s("Initiate")};o.tryInvitationRegistrationEvent=function(){s("Try",null,!1)};o.successInvitationRegistrationEvent=function(){s("Success",null,!1)};o.invitationRegistrationErrorEvent=function(n){var t=e.getErrorCodeLabel(n,e.eventCategories.INVITE_USER,l);t&&s("Error",t,!1)};o.invitationRegistrationValidationErrorEvent=function(n,t){var i=e.getValidationErrorLabels(n,t);s("Error",i.join(" | "),!1)};o.invitationRegistrationInputOverflowEvent=function(n,t){s(null,e.getValidationErrorLabels(n,t).join(" | "),!1)};Interceptor.wrapMethods(o);f.extend(n,o)});App.module("Analytics.Licenses",function(n,t,i,r,u,f){"use strict";var s=t.module("Analytics.Common"),e={},o=function(n,t,i){s.sendEvent(s.eventCategories.LICENSES,n,t,null,i===undefined?!0:i)},h;e.initiateLicenseAddEvent=function(n){o("Add license | Initiate | "+(n?"Key file":"Code"))};e.successLicenseAddEvent=function(n){n&&o("Add license | Success | "+(n.isKeyFile?"Key file":"Code"),n.isUserMoved?"Success User Moved":"License added")};h=function(n,t){s.responseErrorEvent(s.eventCategories.LICENSES,t,n)};e.licenseAddError=function(n){h(n,"Add license")};e.licenseAddValidationError=function(n,t){o("Add license | Error",s.getValidationErrorLabels(n,t).join(" | "))};e.licenseListError=function(n){h(n,"License list")};e.licenseApplicationListError=function(n){h(n,"Application list")};e.licenseDeleteError=function(n){h(n,"Delete license")};e.licenseApplicationClickEvent=function(n){var t=s.getLocation(n.href),i,r;t&&t.path&&(i=t.path.split("/"),r=i[1]?i[1]:"Unknown",o("License | "+r+" KB",null,!1))};e.licensesListFilteredEvent=function(n){o("License | Filter",n)};e.licensesListSortedEvent=function(n){o("License | Sort",n?"Descending":"Ascending")};e.licenseDeletedEvent=function(n){o("License | Delete",n)};e.licenseShowedEvent=function(n){o("License | Show",n)};e.showApplicationListEvent=function(){o("Application list")};Interceptor.wrapMethods(e);f.extend(n,e)});App.module("Analytics.Requests",function(n,t,i,r,u,f){"use strict";function tt(n,t){return f.find(n||[],function(n){return n.Id===t})}function it(n,t,i){var r=n.get(t);if(typeof r=="object"&&typeof r.get=="function"&&(r=r.get("Name")),i&&typeof i.get=="function")switch(t){case"ProductId":r=(tt(i.get("Products"),r)||{}).Name||r;break;case"TypeId":r=(tt(i.get("ProductSubtypes"),r)||{}).SubtypeName||r}return r}function s(n,t){return nt.map(function(i){return it(n,i,t)}).filter(Boolean).join(" | ")}function rt(n,t,i,r){i&&Object.keys(r).map(function(n){return g[n]}).filter(Boolean).forEach(function(i){e.sendEvent(n,t,i)})}var e=t.module("Analytics.Common"),y=t.module("Constants.Requests"),ct="Analytics.Requests",o={},g={ProductType:"00-Protection Scope",ProductId:"01-Product",ProductVersion:"02-Product version",Type:"03-Request type",TypeId:"04-Request subtype",Summary:"05-Subject",Description:"06-Description"},nt=["ProductType","ProductId","ProductVersion","Type","TypeId",],b,k,p,d,l,ht,a,v;n.requestTypes={TechSupport:"Tech Support",MSA:"MSA",TA:"TA",VirLab:"VirLab",CSR:"CSR",CAQuestion:"CA Question",Complaint:"Complaint"};o.getRequestType=function(n){return n&&n.analyticsRequestType?n.analyticsRequestType:null};o.newRequestPick=function(t){var i;switch(t){case"request:create:support":i=n.requestTypes.TechSupport;break;case"request:create:support-ta":i=n.requestTypes.TA;break;case"request:create:support-msa":i=n.requestTypes.MSA;break;case"request:create:virlab":i=n.requestTypes.VirLab;break;case"request:create:csr":i=n.requestTypes.CSR;break;case"request:create:ca":i=n.requestTypes.CAQuestion;break;case"request:create:feedback":i=n.requestTypes.Complaint;break;default:i="Unknown Request"}i&&e.sendEvent(e.eventCategories.NEW_REQUEST,i+" | Pick",null,null,!0)};var ut="Request | Send answer",c=function(n){return n===ut?e.eventCategories.REQUESTS:e.eventCategories.NEW_REQUEST},ft=function(t,i,r){var u=[],e,o,s,h,c,l,a;if(i===n.requestTypes.TechSupport||i===n.requestTypes.TA||i===n.requestTypes.MSA)e=t.get("ProductType"),e&&u.push(e.get("Name")),o=t.get("ProductId"),s=r.get("Products"),o&&s&&(h=f.find(s,function(n){return n.Id===o}),h&&u.push(h.Name)),c=t.get("ProductVersion"),c&&u.push(c),l=t.get("OSVersion"),l&&u.push(l);else if(i===n.requestTypes.VirLab){a=t.get("TypeId");switch(a){case"HTP000000001800":u.push("False alarm on a file");break;case"HTP000000001801":u.push("False alarm on website");break;case"HTP000000001803":u.push("Suspicious file");break;case"HTP000000001804":u.push("Suspicious website");break;default:u.push("Unknown type")}}return u},w=function(t){return t===n.requestTypes.CSR?t+" | Sign file":t},h=function(t,i){var r=w(n.getRequestType(t)),u=c(r);e.sendEvent(u,r+" | "+i,null,null,!1)};o.initiateNewRequestOrAnswerEvent=function(n){h(n,"Initiate")};o.tryNewRequestOrAnswerEvent=function(n){h(n,"Try")};b=function(i){return i.get("ContractSupportLevel")===t.msaRequestStandardSupport?n.requestTypes.TechSupport:n.requestTypes.MSA};k=function(n,t){var i=n.get("ProductId"),r=(t.get("SupportInfos")||[]).some(function(n){return n.ProductIds.indexOf(i)!==-1&&(n.IsUnlimited||n.IsLimitedNo||n.IsLimitedYes&&n.Left)});return r?"Has a contract":"No contract"};o.tryNewMsaRequestEvent=function(t,i){var r=b(t),u=r===n.requestTypes.MSA?null:k(t,i);e.sendEvent(e.eventCategories.NEW_REQUEST,r+" | Try",u,null,!1)};o.cancelNewRequestOrAnswerEvent=function(n){h(n,"Cancel")};o.chooseFileNewRequestOrAnswerEvent=function(n){h(n,"Choose file")};o.deleteFileNewRequestOrAnswerEvent=function(n){h(n,"Delete file")};o.getHowToGetApnsEvent=function(n){h(n,"How-to | Get APNs")};o.getHowToGetProductVersionEvent=function(n){h(n,"How-to | Product version")};var et=function(n){var t=n.get("attachedFiles");return t?t.length:0},ot=function(n,t){e.sendEvent(e.eventCategories.NEW_REQUEST,n+" | Success",t.length?t.join(" | "):null,null,!1)},st=function(n,t){e.sendEvent(e.eventCategories.NEW_REQUEST,n+" | Success | Files attached",t,null,!1)};o.newRequestOrAnswerSuccessEvent=function(t,i){var r=w(n.getRequestType(t)),u=et(t),f;r===ut?e.sendEvent(e.eventCategories.REQUESTS,r+" | Success",u,null,!1):(f=ft(t,r,i),ot(r,f),st(r,u))};o.newMsaSupportRequestSuccessEvent=function(t,i){var r=b(t),f=et(t),e=ft(t,r,i),u=r===n.requestTypes.MSA?null:k(t,i);ot(r,e);st(r,(u?u+" | ":"")+f)};o.msaRequestHintClickEvent=function(){e.sendEvent(e.eventCategories.HELP,"MSA | Open","Protection level",null,!1)};o.msaRequestLinkInsideHintClickEvent=function(n){e.sendEvent(e.eventCategories.HELP,"MSA | Click","Protection level | "+n,null,!1)};p=function(n,t,i){e.sendEvent(i,(n?n+" | ":"")+t)};o.acceptfileAgreemensEvent=function(n,t){p(n,"Accept file agreement",t)};o.proceedToAddingFileAfterAgreemensEvent=function(n,t){p(n,"Proceed to adding file",t)};o.closefileAgreemensEvent=function(n,t){p(n,"Close file agreement",t)};o.fileAgreementsError=function(n){e.responseErrorEvent(e.eventCategories.NEW_REQUEST,"File agreement status",n)};o.newRequestPopUpClick=function(t){var i=n.getRequestType(t);e.sendEvent(e.eventCategories.NEW_REQUEST,i+" | Pop up",null,null,!1)};d=function(n){return n==="Subtype Required"?"Type Required":n};o.newRequestError=function(t,i){var r=w(n.getRequestType(t)),f=c(r),u=e.getErrorCodeLabel(i,f,r);u&&((r===n.requestTypes.TA||r===n.requestTypes.VirLab)&&d(u),e.sendEvent(f,r+" | Error",u,null,!0))};o.newRequestValidationError=function(t,i){var r=n.getRequestType(t),o=c(r),u=e.getValidationErrorLabels(t,i);(r===n.requestTypes.TA||r===n.requestTypes.VirLab)&&(u=f.map(u,function(n){return d(n)}));e.sendEvent(o,r+" | Error",u.join(" | "),null,!1)};o.newRequestOverflowError=function(t,i){var r=n.getRequestType(t),u=c(r),f=e.getValidationErrorLabels(t,i);e.sendEvent(u,r,f.join(" | "),null,!1)};l=function(n,t){var i=c(n);e.sendEvent(i,n+" | Add file | "+t)};o.initiateNewRequestAddFileEvent=function(n){l(n,"Initiate")};o.successNewRequestAddFileEvent=function(n){l(n,"Success")};o.deleteNewRequestAddFileEvent=function(n){l(n,"Delete file")};o.openFileAgreementNewRequestAddFileEvent=function(n){l(n,"Open file agreement")};o.newRequestAddFileError=function(n,i,r){var f,u;n=n==="Comment"?"Request | Send answer":n;f=c(n);i?u=e.getErrorCodeLabel(i):r&&r===t.globPure("fileupload/errors/maxFileSize")&&(u="Storage File Size");u&&e.sendEvent(f,n+" | Add file | Error",u,null,!0)};o.requestTypeListError=function(n){e.responseErrorEvent(e.eventCategories.NEW_REQUEST,"Requests type list",n,"All requests")};o.requestFormError=function(n){e.responseErrorEvent(e.eventCategories.NEW_REQUEST,"Request form",n)};o.requestEvent=function(t,i,r){var s=n.getRequestType(t),u=[],f,o;r&&u.push(r);i==="Open"&&(f=t.get("UserfriendlyStatus"),f&&(i=i+" | "+f),o=t.get("Type"),o&&u.push(o));e.sendEvent(e.eventCategories.API,(s?s+" | ":"")+i,u.length?u.join(" | "):null,null,!1)};o.openRequestEvent=function(t){var u=n.getRequestType(t),i=[],f="Open",o=t.get("UserfriendlyStatus"),r;o&&(f+=" | "+o);r=t.get("Type");r&&i.push(r);e.sendEvent(e.eventCategories.REQUESTS,(u?u+" | ":"")+f,i.length?i.join(" | "):null,null,!1)};o.filterRequestsByStatusEvent=function(n){e.sendEvent(e.eventCategories.REQUESTS,"Filter",n,null,null,!1)};ht=function(n){switch(n){case y.filterSubmitterAlgorithmModel.ALL:return"By all users";case y.filterSubmitterAlgorithmModel.BY_DELETED_USERS:return"By deleted users";case y.filterSubmitterAlgorithmModel.BY_NAME:return"By other user";case y.filterSubmitterAlgorithmModel.CURRENT_USER:return"By current user";default:return $logger.error(ct,"Unknown author filtering algorithm: "+n),n}};o.filterRequestsByAuthorEvent=function(n){var t=ht(n);e.sendEvent(e.eventCategories.REQUESTS,"Filter",t,null,null,!1)};a=function(t,i){var r=n.getRequestType(t);e.sendEvent(e.eventCategories.REQUESTS,(r?r+" | ":"")+i,null,null,!1)};o.closeRequestEvent=function(n){a(n,"Close request")};o.answerEvent=function(n){a(n,"Answer | Open")};o.downloadFileEvent=function(n){a(n,"Download file")};o.showHideAllCommentsEvent=function(n,t){a(n,t?"Show messages | Click":"Hide messages | Click")};v=function(n,t){e.sendEvent(e.eventCategories.REQUESTS_SEARCH,n,t,null,null,!1)};o.startRequestsSearch=function(n){v("Start",n)};o.requestsSearchFound=function(n){v("Found",n)};o.requestsSearchNotFound=function(n){v("Not found",n)};o.openRequestFromSearch=function(){v("Open")};o.requestNewRequestEvent=function(){e.sendEvent(e.eventCategories.REQUESTS,"New request | Click",null,null,!1);t.AuthInfo.isTA()&&e.sendEvent(e.eventCategories.NEW_REQUEST,"TA | Pick",null,null,!1)};o.requestOpenProfileEvent=function(n){e.sendEvent(e.eventCategories.REQUESTS,"Requests | Open profile","",null,!1,function(){n&&n.href&&(document.location=n.href)})};o.requestPageEvent=function(n){e.sendEvent(e.eventCategories.REQUESTS,"Requests | Page",n,null,!1)};o.requestListError=function(n){e.responseErrorEvent(e.eventCategories.REQUESTS,"Request list",n)};o.requestOpenError=function(n){e.responseErrorEvent(e.eventCategories.REQUESTS,"Open request",n)};o.requestCloseError=function(n){e.responseErrorEvent(e.eventCategories.REQUESTS,"Close request",n)};o.supportRequestFormInitialization=function(){e.sendEvent("00-formFields","form","initialization")};o.supportRequestSelectionChanged=function(n,t){Object.keys(n.changed).filter(function(n){return nt.indexOf(n)!==-1}).forEach(function(i){var u=g[i],r=it(n,i,t);r!=null&&e.sendEvent("01-formFields","select",u+" | "+r)})};o.supportRequestShowArticles=function(n,t){var i=s(n,t);e.sendEvent("02-formFields","showArticles",i)};o.supportRequestClickArticle=function(n,t,i){var r=s(n,t);e.sendEvent("02-formFields","clickArticles-"+i,r)};o.supportRequestClickUselessLinksButton=function(n,t){var i=s(n,t);e.sendEvent("02-formFields","notHelpButton",i)};o.supportRequestShowOtherFieldsWithArticles=function(n,t){var i=s(n,t);e.sendEvent("03-formFields","showRequestForm-withArticles",i)};o.supportRequestClickDownloadFileWithArticles=function(){e.sendEvent("03-formFields","clickDownloadFile-withArticles","undefined")};o.supportRequestClickDownloadFileErrorWithArticles=function(){e.sendEvent("03-formFields","clickDownloadFile-withArticles-error","largeFileSize")};o.supportRequestClickDownloadFileSuccessWithArticles=function(){e.sendEvent("03-formFields","clickDownloadFile-withArticles-success","undefined")};o.supportRequestFilesAttachedWithArticles=function(n){e.sendEvent("03-formFields","sendRequest-withArticles","filesNumber-"+n)};o.supportRequestIncidentCreatedWithArticles=function(n,t){var i=s(n,t);e.sendEvent("03-formFields","sendRequest-withArticles",i)};o.supportRequestCancelledWithArticles=function(n,t){var i=s(n,t);e.sendEvent("03-formFields","clickCancel-withArticles",i)};o.supportRequestValidationErrorWithArticles=function(n,t){rt("03-formFields","sendRequest-withArticles-errorSelect",n,t)};o.supportRequestShowOtherFieldsWithoutArticles=function(n,t){var i=s(n,t);e.sendEvent("03-formFields","showRequestForm-withoutArticles",i)};o.supportRequestClickDownloadFileWithoutArticles=function(){e.sendEvent("03-formFields","clickDownloadFile-withoutArticles","undefined")};o.supportRequestClickDownloadFileErrorWithoutArticles=function(){e.sendEvent("03-formFields","clickDownloadFile-withoutArticles-error","largeFileSize")};o.supportRequestClickDownloadFileSuccessWithoutArticles=function(){e.sendEvent("03-formFields","clickDownloadFile-withoutArticles-success","undefined")};o.supportRequestFilesAttachedWithoutArticles=function(n){e.sendEvent("03-formFields","sendRequest-withoutArticles","filesNumber-"+n)};o.supportRequestIncidentCreatedWithoutArticles=function(n,t){var i=s(n,t);e.sendEvent("03-formFields","sendRequest-withoutArticles",i)};o.supportRequestCancelledWithoutArticles=function(n,t){var i=s(n,t);e.sendEvent("03-formFields","clickCancel-withoutArticles",i)};o.supportRequestValidationErrorWithoutArticles=function(n,t){rt("03-formFields","sendRequest-withoutArticles-errorSelect",n,t)};o.supportRequestCreatedSuccessfully=function(n,t){n&&e.sendEvent("03-formFields","sendRequest",t.IncidentNumber)};Interceptor.wrapMethods(o);f.extend(n,o)});App.module("Analytics.Security",function(n,t,i,r,u,f){"use strict";var o=t.module("Analytics.Common"),e={},h=function(n,t,i){o.sendEvent(o.eventCategories.SIGN_IN,"Login | "+n,t,null,i===undefined?!0:i)},s,l,c;e.initiateSignInEvent=function(){h("Initiate")};e.tryToSignInEvent=function(){h("Try")};e.successfullySignedInEvent=function(){h("Success",null,!1)};e.signInError=function(n){o.responseErrorEvent(o.eventCategories.SIGN_IN,"Login",n)};e.signInCaptchaRequiredError=function(){h("Error","Captcha Required")};e.signInWrongPasswordError=function(){h("Error","Wrong Password")};e.signInPasswordExpiredError=function(){h("Error","Password Expired")};e.signInValidationError=function(n,t){h("Error",o.getValidationErrorLabels(n,t).join(" | "),!1)};s=function(n,t,i){var r=n?" | "+n:"";o.sendEvent(o.eventCategories.REGISTRATION,"Registration | Step 1"+r,t,null,i===undefined?!0:i)};e.openRegistrationWindowEvent=function(){s("Open")};e.initiateRegistrationEvent=function(){s("Initiate")};e.tryRegisterAccountEvent=function(){s("Try")};e.successfullyRegisteredWithCode=function(){s("Success","Activation code")};e.successfullyRegisteredWithKeyFile=function(){s("Success","Key file")};e.registrationStep1Error=function(n){o.responseErrorEvent(o.eventCategories.REGISTRATION,"Registration | Step 1",n,null,null,!1)};e.registrationStep1ValidationError=function(n,t){var i=o.getValidationErrorLabels(n,t);i.length===1&&i[0]==="Captcha"&&i.push("Captcha incorrect");s("Error",i.join(" | "))};e.registrationStep1OverflowError=function(n,t){var i=o.getValidationErrorLabels(n,t);s(null,i.join(" | "))};l=function(n,t,i){o.sendEvent(o.eventCategories.PASSWORD_RECOVERY,"Password recovery | Step 1 | "+n,t,null,i===undefined?!0:i)};e.passwordRecoveryStep1Event=function(n,t){o.sendEvent(o.eventCategories.PASSWORD_RECOVERY,"Password recovery | Step 1 | "+n,null,null,t)};e.openForgotPasswordWindowEvent=function(){l("Open")};e.initiatePasswordRecoveryEvent=function(){l("Initiate")};e.tryResetPasswordEvent=function(){l("Try")};e.successfullyStartedPasswordRecovery=function(){l("Success",null,!1)};e.passwordRecoveryStep1Error=function(n){o.responseErrorEvent(o.eventCategories.PASSWORD_RECOVERY,"Password recovery | Step 1",n)};e.passwordRecoveryStep1ValidationError=function(n,t){l("Error",o.getValidationErrorLabels(n,t).join(" | "))};c=function(n,t,i,r){o.sendEvent(n,n+" | Step 2 | "+t,i,null,r===undefined?!0:r)};e.openPasswordConfirmationViewEvent=function(n){c(n,"Open")};e.initiatePasswordConfirmationEvent=function(n){c(n,"Initiate")};e.tryPasswordConfirmationEvent=function(n){c(n,"Try")};e.passwordSuccessfullySetEvent=function(n,t){c(n,"Success"+(t?" Need Captcha":""),null,!1)};e.changePasswordOpenError=function(n,t){o.responseErrorEvent(n,n+" | Step2",t)};e.changePasswordStep2Error=function(n,t){o.responseErrorEvent(n,n+" | Step2",t,null,null,!1)};e.changePasswordStep2HasActiveSessionsError=function(n){c(n,"Error","Has Active Sessions",!1)};e.changePasswordStep2LoginError=function(n,t){o.responseErrorEvent(n,n+" | Step2 | Login",t,null,null,!1)};e.changePasswordStep2ValidationError=function(n,t,i){c(n,"Error",o.getValidationErrorLabels(t,i).join(" | "),null,!1)};e.setUserRole=function(){};Interceptor.wrapMethods(e);f.extend(n,e)});App.module("Analytics.Users",function(n,t,i,r,u,f){"use strict";function v(n){return n.replace("Organization","Filial")}var e=t.module("Analytics.Common"),o={},l=function(n,t,i){e.sendEvent(e.eventCategories.USERS,n,t,null,i===undefined?!0:i)},h,a,s,c;o.userListSortBySurnameEvent=function(){l("User | Sort","Surname")};o.userListFilterByCountryEvent=function(){l("User | Filter","Country")};o.userListFilterByBranchEvent=function(){l("User | Filter","Filial")};o.userListPageEvent=function(n){l("User | Page",n,!1)};o.openUserProfileEvent=function(){l("User profile | Open")};o.usersError=function(n){e.responseErrorEvent(e.eventCategories.USERS,"User list",n,null,e.eventCategories.MANAGE_USERS)};h=function(n,t,i){e.sendEvent(e.eventCategories.USERS,"Manage user | "+n,t,null,i===undefined?!0:i)};o.successfullyChangedPermissionsEvent=function(){h("Permissions | Success")};o.initiateOtherUserPasswordResetEvent=function(){h("Reset password | Step 1 | Try")};o.resetPasswordForOtherUserLinkWasSentEvent=function(){h("Reset password | Step 1 | Success")};o.deleteUserEvent=function(){h("Delete user| Step 1")};o.confirmUserDeletionEvent=function(){h("Delete user| Step 2")};a=function(n){var e,o=new i.Model(n.analyticsSourceModel),t,r,u;return o.set(n.toJSON()),t=o.changedAttributes(),t&&(r=Object.keys(t),u=f.find(r,function(n){return n==="Organization"}),e=u&&r.length===1?"Filial":u?"Filial | Other fields":"Other fields"),e};o.manageUserPersonalDataSuccessEvent=function(n){h("Personal data | Success",a(n))};o.manageUserPersonalDataValidationError=function(n,t){h("Personal data | Error",e.getValidationErrorLabels(n,t).join(" | "),!1)};o.manageUserPersonalDataOverflowError=function(n,t){h("Personal data",v(e.getValidationErrorLabels(n,t).join(" | ")),!1)};o.manageUserResetPasswordError=function(n){e.responseErrorEvent(e.eventCategories.USERS,"Manage user | Reset password | Step 1",n,"Reset password | Step 1",e.eventCategories.MANAGE_USERS)};o.manageUserPersonalDataError=function(n){e.responseErrorEvent(e.eventCategories.USERS,"Manage user | Reset password | Step 1",n)};o.manageUserOpenError=function(n){e.responseErrorEvent(e.eventCategories.USERS,"Manage users | Open profile",n,"Open profile",e.eventCategories.MANAGE_USERS)};o.manageUserDeleteError=function(n){e.responseErrorEvent(e.eventCategories.USERS,"Manage users | Delete user",n,"Delete user",e.eventCategories.MANAGE_USERS)};s=function(n,t,i){e.sendEvent(e.eventCategories.PROFILE,"Edit profile | "+n,t,null,i===undefined?!0:i)};o.acceptFileAgreementEvent=function(){s("Accept file agreement")};o.openFileAgreementEvent=function(){s("Open file agreement")};o.initiateOwnPasswordResetEvent=function(){s("Reset password | Step 1 | Try")};o.resetOwnPasswordUserLinkWasSentEvent=function(){s("Reset password | Step 1 | Success")};o.deleteOwnProfileEvent=function(){s("Delete user| Step 1")};o.confirmOwnProfileDeletionEvent=function(){s("Delete user| Step 2")};o.profileEditSuccessEvent=function(n){s("Personal data | Success",a(n))};o.companyDeleteEventStep1=function(){e.sendEvent(e.eventCategories.PROFILE,"Company | Delete | Step 1",null,null,!0)};o.companyDeleteEventStep2=function(){e.sendEvent(e.eventCategories.PROFILE,"Company | Delete | Step 2",null,null,!0)};o.profileEditError=function(n){e.responseErrorEvent(e.eventCategories.PROFILE,"Edit profile | Personal data",n)};o.profileValidationError=function(n,t){s("Personal data | Error",e.getValidationErrorLabels(n,t).join(" | "),!1)};o.profileOverflowError=function(n,t){s("Personal data",v(e.getValidationErrorLabels(n,t).join(" | ")),!1)};o.profileResetPasswordError=function(n){e.responseErrorEvent(e.eventCategories.PROFILE,"Reset password | Step 1",n)};o.profileOpenError=function(n){e.responseErrorEvent(e.eventCategories.PROFILE,"Open profile",n)};o.profileDeleteError=function(n){e.responseErrorEvent(e.eventCategories.PROFILE,"Delete profile",n)};o.companyDeleteError=function(n){e.responseErrorEvent(e.eventCategories.PROFILE,"Company | Delete",n)};c=function(n){e.sendEvent(e.eventCategories.PROFILE,"Company logo | "+n,null,null,!0)};o.chooseFileForCompanyLogoEvent=function(){c("Choose file")};o.companyLogoDeletingEvent=function(){c("Delete | Try")};o.companyLogoDeletedEvent=function(){c("Delete | Success")};o.openFileAgreementOnLogoUploadEvent=function(){c("Open file agreement")};o.showChangeLogoConfirmationModalEvent=function(){c("Change | Open")};o.companyLogoUploadedEvent=function(n){c((n.isReplaceLogo?"Change":"Add")+" | Success")};o.companyLogoAddError=function(n,t){e.responseErrorEvent(e.eventCategories.PROFILE,"Company logo | "+(n.isReplaceLogo?"Change":"Add"),t)};o.companyLogoDeleteError=function(n){e.responseErrorEvent(e.eventCategories.PROFILE,"Company logo | Delete",n)};o.companyLogoValidationError=function(n,t){var i=n.isReplaceLogo?"Change":"Add";e.sendEvent(e.eventCategories.PROFILE,"Company logo | "+i+" | Error",e.getValidationErrorLabels(n,t).join(" | "),null,!1)};Interceptor.wrapMethods(o);f.extend(n,o)});App.module("Analytics.Contracts",function(n,t,i,r,u,f){"use strict";var o=t.module("Analytics.Common"),e=function(n,t,i){o.sendEvent(o.eventCategories.CONTRACTS,n,t,null,i===undefined?!0:i)},s={noContractsEvent:function(n){e("No contracts | View",n)},onlyExpiredContractsEvent:function(n){e("Expired contracts | View",n)},atleastOneActiveContractEvent:function(n){e("Active contracts | View",n)},atleastOneLimitExhaustedContractsEvent:function(n){e("No incidents left | View",n)},contractDownloadEvent:function(){e("Contract | Download")},contractsPageEvent:function(n){e("Contract | Page",n,!1)},contractsError:function(n){o.responseErrorEvent(o.eventCategories.CONTRACTS,"Contracts list",n)}};Interceptor.wrapMethods(s);f.extend(n,s)});App.module("Components.Banner",function(n,t){"use strict";n.Controller=t.Controllers.Base.extend({name:"Components.Banner.Controller",initialize:function(n){this.banners=n.collection;this.layoutView=this.getLayoutView();t.bannerRegion.show(this.layoutView);this.listenTo(this.layoutView,"childview:banner:collapse",this.changeCollapse);this.listenTo(this.layoutView,"childview:banner:hide",this.hideBanner)},setPromise:function(n){this.promise=n},changeCollapse:function(n){this.promise?this.promise.then(function(){this.collapse(n)}.bind(this)):this.collapse(n)},collapse:function(n){var i=this.banners.get(n.id),r;i&&(i.set({Collapsed:n.collapsed},{silent:!0}),r=new t.Entities.BannerCollapsedModel(n),r.save({Collapsed:n.collapsed},{error:this.errorHandler.bind(this)}))},hideBanner:function(n){this.promise?this.promise.then(function(){this.hide(n)}.bind(this)):this.hide(n)},hide:function(n){var i=this.banners.get(n.id),r;i&&(this.banners.remove(i),r=new t.Entities.BannerHiddenModel(n),r.save({},{error:this.errorHandler.bind(this)}))},errorHandler:function(n,i){var r=this.getResponseMsg(i);r!=="UserNotFound"&&r!=="UserNotCorp"||t.enableSignalR||t.execute("logout:message","AccountProblems")},getLayoutView:function(){return new n.List({collection:this.banners})}})});App.module("Components.Banner",function(n,t){"use strict";function i(n){var t=["img","br","u","em","b","a","p","div","font","li","ol","ul","strong","sub","sup","h1","h2","h3","h4","h5",];return n&&n.replace(/<\/?([\w-]*)\s*[\s\w="-]*\/?>/gi,function(n,i){return t.indexOf(i.toLowerCase())===-1?"":n})}n.Layout=t.Views.ItemView.extend({tagName:"div",className:"wrap cf ie-section",template:"banner/layout",ui:{hideBtn:".bt-close",expandBtn:".open-area"},events:{"click @ui.expandBtn":"onExpand","click @ui.hideBtn":"onHide"},modelEvents:{change:"onModelChanged"},triggers:{"click .btn-request-send":"request:send"},onModelChanged:function(n){this.render();this.toggleExpandButton(!n.get("Collapsed"));this.sendGaEvent()},onRender:function(){this.toggleExpandButton(!this.model.get("Collapsed"));this.$el.toggleClass("off",!!this.model.get("Hidden"));this.sendGaEvent()},sendGaEvent:function(){},onExpand:function(){var n={id:this.model.get("Id"),collapsed:!this.model.get("Collapsed")};this.trigger("banner:collapse",n);this.toggleExpandButton(!n.collapsed)},toggleExpandButton:function(n){this.ui.expandBtn.toggleClass("close-area-view",n).toggleClass("close-area",n).next().toggleClass("off",!n)},onHide:function(){var n={id:this.model.get("Id")};this.$el.addClass("off");this.trigger("banner:hide",n)},serializeData:function(){var n=this.model.get("InterfaceStyle");return{Title:i(this.model.get("Summary")),Message:i(this.model.get("Text")),IconClass:n==="Critical"?"p-alert":"p-info",IconBackground:"bg-icon-"+n.toLowerCase(),Collapsible:this.model.get("Collapsible"),Collapsed:this.model.get("Collapsed"),Hideable:this.model.get("Hideable")}}});n.List=t.Views.CollectionView.extend({childView:n.Layout})});App.module("Components.Captcha",function(n,t){"use strict";var i=t.module("Constants.Captcha"),r=t.module("Utils.String");n.Controller=t.Controllers.Base.extend({name:"Components.Captcha.Controller",initialize:function(n){this.model=n.captchaUseCase===i.useCase.LOGIN?t.request("captcha:login:entity",n):t.request("captcha:entity",n);this.layout=this.getLayoutView(n);this.layout.switchLoading(!0);this.listenTo(this.model,"change:image change:isNecessary",this.onImageChange);this.listenTo(this.layout,"refresh render",this.onRefresh)},onError:function(n,i){i.isAborted?$logger.info(this.name,"Captcha fetch was aborted"):$logger.error(this.name,"Captcha fetch error. Response: "+r.toJSON(i));this.layout.switchLoading(!1);var u=this.options.captchaUseCase,f=t.glob("captcha/errors/loading"+u);this.model.trigger("toggle:captcha",!0);this.layout.switchError(f)},onImageChange:function(){this.model.set("captcha","");this.layout.refreshImage();this.layout.switchLoading(!1)},onRefresh:function(){this.layout.switchLoading(!0);this.model.generateNewCaptcha({success:this.onImageChange.bind(this),error:this.onError.bind(this)})},getLayoutView:function(t){return new n.LayoutView({model:this.model,hideLabel:t.hideLabel})}});t.reqres.setHandler("captcha:sts:view",function(t){var i=new n.Controller(t);return i.layout})});App.module("Components.Captcha",function(n,t,i,r,u,f){"use strict";n.LayoutView=t.Views.LayoutView.extend({template:"captcha/layout",initialize:function(){i.Validation.bind(this,{valid:function(n,t){i.Validation.callbacks.valid.apply(this,arguments);n.trigger("validate",!1,t)},invalid:function(n,t,r){i.Validation.callbacks.invalid.apply(this,arguments);n.trigger("validate",r,t)}})},ui:{captcha:".captcha",label:".captcha-label"},triggers:{"click img.captcha-img":"refresh","click .error-region":"refresh"},bindings:{".captcha":"captcha"},onRender:function(){this.options.hideLabel&&this.ui.label.hide();this.model.get("image")&&this.refreshImage();this.stickit()},refreshImage:function(){var n=this.model.get("IsNecessary"),i=this.$(".captcha-view"),t;this.$el.attr("captcha",n).prop("captcha",n);this.model.isNecessary=n;i.toggleClass("off",!n);n&&(t="data:image/png;base64,"+this.model.get("Image"),this.$("img.captcha-img").attr("src",t));this.model.trigger("toggle:captcha",n)},refreshCaptcha:function(n){var i=n&&n.responseJSON,t=!1,n,r;i&&(i.Code||"").indexOf("Captcha")===0?t=!0:(n=i||{},r=n.modelState||n.ModelState,r&&f.each(r,function(n,i){var r=f.last(i.split("."));r==="Captcha"&&(t=!0)}));this.ui.captcha.toggleClass("inp-err",t);this.trigger("refresh",t)},switchLoading:function(n){var i=this.$(".loading-region"),r=this.$(".error-region"),t=this.$(".captcha-view");i.toggleClass("off",!n);r.addClass("off");n?(this.trigger("fetching",{fetched:!1}),t.addClass("off"),t.find("input").blur()):(this.refreshImage(),this.trigger("fetching",{fetched:!0}))},switchError:function(n){var t=this.$(".error-region"),i=this.$(".captcha-view");t.toggleClass("off",!n);n=f.isString(n)&&n||"Error while captcha fetching";t.find(".err").html(n);i.addClass("off")}})});App.module("Components.Confirm",function(n,t,i){"use strict";n.Controller=t.Controllers.Base.extend({name:"Components.Confirm.Controller",initialize:function(){this.confirmLayoutView=new n.ConfirmLayoutView({model:new i.Model({title:this.options.title,text:this.options.text,acceptButtonText:this.options.acceptButtonText})});this.modalWrapper=t.request("modal:wrapper",{contentView:this.confirmLayoutView,backdropElement:this.options.backdropElement});this.region=this.options.$el?new i.Marionette.Region({el:this.options.$el}):t.modalRegion;this.region.show(this.modalWrapper);this.listenTo(this.confirmLayoutView,"accept:btn:click",function(){this.modalWrapper.hide();this.options.success&&this.options.success.call()}.bind(this));this.listenTo(this.confirmLayoutView,"cancel:btn:click",function(){this.modalWrapper.hide();this.options.discard&&this.options.discard.call()}.bind(this))}});t.reqres.setHandler("confirm:view",function(t){return new n.Controller(t)})});App.module("Components.Confirm",function(n,t){"use strict";n.ConfirmLayoutView=t.Views.LayoutView.extend({template:"confirm/confirm-layout",triggers:{"click .btn-confirm-accept":"accept:btn:click","click .btn-confirm-cancel":"cancel:btn:click"}})});App.module("ErrorLocalizer",function(n,t,i,r,u,f){"use strict";var e=t.globPure,o="ErrorLocalizer",s=t.module("Utils.String"),h=function(n,t,i,r){var c="Path: "+n+". Resp: "+s.toJSON(t)+". Options: "+s.toJSON(i),h,l,u,a,v;if($logger.info(o,"+getLocalizationForError()."+c),!t){if(u=e(n),!f.isEmpty(u))return r(u,i,!0);$logger.error(o,"Incorrect call, strings not found. "+c)}for(h=t.responseJSON||{},h.Code||$logger.error(o,"Incorrect call response. Code is empty."+c),$logger.info(o,"Error code: "+h.Code),l=!1,u={},h.Type&&(l=h.Type+"_"+h.Code),n=f.flatten([n]),a=0;a<n.length;++a)if((v=n[a],l&&(u=e(v+"/"+l),!f.isEmpty(u)))||(u=e(v+"/"+h.Code),!f.isEmpty(u)))return r(u,i);return(u=e("errors/"+h.Code),!f.isEmpty(u))?r(u,i):(u=e(f.first(n)+"/UnknownError"),!f.isEmpty(u))?r(u,i):(u=e("errors/UnknownError"),!f.isEmpty(u))?r(u,i):($logger.error(o,"Failed to find localization for error. "+c),undefined)};n.getModalText=function(n,t,i){return h(n,t,i,function(n,t,i){return{title:n.title(t),text:n.text(t),isFound:i}})};n.getErrorText=function(n,t,i){return h(n,t,i,function(n){return{text:n}})}});App.module("Components.FileAgreements",function(n,t,i,r,u,f){"use strict";n.Controller=t.Controllers.Base.extend({name:"Components.FileAgreements.Controller",initialize:function(n){this.options.model.unset("fileAgreementsCheckbox");this.loadingView=t.request("loading:view");this.modalWrapper=t.request("modal:wrapper",{contentView:this.loadingView,childController:this,onHide:this.onfileAgreementsClose.bind(this)});this.options.region.show(this.modalWrapper);this.analyticsRequestType=n.analyticsRequestType;this.analyticsCategory=n.analyticsCategory;this.agreementModel=this.options.model;this.onSuccess(this);this.accept=!1;this.listenTo(this.options.model,"change:fileAgreementsCheckbox",this.onfileAgreementsCheckboxClick)},onfileAgreementsCheckboxClick:function(){this.options.model.get("fileAgreementsCheckbox")&&t.Analytics.Requests.acceptfileAgreemensEvent(this.analyticsRequestType,this.analyticsCategory)},onfileAgreementsClose:function(){this.accept||t.Analytics.Requests.closefileAgreemensEvent(this.analyticsRequestType,this.analyticsCategory)},onSuccess:function(){var t=this.agreementModel.toJSON();this.options.model.set({AgreementText:t.AgreementText,AcceptedVersion:t.AcceptedVersion,CurrentVersion:t.CurrentVersion});this.layoutView=new n.AgreementLayoutView({model:this.options.model});this.modalWrapper.setContent(this.layoutView);this.listenTo(this.layoutView,"file:agreements:accept",f.bind(this.onAccept,this))},onError:function(){var n=this.glob("errors/500/title"),t=this.glob("errors/500/text");this.showModalError(n,t)},onAccept:function(){t.Analytics.Requests.proceedToAddingFileAfterAgreemensEvent(this.analyticsRequestType,this.analyticsCategory);this.layoutView.toggleError(!1);this.acceptModel=t.request("fileAgreementAccept:entity");this.accept=!0;this.acceptModel.save(null,{success:function(){this.modalWrapper.hide();this.options.success.call()}.bind(this),error:function(n,i){t.Analytics.Requests.fileAgreementsError(i);this.layoutView.toggleError(!0)}.bind(this)})}});t.reqres.setHandler("fileAgreements:view",function(t){return new n.Controller(t)})});App.module("Components.FileAgreements",function(n,t){"use strict";n.AgreementLayoutView=t.Views.LayoutView.extend({template:"fileAgreements/agreement-layout",bindings:{".file-agreements-checkbox":"fileAgreementsCheckbox"},events:{"click .btn":"onAcceptClick"},modelEvents:{"change:fileAgreementsCheckbox":function(n,t){this.$(".btn").toggleClass("disabled",!t).toggleClass("bg-gray",!t).toggleClass("bg-green",t)}},onAcceptClick:function(){this.$(".btn").hasClass("disabled")||this.trigger("file:agreements:accept")},toggleError:function(n){this.$(".err").toggleClass("off",!n)},onRender:function(){var n=this.model.toJSON();n.AcceptedVersion===n.CurrentVersion&&this.$(".accept-controls").addClass("off");this.stickit()}})});App.module("Components.FileUpload",function(n,t,i,r,u,f){"use strict";var e=t.module("Utils.String");n.Controller=t.Controllers.Base.extend({name:"Components.FileUpload.Controller",initialize:function(i){var r=this.options.analyticsTarget;this.files=t.request("file:collection:instance");this.layoutView=new n.Layout(f.extend(this.options,{collection:this.files}));this.listenTo(this.layoutView,"fileAgreement:call",this.onFileAgreementCall);this.listenTo(this.layoutView,"fileAttachError:call",this.onFileAttachError);f.each({onFileSelectClick:"fileupload:select:click",onFileAttached:"fileupload:file:attached",onFileDelete:"fileupload:file:delete"},function(n,t){r?r.listenTo(this.layoutView,n,r.trigger.bind(r,n)):this.listenTo(this.layoutView,n,this[t])},this);this.fileAttachErrors=t.request("file:collection:instance");this.errorView=null;this.listenTo(i.requestInfo,"change:info",this.onRequestInfoChange);this.analyticsRequestType=i.analyticsRequestType},onFileSelectClick:function(){t.Analytics.Requests.initiateNewRequestAddFileEvent(this.analyticsRequestType)},onFileAttached:function(){t.Analytics.Requests.successNewRequestAddFileEvent(this.analyticsRequestType)},onFileDelete:function(){t.Analytics.Requests.deleteNewRequestAddFileEvent(this.analyticsRequestType)},onFileAgreementCall:function(){this.fileAgreementModel=this.options.fileAgreementModel;this.options.analyticsTarget?this.options.analyticsTarget.trigger("fileAgreement:call"):t.Analytics.Requests.openFileAgreementNewRequestAddFileEvent(this.analyticsRequestType);t.request("fileAgreements:view",{model:this.fileAgreementModel,region:t.modalRegion,analyticsRequestType:this.analyticsRequestType,analyticsCategory:"New request",success:function(){this.options.fileAgreementModel.set({NeedAcceptAgreement:!1})}.bind(this)})},onAttachErrorClose:function(){this.fileAttachErrors.reset();this.errorView=null},setResponseCodeFromModelState:function(n){var t;n.ModelState&&(t=f.first(f.values(n.ModelState)),n.Code=f.first(t[0].split("|")))},onFileAttachError:function(i,r,u){var f=r;($logger.error(this.name,"File upload failed: "+f+". Response: "+(u?e.toJSON(u):u)),u&&u.responseJSON&&(this.setResponseCodeFromModelState(u.responseJSON),f=t.ErrorLocalizer.getErrorText("fileupload/errors",u).text),this.options.analyticsTarget?this.options.analyticsTarget.trigger("fileAttachError:call",i,r,u):t.Analytics.Requests.newRequestAddFileError(this.analyticsRequestType,u,f),this.fileAttachErrors.add({file:i,error:f}),this.errorView)||(this.errorView=new n.ErrorView({title:t.glob("fileupload/attachError"),attachErrors:this.fileAttachErrors}),this.showModalError("","",{region:t.modalRegion,errorView:this.errorView,onHide:this.onAttachErrorClose.bind(this)}))}});t.reqres.setHandler("fileupload:view",function(t){var i=new n.Controller(t);return i.layoutView})});App.module("Components.FileUpload",function(n,t,i,r,u){"use strict";n.ErrorItem=t.Views.ItemView.extend({tagName:"span",template:"fileupload/error-item"});n.ErrorView=t.Views.LayoutView.extend({template:"fileupload/upload-error",ui:{errorsList:".file-errors-list-region"},initialize:function(n){this.listenTo(n.attachErrors,"add",this.onErrorAdded)},serializeData:function(){return this.options},onRender:function(){this.options.attachErrors.each(function(n){this.onErrorAdded(n,this.options.attachErrors)}.bind(this))},onErrorAdded:function(t){var r=t.get("error"),o='p[data-error="'+r+'"]',i=this.ui.errorsList.find(o),f,e;i.length||(f=t.get("file"),i=u('<p data-error="'+r+'"> '+r+(f?": ":"")+"<\/p>"),this.ui.errorsList.append(i));i.has("span").length&&i.append(", ");e=new n.ErrorItem({model:t}).render();i.append(e.el)}})});App.module("Components.FileUpload",function(n,t,i,r,u,f){"use strict";var e="Components.FileUpload.Layout",s=t.module("Constants.FileUpload"),o=t.module("Utils.Exception");n.Layout=t.Views.LayoutView.extend({tagName:"div",template:"fileupload/layout-file",ui:{fileInput:'input[type="file"]',fileInputBlock:".fileupload-buttonbar"},events:{fileuploaddone:"onDone",fileuploadfail:"onFail",fileuploadadd:"onAdd",fileuploadadded:"onAdded",fileuploaddestroy:"onDel",fileuploaddestroyed:"onDeleted",fileuploadfinished:"onFinished",fileuploadprocessfail:"onProcessFail","click @ui.fileInput":"onUploadClick","drop @ui.fileInput":"onUploadClick"},currentChunkDictionary:{},initialize:function(n){this.options=n||{};this.acceptFileTypes=this.options.acceptFileTypes;this.url=this.options.url;this.maxNumberOfFiles=this.options.maxNumberOfFiles;this.maxFileSize=this.options.maxFileSize||+t.limits.maxFileSize;this.minFileSize=this.options.minFileSize||+t.limits.minFileSize;this.files=this.options.files;this.requestInfo=this.options.requestInfo;this.filesContainerSelector=".fileupload-control";this.auth=this.options.auth;this.formFileData=[];this.listenTo(this.collection,"add remove reset",this.sync);this.spinnerOpts={lines:7,length:4,radius:2,top:"-2px",left:"2px"};f.defaults(this.spinnerOpts,t.request("loading:defaults:spinner"))},onRender:function(){var n=this,i=this.$("form");return i.fileupload({url:this.url,acceptFileTypes:this.acceptFileTypes,processData:!1,autoUpload:!0,isFileUpload:!0,auth:this.auth,contentType:!1,cache:!1,hasContent:!0,maxChunkSize:+t.limits.maxChunkSize,formData:function(t,i){var u=f.first(i.files),r=t.serializeArray();return r.push(u.fileDataFileName),r.push({name:"tempFolderGuid",value:n.requestInfo.get("uploadId")}),r.push({name:"RequestInfoHash",value:n.requestInfo.get("hash")}),r},downloadTemplate:JST["components/fileupload/templates/download"],uploadTemplate:JST["components/fileupload/templates/upload"],getFilesFromResponse:f.bind(this.getFilesFromResponse,this),maxNumberOfFiles:this.maxNumberOfFiles,maxFileSize:this.maxFileSize,minFileSize:this.minFileSize,messages:{maxFileSize:t.glob("fileupload/errors/maxFileSize"),minFileSize:t.glob("fileupload/errors/minFileSize"),acceptFileTypes:t.glob("fileupload/errors/acceptFileTypes"),maxNumberOfFiles:t.glob("fileupload/errors/maxNumberOfFiles")},destroy:function(t,i){var r=u(this).data("blueimp-fileupload")||u(this).data("fileupload");r._transition(i.context).done(function(){u(this).remove();r._trigger("destroyed",t,i);n.sync()})},progress:function(t,i){var r=i.files[0],f=parseInt(100*i.loaded/i.total,10);f>100&&$logger.warn(e,"Uploaded more bytes than file has. File size: "+i.total+". Uploaded: "+i.loaded+". File name: "+r.name);n.toggleCancelOnProgress(i);u('div[data-id="'+r.id+'"]').css("width",f+"%")},drop:function(t){return n.onUploadClick(t)},chunksend:function(t,i){n.toggleCancel(i,!0);n.logChunkSending(i)},pauseUpload:function(t){n.toggleCancel(t,!1)},resumeUpload:function(t){n.toggleCancel(t,!0)},chunkdone:function(t,i){var r=f.first(i.files);r.fileDataFileName={name:"filename",value:i.result.file.Name};n.validateDoneChunk(r,i)},addingfailed:function(t,i){n.removeFileFromList(i.files[0].id);i.context&&(i.context.remove(),i.files.length=0)}}),i.fileupload("option","done").call(i[0],u.Event("fileuploaddone"),{result:{files:this.collection&&this.collection.toJSON()}}),this.showMessage(),this.syncNumberOfFiles(),this},showMessage:function(){var n=this.maxFileSize===t.limits.amrMaxFileSize?t.glob("fileupload/file/amrFile"):t.glob("fileupload/file/commonFile");this.$(".file-req").html(n)},logChunkSending:function(n){var i,r,t;try{i=n.files[0];r=i.id;t=this.currentChunkDictionary[r];t=t?t+1:1;this.currentChunkDictionary[r]=t;$logger.info(e,"Starting chunk #"+t+" for file: "+i.name+". Content-Range: "+n.contentRange)}catch(u){$logger.error(e,{message:"Logging chunk sending failed",error:o.getAsString(u)})}},validateDoneChunk:function(n,t){var i,u,r;try{i=this.currentChunkDictionary[n.id];$logger.info(e,"Uploaded chunk #"+i+" for file: "+n.name);u=Math.ceil(t.total/t.maxChunkSize);i<u&&(r=i*t.maxChunkSize,t.loaded!==r&&$logger.warn(e,"Incorrect bytes count for chunk #"+i+" of file "+n.name+". Should be "+r+" but was "+t.loaded+". Content-Range: "+t.contentRange))}catch(f){$logger.error(e,{message:"Logging chunk done validation failed",error:o.getAsString(f)})}},serializeData:function(){return{multiple:this.maxNumberOfFiles>1,remarkQuestion:this.options.remarkQuestion,remarkDescriprion:this.options.remarkDescriprion}},onUploadClick:function(n){return this.maxNumberOfFiles<=this.collection.length?(n.stopPropagation(),n.preventDefault(),!1):this.checkAgreement()?(this.trigger("fileupload:select:click"),!0):(n.stopPropagation(),n.preventDefault(),this.trigger("fileAgreement:call"),!1)},sync:function(){this.files=this.collection.toJSON();this.$el.trigger("fileuploadupdate");this.syncNumberOfFiles()},syncNumberOfFiles:function(){var n=this.maxNumberOfFiles>this.formFileData.length;return this.$(".fileupload-buttonbar").toggleClass("off",!n),n},checkAgreement:function(){var n=this.options.fileAgreementModel.toJSON();return!n.NeedAcceptAgreement},toggleCancelOnProgress:function(n){var r=Math.ceil(n.loaded/n.maxChunkSize),t=r*n.maxChunkSize,i;t>n.total&&(t=n.total);i=t-n.loaded>s.cancellButton.bytesTillChunkEnd;this.toggleCancel(n,i)},toggleCancel:function(n,t){var i=f.first(n.files).id,u=this.$("#"+i+"-cancel"),r=this.$("#"+i+"-spinner");u.toggleClass("off",!t);r.toggleClass("off",t);r.spin(!t&&this.spinnerOpts)},getCancelButtons:function(){return this.$(".cancel")},getDeleteButtons:function(){return this.$(".delete")},hideFileControls:function(){this.getDeleteButtons().hide();this.getCancelButtons().hide();this.ui.fileInputBlock.hide()},showFileControls:function(){this.getDeleteButtons().show();this.getCancelButtons().show();this.ui.fileInputBlock.show()},abortAllUploads:function(){this.getCancelButtons().click()},triggerError:function(n,i,r){var u=i||t.glob("fileupload/errors/uploadError");this.trigger("fileAttachError:call",n,u,r)},removeFileFromList:function(n){var i=this.collection.find(function(t){return t.fileId===n}),t;this.collection.remove(i);for(t in this.formFileData)if(this.formFileData.hasOwnProperty(t)&&this.formFileData[t].id===n){this.formFileData.splice(t,1);break}this.syncNumberOfFiles()},getFilesFromResponse:function(n){var i=[],t;return f.isArray(n.files)&&n.files.length>0&&n.result&&(t=n.result.file,i.push(u.extend(!0,{id:n.files[0].id,name:t.Name,getFileSizeString:this.getFileSizeString,getFileNameString:this.getFileNameString,getFileNameBeginning:this.getFileNameBeginning,getFileNameEnding:this.getFileNameEnding,size:t.ContentLength,context:this.options},t))),i},onAdd:function(n,i){var r=f.first(i.files),u=i.originalFiles.filter(function(n){return n.context});return this.formFileData.length+i.originalFiles.length-u.length>this.maxNumberOfFiles?(this.triggerError(null,t.glob("fileupload/errors/maxNumberOfFiles"),null),!1):(r.id=t.Entities.generateGuid(),r.getFileSizeString=this.getFileSizeString,r.getFileNameString=this.getFileNameString,r.getFileNameBeginning=this.getFileNameBeginning,r.getFileNameEnding=this.getFileNameEnding,r.context=this.options,r.fileDataFileName={name:"filename",value:r.name},this.formFileData.push(r),this.syncNumberOfFiles(),!0)},onDone:function(n,t){var f,r;t.result&&(f=t.result.file,r=new i.Model(f),r.fileId=t.files[0].id,this.collection.add(r),this.trigger("fileupload:file:attached"));u("body").focus()},onFinished:function(){this.ellipsizeFileNamesDynamically(this.filesContainerSelector)},onAdded:function(){this.ellipsizeFileNamesDynamically(this.filesContainerSelector)},onDeleted:function(){this.ellipsizeFileNamesDynamically(this.filesContainerSelector)},onDel:function(n,i){var r=this.collection.find(function(n){return n.fileId===i.id});r&&(t.request("file:delete:model",r.toJSON()).save(null,{success:function(){$logger.info(e,"file deleted successfully")},error:function(){$logger.warn(e,"file not deleted on server")}}),this.removeFileFromList(i.id),this.trigger("fileupload:file:delete"))},onFail:function(n,t){var i=f.first(t.files),r=t.jqXHR;(i.error=!0,this.removeFileFromList(i.id),t.context&&(t.context.remove(),t.files.length=0),this.ellipsizeFileNamesDynamically(this.filesContainerSelector),r)&&r.statusText!=="abort"&&this.triggerError(i,null,r)},onProcessFail:function(n,t){var i=t.files[0];this.triggerError(i,i.error,null);i.error=!0},onDestroy:function(){this.abortAllUploads();this.$("form").fileupload("destroy")}})});App.module("Components.KBLinks",function(n,t,i,r,u,f){"use strict";function h(n){var t=n.changed;return f.some(e,function(n){return n in t})}function c(n){return f.every(e,function(t){return!!n.get(t)})}function l(n){var t=n.changed;return f.some(o,function(n){return n in t})}function s(n){return f.every(o,function(t){var i=n.get(t);return!i||f.isArray(i)&&!i.length})}function a(n){var t={articleLinks:[],logLinks:[]};return f.each(n||[],function(n){var i={type:n.LinkType,href:n.ExternalUrl,text:n.ExternalUrlName,bold:n.Highlight};switch(n.LinkType){case"Article":t.articleLinks.push(i);break;case"Log":t.logLinks.push(i)}}),t}function v(n){var t=["img","br","u","em","b","a","p","div","font","li","ol","ul","strong","sub","sup","h1","h2","h3","h4","h5",];return n&&f.unescape(n).replace(/<\/?([\w-]*)\s*[\s\w="-]*\/?>/gi,function(n,i){return t.indexOf(i.toLowerCase())===-1?"":n})}var e=["ProductId","ProductVersion","TypeId"],o=["Summary","Description","attachedFiles"];n.Controller=t.Controllers.Base.extend({name:"Components.KBLinks.Controller",initialize:function(n){this.requestView=n.requestView;this.requestModel=n.requestModel||this.requestView.model;this.uselessLinksPressed=!1;this.requestView.articlesCount=0;this.listenTo(this.requestView,"render",this.onRequestRender);this.listenTo(this.requestModel,"change",this.onRequestChange)},onRequestRender:function(){this.kbLinksRegion=this.requestView.getRegion("kbLinksRegion");this.kbLinksRegion.empty();this.hideOtherRequestFields()},onRequestChange:function(){h(this.requestModel)&&(this.kbLinksRegion.empty(),this.uselessLinksPressed=!1,s(this.requestModel)&&this.hideOtherRequestFields(),c(this.requestModel)&&this.loadLinks({ProductId:this.requestModel.get("ProductId"),ProductVersion:this.requestModel.get("ProductVersion"),TypeId:this.requestModel.get("TypeId"),Locale:t.request("settings:entity").get("language").value}));l(this.requestModel)&&(!this.uselessLinksPressed&&s(this.requestModel)?this.hideOtherRequestFields():this.showOtherRequestFields())},hideOtherRequestFields:function(){this.requestView.articlesCount=0;this.otherRequestFieldsHidden||(this.kbLinksRegion.$el.nextAll().addClass("off"),this.otherRequestFieldsHidden=!0)},showOtherRequestFields:function(){this.otherRequestFieldsHidden&&(this.kbLinksRegion.$el.nextAll().removeClass("off"),this.otherRequestFieldsHidden=!1)},loadLinks:function(n){var i=new t.Entities.KBLinksModel;this.kbLinksRegion.show(t.request("loading:view:gray"));this.requestView.articlesCount=0;i.fetch({data:n});t.execute("when:fetched",[i],function(){var n=a(i.get("Links"));this.requestView.articlesCount=n.articleLinks.length;this.requestView.instruction=v(i.get("Instruction"));n.articleLinks.length+n.logLinks.length?this.showLinks(n):this.stopLinks(0)},this);t.execute("when:error",[i],function(n){console.error("Error loading KB links",n);this.stopLinks(0)},this)},showLinks:function(n){var i=new t.Components.KBLinks.View(n);this.listenTo(i,"goon",function(){n.articleLinks.length>0&&this.requestView.trigger("click:uselessLinksButton");this.stopLinks(n.logLinks.length)});this.listenTo(i,"click-article",function(n){this.requestView.trigger("click:article",n)});this.kbLinksRegion.show(i);n.articleLinks.length&&this.requestView.trigger("show:articleLinks")},stopLinks:function(n){this.uselessLinksPressed=!0;n||this.kbLinksRegion.empty();this.showOtherRequestFields();this.requestView.trigger("show:otherFields");this.requestView.instruction&&this.kbLinksRegion.$el.html('<div class="w-66 fr">'+this.requestView.instruction+"<\/div>")}})});App.module("Components.KBLinks",function(n,t,i,r,u,f){"use strict";n.View=t.Views.LayoutView.extend({template:"kb-links/layout",ui:{goonBtn:".btn-useless-links"},events:{"mousedown @ui.goonBtn":"onGoonClick",'click .kb-links__list a[data-link-type="Article"]':"onArticleClick"},initialize:function(){this.shouldGoon=!this.options.articleLinks.length;this.shouldGoon&&f.defer(this.trigger.bind(this),"goon",this)},onGoonClick:function(){this.shouldGoon=!0;this.trigger("goon",this);this.render()},onArticleClick:function(n){this.trigger("click-article",n.target.textContent)},serializeData:function(){return{links:this.shouldGoon?this.options.logLinks:this.options.articleLinks,showArticleLinks:!this.shouldGoon}}})});App.module("Components.Loading",function(n,t,i,r,u,f){"use strict";var e=t.module("Utils.String");n.LoadingController=t.Controllers.Base.extend({name:"Components.Loading.Controller",initialize:function(n){var r=n.view,t=n.config,i;f.isBoolean(t)&&(t={});f.defaults(t,{entities:this.getEntities(r)});this.config=t;i=this.getLoadingView(t);this.show(i);this.showRealView(r,i,t)},showRealView:function(n,i,r){t.execute("when:fetched",r.entities,function(u){u||t.execute("auth:logout");this.fetched(n,i,r)},this);t.execute("when:error",r.entities,function(u){u||t.execute("auth:logout");this.error(n,i,r,u)},this)},error:function(n,i,r,u){if(u&&u.isAborted){$logger.info(this.name,"Request "+u["X-Request-Id"]+" has been aborted");return}var f=r.errorHandler;f&&f(this.region,u)||f===!1||($logger.warn(this.name,"Error wasn't handled by calling controller or ajax pipeline. Show default error page. Response: "+e.toJSON(u)),this.checkForbidden(u)?t.execute("error:forbidden"):t.execute("error:internal"))},fetched:function(n,t){n.trigger("before:render");this.region&&this.region.currentView===t?this.show(n):$logger.info(this.name,"Loading view was replaced")},onDestroy:function(){var n=f.flatten([this.config.entities]);f.each(n,function(n){n&&n.abortFetch()})},checkForbidden:function(n){var t=this.getResponseMsg(n);return n.status===403||t==="AccessDenied"},getEntities:function(n){return f.chain(n).pick("model","collection").toArray().compact().value()},getLoadingView:function(n){var i=t.request("loading:view:gray");return n.modal?t.request("modal:wrapper",{contentView:i}):i}});t.reqres.setHandler("loading:view",function(t){return new n.LoadingView(t||{spinner:{color:"#fff"}})});t.reqres.setHandler("loading:view:gray",function(t){return new n.LoadingView(t||{spinner:{color:"#000"}})})});App.module("Components.Loading",function(n,t,i,r,u,f){"use strict";var e={lines:10,length:6,width:2.5,radius:7,corners:1,rotate:9,direction:1,color:"#000",speed:1,trail:60,shadow:!1,hwaccel:!0,className:"spinner",zIndex:"auto",top:"auto",left:"auto"};n.LoadingView=r.View.extend({template:"loading/loading",initialize:function(n){n||(n={});this.opts=n.spinner||{};f.defaults(this.opts,e)},onAttach:function(){f.defer(function(){this.$el.spin(this.opts)}.bind(this))},onDestroy:function(){this.$el.spin(!1)}})});App.module("Components.Modal",function(n,t,i,r,u,f){"use strict";var e=".wPopup-cont";n.Controller=t.Controllers.Base.extend({name:"Components.Modal.Controller",initialize:function(i){this.flagBackdrop=i.backdrop;this.childControllers.push(i.childController);this.backdropRegion=i.backdropRegion||t.backdropRegion;this.layout=new n.Layout(i);this.listenTo(this.layout,"render",this.onShowRegions);this.listenTo(this.layout,"destroy",this.destroy);this.listenTo(this.layout,"modal:hideRequested",this.onHideRequested);i.onHide&&this.listenTo(this.layout,"modal:hide",i.onHide)},onHideRequested:function(){var i=u(this.layout.el).zIndex(),n=[],t;u(e).each(function(){n.push(u(this).zIndex())});t=Math.max.apply(Math,n);t===i&&this.layout.hide()},onShowRegions:function(){var s,r,i;if($logger.info("Modal.Controller","Call modal window show"),this.options.contentView?(this.layout.setContent(this.options.contentView),this.listenTo(this.options.contentView,"modal:close",this.destroy.bind(this))):$logger.error("Modal.Controller","Call modal windows without content"),this.backdrop=new n.Backdrop,i=u(e),i.length){var o="backdrop-region-"+i.length,h="#"+o,c=u(h);c.length||(c=u('<div id="'+o+'">').appendTo(u("body")));this.backdropRegion=t.createRegion(o,h);s=f.max(i.toArray(),function(n){return parseInt(u(n).css("z-index"),10)||0});r=parseInt(u(s).css("z-index"),10)||0;this.layout.$el.css("z-index",r+2);this.backdrop.$el.css("z-index",r+1)}this.backdropRegion.show(this.backdrop)},onDestroy:function(){this.flagBackdrop!==!1&&this.backdrop.destroy()}});t.reqres.setHandler("modal:wrapper",function(t){var i=new n.Controller(t);return i.layout});t.showModalError=function(n,i,r){var u=new t.ErrorApp.Show.ModalError({title:n||" ",text:i||" "});t.showModal(u,r)};t.showModal=function(n,i){var r=t.createModal(n,i);return r.modalRegion.show(r),r};t.createModal=function(n,i){i=i||{};var f=i.region||t.modalRegion,o=t.request("modal:wrapper",{contentView:n,onHide:i.onHide}),s=u(e);if(s.length){var r="modal-region-"+s.length,h="#"+r,c=u(h);c.length||(c=u('<div id="'+r+'">').appendTo(u("body")));f=t.createRegion(r,h)}return o.modalRegion=f,o}});App.module("Components.Modal",function(n,t,i,r,u,f){"use strict";n.Layout=t.Views.LayoutView.extend({template:"modal/layout",className:"wPopup-cont",regions:{contentRegion:".modal-content-region"},events:{"click .wp-close":"onHideRequested"},initialize:function(){this.listenTo(t.vent,"esc:press",this.onHideRequested);this.listenTo(t.vent,"window:resize",this.resize);this.listenTo(t.vent,"window:scroll",this.scroll)},onRender:function(){this.fadeIn(f.bind(this.resize,this));document.activeElement&&document.activeElement.blur()},onHideRequested:function(n){if(n&&n.preventDefault(),n&&n.target&&u(n.target).is('input[type="file"]')){document.activeElement&&document.activeElement.blur();return}this.trigger("modal:hideRequested")},hide:function(){this.fadeOut(f.bind(this.destroy,this));this.trigger("modal:hide")},resize:function(){var i=u(window),f=i.width(),e=i.height(),r=i.scrollTop(),n=f-this.$el.width(),t=e-this.$el.height();n=n<0?0:n/2;t=(t<10?10:t/2)+r;this.prevScroll=r;this.$el.css({left:n+"px",top:t+"px"})},scroll:function(){var i=u(window),e=i.width(),r=i.height(),o=i.scrollTop,s=this.$el.width(),f=this.$el.height(),t=e-s,n=r-f;t=t<0?0:t/2;n=f<r?(n<10?10:n/2)+o:n<10?10:n/2;this.$el.css({left:t+"px",top:n+"px"})},fadeIn:function(n){this.$el.fadeIn(240,n)},fadeOut:function(n){this.$el.fadeOut(240,n)},setContent:function(n){if(!this.used){this.swapViews(n);this.used=!0;return}this.fadeOut(f.bind(function(){this.swapViews(n)},this))},swapViews:function(n){this.listenTo(n,"attach",function(){this.$el.css("opacity","0");this.$el.show();this.resize();this.$el.hide();this.$el.css("opacity","1");this.resize();this.fadeIn()}.bind(this));this.getRegion("contentRegion").show(n)}});n.Backdrop=t.Views.ItemView.extend({template:!1,className:"wPopup-over ie-opacity"})});App.module("Components.Notif",function(n,t){"use strict";n.Controller=t.Controllers.Base.extend({name:"Components.Notif.Controller",initialize:function(n){this.notifications=n.collection;this.layoutView=this.getLayoutView();t.notifyRegion.show(this.layoutView);this.listenTo(this.layoutView,"childview:notification:collapse",this.changeCollapse);this.listenTo(this.layoutView,"childview:notification:hide",this.hideNotif)},setPromise:function(n){this.promise=n},changeCollapse:function(n){this.promise?this.promise.then(function(){this.collapse(n)}.bind(this)):this.collapse(n)},collapse:function(n){var i=this.notifications.get(n.id),r;i&&(i.set({IsCollapsed:n.collapsed},{silent:!0}),r=new t.Entities.NotificationCollapsedModel(n),this.notifications.setStore(),r.save({},{error:this.errorHandler.bind(this)}),n.collapsed?t.Analytics.Interaction.hideBroadcastEvent(i.get("Summary")):t.Analytics.Interaction.openBroadcastEvent(i.get("Summary")))},hideNotif:function(n){this.promise?this.promise.then(function(){this.hide(n)}.bind(this)):this.hide(n)},hide:function(n){var i=this.notifications.get(n.id),r;i&&(this.notifications.remove(i),this.notifications.setStore(),r=new t.Entities.NotificationNeverShowModel(n),r.save({},{error:this.errorHandler.bind(this)}),t.Analytics.Interaction.closeBroadcastEvent(i.get("Summary")))},errorHandler:function(n,i){var r=this.getResponseMsg(i);r!=="UserNotFound"&&r!=="UserNotCorp"||t.enableSignalR||t.execute("logout:message","AccountProblems")},getLayoutView:function(){return new n.List({collection:this.notifications})}})});App.module("Components.Notif",function(n,t){"use strict";n.Layout=t.Views.ItemView.extend({tagName:"div",className:"wrap cf ie-section",template:"notification/layout",ui:{hideBtn:".bt-close",expandBtn:".open-area"},events:{"click @ui.expandBtn":"onExpand","click @ui.hideBtn":"onHide"},modelEvents:{change:"onModelChanged"},triggers:{"click .btn-request-send":"request:send"},onModelChanged:function(n){this.render();this.toggleExpandButton(!n.get("IsCollapsed"));this.sendGaEvent()},onRender:function(){this.toggleExpandButton(!this.model.get("IsCollapsed"));this.$el.toggleClass("off",!!this.model.get("IsNeverShow"));this.sendGaEvent()},sendGaEvent:function(){this.model.get("IsCollapsed")?t.Analytics.Interaction.viewHiddenBroadcastEvent(this.model.get("Summary")):t.Analytics.Interaction.viewOpenedBroadcastEvent(this.model.get("Summary"))},onExpand:function(){var n=this.ui.expandBtn.hasClass("close-area-view"),t={id:this.model.get("Id"),collapsed:n};this.trigger("notification:collapse",t);this.toggleExpandButton(!n)},toggleExpandButton:function(n){this.ui.expandBtn.toggleClass("close-area-view",n).toggleClass("close-area",n).next().toggleClass("off",!n)},onHide:function(){this.$el.addClass("off");var n={id:this.model.get("Id")};this.trigger("notification:hide",n)},serializeData:function(){var n=this.model.get("Text").replace(/[\r\n]/g," <br /> "),i,r,t;return n=(" "+n).replace(/[^"]((https|http|ftp):\/\/[^\s\r\n<]*)/gi,function(n,t){return t=t.trim(),t.indexOf("my.kaspersky.com")!==-1?' <a href="'+t+'" onclick="App.Analytics.Interaction.broadcastLinkClick(this, false); return false;">'+t+"<\/a>":' <a href="'+t+'" target="_blank" onclick="App.Analytics.Interaction.broadcastLinkClick(this, true);">'+t+"<\/a>"}),i=["img","br","u","em","b","a","p","div","font","li","ol","ul","strong","sub","sup","h1","h2","h3","h4","h5",],r=/<\/?([\w-]*)\s*[\s\w="-]*\/?>/gi,n=n.replace(r,function(n,t){return i.indexOf(t.toLowerCase())===-1?"":n}),t=this.model.get("Category")==="News",{Title:this.model.get("Summary"),Message:n.trim(),IconClass:t?"p-info":"p-alert",IconBackground:t?"bg-orange":"bg-red"}}});n.List=t.Views.CollectionView.extend({childView:n.Layout})});App.module("Components.Pager",function(n,t){"use strict";n.Controller=t.Controllers.Base.extend({name:"Components.Pager.Controller",initialize:function(n){this.collection=n.collection;this.pageCollection=new t.Entities.Collection;this.setupPageCollection();this.layout=this.getLayoutView(n);this.listenTo(this.layout,"childview:page:click",this.onPageClick);this.listenTo(this.collection,"reset",this.onCollectionReset)},onPageClick:function(n){var t=n.model.get("page");this.collection.getPage(t);this.pageCollection.findWhere({isCurrent:!0}).set({isCurrent:!1});n.model.set("isCurrent",!0);this.layout.render()},setupPageCollection:function(){var t=this.collection.state,n;for(this.pageCollection.reset([],{silent:!0}),n=1;n<=t.totalPages;n++)this.pageCollection.add({page:n,isCurrent:n===t.currentPage},{silent:!0})},onCollectionReset:function(){this.setupPageCollection();(!this.layout||this.layout.isDestroyed())&&(this.layout=this.getLayoutView(this.options),this.listenTo(this.layout,"childview:page:click",this.onPageClick));this.layout.render()},getLayoutView:function(){return new n.Layout({collection:this.pageCollection})}});t.reqres.setHandler("pager:view",function(t){var i=new n.Controller(t);return i.layout})});App.module("Components.Pager",function(n,t,i,r,u,f){"use strict";n.Page=t.Views.ItemView.extend({template:"pager/page",tagName:"a",triggers:{click:"page:click"},onRender:function(){this.$el.attr("href","javascript://")}});n.CurrentPage=t.Views.ItemView.extend({template:"pager/page",tagName:"span"});n.DottedPage=t.Views.ItemView.extend({template:"pager/dotted",tagName:"span"});n.HiddenPage=t.Views.ItemView.extend({template:"pager/page",tagName:"span",onRender:function(){this.$el.css("display","none")}});n.Layout=t.Views.CompositeView.extend({template:"pager/layout",className:"pager",childViewContainer:".page-list-container",childView:function(t){var i=t.get("page"),r=t.get("isCurrent"),u=f.any(this.dotted,function(n){return n.start===i}),e=f.any(this.dotted,function(n){return i>n.start&&i<n.end});return r?n.CurrentPage:u?n.DottedPage:e?n.HiddenPage:n.Page},onBeforeRender:function(){var t=3,r=7,i=this.collection.length,u=1,n;(this.dotted=[],i<=12)||(n=this.collection.findWhere({isCurrent:!0}).get("page"),n-u>r&&this.dotted.push({start:u+t,end:n-t+1}),i-n>r&&this.dotted.push({start:n+t,end:i-t+1}))},onRender:function(){var n=this.collection.length;n&&n!==1?this.$el.show():this.$el.hide()}})});App.module("Components.ProgressButton",function(n,t){"use strict";var i=t.Views.LayoutView.extend({name:"Components.ProgressButtonView",template:"progressButton/progressButton",regions:{loadingRegion:".progress-button__loading-region"},ui:{button:".progress-button__button",alignmentWrapper:".progress-button__alignment-wrapper",alignmentItem:".progress-button__alignment-item"},events:{"click @ui.button":"onClick"},showProgress:function(){this.loadingView||this.createLoadingView();this.ui.button.addClass("progress-button__button--progress");this.getRegion("loadingRegion").$el.show();this.isInProgress=!0},hideProgress:function(){this.getRegion("loadingRegion").$el.hide();this.ui.button.removeClass("progress-button__button--progress");this.isInProgress=!1},setProgressState:function(n){n?this.showProgress():this.hideProgress()},setButtonState:function(n){this.ui.button.setButtonState(n)},serializeData:function(){return{text:this.options.text||""}},onClick:function(){(!this.isInProgress||this.options.allowClickWhenInProgress)&&this.trigger("progress-button:click")},onRender:function(){this.options.align&&this.ui.alignmentWrapper.css("text-align",this.options.align);this.options.triggerOnEnter&&this.listenTo(t.vent,"enter:press",this.onClick);this.options.disabled&&this.setButtonState(!1);this.options.width&&(this.ui.alignmentItem.outerWidth(this.options.width),this.ui.button.outerWidth(this.options.width))},createLoadingView:function(){this.loadingView=t.request("loading:view");this.getRegion("loadingRegion").show(this.loadingView)}});n.getView=function(n){return new i(n)}});App.module("RequestPartial",function(n,t,i,r,u,f){"use strict";n.Success=t.Views.LayoutView.extend({template:"requestPartial/success",initialize:function(n){n.requestId||$logger.error("options.requestId required")},serializeData:function(){return{requestId:this.options.requestId}}});n.LayoutView=t.Views.LayoutView.extend({template:"requestPartial/layout",ui:{sendBtn:".btn-request-send",abortBtn:".btn-request-abort",loaderEl:".process-send-request",errorEl:".error-send-request"},events:{"mousedown @ui.sendBtn":"onSendClick","mousedown @ui.abortBtn":"onAbortClick"},onSendClick:function(){this.isLoading()||this.trigger("send:click",this)},onAbortClick:function(){this.isLoading()||t.request("confirm:view",{title:this.messages.abortTitle,text:this.messages.abortMessage,acceptButtonText:this.messages.abortButton,success:f.bind(function(){t.Analytics.Requests.cancelNewRequestOrAnswerEvent(this.model);this.trigger("abort:click",this)},this)})},isLoading:function(){return!this.ui.loaderEl.hasClass("off")},switchLoading:function(n){this.ui.sendBtn.setButtonState(!n);this.ui.abortBtn.setButtonState(!n);this.ui.loaderEl.toggleClass("off",!n)},switchError:function(n,t){var f=u('<div class="err" data-attr="'+t+'"> '+n+" <\/div>"),i=this.ui.errorEl.find('[data-attr="'+t+'"]'),e,r;i.length||(this.ui.errorEl.append(f),i=f);i.html(n).toggleClass("off",!n);e=this.ui.errorEl.find("[data-attr]").not(".off").length;r=this.ui.errorEl.find('[data-attr="RequiredRule"]');r.detach();this.ui.errorEl.prepend(r);this.ui.errorEl.toggleClass("off",!e)},showSuccess:function(n,i){var r,u;i=i||{};r={path:n,requestId:i.IncidentNumber};i.AttachedFileError&&(r={path:"request/errors/attach-files-error",requestId:i.IncidentNumber,attachedFileErrors:i.AttachedFileErrors.join(", ")});i.InstanceId&&(r.InstanceId=i.InstanceId);r.onHide=function(){t.execute("request:list")};u=t.RequestApp.getSuccessView(r);this.listenTo(u,"request:link:click",f.bind(function(){t.Analytics.Requests.newRequestPopUpClick(this.model)},this));t.modalRegion.show(u);t.Analytics.Interaction.pageViewRequestSubmitSuccess(this.model)},setup:function(n){n.switchLoading=f.bind(this.switchLoading,this);n.switchError=f.bind(this.switchError,this);n.showSuccess=f.bind(this.showSuccess,this)},initialize:function(){this.messages={abortTitle:t.glob("request/ca/confirm-title"),abortMessage:t.glob("request/ca/confirm-text"),abortButton:t.glob("request/ca/confirm-button")}},onRender:function(){}})});App.module("RequestApp.RequestSuccess",function(n,t,i,r,u,f){"use strict";var e=t.module("Utils.String");n.Success=t.Views.LayoutView.extend({template:"requestSuccess/layout",ui:{successMsg:".success-msg"},onRender:function(){if(this.options&&this.options.msg||$logger.error("Missing arguments RequestSuccess.Success#onRender"),this.ui.successMsg.html(this.options.msg),this.options.InstanceId){var n=this.ui.successMsg.find('a[href^="/request/view/"]');n.attr("href","/request/view/"+this.options.InstanceId);n.one("click",f.bind(this.onLinkClick,this))}},onLinkClick:function(n){n.button===0&&(n.preventDefault(),t.execute("request:view",{id:this.options.InstanceId}),this.trigger("modal:close"),this.trigger("request:link:click"),this.destroy())}});t.RequestApp.getSuccessView=function(i){var r,u,f;return i=i||{},i.path?(i.requestId||$logger.warn("Request Id is missing"),r=t.glob(i.path,i)):i.msg?r=i.msg:$logger.error("Incorrect call App.RequestApp.getSuccessView, options: ",e.toJSON(i)),u=new n.Success({msg:r,InstanceId:i.InstanceId}),f=t.request("modal:wrapper",{contentView:u,onHide:i.onHide}),this.listenTo(u,"request:link:click",function(){f.trigger("request:link:click")}),f}});App.module("Components.Select",function(n,t){"use strict";n.Controller=t.Controllers.Base.extend({name:"Components.Select.Controller",initialize:function(t){t&&t.isInput?this.layout=new n.LayoutInput(this.options):t?this.layout=new n.Layout(this.options):$logger.error("Request select-view without options")}});t.reqres.setHandler("select:view",function(t){var i=new n.Controller(t);return i.layout})});App.module("Components.Select",function(n,t,i,r,u,f){"use strict";function e(n,t){var i;return f.isString(t)?i=function(n){return n[t]}:f.isFunction(t)&&(i=t),i(n.attributes||n)}function h(n,t){var r=25,f=u("#"+t+"-menu"),i=u(window),e=n.closest(".select2").offset().top,o=f.closest(".ui-selectmenu-menu").offset().top,s=o>=e,h=e-i.scrollTop(),c=o-i.scrollTop(),l=s?i.height()-c-r:h-r;f.css("max-height",l+"px");n.selectmenu("refreshPosition")}var s=t.module("Entities.Validation"),o="suffix";n.Option=t.Views.ItemView.extend({template:!1,tagName:"option",onRender:function(){var n=e(this.model,this.options.valueField),t=e(this.model,this.options.textField);this.options.wholeModel&&this.$el.data("value",this.model);this.options.isDisabled&&this.options.isDisabled(this.model.attributes||this.model)&&this.$el.prop("disabled",!0);this.options.getSuffix&&this.$el.data(o,this.options.getSuffix(this.model.attributes||this.model));this.$el.attr("value",n);this.$el.text(t)}});n.OptionInput=t.Views.ItemView.extend({template:!1,tagName:"span",onRender:function(){var n=e(this.model,this.options.valueField),t=e(this.model,this.options.textField);this.options.wholeModel&&this.$el.data("value",this.model);this.$el.attr("value",n);this.$el.html(t)}});n.LayoutInput=t.Views.CompositeView.extend({template:"select/layout-input",className:"spec-sel",childViewContainer:".sel-area",childView:n.OptionInput,ui:{input:".sel-cust-input",drop:".sel-area"},events:{"keydown @ui.input":"onKeyDownInput","keypress @ui.input":"onKeyPress","keyup @ui.input":"onKeyUpInput","focusout @ui.input":"onFocusOutInput","mousedown @ui.input":"onInputClick","click .sel-area span":"onClickItem","click .bt-add":"onBtClick"},onBtClick:function(){this.$el.parent().hasClass("disabled-box")||this.ui.drop.toggleClass("off")},onInputClick:function(){this.$el.parent().hasClass("disabled-box")||(this.ui.drop.hasClass("off")&&(this.preventFocusOut=!0),this.toggleDropdown())},onFocusOutInput:function(){var n=this.preventFocusOut;f.delay(f.bind(function(){var t=this.ui.input,i=t.val();this.initialValue=u.trim(i);this.focused=!1;n||this.ui.drop.addClass("off");this.trimVal()},this),200)},getVal:function(){var n=this.ui.input;return n.val()},showDropdown:function(){var n=this.ui.drop,t=this.getVal();this.refreshDropdown(t);n.removeClass("off")},toggleDropdown:function(){var n=this.ui.drop,t=this.getVal();this.refreshDropdown(t);n.toggleClass("off");this.$(".sel-area span.focused").removeClass("focused")},onClickItem:function(n){var t=u(n.target),i=t.attr("value"),r=t.text();this.ui.input.val(r).attr("val",i);this.trimVal();this.initialValue=u.trim(i);this.ui.drop.addClass("off")},trimVal:function(){var r=this.ui.input,t=this.$(".spec-bt span"),i=r.val(),n=u.trim(i);n===""||n==="- Not defined -"?t.text(""):t.text(i);this.$el.trigger("change");this.trigger("change",n)},onRender:function(){var n=this.ui.input;n.attr("placeholder",this.options.placeholder);n.attr("val","")},onKeyUpInput:function(n){this.$(".sel-area span").css("display","none");var t=u(n.target).val();n.keyCode===9&&this.ui.input.trigger("mousedown");this.refreshDropdown(t);this.trimVal()},onKeyDownInput:function(n){var t=this.$(".sel-area span"),i,r,f;n.keyCode===9?(this.onFocusOutInput(),t.css("display","none")):n.keyCode===40?(i=!1,t.each(function(n,r){var e=u(r),f;i||e.hasClass("focused")&&(e.removeClass("focused"),n<t.length-1?(f=u(t[n+1]),f.addClass("focused")):(f=u(t[0]),f.addClass("focused")),i=!0)}),i||(r=u(t[0]),r.addClass("focused"))):n.keyCode===38?(i=!1,t.each(function(n,r){var e=u(r),f;i||e.hasClass("focused")&&(e.removeClass("focused"),n>0?(f=u(t[n-1]),f.addClass("focused")):(f=u(t[t.length-1]),f.addClass("focused")),i=!0)}),i||(r=u(t[0]),r.addClass("focused"))):n.keyCode===13&&(f=this.$(".sel-area span.focused"),f.removeClass("focused").trigger("click"),f.length||this.toggleDropdown())},onKeyPress:function(n){s.lengthValidationInputHandler(this.options.observableModel,u(n.target),{observe:this.options.observableProperty,trimSpaces:!0},n)},refreshDropdown:function(n){n=u.trim(n);var t=this.$(".sel-area span");n!==this.initialValue?(n=n.toLowerCase(),t.each(function(t,i){var r=u(i),f=r.text().toLowerCase();f.indexOf(n)>-1&&r.css("display","block")})):t.css("display","block")},childViewOptions:function(){return f.pick(this.options,["textField","valueField"])},setValue:function(n){var t,i,r,u;if(f.isObject(n)&&(n=n[this.options.valueField]),this.initialValue=n,t=this.ui.input,!n){t.val("");return}i=this.options.collection.find(f.bind(function(t){return t.get(this.options.valueField).toLowerCase().trim()===n.toLowerCase().trim()},this));i?(r=i.get(this.options.valueField),u=i.get(this.options.textField),t.val(u).attr("val",r),this.trimVal()):(t.val(n).attr("val",n),this.trimVal())},getValue:function(){return this.ui.input.val()||this.options.defaultValue}});n.Layout=t.Views.CompositeView.extend({name:"Components.Select.Select.Layout",template:"select/layout",tagName:"span",childViewContainer:"select",childView:n.Option,events:{"change select":"onChange"},ui:{select:"select",textEl:"i"},onRender:function(){},childViewOptions:function(){return f.pick(this.options,["textField","valueField","wholeModel","isDisabled","getSuffix"])},onChange:function(){var n=this.$("option:selected"),i=n.text(),t=n.val();this.setText(t,i);this.trigger("change",t)},setValue:function(n){var u,r,t,i;if(!n||n=="null"){this.setText();return}f.isObject(n)?(t=e(n,this.options.textField),i=e(n,this.options.valueField),this.setText(i,t)):(u={},u[this.options.valueField]=n,r=this.collection.findWhere(u),r?(t=e(r,this.options.textField),i=r.get(this.options.valueField),this.setText(i,t)):$logger.info(this.name,"Couldnt find model with "+this.options.valueField+" === "+n))},setText:function(n,t){n?(this.ui.select.val(n),this.ui.textEl.html(t).removeClass("select-placeholder"),this.ui.select.attr("title",t)):(this.ui.textEl.text(this.options.placeholder||"---").addClass("select-placeholder"),this.ui.select.val(""),this.ui.select.removeAttr("title"));this.updatePlugin()},updatePlugin:function(){var n={adjustHeightToWindow:this.options.adjustHeightToWindow};(this.options.ellipsize||this.options.getSuffix)&&(n.format=function(n,t){var i=t.data(o),r=u('<div class="selectmenu__item-wrapper" />'),f=u('<span class="selectmenu__item-text" />').text(n).toggleClass("ellipsized",!!this.options.ellipsize).toggleClass("selectmenu__item-text--wrap-words",!!this.options.wrapWords);return r.append(f),i&&r.append(u('<span class="selectmenu__item-suffix" />').text(i)),this.options.ellipsize&&r.attr("title",n+(i?" "+i:"")),r[0].outerHTML}.bind(this));this.ui.select.selectmenu(n)},getValue:function(){return this.options.wholeModel?this.$("option:selected").data("value"):this.ui.select.val()},serializeData:function(){return{forbidEmpty:this.options.forbidEmpty}},onBeforeDestroy:function(){this.ui.select.selectmenu("destroy");r.View.prototype.onBeforeDestroy.apply(this,arguments)}});u(document).on("selectmenuopen",function(n){var t=u(n.target);t.selectmenu("option","adjustHeightToWindow")&&h(t,n.target.id)});u(document).on("click.select-component-dropdown",function(n){var t=u(n.target).closest(".spec-sel");f.each(u(".spec-sel"),function(n){var i=u(n);i.is(t)||f.delay(function(){i.find(".sel-area").addClass("off")})})})});App.module("Components.SuspiciousBehaviorBlocking",function(n,t){"use strict";function f(t){function o(){f+=1;$logger.debug(i,"+fetchOriginalModel(). Attempt: "+f);t.fetch(function(n,t){h(n,t)},f);$logger.debug(i,"-fetchOriginalModel(). Attempt: "+f)}function s(){return $logger.debug(i,"+getController()"),e||(e=new n.Controller({model:t.model,region:t.region,captchaUseCase:t.captchaUseCase,validationView:t.validationView,onContinue:o})),$logger.debug(i,"-getController()"),e}function h(n,f){if($logger.debug(i,"+onFetchError(). Model: "+n.getName()+". Response: "+u.toJSON(f)),t.onFetchError){$logger.debug(i,"onFetchError(). Calling onFetchError callback.");t.onFetchError(n,f)}if(f.responseJSON.ModelState&&f.responseJSON.ModelState["captchaModel.Captcha"]){s().onCaptchaServerValidationError(f);$logger.debug(i,"onFetchError(). Captcha validation error.");return}if(f.responseJSON.Code===r.errors.IP_IS_BLOCKED){$logger.debug(i,"onFetchError(). IPsBlocked - Displaying blocking view");t.showBlockingView(s().layoutView);return}$logger.debug(i,"onFetchError(). Calling onUnhandledFetchError callback");t.onUnhandledFetchError(n,f)}var i="SuspiciousBehaviorBlockingHandler",f=0,e;this.reset=function(){e=undefined;t.model.unset("Hash");t.model.unset("Captcha")};this.fetchModel=o}var i=t.module("Constants.Captcha"),r=t.module("Constants.Ajax"),u=t.module("Utils.String");n.Controller=t.Controllers.Base.extend({name:"Components.SuspiciousBehaviorBlocking.Controller",initialize:function(t){this.blockedModel=t.model;this.captchaUseCase=t.captchaUseCase||i.useCase.SUSPICIOUS_BEHAVIOR;this.onContinue=t.onContinue;this.layoutView=new n.LayoutView({model:this.blockedModel,validationView:t.validationView});this.listenTo(this.layoutView,"continue:click",this.onContinueClick);this.listenTo(this.layoutView,"render",this.onShowRegions)},onShowRegions:function(){this.captchaView=t.request("captcha:sts:view",{captchaUseCase:this.captchaUseCase,hideLabel:!0});this.listenTo(this.captchaView.model,"toggle:captcha",this.toggleCaptcha);this.listenTo(this.captchaView,"fetching",this.captchaFetching);this.layoutView.getRegion("captchaRegion").show(this.captchaView)},toggleCaptcha:function(n){this.layoutView.switchCaptcha(n)},captchaFetching:function(n){this.layoutView.switchSubmitBtn(n.fetched)},onContinueClick:function(){(this.blockedModel.set({Hash:this.captchaView.model.get("Hash"),Captcha:this.captchaView.model.get("captcha")}),this.blockedModel.isValid(!0)||!this.blockedModel.validationState.CaptchaRule.length)&&(this.layoutView.switchLoading(!0),this.onContinue())},onCaptchaServerValidationError:function(n){this.layoutView.switchLoading(!1);this.captchaView.refreshCaptcha(n)}});t.reqres.setHandler("blocked:address:view",function(n){return new f(n)})});App.module("Components.SuspiciousBehaviorBlocking",function(n,t,i){"use strict";var r=t.module("Components.ProgressButton");n.LayoutView=t.Views.LayoutView.extend({template:"suspiciousBehaviorBlocking/layout",regions:{captchaRegion:".captcha-region",buttonRegion:".button-region"},initialize:function(){i.Validation.bind(this,{valid:function(n,t){i.Validation.callbacks.valid.apply(this,arguments);n.hideErrorMessage(t);n.options.validationView&&n.options.validationView.onModelValid&&n.options.validationView.onModelValid.call(this,n.options.validationView,t)},invalid:function(n,t,r){i.Validation.callbacks.invalid.apply(this,arguments);n.showErrorMessage(t,r);n.options.validationView&&n.options.validationView.onModelInvalid&&n.options.validationView.onModelInvalid.call(this,n.options.validationView,t,r)}})},onRender:function(){this.buttonView=r.getView({text:t.glob("suspiciousBehaviorBlocking/continue"),triggerOnEnter:!0,align:"center"});this.getRegion("buttonRegion").show(this.buttonView);this.listenTo(this.buttonView,"progress-button:click",this.onContinueClick)},onContinueClick:function(){this.trigger("continue:click")},hideErrorMessage:function(n){var t=this.$('[data-readonly-text="'+n.toLowerCase()+'"]');t.addClass("off")},showErrorMessage:function(n,t){var i=this.$('[data-readonly-text="'+n.toLowerCase()+'"]');i.html(t);i.removeClass("off")},switchLoading:function(n){this.buttonView.setProgressState(n)},switchCaptcha:function(n){this.$(".captcha-region").toggleClass("off",!n);this.$(".captcha-error").toggleClass("off",!n)},switchSubmitBtn:function(n){this.buttonView.setButtonState(n)},onDestroy:function(){this.options.validationView&&this.options.validationView.bindValidation&&this.options.validationView.bindValidation()}})});App.module("UserComponent",function(n,t,i,r,u,f){"use strict";var e=t.glob;n.LogoReplaceConfirmView=t.Views.LayoutView.extend({template:"userShow/logo-upload-confirm",ui:{logoInputFile:".input-logo-file"},events:{"click @ui.logoInputFile":"onLogoInputFileClick"},initialize:function(n){this.parent=n.parent;delete this.options.parent},onLogoInputFileClick:function(){this.parent.replaceFileInput(this.ui.logoInputFile);this.trigger("modal:close");this.destroy()},serializeData:function(){return this.options}});n.CompanyLogoView=t.Views.LayoutView.extend({template:"userShow/logo-upload",ui:{logoPlaceholder:".logo-def",logoCustom:".logo-custom",logoImg:".logo-custom img",removeBtn:".logo-del",spinner:".spinner",success:".success",fileInput:".input-logo-file",errorMessage:".error-message",uploadBtn:".upload-button",logoSpinner:".spinner-logo",replaceButton:".upload-button-confirm"},events:{"click @ui.removeBtn":"onRemoveClick","click @ui.replaceButton":"onReplaceButtonClick","click @ui.fileInput":"onUploadButtonClick","drop @ui.fileInput":"onUploadButtonClick","change @ui.fileInput":"onFileChange"},initialize:function(){i.Validation.bind(this,{valid:function(n){i.Validation.callbacks.valid.apply(this,arguments);n.switchErrorMsg()},invalid:function(n,t,r){i.Validation.callbacks.invalid.apply(this,arguments);n.switchErrorMsg(r)}})},replaceFileInput:function(n){var t=this.$(".input-logo-file-form");t.empty();n.prependTo(t);this.ui.fileInput=n;this.trigger("logo:select")},onReplaceButtonClick:function(){this.ui.replaceButton.hasClass("disabled")||(this.switchErrorMsg(),this.checkAgreement()?this.trigger("logo:replace"):this.trigger("logo:fileAgreement"))},onUploadButtonClick:function(n){this.trigger("logo:select");this.switchErrorMsg();this.checkAgreement()||(this.trigger("logo:fileAgreement"),n.stopPropagation(),n.preventDefault())},checkAgreement:function(){var n=this.options.fileAgreement,t=n.get("NeedAcceptAgreement");return!t},onRemoveClick:function(){var n=this.ui.uploadBtn.hasClass("bg-gray");n||(this.switchErrorMsg(),t.Analytics.Users.companyLogoDeletingEvent(),t.request("confirm:view",{title:e("profile/companyLogo/deleteConfirm/title"),text:e("profile/companyLogo/deleteConfirm/text"),acceptButtonText:e("profile/companyLogo/deleteConfirm/button"),success:function(){this.imageFileInputReset();this.trigger("delete:click",this)}.bind(this)}))},onFileChange:function(n){var t=n.target.files[0];this.model.set({logoImage:t});this.imageFileInputReset();this.trigger("logo:send",this)},imageFileInputReset:function(){this.ui.fileInput.closest("form").get(0).reset()},switchLoading:function(n,t){if(n)this._showLoading();else if(this._hideLoading(),t){if(f.isString(t))this.ui.success.html(t);else{var i=e("profile/companyLogo/success");this.ui.success.html(i)}this.ui.success.removeClass("off")}},showConfirmButton:function(n){n?(this.ui.replaceButton.removeClass("off"),this.ui.uploadBtn.addClass("off"),this.isReplaceLogo=!0):(this.ui.replaceButton.addClass("off"),this.ui.uploadBtn.removeClass("off"),this.isReplaceLogo=!1)},switchLogoLoading:function(n){this.ui.logoSpinner.toggleClass("off",!n);n||this._hideLoading()},toggleLogoImage:function(n){this.ui.logoPlaceholder.toggleClass("off",!!n);this.ui.logoCustom.toggleClass("off",!n);n&&this.ui.logoImg.attr("src",n)},switchErrorMsg:function(n){this.ui.errorMessage.toggleClass("off",!n).html(n);this.ui.success.addClass("off")},_showLoading:function(){this.ui.removeBtn.addClass("off");this.ui.spinner.removeClass("off");this.ui.success.addClass("off");this.ui.uploadBtn.disableButton();this.ui.replaceButton.disableButton();this.ui.uploadBtn.find("form").hide()},_hideLoading:function(){this.ui.removeBtn.removeClass("off");this.ui.spinner.addClass("off");this.ui.uploadBtn.enableButton();this.ui.replaceButton.enableButton();this.ui.uploadBtn.find("form").show()}});t.reqres.setHandler("logo:replace:view",function(n){var i=new t.UserComponent.LogoReplaceConfirmView(n),r=t.request("modal:wrapper",{contentView:i});return t.modalRegion.show(r),i})});App.module("UserComponent",function(n,t){"use strict";n.Controller=t.Controllers.Base.extend({name:"UserComponent.Controller",commonErrorHandler:function(n){var i=t.ErrorLocalizer.getModalText(this.globalizePath,n);return i.isFound===!1?!1:(this.showError(i.title,i.text),!0)}})});App.module("UserComponent",function(n,t,i,r,u,f){"use strict";n.LayoutView=t.Views.LayoutView.extend({template:"userShow/layout",className:"section",regions:{deleteRegion:".delete-region",userRightsRegion:".user-rights",logoRegion:".company-logo"},initialize:function(n){i.Validation.bind(this,{valid:function(n,t){i.Validation.callbacks.valid.apply(this,arguments);n.validationCallback(t,!1)},invalid:function(n,t,r){i.Validation.callbacks.invalid.apply(this,arguments);n.validationCallback(t,r)}});this.bindings={".profile-first-name":"FirstName",".profile-last-name":"LastName",".profile-country":{observe:"Country",collection:n.countryCollection,textField:"Name",valueField:"ISOCode"},".profile-filial":{observe:"Organization",collection:n.filialsCollection,textField:"Name",valueField:"Name",placeholder:t.glob("profile/personalinfo/filialDefault")}}},ui:{delCompanyBtn:".delete-company-btn",saveProfileBtn:".profile-save-btn",resetPasswordBtn:".reset-password-btn",errContainer:".profile-save-error",commonErr:".profile-save-error .common-err",successMsg:".profile-save-ok",termsOfUseLink:".terms-of-use__link"},triggers:{"click .terms-of-use__link":"termsOfUse:click","click .profile-file-agreement-btn":"file:agreement","click .profile-file-agreement-accepted-link":"file:agreement"},events:{"change .delete-company":"onDeleteCompanyChange","click @ui.saveProfileBtn":"onSaveProfile","click @ui.resetPasswordBtn":"onResetPassword","click @ui.delCompanyBtn":"onDeleteCompany"},serializeData:function(){return{Email:this.options.userInfo.get("Email"),CompanyName:this.options.userInfo.get("CompanyName"),CompanyId:t.glob("profile/personalinfo/company-id",{companyId:this.options.userInfo.get("CompanyId")})}},switchRemoveCompArea:function(n){var t=this.$(".remove-company-area");t.toggleClass("off",!n)},showFreshAgreement:function(n){this.$(".profile-file-agreement-last").addClass("off");this.$(".profile-file-agreement-accepted").removeClass("off");this.$(".profile-file-agreement-accepted-date").text(n);this.$(".buttonbar").removeClass("mrt2").addClass("mrt")},onDeleteCompanyChange:function(n){var r=this.$(".delete-company-error"),t;if(r.addClass("off"),t=this.$(".delete-company-wait"),!t.hasClass("off")){n.preventDefault();return}var i=n.target.checked,u=this.ui.delCompanyBtn,f=this.$('[for="c-agree-03"]');f.toggleClass("checked",i);this._toggleBtn(u,i)},_toggleBtn:function(n,t){n.data("trigger",t);n.toggleClass("bg-gray",!t).toggleClass("bg-red",t)},onSaveProfile:function(n){n.preventDefault();var t=!this.ui.saveProfileBtn.hasClass("disabled");t&&this.trigger("profile:save")},switchErrorMsg:function(n){n?(this.ui.errContainer.removeClass("off"),this.ui.commonErr.html(n).removeClass("off"),this.ui.successMsg.addClass("off")):this.ui.commonErr.addClass("off")},switchError:function(n,t){var f=u('<div class="err" data-attr="'+t+'"> '+n+" <\/div>"),i=this.ui.errContainer.find('[data-attr="'+t+'"]'),r;i.length||(this.ui.errContainer.append(f),i=f);i.html(n).toggleClass("off",!n);r=this.ui.errContainer.find("[data-attr]").not(".off").length;this.ui.errContainer.toggleClass("off",!r);r&&(this.ui.successMsg.addClass("off"),this.ui.errContainer.find(".common-err").addClass("off"))},switchSaveProfileLoading:function(n,t){var r=this.$(".profile-save-btn"),u=this.$(".profile-save-wait"),i=this.$(".profile-save-ok");i.addClass("off");n?(r.disableButton(),u.removeClass("off"),i.addClass("off")):(u.addClass("off"),r.enableButton(),t&&i.removeClass("off"))},validationCallback:t.Behaviors.ValidationHandler.Handler,onResetPassword:function(n){n.preventDefault();var t=!this.ui.resetPasswordBtn.hasClass("disabled");t&&(this.switchPwdLoading(!0),this.switchPwdErrorMsg(!1),this.trigger("reset:password"))},switchPwdErrorMsg:function(n){var t=this.$(".reset-password-error"),i=this.$(".reset-password-ok");n?(f.isString(n)&&t.html(n),t.removeClass("off"),i.addClass("off")):t.addClass("off")},switchPwdLoading:function(n,t){var r=this.$(".reset-password-btn"),u=this.$(".reset-password-wait"),i=this.$(".reset-password-ok");n?(r.disableButton(),u.removeClass("off"),i.addClass("off")):(r.enableButton(),u.addClass("off"),f.isString(t)&&i.text(t),t&&i.removeClass("off"))},switchDelProfErrorMsg:function(n){return this.deleteView.switchDelProfErrorMsg(n)},switchDelProfLoading:function(n,t){return this.deleteView.switchDelProfLoading(n,t)},onDeleteCompany:function(n){n.preventDefault();var t=this.ui.delCompanyBtn.data("trigger");t&&this.trigger("delete:company")},switchDelCompErrorMsg:function(n){var t=this.$(".delete-company-error"),i=this.$(".delete-company-ok");n?(i.addClass("off"),t.html(n).removeClass("off")):t.addClass("off")},switchDelCompLoading:function(n,t){var u=this.ui.delCompanyBtn,r=this.$(".delete-company-wait"),i=this.$(".delete-company-ok");this._toggleBtn(u,!n);n?(r.removeClass("off"),i.addClass("off")):(r.addClass("off"),t&&(f.isString(t)&&i.html(t),i.removeClass("off")))},showCompanyLogo:function(){this.$(".company-logo").removeClass("off")},onRender:function(){var r=this.options.features.termsOfUse,u=this.options.features.fileUploadAgreement,f=this.options.features.userPermissions,e=this.options.features.deleteCompany,i=this.options.features.title,o=this.options.userInfo.get("Login")===t.authModel.get("username");this.deleteView=new n.DeleteView({self:o});this.listenTo(this.deleteView,"delete:profile",function(){this.trigger("delete:profile")});this.getRegion("deleteRegion").show(this.deleteView);r&&this.$(".terms-of-use__profile").removeClass("off");u&&this.$(".file-agreement-status").removeClass("off");f&&this.$(".user-rights").removeClass("off");i&&this.$(".layout-title").text(i);this.options.userInfo.get("CompanyId")==="Unknown company"&&this.$(".filial").addClass("off");e||this.$(".remove-company-area").addClass("off");this.stickit()}});n.RightsView=t.Views.LayoutView.extend({template:"userShow/user-rights",initialize:function(){this.bindings={".ViewAllRequests":"ViewAllRequests",".EditAllRequests":"EditAllRequests",".ManageContacts":"ManageContacts",".RemoveLicenses":"RemoveLicenses"}},behaviors:{Checkboxes:{fields:{ViewAllRequests:{EditAllRequests:{ManageContacts:[],RemoveLicenses:[]}}}}},ui:{saveBtn:".permissions-save-btn"},events:{"click @ui.saveBtn":"onSaveBtnClick"},onSaveBtnClick:function(){var n=!this.ui.saveBtn.hasClass("disabled");n&&(this.switchLoading(!0),this.switchError(!1),this.trigger("permissions:save"))},switchLoading:function(n,t){var i=this.$(".permissions-save-wait"),r=this.$(".permissions-save-ok");this.switchButton(!n);n?(i.removeClass("off"),r.addClass("off")):(i.addClass("off"),t&&r.removeClass("off"))},switchError:function(n){var i=this.$(".permissions-save-ok"),t=this.$(".permissions-save-error");n?(f.isString(n)&&t.text(n),t.removeClass("off"),i.addClass("off")):t.addClass("off")},switchButton:function(n){this.ui.saveBtn.setButtonState(n)},onRender:function(){this.stickit();var n=this.options.authModel.get("role");n.indexOf("TA ")>-1&&(this.$(".RemoveLicenses").parent().addClass("off"),this.model.set({RemoveLicenses:!1},{silent:!0}))}});n.DeleteView=t.Views.LayoutView.extend({getTemplate:function(){return this.options.self?"userShow/profile-delete":"userShow/user-delete"},ui:{delProfileBtn:".delete-profile-btn"},events:{"change .delete-profile":"onDeleteProfileChange","click @ui.delProfileBtn":"onDeleteProfile"},onDeleteProfileChange:function(n){var r=this.$(".delete-profile-error"),t;if(r.addClass("off"),t=this.$(".delete-profile-wait"),!t.hasClass("off")){n.preventDefault();return}var i=n.target.checked,u=this.ui.delProfileBtn,f=this.$('[for="c-agree-02"]');f.toggleClass("checked",i);this._toggleBtn(u,i)},_toggleBtn:function(n,t){n.data("trigger",t);n.toggleClass("bg-gray",!t).toggleClass("bg-red",t)},onDeleteProfile:function(n){n.preventDefault();var t=this.ui.delProfileBtn.data("trigger");t&&this.trigger("delete:profile")},switchDelProfErrorMsg:function(n){var t=this.$(".delete-profile-error"),i=this.$(".delete-profile-ok");n?(i.addClass("off"),t.html(n).removeClass("off")):t.addClass("off")},switchDelProfLoading:function(n,t){var u=this.ui.delProfileBtn,i=this.$(".delete-profile-wait"),r=this.$(".delete-profile-ok");this._toggleBtn(u,!n);n?(i.removeClass("off"),r.addClass("off")):(i.addClass("off"),t&&r.removeClass("off"))}})});App.module("ErrorApp",function(n,t,i,r,u,f){"use strict";var e=t.Routing.RouteController.extend({fileNotFound:function(){return t.Analytics.Interaction.fileNotFoundError(),new n.Show.Controller({region:t.mainRegion,view:new n.Show.FileNotFound})},notFound:function(){return new n.Show.Controller({region:t.mainRegion,view:new n.Show.NotFound})},forbidden:function(){return new n.Show.Controller({region:t.mainRegion,view:new n.Show.Forbidden})},internalError:function(){return new n.Show.Controller({region:t.mainRegion,view:new n.Show.InternalError})},customError:function(i){t.mainRegion.reset();var r=new n.Show.CustomError(i);t.mainRegion.show(r)}});n.Router=r.AppRouter.extend({appRoutes:{"error/notfound":"notFound","error/forbidden":"forbidden","error/internalError":"internalError","*fileNotFound":"fileNotFound","*notFound":"notFound"}});t.addInitializer(function(){return n.RouteController=new e,new n.Router({controller:n.RouteController})});t.commands.setHandler("error:notFound",function(){t.navigate("error/notFound");n.RouteController.executeAction("notFound")});t.commands.setHandler("error:forbidden",function(){t.navigate("error/forbidden");n.RouteController.executeAction("forbidden")});t.commands.setHandler("error:internal",function(){t.navigate("error/internalError");n.RouteController.executeAction("internalError")});t.commands.setHandler("logout:message",function(n){t.execute("auth:logout");var r=new t.AccountApp.Login.ErrorView({model:new i.Model({errorTitle:t.glob("modals/"+n+"/title"),errorDescription:t.glob("modals/"+n+"/message"),errorOkBtn:t.glob("modals/close")})}),u=t.request("modal:wrapper",{contentView:r});t.modalRegion.show(u)});t.commands.setHandler("replace:main",function(i){i=i||{};n.RouteController.executeAction("customError",i);var r=t.mainRegion.show;t.mainRegion.show=function(){};f.delay(function(){t.mainRegion.show=r},200)});t.commands.setHandler("error:paste:overflow",function(){var n=new t.ErrorApp.Show.PasteOverflow;t.showModal(n)});n.showAccountError=function(i,r){var u=new n.Show.AccountError({title:i,text:r}),f=t.request("modal:wrapper",{contentView:u});t.modalRegion.show(f)}});App.module("ErrorApp.Show",function(n,t){"use strict";n.Controller=t.Controllers.Base.extend({name:"ErrorApp.Show.Controller",initialize:function(n){this.layoutView=n.view;this.listenTo(this.layoutView,"back:to:main",this.backToMainPage);this.show(this.layoutView,{loading:!1})},backToMainPage:function(){t.execute("request:list")}})});App.module("ErrorApp.Show",function(n,t,i,r,u,f){"use strict";var e=t.glob;n.NotFound=t.Views.LayoutView.extend({template:"_error/show/404",className:"section",triggers:{"click .back-to-main":"back:to:main"},initialize:function(){t.Analytics.Interaction.error404Event()}});n.FileNotFound=n.NotFound.extend({template:"_error/show/fileNotFound"});n.Forbidden=t.Views.LayoutView.extend({template:"_error/show/forbidden",className:"section",triggers:{"click .back-to-main":"back:to:main"}});n.InternalError=t.Views.LayoutView.extend({template:"_error/show/500",className:"section",triggers:{"click .back-to-main":"back:to:main"},initialize:function(){t.Analytics.Interaction.error500Event()}});n.CustomError=t.Views.LayoutView.extend({template:"_error/show/custom",className:"section",events:{"click .back-to-main":"onBack"},onBack:function(){t.execute("request:list");this.trigger("back:to:main")},serializeData:function(){return this.options}});n.ModalError=t.Views.LayoutView.extend({template:"_error/show/modal-error",className:"section",ui:{textBlockLinks:".modal-window__text a, .modal-window__title a"},events:{"click @ui.textBlockLinks":"onLinkInTextClicked"},onLinkInTextClicked:function(){this.options.onLinkInTextClicked&&this.options.onLinkInTextClicked()},serializeData:function(){return this.options}});n.CustomSuccess=t.Views.LayoutView.extend({template:"_error/show/custom-success",className:"section",initialize:function(){this.options.iconClass=this.options.useQuestIcon?"quest-ok-icon":"success-icon";this.options=f.defaults(this.options,{text:"",title:""})},serializeData:function(){return this.options}});n.AccountError=t.Views.LayoutView.extend({template:"_error/show/accountError",className:"section",serializeData:function(){return{title:this.options.title||e("errors/end-session/title"),text:this.options.text||e("errors/end-session/text")}}});n.ConfirmLogout=t.Views.LayoutView.extend({template:"_error/show/confirm-logout",events:{"click .confirm":"onConfirmClick"},serializeData:function(){var n=this.options.globPath+"logout",t=e(this.options.globPath+"logout-btn"),i=e(this.options.globPath+"close-btn");return{message:e(n),logoutBtnText:t,closeBtnText:i||e("account/activate/close"),btnWarn:this.options.warnButton}},onConfirmClick:function(){$logger.info("ErrorApp.Show.ConfirmLogout","confirm logout clicked");this.options.confirm()}});n.MainRegionError=t.Views.LayoutView.extend({template:"_error/show/main-region-error",serializeData:function(){var n=this.options;return{regionTitle:n.regionTitle||"Company account",title:n.title||"Unknown error",text:n.text||'Please contact <a href="mailto:companyaccount@kaspersky.com">companyaccount@kaspersky.com<\/a>'}}});n.PasteOverflow=t.Views.LayoutView.extend({template:"_error/show/paste-overflow"});n.SessionExpiring=t.Views.LayoutView.extend({template:"_error/show/session-expiring",triggers:{"click .proceed":"click:proceed","click .logout":"click:logout"},serializeData:function(){var n="RefreshTokenExpiringSoon/",t=e(n+"subject"),i=e(n+"message"),r=e(n+"proceed"),u=e(n+"exit");return{subject:t,message:i,leftTime:this.formatLeftTime(),proceedBtnText:r,logoutBtnText:u}},formatLeftTime:function(){var n=this.options.leftTime;return n==null?null:n<0?"--:--":moment.utc(n).format("HH:mm:ss").replace(/^00:/,"")},setLeftTime:function(n){this.options.leftTime=n;this.$(".countdown").text(this.formatLeftTime())}})});App.module("AccountApp",function(n,t,i,r){"use strict";var u=t.module("AccountApp.Invitation"),f=t.Routing.RouteController.extend({loginRoute:{roles:"Anonymous",action:function(){var i=t.mainRegion.currentView;i&&i.className==="page-login"||new n.Login.Controller({region:t.mainRegion})}},forgotRoute:{action:function(){this.loginRoute.action();new n.Forgot.Controller({region:t.modalRegion})}},createRoute:{action:function(){this.loginRoute.action();new n.Create.Controller({region:t.modalRegion})}},deleteRoute:{action:function(i,r){new n.Delete.Controller({region:t.modalRegion,timestamp:i,token:r,authorized:t.AuthInfo.hasTokens()})}},resetPasswordRoute:{action:function(i,r){t.execute("main:page");new n.ChangePass.Controller({region:t.modalRegion,timestamp:i,token:r,linkModel:t.Entities.ResetPasswordLinkStatusModel,submitUrl:"/api/Password/ResetPassword",globPath:"account/resetPassword/",analyticsCategory:t.Analytics.Common.eventCategories.PASSWORD_RECOVERY,showModalOnSuccess:!0})}},activateRoute:{action:function(i,r){t.execute("main:page");new n.ChangePass.Controller({region:t.modalRegion,timestamp:i,token:r,linkModel:t.Entities.UserActivationLinkStatusModel,submitUrl:"/api/User/Activate",globPath:"account/activate/",analyticsCategory:t.Analytics.Common.eventCategories.REGISTRATION})}},companyDelete:{action:function(i,r){t.execute("main:page");new n.DeleteCompany.Controller({timestamp:i,token:r,region:t.modalRegion})}},invitation:{roles:["Authorized","Anonymous"],action:function(n,i){t.execute("main:page");u.getController({timestamp:n,token:i,region:t.modalRegion}).showView()}}});n.Router=r.AppRouter.extend({appRoutes:{"account/login":"loginRoute","account/forgot":"forgotRoute","account/create":"createRoute","account/resetpassword/:timestamp-:token":"resetPasswordRoute","account/resetpassword/:timestamp-:token/":"resetPasswordRoute","account/activate/:timestamp-:token":"activateRoute","account/activate/:timestamp-:token/":"activateRoute","account/delete/:timestamp-:token":"deleteRoute","account/delete/:timestamp-:token/":"deleteRoute","company/delete/:timestamp-:token":"companyDelete","Company/Delete/:timestamp-:token":"companyDelete","account/invite/:timestamp-:token":"invitation","account/invite/:timestamp-:token/":"invitation"}});t.addInitializer(function(){return n.RouteController=new f,new n.Router({controller:n.RouteController})});t.commands.setHandler("account:gotologin",function(){t.navigate("account/login");t.mainRegion.currentView&&t.mainRegion.currentView.className==="page-login"||n.RouteController.executeAction("loginRoute")});t.commands.setHandler("account:forgot",function(){t.navigate("account/forgot");n.RouteController.executeAction("forgotRoute")});t.commands.setHandler("account:create",function(){t.navigate("account/create");n.RouteController.executeAction("createRoute")});t.commands.setHandler("account:resetPassword",function(i,r,u){t.navigate("account/resetpassword/"+r+"-"+u);n.RouteController.executeAction("resetPasswordRoute",i,r,u)});t.commands.setHandler("account:refreshPassword",function(i){return t.execute("main:page"),new n.RefreshPass.Controller({region:t.modalRegion,username:i.login,onceToken:i.onceToken,globPath:"account/resetPassword/",analyticsCategory:t.Analytics.Common.eventCategories.PASSWORD_RECOVERY})})});App.module("AccountApp.ChangePass",function(n,t,i,r,u,f){"use strict";var e=t.module("Utils.Ajax");n.Controller=t.Controllers.Base.extend({name:"AccountApp.ChangePass.Controller",initialize:function(n){this.globPath=n.globPath;this.tokenLink=new n.linkModel({Timestamp:n.timestamp||"",Token:n.token||""});this.model=new t.Entities.PasswordModel({url:n.submitUrl});this.analyticsCategory=n.analyticsCategory;this.model.analyticsCategory=n.analyticsCategory;this.model.set(this.tokenLink.toJSON(),{silent:!0});t.request("auth:role")==="Anonymous"&&($logger.info(this.name,"Clear sessions in tabs"),t.request("auth:entity").clear(),t.AuthInfo.cleanup());this.isClosingBlockingViewProgrammatically=!1;this.checkLink();this.modalWrapper=t.request("modal:wrapper",{contentView:t.request("loading:view"),onHide:this.onModalHide.bind(this)});this.blockingModalLayoutView=null;this.show(this.modalWrapper,{loading:!1})},checkLink:function(){var n=t.request("blocked:address:view",{region:t.modalRegion,model:this.tokenLink,fetch:function(n){this.tokenLink.checkLink({success:function(){this.hideBlockingView();this.onTokenCorrect()}.bind(this),error:n})}.bind(this),onUnhandledFetchError:function(n,i){e.itIsHasActiveSessionsError(i)||t.Analytics.Security.changePasswordOpenError(this.analyticsCategory,i);this.hideBlockingView();this.onError(n,i)}.bind(this),onFetchError:function(){$logger.info(this.name,"E-mail link checking error")}.bind(this),showBlockingView:this.getShowBlockingViewHandler(function(){this.isClosingBlockingViewProgrammatically||this.modalWrapper.hide()}.bind(this))});n.fetchModel()},getShowBlockingViewHandler:function(n){return function(i){this.blockingModalLayoutView?this.blockingModalLayoutView.setContent(i):this.blockingModalLayoutView=t.showModal(i,{onHide:function(){this.blockingModalLayoutView=null;n&&n()}.bind(this)})}.bind(this)},hideBlockingView:function(){this.blockingModalLayoutView&&(this.isClosingBlockingViewProgrammatically=!0,this.blockingModalLayoutView.hide(),this.isClosingBlockingViewProgrammatically=!1)},onTokenCorrect:function(){this.model.set("Username",this.tokenLink.get("Username"),{silent:!0});this.layoutView=this.getLayoutView();this.listenTo(this.layoutView,"submit:pass",this.onSubmit);this.listenTo(this.layoutView,"render",this.onShowRegions);this.modalWrapper.setContent(this.layoutView);t.Analytics.Security.openPasswordConfirmationViewEvent(this.analyticsCategory)},onError:function(n,i){var r,u={};if(e.itIsHasActiveSessionsError(i)){this.onLogoutNeeded();return}r=t.ErrorLocalizer.getModalText([this.globPath+"errors","account/changePass/errors"],i);i&&i.responseJSON&&i.responseJSON.Type==="LinkCheckingException"&&i.responseJSON.Code==="LinkUsed"&&(u.errorView=new t.ErrorApp.Show.CustomSuccess({title:r.title,text:r.text}));this.showModalError(r.title,r.text,u);this.onModalHide()},onLogoutNeeded:function(){var i=f.bind(function(){return new n.Controller(this)},this.options),r=new t.ErrorApp.Show.ConfirmLogout({globPath:this.globPath,confirm:function(){t.execute("auth:logout",{complete:i})}});this.modalWrapper.setContent(r);$logger.info(this.name,"Need logout");t.Analytics.Security.changePasswordStep2HasActiveSessionsError(this.analyticsCategory)},onSubmit:function(){var i;(t.Analytics.Security.tryPasswordConfirmationEvent(this.analyticsCategory),this.model.isValid(!0))&&(this.layoutView.switchLoading(!0),i=t.request("blocked:address:view",{region:t.modalRegion,validationView:this.layoutView,model:this.model,fetch:function(i){this.model.save(null,{success:function(){var i,u,r;$logger.info(this.name,"Password changed successfully");this.hideBlockingView();this.successChangePassword=!0;i=this.globPath+"success/";u={title:this.glob(i+"title"),text:this.glob(i+"text"),button:this.glob(i+"button")};this.options.showModalOnSuccess?(r=new n.SuccessView(u),this.modalWrapper.setContent(r),t.Analytics.Interaction.viewResetPasswordSuccess(this.analyticsCategory),this.listenTo(r,"success:click",f.bind(this.loginOnSuccess,this))):this.loginOnSuccess(!0);t.Analytics.Security.passwordSuccessfullySetEvent(this.analyticsCategory,t.request("loginView:needCaptcha"));t.request("auth:entity").clear();t.AuthInfo.cleanup()}.bind(this),error:i})}.bind(this),onUnhandledFetchError:function(n,i){if($logger.info(this.name,"Error while password refreshing"),this.hideBlockingView(),this.layoutView.switchLoading(!1),t.Analytics.Security.changePasswordStep2Error(this.analyticsCategory,i),!i.isValidationError)this.onError(n,i)}.bind(this),onFetchError:function(){$logger.info(this.name,"Password submit error")}.bind(this),showBlockingView:this.getShowBlockingViewHandler(function(){this.layoutView.switchLoading(!1);i.reset()}.bind(this))}),i.fetchModel())},onModalHide:function(){$logger.info(this.name,"Modal window hide");this.successChangePassword&&(t.navigate("/account/login"),t.execute("account:login:focus",this.model.get("Username"),this.model.get("Password")))},onShowRegions:function(){},loginOnSuccess:function(n){if(t.request("loginView:needCaptcha")){this.modalWrapper.hide();return}n&&t.modalRegion.reset();t.execute("account:login",{model:{username:this.model.get("Username"),password:this.model.get("Password")},onError:function(n){t.execute("account:login:focus",this.model.get("Username")||"",this.model.get("Password")||"");t.Analytics.Security.changePasswordStep2LoginError(this.analyticsCategory,n)}.bind(this),onCompleted:function(){this.modalWrapper.hide()}.bind(this)})},getLayoutView:function(){return new n.LayoutView({model:this.model})}})});App.module("AccountApp.ChangePass",function(n,t,i){"use strict";var r=t.module("Components.ProgressButton");n.LayoutView=t.Views.LayoutView.extend({template:"account/changePass/layout",regions:{buttonRegion:".button-region"},bindings:{".account-email":{observe:"TokenLink",onGet:function(n){return n&&n.Username||this.model.get("Username")}},".account-password":"Password",".account-confirm-password":"ConfirmPassword"},ui:{closeBtn:".wp-close"},initialize:function(){this.bindValidation()},bindValidation:function(){i.Validation.bind(this,{valid:this.onModelValid,invalid:this.onModelInvalid})},onModelValid:function(n,t){i.Validation.callbacks.valid.apply(this,arguments);n.hideErrorMessage(t)},onModelInvalid:function(n,t,r){i.Validation.callbacks.invalid.apply(this,arguments);n.showErrorMessage(t,r)},onChangeClick:function(){this.trigger("submit:pass")},hideErrorMessage:function(n){var t=this.$('[data-readonly-text="'+n+'"]');t.addClass("off")},showErrorMessage:function(n,t){var i=this.$('[data-readonly-text="'+n+'"]');i.html(t);i.removeClass("off")},onRender:function(){this.stickit();this.options.title&&this.$(".title").html(this.options.title);this.options.description&&this.$(".description").html(this.options.description);this.buttonView=r.getView({text:t.glob("account/changePass/submit-btn"),triggerOnEnter:!0});this.getRegion("buttonRegion").show(this.buttonView);this.listenTo(this.buttonView,"progress-button:click",this.onChangeClick)},switchLoading:function(n){this.buttonView.setProgressState(n)}});n.SuccessView=t.Views.LayoutView.extend({template:"account/changePass/success",regions:{buttonRegion:".button-region"},ui:{closeBtn:".wp-close"},serializeData:function(){return this.options},onLogin:function(){this.buttonView.showProgress();this.trigger("success:click")},onRender:function(){this.buttonView=r.getView({text:this.options.button});this.getRegion("buttonRegion").show(this.buttonView);this.listenTo(this.buttonView,"progress-button:click",this.onLogin)}})});App.module("AccountApp.RefreshPass",function(n,t){"use strict";n.Controller=t.Controllers.Base.extend({name:"AccountApp.RefreshPass.Controller",initialize:function(n){this.model=new t.Entities.RefreshPasswordModel({Username:n.username});this.analyticsCategory=n.analyticsCategory;this.model.analyticsCategory=n.analyticsCategory;this.layoutView=this.getLayoutView();this.modalWrapper=t.request("modal:wrapper",{contentView:this.layoutView});this.listenTo(this.layoutView,"submit:pass",this.onSubmit);this.show(this.modalWrapper,{loading:!1})},onError:function(n,i){var r;($logger.warn("RefreshPass","Problem while link checking or password submission"),t.Analytics.Security.changePasswordStep2Error(this.analyticsCategory,i),this.layoutView&&this.layoutView.switchLoading(!1),i.isValidationError)||(r=t.ErrorLocalizer.getModalText([this.options.globPath+"errors","account/changePass/errors"],i,this.model.get("TokenLink")),this.showModalError(r.title,r.text),this.modalWrapper.hide())},onSubmit:function(){(t.Analytics.Security.tryPasswordConfirmationEvent(this.analyticsCategory),this.model.isValid(!0))&&(this.layoutView.switchLoading(!0),this.model.save(null,{success:function(){var n=this.options.globPath+"success/",r={title:this.glob(n+"title"),text:this.glob(n+"text"),button:this.glob(n+"button")},i=new t.AccountApp.ChangePass.SuccessView(r);this.successChangePassword=!0;this.modalWrapper.setContent(i);this.listenTo(i,"success:click",this.loginOnSuccess.bind(this));t.Analytics.Security.passwordSuccessfullySetEvent(this.analyticsCategory,t.request("loginView:needCaptcha"));this.clearSessions()}.bind(this),error:this.onError.bind(this)}))},clearSessions:function(){t.request("auth:entity").clear();t.AuthInfo.cleanup()},loginOnSuccess:function(){if(t.request("loginView:needCaptcha")){this.modalWrapper.hide();this.clearSessions();t.navigate("/account/login");t.execute("account:login:focus",this.model.get("Username"),this.model.get("Password"));return}t.execute("account:login",{model:{username:this.model.get("Username"),password:this.model.get("Password")},onError:function(){t.execute("account:login:focus",this.model.get("Username")||"",this.model.get("Password")||"")}.bind(this),onCompleted:function(){this.modalWrapper.hide()}.bind(this)})},getLayoutView:function(){return new t.AccountApp.ChangePass.LayoutView({model:this.model,title:this.glob("account/refreshPassword/title"),description:this.glob("account/refreshPassword/description")})}})});App.module("AccountApp.Create",function(n,t,i,r,u,f){"use strict";var e=t.module("Constants.Captcha"),o=t.module("AccountApp.TermsOfUse");n.Controller=t.Controllers.Base.extend({name:"AccountApp.Create.Controller",initialize:function(){this.model=t.request("account:create:model",{Language:t.request("settings:entity").get("language").value,AgreeToPassAnnualSurvey:!1});this.countries=t.request("country:entities");this.captchaView=this.getCaptchaView();this.layoutView=this.getLayoutView();this.modalWrapper=t.request("modal:wrapper",{contentView:this.layoutView,onHide:this.onModalHide.bind(this)});this.listenTo(this.layoutView,"account:create",this.onAccountCreateClick);this.listenTo(this.layoutView,"termsOfUse:click",this.onTermsOfUseClick);this.listenTo(this.layoutView,"render",this.onShowRegions);this.listenTo(this.captchaView.model,"toggle:captcha",this.toggleCaptcha);this.listenTo(this.captchaView.model,"change:captcha",this.onCaptchaChange);this.listenTo(this.captchaView,"fetching",this.captchaFetching);this.listenTo(this.captchaView,"validate",this.captchaValidation);this.show(this.modalWrapper,{loading:{entities:[this.countries,],modal:!0,errorHandler:this.errorHandler.bind(this)}})},errorHandler:function(){var n=t.ErrorLocalizer.getModalText("errors/500");return this.showModalError(n.title,n.text,{onHide:this.onModalHide.bind(this)}),!0},onModalHide:function(){t.navigate("/account/login")},onShowRegions:function(){var n=this.countries.selected;n&&this.model.set("Country",n);this.layoutView.getRegion("captchaRegion").show(this.captchaView);this.captchaView.switchLoading(!1)},toggleCaptcha:function(n){this.layoutView.switchCaptcha(n)},onCaptchaChange:function(n,t){if(t)this.model.onChange(this.model)},captchaValidation:function(n){n?this.layoutView.showErrorMessage("Captcha",f.first(this.model.validation.Captcha).msg):this.layoutView.hideErrorMessage("Captcha")},onAccountCreateClick:function(){var n,i;(t.Analytics.Security.tryRegisterAccountEvent(),n=this.captchaView.model.toJSON(),this.model.set({Hash:n.Hash,Captcha:n.captcha},{silent:!0}),i=this.captchaView.model.isValid(!0),this.model.isValid(!0)&&i)&&(this.layoutView.switchLoading(!0),this.model.save(null,{success:function(){var n=this.getSuccessView();this.modalWrapper.setContent(n);this.model.has("KeyFile")?t.Analytics.Security.successfullyRegisteredWithKeyFile():t.Analytics.Security.successfullyRegisteredWithCode()}.bind(this),error:function(n,i){if(this.layoutView.switchLoading(!1),this.captchaView.refreshCaptcha(i),t.Analytics.Security.registrationStep1Error(i),!i.isValidationError){var r=t.ErrorLocalizer.getModalText("account/create/errors",i);this.showModalError(r.title,r.text)}}.bind(this)}))},captchaFetching:function(n){this.layoutView.switchBtn(n.fetched)},getLayoutView:function(){return new n.LayoutView({model:this.model,countries:this.countries})},getSuccessView:function(){return new n.SuccessView({title:this.glob("account/create/success/title"),text:this.glob("account/create/success/text",{email:this.ellipsizeForModal(this.model.get("Email"))})})},getCaptchaView:function(){return t.request("captcha:sts:view",{captchaUseCase:e.useCase.REGISTER})},onTermsOfUseClick:function(){o.show({country:this.model.get("Country")})}})});App.module("AccountApp.Create",function(n,t,i,r,u){"use strict";var f=t.module("Components.ProgressButton");n.KeyInfoView=t.Views.LayoutView.extend({template:"account/create/key-info",serializeData:function(){return{name:this.model.get("name"),size:this.model.get("size"),nameLen:t.fileNameEllipsisClientRegistration}}});n.LayoutView=t.Views.LayoutView.extend({template:"account/create/layout",regions:{captchaRegion:".captcha-region",keyInfoRegion:".key-info-region",buttonRegion:".button-region"},ui:{keyFileInput:".input-key-file",keyFileInputCancel:".fileupload-cancel",keyFileBtn:".account-key-file a",actCodeInput:".account-activation-code",termsOfUseLink:".terms-of-use__link",activationCodeTooltip:".activation-cf .info-txt i",privacyStatementLinks:".account-accept-privacy-statement-label a"},events:{"click @ui.keyFileInputCancel":"onKeyFileInputCancel","change @ui.keyFileInput":"onKeyFileInputChanged"},modelEvents:{"change:KeyFile":"onChangeLicense","change:ActivationCode":"onChangeLicense","change:AcceptPrivacyStatement":"onAccept"},initialize:function(n){i.Validation.bind(this,{valid:function(n,t){i.Validation.callbacks.valid.apply(this,arguments);n.hideErrorMessage(t)},invalid:function(n,t,r){i.Validation.callbacks.invalid.apply(this,arguments);n.showErrorMessage(t,r)}});this.bindings={".account-first-name":"FirstName",".account-last-name":"LastName",".account-company":"Company",".account-country":{observe:"Country",collection:n.countries,textField:"Name",valueField:"ISOCode"},".account-email":{observe:"Email",toLower:!0},".account-activation-code":"ActivationCode",".account-accept-privacy-statement":"AcceptPrivacyStatement",".account-conduct-survey":"AgreeToPassAnnualSurvey"}},onChangeLicense:function(t){var r=t.has("KeyFile"),u=!!t.get("ActivationCode"),f;r?(f=new n.KeyInfoView({model:new i.Model(t.get("KeyFile"))}),this.getRegion("keyInfoRegion").show(f)):(this.getRegion("keyInfoRegion").empty(),this.hideErrorMessage("KeyFile"));this.ui.actCodeInput.prop("disabled",r);this.ui.keyFileBtn.toggleClass("disabled-upload",u||r);this.ui.keyFileInput.prop("disabled",u||r)},onKeyFileInputChanged:function(){var n=this.ui.keyFileInput[0].files[0],t=this.model.preValidate("KeyFile",n);if(t){this.showErrorMessage("KeyFile",t);return}this.hideErrorMessage("KeyFile");this.model.set({KeyFile:n});this.model.validate(["ActivationCode"],{noEvent:!0})},onKeyFileInputCancel:function(){this.ui.keyFileInput.closest("form").get(0).reset();this.model.unset("KeyFile")},onAccountCreate:function(){this.trigger("account:create")},onAccept:function(){this.privacyAccepted=this.model.get("AcceptPrivacyStatement");this.buttonView.setButtonState(this.privacyAccepted)},hideErrorMessage:function(n){var t=this.$('[data-readonly-text="'+n+'"]');t.html("").addClass("off")},showErrorMessage:function(n,t){var i=this.$('[data-readonly-text="'+n+'"]');i.html(t);i.removeClass("off")},switchBtn:function(n){this.privacyAccepted&&this.buttonView.setButtonState(n)},stopPropagation:function(n){n.stopPropagation()},onRender:function(){this.stickit();this.ui.activationCodeTooltip.hover(function(){u(this).find("span").removeClass("off")},function(){u(this).find("span").addClass("off")});this.ui.privacyStatementLinks.on("click",this.stopPropagation);this.buttonView=f.getView({text:t.glob("account/create/createbutton"),triggerOnEnter:!0,disabled:!0});this.getRegion("buttonRegion").show(this.buttonView);this.listenTo(this.buttonView,"progress-button:click",this.onAccountCreate);this.ui.termsOfUseLink.click(function(){this.trigger("termsOfUse:click")}.bind(this))},onBeforeDestroy:function(){this.ui.activationCodeTooltip.off();this.ui.privacyStatementLinks.off();this.ui.termsOfUseLink.off();r.View.prototype.onBeforeDestroy.apply(this,arguments)},switchLoading:function(n){this.buttonView.setProgressState(n)},switchCaptcha:function(n){var t=this.$(".captcha-region"),i=this.$(".captcha-error");t.toggleClass("off",!n);i.toggleClass("off",!1)}});n.SuccessView=t.Views.LayoutView.extend({template:"account/create/success",onRender:function(){this.$(".success-msg").html(this.options.text);t.Analytics.Interaction.viewAccountCreateSuccess()}})});App.module("AccountApp.DeleteCompany",function(n,t,i,r,u,f){"use strict";var e=t.module("Utils.Ajax");n.Controller=t.Controllers.Base.extend({name:"AccountApp.DeleteCompany.Controller",initialize:function(n){if(this.model=t.request("company:delete:model",{Timestamp:n.timestamp,Token:n.token}),n.confirmed){this.deleteCompany();return}if(t.AuthInfo.hasTokens()){this.suggestLogout();return}t.request("confirm:view",{title:this.glob("account/deleteCompany/confirm/title"),text:this.glob("account/deleteCompany/confirm/description"),acceptButtonText:this.glob("account/deleteCompany/confirm/continue"),success:this.deleteCompany.bind(this)})},deleteCompany:function(){var n=t.request("blocked:address:view",{region:t.modalRegion,model:this.model,fetch:function(n,t){t<=1&&this.showLoadingView();this.model.checkLink({success:this.onCompanyDeleted.bind(this),error:n})}.bind(this),onUnhandledFetchError:this.onError.bind(this),showBlockingView:function(n){this.modalWrapper.setContent(n)}.bind(this)});n.fetchModel()},onCompanyDeleted:function(){var n=t.ErrorLocalizer.getErrorText("account/deleteCompany/success/title");this.showModalSuccess({title:n.text,useQuestIcon:!0})},onError:function(n,i){var r;if(t.Analytics.Users.companyDeleteError(i),e.itIsHasActiveSessionsError(i)){this.suggestLogout();return}r=t.ErrorLocalizer.getModalText("account/deleteCompany/errors",i);this.showModalError(r.title,r.text)},suggestLogout:function(){var i=f.bind(function(){return this.confirmed=!0,new n.Controller(this)},this.options),r=new t.ErrorApp.Show.ConfirmLogout({globPath:"account/deleteCompany/",warnButton:!0,confirm:function(){t.execute("auth:logout",{complete:i})}});this.modalWrapper=t.request("modal:wrapper",{contentView:r});this.show(this.modalWrapper,{loading:!1})},showLoadingView:function(){var i=new n.Process({title:this.glob("account/deleteCompany/loading"),message:""});this.modalWrapper=t.request("modal:wrapper",{contentView:i});this.show(this.modalWrapper,{loading:!1})}})});App.module("AccountApp.DeleteCompany",function(n,t){"use strict";n.Process=t.Views.ItemView.extend({template:"account/deleteCompany/sync",serializeData:function(){return this.options}})});App.module("AccountApp.Delete",function(n,t){"use strict";n.Controller=t.Controllers.Base.extend({name:"AccountApp.Delete.Controller",initialize:function(n){this.model=t.request("account:delete:model",{Timestamp:n.timestamp,Token:n.token});t.execute("auth:logout",{complete:this.deleteProfile.bind(this)})},deleteProfile:function(){var n=t.request("blocked:address:view",{region:t.modalRegion,model:this.model,fetch:function(n,t){t<=1&&this.showLoadingView();this.model.save(null,{success:this.onProfileDeleted.bind(this),error:n,validate:!1})}.bind(this),onUnhandledFetchError:this.onError.bind(this),showBlockingView:function(n){this.modalWrapper.setContent(n)}.bind(this)});n.fetchModel()},onProfileDeleted:function(){this.modalWrapper.setContent(new n.SuccessView)},onError:function(n,i){var r;t.Analytics.Users.profileDeleteError(i);r=t.ErrorLocalizer.getModalText("account/delete/errors",i);this.showModalError(r.title,r.text)},showLoadingView:function(){var i=new n.Process({title:this.glob("account/delete/loading"),message:""});this.modalWrapper=t.request("modal:wrapper",{contentView:i});this.show(this.modalWrapper,{loading:!1})}})});App.module("AccountApp.Delete",function(n,t){"use strict";n.SuccessView=t.Views.LayoutView.extend({template:"account/deleteProfile/success"});n.Process=t.Views.ItemView.extend({template:"account/deleteProfile/sync",serializeData:function(){return this.options}})});App.module("AccountApp.Forgot",function(n,t,i,r,u,f){"use strict";var e=t.module("Constants.Captcha");n.Controller=t.Controllers.Base.extend({name:"AccountApp.Forgot.Controller",initialize:function(){t.Analytics.Security.openForgotPasswordWindowEvent();this.model=t.request("account:forgot:model");this.layoutView=new n.LayoutView({model:this.model});this.modalWrapper=t.request("modal:wrapper",{contentView:this.layoutView,onHide:this.onModalHide.bind(this)});this.listenTo(this.layoutView,"continue:click",this.onContinueClick);this.listenTo(this.layoutView,"render",this.onShowRegions);this.show(this.modalWrapper,{loading:!1})},onModalHide:function(){t.navigate("/account/login")},onShowRegions:function(){this.captchaView=t.request("captcha:sts:view",{captchaUseCase:e.useCase.FORGOT_PASSWORD});this.listenTo(this.captchaView.model,"toggle:captcha",this.toggleCaptcha);this.listenTo(this.captchaView,"validate",this.captchaValidation);this.listenTo(this.captchaView,"fetching",this.captchaFetching);this.layoutView.getRegion("captchaRegion").show(this.captchaView)},toggleCaptcha:function(n){this.layoutView.switchCaptcha(n)},captchaValidation:function(n,t){var i=this.captchaView.model;this.model.set("Captcha",i.get("captcha"));this.layoutView.showErrorMessage(t,n)},captchaFetching:function(n){this.layoutView.switchSubmitBtn(n.fetched)},onContinueClick:function(){var i,r,u;(t.Analytics.Security.tryResetPasswordEvent(),i=this.captchaView.model,this.model.set({Hash:i.get("Hash"),Captcha:i.get("captcha")},{silent:!0}),r=this.model.isValid(!0),u=this.captchaView.model.isValid(!0),r&&u)&&(this.layoutView.switchLoading(!0),this.model.save(null,{success:f.bind(function(){var r=this.model.get("Email"),i=this.ellipsizeForModal(r),u={title:t.glob("account/forgot/success/title",{email:i}),description:t.glob("account/forgot/success/description",{email:i})};this.modalWrapper.setContent(new n.SuccessView(u));t.Analytics.Interaction.viewAccountForgotSuccess();t.Analytics.Security.successfullyStartedPasswordRecovery()},this),error:f.bind(function(n,i){if(this.layoutView.switchLoading(!1),this.captchaView.refreshCaptcha(i),t.Analytics.Security.passwordRecoveryStep1Error(i),!i.isValidationError){var u=n.get("Email"),r=t.ErrorLocalizer.getModalText("account/forgot/errors",i,{email:this.ellipsizeForModal(u)});this.showModalError(r.title,r.text)}},this)}))}})});App.module("AccountApp.Forgot",function(n,t,i){"use strict";var r=t.module("Components.ProgressButton");n.LayoutView=t.Views.LayoutView.extend({template:"account/forgot/layout",regions:{captchaRegion:".captcha-region",buttonRegion:".button-region"},initialize:function(){i.Validation.bind(this,{valid:function(n,t){i.Validation.callbacks.valid.apply(this,arguments);n.hideErrorMessage(t)},invalid:function(n,t,r){i.Validation.callbacks.invalid.apply(this,arguments);n.showErrorMessage(t,r)}});this.bindings={".account-email":{observe:"Email",toLower:!0}}},onContinueClick:function(){this.trigger("continue:click")},hideErrorMessage:function(n){var t=this.$('[data-readonly-text="'+n.toLowerCase()+'"]');t.addClass("off")},showErrorMessage:function(n,t){var i=this.$('[data-readonly-text="'+n.toLowerCase()+'"]');i.html(t);i.removeClass("off")},onRender:function(){this.stickit();this.buttonView=r.getView({text:t.glob("account/forgot/continue"),triggerOnEnter:!0});this.getRegion("buttonRegion").show(this.buttonView);this.listenTo(this.buttonView,"progress-button:click",this.onContinueClick)},switchLoading:function(n){this.buttonView.setProgressState(n)},switchCaptcha:function(n){var t=this.$(".captcha-region"),i=this.$(".captcha-error");t.toggleClass("off",!n);i.toggleClass("off",!n)},switchSubmitBtn:function(n){this.buttonView.setButtonState(n)}});n.SuccessView=t.Views.ItemView.extend({template:"account/forgot/success",onRender:function(){this.$(".title").html(this.options.title);this.$(".description").html(this.options.description)}})});App.module("AccountApp.Invitation",function(n,t,i,r,u,f){"use strict";var e=t.module("Analytics.Invite"),o=t.module("Utils.Ajax"),s=t.module("AccountApp.TermsOfUse"),h=f.once(function(){return t.Controllers.Base.extend({name:"AccountApp.Invitation.InvitationController",globPath:"account/invitation/",showView:function(){this.showLoadingView();this.initiate()},initialize:function(){this.blockingModalLayoutView=null;this.isClosingBlockingViewProgrammatically=!1},initiate:function(){var n;this.createInitiateModel();n=t.request("blocked:address:view",{region:t.modalRegion,model:this.initiateModel,fetch:function(n){this.initiateModel.checkLink({success:function(){this.hideBlockingView();this.loadCountries()}.bind(this),error:n})}.bind(this),onUnhandledFetchError:function(n,t){this.hideBlockingView();this.onInitiateFailed(n,t)}.bind(this),showBlockingView:this.getShowBlockingViewHandler(function(){this.isClosingBlockingViewProgrammatically||this.modalWrapper.hide()}.bind(this))});n.fetchModel()},createInitiateModel:function(){this.initiateModel=t.request("account:create:invitation:initiate:model",{Timestamp:this.options.timestamp||"",Token:this.options.token||""})},onInitiateFailed:function(n,t){if(e.acceptInvitationErrorEvent(t),o.itIsHasActiveSessionsError(t)){this.suggestLogout();return}this.showErrorView(t)},getShowBlockingViewHandler:function(n){return function(i){this.blockingModalLayoutView?this.blockingModalLayoutView.setContent(i):this.blockingModalLayoutView=t.showModal(i,{onHide:function(){this.blockingModalLayoutView=null;n&&n()}.bind(this)})}.bind(this)},hideBlockingView:function(){this.blockingModalLayoutView&&(this.isClosingBlockingViewProgrammatically=!0,this.blockingModalLayoutView.hide(),this.isClosingBlockingViewProgrammatically=!1)},onSubmit:function(){var n;this.isInSubmittingState||(e.tryInvitationRegistrationEvent(),this.submitModel.isValid(!0)&&(this.isInSubmittingState=!0,this.formView.showProgress(),n=t.request("blocked:address:view",{region:t.modalRegion,model:this.submitModel,validationView:this.formView,fetch:function(n){this.submitModel.save(null,{success:function(){this.hideBlockingView();this.onRegistrationSucceeded()}.bind(this),error:n})}.bind(this),onUnhandledFetchError:function(n,t){this.hideBlockingView();this.onSubmitFailed(n,t)}.bind(this),showBlockingView:this.getShowBlockingViewHandler(function(){this.formView.hideProgress();this.isInSubmittingState=!1;n.reset()}.bind(this))}),n.fetchModel()))},onRegistrationSucceeded:function(){e.successInvitationRegistrationEvent();this.formView.hideProgress();this.isInSubmittingState=!1;this.showSuccessView()},onSubmitFailed:function(n,t){(this.formView.hideProgress(),this.isInSubmittingState=!1,t.isValidationError)||(e.invitationRegistrationErrorEvent(t),this.showErrorView(t))},hasActiveSessions:function(n){return n&&n.responseJSON&&n.responseJSON.Code==="HasActiveSessions"},loadCountries:function(){this.countries=t.request("country:entities");t.execute("when:fetched",this.countries,function(){this.showRegistrationForm()},this);t.execute("when:error",this.countries,this.onInitiateFailed,this)},showRegistrationForm:function(){this.submitModel=t.request("account:create:invitation:submit:model",{Timestamp:this.initiateModel.get("Timestamp"),Token:this.initiateModel.get("Token"),Email:this.initiateModel.get("EmailInvited"),Language:t.request("settings:entity").get("language").value,AgreeToPassAnnualSurvey:!1,Country:this.getDefaultCountry()});this.formView=n.getView({model:this.submitModel,countries:this.countries});this.modalWrapper.setContent(this.formView);this.listenTo(this.formView,"invitation:submit:click",this.onSubmit);this.listenTo(this.formView,"termsOfUse:click",this.onTermsOfUseClick);e.openInvitationRegistrationEvent()},getDefaultCountry:function(){var n=this.initiateModel.get("Country"),t=n?this.countries.findWhere({Name:n}):null;return t?t.get("ISOCode"):this.countries.selected},suggestLogout:function(){var i=new t.ErrorApp.Show.ConfirmLogout({globPath:this.globPath,confirm:function(){var i=this.options;t.execute("auth:logout",{complete:function(){n.getController(i).showView()}})}.bind(this)});this.modalWrapper.setContent(i)},showLoadingView:function(){var n=t.request("loading:view");this.modalWrapper=t.request("modal:wrapper",{contentView:n});this.show(this.modalWrapper,{loading:!1})},showSuccessView:function(){var t=n.getSuccessView({title:this.glob("account/invitation/success/title"),text:this.glob("account/invitation/success/text",{email:this.submitModel.get("Email")})});this.modalWrapper.setContent(t)},showErrorView:function(n){var i=t.ErrorLocalizer.getModalText(this.globPath+"errors",n);this.showModalError(i.title,i.text)},onTermsOfUseClick:function(){s.show({country:this.submitModel.get("Country")})}})});n.getController=function(n){var t=h();return new t(n)}});App.module("AccountApp.Invitation",function(n,t,i,r,u,f){"use strict";var e=t.module("Components.ProgressButton"),o=f.once(function(){return t.Views.LayoutView.extend({template:"account/invitation/invitation",ui:{termsOfUseLink:".terms-of-use__link"},initialize:function(n){this.bindValidation();this.bindings={".invitation__first-name":"FirstName",".invitation__last-name":"LastName",".invitation__email":{observe:"Email",toLower:!0},".invitation__country":{observe:"Country",collection:n.countries,textField:"Name",valueField:"ISOCode"},".invitation__privacy-statement":"AcceptPrivacyStatement",".invitation__conduct-survey":"AgreeToPassAnnualSurvey"}},modelEvents:{"change:AcceptPrivacyStatement":"onAcceptanceChanged"},regions:{buttonRegion:".button-region"},bindValidation:function(){i.Validation.bind(this,{valid:this.onModelValid,invalid:this.onModelInvalid})},onModelValid:function(n,t){i.Validation.callbacks.valid.apply(this,arguments);n.hideErrorMessage(t)},onModelInvalid:function(n,t,r){i.Validation.callbacks.invalid.apply(this,arguments);n.showErrorMessage(t,r)},onRender:function(){this.stickit();this.buttonView=e.getView({text:t.glob("account/invitation/createbutton"),disabled:!0});this.getRegion("buttonRegion").show(this.buttonView);this.listenTo(this.buttonView,"progress-button:click",function(){this.trigger("invitation:submit:click")});this.ui.termsOfUseLink.click(function(){this.trigger("termsOfUse:click")}.bind(this))},onBeforeDestroy:function(){this.ui.termsOfUseLink.off();r.View.prototype.onBeforeDestroy.apply(this,arguments)},hideErrorMessage:function(n){this.$('[data-readonly-text="'+n+'"]').html("").hide()},showErrorMessage:function(n,t){this.$('[data-readonly-text="'+n+'"]').html(t).show()},onAcceptanceChanged:function(){this.buttonView.setButtonState(this.model.get("AcceptPrivacyStatement"))},showProgress:function(){this.buttonView.showProgress()},hideProgress:function(){this.buttonView.hideProgress()}})}),s=f.once(function(){return t.Views.LayoutView.extend({template:"account/invitation/success",onRender:function(){this.$(".success-msg").html(this.options.text)}})});n.getView=function(n){var t=o();return new t(n)};n.getSuccessView=function(n){var t=s();return new t(n)}});App.module("AccountApp.Login",function(n,t,i,r,u,f){"use strict";var e=t.module("Constants.Captcha"),o=t.module("AccountApp.TermsOfUse");n.Controller=t.Controllers.Base.extend({name:"AccountApp.Login.Controller",initialize:function(){this.model=t.request("account:login:model:instance");this.layoutView=this.getLayoutView();this.captchaView=this.getCaptchaView();this.listenTo(this.layoutView,"render",this.showRegions);this.listenTo(this.layoutView,"account:create",this.onCreate);this.listenTo(this.layoutView,"account:forgot",this.onForgot);this.listenTo(this.layoutView,"account:login",this.onLoginButtonClicked);this.listenTo(this.captchaView,"validate",this.captchaValidation);this.listenTo(this.captchaView,"fetching",this.captchaFetching);this.show(this.layoutView,{loading:!1})},onCreate:function(){this.loginInProgress||(t.execute("account:create",t.modalRegion),t.Analytics.Security.openRegistrationWindowEvent())},onForgot:function(){this.loginInProgress||t.execute("account:forgot",t.modalRegion)},onLoginButtonClicked:function(){t.Analytics.Security.tryToSignInEvent();this.onLogin()},onLogin:function(){var n,i,r;if(this.layoutView.removeFromErrorSummary(),n=this.captchaView.model,i=n.isValid(!0),this.model.set("hash",n.get("Hash")),this.model.set("captcha",n.get("captcha")),i||t.Analytics.Security.signInCaptchaRequiredError(),this.model.isValid(!0)&&i){if(!this.model.get("username")){r=t.ErrorLocalizer.getErrorText("loginErrors",{responseJSON:{Code:"WrongPassword"}});this.layoutView.addToErrorSummary("authError",r.text);t.Analytics.Security.signInWrongPasswordError();return}this.login({model:this.model.toJSON(),shouldSendAnalyticsEvents:!0})}},login:function(n){var i=n.model.username,r=n.model.password;this.loginInProgress=!0;this.layoutView.switchLoading(!0);t.execute("auth:login",{data:n.model,success:function(){f.defer(function(){t.execute("hub:start")});n.shouldSendAnalyticsEvents&&t.Analytics.Security.successfullySignedInEvent();t.execute("request:list")},error:function(u){var f;if(this.loginInProgress=!1,n.onError&&n.onError(),this.captchaView.refreshCaptcha(u),this.layoutView.switchLoading(!1),this.layoutView.showCaptchaRegion(),n.shouldSendAnalyticsEvents&&t.Analytics.Security.signInError(u),u.passExpired==="True"){t.Analytics.Security.signInPasswordExpiredError();t.execute("account:refreshPassword",{login:n.model.username});return}if(u.shouldAcceptTermsOfUse==="True"){o.show({shouldAccept:!0,fromUser:!0,onAccepted:this.onTermsOfUseAccepted.bind(this,i,r),onClosedByUser:this.onTermsOfUseClosedWithoutAccepting.bind(this,i,r)});return}f=t.ErrorLocalizer.getErrorText("loginErrors",u);this.layoutView.addToErrorSummary("authError",f.text)}.bind(this),complete:n.onCompleted})},onTermsOfUseAccepted:function(n,i){t.execute("account:login:focus",n,i);this.onLogin()},onTermsOfUseClosedWithoutAccepting:function(n,i){t.execute("account:login:focus",n,i)},showRegions:function(){this.layoutView.getRegion("captchaRegion").show(this.captchaView);t.commands.setHandler("account:login:focus",function(n,t){this.model.set("username",n);this.layoutView.fillForm(n,t)}.bind(this));t.commands.setHandler("account:login",this.login.bind(this));t.reqres.setHandler("loginView:needCaptcha",function(){return this.captchaView.model.get("IsNecessary")}.bind(this))},captchaValidation:function(n,t){var i;if(n===!1){i=this.captchaView.model;this.model.set("captcha",i.get("captcha"));return}this.layoutView.addToErrorSummary(t,n)},captchaFetching:function(n){this.layoutView.switchSignInBtn(n.fetched)},getLayoutView:function(){return new n.LayoutView({model:this.model})},getCaptchaView:function(){return t.request("captcha:sts:view",{captchaUseCase:e.useCase.LOGIN})}})});App.module("AccountApp.Login",function(n,t,i,r,u){"use strict";var f=t.module("Utils.String"),e=t.module("Components.ProgressButton");n.LayoutView=t.Views.LayoutView.extend({template:"account/login/layout",className:"page-login",regions:{captchaRegion:".area-login .captcha-region",buttonRegion:".button-region"},bindings:{".area-login .account-email":{observe:"username",validateOnFocusOut:!1,toLower:!0,forbidSurroundingSpaces:!0},".area-login .account-password":{observe:"password",validateOnFocusOut:!1,onSet:function(n){return f.trimEnd(n)}}},ui:{form:"#loginForm",summaryEl:".area-login .error-summary",username:".area-login .account-email",password:".area-login .account-password"},triggers:{"click .area-login .account-create":"account:create","click .area-login .account-forgot":"account:forgot"},events:{"animationstart @ui.username":"onAnimationStart","animationstart @ui.password":"onAnimationStart"},onAnimationStart:function(n){n.originalEvent.animationName==="onAutoFillStart"&&this.model.sendGaInitiateEvent()},initialize:function(){i.Validation.bind(this,{valid:function(n,t){i.Validation.callbacks.valid.apply(this,arguments);n.removeFromErrorSummary(t)},invalid:function(n,t,r){i.Validation.callbacks.invalid.apply(this,arguments);n.addToErrorSummary(t,r)}})},onLoginClick:function(){this.modelBindingFix();var n=this.$(".captcha-region .loading-region").hasClass("off");!t.backdropRegion.hasView()&&n&&this.trigger("account:login")},modelBindingFix:function(){this.ui.username.trigger("input");this.ui.password.trigger("input")},addToErrorSummary:function(n,t){var r=this.ui.summaryEl,i=r.find('[data-readonly-text="'+n+'"]');i&&i.length||(i=u('<div class="clr-red small" data-readonly-text="'+n+'"><\/div>'),r.append(i));i.html(t);i.show()},fillForm:function(n,t){var i=this.$(".area-login .account-password");i.val(t).removeClass("off");i.trigger("change")},removeFromErrorSummary:function(n){var t=n?this.ui.summaryEl.find('[data-readonly-text="'+n+'"]'):this.ui.summaryEl.find("[data-readonly-text]");t.hide()},onRender:function(){this.stickit();this.$(".area-login .info-txt i").hover(function(){u(this).find("span").removeClass("off")},function(){u(this).find("span").addClass("off")});this.ui.form.submit(function(n){n.preventDefault()});this.buttonView=e.getView({text:t.glob("account/login/login"),triggerOnEnter:!0,width:"100%"});this.getRegion("buttonRegion").show(this.buttonView);this.listenTo(this.buttonView,"progress-button:click",this.onLoginClick)},switchLoading:function(n){this.buttonView.setProgressState(n)},switchSignInBtn:function(n){this.buttonView.setButtonState(n)},showCaptchaRegion:function(){this.$(".captcha-region").removeClass("off")}})});App.module("AccountApp.TermsOfUse",function(n,t,i,r,u,f){"use strict";var e=t.module("Entities"),o=t.module("Utils.String");n.Controller=t.Controllers.Base.extend({name:"AccountApp.TermsOfUse.Controller",initialize:function(n){this.mergeOptions(n,["country","locale","shouldAccept","fromUser","onAccepted","onClosedByUser"])},showView:function(){this.model=e.getTermsOfUse(this.country,this.locale,this.fromUser);this.layoutView=n.getView({model:this.model,shouldAccept:this.shouldAccept});this.listenTo(this.layoutView,"termsOfUse:accept",this.accept);this.modalWrapper=t.createModal(this.layoutView,{onHide:this.onModalHide.bind(this)});this.region=this.modalWrapper.modalRegion;this.show(this.modalWrapper,{loading:{entities:this.model,modal:!0,errorHandler:this.errorHandler.bind(this)}})},errorHandler:function(n,i){var r=t.ErrorLocalizer.getModalText("account/termsOfUse",i);return this.showModalError(r.title,r.text,{region:this.region}),!0},accept:function(){this.layoutView.switchLoading(!0);e.getAcceptTermsOfUseModel().save(null,{success:this.onAcceptSucceeded.bind(this),error:this.onAcceptFailed.bind(this)})},onAcceptSucceeded:function(){this.close()},onAcceptFailed:function(n,t){$logger.error(this.name,"ToU acceptance failed: "+o.toJSON(t));this.close()},close:function(){this.accepted=!0;this.layoutView.switchLoading(!1);this.modalWrapper.hide();this.onAccepted&&this.onAccepted()},onModalHide:function(){this.onClosedByUser&&!this.accepted&&this.onClosedByUser()}});n.show=function(i){var r=f.defaults(i,{country:null,locale:t.request("settings:entity").get("locale"),shouldAccept:!1,fromUser:!1,onAccepted:null,onClosedByUser:null}),u=new n.Controller(r);u.showView()}});App.module("AccountApp.TermsOfUse",function(n,t){"use strict";var i=t.module("Components.ProgressButton");n.LayoutView=t.Views.LayoutView.extend({template:"account/termsOfUse/termsOfUse",bindings:{".terms-of-use__checkbox":"AcceptTermsOfUse"},regions:{buttonRegion:".terms-of-use__button-region"},modelEvents:{"change:AcceptTermsOfUse":"onAcceptanceChanged"},onBeforeRender:function(){this.options.shouldAccept&&this.model.set("ShouldAccept",!0)},onRender:function(){this.stickit();this.showProgressButton()},showProgressButton:function(){this.model.get("ShouldAccept")&&(this.buttonView=i.getView({text:t.glob("account/termsOfUse/accept-button"),disabled:!0}),this.getRegion("buttonRegion").show(this.buttonView),this.listenTo(this.buttonView,"progress-button:click",function(){this.trigger("termsOfUse:accept")}))},onAcceptanceChanged:function(){this.buttonView.setButtonState(this.model.get("AcceptTermsOfUse"))},switchLoading:function(n){this.buttonView.setProgressState(n)}});n.getView=function(t){return new n.LayoutView(t)}});App.module("AuthApp",function(n,t,i,r,u,f){"use strict";var e="AuthApp",s=t.module("Utils.String"),h=t.module("Utils.Ajax"),o={start:function(){var n=t.request("auth:entity");t.request("auth:isAuthorized")?(t.execute("auth:notify:start"),o.ajaxSetup(n.get("access_token"))):($logger.info(e,"start call (unauthorized), logout"),t.execute("auth:logout",{noRequest:!n.hasToken()}))},login:function(n){var r=t.ClientSession.getId(),h=moment(),i;$logger.info(e,"login call, $.ajax(/Token), client_id: "+r);i={Prefer:"return-content"};t.sendRequestIdFromUi&&(i[t.requestIdHeader]=t.Entities.generateGuid());u.ajax({type:"POST",url:t.stsServer.getUrl()+"/Token",crossDomain:t.stsServer.isCrossDomain(),data:f.extend({grant_type:"password",client_id:r},n.data),headers:i,success:function(i){var r;if($logger.info(e,"login call, $.ajax(/Token) call succeeded, refresh AuthModel, ajaxSetup, thigger LoggedIn event"),r=t.request("auth:entity"),r.set(f.extend(i,{date:moment(),requestStart:h})),t.execute("auth:notify:start"),i.isStsToken==="True"&&($logger.info(e,"Got token for STS on login"),r.set({role:"Anonymous"}),n.error)){n.error(i);return}t.AuthInfo.set(i);var u=i.language,s=t.request("settings:entity"),c=s.get("language").value,l=u&&u!==c;if(t.vent.trigger("auth:loggedIn",{withReload:l}),l){$logger.info(e,"Changing language on login and rerefreshing page. Current language: "+c+". User's language: "+u);s.changeLang(u,{noRequest:!0});t.execute("page:reload");return}o.ajaxSetup(r.get("access_token"));n.success&&n.success()},error:function(t){$logger.info(e,"login call, $.ajax(/Token) call failed: "+s.toJSON(t));n.error&&n.error(t)},complete:function(t,i){n.complete&&n.complete(t,i)}})},logoutWithTokenRefreshIfNeeded:function(n){var i=t.request("auth:entity");t.request("auth:hasValidToken")||!t.request("auth:hasValidRefreshToken")||i.get("failedRefreshToken")||!i.isAuthorized()?o.logout(n):($logger.info(e,"logout: refresh token before logout"),o.refreshToken().always(function(){o.logout(n)}))},logout:function(n){n=n||{};$logger.info(e,"logout call");t.execute("hub:stop");var i=t.request("auth:entity"),r=i.hasValidToken()&&i.hasValidRefreshToken();i.set({failedRefreshToken:!0});t.execute("auth:notify:stop");t.refershTokenDfd&&t.refershTokenDfd.abort&&t.refershTokenDfd.abort();!n.noRequest&&r?($logger.info(e,"logout: sending logout request (/api/Account/Logout)"),u.ajax({type:"POST",url:t.stsServer.getUrl()+"/api/User/Logout",crossDomain:t.stsServer.isCrossDomain(),headers:{Authorization:"Bearer "+i.get("access_token")},complete:function(){$logger.info(e,"logout: done logout request");n.complete&&n.complete()}})):$logger.info(e,"logout: without request");t.AuthInfo.cleanup();i.clear();r?f.delay(function(){t.execute("account:gotologin")},100):n.complete&&n.complete();t.execute("account:gotologin");t.vent.trigger("auth:loggedOut")},refreshToken:function(){var l,n,i,r;if($logger.info(e,"refreshToken call"),l=t.ClientSession.getId(),t.refershTokenDfd)return t.refershTokenDfd;if(n=t.request("auth:entity"),i=n.get("refresh_token"),!i||n.get("failedRefreshToken"))return $logger.error(e,"refreshToken: no refresh_token"),u.Deferred().reject({responseJSON:{Code:"UnknownError"}});$logger.info(e,"refreshToken: "+i);r={Prefer:"return-content"};t.sendRequestIdFromUi&&(r[t.requestIdHeader]=t.Entities.generateGuid());var a=moment(),v=n.get("date"),c=u.Deferred();return t.refershTokenDfd=c.promise(),u.ajax({type:"POST",url:t.stsServer.getUrl()+"/Token",crossDomain:t.stsServer.isCrossDomain(),data:{grant_type:"refresh_token",refresh_token:i,client_id:l},headers:r}).done(function(i,r,u){$logger.info(e,"refreshToken call success, ajaxSetup");h.traceAjax(this.type,this.url,u);n.set(f.extend(i,{date:moment(),requestStart:a}));t.execute("auth:notify:start");t.AuthInfo.set(i);i.isStsToken==="True"&&($logger.info(e,"Refresh token: Password expired!"),n.set({role:"Anonymous"}));o.ajaxSetup(i.access_token);c.resolve(i,r,u)}).fail(function(i,r,u){if(h.traceAjax(this.type,this.url,i),i.isAborted)$logger.warn(e,"refreshToken: refresh was aborted");else{n.load();var f=n.get("date");f&&f.diff(v)>0?($logger.warn(e,"refreshToken: token was already refreshed"),o.ajaxSetup(n.get("access_token")),i.tokenIsAlreadyRefreshed=!0,t.refershTokenDfd=null):($logger.error(e,"refreshToken: redirect to login page: "+s.toJSON(i)),n.set({failedRefreshToken:!0}),t.execute("account:gotologin"))}c.reject(i,r,u)}).always(function(){t.refershTokenDfd=null}),t.refershTokenDfd},ajaxSetup:function(n){u.ajaxSetup({headers:{Prefer:"return-content"}});t.signalR=t.signalR||{};t.signalR.qs={Bearer:n}},setupToken:function(){var n=t.request("auth:entity");t.AuthInfo.set(n.attributes);o.ajaxSetup(n.get("access_token"))}};t.commands.setHandler("auth:login",function(n){o.login(n)});t.commands.setHandler("auth:logout",function(n){o.logoutWithTokenRefreshIfNeeded(n)});t.reqres.setHandler("auth:refreshToken",function(n){return o.refreshToken(n)});t.reqres.setHandler("auth:setupToken",function(){return o.setupToken()});t.addInitializer(function(){o.start()});t.vent.on("logout:user",function(n){t.execute("logout:message",n)})});App.module("AuthNotify",function(n,t){"use strict";var i="AuthNotify",r={timer:null,popupView:null,modalWrapper:null,start:function(){$logger.info(i,"start");this.schedule()},stop:function(){$logger.info(i,"stop");this.hidePopup()},schedule:function(){var n=t.authModel.getRefreshTokenLeftTime()-t.notifyBeforeSessionEnd*1e3;this.hidePopup();this.timer=window.setTimeout(this.showPopup.bind(this),Math.max(0,n))},showPopup:function(){this.timer=window.setInterval(this.updatePopup.bind(this),1e3);this.popupView=new t.ErrorApp.Show.SessionExpiring({leftTime:t.authModel.getRefreshTokenLeftTime()});this.popupView.listenTo(this.popupView,"click:proceed",this.proceed);this.popupView.listenTo(this.popupView,"click:logout",this.logout);this.modalWrapper=t.showModal(this.popupView);t.authModel.getRefreshTokenLeftTime()},updatePopup:function(){var r=t.request("auth:entity"),n=r.getRefreshTokenLeftTime(),i;n==null||n<=0?(this.hidePopup(),i=t.ErrorLocalizer.getModalText("CheckUserSessionExceptions/RefreshTokenExpired"),t.ErrorApp.showAccountError(i.title,i.text),t.execute("auth:logout",{noRequest:!r.hasToken()})):n>t.notifyBeforeSessionEnd*1e3?this.schedule():this.popupView.setLeftTime(n)},hidePopup:function(){this.timer=window.clearTimeout(this.timer);this.modalWrapper&&(this.modalWrapper.hide(),this.modalWrapper=null)},proceed:function(){t.request("auth:refreshToken")},logout:function(){t.execute("auth:logout")}};t.commands.setHandler("auth:notify:start",function(n){r.start(n)});t.commands.setHandler("auth:notify:stop",function(n){r.stop(n)})});App.module("DocumentApp",function(n,t,i,r){"use strict";var u=t.module("Localization.Loader"),f=t.Routing.RouteController.extend({controllerMenuRoute:"document/list",list:{action:function(){this.promiseWrapper(u.load("document")).then(function(){new n.List.Controller({region:t.mainRegion})})},exclusiveCancellingScope:t.tabLoadingCancellingScope}});n.Router=r.AppRouter.extend({appRoutes:{"document/list":"list"}});t.addInitializer(function(){return n.RouteController=new f,new n.Router({controller:n.RouteController})});t.commands.setHandler("document:list",function(){t.navigate("document/list");n.RouteController.executeAction("list")})});App.module("DocumentApp.List",function(n,t,i,r,u,f){"use strict";n.Controller=t.Controllers.Base.extend({name:"DocumentApp.List.Controller",initialize:function(){this.applyState(function(n){this.contracts=t.request("contract:entities",{state:n.collectionState})},function(){this.contracts=t.request("contract:entities")});this.layoutView=new n.LayoutView;this.contracts.setDefaultErrorHandler(f.bind(this.errorHandler,this));this.listenTo(this.layoutView,"render",this.showRegions);this.show(this.layoutView,{loading:{entities:this.contracts,errorHandler:f.bind(this.loadingErrorHandler,this)}})},loadingErrorHandler:function(n,t){return this.errorHandler(this.contracts,t)},errorHandler:function(n,i){var r=t.ErrorLocalizer.getModalText("document/list/errors",i),u=new t.ErrorApp.Show.MainRegionError({regionTitle:this.glob("document/list/tabs/contracts"),title:r.title,text:r.text});return t.Analytics.Contracts.contractsError(i),t.mainRegion.show(u),!0},showCollection:function(){this.contractListView=new n.ContractList({collection:this.contracts});this.listenTo(this.contractListView,"childview:contract:view",this.onContractView);this.layoutView.getRegion("contractListRegion").show(this.contractListView)},showLoading:function(){var n=t.request("loading:view:gray");this.layoutView.getRegion("contractListRegion").show(n);this.state.collectionState=f.pick(this.contracts.state,["currentPage","filter"]);this.saveState(this.state)},getStoreId:function(){return"docs_list"},showRegions:function(){this.showCollection();this.pagerView=t.request("pager:view",{collection:this.contracts});this.layoutView.getRegion("pagerRegion").show(this.pagerView);this.listenTo(this.contracts,"request",this.showLoading);this.listenTo(this.contracts,"reset add remove",this.showCollection)}})});App.module("DocumentApp.List",function(n,t){"use strict";var i=t.module("Constants.Contracts");n.LayoutView=t.Views.LayoutView.extend({template:"document/list/layout",className:"section",regions:{modalRegion:".modal-region",contractListRegion:".contract-list-region",pagerRegion:".pager-region"}});n.ContractItem=t.Views.ItemView.extend({template:"document/list/contract",className:"points pd cf",ui:{contractName:"h4"},availableRequestsGlobPath:"document/requestsAvailable",events:{"click .document-list__file-link":"downloadDocumentFileClick"},serializeData:function(){var n=t.Views.ItemView.prototype.serializeData.apply(this,arguments),i=this.getStatusColor(n);return n.badgeColor="bg-"+i,n.statusColor="clr-"+i,n.availableText=this.getAvailableRequestsText(n),n.statusText=t.glob("document/statuses/"+n.Status),n.startDateText=Globalize.formatDate(t.toLocalDate(n.StartDate),{date:"short"}),n.endDateText=this.getEndDateText(n),n},getAvailableRequestsText:function(n){var i,r;return n.ContractLimit?(i=n.ContractLimit.Left,i=i&&i>0?i:0,r=t.globPlural(i),t.glob(this.availableRequestsGlobPath+"/"+r,{left:i,limit:n.ContractLimit.ContractIncidentLimit})):null},getEndDateText:function(n){var u,r;return n.Status===i.Status.LIMIT_EXHAUSTED?"":(u=t.toLocalDate(n.EndDate),r=Globalize.formatDate(u,{date:"short"}),n.Status!==i.Status.EXPIRED?t.glob("document/statuses/until")+r:r)},getStatusColor:function(n){switch(n.Status){case i.Status.ACTIVE:return"green";case i.Status.EXPIRED:return"gray";case i.Status.LIMIT_EXHAUSTED:return"gray";default:return"red"}},downloadDocumentFileClick:function(n){this.downloadFileClick(n);t.Analytics.Contracts.contractDownloadEvent()}});n.NoContract=t.Views.ItemView.extend({template:"document/list/no-contract"});n.ContractList=t.Views.CollectionView.extend({childView:n.ContractItem,emptyView:function(){return n.NoContract}})});App.module("FooterApp",function(n,t){"use strict";var i={show:function(){return new n.Show.Controller({region:t.footerRegion})}};t.addInitializer(function(){i.show()})});App.module("FooterApp.Show",function(n,t,i,r,u,f){"use strict";n.Controller=t.Controllers.Base.extend({name:"FooterApp.Show.Controller",initialize:function(){this.model=t.request("settings:entity");this.layoutView=this.getLayoutView();this.listenTo(this.layoutView,"choose:language:click",this.onChooseLanguageClick);this.listenTo(this.model,"language:save:error",this.onSaveError);this.listenTo(t.request("auth:entity"),"change:role",this.onRoleChange);this.show(this.layoutView,{loading:!1})},onChooseLanguageClick:function(){this.languages=new t.Localization.Settings.SupportedLanguageCollection;this.chooseLanguageView=this.getChooseLanguageView();this.listenTo(this.chooseLanguageView,"change:language",this.onChangeLanguage);this.modalWrapper=t.request("modal:wrapper",{contentView:this.chooseLanguageView});t.modalRegion.show(this.modalWrapper)},onChangeLanguage:function(n){this.model.set("language",n)},onSaveError:function(n){var i=t.ErrorLocalizer.getModalText("footer/errors",n);this.showModalError(i.title,i.text,{region:t.modalRegion})},onRoleChange:function(){var n=this.layoutView;f.defer(n.render.bind(n))},getLayoutView:function(){return new n.LayoutView({model:this.model})},getChooseLanguageView:function(){return new n.ChooseLanguageView({collection:this.languages})}})});App.module("FooterApp.Show",function(n,t,i,r,u,f){"use strict";n.LayoutView=t.Views.LayoutView.extend({template:"footer/show/layout",className:"wrap",regions:{modalRegion:".modal-region"},triggers:{"click .choose-language":"choose:language:click"},events:{"click .footer__kl-logo":"onKasperskyLogoClick","click .footer__bsi-logo":"onBsiLogoClick","click .footer__faq-link":"onFaqLinkClick"},serializeData:function(){var i=function(n,t){return{url:n+"-link",text:n,click:n+"-click",action:t}},s=[i("support","Support"),i("contacts","Contacts"),i("politics","Privacy"),i("cookies","Cookies"),i("legalinformation","Legal"),{url:"faq-link",text:"faq"},],e=Globalize.cldr.get(["globalize-messages/{bundle}","footer"]),o=t.request("auth:role")==="Anonymous"&&"links-for-unauthorized-users"in e?"links-for-unauthorized-users":"links",r=function(n){return n in e[o]},u=function(n){return t.glob("footer/"+o+"/"+n)},n=t.Views.LayoutView.prototype.serializeData.apply(this,arguments);return n.currentYear=t.currentYear,n.languageText=t.glob("languages/"+n.language.value),n.links=[],f.each(s,function(t){r(t.url)&&r(t.text)&&n.links.push({href:u(t.url),text:u(t.text),click:t.action&&t.click&&r(t.click)?u(t.click)||"App.Analytics.Interaction.footerClick("+t.action+", this); return false;":undefined,action:t.action})}),n},onRender:function(){var n=this.model.get("language").value!=="ja";n&&this.$(".footer-bsi").removeClass("hide")},onKasperskyLogoClick:function(){t.Analytics.Interaction.footerClick("Logo",this)},onBsiLogoClick:function(){t.Analytics.Interaction.footerClick("BSI-Logo",this,!0)},onFaqLinkClick:function(){t.Analytics.Interaction.footerClick("Faq",this)}});n.LanguageView=t.Views.CompositeView.extend({template:!1,tagName:"a",className:"js-choose-lang",onRender:function(){var n=this.model.get("value");this.$el.html(t.glob("languages/"+n));this.$el.attr("data-value",n);this.$el.attr("href","javascript://")}});n.ChooseLanguageView=t.Views.CompositeView.extend({template:"footer/show/choose-language",childView:n.LanguageView,childViewContainer:".selector-lang",attachBuffer:function(n){var t=this._createBuffer(n),i=Math.ceil(t.childNodes.length/3),u=Array.prototype.slice.call(t.childNodes,0,i),f=Array.prototype.slice.call(t.childNodes,i,2*i),e=Array.prototype.slice.call(t.childNodes,2*i),r=this.getChildViewContainer(n);r.find(".left-column").html(u);r.find(".middle-column").html(f);r.find(".right-column").html(e)},events:{"click .js-choose-lang":"onLanguageLinkClick"},onLanguageLinkClick:function(n){var r=u(n.target).attr("data-value"),i=u(n.target).text();t.Analytics.Interaction.footerLanguageSelectEvent(i,function(){this.trigger("change:language",{value:r,text:i})}.bind(this))}})});App.module("HeaderApp.Authorized",function(n,t,i,r,u,f){"use strict";n.Controller=t.Controllers.Base.extend({name:"HeaderApp.Authorized.Controller",initialize:function(){this.layoutView=new n.Layout;this.show(this.layoutView,{loading:!1});this.menuView=new n.Menu({});this.userInfoView=new n.UserInfo({model:t.AuthInfo});this.layoutView.getRegion("menuRegion").show(this.menuView);this.layoutView.getRegion("userInfoRegion").show(this.userInfoView);this.onCounterChange(t.RequestCounter);this.onAuthChange(t.AuthInfo);this.listenTo(this.menuView,"menu:link",this.onMenuLinkClick);this.listenTo(this.menuView,"menu:create",this.onMenuCreateClick);this.listenTo(this.userInfoView,"header:click",this.onHeaderClick);this.listenTo(this.userInfoView,"logout:click",this.onLogoutClick);this.listenTo(this.userInfoView,"username:click",this.onUserEmailClick);this.listenTo(t.RequestCounter,"change",this.onCounterChange);this.listenTo(t.AuthInfo,"change",this.onAuthChange);this.listenTo(t.vent,"route",this.onRouteChange);this.listenTo(t.vent,"company:logo:change",this.onCompanyLogoChange);this.logoLinkModel=new t.Entities.LogoLinkModel;this.logoLinkModel.fetch({success:f.bind(function(n,i){i.IsDefault?t.vent.trigger("company:logo:change",t.logo.defaultUrl):t.vent.trigger("company:logo:change",i.Base64String)},this),error:f.bind(function(){t.vent.trigger("company:logo:change",t.logo.defaultUrl)},this)})},onCompanyLogoChange:function(n){this.userInfoView.refreshCompanyLogo(n)},onCounterChange:function(n){this.menuView.setCounter(n.get("pendingCount"))},onAuthChange:function(n){var t=n.isUnknownComp()||!n.isMain(),i=n.isTA(),r=n.isTA();this.menuView.toggleUsers(!t);this.menuView.toggleLicenses(!i);this.menuView.toggleContracts(!r)},onLogoutClick:function(){t.execute("auth:logout")},onHeaderClick:function(){t.execute("request:list")},onMenuLinkClick:function(n){t.execute(n.split("/").join(":"))},onMenuCreateClick:function(){this.menuView.toggleLoading(!0);this.requestTypeList=new t.Entities.RequestTypeList;this.requestTypeList.fetch({success:f.bind(function(){if(this.menuView.toggleLoading(!1),this.requestTypeList.length===1){var i=this.requestTypeList.models[0].get("SRDInstanceId"),n;f.each(t.requests,f.bind(function(t,r){t===i&&(n=r)},this));n?t.execute("request:create:"+n):t.execute("error:forbidden")}else t.execute("request:create",{collection:this.requestTypeList})},this),error:f.bind(function(n,i){this.menuView.toggleLoading(!1);this.requestTypeList.reset();t.execute("request:create",{resp:i,collection:this.requestTypeList})},this)})},onRouteChange:function(n){this.menuView&&this.menuView.setActiveItem(n)},onUserEmailClick:function(){t.execute("profile:show")},onDestroy:function(){this.logoLinkModel&&this.logoLinkModel.abortFetch()}})});App.module("HeaderApp.Authorized",function(n,t,i,r,u){"use strict";n.Layout=t.Views.LayoutView.extend({template:"header/authorized/layout",className:"head pd",regions:{menuRegion:".menu-region",userInfoRegion:".user-info-region"}});n.Menu=t.Views.ItemView.extend({template:"header/authorized/menu",ui:{createBtn:".btn-create"},events:{"click .menu-item":"onMenuLinkClick","click @ui.createBtn":"onCreateNewReqClick"},onMenuLinkClick:function(n){n.stopPropagation();n.preventDefault();var i=u(n.currentTarget),t=i.data("route");t&&this.trigger("menu:link",t)},onCreateNewReqClick:function(n){n.stopPropagation();n.preventDefault();var t=this.ui.createBtn,i=t.data("loading");i||this.trigger("menu:create")},setActiveItem:function(n){this.$("a.cur").removeClass("cur");this.$('a[data-route="'+n+'"]').addClass("cur")},toggleLoading:function(n){var r=this.ui.createBtn,u;r.data("loading",n);n?(r.data("text",r.text()),u=new i.Marionette.Region({el:r}),u.show(t.request("loading:view"))):r.html("<span>"+r.data("text")+"<\/span>")},toggleUsers:function(n){this.$('[href="/user/list"]').toggleClass("off",!n)},toggleLicenses:function(n){this.$('[href="/license/list"]').toggleClass("off",!n)},toggleContracts:function(n){this.$('[href="/document/list"]').toggleClass("off",!n)},setCounter:function(n){n=n||0;var t=this.$(".request-count");t.text(n);t.parent().toggleClass("off",n<=0)}});n.UserInfo=t.Views.ItemView.extend({template:"header/authorized/user-info",bindings:{".user-login":"username",".user-company-id":"companyId",".user-company-name":"companyName"},triggers:{"click .a-logo":"header:click","click .account-logout":"logout:click","click .user-login":"username:click"},ui:{logoImg:".a-logo .logo",spinner:".a-logo .spinner"},onRender:function(){this.stickit()},refreshCompanyLogo:function(n){this.isDestroyed()||(this.ui.spinner.addClass("off"),this.ui.logoImg.removeClass("off"),this.ui.logoImg.attr("src",n))}})});App.module("HeaderApp.Guest",function(n,t){"use strict";n.Controller=t.Controllers.Base.extend({name:"HeaderApp.Guest.Controller",initialize:function(){this.layoutView=this.getLayoutView();this.show(this.layoutView,{loading:!1})},getLayoutView:function(){return new n.Layout}})});App.module("HeaderApp.Guest",function(n,t){"use strict";n.Layout=t.Views.LayoutView.extend({template:"header/guest/layout",className:"head pd"})});App.module("HeaderApp",function(n,t){"use strict";var i={show:function(){return t.request("auth:role")!=="Anonymous"?new n.Authorized.Controller({region:t.headerRegion}):new n.Guest.Controller({region:t.headerRegion})}};n.show=i.show;t.vent.on("auth:loggedIn",function(n){n&&n.withReload||i.show()});t.vent.on("auth:loggedOut",i.show)});App.module("HubApp",function(n,t,i,r,u,f){"use strict";var e={initSignalR:function(){if(t.enableSignalR){var n=t.signalR=t.signalR||{};n.connection.hub.qs=n.qs;n.connection.hub.start().done(f.bind(function(){n.started=!0;n.countErrors=0;console.log("SignalR: connected - transport = "+(u.connection.hub.transport?u.connection.hub.transport.name:"NOTHING")+"; ID="+u.connection.hub.id)},this)).fail(f.bind(function(){n.countErrors!=n.maxErrors?(n.countErrors++,console.log("Not connected: "+n.countErrors),f.delay(f.bind(function(){this.start()},this),1e3)):console.log("Stop trying - max errors = "+n.maxErrors)},this))}},start:function(){var n,i;t.enableSignalR&&(n=t.signalR=t.signalR||{},n.onceInit||(n.connection=u.connection,n.proxy=n.connection.pushHub,n.proxy.client.triggerEvent=this.triggerEvent,n.connection.logging=!0,n.onceInit=!0,n.maxErrors=10,n.countErrors=0,n.connection.hub.error(f.bind(function(n){console.log(n.message);n&&n.message&&n.message==="Long polling request failed."&&t.request("auth:refreshToken")},this))),this.started||(t.request("auth:hasToken")?t.request("auth:hasValidToken")?(t.request("auth:setupToken"),e.initSignalR()):(i=t.request("auth:refreshToken"),i.done(function(){e.initSignalR()}).fail(function(){t.execute("auth:logout")})):t.execute("account:gotologin")))},restart:function(){t.enableSignalR&&(this.stop(),this.start())},stop:function(){if(t.enableSignalR){var n=t.signalR=t.signalR||{};n.started=!1;n.connection||(n.connection=u.connection);n.connection.hub.stop()}},triggerEvent:function(n,i){t.enableSignalR&&t.vent.trigger(n,i)}};t.commands.setHandler("hub:start",function(){e.start()});t.commands.setHandler("hub:restart",function(){e.restart()});t.commands.setHandler("hub:stop",function(){e.stop()})});App.module("LicenseApp.Compatible",function(n,t,i){"use strict";n.Controller=t.Controllers.Base.extend({name:"LicenseApp.Compatible.Controller",initialize:function(){this.collection=new t.Entities.CompatibleApplicationCollection([],{licenseId:this.options.licenseId});this.layoutView=this.getLayoutView();this.loadingView=t.request("loading:view:gray");this.modalWrapper=t.request("modal:wrapper",{contentView:this.loadingView});this.show(this.modalWrapper,{loading:!1});this.collection.fetch();t.execute("when:fetched",[this.collection],this.onFetched,this);t.execute("when:error",[this.collection],this.onError,this)},onFetched:function(){this.applicationListView=this.getApplicationListView();this.modalWrapper=t.request("modal:wrapper",{contentView:this.layoutView});this.show(this.modalWrapper,{loading:!1});this.layoutView.getRegion("applicationListRegion").show(this.applicationListView)},onError:function(n){var i=t.ErrorLocalizer.getModalText("license/compatible/errors",n);this.showModalError(i.title,i.text,{region:t.modalRegion});t.Analytics.Licenses.licenseApplicationListError(n)},getApplicationListView:function(){return new n.ApplicationList({collection:this.collection})},getLayoutView:function(){return new n.LayoutView({model:new i.Model({name:this.options.name})})},getSyncView:function(t){return new n.SyncView(t)}})});App.module("LicenseApp.Compatible",function(n,t,i,r,u){"use strict";n.LayoutView=t.Views.LayoutView.extend({template:"license/compatible/layout",regions:{applicationListRegion:".application-list-region"}});n.ApplicationItem=t.Views.ItemView.extend({template:"license/compatible/application",tagName:"div",onRender:function(){var t=this.model.get("URL"),i=this.model.get("SaleListName"),n;if(t){n=u('<a href="'+t+'" target="_blank">'+i+"<\/a>");this.$el.html(n);n.on("click",this.onClick.bind(this))}},onClick:function(n){t.Analytics.Licenses.licenseApplicationClickEvent(n.target)}});n.ApplicationList=t.Views.CollectionView.extend({childView:n.ApplicationItem,className:"modal-note"});n.SyncView=t.Views.ItemView.extend({template:"license/compatible/sync",serializeData:function(){return this.options}})});App.module("LicenseApp",function(n,t,i,r){"use strict";var u=t.module("Localization.Loader"),f=t.Routing.RouteController.extend({controllerMenuRoute:"license/list",list:{action:function(){this.promiseWrapper(u.load("license")).then(function(){new n.List.Controller({region:t.mainRegion})})},exclusiveCancellingScope:t.tabLoadingCancellingScope}});n.Router=r.AppRouter.extend({appRoutes:{"license/list":"list"}});t.addInitializer(function(){return n.RouteController=new f,new n.Router({controller:n.RouteController})});t.commands.setHandler("license:list",function(){t.navigate("license/list");n.RouteController.executeAction("list")})});App.module("LicenseApp.List",function(n,t,i,r,u,f){"use strict";n.Controller=t.Controllers.Base.extend({name:"LicenseApp.List.Controller",initialize:function(){t.execute("show:broadcast");StorageQueue.put("save-store");this.applyState(function(n){var u=n.collectionState,r=u&&u.filter;r&&!f.contains(["All","Active","Expiring","Inactive","Blocked"],r.filter)&&(r.filter="All");this.expandedItems=n.openedIndexes;this.licenses=t.request("license:entities",{state:u});this.addLicense=t.request("license:add:model:instance");this.filterModel=new i.Model(r)},function(){this.licenses=t.request("license:entities");this.addLicense=t.request("license:add:model:instance");this.filterModel=new i.Model});this.licenses.setDefaultErrorHandler(f.bind(this.errorHandler,this));this.layoutView=new n.LayoutView({model:this.filterModel});this.listenTo(this.layoutView,"render",this.showRegions);this.listenTo(this.layoutView,"before:render",this.beforeShow);this.listenTo(this.layoutView,"sort:direction:change",this.onSortDirectionChange);this.listenTo(this.addLicense,"change:ActivationCode",this.onChangeLicense);this.show(this.layoutView,{loading:{entities:this.licenses,errorHandler:f.bind(this.loadingErrorHandler,this)}})},loadingErrorHandler:function(n,t){return this.errorHandler(this.licenses,t)},errorHandler:function(n,i){var r=t.ErrorLocalizer.getModalText("license/list/errors",i),u;t.Analytics.Licenses.licenseListError(i);u=new t.ErrorApp.Show.MainRegionError({regionTitle:this.glob("license/list/title"),title:r.title,text:r.text});t.mainRegion.show(u)},beforeShow:function(){this.expandedItems&&f.each(this.expandedItems,f.bind(function(n){var t=this.licenses.at(n);t&&t.set({expand:!0})},this))},showRegions:function(){this.showCollection();var i=t.request("pager:view",{collection:this.licenses});this.layoutView.getRegion("pagerRegion").show(i);this.licenseAddView=new n.LicenseAdd({model:this.addLicense});this.layoutView.getRegion("licenseAddRegion").show(this.licenseAddView);this.listenTo(this.licenseAddView,"code:send",this.onSendCode);this.listenTo(this.filterModel,"change",this.onFilterChange);this.listenTo(this.licenses,"request",this.showLoading);this.listenTo(this.licenses,"reset",this.showCollection)},showLoading:function(){var i=f.pick(this.licenses.state,["currentPage","filter"]),n;this.state.collectionState=i;this.saveState(this.state);n=t.request("loading:view:gray");this.layoutView.getRegion("licenseListRegion").show(n)},showCollection:function(){var i=t.request("auth:entity");this.licenseListView=new n.LicenseList({collection:this.licenses,authModel:i});this.listenTo(this.licenseListView,"childview:compatible:show",this.onCompatibleShow);this.listenTo(this.licenseListView,"childview:license:remove",this.onLicenseRemove);this.listenTo(this.licenseListView,"state:changed",this.expandStateChanged);this.layoutView.getRegion("licenseListRegion").show(this.licenseListView)},expandStateChanged:function(n){this.state.openedIndexes=n;this.saveState(this.state)},onLicenseRemove:function(n){t.request("confirm:view",{title:this.glob("license/list/remove/confirm-title"),text:this.glob("license/list/remove/confirm-text",n.model.get("SaleListName")),acceptButtonText:this.glob("license/list/remove/confirm-button"),success:f.bind(function(){var i=t.request("license:remove:model:instance");i.set("LicenseId",n.model.get("ReconciliationId"));i.save(null,{success:f.bind(function(){this.licenses.state.currentPage=1;this.licenses.fetch();t.Analytics.Licenses.licenseDeletedEvent(n.model.get("Status"));this.expandStateChanged([]);t.execute("clear:broadcast");t.execute("show:broadcast")},this),error:f.bind(function(n,i){t.Analytics.Licenses.licenseDeleteError(i);var r=t.ErrorLocalizer.getModalText("license/remove/errors",i);this.showModalError(r.title,r.text,{region:t.modalRegion})},this)})},this)})},onChangeLicense:function(n,t){this.state.addLicense={ActivationCode:t};this.saveState(this.state)},onSendCode:function(){var i=this.licenseAddView;if(i.validateClick=!0,!this.addLicense.isValid(!0)){delete i.validateClick;return}delete i.validateClick;i.switchLoading(!0);i.switchErrorMsg(!1);this.addLicense.save(null,{success:f.bind(function(r,u){t.Analytics.Licenses.successLicenseAddEvent({isKeyFile:r.has("KeyFile"),isUserMoved:u.IsUserSuccessMoved});i.fieldValidation=!1;this.noFilterRequest=!0;this.filterModel.set({sort:"EndDateAsc",filter:"All"});r.unset("ActivationCode");r.unset("KeyFile");i.switchLoading(!1,!0);u.IsUserSuccessMoved?($logger.info(this.name,"License was added and user was moved to different company"),this.licenses.fetch({success:f.bind(function(){var i=new n.SuccessUserMovedView({model:this.addLicense}),r;this.listenTo(i,"success:click",f.bind(this.reloadPage,this));r=t.request("modal:wrapper",{contentView:i,onHide:this.reloadPage.bind(this)});t.modalRegion.show(r)},this)})):this.licenses.fetch();this.noFilterRequest=!1;i.fieldValidation=!0;this.expandStateChanged([]);t.execute("clear:broadcast");t.execute("show:broadcast")},this),error:f.bind(function(n,r){if(i.switchLoading(!1),n.noAnalytics=!0,n.unset("KeyFile"),f.delay(function(){delete n.noAnalytics},100),t.Analytics.Licenses.licenseAddError(r),!r.isValidationError){var u=t.ErrorLocalizer.getModalText("license/add/errors",r);this.showModalError(u.title,u.text,{region:t.modalRegion})}},this)})},reloadPage:function(){$logger.info(this.name,"Refreshing token before reloading the page");t.request("auth:refreshToken").then(function(){$logger.info(this.name,"Clearing broadcast cache");t.execute("clear:broadcast");$logger.info(this.name,"Reloading the page");t.execute("page:reload")})},onSortDirectionChange:function(n){var i={reset:!0,noRequest:this.noFilterRequest};n?(this.filterModel.set("sort","EndDateDesc",{silent:!0}),this.licenses.setFilter("sort","EndDateDesc",i)):(this.filterModel.set("sort","EndDateAsc",{silent:!0}),this.licenses.setFilter("sort","EndDateAsc",i));t.Analytics.Licenses.licensesListSortedEvent(n)},onFilterChange:function(){var n=this.filterModel.get("filter");this.licenses.setFilter("filter",n,{reset:!0,noRequest:this.noFilterRequest});t.Analytics.Licenses.licensesListFilteredEvent(n)},onCompatibleShow:function(n){var i=n.model.get("ReconciliationId"),r=n.model.get("SaleListName");new t.LicenseApp.Compatible.Controller({name:r,licenseId:i,region:t.modalRegion});t.Analytics.Licenses.showApplicationListEvent()},getStoreId:function(){return"license_list_store_id"}})});App.module("LicenseApp.List",function(n,t,i,r,u,f){"use strict";n.LayoutView=t.Views.LayoutView.extend({template:"license/list/layout",className:"section",initialize:function(){this.listenTo(this.model,"change",this.onModelChange)},regions:{licenseListRegion:".license-list-region",licenseAddRegion:".license-add-region",modalRegion:".modal-region",pagerRegion:".pager-region"},bindings:{".filter-status":"filter"},events:{"click .a-filter":"onSortDirectionChange"},setSortDirection:function(){var n=this.model.get("sort"),t=!n||n==="EndDateAsc";this.$(".a-filter").toggleClass("a-filter-back",t)},onModelChange:function(){this.setSortDirection()},onSortDirectionChange:function(){this.$(".a-filter").toggleClass("a-filter-back");this.trigger("sort:direction:change",!this.$(".a-filter").hasClass("a-filter-back"))},onRender:function(){this.stickit();this.setSortDirection()}});n.LicenseAdd=t.Views.ItemView.extend({template:"license/list/license-add",ui:{keyFileInput:".fileupload-input-key-file",addBtn:".lic-add",uploadBtn:".btn-upload",licenseCodeInput:".license-code"},events:{"change @ui.keyFileInput":"onKeyFileInputChanged","mousedown @ui.addBtn":"onSendClick","click @ui.keyFileInput":"onUploadBtnClick","drop @ui.keyFileInput":"onUploadBtnClick"},modelEvents:{"change:ActivationCode":"onChangeLicense","change:KeyFile":"onChangeLicense"},initialize:function(){i.Validation.bind(this,{valid:function(n){i.Validation.callbacks.valid.apply(this,arguments);n.switchErrorMsg(!1)},invalid:function(n,t,r){n.fieldValidation&&(i.Validation.callbacks.invalid.apply(this,arguments),n.validateClick=!0,n.switchErrorMsg(r),delete n.validateClick)}});this.fieldValidation=!0;this.bindings={".license-code":{observe:"ActivationCode",events:["cut","paste","change"]}}},onKeyFileInputChanged:function(){var t=this.ui.keyFileInput[0].files[0],i=this.model.get("ActivationCode"),n;if(this.model.set({KeyFile:t,ActivationCode:""}),n=!this.model.isValid(!0),n){this.model.set({KeyFile:null,ActivationCode:i});return}this.trigger("code:send")},onSendClick:function(){var n=this.ui.addBtn,t=!n.hasClass("bg-gray");t&&this.trigger("code:send")},onUploadBtnClick:function(n){if(this.ui.uploadBtn.hasClass("disabled-upload")){n.preventDefault();return}t.Analytics.Licenses.initiateLicenseAddEvent(!0)},onChangeLicense:function(n,t){var i=n.has("KeyFile");this.ui.licenseCodeInput.prop("disabled",i);this.ui.uploadBtn.toggleClass("disabled-upload",!!t);this.ui.keyFileInput.attr("visible",!!t);i||this.ui.keyFileInput.closest("form").get(0).reset()},switchErrorMsg:function(n){var i=this.$(".license-upload-err"),r=this.$(".license-upload-ok");n&&f.isString(n)&&this.validateClick?(i.addClass("off"),this.isModalErrorShown||(this.isModalErrorShown=!0,t.showModalError(n,null,{onHide:this.onModalErrorHide.bind(this)}))):n?(f.isString(n)&&i.html(n),i.removeClass("off"),r.addClass("off")):i.addClass("off")},onModalErrorHide:function(){this.isModalErrorShown=!1},switchLoading:function(n,t){var r=this.ui.addBtn,i=this.ui.uploadBtn,u=this.$(".license-upload-process"),f=this.$(".license-upload-ok");n?(i.disableButton(),i.find("input").hide(),r.disableButton(),u.removeClass("off"),f.addClass("off")):(i.enableButton(),i.find("input").show(),r.enableButton(),u.addClass("off"),t&&(this.successSubmit=!0,f.removeClass("off")))},onRender:function(){this.stickit();this.onChangeLicense(this.model,this.model.get("ActivationCode"))}});n.LicenseItem=t.Views.ItemView.extend({template:"license/list/license",className:"points",bindings:{".license-activation-code":"ActivationCode",".license-serial-number":"SerialNumber",".license-order-number":"OrderNumber",".license-count":"LicenseCount",".license-key-file-name":"KeyFile",".license-comment":{observe:["Comment","BlockedDate"],onGet:function(n){var i=n[0],r=n[1],u,f;return i&&i!=="Empty"?i==="Blocked"?r?(u=t.toLocalDate(r),f=Globalize.formatDate(u,{date:"short"}),t.glob("license/comments/"+i,{BlockedDate:f})):($logger.error("Blocked license withount blocked date"),""):t.glob("license/comments/"+i):""}},".license-add-date":{observe:"AddDate",onGet:function(n){var i=t.toLocalDate(n);return Globalize.formatDate(i,{date:"short"})}},".license-status":{observe:"Status",onGet:function(n){return t.glob("license/statuses/"+n)}},".license-expire-date":{observe:"ExpireDate",onGet:function(n){if(n){var i=t.toLocalDate(n);return Globalize.formatDate(i,{date:"short"})}return""}}},ui:{openArea:".open-area",addInfo:".pd-add"},events:{"click @ui.openArea":"onOpenAreaClick"},triggers:{"click .compatible-application":"compatible:show","click .license-remove":"license:remove"},onOpenAreaClick:function(n){n.preventDefault();this.ui.addInfo.toggleClass("off");this.ui.openArea.toggleClass("close-area");this.isExpanded=this.ui.openArea.hasClass("close-area");this.trigger("toggled",this)},onRender:function(){this.stickit();this.listenTo(t.AuthInfo,"change:role",this.onRoleChange);this.onRoleChange(t.AuthInfo)},onRoleChange:function(n){this.$(".license-remove").toggleClass("off",!n.isMain())},serializeData:function(){var n=t.Views.ItemView.prototype.serializeData.apply(this,arguments),i=this.getStatusColor(),r=this.getCommentColor();return n.statusBorderClass="bg-"+i,n.statusTextClass="clr-"+i,n.commentTextClass="clr-"+r,n.expand=n.expand||!1,n},getStatusColor:function(){switch(this.model.get("Status")){case"NotActivated":return"gray";case"Valid":return"green";case"Expired":return"gray";case"Blocked":return"gray";default:return"green"}},getCommentColor:function(){switch(this.model.get("Comment")){case"NotActivated":return"gray";case"ExpiresSoon":return"red";case"Blocked":return"gray";default:return"gray"}}});n.NoLicense=t.Views.ItemView.extend({template:"license/list/no-license"});n.NoFilteredLicense=t.Views.ItemView.extend({template:"license/list/no-filtered-license"});n.LicenseList=t.Views.CollectionView.extend({childView:n.LicenseItem,emptyView:function(){var t=this.collection.state.filter;return!t||t.filter==="All"?n.NoLicense:n.NoFilteredLicense},initialize:function(){this.expandedChilds=[]},onChildviewToggled:function(n){var i=this.collection.indexOf(n.model),r=n.isExpanded;r?(this.expandedChilds=f.union(this.expandedChilds,[i]),t.Analytics.Licenses.licenseShowedEvent(n.model.get("Status"))):this.expandedChilds=f.without(this.expandedChilds,i);this.trigger("state:changed",this.expandedChilds)}});n.SuccessUserMovedView=t.Views.LayoutView.extend({template:"license/list/success-user-moved",triggers:{"click input":"success:click"}})});App.module("ProfileApp",function(n,t,i,r){"use strict";var u=t.module("Localization.Loader"),f=t.Routing.RouteController.extend({controllerMenuRoute:"profile/show",show:{action:function(){this.promiseWrapper(u.load("user")).then(function(){new n.Show.Controller({region:t.mainRegion})})},exclusiveCancellingScope:t.tabLoadingCancellingScope}});n.Router=r.AppRouter.extend({appRoutes:{"profile/show":"show"}});t.addInitializer(function(){return n.RouteController=new f,new n.Router({controller:n.RouteController})});t.commands.setHandler("profile:show",function(){t.navigate("profile/show");n.RouteController.executeAction("show")})});App.module("ProfileApp.Show",function(n,t,i,r,u,f){"use strict";var e=t.module("AccountApp.TermsOfUse");n.Controller=t.UserComponent.Controller.extend({name:"ProfileApp.Show.Controller",globalizePath:"profile/errors",initialize:function(){this.userInfo=t.request("profile:entity");this.updateModel=t.request("profile:update:entity");this.countryCollection=t.request("country:entities");this.filialsCollection=t.request("organizations:entities");this.fileAgreement=t.request("fileAgreement:entity");this.layoutView=this.getLayoutView();this.listenTo(this.layoutView,"render",this.showRegions);this.listenTo(this.layoutView,"before:render",this.beforeShow);this.show(this.layoutView,{loading:{entities:[this.userInfo,this.countryCollection,this.filialsCollection,this.fileAgreement,],errorHandler:this.loadingErrorHandler.bind(this)}});this.listenTo(this.layoutView,"delete:profile",this.onDeleteProfile);this.listenTo(this.layoutView,"delete:company",this.onDeleteCompany);this.listenTo(this.layoutView,"profile:save",this.onProfileSave);this.listenTo(this.layoutView,"reset:password",this.onResetPassword);this.listenTo(this.layoutView,"file:agreement",this.onFileAgreement);this.listenTo(this.layoutView,"termsOfUse:click",this.onTermsOfUseClick)},loadingErrorHandler:function(n,i){var r,u=t.ErrorLocalizer.getModalText("profile/show/errors",i);return t.Analytics.Users.profileOpenError(i),r=new t.ErrorApp.Show.MainRegionError({regionTitle:this.glob("profile/title-profile"),title:u.title,text:u.text}),t.mainRegion.show(r),!0},beforeShow:function(){f.isEmpty(this.updateModel.attributes)&&this.updateModel.set({FirstName:this.userInfo.get("FirstName"),LastName:this.userInfo.get("LastName"),Country:this.userInfo.get("Country"),Organization:this.userInfo.get("Organization")});this.applyState(function(n){this.updateModel.set(n)})},showRegions:function(){var n=this.countryCollection.findWhere({ISOCode:this.userInfo.get("Country")}),r,u,f,i;n||$logger.error(this.name,"Country not found in list");this.currentUserCountry=n&&n.get("ISOCode");this.fileAgreement.get("NeedAcceptAgreement")||(r=this.fileAgreement.get("AcceptedDate"),u=t.toLocalDate(r),f=Globalize.formatDate(u,{date:"short"}),this.layoutView.showFreshAgreement(f));this.listenTo(this.updateModel,"change",this.onChange);i=t.AuthInfo.isMain();this.layoutView.switchRemoveCompArea(i);i&&this.showLogoRegion()},showLogoRegion:function(){this.logoModel=new t.Entities.LogoAddModel;this.logoView=new t.UserComponent.CompanyLogoView({model:this.logoModel,userInfoModel:this.userInfo,fileAgreement:this.fileAgreement});this.layoutView.getRegion("logoRegion").show(this.logoView);this.layoutView.showCompanyLogo();this.loadLogo();this.listenTo(this.logoView,"logo:send",this.onSendCompanyLogo);this.listenTo(this.logoView,"delete:click",this.onDeleteCompanyLogo);this.listenTo(this.logoView,"logo:replace",this.onReplaceCompanyLogo);this.listenTo(this.logoView,"logo:select",this.onSelectCompanyLogo);this.listenTo(this.logoView,"logo:fileAgreement",this.onLogoAgreementCall)},onSelectCompanyLogo:function(){t.Analytics.Users.chooseFileForCompanyLogoEvent()},loadLogo:function(){var n=this.logoView,i=new t.Entities.LogoLinkModel;n.switchLogoLoading(!0);i.fetch({success:function(t,i){n.isDestroyed()||(n.switchLogoLoading(!1),n.showConfirmButton(!i.IsDefault),n.toggleLogoImage(i.Base64String))},error:function(){n.isDestroyed()||n.toggleLogoImage()}})},onDeleteCompanyLogo:function(n){var i=new t.Entities.LogoRemoveModel;n.switchLoading(!0);n.switchErrorMsg();i.save(null,{success:f.bind(function(){var i=this.glob("profile/companyLogo/success-deleted");n.switchLoading(!1,i);n.showConfirmButton(!1);t.Analytics.Users.companyLogoDeletedEvent();n.toggleLogoImage();t.vent.trigger("company:logo:change",t.logo.defaultUrl)},this),error:function(i,r){var u;n.switchLoading(!1);n.showConfirmButton(!0);t.Analytics.Users.companyLogoDeleteError(r);u=t.ErrorLocalizer.getErrorText("profile/companyLogo/errors",r);n.showErrorMsg(u.text)}})},onReplaceCompanyLogo:function(){t.Analytics.Users.showChangeLogoConfirmationModalEvent();t.request("logo:replace:view",{title:this.glob("profile/companyLogo/uploadConfirm/title"),text:this.glob("profile/companyLogo/uploadConfirm/text"),acceptButtonText:this.glob("profile/companyLogo/uploadConfirm/button"),parent:this.logoView})},onSendCompanyLogo:function(n){(this.logoModel.isReplaceLogo=n.isReplaceLogo,this.logoModel.isValid(!0))&&(n.switchLoading(!0),n.switchErrorMsg(),this.logoModel.save(null,{success:f.bind(function(i,r){t.Analytics.Users.companyLogoUploadedEvent(i);n.switchLoading(!1,!0);n.showConfirmButton(!r.IsDefault);t.vent.trigger("company:logo:change",r.Base64String||t.logo.defaultUrl);n.toggleLogoImage(r.Base64String)},this),error:f.bind(function(i,r){var u;t.Analytics.Users.companyLogoAddError(i,r);n.switchLoading(!1);r.isValidationError||(u=t.ErrorLocalizer.getErrorText("profile/companyLogo/errors",r),n.switchErrorMsg(u.text))},this)}))},onFileAgreement:function(){t.Analytics.Users.openFileAgreementEvent();this.showFileAgreement("Edit profile")},onLogoAgreementCall:function(){t.Analytics.Users.openFileAgreementOnLogoUploadEvent();this.showFileAgreement("Company logo")},showFileAgreement:function(n){t.request("fileAgreements:view",{model:this.fileAgreement,region:t.modalRegion,analyticsCategory:"Profile",analyticsRequestType:n,success:f.bind(function(){var n=this.fileAgreement.get("CurrentVersion"),t=Globalize.formatDate(new Date,{date:"short"});this.fileAgreement.set({AcceptedVersion:n,NeedAcceptAgreement:!1});this.layoutView.showFreshAgreement(t)},this)})},onProfileSave:function(){var n;this.updateModel.isValid(!0)&&(this.layoutView.switchSaveProfileLoading(!0),this.layoutView.switchErrorMsg(!1),n=this.updateModel.get("Organization"),this.updateModel.save(null,{success:f.bind(function(i){var r,u=i.get("Country"),o;u!==this.currentUserCountry&&($logger.info(this.name,"User changed his country from "+this.currentUserCountry+" to "+u+": clearing broadcasts"),t.execute("clear:broadcast"),this.currentUserCountry=u);i.get("UserShouldAcceptTermsOfUse")&&($logger.info(this.name,"User should accept ToU after changing country to "+u),o=t.request("auth:entity"),o.markAsShouldAcceptTermsOfUse(),e.show({fromUser:!0,shouldAccept:!0,onAccepted:function(){o.markAsShouldNotAcceptTermsOfUse()},onClosedByUser:function(){$logger.info(this.name,"User closed ToU: logging out");t.execute("auth:logout")}.bind(this)}));this.layoutView.switchSaveProfileLoading(!1,!0);n&&(r=this.filialsCollection,r.findWhere({Name:n})||(r.add({Name:f.escape(n),Id:n}),r.trigger("reset")));t.Analytics.Users.profileEditSuccessEvent(i);store.remove(this.getStoreId())},this),error:f.bind(function(n,i){var r,u;(this.layoutView.switchSaveProfileLoading(!1),t.Analytics.Users.profileEditError(i),i.isValidationError)||(r=this.commonErrorHandler(i),r||(u=this.glob("profile/personalinfo/saveError"),this.layoutView.switchErrorMsg(u)))},this)}))},onResetPassword:function(){var n=t.request("userInfo:reset:password:model:instance");t.Analytics.Users.initiateOwnPasswordResetEvent();n.save(null,{success:f.bind(function(){t.Analytics.Users.resetOwnPasswordUserLinkWasSentEvent();this.layoutView.switchPwdLoading(!1,!0)},this),error:f.bind(function(n,i){var r;t.Analytics.Users.profileResetPasswordError(i);this.layoutView.switchPwdLoading(!1);r=this.commonErrorHandler(i);r||this.layoutView.switchPwdErrorMsg(!0)},this)})},onDeleteProfile:function(){this.layoutView.switchDelProfErrorMsg(!1);t.Analytics.Users.deleteOwnProfileEvent();t.request("confirm:view",{title:this.glob("profile/delete/confirm/title"),text:this.glob("profile/delete/confirm/text",{email:this.userInfo.get("Email")}),acceptButtonText:this.glob("profile/delete/confirm/button"),success:f.bind(function(){var n;t.Analytics.Users.confirmOwnProfileDeletionEvent();this.layoutView.switchDelProfLoading(!0);n=t.request("profile:remove:model:instance");n.save(null,{success:f.bind(function(){this.layoutView.switchDelProfLoading(!1,!0)},this),error:f.bind(function(n,i){var r=this.getResponseMsg(i),u=this.glob("profile/delete/errors/"+r);t.Analytics.Users.profileDeleteError(i);this.layoutView.switchDelProfLoading(!1);this.layoutView.switchDelProfErrorMsg(u)},this)})},this)})},onDeleteCompany:function(){this.layoutView.switchDelCompErrorMsg(!1);t.Analytics.Users.companyDeleteEventStep1();t.request("confirm:view",{title:this.glob("profile/deleteCompany/confirm/title"),text:this.glob("profile/deleteCompany/confirm/description"),acceptButtonText:this.glob("profile/deleteCompany/confirm/continue"),success:f.bind(function(){var n;t.Analytics.Users.companyDeleteEventStep2();this.layoutView.switchDelCompLoading(!0);n=t.request("company:remove:model:instance");n.save(null,{success:f.bind(function(n,t){var i=this.getResponseMsg(t),r=this.glob("profile/deleteCompany/errors/"+i);this.layoutView.switchDelCompLoading(!1,r)},this),error:f.bind(function(n,i){var r=this.getResponseMsg(i),u=this.commonErrorHandler(i),f,e,o;if(t.Analytics.Users.companyDeleteError(i),r==="CompanyNotFound"&&!u){e=this.glob("account/deleteCompany/errors/CompanyNotFound/title");o=this.glob("account/deleteCompany/errors/CompanyNotFound/message");this.showModalError(e,o,{region:t.modalRegion});t.execute("auth:logout");return}u||(f=this.glob("profile/deleteCompany/errors/"+r),this.layoutView.switchDelCompLoading(!1),this.layoutView.switchDelCompErrorMsg(f))},this)})},this)})},onChange:function(){store.set(this.getStoreId(),this.updateModel.toJSON())},getStoreId:function(){return"user-show_"+this.userInfo.get("Email")},getLayoutView:function(){var n=this.glob("profile/title-profile");return new t.UserComponent.LayoutView({model:this.updateModel,userInfo:this.userInfo,countryCollection:this.countryCollection,filialsCollection:this.filialsCollection,features:{termsOfUse:!0,fileUploadAgreement:!0,userPermissions:!1,deleteCompany:!0,companyLogo:!0,title:n}})},onTermsOfUseClick:function(){e.show({fromUser:!0})}})});App.module("RequestApp",function(n,t,i,r,u,f){"use strict";n.RequestControllerBase=t.Controllers.Base.extend({name:"RequestApp.RequestControllerBase",baseErrorHandler:function(n,i,r,u){var f=t.ErrorLocalizer.getModalText(i,u),e=new t.ErrorApp.Show.MainRegionError({regionTitle:n,title:f.title,text:f.text});return t.mainRegion.show(e),!0}});n.SupportRequestControllerBase=n.RequestControllerBase.extend({name:"RequestApp.SupportRequestControllerBase",showView:function(){t.execute("show:broadcast");var n={Id:this.options.srdId};this.initiate=t.request("request:initiate",n);this.model=t.request("request:model:instance",n);this.requestInfo=t.request("request:info:entity");this.fileAgreementModel=t.request("fileAgreement:entity");this.productTypes=new t.Entities.Collection;this.products=new t.Entities.Collection;this.productVersions=new t.Entities.Collection;this.OsVersions=new t.Entities.Collection;this.types=new t.Entities.Collection;this.subtypes=new t.Entities.Collection;this.layoutView=this.getLayoutView();this.listenTo(this.layoutView,"request:send",this.onRequestSend);this.listenTo(this.layoutView,"request:abort",this.onRequestAbort);this.listenTo(this.layoutView,"attach",this.onShow);this.listenTo(this.layoutView,"product:abort:click",this.onProductAboutClick);this.listenTo(this.layoutView,"show:articleLinks",this.onShowArticleLinks);this.listenTo(this.layoutView,"click:article",this.onClickArticle);this.listenTo(this.layoutView,"click:uselessLinksButton",this.onClickUselessLinksButton);this.listenTo(this.layoutView,"show:otherFields",this.onShowOtherFields);this.listenTo(this.layoutView,"fileupload:select:click",this.onFileUploadClick);this.listenTo(this.layoutView,"fileAttachError:call",this.onFileUploadError);this.listenTo(this.layoutView,"fileupload:file:attached",this.onFileUploadSuccess);this.listenTo(this.model,"change",function(n){t.Analytics.Requests.supportRequestSelectionChanged(n,this.initiate)});this.model.validationInvalidHandler=this.validationInvalidHandler.bind(this);this.listenTo(this.model,"change:ProductType",this.onProductTypeChange);this.listenTo(this.model,"change:ProductId",this.onProductIdChange);this.listenTo(this.model,"change:Type",this.onTypeChange);this.show(this.layoutView,{loading:{entities:[this.initiate,this.fileAgreementModel],errorHandler:this.baseErrorHandler.bind(this,this.glob(this.titleGlobPath),this.errorGlobPath)}});this.sendRequestShowFormGaEvent()},onShowArticleLinks:function(){t.Analytics.Requests.supportRequestShowArticles(this.model,this.initiate)},onClickArticle:function(n){t.Analytics.Requests.supportRequestClickArticle(this.model,this.initiate,n)},onClickUselessLinksButton:function(){t.Analytics.Requests.supportRequestClickUselessLinksButton(this.model,this.initiate)},onShowOtherFields:function(){this.layoutView.articlesCount?t.Analytics.Requests.supportRequestShowOtherFieldsWithArticles(this.model,this.initiate):t.Analytics.Requests.supportRequestShowOtherFieldsWithoutArticles(this.model,this.initiate)},onFileUploadClick:function(){this.layoutView.articlesCount?t.Analytics.Requests.supportRequestClickDownloadFileWithArticles(this.model):t.Analytics.Requests.supportRequestClickDownloadFileWithoutArticles(this.model)},onFileUploadError:function(n,i){n&&i===t.globPure("fileupload/errors/maxFileSize")&&(this.layoutView.articlesCount?t.Analytics.Requests.supportRequestClickDownloadFileErrorWithArticles():t.Analytics.Requests.supportRequestClickDownloadFileErrorWithoutArticles())},onFileUploadSuccess:function(){this.layoutView.articlesCount?t.Analytics.Requests.supportRequestClickDownloadFileSuccessWithArticles():t.Analytics.Requests.supportRequestClickDownloadFileSuccessWithoutArticles()},validationInvalidHandler:function(n,i){this.layoutView.articlesCount>0?t.Analytics.Requests.supportRequestValidationErrorWithArticles(n,i):t.Analytics.Requests.supportRequestValidationErrorWithoutArticles(n,i)},loadFromStore:function(n){var t=n||this.model.getState(),u,r,f,e,o,i,s;t&&(this.model.set({_modelFromStore:t},{silent:!0}),u={Summary:t.Summary,Description:t.Description},this.model.set(u),r=this.productTypes.findWhere({Name:t.ProductType}),this.model.set({ProductType:r}),r&&(f=this.products.findWhere({Id:t.ProductId}),f&&(this.model.set({ProductId:t.ProductId}),e=this.productVersions.findWhere({Version:t.ProductVersion}),e&&this.model.set({ProductVersion:t.ProductVersion}),o=t.OSVersion,this.model.set({OSVersion:o}),t.ContractSupportLevel&&this.model.set({ContractSupportLevel:t.ContractSupportLevel}))),i=this.model.get("Type")||this.types.findWhere({Name:t.Type}),i&&(this.model.set({Type:i}),i.get("Name")===t.Type&&(s=this.subtypes.findWhere({Id:t.TypeId}),s&&this.model.set({TypeId:t.TypeId}))),this.model.unset("_modelFromStore",{silent:!0}))},onRequestSend:function(){(this.sendRequestTrySubmitGaEvent(),this.model.isValid(!0))&&(this.layoutView.switchLoading(!0),this.layoutView.switchError(!1),this.layoutView.fileUploadView.abortAllUploads(),this.layoutView.fileUploadView.hideFileControls(),this.model.save(null,{success:f.bind(function(n,t){this.layoutView.switchLoading(!1);this.layoutView.showSuccess(this.requestSuccessGlobPath,t);this.model.clearState();this.sendRequestCreatedGaEvent(n,t)},this),error:f.bind(function(n,i){if(this.layoutView.switchLoading(!1),this.layoutView.fileUploadView.showFileControls(),this.sendNewRequestErrorGaEvent(n,i),!i.isValidationError){var r=t.ErrorLocalizer.getErrorText("request/support/errors",i);this.layoutView.switchError(r.text)}},this)}))},sendRequestShowFormGaEvent:function(){t.Analytics.Requests.supportRequestFormInitialization()},sendRequestCreatedGaEvent:function(n,i){var r=(n.get("attachedFiles")||[]).length-(n.get("AttachedFileErrors")||[]).length;this.layoutView.articlesCount?(r>0&&t.Analytics.Requests.supportRequestFilesAttachedWithArticles(r),t.Analytics.Requests.supportRequestIncidentCreatedWithArticles(n,this.initiate)):(r>0&&t.Analytics.Requests.supportRequestFilesAttachedWithoutArticles(r),t.Analytics.Requests.supportRequestIncidentCreatedWithoutArticles(n,this.initiate));t.Analytics.Requests.supportRequestCreatedSuccessfully(n,i)},sendNewRequestErrorGaEvent:function(){},sendRequestTrySubmitGaEvent:function(){},onShow:function(){var i=this.initiate.get("Products"),r=f.uniq(i,function(n){return n.TypeName}),n=f.map(r,function(n){return{Name:n.TypeName}}),u=this.initiate.get("RequestTypes"),t=f.uniq(u,function(n){return n.Name});this.requestInfo.set({hash:this.initiate.get("RequestInfo").Hash,uploadId:this.initiate.get("RequestInfo").UploadId});this.initiate.set({AllTypes:t,ProductTypes:n},{silent:!0});this.productTypes.reset(n);this.types.reset(t);this.listenTo(this.model,"change:ProductVersion",this.showPrivateFixLink);this.loadFromStore();this.listenTo(this.model,"change",this.onChange)},onRequestAbort:function(){this.layoutView.articlesCount?t.Analytics.Requests.supportRequestCancelledWithArticles(this.model,this.initiate):t.Analytics.Requests.supportRequestCancelledWithoutArticles(this.model,this.initiate);this.model.clearState();t.execute("request:list")},onChange:function(){this.model.saveState()},onProductAboutClick:function(){t.Analytics.Requests.getHowToGetProductVersionEvent(this.model)},onProductTypeChange:function(n,t){if(t){var i=this.initiate.get("Products"),r=f.filter(i,function(n){return n.TypeName===t.get("Name")});this.products.reset(r)}else this.products.reset([]);n.unset("ProductId");this.layoutView.validationError("ProductId",!1)},onProductIdChange:function(n,t){var i=t?this.products.findWhere({Id:t}):null;i||(n.unset("ProductId"),this.layoutView.validationError("ProductId",!1));f.each(this.getProductRelatedFieldsUpdaters(),function(t){t.call(this,n,i)},this)},getProductRelatedFieldsUpdaters:function(){return[function(n,t){if(t){var i=t.get("Os");i=f.map(i,function(n){return{Name:n}});this.OsVersions.reset(i)}else this.OsVersions.reset([]);n.unset("OSVersion");this.layoutView.validationError("OSVersion",!1)},function(n,t){if(t){var i=t.get("Versions");this.productVersions.reset(i)}else this.productVersions.reset([]);n.unset("ProductVersion");this.layoutView.validationError("ProductVersion",!1)},function(n,t){var r;if(t){var u=t.get("CatTier2"),e=this.initiate.get("RequestTypes"),i=f.filter(e,function(n){return n.ServiceName===u});this.initiate.set({ProductSubtypes:i},{silent:!0});r=f.uniq(i,function(n){return n.Name});this.types.reset(r)}else this.types.reset([]);n.unset("Type");this.layoutView.validationError("Type",!1)},]},onTypeChange:function(n,t){var i,r,u;t?(i=this.initiate.get("ProductSubtypes"),r=t.get("Name"),i=f.filter(i,function(n){return n.Name===r}),u=f.map(i,function(n){return{Name:n.SubtypeName,Id:n.Id}}),this.subtypes.reset(u)):this.subtypes.reset([]);this.model.unset("TypeId");this.layoutView.validationError("TypeId",!1)},showPrivateFixLink:function(n,i){function s(t){var r=n.get("ProductId"),i=t.products.findWhere({Id:r}),u=i&&i.get("Name")||"",f=n.get("ProductVersion")||"";return u+" "+f.split(".",2).join(".")}var u=this.productVersions.findWhere({Version:i}),e=u&&u.get("PrivateFixExists"),r=e?t.glob("request/support/private-fix-link","{0}"):null,o=Globalize.cldr.get(["globalize-messages/{bundle}","request/support",e?"product-note-with-private-fix":"product-note"]);typeof o=="string"?this.layoutView.$(".product-note").removeClass("off").html(o):this.layoutView.$(".product-note").addClass("off").empty();r?(r=f.escape(r).replace("{0}",'<a href="javascript://" class="private-fix-download" data-href="/api/Request/PrivateFixDownload?productModelVersionId='+f.escape(u.get("ProductModelVersionId"))+"&language="+f.escape(t.request("settings:entity").get("language").value)+'">'+f.escape(s(this))+"<\/a>"),this.layoutView.$(".private-fix").removeClass("off").html(r)):this.layoutView.$(".private-fix").addClass("off").empty()}});n.RequestViewBase=t.Views.LayoutView.extend({events:{"click .private-fix-download":"downloadFileClick"},downloadFileClick:t.Views.LayoutView.prototype.downloadFileClick,refreshToken:t.Views.LayoutView.prototype.refreshToken,downloadFile:t.Views.LayoutView.prototype.downloadFile,downloadFileFormPost:t.Views.LayoutView.prototype.downloadFileFormPost,validationError:t.Behaviors.ValidationHandler.Handler,checkValidation:function(n){var i=f.pairs(this.bindings),e=f.findIndex(i,function(t){return t[1].observe===n}),r=i[e],u,t;return r?(u=r[0],t=this.$(u),!t.hasClass("disabled-box")&&!t.hasClass("empty-box")):!0}})});App.module("RequestApp.CA",function(n,t){"use strict";n.Controller=t.RequestApp.RequestControllerBase.extend({name:"RequestApp.CA.Controller",initialize:function(){t.execute("show:broadcast");this.model=t.request("request:ca:model:instance");this.requestInfo=t.request("request:info:entity");this.initiate=t.request("request:ca:initiate");this.fileAgreementModel=t.request("fileAgreement:entity");this.layoutView=this.getLayoutView();this.listenTo(this.layoutView,"request:send",this.onRequestSend);this.listenTo(this.layoutView,"request:abort",this.onRequestAbort);this.listenTo(this.layoutView,"render",this.onShow);this.show(this.layoutView,{loading:{entities:[this.initiate,this.fileAgreementModel],errorHandler:this.baseErrorHandler.bind(this,this.glob("request/ca/title"),"request/ca/loadingErrors")}})},onShow:function(){this.model.loadState();this.requestInfo.set({hash:this.initiate.get("RequestInfo").Hash,uploadId:this.initiate.get("RequestInfo").UploadId});this.listenTo(this.model,"change",this.onChange)},onRequestSend:function(){(t.Analytics.Requests.tryNewRequestOrAnswerEvent(this.model),this.model.isValid(!0))&&(this.layoutView.switchLoading(!0),this.layoutView.switchError(!1),this.layoutView.fileUploadView.abortAllUploads(),this.layoutView.fileUploadView.hideFileControls(),this.model.save(null,{success:function(n,i){this.layoutView.switchLoading(!1);this.layoutView.showSuccess("request/ca/success",i);this.model.clearState();t.Analytics.Requests.newRequestOrAnswerSuccessEvent(n,this.initiate)}.bind(this),error:function(n,i){if(this.layoutView.switchLoading(!1),this.layoutView.fileUploadView.showFileControls(),t.Analytics.Requests.newRequestError(n,i),!i.isValidationError){var r=t.ErrorLocalizer.getErrorText("request/ca/errors",i);this.layoutView.switchError(r.text)}}.bind(this)}))},onRequestAbort:function(){this.model.clearState();t.execute("request:list")},onChange:function(){this.model.saveState()},getLayoutView:function(){return new n.LayoutView({model:this.model,requestInfo:this.requestInfo,fileAgreementModel:this.fileAgreementModel})}})});App.module("RequestApp.CA",function(n,t,i){"use strict";n.LayoutView=t.RequestApp.RequestViewBase.extend({template:"request/ca/layout",className:"section",regions:{buttonsRegion:".buttonbar-region"},initialize:function(){i.Validation.bind(this);this.bindings={".request-theme":"Summary",".request-description":"Description",".request-files":{observe:"attachedFiles",url:"/api/Request/UploadFile/CA",maxNumberOfFiles:3,fileAgreementModel:this.options.fileAgreementModel,requestInfo:this.options.requestInfo,analyticsRequestType:t.Analytics.Requests.getRequestType(this.model)}};this.buttonbar=new t.RequestPartial.LayoutView({model:this.model});this.buttonbar.setup(this);this.listenTo(this.buttonbar,"send:click",function(){this.trigger("request:send")});this.listenTo(this.buttonbar,"abort:click",function(){this.trigger("request:abort")})},onRender:function(){this.getRegion("buttonsRegion").show(this.buttonbar);this.stickit()}})});App.module("RequestApp.Create",function(n,t,i,r,u,f){"use strict";n.Controller=t.Controllers.Base.extend({name:"RequestApp.Create.Controller",initialize:function(n){if(t.execute("show:broadcast"),n&&n.resp){this.loadingErrorHandler(t.mainRegion,n.resp);return}this.collection=n.collection?n.collection:t.request("requestTypeList:entities");this.layoutView=this.getLayoutView();this.listenTo(this.layoutView,"link:click",this.onLinkClick);n.collection?this.show(this.layoutView,{loading:!1}):(this.listenTo(this.collection,"add remove reset",function(n){var i,r;if(this.options.select&&this.collection.length>0&&this.collection.models[this.collection.length-1]===n&&(r=f.map(this.collection.models,function(n){return n.get("SRDInstanceId")}),!i&&this.options.select==="support"&&f.contains(r,"MsaSupport")&&(i="request/create/support-msa"),!i&&this.options.select==="support"&&f.contains(r,"TechnicalSupport")&&(i="request/create/support"),i)){this.layoutView.$el.addClass("off");t.navigate(i,{replace:!0});t.execute(i.replace(/\//g,":"));return}if(this.collection.length===1){this.layoutView.$el.addClass("off");f.each(t.requests,function(n,t){n===this.collection.models[0].get("SRDInstanceId")&&(i=t)}.bind(this));i||(i="404");this.onLinkClick("/request/create/"+i)}}.bind(this)),this.show(this.layoutView,{loading:{entities:this.collection,errorHandler:this.loadingErrorHandler.bind(this)}}))},loadingErrorHandler:function(n,i){t.Analytics.Requests.requestTypeListError(i);var r=t.ErrorLocalizer.getModalText("request/create/errors",i),u=new t.ErrorApp.Show.MainRegionError({regionTitle:this.glob("request/create/title"),title:r.title,text:r.text});return t.mainRegion.show(u),!0},onLinkClick:function(n){var i=n[0]==="/"&&n.replace("/","")||n;i=i.split("/").join(":");t.execute(i);t.Analytics.Requests.newRequestPick(i)},getLayoutView:function(){return new n.LayoutView({collection:this.collection})}})});App.module("RequestApp.Create",function(n,t,i,r,u,f){"use strict";n.TypeItem=t.Views.ItemView.extend({template:"request/create/type-item",getTemplate:function(){return this.model.get("href")?"request/create/ext-link":this.template},className:"cf hr-top",initialize:function(){var n=Globalize.cldr.get(["globalize-messages/{bundle}","request"]);f.each(t.requests,function(t,i){var r;t===this.model.get("SRDInstanceId")&&(this.model.set("url",i),r=(n[i]||{})["external-link"],r&&this.model.set("href",r))}.bind(this));this.model.get("url")||this.model.set("url","500")}});n.NoItems=t.Views.ItemView.extend({template:"request/create/no-items"});n.LayoutView=t.Views.CompositeView.extend({template:"request/create/layout",className:"section",childViewContainer:".request-create-list-types",childView:n.TypeItem,emptyView:n.NoItems,events:{"click a[data-js-link]":"onLinkClick"},onLinkClick:function(n){n.preventDefault();n.stopPropagation();this.trigger("link:click",u(n.target).data("js-link"))}})});App.module("RequestApp.CSR",function(n,t){"use strict";n.Controller=t.Controllers.Base.extend({name:"RequestApp.CSR.Controller",initialize:function(){t.execute("show:broadcast");this.model=t.request("request:csr:model");this.requestTypeList=t.request("requestTypeList:entities");this.fileAgreement=t.request("fileAgreement:entity");this.layoutView=new n.LayoutView(this);this.listenTo(this.layoutView,"request:send",this.onRequestSend);this.listenTo(this.layoutView,"request:abort",this.onRequestAbort);this.listenTo(this.layoutView,"fileAttachError:call",this.onFileAttachError);this.listenTo(this.layoutView,"keyFileButton:click",this.onKeyFileButtonClick);this.listenTo(this.layoutView,"keyFileCancel:click",this.onKeyFileCancelClick);this.listenTo(this.layoutView,"aboutCsr:click",this.onAboutCsrClick);this.listenTo(this.model,"change:KeyFile",this.onChangekeyFile);this.listenTo(this.layoutView,"render",this.onShow);this.show(this.layoutView,{loading:{entities:[this.requestTypeList,this.fileAgreement]}})},onShow:function(){var r=this.requestTypeList.map(function(n){return n.toJSON()}).filter(function(n){return n.SRDInstanceId===t.requests.csr}).length>0,i,n;r||(i={Message:"Access denied for request",Code:"AccessDenied"},t.Analytics.Requests.requestOpenError(i),n=t.ErrorLocalizer.getModalText("SecurityExceptions/AccessDenied"),this.showModalError(n.title,n.text,{region:t.modalRegion}),t.execute("request:list"))},onFileAttachError:function(n){var i=this.glob("fileupload/attachError");this.showModalError(i,n,{region:t.modalRegion})},onChangekeyFile:function(n,t){this.layoutView.switchError(!1);t&&this.model.isValid(!0)},onKeyFileButtonClick:function(){t.Analytics.Requests.chooseFileNewRequestOrAnswerEvent(this.model)},onKeyFileCancelClick:function(){t.Analytics.Requests.deleteFileNewRequestOrAnswerEvent(this.model)},onAboutCsrClick:function(){t.Analytics.Requests.getHowToGetApnsEvent(this.model)},onRequestSend:function(){(t.Analytics.Requests.tryNewRequestOrAnswerEvent(this.model),this.model.isValid(!0))&&(this.layoutView.switchLoading(!0),this.layoutView.switchError(!1),this.layoutView.hideCancelButton(),this.model.save(null,{success:function(n,i){this.layoutView.switchLoading(!1);this.layoutView.resetKeyFileInput();this.layoutView.showSuccess("request/csr/success",i);t.Analytics.Requests.newRequestOrAnswerSuccessEvent(n,this.initiate)}.bind(this),error:function(n,i){if(this.layoutView.switchLoading(!1),this.layoutView.resetKeyFileInput(),t.Analytics.Requests.newRequestError(n,i),!i.isValidationError){var r=t.ErrorLocalizer.getErrorText("request/csr/errors",i);this.onFileAttachError(r.text)}}.bind(this)}))},onRequestAbort:function(){t.execute("request:list")}})});App.module("RequestApp.CSR",function(n,t,i,r,u,f){"use strict";n.KeyInfoView=t.Views.LayoutView.extend({template:"request/csr/csr-info"});n.LayoutView=t.Views.LayoutView.extend({template:"request/csr/layout",className:"section",regions:{buttonsRegion:".buttonbar-region",keyInfoRegion:".key-info-region"},ui:{keyFileInput:".fileupload-input-file",aboutCsr:".about-csr",keyFileInputCancel:".fileupload-cancel"},events:{"click @ui.keyFileInputCancel":"onKeyFileInputCancel","click @ui.keyFileInput":"onKeyFileButtonClick","drop @ui.keyFileInput":"onKeyFileButtonClick","change @ui.keyFileInput":"onKeyFileInputChanged"},modelEvents:{"change:KeyFile":"onChangeCsrFile"},initialize:function(){i.Validation.bind(this);this.buttonbar=new t.RequestPartial.LayoutView({model:this.model});this.buttonbar.setup(this);this.listenTo(this.buttonbar,"send:click",function(){this.trigger("request:send")});this.listenTo(this.buttonbar,"abort:click",function(){this.trigger("request:abort")})},onChangeCsrFile:function(n,t){t?this.disableUploadButton():this.enableUploadButton()},validationError:function(n,t){t&&(this.trigger("fileAttachError:call",t),this.resetKeyFileInput())},serializeData:function(){return{remarkQuestion:t.glob("request/csr/remarkQuestion"),remarkDescriprion:t.glob("request/csr/remarkDescriprion")}},onKeyFileButtonClick:function(n){var i=this.options.fileAgreement.toJSON().NeedAcceptAgreement;i?(n.stopPropagation(),n.preventDefault(),this.fileAgreement=this.options.fileAgreement,t.Analytics.Requests.openFileAgreementNewRequestAddFileEvent("CSR | Sign file"),t.request("fileAgreements:view",{model:this.options.fileAgreement,region:t.modalRegion,analyticsRequestType:"CSR | Sign file",analyticsCategory:"New request",success:f.bind(function(){this.options.fileAgreement.set("NeedAcceptAgreement",!1)},this)})):this.trigger("keyFileButton:click")},onKeyFileInputChanged:function(t){var r=f.first(t.target.files),u=new n.KeyInfoView({model:new i.Model(r)});this.getRegion("keyInfoRegion").show(u);this.model.set({KeyFile:r})},resetKeyFileInput:function(){this.ui.keyFileInput.closest("form").get(0).reset();this.model.unset("KeyFile");this.getRegion("keyInfoRegion").empty()},onKeyFileInputCancel:function(){this.resetKeyFileInput();this.trigger("keyFileCancel:click")},hideCancelButton:function(){this.$(".fileupload-cancel").hide()},enableUploadButton:function(){var n=this.$(".fileupload-link"),t=this.$(".fileupload-stub");n.removeClass("off");t.addClass("off")},disableUploadButton:function(){var n=this.$(".fileupload-link"),t=this.$(".fileupload-stub");n.addClass("off");t.removeClass("off")},onAboutCsrClick:function(){this.trigger("aboutCsr:click")},onRender:function(){this.getRegion("buttonsRegion").show(this.buttonbar);this.stickit();var n=this.ui.aboutCsr.find("a");n.on("click",f.bind(this.onAboutCsrClick,this))}})});App.module("RequestApp.Feedback",function(n,t){"use strict";n.Controller=t.RequestApp.RequestControllerBase.extend({name:"RequestApp.Feedback.Controller",initialize:function(){this.model=t.request("request:feedback:model");this.initiate=t.request("request:feedback:initiate");this.ThemeList=new t.Entities.Collection;this.RequestList=new t.Entities.Collection;this.layoutView=new n.LayoutView({model:this.model,themeList:this.ThemeList,requestList:this.RequestList});this.listenTo(this.layoutView,"request:send",this.onRequestSend);this.listenTo(this.layoutView,"request:abort",this.onRequestAbort);this.listenTo(this.layoutView,"render",this.onShow);this.show(this.layoutView,{loading:{entities:[this.initiate],errorHandler:this.baseErrorHandler.bind(this,this.glob("request/feedback/title"),"request/feedback/loadingErrors")}})},onShow:function(){this.RequestList.reset(this.initiate.get("FeedbackRequests"));this.ThemeList.reset(this.initiate.get("RequestTypes"));var n=this.model.getState();n&&this.model.set({Details:n.Details,TypeId:n.TypeId,FeedbackRequest:this.RequestList.findWhere({IncidentNumber:n.FeedbackRequest})});this.listenTo(this.model,"change",this.onChange)},onRequestSend:function(n){(t.Analytics.Requests.tryNewRequestOrAnswerEvent(this.model),this.model.isValid(!0))&&(n.switchLoading(!0),n.switchError(!1),this.model.save(null,{success:function(i,r){n.showSuccess("request/feedback/success",r);this.model.clearState();t.Analytics.Requests.newRequestOrAnswerSuccessEvent(i,this.initiate)}.bind(this),error:function(i,r){if(t.Analytics.Requests.newRequestError(i,r),!r.isValidationError){var u=t.ErrorLocalizer.getErrorText("request/feedback/errors",r);n.switchError(u.text)}},complete:function(){n.switchLoading(!1)}}))},onRequestAbort:function(){this.model.clearState();t.execute("request:list")},onChange:function(){this.model.saveState()}})});App.module("RequestApp.Feedback",function(n,t,i){"use strict";n.LayoutView=t.RequestApp.RequestViewBase.extend({template:"request/feedback/layout",className:"section",regions:{buttonsRegion:".buttonbar-region"},behaviors:{Broadcasts:{}},initialize:function(n){i.Validation.bind(this);this.bindings={".request-theme":{observe:"TypeId",collection:n.themeList,textField:"TypeName",valueField:"Id"},".request-description":"Details",".request-number":{observe:"FeedbackRequest",collection:n.requestList,placeholder:t.glob("request/feedback/request-placeholder"),wholeModel:!0,ellipsize:!0,textField:function(n){return n.IncidentNumber+" - "+n.Summary}}};this.buttonbar=new t.RequestPartial.LayoutView({model:this.model});this.buttonbar.setup(this);this.listenTo(this.buttonbar,"send:click",function(){this.trigger("request:send",this)});this.listenTo(this.buttonbar,"abort:click",function(){this.trigger("request:abort",this)})},onRender:function(){this.getRegion("buttonsRegion").show(this.buttonbar);this.stickit()}})});App.module("RequestApp.List",function(n,t){"use strict";var i=t.module("Utils.Ui");n.RequestItem=t.Views.ItemView.extend({template:"request/list/request",events:{click:"onItemClick"},onItemClick:function(n){n&&n.button===0&&!getSelection().toString()&&(this.trigger("request:view",this),n.preventDefault())},serializeData:function(){var n={},r=this.model.get("UserfriendlyStatus"),u=i.getColorByRequestStatus(r);return n.status=t.glob("request/statuses/"+r),n.statusBorderClass="bg-"+u,n.statusTextClass="clr-"+u,n.customerName=this.model.get("CustomerName"),n.incidentNumber=this.model.get("IncidentNumber"),n.instanceId=this.model.get("InstanceId"),n.summary=this.model.get("Summary"),n.type=this.model.get("Type"),n.createDate=Globalize.formatDate(t.toLocalDate(this.model.get("CreateDate")),{datetime:"short"}),n.contractName=this.getContractName(),n},getContractName:function(){var n=this.model.get("ContractInfo"),i=n&&n.ContractId&&n.ContractId!==t.msaRequestStandardSupport?n.ContractName:null;return i||""}});n.NoRequest=t.Views.ItemView.extend({template:"request/list/no-request",triggers:{"click .create-request":"request:create"}});n.NoFilteredRequest=t.Views.ItemView.extend({template:"request/list/no-filtered-request"});n.NoSearchedRequest=t.Views.ItemView.extend({template:"request/list/no-searched-request"})});App.module("RequestApp.List",function(n,t,i,r,u,f){"use strict";var e=t.module("Constants.Requests"),o=t.module("Analytics.Requests"),s=t.module("Utils.String");n.Controller=t.Controllers.Base.extend({name:"RequestApp.List.Controller",initialize:function(){t.execute("show:broadcast");this.defaultFilter={IncidentSubmitterAlgorithm:e.filterSubmitterAlgorithmModel.CURRENT_USER,Status:e.requestFriendlyStatusGroups.OPEN};StorageQueue.put("save-store");this.applyState(function(n){var r=!1,i=f.pick(n.filterValues,["IncidentNumber","Status","IncidentSubmitterAlgorithm","IncidentSubmitter"]);(i.IncidentNumber||n.isInSearchMode)&&(i.IncidentNumber=null,n.isInSearchMode=!1,r=!0);f.contains(e.requestFriendlyStatusGroups,i.Status)||(i.Status=e.requestFriendlyStatusGroups.OPEN,r=!0);f.contains(e.filterSubmitterAlgorithmModel,i.IncidentSubmitterAlgorithm)||(i.IncidentSubmitterAlgorithm=e.filterSubmitterAlgorithmModel.CURRENT_USER,r=!0);r&&(n.filterValues=i,n.collectionState={filter:f.clone(i)},this.saveState(n));this.isInSearchMode=n.isInSearchMode;this.requests=t.request("request:entities",{state:n.collectionState});n.collectionState.filter.IncidentNumber&&n.collectionState.filter.IncidentNumber!==n.filterValues.IncidentNumber&&(n.filterValues.IncidentNumber=null);this.filterModel=t.request("request:filter:entity",n.filterValues)},function(){this.requests=t.request("request:entities",{state:{filter:f.clone(this.defaultFilter)}});this.filterModel=t.request("request:filter:entity",{IncidentSubmitter:e.filterSubmitterAlgorithmModel.CURRENT_USER})});this.requests.setDefaultErrorHandler(this.errorHandler.bind(this));this.isSimpleUser=t.AuthInfo.isUser();this.layoutView=this.getLayoutView();this.listenTo(this.layoutView,"render",this.showRegions);this.show(this.layoutView,{loading:{entities:[this.requests],errorHandler:this.loadingErrorHandler.bind(this)}})},onRoleChange:function(){t.mainRegion.reset();t.execute("request:list")},loadingErrorHandler:function(n,t){return this.errorHandler(this.requests,t)},errorHandler:function(n,i){var r,u;return i.isValidationError?(this.requests.reset(),$logger.error("RequestApp.List.Controller","Unexpected server validation error: "+s.toJSON(i)),this.layoutView.showValidationError("Server validation error"),this.layoutView.switchPagination(!1),!0):(r=t.ErrorLocalizer.getModalText("request/list/errors",i),o.requestListError(i),u=new t.ErrorApp.Show.MainRegionError({regionTitle:this.glob("request/list/tabs/requests"),title:r.title,text:r.text}),t.mainRegion.show(u),!0)},resetFilter:function(){var n={IncidentSubmitter:e.filterSubmitterAlgorithmModel.CURRENT_USER,IncidentSubmitterAlgorithm:e.filterSubmitterAlgorithmModel.CURRENT_USER,Status:this.filterModel.get("Status")},t={isInSearchMode:this.isInSearchMode,collectionState:{filter:f.clone(n)},filterValues:n};this.saveState(t);this.onRoleChange()},showCollection:function(){var t=this.filterModel.get("IncidentSubmitter"),n;this.getAuthorFilteringAlgorithm(t)!==e.filterSubmitterAlgorithmModel.BY_NAME||f.some(this.requests.filters.Authors,function(n){return n.Email===t})||window.setTimeout(this.resetFilter.bind(this),0);this.layoutView.hideValidationError();this.requestListView=this.getRequestListView();this.listenTo(this.requestListView,"childview:request:view",this.onRequestView);this.listenTo(this.requestListView,"childview:request:create",this.onRequestCreate);this.layoutView.getRegion("requestListRegion").show(this.requestListView);this.updateFilters();this.layoutView.switchPagination(!0);n=this.requests.state.filter.IncidentNumber;n&&n.length&&(this.requests.any()?o.requestsSearchFound(n):o.requestsSearchNotFound(n))},updateFilters:function(){this.requests.requestsExist||this.isInSearchMode?this.layoutView.showFilters():this.layoutView.hideFilters()},onStateChange:function(){this.state.collectionState=f.pick(this.requests.state,["currentPage","filter"]);this.state.isInSearchMode=this.isInSearchMode;this.state.filterValues=this.filterModel.toJSON();this.saveState(this.state)},showLoading:function(){this.onStateChange();this.layoutView.getRegion("requestListRegion").show(t.request("loading:view:gray",{spinner:{zIndex:1}}));this.layoutView.switchPagination(!1)},showRegions:function(){this.showCollection();this.pagerView=this.getPagerView();this.layoutView.getRegion("pagerRegion").show(this.pagerView);this.listenTo(this.requests,"request",this.showLoading);this.listenTo(this.requests,"reset",this.showCollection);this.listenTo(this.filterModel,"change",this.onFilterChange);this.listenTo(t.AuthInfo,"change:role",this.onRoleChange);this.listenTo(t.vent,"enter:press",this.onSearchActivated);this.listenTo(this.layoutView,"filteringMode:change",this.onFilteringModeChanged)},onFilteringModeChanged:function(n){this.isInSearchMode=n;this.isInSearchMode||this.filterModel.unset("IncidentNumber");this.onStateChange()},onSearchActivated:function(){if(this.isInSearchMode&&this.filterModel.isValid("IncidentNumber")){var n={IncidentSubmitterAlgorithm:this.isSimpleUser?e.filterSubmitterAlgorithmModel.CURRENT_USER:e.filterSubmitterAlgorithmModel.ALL,Status:e.requestFriendlyStatusGroups.ALL,IncidentNumber:this.filterModel.get("IncidentNumber")};this.layoutView.hideValidationError();this.requests.setFilter(n,{reset:!0,error:this.errorHandler.bind(this)});o.startRequestsSearch(n.IncidentNumber)}},onRequestCreate:function(){t.execute("request:create");o.requestNewRequestEvent()},onRequestView:function(n,i){var u=n.model.get("InstanceId"),r;u?(o.openRequestEvent(n.model),r=this.requests.state.filter.IncidentNumber,r&&r.length&&o.openRequestFromSearch(),t.execute("request:view",f.extend({id:u},i))):$logger.warn("Request without InstanceId")},getStoreId:function(){return"request_list"},onFilterChange:function(){var n,t,r,i,e=this.filterModel.get("IncidentNumber"),u=this.requests.state.filter;(this.onStateChange(),e||this.isInSearchMode)||(t=this.filterModel.get("Status"),r=this.filterModel.get("IncidentSubmitter"),n=this.getAuthorFilteringAlgorithm(r),u.Status!==t&&o.filterRequestsByStatusEvent(t),u.IncidentSubmitterAlgorithm!==n&&o.filterRequestsByAuthorEvent(n),this.layoutView.hideValidationError(),i={Status:t,IncidentSubmitter:r,IncidentSubmitterAlgorithm:n},f.isEqual(u,i)||(i.IncidentNumber=null,this.requests.setFilter(i,{reset:!0,error:this.errorHandler.bind(this)})))},getAuthorFilteringAlgorithm:function(n){return f.contains(e.filterSubmitterAlgorithmModel,n)?n:n?e.filterSubmitterAlgorithmModel.BY_NAME:this.defaultFilter.IncidentSubmitterAlgorithm},getLayoutView:function(){return new n.LayoutView({model:this.filterModel,requests:this.requests,isInSearchMode:this.isInSearchMode,isSimpleUser:this.isSimpleUser})},getPagerView:function(){return t.request("pager:view",{collection:this.requests})},getRequestListView:function(){return new n.RequestList({collection:this.requests,isSimpleUser:this.isSimpleUser})}})});App.module("RequestApp.List",function(n,t,i){"use strict";var r=t.module("Constants.Requests"),f=t.module("Constants.RegEx"),e=t.module("Entities.Validation"),u="request-search-button--close";n.LayoutView=t.Views.LayoutView.extend({name:"RequestApp.List.LayoutView",template:"request/list/layout",className:"section",regions:{requestListRegion:".request-list-region",pagerRegion:".pager-region"},bindings:{".request-status":"Status",".request-author":{observe:"IncidentSubmitter",collection:function(n){return n.authors},textField:"text",valueField:"value",forbidEmpty:!0,ellipsize:!0},".request-list-search__input":{observe:"IncidentNumber",toUpper:!0,forbiddenChars:{chars:f.anyWhitespaceCharacter,location:e.forbiddenStringLocations.all,doNotDisplay:!0}}},ui:{filterBlock:".request-list-filter-block",searchButton:".request-search-button",selectsBlock:".request-list-filter",searchBlock:".request-list-search",validationError:".request-list-search__error",searchInput:".request-list-search__input"},events:{"click @ui.searchButton":"onSearchButtonClicked"},initialize:function(n){i.Validation.bind(this);this.isInSearchMode=n.isInSearchMode;this.authors=new t.Entities.Collection;this.listenTo(this.options.requests,"reset",this.fillAuthorsCollection)},fillAuthorsCollection:function(){var n=this.options.requests,i;n.filters&&(i=[{value:r.filterSubmitterAlgorithmModel.CURRENT_USER,text:t.glob("request/list/filter-by-author/CurrentUser")},{value:r.filterSubmitterAlgorithmModel.ALL,text:t.glob("request/list/filter-by-author/All")},],n.filters.Authors&&n.filters.Authors.length&&n.filters.Authors.forEach(function(n){i.push({value:n.Email,text:n.FullName})}),n.filters.SpecialAuthorFilterValues.indexOf(r.filterSubmitterAlgorithmModel.BY_DELETED_USERS)!==-1&&i.push({value:r.filterSubmitterAlgorithmModel.BY_DELETED_USERS,text:t.glob("request/list/filter-by-author/ByDeletedUsers")}),this.authors.reset(i))},onSearchButtonClicked:function(){this.isInSearchMode=!this.isInSearchMode;this.updateSearch()},updateSearch:function(){this.isInSearchMode?this.showSearch():this.hideSearch();this.trigger("filteringMode:change",this.isInSearchMode)},showSearch:function(){this.ui.searchBlock.show();this.ui.selectsBlock.hide();this.ui.searchButton.addClass(u);this.ui.searchInput.focus()},hideSearch:function(){this.ui.searchBlock.hide();this.ui.selectsBlock.show();this.ui.searchButton.removeClass(u)},showFilters:function(){this.ui.filterBlock.show()},hideFilters:function(){this.ui.filterBlock.hide()},switchPagination:function(n){this.$(".pager-region").toggleClass("off",!n)},showValidationError:function(n){this.ui.validationError.text(n).show()},hideValidationError:function(){this.ui.validationError.hide()},serializeData:function(){return{isSimpleUser:this.options.isSimpleUser}},onRender:function(){this.stickit();this.updateSearch()}});n.RequestList=t.Views.CollectionView.extend({name:"RequestApp.List.RequestList",childView:n.RequestItem,emptyView:function(){var t=this.collection.state.filter,i,u;if(t){if(t.IncidentNumber)return n.NoSearchedRequest;i=!t.Status||t.Status===r.requestFriendlyStatusGroups.ALL;u=this.options.isSimpleUser||t.IncidentSubmitterAlgorithm===r.filterSubmitterAlgorithmModel.ALL;i&&u&&(t=null)}return!this.collection.requestsExist||!t?n.NoRequest:n.NoFilteredRequest}})});App.module("RequestApp",function(n,t,i,r,u,f){"use strict";function e(){return o.load("request")}var o=t.module("Localization.Loader"),s=t.Routing.RouteController.extend({controllerMenuRoute:"request/list",list:{action:function(){this.promiseWrapper(e()).then(function(){new n.List.Controller({region:t.mainRegion})})},exclusiveCancellingScope:t.tabLoadingCancellingScope},create:{action:function(i){this.promiseWrapper(e()).then(function(){new n.Create.Controller(f.extend(i||{},{region:t.mainRegion}))})},exclusiveCancellingScope:t.tabLoadingCancellingScope},selectSupport:{action:function(){t.navigate("request/create",{replace:!0});n.RouteController.executeAction("create",{select:"support"})},exclusiveCancellingScope:t.tabLoadingCancellingScope},support:{action:function(){this.promiseWrapper(e()).then(function(){var i=new n.Support.Controller({region:t.mainRegion,srdId:t.requests.support});i.showView()})},exclusiveCancellingScope:t.tabLoadingCancellingScope},supportTa:{action:function(){this.promiseWrapper(e()).then(function(){new n.SupportTA.Controller({region:t.mainRegion,srdId:t.requests["support-ta"]})})},exclusiveCancellingScope:t.tabLoadingCancellingScope},supportMsa:{action:function(){this.promiseWrapper(e()).then(function(){var i=new n.SupportMSA.Controller({region:t.mainRegion,srdId:t.requests["support-msa"]});i.showView()})},exclusiveCancellingScope:t.tabLoadingCancellingScope},csr:{action:function(){this.promiseWrapper(e()).then(function(){new n.CSR.Controller({region:t.mainRegion})})},exclusiveCancellingScope:t.tabLoadingCancellingScope},virlab:{action:function(){this.promiseWrapper(e()).then(function(){new n.Virlab.Controller({region:t.mainRegion})})},exclusiveCancellingScope:t.tabLoadingCancellingScope},ca:{action:function(){this.promiseWrapper(e()).then(function(){new n.CA.Controller({region:t.mainRegion})})},exclusiveCancellingScope:t.tabLoadingCancellingScope},feedback:{action:function(){this.promiseWrapper(e()).then(function(){new n.Feedback.Controller({region:t.mainRegion})})},exclusiveCancellingScope:t.tabLoadingCancellingScope},view:{action:function(i){this.promiseWrapper(e()).then(function(){new n.View.Controller({region:t.mainRegion,id:i,needInProgress:!1})})},exclusiveCancellingScope:t.tabLoadingCancellingScope},viewRefresh:{action:function(i){this.promiseWrapper(e()).then(function(){new n.View.Controller({region:t.mainRegion,id:i.id,needInProgress:i.needInProgress||!1})})},exclusiveCancellingScope:t.tabLoadingCancellingScope}});n.Router=r.AppRouter.extend({appRoutes:{"request/list":"list","request/create/support-select":"selectSupport","request/create/support":"support","request/create/support-ta":"supportTa","request/create/support-msa":"supportMsa","request/create/csr":"csr","request/create/virlab":"virlab","request/create/ca":"ca","request/create/feedback":"feedback","request/create":"create","request/view/:id":"view","":"list"}});t.addInitializer(function(){return n.RouteController=new s,new n.Router({controller:n.RouteController})});t.commands.setHandler("request:list",function(i){t.navigate("request/list");n.RouteController.executeAction("list",i)});t.commands.setHandler("request:create",function(i){t.navigate("request/create");n.RouteController.executeAction("create",i)});t.commands.setHandler("request:create:support",function(){t.navigate("request/create/support");n.RouteController.executeAction("support")});t.commands.setHandler("request:create:support-ta",function(){t.navigate("request/create/support-ta");n.RouteController.executeAction("supportTa")});t.commands.setHandler("request:create:support-msa",function(){t.navigate("request/create/support-msa");n.RouteController.executeAction("supportMsa")});t.commands.setHandler("request:create:virlab",function(){t.navigate("request/create/virlab");n.RouteController.executeAction("virlab")});t.commands.setHandler("request:create:csr",function(){t.navigate("request/create/csr");n.RouteController.executeAction("csr")});t.commands.setHandler("request:create:ca",function(){t.navigate("request/create/ca");n.RouteController.executeAction("ca")});t.commands.setHandler("request:create:feedback",function(){t.navigate("request/create/feedback");n.RouteController.executeAction("feedback")});t.commands.setHandler("request:view",function(r){if(r.newTab){var u=i.history.location.origin+"/request/view/"+r.id;window.open(u,"_blank");return}t.navigate("request/view/"+r.id);n.RouteController.executeAction("view",r.id)});t.commands.setHandler("request:view:refresh",function(i){t.navigate("request/view/"+i.id);n.RouteController.executeAction("viewRefresh",i)})});App.module("RequestApp.Support",function(n,t){"use strict";n.Controller=t.RequestApp.SupportRequestControllerBase.extend({name:"RequestApp.Support.Controller",titleGlobPath:"request/support/title",errorGlobPath:"request/support/loadingErrors",requestSuccessGlobPath:"request/support/success",getLayoutView:function(){return new n.LayoutView(this)}})});App.module("RequestApp.Support",function(n,t,i,r,u,f){"use strict";n.LayoutView=t.RequestApp.RequestViewBase.extend({template:"request/support/layout",className:"section",regions:{kbLinksRegion:".kb-links",buttonsRegion:".buttonbar-region"},events:{"click .about-product":"toggleProductDescription","click .product-description .btn-close":"toggleProductDescription"},behaviors:{Comboboxes:{fields:{ProductType:{ProductId:{OSVersion:[],ProductVersion:[],Type:{TypeId:[]}}}}}},initialize:function(n){f.extend(this.events,t.RequestApp.RequestViewBase.prototype.events);i.Validation.bind(this);this.bindings={".request-product-type":{observe:"ProductType",collection:n.productTypes,textField:"Name"},".request-product":{observe:"ProductId",collection:n.products,textField:"Name",valueField:"Id"},".request-os-version":{observe:"OSVersion",collection:n.OsVersions,textField:"Name",valueField:"Name",placeholder:t.glob("request/support/osversion-placeholder")},".request-product-version":{observe:"ProductVersion",collection:n.productVersions,textField:"Version",valueField:"Version"},".request-type":{observe:"Type",collection:n.types,textField:"Name"},".request-subtype":{observe:"TypeId",collection:n.subtypes,textField:"Name",valueField:"Id"},".request-theme":"Summary",".request-description":"Description",".request-files":{observe:"attachedFiles",url:"/api/Request/UploadFile/TechSupport",maxNumberOfFiles:3,fileAgreementModel:this.options.fileAgreementModel,requestInfo:n.requestInfo,analyticsTarget:this,analyticsRequestType:t.Analytics.Requests.getRequestType(this.model)}};this.listenTo(t.vent,"esc:press",function(){this.$(".product-description").addClass("off")}.bind(this));this.buttonbar=new t.RequestPartial.LayoutView({model:this.model});this.buttonbar.setup(this);this.listenTo(this.buttonbar,"send:click",function(){this.trigger("request:send")});this.listenTo(this.buttonbar,"abort:click",function(){this.trigger("request:abort")});t.request("request:kblinks",{requestView:this})},toggleProductDescription:function(n){var t=this.$(".product-description");t.hasClass("off")&&this.trigger("product:abort:click");t.toggleClass("off");n.preventDefault()},onRender:function(){this.getRegion("buttonsRegion").show(this.buttonbar);this.stickit()}})});App.module("RequestApp.SupportMSA",function(n,t,i,r,u,f){"use strict";var e=t.module("Constants.Contracts");n.Controller=t.RequestApp.SupportRequestControllerBase.extend({name:"RequestApp.SupportMSA.Controller",titleGlobPath:"request/support-msa/title",errorGlobPath:"request/support-msa/loadingErrors",requestSuccessGlobPath:"request/support-msa/success",showView:function(){this.supportLevels=new t.Entities.Collection;t.RequestApp.SupportRequestControllerBase.prototype.showView.apply(this,arguments);this.listenTo(this.model,"change:ContractSupportLevel",this.onContractSupportLevelChange)},getProductRelatedFieldsUpdaters:function(){var n=t.RequestApp.SupportRequestControllerBase.prototype.getProductRelatedFieldsUpdaters.apply(this,arguments);return n.push(this.updateSupportLevelOnProductChange),n},getLayoutView:function(){return new n.LayoutView(this)},getStandardSupportLevel:function(){return{InstanceId:t.msaRequestStandardSupport,ContractStatus:e.STANDARD_SUPPORT_LEVEL_STATUS}},loadFromStore:function(){var n=this.model.getState(),i,r,u;(t.RequestApp.SupportRequestControllerBase.prototype.loadFromStore.call(this,n),n&&n.ContractSupportLevel)&&(i=this.model.get("ProductId"),i&&(r=this.products.findWhere({Id:i}),this.fillContractsInProduct(r),u=f.find(r.allContracts,function(t){return t.InstanceId===n.ContractSupportLevel}),u&&!u.isExpired&&this.model.set({ContractSupportLevel:n.ContractSupportLevel})))},fillContractsInProduct:function(n){var t,i=n.get("Id");n.contractsAreFilled||(n.unlimitedContracts=[],n.limitedYesContracts=[],n.limitedNoContracts=[],n.allContracts=[],n.existsLimitedYesNotExhausted=!1,n.contractsAreFilled=!0,t=this.initiate.get("SupportInfos").filter(function(n){return n.ProductIds.indexOf(i)!==-1}),t.forEach(function(t){n.allContracts.push(t);t.IsUnlimited?n.unlimitedContracts.push(t):t.IsLimitedYes?(n.limitedYesContracts.push(t),t.Left&&(n.existsLimitedYesNotExhausted=!0)):t.IsLimitedNo&&n.limitedNoContracts.push(t)}))},sortContracts:function(n){return f.chain(n).sortBy("EndDate").sortBy(function(n){return e.StatusOrder[n.ContractStatus]}).value()},updateSupportLevelOnProductChange:function(n,i){var r,f,e,o,u=n.get("_modelFromStore");i?(this.fillContractsInProduct(i),i.allContracts.length?(e=i.unlimitedContracts.length===1&&i.allContracts.length===1,e?this.layoutView.disableSupportLevel():this.layoutView.enableSupportLevel(),f=i.allContracts.slice(0),i.unlimitedContracts.length||f.push(this.getStandardSupportLevel()),this.supportLevels.reset(this.sortContracts(f)),e?r=i.unlimitedContracts[0].InstanceId:i.unlimitedContracts.length||i.existsLimitedYesNotExhausted||(i.limitedNoContracts.length===1?r=i.limitedNoContracts[0].InstanceId:i.limitedNoContracts.length||(r=t.msaRequestStandardSupport)),o=i.get("TypeName")==="Security Services"?this.supportLevels.filter(function(n){var t=n.get("Name");return typeof t=="string"&&(t.indexOf("Ask The Analyst")!==-1||t.indexOf("Takedown")!==-1)&&!n.get("isExpired")})[0]:undefined,o&&(r=o.get("InstanceId"),this.layoutView.disableSupportLevel(),u&&delete u.ContractSupportLevel)):(this.layoutView.disableSupportLevel(),this.layoutView.enableRequestType(),this.supportLevels.reset([this.getStandardSupportLevel()]),r=t.msaRequestStandardSupport)):this.supportLevels.reset([]);u&&u.ContractSupportLevel&&(this.supportLevels.findWhere({InstanceId:u.ContractSupportLevel,isExpired:!1})&&(r=u.ContractSupportLevel),delete u.ContractSupportLevel);r?n.set({ContractSupportLevel:r}):n.unset("ContractSupportLevel");this.layoutView.validationError("ContractSupportLevel",!1)},onContractSupportLevelChange:function(n,t){var i=this.supportLevels.findWhere({InstanceId:t}),r=i&&i.get("Name"),u=r&&!i.get("isExpired")&&(r.indexOf("Ask The Analyst")!==-1||r.indexOf("Takedown")!==-1)&&this.types.findWhere({Name:"Security Services Request"});u?(n.set({Type:u}),this.layoutView.validationError("Type",!1),this.layoutView.disableRequestType()):this.layoutView.enableRequestType();this.layoutView.showCriticalIncidentBox(i&&i.get("isCriticalIncidentBoxEnabled"))}})});App.module("RequestApp.SupportMSA",function(n,t,i,r,u,f){"use strict";var e=t.module("Analytics.Requests");n.LayoutView=t.RequestApp.RequestViewBase.extend({template:"request/support-msa/layout",className:"section",regions:{kbLinksRegion:".kb-links",buttonsRegion:".buttonbar-region"},events:{"change @ui.criticalIncidentBox":"onCriticalIncidentBoxChange","change @ui.criticalIncidentAgreement":"onCriticalIncidentAgreementChange","click .about-product":"toggleProductDescription","click .product-description .btn-close":"toggleProductDescription","click @ui.hintButton":"onHintButtonClick","click @ui.hintContentLink":"onHintContentLinkClick","blur @ui.hint":"onHintBlur"},ui:{supportLevelSelect:".request-support-level",requestType:".request-type",hint:".hint-show",hintButton:".hint-ic",hintContent:".hint-content",hintContentLink:".hint-content a",hintTriangle:".triangle",criticalIncidentBox:"#CriticalIncidentBox",criticalIncidentAgreement:"#CriticalIncidentAgreement"},behaviors:{Comboboxes:{fields:{ProductType:{ProductId:{OSVersion:[],ContractSupportLevel:[],ProductVersion:[],Type:{TypeId:[]}}}}}},initialize:function(n){f.extend(this.events,t.RequestApp.RequestViewBase.prototype.events);i.Validation.bind(this);this.bindings={".request-product-type":{observe:"ProductType",collection:n.productTypes,textField:"Name"},".request-product":{observe:"ProductId",collection:n.products,textField:"Name",valueField:"Id"},".request-support-level":{observe:"ContractSupportLevel",collection:n.supportLevels,ellipsize:!0,getSuffix:function(n){if(n.IsLimitedYes){var i=t.globPlural(n.Left);return"("+t.glob("request/support-msa/requestsAvailable/"+i,{left:n.Left})+")"}return null},textField:function(n){return n.InstanceId===t.msaRequestStandardSupport?t.glob("request/support-msa/standardSupport"):n.Name},isDisabled:function(n){return n.isExpired},adjustHeightToWindow:!0,valueField:"InstanceId"},".request-os-version":{observe:"OSVersion",collection:n.OsVersions,textField:"Name",valueField:"Name",placeholder:t.glob("request/support/osversion-placeholder")},".request-product-version":{observe:"ProductVersion",collection:n.productVersions,textField:"Version",valueField:"Version"},".request-type":{observe:"Type",collection:n.types,textField:"Name"},".request-subtype":{observe:"TypeId",collection:n.subtypes,textField:"Name",valueField:"Id"},".request-theme":"Summary",".request-description":"Description",".request-files":{observe:"attachedFiles",url:"/api/Request/UploadFile/MsaSupport",maxNumberOfFiles:3,fileAgreementModel:this.options.fileAgreementModel,requestInfo:n.requestInfo,analyticsTarget:this,analyticsRequestType:t.Analytics.Requests.getRequestType(this.model)}};this.listenTo(t.vent,"esc:press",function(){this.$(".product-description").addClass("off")}.bind(this));this.buttonbar=new t.RequestPartial.LayoutView({model:this.model});this.buttonbar.setup(this);this.listenTo(this.buttonbar,"send:click",function(){this.stopRequestSend||this.trigger("request:send")});this.listenTo(this.buttonbar,"abort:click",function(){this.trigger("request:abort")});t.request("request:kblinks",{requestView:this})},onRender:function(){this.getRegion("buttonsRegion").show(this.buttonbar);this.stickit()},toggleProductDescription:function(n){n.preventDefault();var t=this.$(".product-description");t.hasClass("off")&&this.trigger("product:abort:click");t.toggleClass("off")},disabledFields:{},disableSupportLevel:function(){this.disabledFields.ContractSupportLevel=!0},enableSupportLevel:function(){delete this.disabledFields.ContractSupportLevel},disableRequestType:function(){this.disabledFields.Type=!0;this.disabledFields.TypeId=!1;this.ui.requestType.addClass("disabled-box");this.ui.requestType.find("select, input").attr("disabled",!0);this.ui.requestType.find("select").selectmenu()},enableRequestType:function(){delete this.disabledFields.Type;delete this.disabledFields.TypeId;this.ui.requestType.removeClass("disabled-box");this.ui.requestType.find("select, input").removeAttr("disabled");this.ui.requestType.find("select").selectmenu()},onHintButtonClick:function(){var n;this.ui.hint.is(":visible")||e.msaRequestHintClickEvent();n=this.ui.hintButton.offset().top;this.ui.hint.show().focus();this.ui.hintContent.css("max-height",n-80+"px");this.ui.hintTriangle.css("top",this.ui.hint.outerHeight()-1+"px")},onHintBlur:function(){this.ui.hint.fadeOut(300)},onHintContentLinkClick:function(n){var t=u(n.target).attr("href");window.open(t,"_blank");n.preventDefault();e.msaRequestLinkInsideHintClickEvent(t)},stopRequestSend:!1,onCriticalIncidentBoxChange:function(n){this.toggleCriticalIncidentBox(n.target.checked)},onCriticalIncidentAgreementChange:function(n){this.toggleCriticalIncidentAgreement(n.target.checked)},toggleCriticalIncidentBox:function(n){this.$('label[for="'+this.ui.criticalIncidentBox.prop("id")+'"]').toggleClass("checked",n);this.model.set({RequestCriticalIncidentBoxChecked:n});this.showCriticalIncidentAgreement(n)},toggleCriticalIncidentAgreement:function(n){this.stopRequestSend=!n;this.$('label[for="'+this.ui.criticalIncidentAgreement.prop("id")+'"]').toggleClass("checked",n);this.$(".btn-request-send").toggleClass("bg-gray",!n).toggleClass("bg-green",n)},showCriticalIncidentBox:function(n){var t=this.ui.criticalIncidentBox.closest("div.cf");t.css("display",n?"":"none");this.showCriticalIncidentAgreement(n&&this.model.get("RequestCriticalIncidentBoxChecked"))},showCriticalIncidentAgreement:function(n){var t=this.ui.criticalIncidentAgreement.closest("div.cf");t.css("display",n?"":"none");this.ui.criticalIncidentAgreement.prop("checked",!n);this.toggleCriticalIncidentAgreement(!n)}})});App.module("RequestApp.SupportTA",function(n,t,i,r,u,f){"use strict";n.Controller=t.RequestApp.RequestControllerBase.extend({name:"RequestApp.SupportTA.Controller",initialize:function(n){var i={Id:n.srdId};this.initiate=t.request("request:initiate",i);this.model=t.request("request:model:instance",i);this.requestInfo=t.request("request:info:entity");this.fileAgreementModel=t.request("fileAgreement:entity");this.products=new t.Entities.Collection;this.productVersions=new t.Entities.Collection;this.OsVersions=new t.Entities.Collection;this.types=new t.Entities.Collection;this.layoutView=this.getLayoutView();this.listenTo(this.layoutView,"request:send",this.onRequestSend);this.listenTo(this.layoutView,"request:abort",this.onRequestAbort);this.listenTo(this.layoutView,"before:destroy",this.onBeforeDestroy);this.listenTo(this.layoutView,"attach",this.onShow);this.listenTo(this.layoutView,"product:abort:click",this.onProductAboutClick);this.listenTo(this.model,"change:ProductId",this.onProductIdChange);this.show(this.layoutView,{loading:{entities:[this.initiate,this.fileAgreementModel],errorHandler:this.baseErrorHandler.bind(this,this.glob("request/support-ta/title"),"request/support-ta/loadingErrors")}})},loadFromStore:function(){var n=this.model.getState(),t,i,r;n&&(t={Summary:n.Summary,Description:n.Description,NotifyEmails:n.NotifyEmails},this.model.set(t),i=this.products.findWhere({Id:n.ProductId}),i&&(this.model.set("ProductId",n.ProductId),this.model.set("OSVersion",n.OSVersion),this.model.set("ProductVersion",n.ProductVersion)),r=this.types.findWhere({Id:n.TypeId}),r&&this.model.set("TypeId",n.TypeId))},onShow:function(){var t=this.initiate.get("Products"),n;this.products.reset(t);n=this.initiate.get("RequestTypes");this.types.reset(n);this.requestInfo.set({hash:this.initiate.get("RequestInfo").Hash,uploadId:this.initiate.get("RequestInfo").UploadId});this.listenTo(this.model,"change:ProductVersion",this.showPrivateFixLink);this.loadFromStore();this.listenTo(this.model,"change",this.onChange)},onBeforeDestroy:function(){t.licenseErr.reset()},onRequestSend:function(){(t.Analytics.Requests.tryNewRequestOrAnswerEvent(this.model),this.model.isValid(!0))&&(this.layoutView.switchLoading(!0),this.layoutView.switchError(!1),this.layoutView.fileUploadView.abortAllUploads(),this.layoutView.fileUploadView.hideFileControls(),this.model.save(null,{success:f.bind(function(n,i){this.layoutView.switchLoading(!1);this.model.clearState();this.layoutView.showSuccess("request/support-ta/success",i);t.Analytics.Requests.newRequestOrAnswerSuccessEvent(n,this.initiate)},this),error:f.bind(function(n,i){if(this.layoutView.switchLoading(!1),this.layoutView.fileUploadView.showFileControls(),t.Analytics.Requests.newRequestError(n,i),!i.isValidationError){var r=t.ErrorLocalizer.getErrorText("request/support/errors",i);this.layoutView.switchError(r.text)}},this)}))},onRequestAbort:function(){this.model.clearState();t.execute("request:list")},onChange:function(){this.model.saveState()},onProductAboutClick:function(){t.Analytics.Requests.getHowToGetProductVersionEvent(this.model)},onProductIdChange:function(n,t){var u,i,r;t?(u=this.products.findWhere({Id:t}),i=u.get("Os"),i=f.map(i,function(n){return{Name:n}}),r=u.get("Versions"),r=f.map(r,function(n){return{Version:n}}),this.productVersions.reset(r),this.OsVersions.reset(i),this.types.reset(this.initiate.get("RequestTypes"))):(n.unset("ProductId"),this.layoutView.validationError("ProductId",!1),this.productVersions.reset([]),this.OsVersions.reset([]),this.types.reset([]));n.unset("OSVersion");n.unset("ProductVersion");n.unset("TypeId");this.layoutView.validationError("OSVersion",!1);this.layoutView.validationError("ProductVersion",!1);this.layoutView.validationError("TypeId",!1)},getLayoutView:function(){var t={model:this.model,products:this.products,productVersions:this.productVersions,OsVersions:this.OsVersions,types:this.types,userInfo:this.userInfo,requestInfo:this.requestInfo,fileAgreementModel:this.fileAgreementModel};return new n.LayoutView(t)}})});App.module("RequestApp.SupportTA",function(n,t,i,r,u,f){"use strict";n.LayoutView=t.RequestApp.RequestViewBase.extend({template:"request/support-ta/layout-ta",className:"section",regions:{kbLinksRegion:".kb-links",buttonsRegion:".buttonbar-region"},events:{"click .about-product":"toggleProductDescription","click .product-description .btn-close":"toggleProductDescription"},behaviors:{Comboboxes:{fields:{ProductId:{OSVersion:[],ProductVersion:[],TypeId:[]}}}},initialize:function(n){f.extend(this.events,t.RequestApp.RequestViewBase.prototype.events);i.Validation.bind(this);this.bindings={".request-product":{observe:"ProductId",collection:n.products,textField:"Name",valueField:"Id"},".request-os-version":{observe:"OSVersion",collection:n.OsVersions,textField:"Name",valueField:"Name",placeholder:t.glob("request/support/osversion-placeholder")},".request-product-version":{observe:"ProductVersion",collection:n.productVersions,textField:"Version",valueField:"Version",placeholder:t.glob("request/support-ta/product-ver-placeholder")},".request-type":{observe:"TypeId",collection:n.types,textField:"TypeName",valueField:"Id"},".request-files":{observe:"attachedFiles",url:"/api/Request/UploadFile/TaSupport",maxNumberOfFiles:3,fileAgreementModel:this.options.fileAgreementModel,requestInfo:n.requestInfo,analyticsRequestType:t.Analytics.Requests.getRequestType(this.model)},".request-answers-email":"NotifyEmails",".request-theme":"Summary",".request-description":"Description"};this.listenTo(t.vent,"esc:press",function(){this.$(".product-description").addClass("off")}.bind(this));this.buttonbar=new t.RequestPartial.LayoutView({model:this.model});this.buttonbar.setup(this);this.listenTo(this.buttonbar,"send:click",function(){this.trigger("request:send")});this.listenTo(this.buttonbar,"abort:click",function(){this.trigger("request:abort")});t.request("request:kblinks",{requestView:this})},onRender:function(){this.getRegion("buttonsRegion").show(this.buttonbar);this.stickit()},toggleProductDescription:function(n){var t=this.$(".product-description");t.hasClass("off")&&this.trigger("product:abort:click");t.toggleClass("off");n.preventDefault()}})});App.module("RequestApp.View",function(n,t,i){"use strict";n.CommentBox=t.Views.LayoutView.extend({template:"request/view/comment-box",ui:{sendBtn:".btn-request-send"},events:{"click @ui.sendBtn":"sendBtnClick"},initialize:function(n){i.Validation.bind(this,{valid:function(n){i.Validation.callbacks.valid.apply(this,arguments);n.switchErrorMessage(!1)},invalid:function(n,t,r){i.Validation.callbacks.invalid.apply(this,arguments);n.switchErrorMessage(r)}});this.bindings={".request-text":"Text",".request-files":{observe:"attachedFiles",url:"/api/Request/UploadFile/Comment",maxNumberOfFiles:3,fileAgreementModel:this.options.fileAgreementModel,requestInfo:n.requestInfo,analyticsRequestType:t.Analytics.Requests.getRequestType(this.model)}}},sendBtnClick:function(n){var t=this.ui.sendBtn.hasClass("disabled");n.preventDefault();t||this.trigger("comment:send")},switchMsgLoading:function(n){var t=this.$(".process-send-comment");this.commonSwitch(n,this.ui.sendBtn,t)},commonSwitch:function(n,t,i){i=i||this.ui.spinner;i.toggleClass("off",!n);t.toggleClass("disabled",n).toggleClass("bg-gray",n).toggleClass("bg-green",!n)},switchErrorMessage:function(n){var t=this.$(".err");n?t.html(n).removeClass("off"):t.addClass("off")},onRender:function(){this.stickit()}})});App.module("RequestApp.View",function(n,t,i,r,u,f){"use strict";var e=t.module("Utils.Ajax");n.Controller=t.Controllers.Base.extend({name:"RequestApp.View.Controller",initialize:function(n){this.model=t.request("request:entity",{id:n.id,needInProgress:n.needInProgress});this.commentModel=t.request("request:comment:instance");this.authModel=t.request("auth:entity");this.requestInfo=t.request("request:info:entity");this.fileAgreementModel=t.request("fileAgreement:entity");this.layoutView=this.getLayoutView();this.commentView=this.getCommentBoxView();this.listenTo(this.commentView,"comment:send",this.commentSend);this.listenTo(this.layoutView,"render",this.showRegions);this.listenTo(this.layoutView,"swith",this.toggleUIElements);this.listenTo(this.layoutView,"close:request",this.closeRequest);this.listenTo(this.layoutView,"open:request",this.openNewRequest);this.show(this.layoutView,{loading:{entities:[this.model,this.fileAgreementModel],errorHandler:f.bind(this.loadingErrorHandler,this)}})},loadingErrorHandler:function(n,i){var r=t.ErrorLocalizer.getModalText("request/view/loadingErrors",i),u;return t.Analytics.Requests.requestOpenError(i),u=new t.ErrorApp.Show.MainRegionError({regionTitle:this.glob("request/list/tabs/requests"),title:r.title,text:r.text}),t.mainRegion.show(u),!0},showRegions:function(){this.commentModel.set({IncidentNumber:this.model.get("IncidentNumber")},{silent:!0});this.requestInfo.set({hash:this.model.get("RequestInfo").Hash,uploadId:this.model.get("RequestInfo").UploadId});this.layoutView.switchRequestProduct(!1);var n=this.model.get("SRDInstanceId");(n===t.requests.support||n===t.requests["support-ta"]||n===t.requests["support-msa"])&&this.layoutView.switchRequestProduct(!0);this.layoutView.getRegion("commentBoxRegion").show(this.commentView);this.applyState(function(n){this.commentModel.set({Text:n.Text});n.messages&&this.layoutView.switchMessages();n.answer&&this.layoutView.switchAnswerForm()});this.listenTo(this.commentModel,"change",this.onChange)},commentSend:function(){if(t.Analytics.Requests.tryNewRequestOrAnswerEvent(this.commentModel),this.commentModel.isValid(!0)){this.commentView.switchMsgLoading(!0);this.commentView.switchErrorMessage(!1);this.commentView.fileUploadView.abortAllUploads();this.commentView.fileUploadView.hideFileControls();var n=this.model.get("SRInstanceId");this.commentModel.save(null,{success:f.bind(function(i,r){this.commentView.switchMsgLoading(!1);this.commentView.fileUploadView.showFileControls();store.remove(this.getStoreId());t.Analytics.Requests.newRequestOrAnswerSuccessEvent(i,this.initiate);r.AttachedFileError?this.layoutView.showAttachFileErrorModal(r,function(){t.execute("request:view:refresh",{id:n,needInProgress:!0})}):t.execute("request:view:refresh",{id:n,needInProgress:!0})},this),error:f.bind(function(n,i){if(this.commentView.switchMsgLoading(!1),this.commentView.fileUploadView.showFileControls(),t.Analytics.Requests.newRequestError(n,i),!i.isValidationError){var r=t.ErrorLocalizer.getErrorText("request/view/errors",i);this.commentView.switchErrorMessage(r.text)}},this)})}},toggleUIElements:function(n){this.saveState(n);(n.messages===!0||n.messages===!1)&&t.Analytics.Requests.requestEvent(this.model,n.messages?"Show messages | Click":"Hide messages | Click");n.answer&&t.Analytics.Requests.answerEvent(this.model)},closeRequest:function(n){var i=t.request("close:request:model",{IncidentNumber:this.model.get("IncidentNumber")});i.save(null,{success:function(){t.Analytics.Requests.closeRequestEvent(this.model);t.execute("request:list")}.bind(this),error:function(i,r){var u,f;n.switchCloseLoading(!1);f=t.ErrorLocalizer.getErrorText(["request/view/closeErrors","request/view/errors"],r);e.getResponseCode(r)==="StatusClosedCancelled"&&(u=function(){t.execute("page:reload")});this.showModalError(f.text,"",{region:t.modalRegion,onHide:u});t.Analytics.Requests.requestCloseError(r)}.bind(this)})},openNewRequest:function(){t.request("requestTypeList:entities",{success:f.bind(function(n){if(this.layoutView.switchNewReqLoading(!1),n.length===1){var i;f.each(t.requests,function(t,r){t===n.at(0).get("SRDInstanceId")&&(i=r)});i?t.execute("request:create:"+i):t.execute("error:forbidden")}else t.execute("request:create",{collection:n})},this),error:f.bind(function(n){t.Analytics.Requests.requestTypeListError(n);this.layoutView.switchNewReqLoading(!0);t.execute("request:create",{resp:n})},this)})},getStoreId:function(){return"request_view_"+this.model.get("IncidentNumber")+"_"+this.authModel.get("email").toLowerCase()},onChange:function(n){this.saveState({Text:n.get("Text")})},getLayoutView:function(){return new n.LayoutView({model:this.model,authModel:this.authModel})},getCommentBoxView:function(){return new n.CommentBox({model:this.commentModel,requestInfo:this.requestInfo,fileAgreementModel:this.fileAgreementModel})}})});App.module("RequestApp.View",function(n,t,i,r,u,f){"use strict";var e=t.module("Utils.Ui");n.LayoutView=t.Views.LayoutView.extend({template:"request/view/layout",className:"section",ui:{closeBtn:".btn-request-close",openBtn:".open-request",spinner:".process-request",requestProduct:".request-product"},regions:{worklogRegion:".messages-region",lastMessageRegion:".last-message-region",commentBoxRegion:".comment-box-region"},events:{"click .toggle-messages":"switchMessages","click .show-answer-form":"switchAnswerForm","click .hide-answer-form":"switchAnswerForm","click @ui.openBtn":"openReqClick","click @ui.closeBtn":"closeBtnClick","click .file-name":"downloadRequestFileClick"},initialize:function(){this.bindings={".request-title":"Summary",".request-number":"IncidentNumber",".request-status":{observe:"UserfriendlyStatus",onGet:function(n){return t.glob("request/statuses/"+n)}}}},serializeData:function(){var n=t.Views.ItemView.prototype.serializeData.apply(this),i=n.UserfriendlyStatus,r=e.getColorByRequestStatus(i),u=!this.isRequestClosed();return n.statusColorClass=r+"-stat",n.isAvailableComments=u,n},isRequestClosed:function(n){var t=n||this.model.get("UserfriendlyStatus");return t.indexOf("Closed")!==-1||t.indexOf("Cancelled")!==-1},closeBtnClick:function(n){(n.preventDefault(),this.ui.closeBtn.hasClass("disabled"))||t.request("confirm:view",{title:t.glob("request/view/confirm-title"),text:t.glob("request/view/confirm-text"),acceptButtonText:t.glob("request/view/confirm-button"),success:function(){this.switchCloseLoading(!0);this.trigger("close:request",this)}.bind(this)})},openReqClick:function(){this.ui.spinner.hasClass("off")&&(this.switchNewReqLoading(!0),this.trigger("open:request"))},showAttachFileErrorModal:function(n,i){var u={path:"request/errors/comment-attach-files-error",requestId:n.IncidentNumber,attachedFileErrors:n.AttachedFileErrors.join(", "),onHide:i},r=t.RequestApp.getSuccessView(u);return t.modalRegion.show(r),r},switchCloseLoading:function(n){this.commonSwitch(n,this.ui.closeBtn)},switchNewReqLoading:function(n){this.commonSwitch(n,this.ui.openBtn)},commonSwitch:function(n,t,i){(i||this.ui.spinner).toggleClass("off",!n);t.toggleClass("disabled",n).toggleClass("bg-gray",n).toggleClass("bg-green",!n)},switchMessages:function(n){var f,i;n&&n.preventDefault();var r=this.$(".last-message-region"),u=this.$(".messages-region"),e=this.$(".show-more"),o=this.$(".hide-all"),t=r.hasClass("off");r.toggleClass("off",!t);u.toggleClass("off",t);e.toggleClass("off",!t);o.toggleClass("off",t);this.trigger("swith",{messages:!t});f=u.find("div > div");i=f.last()[0];i&&i.scrollIntoView&&i.scrollIntoView()},switchRequestProduct:function(n){this.ui.requestProduct.toggleClass("off",!n)},switchAnswerForm:function(n){function e(){var n=f.max([r,t],function(n){return n.outerWidth()}).width();n>0?(t.width(n+5),r.width(n+5),o.buttonsRounded=!0):window.setTimeout(e,100)}var o=this,t,u,i,r;(n&&n.preventDefault(),this.isRequestClosed())||(t=this.$(".show-answer-form"),u=t.hasClass("disabled"),u)||(i=this.$(".add-area"),r=i.find(".hide-answer-form"),this.trigger("swith",{answer:i.hasClass("off")}),i.toggleClass("off"),this.buttonsRounded||e())},checkPermission:function(){var n=this.options.authModel.get("username")===this.model.get("CustomerLogin"),t=this.options.authModel.get("role").indexOf("CA User Show Requests")===-1;return n||t||this.isRequestClosed()},onRender:function(){var r,u,o,i,f,s,h,e;this.stickit();r=this.$(".toggle-messages");this.model.get("IsWorklogSuccess")?(i=this.model.get("Worklog"),f=t.request("auth:entity"),i.length!==0&&(i.reset(i.sortBy("SubmitDate")),s=new n.Worklog({collection:i,authModel:f}),this.getRegion("worklogRegion").show(s),h=new n.WorkItem({model:i.last(),authModel:f}),this.getRegion("lastMessageRegion").show(h)),this.model.get("Worklog").length<2&&r.addClass("off")):(u=this.model.get("Worklog"),o=new n.WorkLogProblem({errorInfo:u&&u.ErrorInfo}),this.getRegion("lastMessageRegion").show(o),r.addClass("off"));e=this.$(".modify-buttons");this.model.get("IncidentNumber")||e.find(".btn").addClass("bg-gray disabled").removeClass("bg-green");this.checkPermission()||e.addClass("off")},downloadRequestFileClick:function(n){this.downloadFileClick(n);t.Analytics.Requests.downloadFileEvent(this.model)}})});App.module("RequestApp.View",function(n,t){"use strict";n.WorkItem=t.Views.ItemView.extend({getTemplate:function(){switch(this.model.get("SubmitterType")){case"ActiveCustomer":return"request/view/client-message";case"InactiveCustomer":return"request/view/inactive-user-message";case"Support":return"request/view/support-message";default:return undefined}},bindings:{".work-submit-date":{observe:"SubmitDate",onGet:function(n){var i=t.toLocalDate(n);return Globalize.formatDate(i,{datetime:"medium"})}}},serializeData:function(){var n=t.Views.ItemView.prototype.serializeData.apply(this,arguments),i=this.getUserProperties(),r=i.isMain||i.isRequester;return n.showLink=r,n},getUserProperties:function(){var n=this.options.authModel,i=n.get("username"),r=n.get("role"),t=this.model.get("CustomerLogin");return{customer:t,isRequester:i===t,isMain:r.indexOf("Main CA User")!==-1}},onRender:function(){var n="#",t=this.getUserProperties(),i=t.isRequester,r=t.isMain;this.stickit();i?n="/profile/show":r&&(n="/user/show/"+t.customer+"/");this.$("a.work-customer-fullname").attr("href",n);this.$("a.work-customer-fullname").attr("onclick","App.Analytics.Requests.requestOpenProfileEvent(this); return false;")}});n.WorkLogProblem=t.Views.ItemView.extend({template:"request/view/worklog-problem"});n.Worklog=t.Views.CollectionView.extend({childView:n.WorkItem,childViewOptions:function(){return{authModel:this.options.authModel}}})});App.module("RequestApp.Virlab",function(n,t){"use strict";n.Controller=t.RequestApp.RequestControllerBase.extend({name:"RequestApp.Virlab.Controller",initialize:function(){t.execute("show:broadcast");this.model=t.request("request:virlab:instance");this.initiate=t.request("virlab:initiate");this.requestInfo=t.request("request:info:entity");this.fileAgreementModel=t.request("fileAgreement:entity");this.requestTypes=new t.Entities.Collection;this.layoutView=this.getLayoutView();this.listenTo(this.layoutView,"render",this.onShow);this.listenTo(this.layoutView,"request:send",this.onRequestSend);this.listenTo(this.layoutView,"request:abort",this.onRequestAbort);this.show(this.layoutView,{loading:{entities:[this.initiate,this.fileAgreementModel],errorHandler:this.baseErrorHandler.bind(this,this.glob("request/virlab/title"),"request/virlab/loadingErrors")}})},onShow:function(){var n,t;this.requestTypes.reset(this.initiate.get("RequestTypes"));this.requestInfo.set({hash:this.initiate.get("RequestInfo").Hash,uploadId:this.initiate.get("RequestInfo").UploadId});n=this.model.getState();n&&(this.model.set({NotifyEmails:n.NotifyEmails,Description:n.Description}),t=this.requestTypes.findWhere({Id:n.TypeId}),t&&this.model.set({TypeId:n.TypeId}));this.listenTo(this.model,"change",this.onChange)},onRequestSend:function(){(t.Analytics.Requests.tryNewRequestOrAnswerEvent(this.model),this.model.isValid(!0))&&(this.layoutView.switchLoading(!0),this.layoutView.switchError(!1),this.layoutView.fileUploadView.abortAllUploads(),this.layoutView.fileUploadView.hideFileControls(),this.normalizeModel(),this.model.save(null,{success:function(n,i){this.layoutView.switchLoading(!1);this.layoutView.showSuccess("request/virlab/success",i);this.model.clearState();t.Analytics.Requests.newRequestOrAnswerSuccessEvent(n,this.initiate)}.bind(this),error:function(n,i){if(this.layoutView.switchLoading(!1),this.layoutView.fileUploadView.showFileControls(),t.Analytics.Requests.newRequestError(n,i),!i.isValidationError){var r=t.ErrorLocalizer.getErrorText("request/virlab/errors",i);this.layoutView.switchError(r.text)}}.bind(this)}))},onRequestAbort:function(){this.model.clearState();t.execute("request:list")},normalizeModel:function(){var n=this.model.toJSON();this.model.set({CCEmail:(n.CCEmail||"").replace(/\s/g,"")},{silent:!0})},onChange:function(){this.normalizeModel();this.model.saveState()},getLayoutView:function(){return new n.LayoutView({model:this.model,requestTypes:this.requestTypes,requestInfo:this.requestInfo,fileAgreementModel:this.fileAgreementModel})}})});App.module("RequestApp.Virlab",function(n,t,i){"use strict";n.LayoutView=t.RequestApp.RequestViewBase.extend({template:"request/virlab/layout",className:"section",regions:{buttonsRegion:".buttonbar-region"},initialize:function(){i.Validation.bind(this);this.bindings={".request-type":{observe:"TypeId",collection:this.options.requestTypes,textField:"TypeName",valueField:"Id"},".request-email":"NotifyEmails",".request-description":"Description",".request-files":{observe:"attachedFiles",url:"/api/Request/UploadFile/Amr",maxNumberOfFiles:3,maxFileSize:t.limits.amrMaxFileSize,fileAgreementModel:this.options.fileAgreementModel,requestInfo:this.options.requestInfo,analyticsRequestType:t.Analytics.Requests.getRequestType(this.model)}};this.buttonbar=new t.RequestPartial.LayoutView({model:this.model});this.buttonbar.setup(this);this.listenTo(this.buttonbar,"send:click",function(){this.trigger("request:send")});this.listenTo(this.buttonbar,"abort:click",function(){this.trigger("request:abort")})},onRender:function(){this.getRegion("buttonsRegion").show(this.buttonbar);this.stickit()}})});App.module("UserApp.Invite",function(n,t,i,r,u,f){"use strict";var o=t.module("Utils.Browser"),e=t.module("Analytics.Invite"),s=f.once(function(){return t.Controllers.Base.extend({name:"UserApp.Invite.InviteUserController",showView:function(){this.sendModel=t.request("invitation:send:model");this.view=n.getView({model:this.sendModel});this.listenTo(this.view,"invite:send:click",this.onSendClicked);this.listenTo(this.view,"invite:clear:click",this.onClearClicked);this.listenTo(this.view,"invite:email:blur",this.onEmailBlur);this.listenTo(this.sendModel,"change:"+this.sendModel.attributeNames.email,this.onEmailChange);this.listenTo(t.vent,"enter:press",this.onEnterPressed);this.show(this.view)},onSendClicked:function(){this.sendInvitation()},onClearClicked:function(){this.sendModel.clearEmail()},onEmailBlur:function(){this.triggerEmailChange(!0)},onEmailChange:function(){this.triggerEmailChange()},onEnterPressed:function(){this.triggerEmailChange(!0)},triggerEmailChange:function(n){var t=this.sendModel.getEmail();this.trigger("invite:email:filter",t,n||t===undefined)},onSendingSucceed:function(){e.invitationSuccessfullySentEvent();this.showSendingSuccessView();this.view.hideProgress();this.isInSendingState=!1;this.sendModel.clearEmail()},onSendingFailed:function(n,t){(this.view.hideProgress(),this.isInSendingState=!1,e.sendInvitationErrorEvent(t),t.isValidationError)||this.showSendingErrorView(t)},onLinkInErrorModalClicked:function(){e.openRequestFormFromErrorWindowEvent();this.modalErrorView.hide();t.execute("request:create:ca")},sendInvitation:function(){if(!this.isInSendingState){if(e.trySendInvitationEvent(),this.isTryingToSendSelf()){this.showSameUserError();return}this.sendModel.isValid(!0)&&(this.view.showProgress(),this.isInSendingState=!0,this.sendModel.save(null,{success:this.onSendingSucceed.bind(this),error:this.onSendingFailed.bind(this)}))}},isTryingToSendSelf:function(){var n=this.sendModel.getEmail(),i=t.request("auth:entity").get("email");return n&&i.toLowerCase()===n.toLowerCase()},showSendingSuccessView:function(){var n=this.glob("user/invite/success",{email:this.sendModel.getEmail()});this.showModalSuccess({text:n})},showSameUserError:function(){var n={responseJSON:{Code:"InvitedLoginEqualsCurrentUserLogin"}};e.sendInvitationErrorEvent(n);this.showSendingErrorView(n)},showSendingErrorView:function(n){var i=t.ErrorLocalizer.getModalText("user/invite/errors",n,{email:this.sendModel.getEmail(),origin:o.getCurrentOrigin()});this.modalErrorView=this.showModalError(i.title,i.text,{region:t.modalRegion,onLinkInTextClicked:this.onLinkInErrorModalClicked.bind(this)})}})});n.getController=function(n){var t=s();return new t(n)}});App.module("UserApp.Invite",function(n,t,i,r,u,f){"use strict";function s(n){return f.once(function(){return t.Views.ItemView.extend({template:"user/invite/invite-user",ui:{progressIndicator:".invite-user__progress",sendButton:".invite-user__submit",clearButton:".invite-user__clear",emailInput:".invite-user__email"},triggers:{"click @ui.sendButton":"invite:send:click","click @ui.clearButton":"invite:clear:click","blur @ui.emailInput":"invite:email:blur"},bindings:{".invite-user__email":{observe:n.email,toLower:!0,forbiddenChars:{chars:o.anyWhitespaceCharacter,location:e.forbiddenStringLocations.all,doNotDisplay:!0}}},initialize:function(){i.Validation.bind(this,{valid:function(){},invalid:function(){}});this.listenTo(this.model,"change:"+this.model.attributeNames.email,this.onEmailChange)},onRender:function(){this.stickit()},onEmailChange:function(){var t=this.model.getEmail(),i=this.model.isValid(n.email);this.ui.clearButton[t?"show":"hide"]();this.ui.sendButton[i?"enableButton":"disableButton"]()},showProgress:function(){this.ui.progressIndicator.show();this.ui.sendButton.disableButton()},hideProgress:function(){this.ui.progressIndicator.hide();this.ui.sendButton.enableButton()}})})()}var e=t.module("Entities.Validation"),o=t.module("Constants.RegEx");n.getView=function(n){var t=s(n.model.attributeNames);return new t(n)}});App.module("UserApp.List",function(n,t,i,r,u){"use strict";n.UserItem=t.Views.ItemView.extend({template:"user/list/user",events:{click:"onItemClick",mousedown:"onMouseWhellClick"},onItemClick:function(n){n&&n.button===0&&!getSelection().toString()&&(this.trigger("user:view",this),n.preventDefault())},onMouseWhellClick:function(n){n.target&&u(n.target).parent().is("a")||n.button===1&&(n.preventDefault(),this.trigger("user:view",this,{newTab:!0}))},onRender:function(){this.options.isSameUser&&this.$("a").attr("href","/profile/show");this.stickit()}});n.NoUser=t.Views.ItemView.extend({template:"user/list/no-user"})});App.module("UserApp.List",function(n,t,i,r,u,f){"use strict";function o(){function r(){var t=this.filterModel.get("email")||"";if(n.length<3){if(!t.length)return;n=undefined}else if(n===t)return;this.filterModel.set("email",n,{reset:!0})}var i,n;return function(u,f){var e=f?0:t.delayBeforeDynamicSubmit||1e3;window.clearTimeout(i);n=u||"";i=window.setTimeout(r.bind(this),e)}}var e=t.module("UserApp.Invite");n.Controller=t.Controllers.Base.extend({name:"UserApp.List.Controller",initialize:function(){StorageQueue.put("save-store");this.applyState(function(n){var i=n.collectionState,r=i&&i.filter;r&&(r.email=null);this.users=t.request("user:entities",{state:i});this.filterModel=t.request("user:filter:entity",r)},function(){this.users=t.request("user:entities");this.filterModel=t.request("user:filter:entity")});this.users.setDefaultErrorHandler(f.bind(this.errorHandler,this));this.authModel=t.request("auth:entity");this.layoutView=new n.LayoutView({model:this.filterModel,users:this.users});this.listenTo(this.layoutView,"render",this.showRegions);this.listenTo(this.layoutView,"sort:direction:change",this.onSortDirectionChange);this.show(this.layoutView,{loading:{entities:this.users,errorHandler:f.bind(this.loadingErrorHandler,this)}})},loadingErrorHandler:function(n,t){return this.errorHandler(this.users,t)},errorHandler:function(n,i){var r=t.ErrorLocalizer.getModalText("user/list/errors",i),u;return t.Analytics.Users.usersError(i),u=new t.ErrorApp.Show.MainRegionError({regionTitle:this.glob("user/list/header"),title:r.title,text:r.text}),t.mainRegion.show(u),!0},showRegions:function(){this.showCollection();var n=t.request("pager:view",{collection:this.users});this.layoutView.getRegion("pagerRegion").show(n);t.AuthInfo.isMain()&&!t.AuthInfo.isTA()&&this.showInviteView();this.listenTo(this.filterModel,"change",this.onFilterChange);this.listenTo(this.users,"request",this.showLoading);this.listenTo(this.users,"reset add remove",this.showCollection)},showInviteView:function(){var n=e.getController({region:this.layoutView.getRegion("inviteUserRegion")});this.childControllers.push(n);n.showView();this.listenTo(n,"invite:email:filter",this.onEmailFilter)},showCollection:function(){this.userListView=new n.UserList({collection:this.users,currentEmail:this.authModel.get("username").toLowerCase()});this.listenTo(this.userListView,"childview:user:view",this.onUserView);this.layoutView.getRegion("userListRegion").show(this.userListView);this.layoutView.switchPagination(!0)},showLoading:function(){var i=f.pick(this.users.state,["currentPage","filter"]),n;this.state.collectionState=i;this.saveState(this.state);n=t.request("loading:view:gray");this.layoutView.getRegion("userListRegion").show(n);this.layoutView.switchPagination(!1)},onUserView:function(n,i){var u=this.authModel.get("username").toLowerCase(),r=n.model.get("Login").toLowerCase();t.Analytics.Users.openUserProfileEvent();u===r?t.execute("profile:show"):t.execute("user:show",f.extend({login:r},i))},onSortDirectionChange:function(n){var i=n?"LastNameDesc":"LastNameAsc";this.users.setFilter("sort",i,{reset:!0});this.filterModel.set("sort",i,{quite:!0});t.Analytics.Users.userListSortBySurnameEvent()},onEmailFilter:o(),onFilterChange:function(n){var i,r,u={email:this.filterModel.get("email")},f=this.filterModel.get("country"),e=this.filterModel.get("organization");"country"in n.changed&&t.Analytics.Users.userListFilterByCountryEvent();"organization"in n.changed&&t.Analytics.Users.userListFilterByBranchEvent();(f||f==="")&&(u.countryFilter=f);switch(e){case"All":i="All";r=null;break;case"Empty":i="Empty";r=null;break;default:i="ByName";r=e}u.filterOrganizationAlgorithm=i;u.organization=r;this.users.setFilter(u,{reset:!0})},getStoreId:function(){return"user_list_store_id"}})});App.module("UserApp.List",function(n,t,i,r,u,f){"use strict";n.LayoutView=t.Views.LayoutView.extend({template:"user/list/layout",className:"section",ui:{createBtn:".user-create",filter:".a-filter"},regions:{modalRegion:".modal-region",userListRegion:".user-list-region",pagerRegion:".pager-region",inviteUserRegion:".user-invite-region"},bindings:{".filter-country":"country",".filter-organization":"organization"},events:{"click @ui.filter":"onSortDirectionChange"},serializeData:function(){var r=t.Views.LayoutView.prototype.serializeData.call(this),i=this.options.users.filters,n=this.options.users.state.filter||{};return f.extend(r,{countries:i.Countries,filials:i.Organizations,disabledCountry:n.countryFilter&&!f.contains(i.Countries,n.countryFilter)?n.countryFilter:null,disabledOrganization:n.organization&&!f.contains(i.Organizations,n.organization)?n.organization:null})},onSortDirectionChange:function(){var n=this.ui.filter;n.toggleClass("a-filter-back");this.trigger("sort:direction:change",!n.hasClass("a-filter-back"))},showCreateBtn:function(){this.ui.createBtn.removeClass("off")},switchPagination:function(n){this.$(".pager-region").toggleClass("off",!n)},onRender:function(){var n,t;this.stickit();n=this.model.get("sort");t=!n||n==="LastNameAsc";this.ui.filter.toggleClass("a-filter-back",t)}});n.UserList=t.Views.CollectionView.extend({childView:n.UserItem,childViewOptions:function(n){var t,i;return n.has("Login")?(t=n.get("Login").toLowerCase(),i=t===this.options.currentEmail,{isSameUser:i}):{isSameUser:!1}},emptyView:function(){return n.NoUser}})});App.module("UserApp.Show",function(n,t,i,r,u,f){"use strict";n.Controller=t.UserComponent.Controller.extend({name:"UserApp.Show",globalizePath:"user/errors",initialize:function(){this.userInfo=t.request("user:show:entity",{Username:this.options.username});this.updateModel=t.request("user:update:entity");this.countryCollection=t.request("country:entities");this.filialsCollection=t.request("organizations:entities");this.authModel=t.request("auth:entity");this.layoutView=this.getLayoutView();this.listenTo(this.layoutView,"render",this.showRegions);this.listenTo(this.layoutView,"before:render",this.beforeShow);this.show(this.layoutView,{loading:{entities:[this.userInfo,this.countryCollection,this.filialsCollection,],errorHandler:this.loadingErrorHandler.bind(this)}});this.listenTo(this.layoutView,"delete:profile",this.onDeleteProfile);this.listenTo(this.layoutView,"profile:save",this.onProfileSave);this.listenTo(this.layoutView,"reset:password",this.onResetPassword)},loadingErrorHandler:function(n,i){var r=t.ErrorLocalizer.getModalText("user/show/errors",i),u;return t.Analytics.Users.manageUserOpenError(i),u=new t.ErrorApp.Show.MainRegionError({regionTitle:this.glob("profile/title-user"),title:r.title,text:r.text}),t.mainRegion.show(u),!0},beforeShow:function(){f.isEmpty(this.updateModel.attributes)&&this.updateModel.set({FirstName:this.userInfo.get("FirstName"),LastName:this.userInfo.get("LastName"),Country:this.userInfo.get("Country"),Organization:this.userInfo.get("Organization"),OfUsername:this.userInfo.get("OfUsername")});this.permissionsModel=this.userInfo.getPermissionModel();this.applyState(function(n){n&&(n.UserInfo&&this.updateModel.set(n.UserInfo),n.Permissions&&this.permissionsModel.set(n.Permissions))})},showRegions:function(){var n=this.countryCollection.findWhere({ISOCode:this.userInfo.get("Country")});n||$logger.error("Country not found in list");this.permissionsView=new t.UserComponent.RightsView({model:this.permissionsModel,authModel:this.authModel});this.layoutView.getRegion("userRightsRegion").show(this.permissionsView);this.listenTo(this.permissionsView,"permissions:save",this.onPermissionsSave);this.listenTo(this.updateModel,"change",this.onChange);this.listenTo(this.permissionsModel,"change",this.onChange)},onPermissionsSave:function(){this.permissionsModel.save(null,{success:function(){t.Analytics.Users.successfullyChangedPermissionsEvent();this.permissionsView.switchLoading(!1,!0)}.bind(this),error:function(n,t){this.permissionsView.switchLoading(!1);var i=this.commonErrorHandler(t);i||this.permissionsView.switchError(!0)}.bind(this)})},onProfileSave:function(){if(this.updateModel.isValid(!0)){var n=this.updateModel.get("Organization");this.layoutView.switchSaveProfileLoading(!0);this.layoutView.switchErrorMsg(!1);this.updateModel.save(null,{success:function(i){if(n){var r=this.filialsCollection;r.findWhere({Name:n})||(r.add({Name:f.escape(n),Id:n}),r.trigger("reset"))}t.Analytics.Users.manageUserPersonalDataSuccessEvent(i);store.remove(this.getStoreId());this.layoutView.switchSaveProfileLoading(!1,!0)}.bind(this),error:function(n,i){var r,u;(this.layoutView.switchSaveProfileLoading(!1),t.Analytics.Users.manageUserPersonalDataError(i),i.isValidationError)||(r=this.commonErrorHandler(i),r||(u=t.glob("profile/personalinfo/saveError"),this.layoutView.switchErrorMsg(u)))}.bind(this)})}},onResetPassword:function(){t.Analytics.Users.initiateOtherUserPasswordResetEvent();var n=t.request("userUserInfo:reset:password:model:instance",{Username:this.options.username});n.save(null,{success:function(){var n=this.glob("profile/resetPasswordSuccessUser");this.layoutView.switchPwdLoading(!1,n);t.Analytics.Users.resetPasswordForOtherUserLinkWasSentEvent()}.bind(this),error:function(n,i){var f=this.getResponseMsg(i),u,r;if(t.Analytics.Users.manageUserResetPasswordError(i),f==="UnknownError"){this.layoutView.switchPwdErrorMsg(!0);return}u=this.userInfo.get("Email");r=t.ErrorLocalizer.getModalText("profile/resetPassword/errors",i,{email:this.ellipsizeForModal(u)});this.showModalError(r.title,r.text,{region:t.modalRegion});t.execute("user:list")}.bind(this)})},onDeleteProfile:function(){t.Analytics.Users.deleteUserEvent();t.request("confirm:view",{title:this.glob("user/delete/confirm/title"),text:this.glob("user/delete/confirm/text",{email:this.userInfo.get("Email")}),acceptButtonText:this.glob("user/delete/confirm/button"),success:function(){t.Analytics.Users.confirmUserDeletionEvent();this.layoutView.switchDelProfLoading(!0);this.layoutView.switchDelProfErrorMsg(!1);var n=t.request("user:remove:model:instance",{Username:this.options.username});n.save(null,{success:function(){this.layoutView.switchDelProfLoading(!1,!0);this.showModalSuccess({title:this.glob("user/delete/success"),useQuestIcon:!0});t.execute("user:list")}.bind(this),error:function(n,i){var u,f,r;if(this.layoutView.switchDelProfLoading(!1),t.Analytics.Users.manageUserDeleteError(i),u=this.getResponseMsg(i),u==="UnknownError"){this.layoutView.switchDelProfErrorMsg(this.glob("user/delete/errors/UnknownError/title"));return}f=this.userInfo.get("Email");r=t.ErrorLocalizer.getModalText("user/delete/errors",i,{email:this.ellipsizeForModal(f)});this.showModalError(r.title,r.text,{region:t.modalRegion});t.execute("user:list")}.bind(this)})}.bind(this)})},onChange:function(){var t=this.permissionsModel.toJSON(),n=this.updateModel.toJSON(),i={Permissions:t,UserInfo:{FirstName:n.FirstName,LastName:n.LastName,Organization:n.Organization,Country:n.Country}};store.set(this.getStoreId(),i)},getStoreId:function(){return"user-show_"+this.userInfo.get("Email")},getLayoutView:function(){var n=this.glob("profile/title-user");return new t.UserComponent.LayoutView({model:this.updateModel,userInfo:this.userInfo,countryCollection:this.countryCollection,filialsCollection:this.filialsCollection,features:{fileUploadAgreement:!1,userPermissions:!0,deleteCompany:!1,title:n}})}})});App.module("UserApp",function(n,t,i,r){"use strict";var u=t.module("Localization.Loader"),f=t.Routing.RouteController.extend({controllerMenuRoute:"user/list",list:{action:function(){this.promiseWrapper(u.load("user")).then(function(){new n.List.Controller({region:t.mainRegion})})},exclusiveCancellingScope:t.tabLoadingCancellingScope},show:{action:function(i){this.promiseWrapper(u.load("user")).then(function(){var r=t.request("auth:entity").get("username")||"";r.toLowerCase()===i.toLowerCase()?t.execute("profile:show"):new n.Show.Controller({region:t.mainRegion,username:i})})},exclusiveCancellingScope:t.tabLoadingCancellingScope}});n.Router=r.AppRouter.extend({appRoutes:{"user/list":"list","user/show/:username/":"show"}});t.addInitializer(function(){return n.RouteController=new f,new n.Router({controller:n.RouteController})});t.commands.setHandler("user:list",function(){t.navigate("user/list");n.RouteController.executeAction("list")});t.commands.setHandler("user:show",function(r){if(r.newTab){var u=i.history.location.origin||window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:""),f=u+"/user/show/"+r.login+"/";window.open(f,"_blank");return}t.navigate("user/show/"+r.login+"/");n.RouteController.executeAction("show",r.login)})});App.module("Start",function(n,t,i,r,u,f){"use strict";n.loadLocalization=function(){var i=t.request("settings:entity"),n=i.get("language").value,s=t.request("auth:entity"),r=u.Deferred(),e,o;return s.isAuthorized()&&!StorageQueue.check("lang-changed")?(e=t.AuthInfo.get("language"),e?(n=n&&e,o=i.findLang(n),n=o.value,i.set("language",o,{silent:!0}),i.saveLang(),t.AuthInfo.set({language:n}),r.resolve(n)):($logger.warn("Start.Localization","Token doesn't contain user language information. User: "+t.AuthInfo.get("email")),t.request("profile:entity",{success:function(t){var f=t.get("Language"),u;n=f||n;u=i.findLang(n);i.set("language",u,{silent:!0});i.saveLang();r.resolve(n)},error:function(){r.resolve(n)}}))):(StorageQueue.del("lang-changed"),r.resolve(n)),u.when(r.promise()).then(function(n){return u.when(u.get(t.localization.InitialLanguageAgnosticBundleUrl),u.get(t.localization.InitialLanguageBundles[n]))}).then(function(){return f.flatten(f.unzip(arguments)[0])}).then(Globalize.load).then(function(){Globalize.locale(n)})}});App.module("Start",function(n,t,i){"use strict";var r=t.module("Settings");n.initializeLogging=function(){var n=r.logging;t.enableLogging?n.uri="/api/Logging/log":n.silent=!0;$logger.init(n);$logger.addTrackingBuilder(function(){return{clientSessionId:t.ClientSession.getId(),url:i.history.location.pathname,login:t.AuthInfo.get("username")}})}});App.module("Start",function(n,t,i,r,u,f){"use strict";n.addSettings=function(n){f.extend(t,n)}});App.module("Start",function(n,t,i,r,u){"use strict";var f=t.module("Entities.Validation"),e=null,o=function(n){f.addDtoServerSettings(JSON.parse(n));f.isStsValidationLoaded=!0},s=function(){f.isStsValidationLoaded=!1;$logger.warn("Error while trying to load sts validation")};n.AddDtoValidationSettings=function(n){f.addDtoServerSettings(n)};n.AddFileValidationSettings=function(n){f.addFileServerSettings(n)};n.loadStsValidationSettings=function(){var n;return e||(n=u.get(t.stsServer.getUrl()+"/api/Validation/Rules").done(o).fail(s).always(function(){e=null}),e=u.when(n)),e}}),function(n){n.request("settings:set:supportedLanguages",[{value:"en"},{value:"ja"},{value:"ru"},{value:"it"},{value:"es"},{value:"pl"},{value:"fr"},{value:"de"},{value:"pt"}])}(App);BatchRequestManager.prototype.send=sendFn;BatchRequestManager.prototype.addRequest=addRequestFn