(function(h,j,d,ma,y,i){function o(){this.sBase="#/";this.sCdnStaticDomain=f.settingsGet("CdnStaticDomain");this.sVersion=f.settingsGet("Version");this.sSpecSuffix=f.settingsGet("AuthAccountHash")||"0";this.sServer="./?";this.sCdnStaticDomain=""===this.sCdnStaticDomain?this.sCdnStaticDomain:"/"===this.sCdnStaticDomain.substr(-1)?this.sCdnStaticDomain:this.sCdnStaticDomain+"/"}function L(){}function M(){}function N(){var a=i.find([M,L],function(a){return a.supported()});a&&(this.oDriver=new a)}function na(){}
function t(a,b){this.sPosition=c.pString(a);this.sTemplate=c.pString(b);this.viewModelName="";this.viewModelVisibility=d.observable(!1);"Popups"===this.sPosition&&(this.modalVisibility=d.observable(!1));this.viewModelDom=null}function w(a,b){this.sScreenName=a;this.aViewModels=c.isArray(b)?b:[]}function m(){this.sDefaultScreenName="";this.oScreens={};this.oCurrentScreen=this.oBoot=null;this.popupVisibility=d.observable(!1);this.popupVisibility.subscribe(function(a){f&&f.popupVisibility(a)})}function r(a,
b){this.email=a||"";this.name=b||"";this.privateType=null;this.clearDuplicateName()}function B(){t.call(this,"Popups","PopupsDomain");this.edit=d.observable(!1);this.saving=d.observable(!1);this.savingError=d.observable("");this.testing=d.observable(!1);this.testingDone=d.observable(!1);this.testingImapError=d.observable(!1);this.testingSmtpError=d.observable(!1);this.imapServerFocus=d.observable(!1);this.smtpServerFocus=d.observable(!1);this.name=d.observable("");this.imapServer=d.observable("");
this.imapPort=d.observable(l.Values.ImapDefaulPort);this.imapSecure=d.observable(g.ServerSecure.None);this.smtpServer=d.observable("");this.smtpPort=d.observable(l.Values.SmtpDefaulPort);this.smtpSecure=d.observable(g.ServerSecure.None);this.smtpAuth=d.observable(!0);this.imapServerFocus.subscribe(function(a){a&&(""!==this.name()&&""===this.imapServer())&&this.imapServer(this.name())},this);this.smtpServerFocus.subscribe(function(a){a&&(""!==this.imapServer()&&""===this.smtpServer())&&this.smtpServer(this.imapServer())},
this);this.headerText=d.computed(function(){var a=this.name();return this.edit()?'Edit Domain "'+a+'"':"Add Domain"+(""===a?"":' "'+a+'"')},this);this.domainIsComputed=d.computed(function(){return""!==this.name()&&""!==this.imapServer()&&""!==this.imapPort()&&""!==this.smtpServer()&&""!==this.smtpPort()},this);this.canBeTested=d.computed(function(){return!this.testing()&&this.domainIsComputed()},this);this.canBeSaved=d.computed(function(){return!this.saving()&&this.domainIsComputed()},this);this.createOrAddCommand=
c.createCommand(this,function(){this.saving(!0);f.remote().createOrUpdateDomain(i.bind(this.onDomainCreateOrSaveResponse,this),!this.edit(),this.name(),this.imapServer(),this.imapPort(),this.imapSecure(),this.smtpServer(),this.smtpPort(),this.smtpSecure(),this.smtpAuth())},this.canBeSaved);this.testConnectionCommand=c.createCommand(this,function(){this.testingDone(!1);this.testingImapError(!1);this.testingSmtpError(!1);this.testing(!0);f.remote().testConnectionForDomain(i.bind(this.onTestConnectionResponse,
this),this.imapServer(),this.imapPort(),this.imapSecure(),this.smtpServer(),this.smtpPort(),this.smtpSecure(),this.smtpAuth())},this.canBeTested)}function O(){t.call(this,"Popups","PopupsPlugin");this.onPluginSettingsUpdateResponse=i.bind(this.onPluginSettingsUpdateResponse,this);this.saveError=d.observable("");this.name=d.observable("");this.readme=d.observable("");this.configures=d.observableArray([]);this.hasReadme=d.computed(function(){return""!==this.readme()},this);this.hasConfiguration=d.computed(function(){return 0<
this.configures().length},this);this.saveCommand=c.createCommand(this,function(){var a={};a.Name=this.name();i.each(this.configures(),function(b){var e=b.value();if(!1===e||!0===e)e=e?"1":"0";a["_"+b.Name]=e},this);this.saveError("");f.remote().pluginSettingsUpdate(this.onPluginSettingsUpdateResponse,a)},this.hasConfiguration)}function P(){t.call(this,"Popups","PopupsActivate");this.domain=d.observable("");this.key=d.observable("");this.key.focus=d.observable(!1);this.activationSuccessed=d.observable(!1);
this.licenseTrigger=f.data().licenseTrigger;this.activateProcess=d.observable(!1);this.activateText=d.observable("");this.activateText.isError=d.observable(!1);this.key.subscribe(function(){this.activateText("");this.activateText.isError(!1)},this);this.activationSuccessed.subscribe(function(a){a&&this.licenseTrigger(!this.licenseTrigger())},this)}function Q(){t.call(this,"Right","AdminLogin");this.login=d.observable("");this.password=d.observable("");this.loginError=d.observable(!1);this.passwordError=
d.observable(!1);this.loginFocus=d.observable(!1);this.login.subscribe(function(){this.loginError(!1)},this);this.password.subscribe(function(){this.passwordError(!1)},this);this.submitRequest=d.observable(!1);this.submitError=d.observable("");this.submitCommand=c.createCommand(this,function(){this.loginError(""===c.trim(this.login()));this.passwordError(""===c.trim(this.password()));if(this.loginError()||this.passwordError())return!1;this.submitRequest(!0);f.remote().adminLogin(i.bind(function(a,
b){g.StorageResultType.Success===a&&b&&"AdminLogin"===b.Action?b.Result?f.loginAndLogoutReload():b.ErrorCode&&(this.submitRequest(!1),this.submitError(c.getNotification(b.ErrorCode))):(this.submitRequest(!1),this.submitError(c.getNotification(g.Notification.UnknownError)))},this),this.login(),this.password());return!0},function(){return!this.submitRequest()})}function X(a){t.call(this,"Left","AdminMenu");this.menu=a.menu}function Y(){t.call(this,"Right","AdminPane");this.adminDomain=d.observable(f.settingsGet("AdminDomain"))}
function oa(){var a=f.data();this.mainLanguage=a.mainLanguage;this.mainTheme=a.mainTheme;this.language=a.language;this.theme=a.theme;this.allowCustomTheme=a.allowCustomTheme;this.allowAdditionalAccounts=a.allowAdditionalAccounts;this.title=d.observable(f.settingsGet("Title"));this.version=f.settingsGet("Version");this.themesOptions=d.computed(function(){return i.map(a.themes(),function(a){return{optValue:a,optText:c.convertThemeName(a)}})});this.languagesOptions=d.computed(function(){return i.map(a.languages(),
function(a){return{optValue:a,optText:c.convertLangName(a)}})});this.contactsSupported=f.settingsGet("ContactsIsSupported");this.titleTrigger=d.observable(g.SaveSettingsStep.Idle);this.languageTrigger=d.observable(g.SaveSettingsStep.Idle);this.themeTrigger=d.observable(g.SaveSettingsStep.Idle)}function z(){var a=f.data();this.domains=a.domains;this.domainsLoading=a.domainsLoading;this.iDomainForDeletionTimeout=0;this.visibility=d.computed(function(){return a.domainsLoading()?"visible":"hidden"},this);
this.domainForDeletion=d.observable(null).extend({toggleSubscribe:[this,function(a){a&&a.deleteAccess(!1)},function(a){a&&(a.deleteAccess(!0),this.startDomainForDeletionTimeout())}]})}function J(){this.licensing=f.data().licensing;this.licensingProcess=f.data().licensingProcess;this.licenseValid=f.data().licenseValid;this.licenseExpired=f.data().licenseExpired;this.licenseError=f.data().licenseError;this.licenseTrigger=f.data().licenseTrigger;this.adminDomain=d.observable("");this.subscriptionEnabled=
d.observable(!!f.settingsGet("SubscriptionEnabled"));this.licenseTrigger.subscribe(function(){this.subscriptionEnabled()&&f.reloadLicensing(!0)},this)}function K(){this.csrfProtection=d.observable(!!f.settingsGet("UseTokenProtection"));this.adminLogin=d.observable(f.settingsGet("AdminLogin"));this.adminPassword=d.observable("");this.adminPasswordNew=d.observable("");this.adminPasswordUpdateError=d.observable(!1);this.adminPasswordUpdateSuccess=d.observable(!1);this.adminPassword.subscribe(function(){this.adminPasswordUpdateError(!1);
this.adminPasswordUpdateSuccess(!1)},this);this.adminPasswordNew.subscribe(function(){this.adminPasswordUpdateError(!1);this.adminPasswordUpdateSuccess(!1)},this);this.onNewAdminPasswordResponse=i.bind(this.onNewAdminPasswordResponse,this);this.saveNewAdminPasswordCommand=c.createCommand(this,function(){this.adminPasswordUpdateError(!1);this.adminPasswordUpdateSuccess(!1);f.remote().saveNewAdminPassword(this.onNewAdminPasswordResponse,{Password:this.adminPassword(),NewPassword:this.adminPasswordNew()})},
function(){return""!==this.adminPassword()&&""!==this.adminPasswordNew()})}function pa(){var a=f.data();this.googleEnable=a.googleEnable;this.googleClientID=a.googleClientID;this.googleClientSecret=a.googleClientSecret;this.googleTrigger1=d.observable(g.SaveSettingsStep.Idle);this.googleTrigger2=d.observable(g.SaveSettingsStep.Idle);this.facebookEnable=a.facebookEnable;this.facebookAppID=a.facebookAppID;this.facebookAppSecret=a.facebookAppSecret;this.facebookTrigger1=d.observable(g.SaveSettingsStep.Idle);
this.facebookTrigger2=d.observable(g.SaveSettingsStep.Idle);this.twitterEnable=a.twitterEnable;this.twitterConsumerKey=a.twitterConsumerKey;this.twitterConsumerSecret=a.twitterConsumerSecret;this.twitterTrigger1=d.observable(g.SaveSettingsStep.Idle);this.twitterTrigger2=d.observable(g.SaveSettingsStep.Idle);this.dropboxEnable=a.dropboxEnable;this.dropboxApiKey=a.dropboxApiKey;this.dropboxTrigger1=d.observable(g.SaveSettingsStep.Idle)}function C(){var a=f.data();this.enabledPlugins=d.observable(!!f.settingsGet("EnabledPlugins"));
this.pluginsError=d.observable("");this.plugins=a.plugins;this.pluginsLoading=a.pluginsLoading;this.visibility=d.computed(function(){return a.pluginsLoading()?"visible":"hidden"},this);this.onPluginLoadRequest=i.bind(this.onPluginLoadRequest,this);this.onPluginDisableRequest=i.bind(this.onPluginDisableRequest,this)}function G(){var a=f.data();this.packagesError=d.observable("");this.packages=a.packages;this.packagesLoading=a.packagesLoading;this.packagesReal=a.packagesReal;this.packagesMainUpdatable=
a.packagesMainUpdatable;this.packagesCurrent=d.computed(function(){return i.filter(this.packages(),function(a){return a&&""!==a.installed&&!a.compare})},this);this.packagesAvailableForUpdate=d.computed(function(){return i.filter(this.packages(),function(a){return a&&""!==a.installed&&!!a.compare})},this);this.packagesAvailableForInstallation=d.computed(function(){return i.filter(this.packages(),function(a){return a&&""===a.installed})},this);this.visibility=d.computed(function(){return a.packagesLoading()?
"visible":"hidden"},this)}function Z(){c.initDataConstructorBySettings(this)}function aa(){c.initDataConstructorBySettings(this);this.domainsLoading=d.observable(!1).extend({throttle:100});this.domains=d.observableArray([]);this.pluginsLoading=d.observable(!1).extend({throttle:100});this.plugins=d.observableArray([]);this.packagesReal=d.observable(!0);this.packagesMainUpdatable=d.observable(!0);this.packagesLoading=d.observable(!1).extend({throttle:100});this.packages=d.observableArray([]);this.licensing=
d.observable(!1);this.licensingProcess=d.observable(!1);this.licenseValid=d.observable(!1);this.licenseExpired=d.observable(0);this.licenseError=d.observable("");this.licenseTrigger=d.observable(!1)}function D(){this.oRequests={}}function p(){this.oRequests={};this.oRequests={}}function A(){this.oEmailsPicsHashes={};this.oServices={}}function qa(){A.call(this)}function H(a){w.call(this,"settings",a);this.menu=d.observableArray([]);this.oCurrentSubScreen=null}function ba(){w.call(this,"login",[Q])}
function ca(){H.call(this,[X,Y])}function u(){this.oLocal=this.oLink=this.oPlugins=this.oSettings=null;this.isLocalAutocomplete=!0;this.popupVisibility=d.observable(!1);this.iframe=j('').appendTo("body");E.on("error",function(a){f&&(a&&a.originalEvent&&a.originalEvent.message&&-1===c.inArray(a.originalEvent.message,["Uncaught Error: Error calling method on NPObject."]))&&(c.log(""+a.originalEvent.message+" ("+a.originalEvent.filename+":"+a.originalEvent.lineno+
")"),f.remote().jsError(c.emptyFunction,a.originalEvent.message,a.originalEvent.filename,a.originalEvent.lineno))})}function v(){u.call(this);this.oCache=this.oRemote=this.oData=null}var l={},g={},k={},c={},n={},R,da,F,ea,I,fa=d.observable(!0),S=d.observable(!0),s=null,T=h.rainloopAppData||{},ga=h.rainloopI18N||{},ha=j("html"),E=j(h),ra=j(h.document),U=[],ia=[],ja=[],V=h.Notification&&h.Notification.requestPermission?h.Notification:null,f=null;R=0;da=!1;F=(navigator.userAgent||"").toLowerCase();ea=
-1/g,">").replace(/"/g,""").replace(/'/g,"'"):""};c.splitPlainText=function(a,b){for(var e="",q="",d=a,f=0,g=0,b=c.isUnd(b)?100:b;d.length>b;)q=d.substring(0,b),f=q.lastIndexOf(" "),g=q.lastIndexOf("\n"),-1!==g&&(f=g),-1===f&&(f=b),e+=q.substring(0,f)+"\n",d=d.substring(f+1);return e+d};var W={};c.timeOutAction=function(a,b,e){c.isUnd(W[a])&&(W[a]=0);h.clearTimeout(W[a]);W[a]=h.setTimeout(b,e)};var la={};c.timeOutActionSecond=function(a,b,e){la[a]||
(la[a]=h.setTimeout(function(){b();la[a]=0},e))};var x=!1;c.audio=function(a,b){if(!1===x)if(ea)x=null;else{var e=!1,c=!1,d=h.Audio?new h.Audio:null;d&&d.canPlayType&&d.play?((e=""!==d.canPlayType('audio/mpeg; codecs="mp3"'))||(c=""!==d.canPlayType('audio/ogg; codecs="vorbis"')),e||c?(x=d,x.preload="none",x.loop=!1,x.autoplay=!1,x.muted=!1,x.src=e?a:b):x=null):x=null}return x};c.hos=function(a,b){return a&&Object.hasOwnProperty?Object.hasOwnProperty.call(a,b):!1};c.i18n=function(a,b,e){var d="",a=
c.isUnd(ga[a])?c.isUnd(e)?a:e:ga[a];if(!c.isUnd(b)&&!c.isNull(b))for(d in b)c.hos(b,d)&&(a=a.replace("%"+d+"%",b[d]));return a};c.i18nToNode=function(a){i.defer(function(){j(".i18n",a).each(function(){var a=j(this),e="";(e=a.data("i18n-text"))?a.text(c.i18n(e)):((e=a.data("i18n-html"))&&a.html(c.i18n(e)),(e=a.data("i18n-placeholder"))&&a.attr("placeholder",c.i18n(e)))})})};c.i18nToDoc=function(){h.rainloopI18N&&(ga=h.rainloopI18N||{},c.i18nToNode(ra),S(!S()));h.rainloopI18N={}};c.initOnStartOrLangChange=
function(a,b,e){a&&a.call(b);e?S.subscribe(function(){a&&a.call(b);e.call(b)}):a&&S.subscribe(a,b)};c.inFocus=function(){var a=document.activeElement;return a&&("INPUT"===a.tagName||"TEXTAREA"===a.tagName||"IFRAME"===a.tagName||"DIV"===a.tagName&&"editorHtmlArea"===a.className&&a.contentEditable)};c.removeInFocus=function(){if(document&&document.activeElement&&document.activeElement.blur){var a=j(document.activeElement);(a.is("input")||a.is("textarea"))&&document.activeElement.blur()}};c.removeSelection=
function(){if(h&&h.getSelection){var a=h.getSelection();a&&a.removeAllRanges&&a.removeAllRanges()}else document&&(document.selection&&document.selection.empty)&&document.selection.empty()};c.replySubjectAdd=function(a,b){var e=null,d=c.trim(b);null!==(e=(new h.RegExp("^"+a+"[\\s]?\\:(.*)$","gi")).exec(b))&&!c.isUnd(e[1])?d=a+"[2]: "+e[1]:null!==(e=(new h.RegExp("^("+a+"[\\s]?[\\[\\(]?)([\\d]+)([\\]\\)]?[\\s]?\\:.*)$","gi")).exec(b))&&!c.isUnd(e[1])&&!c.isUnd(e[2])&&!c.isUnd(e[3])?(c.pInt(e[2]),d=
e[1]+(c.pInt(e[2])+1)+e[3]):d=a+": "+b;return d};c.roundNumber=function(a,b){return Math.round(a*Math.pow(10,b))/Math.pow(10,b)};c.friendlySize=function(a){a=c.pInt(a);return 1073741824<=a?c.roundNumber(a/1073741824,1)+"GB":1048576<=a?c.roundNumber(a/1048576,1)+"MB":1024<=a?c.roundNumber(a/1024,0)+"KB":a+"B"};c.log=function(a){h.console&&h.console.log&&h.console.log(a)};c.getNotification=function(a){a=c.pInt(a);return c.isUnd(k[a])?"":k[a]};c.initNotificationLanguage=function(){k[g.Notification.InvalidToken]=
c.i18n("NOTIFICATIONS/INVALID_TOKEN");k[g.Notification.AuthError]=c.i18n("NOTIFICATIONS/AUTH_ERROR");k[g.Notification.AccessError]=c.i18n("NOTIFICATIONS/ACCESS_ERROR");k[g.Notification.ConnectionError]=c.i18n("NOTIFICATIONS/CONNECTION_ERROR");k[g.Notification.CaptchaError]=c.i18n("NOTIFICATIONS/CAPTCHA_ERROR");k[g.Notification.SocialFacebookLoginAccessDisable]=c.i18n("NOTIFICATIONS/SOCIAL_FACEBOOK_LOGIN_ACCESS_DISABLE");k[g.Notification.SocialTwitterLoginAccessDisable]=c.i18n("NOTIFICATIONS/SOCIAL_TWITTER_LOGIN_ACCESS_DISABLE");
k[g.Notification.SocialGoogleLoginAccessDisable]=c.i18n("NOTIFICATIONS/SOCIAL_GOOGLE_LOGIN_ACCESS_DISABLE");k[g.Notification.DomainNotAllowed]=c.i18n("NOTIFICATIONS/DOMAIN_NOT_ALLOWED");k[g.Notification.CantGetMessageList]=c.i18n("NOTIFICATIONS/CANT_GET_MESSAGE_LIST");k[g.Notification.CantGetMessage]=c.i18n("NOTIFICATIONS/CANT_GET_MESSAGE");k[g.Notification.CantDeleteMessage]=c.i18n("NOTIFICATIONS/CANT_DELETE_MESSAGE");k[g.Notification.CantMoveMessage]=c.i18n("NOTIFICATIONS/CANT_MOVE_MESSAGE");k[g.Notification.CantSaveMessage]=
c.i18n("NOTIFICATIONS/CANT_SAVE_MESSAGE");k[g.Notification.CantSendMessage]=c.i18n("NOTIFICATIONS/CANT_SEND_MESSAGE");k[g.Notification.InvalidRecipients]=c.i18n("NOTIFICATIONS/INVALID_RECIPIENTS");k[g.Notification.CantCreateFolder]=c.i18n("NOTIFICATIONS/CANT_CREATE_FOLDER");k[g.Notification.CantRenameFolder]=c.i18n("NOTIFICATIONS/CANT_RENAME_FOLDER");k[g.Notification.CantDeleteFolder]=c.i18n("NOTIFICATIONS/CANT_DELETE_FOLDER");k[g.Notification.CantDeleteNonEmptyFolder]=c.i18n("NOTIFICATIONS/CANT_DELETE_NON_EMPTY_FOLDER");
k[g.Notification.CantSubscribeFolder]=c.i18n("NOTIFICATIONS/CANT_SUBSCRIBE_FOLDER");k[g.Notification.CantUnsubscribeFolder]=c.i18n("NOTIFICATIONS/CANT_UNSUBSCRIBE_FOLDER");k[g.Notification.CantSaveSettings]=c.i18n("NOTIFICATIONS/CANT_SAVE_SETTINGS");k[g.Notification.CantSavePluginSettings]=c.i18n("NOTIFICATIONS/CANT_SAVE_PLUGIN_SETTINGS");k[g.Notification.DomainAlreadyExists]=c.i18n("NOTIFICATIONS/DOMAIN_ALREADY_EXISTS");k[g.Notification.CantInstallPackage]=c.i18n("NOTIFICATIONS/CANT_INSTALL_PACKAGE");
k[g.Notification.CantDeletePackage]=c.i18n("NOTIFICATIONS/CANT_DELETE_PACKAGE");k[g.Notification.InvalidPluginPackage]=c.i18n("NOTIFICATIONS/INVALID_PLUGIN_PACKAGE");k[g.Notification.UnsupportedPluginPackage]=c.i18n("NOTIFICATIONS/UNSUPPORTED_PLUGIN_PACKAGE");k[g.Notification.LicensingServerIsUnavailable]=c.i18n("NOTIFICATIONS/LICENSING_SERVER_IS_UNAVAILABLE");k[g.Notification.LicensingExpired]=c.i18n("NOTIFICATIONS/LICENSING_EXPIRED");k[g.Notification.LicensingBanned]=c.i18n("NOTIFICATIONS/LICENSING_BANNED");
k[g.Notification.DemoSendMessageError]=c.i18n("NOTIFICATIONS/DEMO_SEND_MESSAGE_ERROR");k[g.Notification.AccountAlreadyExists]=c.i18n("NOTIFICATIONS/ACCOUNT_ALREADY_EXISTS");k[g.Notification.MailServerError]=c.i18n("NOTIFICATIONS/MAIL_SERVER_ERROR");k[g.Notification.UnknownError]=c.i18n("NOTIFICATIONS/UNKNOWN_ERROR")};c.getUploadErrorDescByCode=function(a){var b="";switch(c.pInt(a)){case g.UploadErrorCode.FileIsTooBig:b=c.i18n("UPLOAD/ERROR_FILE_IS_TOO_BIG");break;case g.UploadErrorCode.FilePartiallyUploaded:b=
c.i18n("UPLOAD/ERROR_FILE_PARTIALLY_UPLOADED");break;case g.UploadErrorCode.FileNoUploaded:b=c.i18n("UPLOAD/ERROR_NO_FILE_UPLOADED");break;case g.UploadErrorCode.MissingTempFolder:b=c.i18n("UPLOAD/ERROR_MISSING_TEMP_FOLDER");break;case g.UploadErrorCode.FileOnSaveingError:b=c.i18n("UPLOAD/ERROR_ON_SAVING_FILE");break;case g.UploadErrorCode.FileType:b=c.i18n("UPLOAD/ERROR_FILE_TYPE");break;default:b=c.i18n("UPLOAD/ERROR_UNKNOWN")}return b};c.killCtrlAandS=function(a){if(a=a||h.event){var b=a.target||
a.srcElement,e=a.keyCode||a.which;if(a.ctrlKey&&e===g.EventKeyCode.S)a.preventDefault();else if((!b||!b.tagName||!b.tagName.match(/INPUT|TEXTAREA/i))&&a.ctrlKey&&e===g.EventKeyCode.A)h.getSelection?h.getSelection().removeAllRanges():h.document.selection&&h.document.selection.clear&&h.document.selection.clear(),a.preventDefault()}};c.createCommand=function(a,b,e){var q=b?function(){q.canExecute&&q.canExecute()&&b.apply(a,Array.prototype.slice.call(arguments));return!1}:function(){};q.enabled=d.observable(!0);
e=c.isUnd(e)?!0:e;q.canExecute=c.isFunc(e)?d.computed(function(){return q.enabled()&&e.call(a)}):d.computed(function(){return q.enabled()&&!!e});return q};c.initDataConstructorBySettings=function(a){a.ignoreFolderSubscribe=d.observable(!1);a.editorDefaultType=d.observable(g.EditorDefaultType.Html);a.showImages=d.observable(!1);a.showAnimation=d.observable(!1);a.desktopNotifications=d.observable(!1);a.useThreads=d.observable(!0);a.replySameFolder=d.observable(!0);a.usePreviewPane=d.observable(!0);
a.useCheckboxesInList=d.observable(!0);a.showAnimation.subscribe(function(a){I?ha.removeClass("rl-anim").addClass("no-rl-anim"):ha.toggleClass("rl-anim",a).toggleClass("no-rl-anim",!a)});a.showAnimation.valueHasMutated();a.desktopNotificationsPermisions=d.computed(function(){a.desktopNotifications();var b=g.DesctopNotifications.NotSupported;if(V&&V.permission)switch(V.permission.toLowerCase()){case "granted":b=g.DesctopNotifications.Allowed;break;case "denied":b=g.DesctopNotifications.Denied;break;
case "default":b=g.DesctopNotifications.NotAllowed}else h.webkitNotifications&&h.webkitNotifications.checkPermission&&(b=h.webkitNotifications.checkPermission());return b});a.useDesktopNotifications=d.computed({read:function(){return a.desktopNotifications()&&g.DesctopNotifications.Allowed===a.desktopNotificationsPermisions()},write:function(b){b?(b=a.desktopNotificationsPermisions(),g.DesctopNotifications.Allowed===b?a.desktopNotifications(!0):g.DesctopNotifications.NotAllowed===b?V.requestPermission(function(){a.desktopNotifications.valueHasMutated();
h.console.log(a.desktopNotificationsPermisions());g.DesctopNotifications.Allowed===a.desktopNotificationsPermisions()?a.desktopNotifications()?a.desktopNotifications.valueHasMutated():a.desktopNotifications(!0):a.desktopNotifications()?a.desktopNotifications(!1):a.desktopNotifications.valueHasMutated()}):a.desktopNotifications(!1)):a.desktopNotifications(!1)}});a.language=d.observable("");a.languages=d.observableArray([]);a.mainLanguage=d.computed({read:a.language,write:function(b){b!==a.language()?
-1=a.diff(e,"hours")?d:a.format("L")===e.format("L")?c.i18n("MESSAGE_LIST/TODAY_AT",{TIME:e.format("LT")}):a.clone().subtract("days",
1).format("L")===e.format("L")?c.i18n("MESSAGE_LIST/YESTERDAY_IN",{TIME:e.format("LT")}):a.year()===e.year()?e.format("D MMM."):e.format("LL")},a)};c.isFolderExpanded=function(a){var b=f.local().get(g.ClientSideKeyName.ExpandedFolders);return i.isArray(b)&&-1!==i.indexOf(b,a)};c.setExpandedFolder=function(a,b){var e=f.local().get(g.ClientSideKeyName.ExpandedFolders);i.isArray(e)||(e=[]);b?(e.push(a),e=i.uniq(e)):e=i.without(e,a);f.local().set(g.ClientSideKeyName.ExpandedFolders,e)};c.initLayoutResizer=
function(a,b,e,c){var d=j(a),ka=j(b),h=j(e),a=f.local().get(g.ClientSideKeyName.MailBoxListSize),k=function(a,b,e){if(b||e)a=h.width(),b=b?100*(b.size.width/a):null,null===b&&e&&(b=100*(d.width()/a)),null!==b&&(d.css({width:"",height:"",right:""+(100-b)+"%"}),ka.css({width:"",height:"",left:""+b+"%"}))};a&&d.width(a);d.resizable({minWidth:350,maxWidth:h.width()-250,handles:"e",resize:k,stop:k});k(null,null,!0);E.resize(i.throttle(function(a,b){if(c&&c()){var e=h.width();d.resizable("option","maxWidth",
e-250);b&&(b.size&&b.size.width)&&f.local().set(g.ClientSideKeyName.MailBoxListSize,b.size.width);k(null,null,!0)}},400))};c.initBlockquoteSwitcher=function(a){if(a){var b=j("blockquote:not(.rl-bq-switcher)",a).filter(function(){return 0===j(this).parent().closest("blockquote",a).length});b&&0').insertBefore(a).click(function(){a.toggleClass("hidden-bq");
c.windowResize()}).after("
").before("
")})}};c.removeBlockquoteSwitcher=function(a){a&&(j(a).find("blockquote.rl-bq-switcher").each(function(){j(this).removeClass("rl-bq-switcher hidden-bq")}),j(a).find(".rlBlockquoteSwitcher").each(function(){j(this).remove()}))};c.extendAsViewModel=function(a,b){b&&(b.__name=a,n.regViewModelHook(a,b),i.extend(b.prototype,t.prototype))};c.addSettingsViewModel=function(a,b,e,c,d){a.__rlSettingsData={Label:e,Template:b,Route:c,IsDefault:!!d};U.push(a)};
c.removeSettingsViewModel=function(a){ia.push(a)};c.disableSettingsViewModel=function(a){ja.push(a)};c.convertThemeName=function(a){return c.trim(a.replace(/[^a-zA-Z]/g," ").replace(/([A-Z])/g," $1").replace(/[\s]+/g," "))};c.convertLangName=function(a){return c.i18n("LANGS_NAMES/LANG_"+a.toUpperCase().replace(/[^a-zA-Z0-9]+/,"_"),null,a)};c.fakeMd5=function(a){for(var b="",a=c.isUnd(a)?32:c.pInt(a);b.length/g,">").replace(/")};c.draggeblePlace=function(){return j('
').appendTo("#rl-hidden")};c.defautOptionsAfterRender=function(a,b){b&&!c.isUnd(b.disable)&&d.applyBindingsToNode(a,{disable:b.disable},b)};c.windowPopupKnockout=function(a,b,e,d){var f=null,g=
h.open(""),i="__OpenerApplyBindingsUid"+c.fakeMd5()+"__",k=j("#"+b);h[i]=function(){if(g&&g.document.body&&k&&k[0]){var b=j(g.document.body);j("#rl-content",b).html(k.html());j("html",g.document).addClass("external "+j("html").attr("class"));c.i18nToNode(b);m.prototype.applyExternal(a,j("#rl-content",b)[0]);h[i]=null;d(g)}};g.document.open();g.document.write(''+
c.encodeHtml(e)+'');g.document.close();f=g.document.createElement("script");f.innerHTML="if(window&&window.opener&&window.opener['"+i+"']){window.opener['"+i+"']();window.opener['"+i+"']=null}";g.document.getElementsByTagName("head")[0].appendChild(f)};c.settingsSaveHelperFunction=function(a,b,e,d){e=e||null;d=c.isUnd(d)?1E3:c.pInt(d);return function(c,f,h,j,ta){b.call(e,f&&f.Result?g.SaveSettingsStep.TrueResult:g.SaveSettingsStep.FalseResult);
a&&a.call(e,c,f,h,j,ta);i.delay(function(){b.call(e,g.SaveSettingsStep.Idle)},d)}};c.settingsSaveHelperSimpleFunction=function(a,b){return c.settingsSaveHelperFunction(null,a,b,1E3)};c.resizeAndCrop=function(a,b,e){var c=new Image;c.onload=function(){var a=[0,0],c=document.createElement("canvas"),d=c.getContext("2d");c.width=b;c.height=b;a=this.width>this.height?[this.width-this.height,0]:[0,this.height-this.width];d.fillStyle="#fff";d.fillRect(0,0,b,b);d.drawImage(this,a[0]/2,a[1]/2,this.width-a[0],
this.height-a[1],0,0,b,b);e(c.toDataURL("image/jpeg"))};c.src=a};d.bindingHandlers.tooltip={init:function(a,b){if(!I){var e=j(a).data("tooltip-class")||"";j(a).tooltip({delay:{show:500,hide:100},html:!0,trigger:"hover",title:function(){return''+c.i18n(d.utils.unwrapObservable(b()))+""}})}}};d.bindingHandlers.tooltip2={init:function(a,b){var c=j(a).data("tooltip-class")||"";j(a).tooltip({delay:{show:500,hide:100},html:!0,title:function(){return''+b()()+""}})}};d.bindingHandlers.popover={init:function(a,b){var e=d.utils.unwrapObservable(b());j(a).popover({trigger:e[2]||"click",placement:e[3]||"right",title:function(){return c.i18n(e[0]||"")},content:function(){return c.i18n(e[1]||"")}})}};d.bindingHandlers.resizecrop={init:function(a){j(a).addClass("resizecrop").resizecrop({width:"100",height:"100",wrapperCSS:{"border-radius":"10px"}})},update:function(a,b){b()();j(a).resizecrop({width:"100",height:"100"})}};d.bindingHandlers.onEnter=
{init:function(a,b){j(a).on("keypress",function(c){c&&13===h.parseInt(c.keyCode,10)&&(j(a).trigger("change"),b().call(this))})}};d.bindingHandlers.onEsc={init:function(a,b){j(a).on("keypress",function(c){c&&27===h.parseInt(c.keyCode,10)&&(j(a).trigger("change"),b().call(this))})}};d.bindingHandlers.modal={init:function(a,b){j(a).modal({keyboard:!1,show:d.utils.unwrapObservable(b())}).on("hidden",function(){b()(!1)})},update:function(a,b){var c=d.utils.unwrapObservable(b());j(a).modal(c?"show":"hide");
i.delay(function(){j(a).toggleClass("popup-active",c)},1)}};d.bindingHandlers.i18nInit={init:function(a){c.i18nToNode(a)}};d.bindingHandlers.i18nUpdate={update:function(a,b){d.utils.unwrapObservable(b());c.i18nToNode(a)}};d.bindingHandlers.link={update:function(a,b){j(a).attr("href",d.utils.unwrapObservable(b()))}};d.bindingHandlers.title={update:function(a,b){j(a).attr("title",d.utils.unwrapObservable(b()))}};d.bindingHandlers.textF={init:function(a,b){j(a).text(d.utils.unwrapObservable(b()))}};
d.bindingHandlers.initDom={init:function(a,b){b()(a)}};d.bindingHandlers.initResizeTrigger={init:function(a,b){var c=d.utils.unwrapObservable(b());j(a).css({height:c[1],"min-height":c[1]})},update:function(a,b){var e=d.utils.unwrapObservable(b()),f=c.pInt(e[1]),g=0,g=j(a).offset().top;0').addClass("settings-saved-trigger")},update:function(a,b){var c=d.utils.unwrapObservable(b()),f=j(a);switch(c.toString()){case "1":f.find(".animated,.error").hide().removeClass("visible").end().find(".success").show().addClass("visible");break;case "0":f.find(".animated,.success").hide().removeClass("visible").end().find(".error").show().addClass("visible");
break;case "-2":f.find(".error,.success").hide().removeClass("visible").end().find(".animated").show().addClass("visible");break;default:f.find(".animated").hide().end().find(".error,.success").removeClass("visible")}}};d.bindingHandlers.select2={init:function(a,b){var e=0,g=null,sa=new h.RegExp(/[a-zA-Z0-9\.\-_]+@[a-zA-Z0-9\.\-_]+/),ka=new h.RegExp(/(.+) [<]?([^\s<@]+@[a-zA-Z0-9\.\-_]+)[>]?/),k=function(){return""},l=function(a){f.getAutocomplete(a.term,a.page,function(b,c){a.callback({more:!!c,
results:i.map(b,function(a){var b=a.toLine(!1);return{id:b,text:b,c:a}})})})};j(a).addClass("ko-select2").select2({query:function(a){a&&(0===e?(l(a),e=h.setTimeout(c.emptyFunction,200)):(h.clearInterval(e),e=h.setTimeout(function(){l(a)},200)))},formatSelection:function(a,b){var c=a&&a.c?a.c.select2Selection(b):a.text;if(null!==c)return c},formatResult:function(a,b,c,e){b=a&&a.c?a.c.select2Result(b):"";return""===b?e(a.text):b},createSearchChoice:function(a,b){return 0===b.length&&sa.test(a)?{id:a,
text:a}:null},formatNoMatches:k,formatSearching:function(){return c.i18n("SUGGESTIONS/SEARCHING_DESC")},formatInputTooShort:k,formatSelectionTooBig:k,multiple:!0,tokenSeparators:[",",";"],minimumInputLength:2,selectOnBlur:!1,closeOnSelect:!0,openOnEnter:!1});d.utils.domNodeDisposal.addDisposeCallback(a,function(){j(a).select2("destroy")});j(a).on("change",function(){for(var a=j(this).select2("data"),e=0,d=a.length,f=null,h=[];e").addClass("rl-view-model").addClass("RL-"+e.viewModelTemplate()).hide().attr("data-bind",'template: {name: "'+
e.viewModelTemplate()+'"}, i18nInit: true'),i.appendTo(h),e.viewModelDom=i,a.__dom=i,"Popups"===g&&(e.cancelCommand=e.closeCommand=c.createCommand(e,function(){s.hideScreenPopup(a)})),n.runHook("view-model-pre-build",[a.__name,e,i]),d.applyBindings(e,i[0]),this.delegateRun(e,"onBuild",[i]),n.runHook("view-model-post-build",[a.__name,e,i])):c.log("Cannot find view model position: "+g)}return a?a.__vm:null};m.prototype.applyExternal=function(a,b){a&&b&&d.applyBindings(a,b)};m.prototype.hideScreenPopup=
function(a){a&&(a.__vm&&a.__dom)&&(a.__dom.hide(),a.__vm.modalVisibility(!1),this.delegateRun(a.__vm,"onHide"),this.popupVisibility(!1),i.defer(function(){a.__dom.find(".ko-select2").select2("close")}))};m.prototype.showScreenPopup=function(a,b){a&&(this.buildViewModel(a),a.__vm&&a.__dom&&(a.__dom.show(),a.__vm.modalVisibility(!0),this.delegateRun(a.__vm,"onShow",b||[]),this.popupVisibility(!0),n.runHook("view-model-on-show",[a.__name,a.__vm,b||[]])))};m.prototype.screenOnRoute=function(a,b){var e=
this,d=null,f=null;""===c.pString(a)&&(a=this.sDefaultScreenName);if(""!==a){d=this.screen(a);if(!d&&(d=this.screen(this.sDefaultScreenName)))b=a+"/"+b,a=this.sDefaultScreenName;d&&d.__started&&(d.__builded||(d.__builded=!0,c.isNonEmptyArray(d.viewModels())&&i.each(d.viewModels(),function(a){this.buildViewModel(a,d)},this),this.delegateRun(d,"onBuild")),i.defer(function(){if(e.oCurrentScreen){e.delegateRun(e.oCurrentScreen,"onHide");c.isNonEmptyArray(e.oCurrentScreen.viewModels())&&i.each(e.oCurrentScreen.viewModels(),
function(a){if(a.__vm&&a.__dom&&"Popups"!==a.__vm.viewModelPosition()){a.__dom.hide();a.__vm.viewModelVisibility(false);e.delegateRun(a.__vm,"onHide")}})}e.oCurrentScreen=d;if(e.oCurrentScreen){e.delegateRun(e.oCurrentScreen,"onShow");n.runHook("screen-on-show",[e.oCurrentScreen.screenName(),e.oCurrentScreen]);c.isNonEmptyArray(e.oCurrentScreen.viewModels())&&i.each(e.oCurrentScreen.viewModels(),function(a){if(a.__vm&&a.__dom&&"Popups"!==a.__vm.viewModelPosition()){a.__dom.show();a.__vm.viewModelVisibility(true);
e.delegateRun(a.__vm,"onShow");n.runHook("view-model-on-show",[a.__name,a.__vm])}},e)}(f=d.__cross())&&f.parse(b)}))}};m.prototype.startScreens=function(a){i.each(a,function(a){var c=(a=new a)?a.screenName():"";a&&""!==c&&(""===this.sDefaultScreenName&&(this.sDefaultScreenName=c),this.oScreens[c]=a)},this);i.each(this.oScreens,function(a){a&&(!a.__started&&a.__start)&&(a.__started=!0,a.__start(),n.runHook("screen-pre-start",[a.screenName(),a]),this.delegateRun(a,"onStart"),n.runHook("screen-post-start",
[a.screenName(),a]))},this);a=ma.create();a.addRoute(/^([a-zA-Z0-9\-]*)\/?(.*)$/,i.bind(this.screenOnRoute,this));y.initialized.add(a.parse,a);y.changed.add(a.parse,a);y.init()};m.prototype.setHash=function(a,b){a="#"===a.substr(0,1)?a.substr(1):a;a="/"===a.substr(0,1)?a.substr(1):a;(c.isUnd(b)?0:b)?(y.changed.active=!1,y.setHash(a),y.changed.active=!0):(y.changed.active=!0,y.setHash(a))};m.prototype.bootstart=function(){this.oBoot&&this.oBoot.bootstart&&this.oBoot.bootstart();return this};s=new m;
r.newInstanceFromJson=function(a){var b=new r;return b.initByJson(a)?b:null};r.prototype.name="";r.prototype.email="";r.prototype.privateType=null;r.prototype.validate=function(){return""!==this.name||""!==this.email};r.prototype.hash=function(a){return"#"+(a?"":this.name)+"#"+this.email+"#"};r.prototype.clearDuplicateName=function(){this.name===this.email&&(this.name="")};r.prototype.type=function(){if(null===this.privateType&&(this.email&&"@facebook.com"===this.email.substr(-13)&&(this.privateType=
g.EmailType.Facebook),null===this.privateType))this.privateType=g.EmailType.Default;return this.privateType};r.prototype.search=function(a){return-1<(this.name+" "+this.email).toLowerCase().indexOf(a.toLowerCase())};r.prototype.parse=function(a){var a=c.trim(a),b=/(?:"([^"]+)")? ?(.*?@[^>,]+)>?,? ?/g.exec(a);b?(this.name=b[1]||"",this.email=b[2]||"",this.clearDuplicateName()):/^[^@]+@[^@]+$/.test(a)&&(this.name="",this.email=a)};r.prototype.initByJson=function(a){var b=!1;a&&"Object/Email"===a["@Object"]&&
(this.name=c.trim(a.Name),this.email=c.trim(a.Email),b=""!==this.email,this.clearDuplicateName());return b};r.prototype.toLine=function(a,b){var e="";""!==this.email&&(b=c.isUnd(b)?!1:!!b,a&&""!==this.name?e=b?'")+'" target="_blank" tabindex="-1">'+c.encodeHtml(this.name)+"":this.name:(e=this.email,""!==this.name?e=b?c.encodeHtml('"'+this.name+'" <')+'")+'" target="_blank" tabindex="-1">'+
c.encodeHtml(e)+""+c.encodeHtml(">"):'"'+this.name+'" <'+e+">":b&&(e=''+c.encodeHtml(this.email)+"")));return e};r.prototype.select2Result=function(){var a="",b=f.cache().getUserPic(this.email),a=""!==b?a+('
'):a+('
');g.EmailType.Facebook===this.type()?(a+=""+(0'):a+=""+(0('+this.name+")":this.email);return a+""};r.prototype.select2Selection=function(a){var b="";if(g.EmailType.Facebook===this.type()){if(b=0").text(b).appendTo(a),a.append(''),null}else b=0(new h.Date).getTime()-o);m&&l.oRequests[m]&&(l.oRequests[m].__aborted&&(e="abort"),l.oRequests[m]=null);l.defaultResponse(a,m,e,d,f,b)});m&&(0").addClass("rl-settings-view-model").hide().attr("data-bind",'template: {name: "'+g.__rlSettingsData.Template+'"}, i18nInit: true'),k.appendTo(h),e.data=f.data(),e.viewModelDom=k,e.__rlSettingsData=g.__rlSettingsData,g.__dom=k,g.__builded=!0,g.__vm=e,d.applyBindings(e,k[0]),s.delegateRun(e,"onBuild",[k])):c.log("Cannot find sub settings view model position: SettingsSubScreen"),e&&i.defer(function(){if(b.oCurrentSubScreen){s.delegateRun(b.oCurrentSubScreen,"onHide");b.oCurrentSubScreen.viewModelDom.hide()}b.oCurrentSubScreen=
e;if(b.oCurrentSubScreen){b.oCurrentSubScreen.viewModelDom.show();s.delegateRun(b.oCurrentSubScreen,"onShow");i.each(b.menu(),function(a){a.selected(e&&e.__rlSettingsData&&a.route===e.__rlSettingsData.Route)})}c.windowResize()}))};H.prototype.onBuild=function(){i.each(U,function(a){a&&(a.__rlSettingsData&&!i.find(ia,function(b){return b&&b===a}))&&this.menu.push({route:a.__rlSettingsData.Route,label:a.__rlSettingsData.Label,selected:d.observable(!1),disabled:!!i.find(ja,function(b){return b&&b===
a})})},this)};H.prototype.routes=function(){var a=i.find(U,function(a){return a&&a.__rlSettingsData&&a.__rlSettingsData.IsDefault}),b=a?a.__rlSettingsData.Route:"general",a={subname:/^(.*)$/,normalize_:function(a,d){d.subname=c.isUnd(d.subname)?b:c.pString(d.subname);return[d.subname]}};return[["{subname}/",a],["{subname}",a],["",a]]};i.extend(ba.prototype,w.prototype);ba.prototype.onShow=function(){f.setTitle("")};i.extend(ca.prototype,H.prototype);ca.prototype.onShow=function(){f.setTitle("")};
i.extend(u.prototype,na.prototype);u.prototype.oSettings=null;u.prototype.oLink=null;u.prototype.download=function(a){I?this.iframe.attr("src",a):h.open(a)};u.prototype.link=function(){null===this.oLink&&(this.oLink=new o);return this.oLink};u.prototype.local=function(){null===this.oLocal&&(this.oLocal=new N);return this.oLocal};u.prototype.settingsGet=function(a){null===this.oSettings&&(this.oSettings=c.isNormal(T)?T:{});return c.isUnd(this.oSettings[a])?null:this.oSettings[a]};u.prototype.settingsSet=
function(a,b){null===this.oSettings&&(this.oSettings=c.isNormal(T)?T:{});this.oSettings[a]=b};u.prototype.setTitle=function(a){a=(0