From 867dcc8f7e0ff715f8ecbbac6efd459add3f2b21 Mon Sep 17 00:00:00 2001 From: RainLoop Team Date: Sat, 7 Dec 2013 01:50:19 +0400 Subject: [PATCH] The final commit personal address books branches before merging --- Gruntfile.js | 10 +- dev/Admin/General.js | 2 - dev/Boots/RainLoopApp.js | 7 +- dev/Common/Enums.js | 39 ++ dev/Common/Knockout.js | 6 + dev/Common/Utils.js | 1 - dev/Models/ContactModel.js | 58 +- dev/Models/ContactModel_1.js | 73 +++ dev/Models/ContactPropertyModel.js | 14 + dev/Storages/AbstractData.js | 1 - dev/Storages/WebMailAjaxRemote.js | 15 +- dev/Styles/Contacts.less | 572 ++++++++---------- dev/ViewModels/MailBoxFolderListViewModel.js | 2 +- dev/ViewModels/PopupsContactsViewModel.js | 236 +++++--- plugins/personal-address-book-mysql/LICENSE | 20 + .../MySqlPersonalAddressBookDriver.php | 403 ++++++++---- plugins/personal-address-book-mysql/README | 1 + plugins/personal-address-book-mysql/VERSION | 1 + plugins/personal-address-book-mysql/index.php | 70 +++ .../mysql-schema.sql | 0 .../0.0.0/app/libraries/MailSo/Base/Utils.php | 5 + .../0.0.0/app/libraries/RainLoop/Actions.php | 266 +++----- .../libraries/RainLoop/Common/PdoAbstract.php | 16 +- .../libraries/RainLoop/Config/Application.php | 1 - .../Providers/PersonalAddressBook.php | 95 ++- .../PersonalAddressBook/Classes/Contact.php | 35 +- .../PersonalAddressBook/Classes/Property.php | 4 +- .../Enumerations/ContactType.php | 10 - .../Enumerations/PropertyType.php | 11 +- .../PersonalAddressBookInterface.php | 52 ++ .../templates/Views/AdminSettingsGeneral.html | 9 - .../app/templates/Views/PopupsContacts.html | 225 +++---- rainloop/v/0.0.0/static/css/app.css | 47 +- rainloop/v/0.0.0/static/css/app.min.css | 2 +- rainloop/v/0.0.0/static/css/less.css | 47 +- rainloop/v/0.0.0/static/js/admin.js | 49 +- rainloop/v/0.0.0/static/js/admin.min.js | 6 +- rainloop/v/0.0.0/static/js/app.js | 378 ++++++++---- rainloop/v/0.0.0/static/js/app.min.js | 14 +- rainloop/v/0.0.0/static/js/libs.js | 11 + vendors/knockout-projections/README.md | 115 ++++ .../knockout-projections-1.0.0.js | 342 +++++++++++ .../knockout-projections-1.0.0.min.js | 10 + vendors/knockout-projections/package.json | 29 + 44 files changed, 2163 insertions(+), 1147 deletions(-) create mode 100644 dev/Models/ContactModel_1.js create mode 100644 dev/Models/ContactPropertyModel.js create mode 100644 plugins/personal-address-book-mysql/LICENSE rename rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/MySqlPersonalAddressBook.php => plugins/personal-address-book-mysql/MySqlPersonalAddressBookDriver.php (63%) create mode 100644 plugins/personal-address-book-mysql/README create mode 100644 plugins/personal-address-book-mysql/VERSION create mode 100644 plugins/personal-address-book-mysql/index.php rename {rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook => plugins/personal-address-book-mysql}/mysql-schema.sql (100%) delete mode 100644 rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/Enumerations/ContactType.php create mode 100644 vendors/knockout-projections/README.md create mode 100644 vendors/knockout-projections/knockout-projections-1.0.0.js create mode 100644 vendors/knockout-projections/knockout-projections-1.0.0.min.js create mode 100644 vendors/knockout-projections/package.json diff --git a/Gruntfile.js b/Gruntfile.js index 307a9abef..9e3ce87f3 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -127,6 +127,7 @@ module.exports = function (grunt) { "vendors/routes/hasher.min.js", "vendors/routes/crossroads.min.js", "vendors/knockout/knockout-3.0.0.js", + "vendors/knockout-projections/knockout-projections-1.0.0.min.js", "vendors/jua/jua.min.js", "vendors/jquery-magnific-popup/jquery.magnific-popup.min.js", "vendors/bootstrap/js/bootstrap.min.js", @@ -241,6 +242,7 @@ module.exports = function (grunt) { "dev/Models/EmailModel.js", "dev/Models/ContactModel.js", + "dev/Models/ContactPropertyModel.js", "dev/Models/AttachmentModel.js", "dev/Models/ComposeAttachmentModel.js", "dev/Models/MessageModel.js", @@ -430,13 +432,13 @@ module.exports = function (grunt) { grunt.registerTask('rlmin', ['uglify:min_app', 'uglify:min_admin']); // uglify (optional) - grunt.registerTask('mousewheel', ['uglify:mousewheel']); - grunt.registerTask('wakeup', ['uglify:wakeup']); + grunt.registerTask('rl', ['uglify:rl']); grunt.registerTask('nano', ['uglify:nano']); grunt.registerTask('pace', ['uglify:pace']); - grunt.registerTask('rl', ['uglify:rl']); - grunt.registerTask('inputosaurus', ['uglify:inputosaurus']); + grunt.registerTask('wakeup', ['uglify:wakeup']); grunt.registerTask('cookie', ['uglify:cookie']); + grunt.registerTask('mousewheel', ['uglify:mousewheel']); + grunt.registerTask('inputosaurus', ['uglify:inputosaurus']); // --- grunt.registerTask('default', ['less', 'concat', 'cssmin', 'jshint', 'rlmin']); diff --git a/dev/Admin/General.js b/dev/Admin/General.js index 25f98659b..35fd7a66c 100644 --- a/dev/Admin/General.js +++ b/dev/Admin/General.js @@ -35,8 +35,6 @@ function AdminGeneral() return Utils.convertLangName(this.mainLanguage()); }, this); - this.contactsSupported = RL.settingsGet('ContactsIsSupported'); - this.contactsIsAllowed = RL.settingsGet('ContactsIsAllowed'); this.weakPassword = !!RL.settingsGet('WeakPassword'); this.titleTrigger = ko.observable(Enums.SaveSettingsStep.Idle); diff --git a/dev/Boots/RainLoopApp.js b/dev/Boots/RainLoopApp.js index a3fb9c0c8..3ec3a11b8 100644 --- a/dev/Boots/RainLoopApp.js +++ b/dev/Boots/RainLoopApp.js @@ -539,9 +539,9 @@ RainLoopApp.prototype.getAutocomplete = function (sQuery, fCallback) ; RL.remote().suggestions(function (sResult, oData) { - if (Enums.StorageResultType.Success === sResult && oData && oData.Result && Utils.isArray(oData.Result.List)) + if (Enums.StorageResultType.Success === sResult && oData && Utils.isArray(oData.Result)) { - aData = _.map(oData.Result.List, function (aItem) { + aData = _.map(oData.Result, function (aItem) { return aItem && aItem[0] ? new EmailModel(aItem[0], aItem[1]) : null; }); @@ -551,6 +551,7 @@ RainLoopApp.prototype.getAutocomplete = function (sQuery, fCallback) { fCallback([]); } + }, sQuery); }; @@ -578,7 +579,7 @@ RainLoopApp.prototype.bootstart = function () bTwitter = RL.settingsGet('AllowTwitterSocial') ; - if (!RL.settingsGet('AllowChangePassword')) + if (!RL.settingsGet('ChangePasswordIsAllowed')) { Utils.removeSettingsViewModel(SettingsChangePasswordScreen); } diff --git a/dev/Common/Enums.js b/dev/Common/Enums.js index f8245bb7e..3c9b51d4b 100644 --- a/dev/Common/Enums.js +++ b/dev/Common/Enums.js @@ -231,6 +231,45 @@ Enums.InterfaceAnimation = { 'Full': 'Full' }; +/** + * @enum {number} + */ +Enums.ContactPropertyType = { + + 'Unknown': 0, + + 'FullName': 10, + + 'FirstName': 15, + 'SurName': 16, + 'MiddleName': 17, + 'Nick': 18, + + 'EmailPersonal': 30, + 'EmailBussines': 31, + 'EmailOther': 32, + + 'PhonePersonal': 50, + 'PhoneBussines': 51, + 'PhoneOther': 52, + + 'MobilePersonal': 60, + 'MobileBussines': 61, + 'MobileOther': 62, + + 'FaxPesonal': 70, + 'FaxBussines': 71, + 'FaxOther': 72, + + 'Facebook': 90, + 'Skype': 91, + 'GitHub': 92, + + 'Description': 110, + + 'Custom': 250 +}; + /** * @enum {number} */ diff --git a/dev/Common/Knockout.js b/dev/Common/Knockout.js index f9b44195e..bef95d0d7 100644 --- a/dev/Common/Knockout.js +++ b/dev/Common/Knockout.js @@ -631,6 +631,12 @@ ko.extenders.falseTimeout = function (oTarget, iOption) return oTarget; }; +ko.observable.fn.validateNone = function () +{ + this.hasError = ko.observable(false); + return this; +}; + ko.observable.fn.validateEmail = function () { this.hasError = ko.observable(false); diff --git a/dev/Common/Utils.js b/dev/Common/Utils.js index 07339f4b8..9f34981b9 100644 --- a/dev/Common/Utils.js +++ b/dev/Common/Utils.js @@ -886,7 +886,6 @@ Utils.initDataConstructorBySettings = function (oData) oData.dropboxEnable = ko.observable(false); oData.dropboxApiKey = ko.observable(''); - oData.contactsIsSupported = ko.observable(false); oData.contactsIsAllowed = ko.observable(false); }; diff --git a/dev/Models/ContactModel.js b/dev/Models/ContactModel.js index e887b87ab..0cbcbf5ac 100644 --- a/dev/Models/ContactModel.js +++ b/dev/Models/ContactModel.js @@ -6,26 +6,65 @@ function ContactModel() { this.idContact = 0; - this.imageHash = ''; - this.listName = ''; - this.name = ''; - this.emails = []; + this.display = ''; + this.properties = []; this.checked = ko.observable(false); this.selected = ko.observable(false); this.deleted = ko.observable(false); } +/** + * @return {Array|null} + */ +ContactModel.prototype.getNameAndEmailHelper = function () +{ + var + sName = '', + sEmail = '' + ; + + if (Utils.isNonEmptyArray(this.properties)) + { + _.each(this.properties, function (aProperty) { + if (aProperty) + { + if ('' === sName && Enums.ContactPropertyType.FullName === aProperty[0]) + { + sName = aProperty[1]; + } + else if ('' === sEmail && -1 < Utils.inArray(aProperty[0], [ + Enums.ContactPropertyType.EmailPersonal, + Enums.ContactPropertyType.EmailBussines, + Enums.ContactPropertyType.EmailOther + ])) + { + sEmail = aProperty[1]; + } + } + }, this); + } + + return '' === sEmail ? null : [sEmail, sName]; +}; + ContactModel.prototype.parse = function (oItem) { var bResult = false; if (oItem && 'Object/Contact' === oItem['@Object']) { this.idContact = Utils.pInt(oItem['IdContact']); - this.listName = Utils.pString(oItem['ListName']); - this.name = Utils.pString(oItem['Name']); - this.emails = Utils.isNonEmptyArray(oItem['Emails']) ? oItem['Emails'] : []; - this.imageHash = Utils.pString(oItem['ImageHash']); + this.display = Utils.pString(oItem['Display']); + + if (Utils.isNonEmptyArray(oItem['Properties'])) + { + _.each(oItem['Properties'], function (oProperty) { + if (oProperty && oProperty['Type'] && Utils.isNormal(oProperty['Value'])) + { + this.properties.push([Utils.pInt(oProperty['Type']), Utils.pString(oProperty['Value'])]); + } + }, this); + } bResult = true; } @@ -38,8 +77,7 @@ ContactModel.prototype.parse = function (oItem) */ ContactModel.prototype.srcAttr = function () { - return '' === this.imageHash ? RL.link().emptyContactPic() : - RL.link().getUserPicUrlFromHash(this.imageHash); + return RL.link().emptyContactPic(); }; /** diff --git a/dev/Models/ContactModel_1.js b/dev/Models/ContactModel_1.js new file mode 100644 index 000000000..e887b87ab --- /dev/null +++ b/dev/Models/ContactModel_1.js @@ -0,0 +1,73 @@ +/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */ + +/** + * @constructor + */ +function ContactModel() +{ + this.idContact = 0; + this.imageHash = ''; + this.listName = ''; + this.name = ''; + this.emails = []; + + this.checked = ko.observable(false); + this.selected = ko.observable(false); + this.deleted = ko.observable(false); +} + +ContactModel.prototype.parse = function (oItem) +{ + var bResult = false; + if (oItem && 'Object/Contact' === oItem['@Object']) + { + this.idContact = Utils.pInt(oItem['IdContact']); + this.listName = Utils.pString(oItem['ListName']); + this.name = Utils.pString(oItem['Name']); + this.emails = Utils.isNonEmptyArray(oItem['Emails']) ? oItem['Emails'] : []; + this.imageHash = Utils.pString(oItem['ImageHash']); + + bResult = true; + } + + return bResult; +}; + +/** + * @return {string} + */ +ContactModel.prototype.srcAttr = function () +{ + return '' === this.imageHash ? RL.link().emptyContactPic() : + RL.link().getUserPicUrlFromHash(this.imageHash); +}; + +/** + * @return {string} + */ +ContactModel.prototype.generateUid = function () +{ + return '' + this.idContact; +}; + +/** + * @return string + */ +ContactModel.prototype.lineAsCcc = function () +{ + var aResult = []; + if (this.deleted()) + { + aResult.push('deleted'); + } + if (this.selected()) + { + aResult.push('selected'); + } + if (this.checked()) + { + aResult.push('checked'); + } + + return aResult.join(' '); +}; diff --git a/dev/Models/ContactPropertyModel.js b/dev/Models/ContactPropertyModel.js new file mode 100644 index 000000000..f55f6eca5 --- /dev/null +++ b/dev/Models/ContactPropertyModel.js @@ -0,0 +1,14 @@ +/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */ + +/** + * @param {number=} iType = Enums.ContactPropertyType.Unknown + * @param {string=} sValue = '' + * + * @constructor + */ +function ContactPropertyModel(iType, sValue) +{ + this.type = ko.observable(Utils.isUnd(iType) ? Enums.ContactPropertyType.Unknown : iType); + this.focused = ko.observable(false); + this.value = ko.observable(Utils.pString(sValue)); +} diff --git a/dev/Storages/AbstractData.js b/dev/Storages/AbstractData.js index b2adde0d3..77c0d9fa5 100644 --- a/dev/Storages/AbstractData.js +++ b/dev/Storages/AbstractData.js @@ -65,6 +65,5 @@ AbstractData.prototype.populateDataOnStart = function() this.dropboxEnable(!!RL.settingsGet('AllowDropboxSocial')); this.dropboxApiKey(RL.settingsGet('DropboxApiKey')); - this.contactsIsSupported(!!RL.settingsGet('ContactsIsSupported')); this.contactsIsAllowed(!!RL.settingsGet('ContactsIsAllowed')); }; diff --git a/dev/Storages/WebMailAjaxRemote.js b/dev/Storages/WebMailAjaxRemote.js index 207323ff3..1bc4799e2 100644 --- a/dev/Storages/WebMailAjaxRemote.js +++ b/dev/Storages/WebMailAjaxRemote.js @@ -538,11 +538,15 @@ WebMailAjaxRemoteStorage.prototype.quota = function (fCallback) /** * @param {?Function} fCallback + * @param {number} iOffset + * @param {number} iLimit * @param {string} sSearch */ -WebMailAjaxRemoteStorage.prototype.contacts = function (fCallback, sSearch) +WebMailAjaxRemoteStorage.prototype.contacts = function (fCallback, iOffset, iLimit, sSearch) { this.defaultRequest(fCallback, 'Contacts', { + 'Offset': iOffset, + 'Limit': iLimit, 'Search': sSearch }, null, '', ['Contacts']); }; @@ -550,15 +554,12 @@ WebMailAjaxRemoteStorage.prototype.contacts = function (fCallback, sSearch) /** * @param {?Function} fCallback */ -WebMailAjaxRemoteStorage.prototype.contactSave = function (fCallback, sRequestUid, sUid, sName, sEmail, sImageData) +WebMailAjaxRemoteStorage.prototype.contactSave = function (fCallback, sRequestUid, sUid, aProperties) { - sUid = Utils.trim(sUid); this.defaultRequest(fCallback, 'ContactSave', { 'RequestUid': sRequestUid, - 'Uid': sUid, - 'Name': sName, - 'Email': sEmail, - 'ImageData': sImageData + 'Uid': Utils.trim(sUid), + 'Properties': aProperties }); }; diff --git a/dev/Styles/Contacts.less b/dev/Styles/Contacts.less index 7567c58c6..4f9cbd4db 100644 --- a/dev/Styles/Contacts.less +++ b/dev/Styles/Contacts.less @@ -1,303 +1,269 @@ - -@contacts-popup-left-width: 250px; - -.b-contacts-content { - - &.modal { - - position: absolute; - right: 0; - top: 0; - bottom: 0; - left: 0; - width: 900px; - min-height: 300px; - max-height: 700px; - margin: auto; - - .modal-body { - overflow: auto; - height: 100%; - background-color: #f5f5f5; - padding: 0; - } - - .b-header-toolbar { - - height: 40px; - - background-color: @rlMainDarkColor; - color: #fff; - - background-color: #333; - background-color: rgba(0,0,0,0.8) !important; - - .close { - color: #fff; - .opacity(100); - } - - .btn { - margin-top: 4px; - } - - .button-new-message { - margin-left: 8px; - } - .button-delete { - margin-left: 8px; - } - } - - .b-list-toopbar { - padding: 0; - height: 45px; - text-align: center; - width: @contacts-popup-left-width; - .box-shadow(inset 0 -1px 0 #ccc); - - .e-search { - margin-top: 7px; - } - } - - .b-list-content { - position: absolute; - top: 45px; - bottom: 60px; - left: 0; - width: @contacts-popup-left-width; - overflow: hidden; - overflow-y: auto; - - .content { - -webkit-overflow-scrolling: touch; - } - - .listClear { - color: #333; - text-align: center; - padding: 10px; - font-size: 14px; - line-height: 13px; - background-color: #fff; - } - - .listEmptyList, .listEmptyListLoading, .listEmptySearchList { - color: #999; - text-align: center; - padding: 60px 10px; - font-size: 24px; - line-height: 30px; - } - - &.hideContactListCheckbox { - .checkedParent, .checkboxCkeckAll { - display: none !important; - } - .sidebarParent { - margin-right: 10px !important; - } - } - - .e-contact-foreach { - border-bottom: 1px solid #ddd; - } - - .e-contact-item { - position: relative; - height: 45px; - max-height: 45px; - line-height: 45px; - overflow: hidden; - cursor: pointer; - - margin: 0px; - border: 0px solid transparent; - z-index: 100; - - .delimiter { - position: relative; - display: block; - height: 1px; - background-color: #999; - .opacity(20); - } - - .wrapper { - padding: 0; - } - - .sidebarParent { - display: inline-block; - width: 6px; - background-color: #eee; - float: left; - height: 100%; - } - - &.deleted { - max-height: 0px; - border-color: transparent !important; - } - - .checkedParent { - display: inline-block; - float: left; - padding: 0 8px 0 6px; - } - - .nameParent { - display: block; - overflow: hidden; - text-overflow: ellipsis; - color: #333; - font-size: 16px; - } - - .nameParent, .emailParent { - white-space: nowrap; - } - - .displayName, .displayEmail { - overflow: hidden; - text-overflow: ellipsis; - } - - .displayImg { - display: inline-block; - float: right; - position: relative; - margin: 0 5px; - } - - &.checked { - z-index: 101; - - .sidebarParent { - background-color: #69A8F5; - } - } - - &.selected { - background-color: #fff; - z-index: 102; - - .sidebarParent { - background-color: #398CF2; - } - } - } - } - - .b-view-content { - position: absolute; - top: 0; - bottom: 60px; - left: @contacts-popup-left-width; - right: 0; - overflow: hidden; - overflow-y: auto; - - background-color: #fff; - border-left: 1px solid #ddd; - - .content { - -webkit-overflow-scrolling: touch; - } - - .b-contact-view-desc { - text-align: center; - font-size: 24px; - line-height: 30px; - padding-top: 120px; - color: #999; - } - - .top-part { - margin-top: 20px; - - .control-label { - text-align: center; - } - } - - .image-wrapper { - margin-left: 30px; - border-radius: 10px; - - img { - border-radius: 10px; - } - } - - .top-row { - padding: 10px 0; - height: 30px; - } - - .contactEmptyValueClick, .contactValueClick, .contactValueInput { - display: inline-block; - font-size: 24px; - line-height: 28px; - height: 28px; - } - - .contactEmptyValueClick, .contactValueClick { - color: #ddd; - cursor: pointer; - margin: 5px 0 0 7px; - } - - .contactValueInput { - padding-left: 6px; - } - - .contactEmptyValueClick { - border-bottom: 1px dashed #ddd; - } - - .contactValueClick { - color: #555; - border-bottom: 11px dashed transparent; - } - - .contactValueClick:hover { - color: #000; - border-bottom: 1px dashed #000; - } - - .contactValueInput { - - } - - .hasError { - .contactValueClick, .contactValueInput { - color: #ee5f5b; - border: 1px solid #ee5f5b; - } - } - - .button-save-contact { - position: absolute; - bottom: 20px; - right: 20px; - } - } - } - - .e-contact-item { - - position: relative; - height: 55px; - max-height: 60px; - line-height: 22px; - overflow: hidden; - cursor: pointer; - - margin: 0px; - border: 0px solid transparent; - z-index: 100; - - } -} + +@contacts-popup-left-width: 250px; + +.b-contacts-content { + + &.modal { + + position: absolute; + right: 0; + top: 0; + bottom: 0; + left: 0; + width: 900px; + min-height: 300px; + max-height: 700px; + margin: auto; + + .modal-body { + overflow: auto; + height: 100%; + background-color: #f5f5f5; + padding: 0; + } + + .b-header-toolbar { + + height: 40px; + + background-color: @rlMainDarkColor; + color: #fff; + + background-color: #333; + background-color: rgba(0,0,0,0.8) !important; + + .close { + color: #fff; + .opacity(100); + } + + .btn { + margin-top: 4px; + } + + .button-new-message { + margin-left: 8px; + } + .button-delete { + margin-left: 8px; + } + } + + .b-list-toopbar { + padding: 0; + height: 45px; + text-align: center; + width: @contacts-popup-left-width; + .box-shadow(inset 0 -1px 0 #ccc); + + .e-search { + margin-top: 7px; + } + } + + .b-list-content { + position: absolute; + top: 45px; + bottom: 60px; + left: 0; + width: @contacts-popup-left-width; + overflow: hidden; + overflow-y: auto; + + .content { + -webkit-overflow-scrolling: touch; + } + + .listClear { + color: #333; + text-align: center; + padding: 10px; + font-size: 14px; + line-height: 13px; + background-color: #fff; + } + + .listEmptyList, .listEmptyListLoading, .listEmptySearchList { + color: #999; + text-align: center; + padding: 60px 10px; + font-size: 24px; + line-height: 30px; + } + + &.hideContactListCheckbox { + .checkedParent, .checkboxCkeckAll { + display: none !important; + } + .sidebarParent { + margin-right: 10px !important; + } + } + + .e-contact-foreach { + border-bottom: 1px solid #ddd; + } + + .e-contact-item { + position: relative; + height: 45px; + max-height: 45px; + line-height: 45px; + overflow: hidden; + cursor: pointer; + + margin: 0px; + border: 0px solid transparent; + z-index: 100; + + .delimiter { + position: relative; + display: block; + height: 1px; + background-color: #999; + .opacity(20); + } + + .wrapper { + padding: 0; + } + + .sidebarParent { + display: inline-block; + width: 6px; + background-color: #eee; + float: left; + height: 100%; + } + + &.deleted { + max-height: 0px; + border-color: transparent !important; + } + + .checkedParent { + display: inline-block; + float: left; + padding: 0 8px 0 6px; + } + + .nameParent { + display: block; + overflow: hidden; + text-overflow: ellipsis; + color: #333; + font-size: 16px; + } + + .nameParent, .emailParent { + white-space: nowrap; + } + + .displayName, .displayEmail { + overflow: hidden; + text-overflow: ellipsis; + } + + .displayImg { + display: inline-block; + float: right; + position: relative; + margin: 0 5px; + } + + &.checked { + z-index: 101; + + .sidebarParent { + background-color: #69A8F5; + } + } + + &.selected { + background-color: #fff; + z-index: 102; + + .sidebarParent { + background-color: #398CF2; + } + } + } + } + + .b-view-content { + position: absolute; + top: 0; + bottom: 60px; + left: @contacts-popup-left-width; + right: 0; + overflow: hidden; + overflow-y: auto; + + background-color: #fff; + border-left: 1px solid #ddd; + + .content { + -webkit-overflow-scrolling: touch; + } + + .b-contact-view-desc { + text-align: center; + font-size: 24px; + line-height: 30px; + padding-top: 120px; + color: #999; + } + + .top-part { + padding-top: 20px; + } + + .property-line { + margin-bottom: 5px; + } + + .top-row { + padding: 10px 0; + height: 30px; + } + + .add-link { + padding-top: 5px; + font-size: 12px; + color: #aaa; + } + + .contactValueInput { + + } + + .hasError { + .contactValueInput { + color: #ee5f5b; + border: 1px solid #ee5f5b; + } + } + + .button-save-contact { + position: absolute; + top: 20px; + right: 20px; + } + } + } + + .e-contact-item { + + position: relative; + height: 55px; + max-height: 60px; + line-height: 22px; + overflow: hidden; + cursor: pointer; + + margin: 0px; + border: 0px solid transparent; + z-index: 100; + + } +} diff --git a/dev/ViewModels/MailBoxFolderListViewModel.js b/dev/ViewModels/MailBoxFolderListViewModel.js index 9415cb30d..be46e1f94 100644 --- a/dev/ViewModels/MailBoxFolderListViewModel.js +++ b/dev/ViewModels/MailBoxFolderListViewModel.js @@ -13,7 +13,7 @@ function MailBoxFolderListViewModel() this.iDropOverTimer = 0; - this.allowContacts = !!RL.settingsGet('ContactsIsSupported') && !!RL.settingsGet('ContactsIsAllowed'); + this.allowContacts = !!RL.settingsGet('ContactsIsAllowed'); } Utils.extendAsViewModel('MailBoxFolderListViewModel', MailBoxFolderListViewModel); diff --git a/dev/ViewModels/PopupsContactsViewModel.js b/dev/ViewModels/PopupsContactsViewModel.js index 05a99a46f..c42a7d1a2 100644 --- a/dev/ViewModels/PopupsContactsViewModel.js +++ b/dev/ViewModels/PopupsContactsViewModel.js @@ -8,12 +8,22 @@ function PopupsContactsViewModel() { KnoinAbstractViewModel.call(this, 'Popups', 'PopupsContacts'); - var self = this; + var + self = this, + aNameTypes = [Enums.ContactPropertyType.FullName, Enums.ContactPropertyType.FirstName, Enums.ContactPropertyType.SurName, Enums.ContactPropertyType.MiddleName], + aEmailTypes = [Enums.ContactPropertyType.EmailPersonal, Enums.ContactPropertyType.EmailBussines, Enums.ContactPropertyType.EmailOther], + aPhonesTypes = [ + Enums.ContactPropertyType.PhonePersonal, Enums.ContactPropertyType.PhoneBussines, Enums.ContactPropertyType.PhoneOther, + Enums.ContactPropertyType.MobilePersonal, Enums.ContactPropertyType.MobileBussines, Enums.ContactPropertyType.MobileOther, + Enums.ContactPropertyType.FaxPesonal, Enums.ContactPropertyType.FaxBussines, Enums.ContactPropertyType.FaxOther + ], + fFastClearEmptyListHelper = function (aList) { + if (aList && 0 < aList.length) { + self.viewProperties.removeAll(aList); + } + } + ; - this.imageUploader = ko.observable(null); - this.imageDom = ko.observable(null); - this.imageTrigger = ko.observable(false); - this.search = ko.observable(''); this.contacts = ko.observableArray([]); this.contacts.loading = ko.observable(false).extend({'throttle': 200}); @@ -23,11 +33,50 @@ function PopupsContactsViewModel() this.viewClearSearch = ko.observable(false); this.viewID = ko.observable(''); - this.viewName = ko.observable(''); - this.viewName.focused = ko.observable(false); - this.viewEmail = ko.observable('').validateEmail(); - this.viewEmail.focused = ko.observable(false); - this.viewImageUrl = ko.observable(RL.link().emptyContactPic()); + this.viewProperties = ko.observableArray([]); + + this.viewPropertiesNames = this.viewProperties.filter(function(oProperty) { + return -1 < Utils.inArray(oProperty.type(), aNameTypes); + }); + + this.viewPropertiesEmails = this.viewProperties.filter(function(oProperty) { + return -1 < Utils.inArray(oProperty.type(), aEmailTypes); + }); + + this.viewHasNonEmptyRequaredProperties = ko.computed(function() { + + var + aNames = this.viewPropertiesNames(), + aEmail = this.viewPropertiesEmails(), + fHelper = function (oProperty) { + return '' !== Utils.trim(oProperty.value()); + } + ; + + return !!(_.find(aNames, fHelper) || _.find(aEmail, fHelper)); + }, this); + + this.viewPropertiesPhones = this.viewProperties.filter(function(oProperty) { + return -1 < Utils.inArray(oProperty.type(), aPhonesTypes); + }); + + this.viewPropertiesEmailsEmptyAndOnFocused = this.viewPropertiesEmails.filter(function(oProperty) { + var bF = oProperty.focused(); + return '' === Utils.trim(oProperty.value()) && !bF; + }); + + this.viewPropertiesPhonesEmptyAndOnFocused = this.viewPropertiesPhones.filter(function(oProperty) { + var bF = oProperty.focused(); + return '' === Utils.trim(oProperty.value()) && !bF; + }); + + this.viewPropertiesEmailsEmptyAndOnFocused.subscribe(function(aList) { + fFastClearEmptyListHelper(aList); + }); + + this.viewPropertiesPhonesEmptyAndOnFocused.subscribe(function(aList) { + fFastClearEmptyListHelper(aList); + }); this.viewSaving = ko.observable(false); @@ -41,8 +90,8 @@ function PopupsContactsViewModel() Utils.windowResize(); }, this); - this.viewImageUrl.subscribe(function (sUrl) { - this.imageDom()['src'] = sUrl; + this.viewProperties.subscribe(function () { + Utils.windowResize(); }, this); this.contactsChecked = ko.computed(function () { @@ -103,22 +152,26 @@ function PopupsContactsViewModel() if (Utils.isNonEmptyArray(aC)) { aE = _.map(aC, function (oItem) { - if (oItem && oItem['emails']) + if (oItem) { - var oEmail = new EmailModel(oItem['emails'][0] || '', oItem['name']); - if (oEmail.validate()) + var + aData = oItem.getNameAndEmailHelper(), + oEmail = aData ? new EmailModel(aData[0], aData[1]) : null + ; + + if (oEmail && oEmail.validate()) { return oEmail; } } - + return null; }); aE = _.compact(aE); } - if (Utils.isNonEmptyArray(aC)) + if (Utils.isNonEmptyArray(aE)) { kn.hideScreenPopup(PopupsContactsViewModel); kn.showScreenPopup(PopupsComposeViewModel, [Enums.ComposeType.Empty, null, aE]); @@ -133,12 +186,21 @@ function PopupsContactsViewModel() }); this.saveCommand = Utils.createCommand(this, function () { - var + + this.viewSaving(true); + + var sRequestUid = Utils.fakeMd5(), - bImageTrigger = this.imageTrigger() + aProperties = [] ; - this.viewSaving(true); + _.each(this.viewProperties(), function (oItem) { + if (oItem.type() && '' !== Utils.trim(oItem.value())) + { + aProperties.push([oItem.type(), oItem.value()]); + } + }); + RL.remote().contactSave(function (sResult, oData) { self.viewSaving(false); @@ -151,31 +213,42 @@ function PopupsContactsViewModel() } self.reloadContactList(); - if (bImageTrigger) - { - RL.emailsPicsHashes(); - } } // else // { // // TODO // } - }, sRequestUid, this.viewID(), this.viewName(), this.viewEmail(), bImageTrigger ? this.imageDom()['src'] : ''); + }, sRequestUid, this.viewID(), aProperties); }, function () { - var - sViewName = this.viewName(), - sViewEmail = this.viewEmail() - ; - - return !this.viewSaving() && - ('' !== sViewName || '' !== sViewEmail); + var bV = this.viewHasNonEmptyRequaredProperties(); + return !this.viewSaving() && bV; }); } Utils.extendAsViewModel('PopupsContactsViewModel', PopupsContactsViewModel); +PopupsContactsViewModel.prototype.addNewEmail = function () +{ +// if (0 === this.viewPropertiesEmailsEmpty().length) +// { + var oItem = new ContactPropertyModel(Enums.ContactPropertyType.EmailPersonal, ''); + oItem.focused(true); + this.viewProperties.push(oItem); +// } +}; + +PopupsContactsViewModel.prototype.addNewPhone = function () +{ +// if (0 === this.viewPropertiesPhonesEmpty().length) +// { + var oItem = new ContactPropertyModel(Enums.ContactPropertyType.PhonePersonal, ''); + oItem.focused(true); + this.viewProperties.push(oItem); +// } +}; + PopupsContactsViewModel.prototype.removeCheckedOrSelectedContactsFromList = function () { var @@ -241,28 +314,51 @@ PopupsContactsViewModel.prototype.deleteResponse = function (sResult, oData) } }; +PopupsContactsViewModel.prototype.removeProperty = function (oProp) +{ + this.viewProperties.remove(oProp); +}; + /** * @param {?ContactModel} oContact */ PopupsContactsViewModel.prototype.populateViewContact = function (oContact) { - this.imageTrigger(false); + var + sId = '', + bHasName = false, + aList = [] + ; + this.emptySelection(false); if (oContact) { - this.viewID(oContact.idContact); - this.viewName(oContact.name); - this.viewEmail(oContact.emails[0] || ''); - this.viewImageUrl(oContact.srcAttr()); + sId = oContact.idContact; + + if (Utils.isNonEmptyArray(oContact.properties)) + { + _.each(oContact.properties, function (aProperty) { + if (aProperty && aProperty[0]) + { + aList.push(new ContactPropertyModel(aProperty[0], aProperty[1])); + if (Enums.ContactPropertyType.FullName === aProperty[0]) + { + bHasName = true; + } + } + }); + } } - else + + if (!bHasName) { - this.viewID(''); - this.viewName(''); - this.viewEmail(''); - this.viewImageUrl(RL.link().emptyContactPic()); + aList.push(new ContactPropertyModel(Enums.ContactPropertyType.FullName, '')); } + + this.viewID(sId); + this.viewProperties([]); + this.viewProperties(aList); }; PopupsContactsViewModel.prototype.reloadContactList = function () @@ -293,20 +389,16 @@ PopupsContactsViewModel.prototype.reloadContactList = function () self.contacts.setSelectedByUid('' + self.viewID()); } - }, this.search()); + }, 0, 20, this.search()); }; PopupsContactsViewModel.prototype.onBuild = function (oDom) { - this.initUploader(); - this.oContentVisible = $('.b-list-content', oDom); this.oContentScrollable = $('.content', this.oContentVisible); this.selector.init(this.oContentVisible, this.oContentScrollable); - this.viewImageUrl.valueHasMutated(); - ko.computed(function () { var bModalVisibility = this.modalVisibility(), @@ -316,56 +408,6 @@ PopupsContactsViewModel.prototype.onBuild = function (oDom) }, this).extend({'notify': 'always'}); }; -PopupsContactsViewModel.prototype.initUploader = function () -{ - var self = this, oJua = null; - if (window.File && window.FileReader && this.imageUploader()) - { - oJua = new Jua({ - 'queueSize': 1, - 'multipleSizeLimit': 1, - 'clickElement': this.imageUploader(), - 'disableDragAndDrop': true, - 'disableMultiple': true, - 'onSelect': function (sId, oData) { - - if (oData && oData['File'] && oData['File']['type']) - { - var - oReader = null, - oFile = oData['File'], - sType = oData['File']['type'] - ; - - if (!sType.match(/image.*/)) - { - window.alert('this file is not an image.'); - } - else - { - oReader = new window.FileReader(); - oReader.onload = function (oEvent) { - if (oEvent && oEvent.target && oEvent.target.result) - { - Utils.resizeAndCrop(oEvent.target.result, 150, function (sUrl) { - self.viewImageUrl(sUrl); - self.imageTrigger(true); - }); - } - }; - - oReader.readAsDataURL(oFile); - } - } - - return false; - } - }); - } - - return oJua; -}; - PopupsContactsViewModel.prototype.onShow = function () { kn.routeOff(); diff --git a/plugins/personal-address-book-mysql/LICENSE b/plugins/personal-address-book-mysql/LICENSE new file mode 100644 index 000000000..271342337 --- /dev/null +++ b/plugins/personal-address-book-mysql/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2013 RainLoop Team + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/MySqlPersonalAddressBook.php b/plugins/personal-address-book-mysql/MySqlPersonalAddressBookDriver.php similarity index 63% rename from rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/MySqlPersonalAddressBook.php rename to plugins/personal-address-book-mysql/MySqlPersonalAddressBookDriver.php index 4ca8802c1..abe256dc1 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/MySqlPersonalAddressBook.php +++ b/plugins/personal-address-book-mysql/MySqlPersonalAddressBookDriver.php @@ -1,16 +1,41 @@ sDsn = $sDsn; + $this->sUser = $sUser; + $this->sPassword = $sPassword; + } + + /** + * @return string + */ + public function Version() + { + return 'MySqlPersonalAddressBookDriver-v1'; + } + /** * @return bool */ @@ -20,79 +45,48 @@ class MySqlPersonalAddressBook return \is_array($aDrivers) ? \in_array('mysql', $aDrivers) : false; } - /** - * @param int $iUserID - * @param int $iIdContact - * @return array - */ - private function getContactFreq($iUserID, $iIdContact) - { - $aResult = array(); - - $sTypes = \implode(',', array( - PropertyType::EMAIl_PERSONAL, PropertyType::EMAIl_BUSSINES, PropertyType::EMAIl_OTHER - )); - - $sSql = 'SELECT `value`, `frec` FROM `rainloop_pab_prop` WHERE id_user = :id_user AND `id_contact` = :id_contact AND `type` IN ('.$sTypes.')'; - $aParams = array( - ':id_user' => array($iUserID, \PDO::PARAM_INT), - ':id_contact' => array($iIdContact, \PDO::PARAM_INT) - ); - - $oStmt = $this->prepareAndExecute($sSql, $aParams); - if ($oStmt) - { - $aFetch = $oStmt->fetchAll(\PDO::FETCH_ASSOC); - if (\is_array($aFetch)) - { - foreach ($aFetch as $aItem) - { - if ($aItem && !empty($aItem['value']) && !empty($aItem['frec'])) - { - $aResult[$aItem['value']] = (int) $aItem['frec']; - } - } - } - } - - return $aResult; - } - /** * @param \RainLoop\Account $oAccount * @param \RainLoop\Providers\PersonalAddressBook\Classes\Contact $oContact * * @return bool */ - public function SetContact($oAccount, &$oContact) + public function ContactSave($oAccount, &$oContact) { $iUserID = $this->getUserId($oAccount->ParentEmailHelper()); - $bUpdate = 0 < $oContact->IdContact; + $iIdContact = \strlen($oContact->IdContact) && \is_numeric($oContact->IdContact) ? (int) $oContact->IdContact : 0; + + $bUpdate = 0 < $iIdContact; $oContact->UpdateDependentValues(); $oContact->Changed = \time(); - if (\RainLoop\Providers\PersonalAddressBook\Enumerations\ContactType::AUTO != $oContact->Type) + if (!$oContact->Auto) { $aEmail = $oContact->GetEmails(); if (0 < \count($aEmail)) { - $aEmail = \array_map(function ($mItem) { - return \strtolower(\trim($mItem)); + $aEmail = \array_map(function ($sValue) { + return \strtolower(\trim($sValue)); }, $aEmail); - $aEmail = \array_filter($aEmail, function ($mItem) { - return !empty($mItem); + $aEmail = \array_filter($aEmail, function ($sValue) { + return !empty($sValue); }); - if (0 < \strlen($aEmail)) + if (0 < \count($aEmail)) { + $self = $this; + $aEmail = \array_map(function ($sValue) use ($self) { + return $self->quoteValue($sValue); + }, $aEmail); + + // clear autocreated contacts $this->prepareAndExecute( - 'DELETE FROM `rainloop_pab_contacts` WHERE `id_user` = :id_user AND `type` = :type AND `display_in_list` IN ('.\implode(',', $aEmail).')', + 'DELETE FROM `rainloop_pab_contacts` WHERE `id_user` = :id_user AND `auto` = 1 AND `display_email` IN ('.\implode(',', $aEmail).')', array( - ':id_user' => array($iUserID, \PDO::PARAM_INT), - ':type' => array(\RainLoop\Providers\PersonalAddressBook\Enumerations\ContactType::AUTO, \PDO::PARAM_INT) + ':id_user' => array($iUserID, \PDO::PARAM_INT) ) ); } @@ -106,17 +100,19 @@ class MySqlPersonalAddressBook $aFreq = array(); if ($bUpdate) { - $aFreq = $this->getContactFreq($iUserID, $oContact->IdContact); + $aFreq = $this->getContactFreq($iUserID, $iIdContact); - $sSql = 'UPDATE `rainloop_pab_contacts` SET `display_in_list` = :display_in_list, '. - '`type` = :type, `changed` = :changed WHERE id_user = :id_user AND `id_contact` = :id_contact'; + $sSql = 'UPDATE `rainloop_pab_contacts` SET `display` = :display, `display_name` = :display_name, `display_email` = :display_email, '. + '`auto` = :auto, `changed` = :changed WHERE id_user = :id_user AND `id_contact` = :id_contact'; $this->prepareAndExecute($sSql, array( ':id_user' => array($iUserID, \PDO::PARAM_INT), - ':id_contact' => array($oContact->IdContact, \PDO::PARAM_INT), - ':display_in_list' => array($oContact->DisplayInList, \PDO::PARAM_STR), - ':type' => array($oContact->Type, \PDO::PARAM_INT), + ':id_contact' => array($iIdContact, \PDO::PARAM_INT), + ':display' => array($oContact->Display, \PDO::PARAM_STR), + ':display_name' => array($oContact->DisplayName, \PDO::PARAM_STR), + ':display_email' => array($oContact->DisplayEmail, \PDO::PARAM_STR), + ':auto' => array($oContact->Auto, \PDO::PARAM_INT), ':changed' => array($oContact->Changed, \PDO::PARAM_INT), ) ); @@ -126,21 +122,23 @@ class MySqlPersonalAddressBook 'DELETE FROM `rainloop_pab_prop` WHERE `id_user` = :id_user AND `id_contact` = :id_contact', array( ':id_user' => array($iUserID, \PDO::PARAM_INT), - ':id_contact' => array($oContact->IdContact, \PDO::PARAM_INT) + ':id_contact' => array($iIdContact, \PDO::PARAM_INT) ) ); } else { $sSql = 'INSERT INTO `rainloop_pab_contacts` '. - '(`id_user`, `display_in_list`, `type`, `changed`) VALUES '. - '(:id_user, :display_in_list, :type, :changed)'; + '(`id_user`, `display`, `display_name`, `display_email`, `auto`, `changed`) VALUES '. + '(:id_user, :display, :display_name, :display_email, :auto, :changed)'; $this->prepareAndExecute($sSql, array( ':id_user' => array($iUserID, \PDO::PARAM_INT), - ':display_in_list' => array($oContact->DisplayInList, \PDO::PARAM_STR), - ':type' => array($oContact->Type, \PDO::PARAM_INT), + ':display' => array($oContact->Display, \PDO::PARAM_STR), + ':display_name' => array($oContact->DisplayName, \PDO::PARAM_STR), + ':display_email' => array($oContact->DisplayEmail, \PDO::PARAM_STR), + ':auto' => array($oContact->Auto, \PDO::PARAM_INT), ':changed' => array($oContact->Changed, \PDO::PARAM_INT) ) ); @@ -148,11 +146,12 @@ class MySqlPersonalAddressBook $sLast = $this->lastInsertId('id_contact'); if (\is_numeric($sLast) && 0 < (int) $sLast) { - $oContact->IdContact = (int) $sLast; + $iIdContact = (int) $sLast; + $oContact->IdContact = (string) $iIdContact; } } - if (0 < $oContact->IdContact) + if (0 < $iIdContact) { $aParams = array(); foreach ($oContact->Properties as /* @var $oProp \RainLoop\Providers\PersonalAddressBook\Classes\Property */ $oProp) @@ -164,7 +163,7 @@ class MySqlPersonalAddressBook } $aParams[] = array( - ':id_contact' => array($oContact->IdContact, \PDO::PARAM_INT), + ':id_contact' => array($iIdContact, \PDO::PARAM_INT), ':id_user' => array($iUserID, \PDO::PARAM_INT), ':type' => array($oProp->Type, \PDO::PARAM_INT), ':type_custom' => array($oProp->TypeCustom, \PDO::PARAM_STR), @@ -189,7 +188,7 @@ class MySqlPersonalAddressBook $this->commit(); - return 0 < $oContact->IdContact; + return 0 < $iIdContact; } /** @@ -203,7 +202,7 @@ class MySqlPersonalAddressBook $iUserID = $this->getUserId($oAccount->ParentEmailHelper()); $aContactIds = \array_filter($aContactIds, function (&$mItem) { - $mItem = (int) $mItem; + $mItem = (int) \trim($mItem); return 0 < $mItem; }); @@ -219,16 +218,14 @@ class MySqlPersonalAddressBook /** * @param \RainLoop\Account $oAccount - * @param int $iType = \RainLoop\Providers\PersonalAddressBook\Enumerations\ContactType::DEFAULT_ * @param int $iOffset = 0 - * @param type $iLimit = 20 + * @param int $iLimit = 20 * @param string $sSearch = '' + * @param bool $bAutoOnly = false * * @return array */ - public function GetContacts($oAccount, - $iType = \RainLoop\Providers\PersonalAddressBook\Enumerations\ContactType::DEFAULT_, - $iOffset = 0, $iLimit = 20, $sSearch = '') + public function GetContacts($oAccount, $iOffset = 0, $iLimit = 20, $sSearch = '', $bAutoOnly = false) { $iOffset = 0 <= $iOffset ? $iOffset : 0; $iLimit = 0 < $iLimit ? (int) $iLimit : 20; @@ -236,15 +233,10 @@ class MySqlPersonalAddressBook $iUserID = $this->getUserId($oAccount->ParentEmailHelper()); - if (!\in_array($iType, array(ContactType::SHARE, ContactType::AUTO))) - { - $iType = ContactType::DEFAULT_; - } - - $sSql = 'SELECT * FROM `rainloop_pab_contacts` WHERE id_user = :id_user AND `type` = :type'; + $sSql = 'SELECT * FROM `rainloop_pab_contacts` WHERE id_user = :id_user AND `auto` = :auto'; $aParams = array( ':id_user' => array($iUserID, \PDO::PARAM_INT), - ':type' => array($iType, \PDO::PARAM_INT) + ':auto' => array($bAutoOnly ? 1 : 0, \PDO::PARAM_INT) ); if (0 < \strlen($sSearch)) @@ -256,7 +248,7 @@ class MySqlPersonalAddressBook $aParams[':search'] = array($this->specialConvertSearchValue($sSearch, '='), \PDO::PARAM_STR); } - $sSql .= ' ORDER BY `display_in_list` ASC LIMIT :limit OFFSET :offset'; + $sSql .= ' ORDER BY `display` ASC LIMIT :limit OFFSET :offset'; $aParams[':limit'] = array($iLimit, \PDO::PARAM_INT); $aParams[':offset'] = array($iOffset, \PDO::PARAM_INT); @@ -277,12 +269,12 @@ class MySqlPersonalAddressBook $aIdContacts[] = $iIdContact; $oContact = new \RainLoop\Providers\PersonalAddressBook\Classes\Contact(); - $oContact->IdContact = $iIdContact; - $oContact->DisplayInList = isset($aItem['display_in_list']) ? (string) $aItem['display_in_list'] : ''; - $oContact->Type = isset($aItem['type']) ? (int) $aItem['type'] : - \RainLoop\Providers\PersonalAddressBook\Enumerations\ContactType::DEFAULT_; + $oContact->IdContact = (string) $iIdContact; + $oContact->Display = isset($aItem['display']) ? (string) $aItem['display'] : ''; + $oContact->DisplayName = isset($aItem['display_name']) ? (string) $aItem['display_name'] : ''; + $oContact->DisplayEmail = isset($aItem['display_email']) ? (string) $aItem['display_email'] : ''; + $oContact->Auto = isset($aItem['auto']) ? (bool) $aItem['auto'] : false; $oContact->Changed = isset($aItem['changed']) ? (int) $aItem['changed'] : 0; - $oContact->CanBeChanged = true; $aContacts[$iIdContact] = $oContact; } @@ -310,7 +302,7 @@ class MySqlPersonalAddressBook if ($aItem && isset($aItem['id_prop'], $aItem['id_contact'], $aItem['type'], $aItem['value'])) { $iId = (int) $aItem['id_contact']; - if (0 < $iId && isset($aContacts[$iIdContact])) + if (0 < $iId && isset($aContacts[$iId])) { $oProperty = new \RainLoop\Providers\PersonalAddressBook\Classes\Property(); $oProperty->Type = (int) $aItem['type']; @@ -319,7 +311,7 @@ class MySqlPersonalAddressBook $oProperty->ValueClear = isset($aItem['value_clear']) ? (string) $aItem['value_clear'] : ''; $oProperty->Frec = isset($aItem['frec']) ? (int) $aItem['frec'] : 0; - $aContacts[$iIdContact]->Properties[] = $oProperty; + $aContacts[$iId]->Properties[] = $oProperty; } } } @@ -327,6 +319,11 @@ class MySqlPersonalAddressBook unset($aFetch); + foreach ($aContacts as &$oItem) + { + $oItem->UpdateDependentValues(); + } + return \array_values($aContacts); } } @@ -338,15 +335,14 @@ class MySqlPersonalAddressBook /** * @param \RainLoop\Account $oAccount * @param string $sSearch + * @param int $iLimit = 20 * * @return array * * @throws \InvalidArgumentException */ - public function GetSuggestions($oAccount, $sSearch) + public function GetSuggestions($oAccount, $sSearch, $iLimit = 20) { - $iLimit = 20; - $sSearch = \trim($sSearch); if (0 === \strlen($sSearch)) { @@ -359,7 +355,7 @@ class MySqlPersonalAddressBook PropertyType::EMAIl_PERSONAL, PropertyType::EMAIl_BUSSINES, PropertyType::EMAIl_OTHER, PropertyType::FULLNAME )); - $sSql = 'SELECT DISTINCT `id_contact` FROM `rainloop_pab_prop` '. + $sSql = 'SELECT `id_contact`, `id_prop`, `type`, `value` FROM `rainloop_pab_prop` '. 'WHERE id_user = :id_user AND `type` IN ('.$sTypes.') AND `value` LIKE :search ESCAPE \'=\''; $aParams = array( @@ -371,11 +367,14 @@ class MySqlPersonalAddressBook $sSql .= ' ORDER BY `frec` DESC LIMIT :limit'; $aResult = array(); + $aFirstResult = array(); + $aSkipIds = array(); + $oStmt = $this->prepareAndExecute($sSql, $aParams); if ($oStmt) { - $aFetch = $oStmt->fetchAll(\PDO::FETCH_ASSOC); $aIdContacts = array(); + $aFetch = $oStmt->fetchAll(\PDO::FETCH_ASSOC); if (\is_array($aFetch) && 0 < \count($aFetch)) { foreach ($aFetch as $aItem) @@ -383,14 +382,33 @@ class MySqlPersonalAddressBook $iIdContact = $aItem && isset($aItem['id_contact']) ? (int) $aItem['id_contact'] : 0; if (0 < $iIdContact) { - $aIdContacts[] = $iIdContact; - $aResult[$iIdContact] = array('', ''); + $aIdContacts[$iIdContact] = $iIdContact; + $iType = isset($aItem['type']) ? (int) $aItem['type'] : PropertyType::UNKNOWN; + + if (\in_array($iType, array(PropertyType::EMAIl_PERSONAL, PropertyType::EMAIl_BUSSINES, PropertyType::EMAIl_OTHER, PropertyType::FULLNAME))) + { + if (!\in_array($iIdContact, $aSkipIds)) + { + if (PropertyType::FULLNAME === $iType) + { + $aSkipIds[] = $iIdContact; + } + + $aFirstResult[] = array( + 'id_prop' => isset($aItem['id_prop']) ? (int) $aItem['id_prop'] : 0, + 'id_contact' => $iIdContact, + 'value' => isset($aItem['value']) ? (string) $aItem['value'] : '', + 'type' => $iType + ); + } + } } } } unset($aFetch); + $aIdContacts = \array_values($aIdContacts); if (0 < count($aIdContacts)) { $oStmt->closeCursor(); @@ -399,7 +417,7 @@ class MySqlPersonalAddressBook PropertyType::EMAIl_PERSONAL, PropertyType::EMAIl_BUSSINES, PropertyType::EMAIl_OTHER, PropertyType::FULLNAME )); - $sSql = 'SELECT `id_contact`, `type`, `value` FROM `rainloop_pab_prop` '. + $sSql = 'SELECT `id_prop`, `id_contact`, `type`, `value` FROM `rainloop_pab_prop` '. 'WHERE id_user = :id_user AND `type` IN ('.$sTypes.') AND `id_contact` IN ('.\implode(',', $aIdContacts).')'; $oStmt = $this->prepareAndExecute($sSql, array( @@ -411,34 +429,71 @@ class MySqlPersonalAddressBook $aFetch = $oStmt->fetchAll(\PDO::FETCH_ASSOC); if (\is_array($aFetch) && 0 < \count($aFetch)) { + $aNames = array(); + $aEmails = array(); + foreach ($aFetch as $aItem) { - if ($aItem && isset($aItem['id_contact'], $aItem['type'], $aItem['value'])) + if ($aItem && isset($aItem['id_prop'], $aItem['id_contact'], $aItem['type'], $aItem['value'])) { - $iId = $aItem['id_contact']; - if (isset($aResult[$iId])) + $iIdContact = (int) $aItem['id_contact']; + $iType = (int) $aItem['type']; + + if (PropertyType::FULLNAME === $iType) { - if ('' === $aResult[$iId][0] && \in_array((int) $aItem['type'], - array(PropertyType::EMAIl_PERSONAL, PropertyType::EMAIl_BUSSINES, PropertyType::EMAIl_OTHER))) + $aNames[$iIdContact] = $aItem['value']; + } + else if (\in_array($iType, + array(PropertyType::EMAIl_PERSONAL, PropertyType::EMAIl_BUSSINES, PropertyType::EMAIl_OTHER))) + { + if (!isset($aEmails[$iIdContact])) { - $aResult[$iId][0] = $aItem['value']; - } - else if ('' === $aResult[$iId][1] && \in_array((int) $aItem['type'], array(PropertyType::FULLNAME))) - { - $aResult[$iId][1] = $aItem['value']; + $aEmails[$iIdContact] = array(); } + + $aEmails[$iIdContact][] = $aItem['value']; } } } - $aResult = array_filter($aResult, function ($aItem) { - return '' !== $aItem[0]; - }); + foreach ($aFirstResult as $aItem) + { + if ($aItem && !empty($aItem['value'])) + { + $iIdContact = (int) $aItem['id_contact']; + $iType = (int) $aItem['type']; + + if (PropertyType::FULLNAME === $iType) + { + if (isset($aEmails[$iIdContact]) && \is_array($aEmails[$iIdContact])) + { + foreach ($aEmails[$iIdContact] as $sEmail) + { + if (!empty($sEmail)) + { + $aResult[] = array($sEmail, (string) $aItem['value']); + } + } + } + } + else if (\in_array($iType, + array(PropertyType::EMAIl_PERSONAL, PropertyType::EMAIl_BUSSINES, PropertyType::EMAIl_OTHER))) + { + $aResult[] = array((string) $aItem['value'], + isset($aNames[$iIdContact]) ? (string) $aNames[$iIdContact] : ''); + } + } + } } unset($aFetch); - return \array_values($aResult); + if ($iLimit < \count($aResult)) + { + $aResult = \array_slice($aResult, 0, $iLimit); + } + + return $aResult; } } } @@ -457,15 +512,17 @@ class MySqlPersonalAddressBook $iUserID = $this->getUserId($oAccount->ParentEmailHelper()); $self = $this; - $aEmails = \array_map(function ($mItem) { - return \strtolower(\trim($mItem)); + $aEmailsObjects = \array_map(function ($mItem) { + $oResult = null; + try + { + $oResult = \MailSo\Mime\Email::Parse(\trim($mItem)); + } + catch (\Exception $oException) {} + return $oResult; }, $aEmails); - - $aEmails = \array_filter($aEmails, function ($mItem) { - return 0 < \strlen($mItem); - }); - if (0 === \count($aEmails)) + if (0 === \count($aEmailsObjects)) { throw new \InvalidArgumentException('Empty Emails argument'); } @@ -495,21 +552,53 @@ class MySqlPersonalAddressBook } } - $aEmailsToCreate = \array_diff($aEmails, $aExists); + $aEmailsToUpdate = array(); + $aEmailsToCreate = \array_filter($aEmailsObjects, function ($oItem) use ($aExists, &$aEmailsToUpdate) { + if ($oItem) + { + $sEmail = \strtolower(\trim($oItem->GetEmail())); + if (0 < \strlen($sEmail)) + { + $aEmailsToUpdate[] = $sEmail; + return !\in_array($sEmail, $aExists); + } + } + + return false; + }); + + unset($aEmails, $aEmailsObjects); + if (0 < \count($aEmailsToCreate)) { $oContact = new \RainLoop\Providers\PersonalAddressBook\Classes\Contact(); - foreach ($aEmailsToCreate as $sEmailToCreate) + foreach ($aEmailsToCreate as $oEmail) { - $oContact->Type = \RainLoop\Providers\PersonalAddressBook\Enumerations\ContactType::AUTO; + $oContact->Auto = true; - $oProp = new \RainLoop\Providers\PersonalAddressBook\Classes\Property(); - $oProp->Type = \RainLoop\Providers\PersonalAddressBook\Enumerations\PropertyType::EMAIl_PERSONAL; - $oProp->Value = $sEmailToCreate; + if ('' !== \trim($oEmail->GetEmail())) + { + $oPropEmail = new \RainLoop\Providers\PersonalAddressBook\Classes\Property(); + $oPropEmail->Type = \RainLoop\Providers\PersonalAddressBook\Enumerations\PropertyType::EMAIl_PERSONAL; + $oPropEmail->Value = \strtolower(\trim($oEmail->GetEmail())); - $oContact->Properties[] = $oProp; + $oContact->Properties[] = $oPropEmail; + } - $this->SetContact($oAccount, $oContact); + if ('' !== \trim($oEmail->GetDisplayName())) + { + $oPropName = new \RainLoop\Providers\PersonalAddressBook\Classes\Property(); + $oPropName->Type = \RainLoop\Providers\PersonalAddressBook\Enumerations\PropertyType::FULLNAME; + $oPropName->Value = \trim($oEmail->GetDisplayName()); + + $oContact->Properties[] = $oPropName; + } + + if (0 < \count($oContact->Properties)) + { + $this->ContactSave($oAccount, $oContact); + } + $oContact->Clear(); } } @@ -518,7 +607,7 @@ class MySqlPersonalAddressBook $aEmailsQuoted = \array_map(function ($mItem) use ($self) { return $self->quoteValue($mItem); - }, $aEmails); + }, $aEmailsToUpdate); if (1 === \count($aEmailsQuoted)) { @@ -547,8 +636,10 @@ class MySqlPersonalAddressBook `id_contact` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `id_user` int(11) UNSIGNED NOT NULL, - `display_in_list` varchar(255) NOT NULL DEFAULT \'\', - `type` int(11) UNSIGNED NOT NULL DEFAULT \'0\', + `display` varchar(255) NOT NULL DEFAULT \'\', + `display_name` varchar(255) NOT NULL DEFAULT \'\', + `display_email` varchar(255) NOT NULL DEFAULT \'\', + `auto` int(1) UNSIGNED NOT NULL DEFAULT \'0\', `changed` int(11) UNSIGNED NOT NULL DEFAULT \'0\', PRIMARY KEY(`id_contact`), @@ -607,14 +698,60 @@ class MySqlPersonalAddressBook ))); } + /** + * @param int $iUserID + * @param int $iIdContact + * @return array + */ + private function getContactFreq($iUserID, $iIdContact) + { + $aResult = array(); + + $sTypes = \implode(',', array( + PropertyType::EMAIl_PERSONAL, PropertyType::EMAIl_BUSSINES, PropertyType::EMAIl_OTHER + )); + + $sSql = 'SELECT `value`, `frec` FROM `rainloop_pab_prop` WHERE id_user = :id_user AND `id_contact` = :id_contact AND `type` IN ('.$sTypes.')'; + $aParams = array( + ':id_user' => array($iUserID, \PDO::PARAM_INT), + ':id_contact' => array($iIdContact, \PDO::PARAM_INT) + ); + + $oStmt = $this->prepareAndExecute($sSql, $aParams); + if ($oStmt) + { + $aFetch = $oStmt->fetchAll(\PDO::FETCH_ASSOC); + if (\is_array($aFetch)) + { + foreach ($aFetch as $aItem) + { + if ($aItem && !empty($aItem['value']) && !empty($aItem['frec'])) + { + $aResult[$aItem['value']] = (int) $aItem['frec']; + } + } + } + } + + return $aResult; + } + /** * @param string $sSearch * * @return string */ - protected function specialConvertSearchValue($sSearch, $sEscapeSign = '=') + private function specialConvertSearchValue($sSearch, $sEscapeSign = '=') { return '%'.\str_replace(array($sEscapeSign, '_', '%'), array($sEscapeSign.$sEscapeSign, $sEscapeSign.'_', $sEscapeSign.'%'), $sSearch).'%'; } + + /** + * @return array + */ + protected function getPdoAccessData() + { + return array('mysql', $this->sDsn, $this->sUser, $this->sPassword); + } } \ No newline at end of file diff --git a/plugins/personal-address-book-mysql/README b/plugins/personal-address-book-mysql/README new file mode 100644 index 000000000..30af25e4a --- /dev/null +++ b/plugins/personal-address-book-mysql/README @@ -0,0 +1 @@ +Personal addressbook plugin (MySQL) \ No newline at end of file diff --git a/plugins/personal-address-book-mysql/VERSION b/plugins/personal-address-book-mysql/VERSION new file mode 100644 index 000000000..9f8e9b69a --- /dev/null +++ b/plugins/personal-address-book-mysql/VERSION @@ -0,0 +1 @@ +1.0 \ No newline at end of file diff --git a/plugins/personal-address-book-mysql/index.php b/plugins/personal-address-book-mysql/index.php new file mode 100644 index 000000000..d0c5029ff --- /dev/null +++ b/plugins/personal-address-book-mysql/index.php @@ -0,0 +1,70 @@ +addHook('main.fabrica', 'MainFabrica'); + } + + /** + * @return string + */ + public function Supported() + { + if (!extension_loaded('pdo') || !class_exists('PDO')) + { + return 'The PHP exention PDO (mysql) must be installed to use this plugin'; + } + + $aDrivers = \PDO::getAvailableDrivers(); + if (!is_array($aDrivers) || !in_array('mysql', $aDrivers)) + { + return 'The PHP exention PDO (mysql) must be installed to use this plugin'; + } + + return ''; + } + + /** + * @param string $sName + * @param mixed $oProvider + */ + public function MainFabrica($sName, &$oProvider) + { + if (!$oProvider && 'personal-address-book' === $sName && + $this->Config()->Get('plugin', 'enabled', false)) + { + $sDsn = \trim($this->Config()->Get('plugin', 'pdo_dsn', '')); + $sUser = \trim($this->Config()->Get('plugin', 'user', '')); + $sPassword = (string) $this->Config()->Get('plugin', 'password', ''); + + include_once __DIR__.'/MySqlPersonalAddressBookDriver.php'; + + $oProvider = new MySqlPersonalAddressBookDriver($sDsn, $sUser, $sPassword); + $oProvider->SetLogger($this->Manager()->Actions()->Logger()); + } + } + + /** + * @return array + */ + public function configMapping() + { + return array( + \RainLoop\Plugins\Property::NewInstance('enabled')->SetLabel('Enable') + ->SetType(\RainLoop\Enumerations\PluginPropertyType::BOOL) + ->SetDefaultValue(false), + \RainLoop\Plugins\Property::NewInstance('pdo_dsn')->SetLabel('PDO dsn') + ->SetDefaultValue('mysql:host=127.0.0.1;port=3306;dbname=rainloop'), + \RainLoop\Plugins\Property::NewInstance('user')->SetLabel('DB User') + ->SetDefaultValue('root'), + \RainLoop\Plugins\Property::NewInstance('password')->SetLabel('DB Password') + ->SetType(\RainLoop\Enumerations\PluginPropertyType::PASSWORD) + ->SetDefaultValue('') + ); + } +} diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/mysql-schema.sql b/plugins/personal-address-book-mysql/mysql-schema.sql similarity index 100% rename from rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/mysql-schema.sql rename to plugins/personal-address-book-mysql/mysql-schema.sql diff --git a/rainloop/v/0.0.0/app/libraries/MailSo/Base/Utils.php b/rainloop/v/0.0.0/app/libraries/MailSo/Base/Utils.php index 6605836eb..8802bc944 100644 --- a/rainloop/v/0.0.0/app/libraries/MailSo/Base/Utils.php +++ b/rainloop/v/0.0.0/app/libraries/MailSo/Base/Utils.php @@ -1090,6 +1090,11 @@ class Utils */ public static function Utf8Clear($sUtfString, $sReplaceOn = '') { + if ('' === $sUtfString) + { + return $sUtfString; + } + $sUtfString = @\iconv('UTF-8', 'UTF-8//IGNORE', $sUtfString); $sUtfString = \preg_replace( diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php index 70aa23435..6530645af 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php @@ -76,15 +76,10 @@ class Actions */ private $oLoginProvider; - /** - * @var \RainLoop\Providers\Contacts - */ - private $oContactsProvider; - /** * @var \RainLoop\Providers\PersonalAddressBook */ - private $oPersonalAddressBook; + private $oPersonalAddressBookProvider; /** * @var \RainLoop\Providers\Suggestions @@ -126,8 +121,7 @@ class Actions $this->oSettingsProvider = null; $this->oDomainProvider = null; $this->oLoginProvider = null; - $this->oContactsProvider = null; - $this->oPersonalAddressBook = null; + $this->oPersonalAddressBookProvider = null; $this->oSuggestionsProvider = null; $this->oChangePasswordProvider = null; @@ -203,7 +197,6 @@ class Actions { $oResult = null; $this->Plugins()->RunHook('main.fabrica', array($sName, &$oResult), false); - $this->Plugins()->RunHook('main.fabrica-account', array($sName, &$oResult, &$oAccount), false); if (null === $oResult) { @@ -230,14 +223,8 @@ class Actions // \RainLoop\Providers\Domain\DomainAdminInterface $oResult = new \RainLoop\Providers\Domain\DefaultDomain(APP_PRIVATE_DATA.'domains'); break; - case 'contacts': - // \RainLoop\Providers\Contacts\ContactsInterface - $oResult = new \RainLoop\Providers\Contacts\DefaultContacts($this->Logger()); - break; case 'personal-address-book': -// \RainLoop\Providers\PersonalAddressBook\PersonalAddressBookInterface - $oResult = new \RainLoop\Providers\PersonalAddressBook\MySqlPersonalAddressBook(); - $oResult->SetLogger($this->Logger()); + // \RainLoop\Providers\PersonalAddressBook\PersonalAddressBookInterface break; case 'suggestions': // \RainLoop\Providers\Suggestions\SuggestionsInterface @@ -542,50 +529,36 @@ class Actions } /** - * @return \RainLoop\Providers\Contacts - */ - public function ContactsProvider() - { - if (null === $this->oContactsProvider) - { - $this->oContactsProvider = new \RainLoop\Providers\Contacts( - $this->Config()->Get('labs', 'allow_contacts', true) ? - $this->fabrica('contacts') : null); - } - - return $this->oContactsProvider; - } - - /** - * @return \RainLoop\Providers\Contacts + * @return \RainLoop\Providers\PersonalAddressBook */ public function PersonalAddressBookProvider($oAccount = null) { - if (null === $this->oPersonalAddressBook) + if (null === $this->oPersonalAddressBookProvider) { - $this->oPersonalAddressBook = new \RainLoop\Providers\PersonalAddressBook( - $this->Config()->Get('labs', 'allow_contacts', true) ? - $this->fabrica('personal-address-book', $oAccount) : null); + $this->oPersonalAddressBookProvider = new \RainLoop\Providers\PersonalAddressBook( + $this->fabrica('personal-address-book', $oAccount)); + $sPabVersion = $this->oPersonalAddressBookProvider->Version(); $sVersion = (string) $this->StorageProvider()->Get(null, \RainLoop\Providers\Storage\Enumerations\StorageType::NOBODY, 'PersonalAddressBookVersion', ''); - if ($sVersion !== APP_VERSION && $this->oPersonalAddressBook->IsActive()) + if ($sVersion !== $sPabVersion && + $this->oPersonalAddressBookProvider->IsActive()) { - if ($this->oPersonalAddressBook->SynchronizeStorage()) + if ($this->oPersonalAddressBookProvider->SynchronizeStorage()) { $this->StorageProvider()->Put(null, \RainLoop\Providers\Storage\Enumerations\StorageType::NOBODY, - 'PersonalAddressBookVersion', APP_VERSION); + 'PersonalAddressBookVersion', $sPabVersion); } } } if ($oAccount) { - $this->oPersonalAddressBook->SetAccount($oAccount); + $this->oPersonalAddressBookProvider->SetAccount($oAccount); } - return $this->oPersonalAddressBook; + return $this->oPersonalAddressBookProvider; } /** @@ -922,9 +895,8 @@ class Actions 'AllowThemes' => (bool) $oConfig->Get('webmail', 'allow_themes', true), 'AllowCustomTheme' => (bool) $oConfig->Get('webmail', 'allow_custom_theme', true), 'SuggestionsLimit' => (int) $oConfig->Get('labs', 'suggestions_limit', 50), - 'AllowChangePassword' => false, - 'ContactsIsSupported' => (bool) $this->ContactsProvider()->IsSupported(), - 'ContactsIsAllowed' => (bool) $this->ContactsProvider()->IsActive(), + 'ChangePasswordIsAllowed' => false, + 'ContactsIsAllowed' => false, 'JsHash' => \md5(\RainLoop\Utils::GetConnectionToken()), 'UseImapThread' => (bool) $oConfig->Get('labs', 'use_imap_thread', false), 'UseImapSubscribe' => (bool) $oConfig->Get('labs', 'use_imap_list_subscribe', true), @@ -949,7 +921,8 @@ class Actions $aResult['IncLogin'] = $oAccount->IncLogin(); $aResult['OutLogin'] = $oAccount->OutLogin(); $aResult['AccountHash'] = $oAccount->Hash(); - $aResult['AllowChangePassword'] = $this->ChangePasswordProvider()->PasswordChangePossibility($oAccount); + $aResult['ChangePasswordIsAllowed'] = $this->ChangePasswordProvider()->PasswordChangePossibility($oAccount); + $aResult['ContactsIsAllowed'] = $this->PersonalAddressBookProvider($oAccount)->IsActive(); $oSettings = $this->SettingsProvider()->Load($oAccount); } @@ -3953,7 +3926,7 @@ class Actions $aTo =& $oToCollection->GetAsArray(); foreach ($aTo as /* @var $oEmail \MailSo\Mime\Email */ $oEmail) { - $aArrayToFrec[$oEmail->GetEmail()] = $oEmail->GetEmail(); + $aArrayToFrec[$oEmail->GetEmail()] = $oEmail->ToString(); } } @@ -3991,30 +3964,27 @@ class Actions public function DoContacts() { $oAccount = $this->getAccountFromToken(); + $sSearch = \trim($this->GetActionParam('Search', '')); + $iOffset = (int) $this->GetActionParam('Offset', 0); + $iLimit = (int) $this->GetActionParam('Limit', 20); + $iOffset = 0 > $iOffset ? 0 : $iOffset; + $iLimit = 0 > $iLimit ? 20 : $iLimit; - $bMore = false; - $mResult = false; - if ($this->ContactsProvider()->IsActive()) + if ($this->PersonalAddressBookProvider($oAccount)->IsActive()) { - $mResult = $this->ContactsProvider()->GetContacts($oAccount, 0, RL_CONTACTS_MAX + 1, $sSearch); - if (is_array($mResult)) - { - $bMore = RL_CONTACTS_MAX < \count($mResult); - if ($bMore) - { - $mResult = \array_slice($mResult, 0, RL_CONTACTS_MAX); - } - } + $mResult = $this->PersonalAddressBookProvider($oAccount)->GetContacts($oAccount, + $iOffset, $iLimit, $sSearch, false); } return $this->DefaultResponse(__FUNCTION__, array( - 'Limit' => RL_CONTACTS_MAX, - 'More' => $bMore, + 'Offset' => $iOffset, + 'Limit' => $iLimit, + 'Search' => $sSearch, 'List' => $mResult )); } - + /** * @return array */ @@ -4029,9 +3999,9 @@ class Actions }); $bResult = false; - if ($this->ContactsProvider()->IsActive()) + if (0 < \count($aFilteredUids) && $this->PersonalAddressBookProvider($oAccount)->IsActive()) { - $bResult = $this->ContactsProvider()->DeleteContacts($oAccount, $aFilteredUids); + $bResult = $this->PersonalAddressBookProvider($oAccount)->DeleteContacts($oAccount, $aFilteredUids); } return $this->DefaultResponse(__FUNCTION__, $bResult); @@ -4042,77 +4012,45 @@ class Actions */ public function DoContactSave() { - sleep(1); $oAccount = $this->getAccountFromToken(); $bResult = false; - $sResultID = ''; + $oPab = $this->PersonalAddressBookProvider($oAccount); $sRequestUid = \trim($this->GetActionParam('RequestUid', '')); - if ($this->ContactsProvider()->IsActive() && 0 < \strlen($sRequestUid)) + if ($oPab && $oPab->IsActive() && 0 < \strlen($sRequestUid)) { $sUid = \trim($this->GetActionParam('Uid', '')); - $sName = \trim($this->GetActionParam('Name', '')); - $sEmail = \trim($this->GetActionParam('Email', '')); - $sImageData = \trim($this->GetActionParam('ImageData', '')); - - $oContact = null; + $oContact = new \RainLoop\Providers\PersonalAddressBook\Classes\Contact(); if (0 < \strlen($sUid)) { - if (\is_numeric($sUid)) - { - $oContact = $this->ContactsProvider()->GetContactById($oAccount, (int) $sUid); - } - } - else - { - $oContact = new \RainLoop\Providers\Contacts\Classes\Contact(); + $oContact->IdContact = $sUid; } - if ($oContact) + $aProperties = $this->GetActionParam('Properties', array()); + if (\is_array($aProperties)) { - $oContact->Name = $sName; - $oContact->Emails = array($sEmail); - - if (0 < \strlen($sImageData) && 'data:image/' === substr($sImageData, 0, 11)) + foreach ($aProperties as $aItem) { - $oContact->ImageHash = \md5($sImageData); - } - - if (0 < $oContact->IdContact) - { - $bResult = $this->ContactsProvider()->UpdateContact($oAccount, $oContact); - } - else - { - $bResult = $this->ContactsProvider()->CreateContact($oAccount, $oContact); - } - - if ($bResult && 0 < $oContact->IdContact) - { - $sResultID = $oContact->IdContact; - $aMatches = array(); - if ($bResult && $oContact && 0 < $oContact->IdContact && 0 < \strlen($oContact->ImageHash) && - 0 < \strlen($sImageData) && - \preg_match('/^data:(image\/(jpeg|jpg|png|bmp));base64,(.+)$/i', $sImageData, $aMatches) && - !empty($aMatches[1]) && !empty($aMatches[3])) + if ($aItem && isset($aItem[0], $aItem[1]) && + \is_numeric($aItem[0])) { - $this->StorageProvider()->Put($oAccount, - \RainLoop\Providers\Storage\Enumerations\StorageType::USER, - 'contacts/'.$oContact->ImageHash, $aMatches[1].'|||'.$aMatches[3]); + $oProp = new \RainLoop\Providers\PersonalAddressBook\Classes\Property(); + $oProp->Type = (int) $aItem[0]; + $oProp->Value = $aItem[1]; + + $oContact->Properties[] = $oProp; } } - else - { - $bResult = false; - } } + + $bResult = $oPab->ContactSave($oAccount, $oContact); } return $this->DefaultResponse(__FUNCTION__, array( 'RequestUid' => $sRequestUid, - 'ResultID' => $sResultID, + 'ResultID' => $bResult ? $oContact->IdContact : '', 'Result' => $bResult )); } @@ -4133,73 +4071,7 @@ class Actions $aResult = $oPab->GetSuggestions($oAccount, $sQuery); } - return $this->DefaultResponse(__FUNCTION__, array( - 'More' => false, - 'List' => $aResult - )); - } - - /** - * @return array - */ - public function DoSuggestionsDep() - { - $oAccount = $this->getAccountFromToken(); - - $sQuery = \trim($this->GetActionParam('Query', '')); - $iPage = (int) $this->GetActionParam('Page', 0); - - $bMore = false; - $aResult = array(); - if (0 < \strlen($sQuery) && 0 < $iPage && $this->ContactsProvider()->IsActive()) - { - $mResult = $this->ContactsProvider()->GetContacts($oAccount, ($iPage - 1) * RL_CONTACTS_PER_PAGE, RL_CONTACTS_PER_PAGE + 1, $sQuery); - if (\is_array($mResult) && 0 < \count($mResult)) - { - $bMore = RL_CONTACTS_PER_PAGE < \count($mResult); - if ($bMore) - { - $mResult = \array_slice($mResult, 0, RL_CONTACTS_PER_PAGE); - } - - foreach ($mResult as $oItem) - { - /* @var $oItem \RainLoop\Providers\Contacts\Classes\Contact */ - $aEmails = $oItem->Emails; - if (0 < \count($aEmails)) - { - foreach ($aEmails as $sEmail) - { - if (0 < \strlen($sEmail)) - { - $aResult[] = array($sEmail, $oItem->Name); - } - } - } - } - } - } - - return $this->DefaultResponse(__FUNCTION__, array( - 'More' => $bMore, - 'List' => $aResult - )); - -// $oAccount = $this->getAccountFromToken(); -// -// $aResult = array(); -// $sQuery = \trim($this->GetActionParam('Query', '')); -// if (0 < \strlen($sQuery) && $oAccount) -// { -// $aResult = $this->SuggestionsProvider()->Process($oAccount, $sQuery); -// -// if (0 === count($aResult) && false !== \strpos(strtolower($oAccount->Email()), \strtolower($sQuery))) -// { -// $aResult[] = array($oAccount->Email(), $oAccount->Name()); -// } -// } -// -// return $this->DefaultResponse(__FUNCTION__, $aResult); + return $this->DefaultResponse(__FUNCTION__, $aResult); } /** @@ -4207,19 +4079,8 @@ class Actions */ public function DoEmailsPicsHashes() { - $oAccount = $this->getAccountFromToken(); - - $aResult = array(); - if ($this->ContactsProvider()->IsActive()) - { - $mResult = $this->ContactsProvider()->GetContactsImageHashes($oAccount); - if (\is_array($mResult) && 0 < \count($mResult)) - { - $aResult = $mResult; - } - } - - return $this->DefaultResponse(__FUNCTION__, $aResult); +// $oAccount = $this->getAccountFromToken(); + return $this->DefaultResponse(__FUNCTION__, array()); } /** @@ -5681,7 +5542,7 @@ class Actions if ($oAttachment) { $sContentLocation = $oAttachment->ContentLocation(); - if ($sContentLocation && 0 < strlen($sContentLocation)) + if ($sContentLocation && 0 < \strlen($sContentLocation)) { $aContentLocationUrls[] = $oAttachment->ContentLocation(); } @@ -5741,6 +5602,25 @@ class Actions 'Emails' => $mResponse->Emails )); } + else if ('RainLoop\Providers\PersonalAddressBook\Classes\Contact' === $sClassName) + { + $mResult = \array_merge($this->objectData($mResponse, $sParent, $aParameters), array( + /* @var $mResponse \RainLoop\Providers\PersonalAddressBook\Classes\Contact */ + 'IdContact' => $mResponse->IdContact, + 'Display' => \MailSo\Base\Utils::Utf8Clear($mResponse->Display), + 'Properties' => $this->responseObject($mResponse->Properties, $sParent, $aParameters) + )); + } + else if ('RainLoop\Providers\PersonalAddressBook\Classes\Property' === $sClassName) + { + $mResult = \array_merge($this->objectData($mResponse, $sParent, $aParameters), array( + /* @var $mResponse \RainLoop\Providers\PersonalAddressBook\Classes\Property */ + 'Type' => $mResponse->Type, + 'TypeCustom' => $mResponse->TypeCustom, + 'Value' => \MailSo\Base\Utils::Utf8Clear($mResponse->Value), + 'ValueClear' => \MailSo\Base\Utils::Utf8Clear($mResponse->ValueClear) + )); + } else if ('MailSo\Mail\Attachment' === $sClassName) { $oAccount = $this->getAccountFromToken(false); diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Common/PdoAbstract.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Common/PdoAbstract.php index f35fc938c..b37cd3549 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Common/PdoAbstract.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Common/PdoAbstract.php @@ -4,6 +4,11 @@ namespace RainLoop\Common; abstract class PdoAbstract { + /** + * @var \PDO + */ + protected $oPDO = null; + /** * @var \MailSo\Log\Logger */ @@ -35,8 +40,7 @@ abstract class PdoAbstract */ protected function getPdoAccessData() { - $aResult = array('mysql', 'mysql:host=127.0.0.1;port=3306;dbname=rainloop', 'root', ''); - return $aResult; + return array('', '', '', ''); } /** @@ -46,10 +50,9 @@ abstract class PdoAbstract */ protected function getPDO() { - static $aPdoCache = null; - if ($aPdoCache) + if ($this->oPDO) { - return $aPdoCache; + return $this->oPDO; } if (!\class_exists('PDO')) @@ -57,7 +60,6 @@ abstract class PdoAbstract throw new \Exception('Class PDO does not exist'); } - // TODO $sType = $sDsn = $sDbLogin = $sDbPassword = ''; list($sType, $sDsn, $sDbLogin, $sDbPassword) = $this->getPdoAccessData(); $this->sDbType = $sType; @@ -83,7 +85,7 @@ abstract class PdoAbstract if ($oPdo) { - $aPdoCache = $oPdo; + $this->oPDO = $oPdo; } else { diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php index 2c9afe449..641ef142f 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php @@ -212,7 +212,6 @@ Enables caching in the system'), 'in_iframe' => array(false), 'custom_login_link' => array(''), 'custom_logout_link' => array(''), - 'allow_contacts' => array(true), 'allow_external_login' => array(false), 'allow_admin_panel' => array(true), 'fast_cache_memcache_host' => array('127.0.0.1'), diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook.php index b182e1e28..0e96bc7ff 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook.php @@ -23,6 +23,15 @@ class PersonalAddressBook extends \RainLoop\Providers\AbstractProvider } } + /** + * @return string + */ + public function Version() + { + return $this->oDriver instanceof \RainLoop\Providers\PersonalAddressBook\PersonalAddressBookInterface ? + $this->oDriver->Version() : 'null'; + } + /** * @return bool */ @@ -33,12 +42,66 @@ class PersonalAddressBook extends \RainLoop\Providers\AbstractProvider } /** + * @param \RainLoop\Account $oAccount + * @param \RainLoop\Providers\PersonalAddressBook\Classes\Contact $oContact + * * @return bool */ - public function IsSupported() + public function ContactSave($oAccount, &$oContact) { - return $this->oDriver instanceof \RainLoop\Providers\PersonalAddressBook\PersonalAddressBookInterface && - $this->oDriver->IsSupported(); + return $this->IsActive() ? $this->oDriver->ContactSave($oAccount, $oContact) : false; + } + + /** + * @param \RainLoop\Account $oAccount + * @param array $aContactIds + * + * @return bool + */ + public function DeleteContacts($oAccount, $aContactIds) + { + return $this->IsActive() ? $this->oDriver->DeleteContacts($oAccount, $aContactIds) : false; + } + + /** + * @param \RainLoop\Account $oAccount + * @param int $iOffset = 0 + * @param type $iLimit = 20 + * @param string $sSearch = '' + * @param bool $bAutoOnly = false + * + * @return array + */ + public function GetContacts($oAccount, + $iOffset = 0, $iLimit = 20, $sSearch = '', $bAutoOnly = false) + { + return $this->IsActive() ? $this->oDriver->GetContacts($oAccount, + $iOffset, $iLimit, $sSearch, $bAutoOnly) : array(); + } + + /** + * @param \RainLoop\Account $oAccount + * @param string $sSearch + * @param int $iLimit = 20 + * + * @return array + * + * @throws \InvalidArgumentException + */ + public function GetSuggestions($oAccount, $sSearch, $iLimit = 20) + { + return $this->IsActive() ? $this->oDriver->GetSuggestions($oAccount, $sSearch, $iLimit) : array(); + } + + /** + * @param \RainLoop\Account $oAccount + * @param array $aEmails + * + * @return bool + */ + public function IncFrec($oAccount, $aEmails) + { + return $this->IsActive() ? $this->oDriver->IncFrec($oAccount, $aEmails) : false; } /** @@ -46,31 +109,7 @@ class PersonalAddressBook extends \RainLoop\Providers\AbstractProvider */ public function SynchronizeStorage() { - return $this->IsSupported() && \method_exists($this->oDriver, 'SynchronizeStorage') && + return $this->IsActive() && \method_exists($this->oDriver, 'SynchronizeStorage') && $this->oDriver->SynchronizeStorage(); } - - /** - * @param \RainLoop\Account $oAccount - * @param string $sSearch - * - * @return array - * - * @throws \InvalidArgumentException - */ - public function GetSuggestions($oAccount, $sSearch) - { - return $this->IsActive() ? $this->oDriver->GetSuggestions($oAccount, $sSearch) : array(); - } - - /** - * @param \RainLoop\Account $oAccount - * @param array $aEmail - * - * @return bool - */ - public function IncFrec($oAccount, $aEmail) - { - return $this->IsActive() ? $this->oDriver->IncFrec($oAccount, $aEmail) : false; - } } \ No newline at end of file diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/Classes/Contact.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/Classes/Contact.php index d1bdffcfc..9377cbaf3 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/Classes/Contact.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/Classes/Contact.php @@ -5,24 +5,29 @@ namespace RainLoop\Providers\PersonalAddressBook\Classes; class Contact { /** - * @var int + * @var string */ public $IdContact; /** * @var string */ - public $DisplayInList; + public $Display; /** - * @var int + * @var string */ - public $Type; + public $DisplayName; + + /** + * @var string + */ + public $DisplayEmail; /** * @var bool */ - public $CanBeChanged; + public $Auto; /** * @var int @@ -32,7 +37,7 @@ class Contact /** * @var array */ - public $TagsIds; + public $Tags; /** * @var array @@ -46,13 +51,14 @@ class Contact public function Clear() { - $this->IdContact = 0; + $this->IdContact = ''; $this->IdUser = 0; - $this->DisplayInList = ''; - $this->Type = \RainLoop\Providers\PersonalAddressBook\Enumerations\ContactType::DEFAULT_; - $this->CanBeChanged = false; + $this->Display = ''; + $this->DisplayName = ''; + $this->DisplayEmail = ''; + $this->Auto = false; $this->Changed = \time(); - $this->TagsIds = array(); + $this->Tags = array(); $this->Properties = array(); } @@ -79,8 +85,11 @@ class Contact } } } - - $this->DisplayInList = 0 < \strlen($sDisplayName) ? $sDisplayName : (!empty($sDisplayEmail) ? $sDisplayEmail : ''); + + $this->DisplayName = $sDisplayName; + $this->DisplayEmail = $sDisplayEmail; + + $this->Display = 0 < \strlen($sDisplayName) ? $sDisplayName : (!empty($sDisplayEmail) ? $sDisplayEmail : ''); } /** diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/Classes/Property.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/Classes/Property.php index 099f14040..22bdaacd7 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/Classes/Property.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/Classes/Property.php @@ -88,8 +88,8 @@ class Property if ($this->IsPhone()) { $sPhone = $this->Value; - $sPhone = \preg_replace('^[+]+', '', $sPhone); - $sPhone = \preg_replace('[^\d]', '', $sPhone); + $sPhone = \preg_replace('/^[+]+/', '', $sPhone); + $sPhone = \preg_replace('/[^\d]/', '', $sPhone); $this->ValueClear = $sPhone; } } diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/Enumerations/ContactType.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/Enumerations/ContactType.php deleted file mode 100644 index 0b279137b..000000000 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/PersonalAddressBook/Enumerations/ContactType.php +++ /dev/null @@ -1,10 +0,0 @@ - -
-
-

Notice!

-
- Contacts functions are not supported. -
- You need to install or enable PDO (sqlite) exstenstion on your server. -
-
General diff --git a/rainloop/v/0.0.0/app/templates/Views/PopupsContacts.html b/rainloop/v/0.0.0/app/templates/Views/PopupsContacts.html index 81682e9c8..3ad8b255d 100644 --- a/rainloop/v/0.0.0/app/templates/Views/PopupsContacts.html +++ b/rainloop/v/0.0.0/app/templates/Views/PopupsContacts.html @@ -1,104 +1,121 @@ -
- -
+
+ +
diff --git a/rainloop/v/0.0.0/static/css/app.css b/rainloop/v/0.0.0/static/css/app.css index a9a5c913e..5842d863e 100644 --- a/rainloop/v/0.0.0/static/css/app.css +++ b/rainloop/v/0.0.0/static/css/app.css @@ -7242,58 +7242,27 @@ html.rl-message-fullscreen .messageView .b-content .buttonFull { color: #999; } .b-contacts-content.modal .b-view-content .top-part { - margin-top: 20px; + padding-top: 20px; } -.b-contacts-content.modal .b-view-content .top-part .control-label { - text-align: center; -} -.b-contacts-content.modal .b-view-content .image-wrapper { - margin-left: 30px; - border-radius: 10px; -} -.b-contacts-content.modal .b-view-content .image-wrapper img { - border-radius: 10px; +.b-contacts-content.modal .b-view-content .property-line { + margin-bottom: 5px; } .b-contacts-content.modal .b-view-content .top-row { padding: 10px 0; height: 30px; } -.b-contacts-content.modal .b-view-content .contactEmptyValueClick, -.b-contacts-content.modal .b-view-content .contactValueClick, -.b-contacts-content.modal .b-view-content .contactValueInput { - display: inline-block; - font-size: 24px; - line-height: 28px; - height: 28px; +.b-contacts-content.modal .b-view-content .add-link { + padding-top: 5px; + font-size: 12px; + color: #aaa; } -.b-contacts-content.modal .b-view-content .contactEmptyValueClick, -.b-contacts-content.modal .b-view-content .contactValueClick { - color: #ddd; - cursor: pointer; - margin: 5px 0 0 7px; -} -.b-contacts-content.modal .b-view-content .contactValueInput { - padding-left: 6px; -} -.b-contacts-content.modal .b-view-content .contactEmptyValueClick { - border-bottom: 1px dashed #ddd; -} -.b-contacts-content.modal .b-view-content .contactValueClick { - color: #555; - border-bottom: 11px dashed transparent; -} -.b-contacts-content.modal .b-view-content .contactValueClick:hover { - color: #000; - border-bottom: 1px dashed #000; -} -.b-contacts-content.modal .b-view-content .hasError .contactValueClick, .b-contacts-content.modal .b-view-content .hasError .contactValueInput { color: #ee5f5b; border: 1px solid #ee5f5b; } .b-contacts-content.modal .b-view-content .button-save-contact { position: absolute; - bottom: 20px; + top: 20px; right: 20px; } .b-contacts-content .e-contact-item { diff --git a/rainloop/v/0.0.0/static/css/app.min.css b/rainloop/v/0.0.0/static/css/app.min.css index ca8003d70..242b3be80 100644 --- a/rainloop/v/0.0.0/static/css/app.min.css +++ b/rainloop/v/0.0.0/static/css/app.min.css @@ -1,4 +1,4 @@ /*! jQuery UI - v1.10.3 - 2013-11-25 * http://jqueryui.com * Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.autocomplete.css, jquery.ui.menu.css, jquery.ui.theme.css -* Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:0}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;width:100%;list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;min-height:0;font-weight:400}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:400;margin:-1px}.ui-menu .ui-state-disabled{font-weight:400;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc;color:#222;font-weight:700}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#eee;font-weight:400;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #ccc;background:#eee;font-weight:400;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff;font-weight:400;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:2px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:2px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:2px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:2px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}/*! normalize.css 2012-03-11T12:53 UTC - http://github.com/necolas/normalize.css */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:hover,a:active{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.75em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:1em 40px}dfn{font-style:italic}mark{background:#ff0;color:#000}p,pre{margin:1em 0}pre,code,kbd,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:75%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@font-face{font-family:icomoon;src:url(fonts/icomoon.eot);src:url(fonts/icomoon.eot?#iefix) format('embedded-opentype'),url(fonts/icomoon.woff) format('woff'),url(fonts/icomoon.ttf) format('truetype'),url(fonts/icomoon.svg#icomoon) format('svg');font-weight:400;font-style:normal}[data-icon]:before{font-family:icomoon;content:attr(data-icon);speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased}.icon-paperplane,.icon-reply,.icon-reply-all,.icon-forward,.icon-search,.icon-add-to-list,.icon-info,.icon-arrow-right,.icon-arrow-down,.icon-ellipsis,.icon-pencil,.icon-image,.icon-music,.icon-film,.icon-print,.icon-calendar,.icon-key,.icon-cog,.icon-fire,.icon-rocket,.icon-checkbox-checked,.icon-checkbox-unchecked,.icon-checkbox-partial,.icon-radio-checked,.icon-radio-unchecked,.icon-google,.icon-google-plus,.icon-facebook,.icon-twitter,.icon-youtube,.icon-file-pdf,.icon-file-word,.icon-file-excel,.icon-file-powerpoint,.icon-file-xml,.icon-file-css,.icon-warning,.icon-switch,.icon-wrench,.icon-remove,.icon-ok,.icon-plus,.icon-minus,.icon-attachment,.icon-arrow-left,.icon-arrow-up--upload,.icon-arrow-right-2,.icon-arrow-down-2,.icon-file,.icon-file-zip,.icon-console,.icon-floppy,.icon-user,.icon-envelope,.icon-user-add,.icon-eye,.icon-arrow-right-3,.icon-arrow-down-3,.icon-facebook-2,.icon-spinner,.icon-lightning,.icon-trash,.icon-download,.icon-upload,.icon-settings5,.icon-bug,.icon-libreoffice,.icon-file-openoffice,.icon-google-drive,.icon-edit2,.icon-phonebook,.icon-book,.icon-spinner-2,.icon-bell,.icon-cart,.icon-cog-2,.icon-legacyfilemanager,.icon-favorite,.icon-favorite2,.icon-loved,.icon-love,.icon-scaleup,.icon-scaledown,.icon-opennewwindow,.icon-repeat,.icon-reorder,.icon-skype,.icon-dropbox{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased}.icon-paperplane:before{content:"\e000"}.icon-reply:before{content:"\e001"}.icon-reply-all:before{content:"\e002"}.icon-forward:before{content:"\e003"}.icon-search:before{content:"\e004"}.icon-add-to-list:before{content:"\e005"}.icon-info:before{content:"\e006"}.icon-arrow-right:before{content:"\e007"}.icon-arrow-down:before{content:"\e008"}.icon-ellipsis:before{content:"\e009"}.icon-pencil:before{content:"\e00a"}.icon-image:before{content:"\e00b"}.icon-music:before{content:"\e00c"}.icon-film:before{content:"\e00d"}.icon-print:before{content:"\e00e"}.icon-calendar:before{content:"\e00f"}.icon-key:before{content:"\e010"}.icon-cog:before{content:"\e011"}.icon-fire:before{content:"\e012"}.icon-rocket:before{content:"\e013"}.icon-checkbox-checked:before{content:"\e014"}.icon-checkbox-unchecked:before{content:"\e015"}.icon-checkbox-partial:before{content:"\e016"}.icon-radio-checked:before{content:"\e017"}.icon-radio-unchecked:before{content:"\e018"}.icon-google:before{content:"\e019"}.icon-google-plus:before{content:"\e01a"}.icon-facebook:before{content:"\e01b"}.icon-twitter:before{content:"\e01c"}.icon-youtube:before{content:"\e01d"}.icon-file-pdf:before{content:"\e01e"}.icon-file-word:before{content:"\e01f"}.icon-file-excel:before{content:"\e020"}.icon-file-powerpoint:before{content:"\e021"}.icon-file-xml:before{content:"\e022"}.icon-file-css:before{content:"\e023"}.icon-warning:before{content:"\e024"}.icon-switch:before{content:"\e025"}.icon-wrench:before{content:"\e026"}.icon-remove:before{content:"\e027"}.icon-ok:before{content:"\e028"}.icon-plus:before{content:"\e029"}.icon-minus:before{content:"\e02a"}.icon-attachment:before{content:"\e02b"}.icon-arrow-left:before{content:"\e02c"}.icon-arrow-up--upload:before{content:"\e02d"}.icon-arrow-right-2:before{content:"\e02e"}.icon-arrow-down-2:before{content:"\e02f"}.icon-file:before{content:"\e030"}.icon-file-zip:before{content:"\e031"}.icon-console:before{content:"\e032"}.icon-floppy:before{content:"\e033"}.icon-user:before{content:"\e034"}.icon-envelope:before{content:"\e035"}.icon-user-add:before{content:"\e036"}.icon-eye:before{content:"\e037"}.icon-arrow-right-3:before{content:"\e038"}.icon-arrow-down-3:before{content:"\e039"}.icon-facebook-2:before{content:"\e03a"}.icon-spinner:before{content:"\e03b"}.icon-lightning:before{content:"\e03c"}.icon-trash:before{content:"\e03d"}.icon-download:before{content:"\e03e"}.icon-upload:before{content:"\e03f"}.icon-settings5:before{content:"\e040"}.icon-bug:before{content:"\e041"}.icon-libreoffice:before{content:"\e042"}.icon-file-openoffice:before{content:"\e043"}.icon-google-drive:before{content:"\e044"}.icon-edit2:before{content:"\e045"}.icon-phonebook:before{content:"\e046"}.icon-book:before{content:"\e047"}.icon-spinner-2:before{content:"\e048"}.icon-bell:before{content:"\e049"}.icon-cart:before{content:"\e04a"}.icon-cog-2:before{content:"\e04b"}.icon-legacyfilemanager:before{content:"\e04c"}.icon-favorite:before{content:"\e04d"}.icon-favorite2:before{content:"\e04e"}.icon-loved:before{content:"\e04f"}.icon-love:before{content:"\e050"}.icon-scaleup:before{content:"\e051"}.icon-scaledown:before{content:"\e052"}.icon-opennewwindow:before{content:"\e053"}.icon-repeat:before{content:"\e054"}.icon-reorder:before{content:"\e055"}.icon-skype:before{content:"\e056"}.icon-dropbox:before{content:"\e057"}.nano{overflow :hidden!important}.nano .content{position :absolute;overflow :scroll;top :0;right :0;bottom :0;left :0;-webkit-overflow-scrolling:touch}.nano .content .content-wrapper{height:100%}.nano .content::-webkit-scrollbar{visibility:hidden}.has-scrollbar .content::-webkit-scrollbar{visibility:hidden}.nano-visibility-hidden::-webkit-scrollbar{visibility:hidden}.nano>.pane{background :none;position :absolute;width :5px;right :0;top :1px;bottom :1px;opacity :.01;filter:alpha(opacity=1);-webkit-transition :.4s;-moz-transition :.4s;-o-transition :.4s;transition :.4s;-moz-border-radius :5px;-webkit-border-radius :5px;border-radius :5px;z-index:10000;margin :2px}.nano>.pane2{background :none;position :absolute;height :5px;right :1px;left :1px;bottom :0;opacity :.01;filter:alpha(opacity=1);-webkit-transition :.4s;-moz-transition :.4s;-o-transition :.4s;transition :.4s;-moz-border-radius :5px;-webkit-border-radius :5px;border-radius :5px;z-index:10000;margin :2px}.nano>.pane>.slider{background-color:#999;background-color:rgba(0,0,0,.3);position :relative;margin :0;-moz-border-radius :3px;-webkit-border-radius :3px;border-radius :3px;width :5px}.nano>.pane2>.slider2{background-color:#999;background-color:rgba(0,0,0,.3);position :relative;margin :0;-moz-border-radius :3px;-webkit-border-radius :3px;border-radius :3px;height :5px}.nano:hover>.pane,.nano:hover>.pane2,.pane.active,.pane2.active,.pane.flashed,.pane2.flashed{visibility :visible\9;opacity :.99;filter:alpha(opacity=99)}.nano>.pane:hover,.nano>.pane.active{background-color:rgba(0,0,0,.15)}.nano>.pane2:hover,.nano>.pane2.active{background-color:rgba(0,0,0,.15)}.nano>.pane:hover>.slider,.nano>.pane.active>.slider{background-color:rgba(0,0,0,.4)}.nano>.pane2:hover>.slider2,.nano>.pane2.active>.slider2{background-color:rgba(0,0,0,.4)}.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#0b0b0b;opacity:.8;filter:alpha(opacity=80)}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:0!important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-container:before{content:'';display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-inline-holder .mfp-content,.mfp-ajax-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-close,.mfp-arrow,.mfp-preloader,.mfp-counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none!important}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;display:block;outline:0;padding:0;z-index:1046;-webkit-box-shadow:none;box-shadow:none}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:.65;padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:28px;font-family:Arial,Baskerville,monospace}.mfp-close:hover,.mfp-close:focus{opacity:1}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#333}.mfp-image-holder .mfp-close,.mfp-iframe-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px}.mfp-arrow{position:absolute;opacity:.65;margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:hover,.mfp-arrow:focus{opacity:1}.mfp-arrow:before,.mfp-arrow:after,.mfp-arrow .mfp-b,.mfp-arrow .mfp-a{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after,.mfp-arrow .mfp-a{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before,.mfp-arrow .mfp-b{border-top-width:21px;border-bottom-width:21px}.mfp-arrow-left{left:0}.mfp-arrow-left:after,.mfp-arrow-left .mfp-a{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before,.mfp-arrow-left .mfp-b{margin-left:25px;border-right:27px solid #3f3f3f}.mfp-arrow-right{right:0}.mfp-arrow-right:after,.mfp-arrow-right .mfp-a{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before,.mfp-arrow-right .mfp-b{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:40px 0;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width:800px) and (orientation:landscape),screen and (max-height:300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure{}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}@media all and (max-width:900px){.mfp-arrow{-webkit-transform:scale(0.75);transform:scale(0.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}.mfp-ie7 .mfp-img{padding:0}.mfp-ie7 .mfp-bottom-bar{width:600px;left:50%;margin-left:-300px;margin-top:5px;padding-bottom:5px}.mfp-ie7 .mfp-container{padding:0}.mfp-ie7 .mfp-content{padding-top:44px}.mfp-ie7 .mfp-close{top:0;right:0;padding-top:0}.mfp-fade.mfp-bg{opacity:0;-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out;transition:all .2s ease-out}.mfp-fade.mfp-bg.mfp-ready{opacity:.8}.mfp-fade.mfp-bg.mfp-removing{opacity:0}.mfp-fade.mfp-wrap .mfp-content{opacity:0;-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out;-webkit-transform:translateX(-50px);-moz-transform:translateX(-50px);transform:translateX(-50px)}.mfp-fade.mfp-wrap.mfp-ready .mfp-content{opacity:1;-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translateX(0)}.mfp-fade.mfp-wrap.mfp-removing .mfp-content{opacity:0;-webkit-transform:translateX(50px);-moz-transform:translateX(50px);transform:translateX(50px)}.simple-pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.simple-pace-inactive{display:none}.simple-pace .simple-pace-progress{background-color:#939595;position:fixed;z-index:2000;top:0;left:0;height:3px;overflow:hidden;-webkit-transition:width .5s;-moz-transition:width .5s;-o-transition:width .5s;transition:width .5s}.simple-pace .simple-pace-progress-inner{position:absolute;top:0;left:0;right:-32px;bottom:0;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.3)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.3)),color-stop(0.75,rgba(255,255,255,.3)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.3) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.3) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.3) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.3) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.3) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.3) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.3) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.3) 75%,transparent 75%,transparent);-webkit-background-size:32px 32px;-moz-background-size:32px 32px;-o-background-size:32px 32px;background-size:32px 32px;-webkit-animation:simple-pace-stripe-animation 500ms linear infinite;-moz-animation:simple-pace-stripe-animation 500ms linear infinite;-ms-animation:simple-pace-stripe-animation 500ms linear infinite;-o-animation:simple-pace-stripe-animation 500ms linear infinite;animation:simple-pace-stripe-animation 500ms linear infinite}@-webkit-keyframes simple-pace-stripe-animation{0%{-webkit-transform:none;transform:none}100%{-webkit-transform:translate(-32px,0);transform:translate(-32px,0)}}@-moz-keyframes simple-pace-stripe-animation{0%{-moz-transform:none;transform:none}100%{-moz-transform:translate(-32px,0);transform:translate(-32px,0)}}@-o-keyframes simple-pace-stripe-animation{0%{-o-transform:none;transform:none}100%{-o-transform:translate(-32px,0);transform:translate(-32px,0)}}@-ms-keyframes simple-pace-stripe-animation{0%{-ms-transform:none;transform:none}100%{-ms-transform:translate(-32px,0);transform:translate(-32px,0)}}@keyframes simple-pace-stripe-animation{0%{transform:none;transform:none}100%{transform:translate(-32px,0);transform:translate(-32px,0)}}.inputosaurus-container{background-color:#fff;border:1px solid #bcbec0;margin:0 5px 0 0;padding:0 3px;display :inline-block;cursor:text;font-size :14px;font-family :"Helvetica Neue",Helvetica,Arial,sans-serif}.inputosaurus-container li{display :block;float :left;overflow:hidden;margin :2px 2px 0;padding :2px 3px;white-space :nowrap;overflow :hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;-ms-text-overflow:ellipsis;background-color:#e5eff7;border:#a9cae4 solid 1px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;color:#5b9bcd;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.75) inset;-moz-box-shadow:0 1px 0 rgba(255,255,255,.75) inset;box-shadow:0 1px 0 rgba(255,255,255,.75) inset;line-height :20px;cursor:default}.inputosaurus-container li.inputosaurus-selected{background-color:#bdd6eb}.inputosaurus-container li a{font-size:16px;color:#5b9bcd;padding :1px;text-decoration :none;outline :none}.inputosaurus-container .inputosaurus-input{border:0;box-shadow:none;background-color:#fff;margin-top :3px}.inputosaurus-container .inputosaurus-input input{border:0;height :23px;font-size :14px;line-height :20px;color :#555;margin :0;outline :none;padding :0 0 1px 1px;width :25px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.inputosaurus-container .inputosaurus-input input:hover{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.inputosaurus-input-hidden{display:none}.flag-wrapper{width:24px;height:16px;display:inline-block}.flag{width:16px;height:11px;display:inline-block;background:url(flags.png) no-repeat}.flag.flag-en{background-position:-144px -154px}.flag.flag-en-us{background-position:-144px -154px}.flag.flag-en-gb{background-position:-240px -33px}.flag.flag-en-ca{background-position:-48px -22px}.flag.flag-nl,.flag.flag-nl-nl{background-position:-80px -110px}.flag.flag-pl,.flag.flag-pl-pl{background-position:-32px -121px}.flag.flag-ru,.flag.flag-ru-ru{background-position:-224px -121px}.flag.flag-ua,.flag.flag-ua-ua{background-position:-96px -154px}.flag.flag-de,.flag.flag-de-de{background-position:-80px -33px}.flag.flag-it,.flag.flag-it-it{background-position:-208px -66px}.flag.flag-is,.flag.flag-is-is{background-position:-192px -66px}.flag.flag-lv,.flag.flag-lv-lv{background-position:-112px -88px}.flag.flag-fr,.flag.flag-fr-fr,.flag.flag-fr-ca{background-position:-144px -44px}.flag.flag-es,.flag.flag-es-es,.flag.flag-es-la{background-position:-16px -44px}.flag.flag-ja,.flag.flag-jp,.flag.flag-ja-jp{background-position:-16px -77px}.flag.flag-pt,.flag.flag-pt-pt{background-position:-112px -121px}.flag.flag-pt-br{background-position:-192px -11px}.flag.flag-cn,.flag.flag-zh-tw,.flag.flag-zh-cn,.flag.flag-zh-hk{background-position:-208px -22px}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:"";line-height:0}.row:after{clear:both}[class*=span]{float:left;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0}.row-fluid:after{clear:both}.row-fluid [class*=span]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%}.row-fluid [class*=span]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*=span].hide,.row-fluid [class*=span].hide{display:none}[class*=span].pull-right,.row-fluid [class*=span].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;content:"";line-height:0}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:20px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:700}em{font-style:italic}cite{font-style:normal}.muted{color:#999}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:700;line-height:1;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;line-height:1;color:#999}h1{font-size:36px;line-height:40px}h2{font-size:30px;line-height:40px}h3{font-size:24px;line-height:40px}h4{font-size:18px;line-height:20px}h5{font-size:14px;line-height:20px}h6{font-size:12px;line-height:20px}h1 small{font-size:24px}h2 small{font-size:18px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:700}dd{margin-left:10px}.dl-horizontal dt{float:left;width:120px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:130px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:25px}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:400;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type=text],input[type=password],input[type=datetime],input[type=datetime-local],input[type=date],input[type=month],input[type=time],input[type=week],input[type=number],input[type=email],input[type=url],input[type=search],input[type=tel],input[type=color],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:9px;font-size:14px;line-height:20px;color:#555;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}input,textarea{width:210px}textarea{height:auto}textarea,input[type=text],input[type=password],input[type=datetime],input[type=datetime-local],input[type=date],input[type=month],input[type=time],input[type=week],input[type=number],input[type=email],input[type=url],input[type=search],input[type=tel],input[type=color],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type=text]:focus,input[type=password]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=date]:focus,input[type=month]:focus,input[type=time]:focus,input[type=week]:focus,input[type=number]:focus,input[type=email]:focus,input[type=url]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=color]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}input[type=radio],input[type=checkbox]{margin:4px 0 0;*margin-top:0;margin-top:1px \9;line-height:normal;cursor:pointer}input[type=file],input[type=image],input[type=submit],input[type=reset],input[type=button],input[type=radio],input[type=checkbox]{width:auto}select,input[type=file]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;border:1px solid #bbb;background-color:#fff}select[multiple],select[size]{height:auto}select:focus,input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.025);box-shadow:inset 0 1px 2px rgba(0,0,0,.025);cursor:not-allowed}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:18px;padding-left:18px}.radio input[type=radio],.checkbox input[type=checkbox]{float:left;margin-left:-18px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*=span],select[class*=span],textarea[class*=span],.uneditable-input[class*=span],.row-fluid input[class*=span],.row-fluid select[class*=span],.row-fluid textarea[class*=span],.row-fluid .uneditable-input[class*=span]{float:none;margin-left:0}.input-append input[class*=span],.input-append .uneditable-input[class*=span],.input-prepend input[class*=span],.input-prepend .uneditable-input[class*=span],.row-fluid input[class*=span],.row-fluid select[class*=span],.row-fluid textarea[class*=span],.row-fluid .uneditable-input[class*=span],.row-fluid .input-prepend [class*=span],.row-fluid .input-append [class*=span]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*=span]+[class*=span]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;content:"";line-height:0}.controls-row:after{clear:both}.controls-row [class*=span]{float:left}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type=radio][disabled],input[type=checkbox][disabled],input[type=radio][readonly],input[type=checkbox][readonly]{background-color:transparent}.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.warning .checkbox:focus,.control-group.warning .radio:focus,.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.error .checkbox:focus,.control-group.error .radio:focus,.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.success .checkbox:focus,.control-group.success .radio:focus,.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;content:"";line-height:0}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px}.input-append,.input-prepend{margin-bottom:5px;font-size:0;white-space:nowrap}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;font-size:14px;vertical-align:top;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:400;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn{margin-left:-1px;vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append .add-on:last-child,.input-append .btn:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;vertical-align:middle}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type=radio],.form-search .checkbox input[type=checkbox],.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:140px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:160px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:160px}.form-horizontal .help-block{margin-top:10px;margin-bottom:0}.form-horizontal .form-actions{padding-left:160px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:700}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child,.table-bordered tfoot:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child,.table-bordered tfoot:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-right-topleft:4px}.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9}.table-hover tbody tr:hover td,.table-hover tbody tr:hover th{background-color:#f5f5f5}table [class*=span],.row-fluid table [class*=span]{display:table-cell;float:none;margin-left:0}table .span1{float:none;width:44px;margin-left:0}table .span2{float:none;width:124px;margin-left:0}table .span3{float:none;width:204px;margin-left:0}table .span4{float:none;width:284px;margin-left:0}table .span5{float:none;width:364px;margin-left:0}table .span6{float:none;width:444px;margin-left:0}table .span7{float:none;width:524px;margin-left:0}table .span8{float:none;width:604px;margin-left:0}table .span9{float:none;width:684px;margin-left:0}table .span10{float:none;width:764px;margin-left:0}table .span11{float:none;width:844px;margin-left:0}table .span12{float:none;width:924px;margin-left:0}table .span13{float:none;width:1004px;margin-left:0}table .span14{float:none;width:1084px;margin-left:0}table .span15{float:none;width:1164px;margin-left:0}table .span16{float:none;width:1244px;margin-left:0}table .span17{float:none;width:1324px;margin-left:0}table .span18{float:none;width:1404px;margin-left:0}table .span19{float:none;width:1484px;margin-left:0}table .span20{float:none;width:1564px;margin-left:0}table .span21{float:none;width:1644px;margin-left:0}table .span22{float:none;width:1724px;margin-left:0}table .span23{float:none;width:1804px;margin-left:0}table .span24{float:none;width:1884px;margin-left:0}.table tbody tr.success td{background-color:#dff0d8}.table tbody tr.error td{background-color:#f2dede}.table tbody tr.info td{background-color:#d9edf7}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu li>a:hover,.dropdown-menu li>a:focus,.dropdown-submenu:hover>a{text-decoration:none;color:#fff;background-color:#08c;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0)}.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#08c;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0)}.dropdown-menu .disabled>a,.dropdown-menu .disabled>a:hover{color:#999}.dropdown-menu .disabled>a:hover{text-decoration:none;background-color:transparent;cursor:default}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px;-moz-border-radius:0 6px 6px;border-radius:0 6px 6px}.dropdown-submenu:hover .dropdown-menu{display:block}.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#ccc;margin-top:5px;margin-right:-10px}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px}.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;overflow:visible \9;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:700;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 14px;margin-bottom:0;font-size:14px;line-height:20px;*line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333;text-shadow:0 1px 1px rgba(255,255,255,.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border:1px solid #bbb;*border:0;border-bottom-color:#a2a2a2;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover{color:#333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.btn-large [class^=icon-]{margin-top:2px}.btn-small{padding:3px 9px;font-size:12px;line-height:18px}.btn-small [class^=icon-]{margin-top:0}.btn-mini{padding:2px 6px;font-size:11px;line-height:16px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,.75)}.btn{border-color:#c5c5c5;border-color:rgba(0,0,0,.15) rgba(0,0,0,.15) rgba(0,0,0,.25)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#04c;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#da4f49;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#5bb75b;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#49afcd;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#363636;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);border-color:#222 #222 #000;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#222;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type=submit].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type=submit].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type=submit].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type=submit].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type=submit].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{border-color:transparent;cursor:pointer;color:#08c;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent}.btn-group{position:relative;font-size:0;white-space:nowrap;*margin-left:.3em}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{font-size:0;margin-top:10px;margin-bottom:10px}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1}.btn-toolbar .btn+.btn,.btn-toolbar .btn-group+.btn,.btn-toolbar .btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu{font-size:14px}.btn-group>.btn-mini{font-size:11px}.btn-group>.btn-small{font-size:12px}.btn-group>.btn-large{font-size:16px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);*padding-top:5px;*padding-bottom:5px}.btn-group>.btn-mini+.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:2px;*padding-bottom:2px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{padding-left:12px;padding-right:12px;*padding-top:7px;*padding-bottom:7px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-mini .caret,.btn-small .caret,.btn-large .caret{margin-top:6px}.btn-large .caret{border-left-width:5px;border-right-width:5px;border-top-width:5px}.dropup .btn-large .caret{border-bottom:5px solid #000;border-top:0}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical .btn{display:block;float:none;width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical .btn+.btn{margin-left:0;margin-top:-1px}.btn-group-vertical .btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical .btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical .btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical .btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.modal-open .dropdown-menu{z-index:2050}.modal-open .dropdown.open{*z-index:2050}.modal-open .popover{z-index:2060}.modal-open .tooltip{z-index:2080}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:50%;left:50%;z-index:1050;overflow:auto;width:560px;margin:-250px 0 0 -280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,.3);box-shadow:0 3px 7px rgba(0,0,0,.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out;top:-25%}.modal.fade.in{top:50%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{overflow-y:auto;max-height:400px;padding:15px}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff;*zoom:1}.modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-3px}.tooltip.right{margin-left:3px}.tooltip.bottom{margin-top:3px}.tooltip.left{margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#eee;text-align:center;text-decoration:none;background-color:#333;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#333}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#333}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#333}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#333}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;width:236px;padding:1px;background-color:#fff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-bottom:10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-right:10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0}.popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow:after{content:"";z-index:-1}.popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#fff}.popover.top .arrow:after{border-width:11px 11px 0;border-top-color:rgba(0,0,0,.25);bottom:-1px;left:-11px}.popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#fff}.popover.right .arrow:after{border-width:11px 11px 11px 0;border-right-color:rgba(0,0,0,.25);bottom:-11px;left:-1px}.popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-width:0 10px 10px;border-bottom-color:#fff}.popover.bottom .arrow:after{border-width:0 11px 11px;border-bottom-color:rgba(0,0,0,.25);top:-1px;left:-11px}.popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#fff}.popover.left .arrow:after{border-width:11px 0 11px 11px;border-left-color:rgba(0,0,0,.25);bottom:-11px;right:-1px}.label,.badge{font-size:11.844px;font-weight:700;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#999}.label{padding:1px 4px 2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding:1px 9px 2px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}a.label:hover,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.progress .bar{width:0;height:100%;color:#fff;float:left;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}@media screen and (-webkit-min-device-pixel-ratio:0){@font-face{font-family:icomoon;src:url(fonts/icomoon.svg#icomoon) format('svg')}}[class^=icon-],[class*=" icon-"]{display:inline-block;width:16px;height:16px;line-height:16px;font-size:15px;*margin-right:.3em;vertical-align:text-top}.icon-white,.nav>.active>a>[class^=icon-],.nav>.active>a>[class*=" icon-"]{color:#fff}.g-ui-menu .e-item:hover [class^=icon-],.g-ui-menu .e-item:hover [class*=" icon-"]{color:#fff}[class^=icon2-],[class*=" icon2-"]{display:inline-block;width:16px;height:16px;line-height:16px;font-size:15px;*margin-right:.3em;vertical-align:text-top;background-repeat:no-repeat}.icon2-none{background-image:none}.icon3-as-button{cursor:pointer}.icon-checkbox-checked,.icon-checkbox-unchecked,.icon-checkbox-partial,.icon-radio-checked,.icon-radio-unchecked{cursor:pointer;color:#555;font-size:1em}.icon-checkbox-checked:hover,.icon-checkbox-unchecked:hover,.icon-checkbox-partial:hover,.icon-radio-checked:hover,.icon-radio-unchecked:hover,.icon-checkbox-checked:active,.icon-checkbox-unchecked:active,.icon-checkbox-partial:active,.icon-radio-checked:active,.icon-radio-unchecked:active{color:#000}.icon-white.icon-checkbox-checked,.icon-white.icon-checkbox-unchecked,.icon-white.icon-checkbox-partial,.icon-white.icon-radio-checked,.icon-white.icon-radio-unchecked{color:#eee}.icon-white.icon-checkbox-checked:hover,.icon-white.icon-checkbox-unchecked:hover,.icon-white.icon-checkbox-partial:hover,.icon-white.icon-radio-checked:hover,.icon-white.icon-radio-unchecked:hover,.icon-white.icon-checkbox-checked:active,.icon-white.icon-checkbox-unchecked:active,.icon-white.icon-checkbox-partial:active,.icon-white.icon-radio-checked:active,.icon-white.icon-radio-unchecked:active{color:#fff}.icon-refresh.in-process{background-position:0 0;background-image:url(images/sync.gif)}.denied-by-browser{cursor:default}.denied-by-browser .icon-checkbox-checked,.denied-by-browser icon-checkbox-unchecked{cursor:default}.icon-arrow-right-3,.icon-arrow-down-3{width:16px;line-height:20px}.icon2-reload{background-image:url(images/sync.png);background-repeat:no-repeat}.icon2-aminate-reload{background-image:url(images/sync.gif);background-repeat:no-repeat}@-webkit-keyframes rotation{from{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(359deg)}}@-moz-keyframes rotation{from{-moz-transform:rotate(0deg)}to{-moz-transform:rotate(359deg)}}@keyframes rotation{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.icon-repeat,.icon-spinner,.icon-spinner-2{width:16px;height:16px}.icon-repeat:before,.icon-spinner:before,.icon-spinner-2:before{font-size:16px;line-height:100%}html.no-cssanimations .icon-repeat,html.no-cssanimations .icon-spinner,html.no-cssanimations .icon-spinner-2{background-image:url(images/sync.png);background-repeat:no-repeat;font-family:Arial}html.no-cssanimations .icon-repeat:before,html.no-cssanimations .icon-spinner:before,html.no-cssanimations .icon-spinner-2:before{content:""}html.no-cssanimations .icon-repeat.animated,html.no-cssanimations .icon-spinner.animated,html.no-cssanimations .icon-spinner-2.animated{background-image:url(images/sync.gif)}html.cssanimations .icon-repeat.animated,html.cssanimations .icon-spinner.animated,html.cssanimations .icon-spinner-2.animated{-webkit-animation:rotation 1s infinite linear;-moz-animation:rotation 1s infinite linear;animation:rotation 1s infinite linear}body{background-color:transparent}label{cursor:pointer}.legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}.legend small{font-size:15px;color:#999}.legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}select{width:223px}.btn-small.btn-small-small{padding:3px 9px;font-size:11px;line-height:11px}.btn.btn-ellipsis{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.btn.btn-narrow{padding-left:12px;padding-right:12px}.dropdown-menu{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.btn{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background-image:none;text-shadow:0 1px 0 #fff}.btn.disabled,.btn[disabled]{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}html.rgba.textshadow .btn.btn-danger,html.rgba.textshadow .btn.btn-success,html.rgba.textshadow .btn.btn-primary{text-shadow:0 1px 0 rgba(0,0,0,.3)}.btn-toolbar{margin-top:0;margin-bottom:0}.dropdown-menu{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);-moz-box-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 1px 2px rgba(0,0,0,.2)}.tooltip{font-size:14px}.tooltip.in{opacity:1;filter:alpha(opacity=100)}.tooltip .tooltip-big{font-size:18px;padding:0 10px}.tooltip-inner{padding:5px 10px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.btn-group>.btn:first-child{-webkit-border-top-left-radius:2px;-moz-border-radius-topleft:2px;border-top-left-radius:2px;-webkit-border-bottom-left-radius:2px;-moz-border-radius-bottomleft:2px;border-bottom-left-radius:2px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:2px;-moz-border-radius-topright:2px;border-top-right-radius:2px;-webkit-border-bottom-right-radius:2px;-moz-border-radius-bottomright:2px;border-bottom-right-radius:2px}.btn-group>.btn.large:first-child{-webkit-border-top-left-radius:2px;-moz-border-radius-topleft:2px;border-top-left-radius:2px;-webkit-border-bottom-left-radius:2px;-moz-border-radius-bottomleft:2px;border-bottom-left-radius:2px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:2px;-moz-border-radius-topright:2px;border-top-right-radius:2px;-webkit-border-bottom-right-radius:2px;-moz-border-radius-bottomright:2px;border-bottom-right-radius:2px}textarea,input[type=text],input[type=password],input[type=email],input[type=search]{border:1px solid #ccc}textarea:focus,input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=search]:focus{background-color:#fff;border:1px solid #999;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}input[type=text],input[type=password],input[type=email],input[type=search]{height:20px;line-height:20px}select{border:1px solid #ccc}.alert a{text-decoration:underline}.alert.alert-null-left-margin{margin-left:0}.alert.alert-error a{color:#b94a48}html.no-rgba .modal{border-width:0!important}.modal-backdrop,.modal-backdrop.fade.in{opacity:.1;filter:alpha(opacity=10)}.popups{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1100;overflow:auto}.popups .modal{position:static;z-index:1101;margin:5% auto;background-color:transparent;overflow:hidden;-webkit-box-shadow:0 5px 80px rgba(0,0,0,.3);-moz-box-shadow:0 5px 80px rgba(0,0,0,.3);box-shadow:0 5px 80px rgba(0,0,0,.3)}.popups .modal .modal-body{background-color:#fff;max-height:none}.modal.loginContent .modal-body,.modal.loginAdminContent .modal-body{background-color:transparent!important}.picker.modal-dialog-bg,.picker.picker-dialog-bg{z-index:2000!important}.picker.modal-dialog,.picker.picker-dialog{z-index:2001!important}.inputosaurus-container{width:99%;line-height:20px;padding:2px;border:1px solid #ccc;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}.inputosaurus-container li{max-width:500px;background-color:#eee;border:1px solid #aaa;line-height:18px;padding:2px 4px;margin:2px;color:#555}.inputosaurus-container li a{color:#999;float:right;font-size:14px}.inputosaurus-container li a:hover{color:#666}.inputosaurus-container li.inputosaurus-selected{background-color:#ddd}.inputosaurus-container .inputosaurus-fake-span{position:absolute;top:0;left:-5000px}.inputosaurus-container .inputosaurus-input{margin:2px 10px 2px 0;height:22px}.inputosaurus-container .inputosaurus-input input{border:0;height:21px;padding-left:0}.ui-autocomplete{z-index:2000}.g-ui-user-select-none{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none;-webkit-touch-callout:none}.g-ui-clearfix{*zoom:1}.g-ui-clearfix:before,.g-ui-clearfix:after{display:table;content:"";line-height:0}.g-ui-clearfix:after{clear:both}.g-ui-link{color:#369;text-decoration:underline;cursor:pointer}.g-ui-min-height-300{min-height:300px}.g-ui-absolute-reset{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0}.g-ui-menu{max-height:400px;max-width:300px;overflow-y:auto;overflow-x:hidden}.g-ui-menu .e-link{text-decoration:none;cursor:pointer}.g-ui-menu .e-item>.e-link:hover{background-color:#555;background-image:none;color:#fff}.g-ui-menu .e-item.disable>.e-link{cursor:not-allowed;background-color:#fff;background-image:none;color:grey}.g-ui-menu .e-item.disable [class^=icon-]{color:grey}.g-ui-table{display:table;width:100%}.g-ui-table .e-row{display:table-row}.g-ui-table .e-cell{display:table-cell;vertical-align:top;text-align:left}.g-ui-resizable-delimiter-highlight{border:0;border-right:6px solid #aaa}html.rgba .g-ui-resizable-delimiter-highlight{border-right-color:rgba(0,0,0,.2)}.settings-saved-trigger{display:inline-block;line-height:17px;font-size:16px}.settings-saved-trigger .animated{color:green}.settings-saved-trigger .success{color:green;-webkit-transition:opacity .5s linear;-moz-transition:opacity .5s linear;-o-transition:opacity .5s linear;transition:opacity .5s linear;opacity:0;filter:alpha(opacity=0)}.settings-saved-trigger .error{color:red;-webkit-transition:opacity .5s linear;-moz-transition:opacity .5s linear;-o-transition:opacity .5s linear;transition:opacity .5s linear;opacity:0;filter:alpha(opacity=0)}.settings-saved-trigger .visible{opacity:1;filter:alpha(opacity=100)}.settings-saved-trigger-input.success{border-color:green!important;-webkit-transition:border-color .5s linear;-moz-transition:border-color .5s linear;-o-transition:border-color .5s linear;transition:border-color .5s linear}.settings-saved-trigger-input.error{border-color:red!important;-webkit-transition:border-color .5s linear;-moz-transition:border-color .5s linear;-o-transition:border-color .5s linear;transition:border-color .5s linear}html{margin:0;padding:0;overflow:hidden;font-family:Arial,Verdana,Geneva,sans-serif}body{margin:0;padding:0;overflow:hidden;background-color:#e3e3e3;font-family:Arial,Verdana,Geneva,sans-serif;-webkit-touch-callout:none;position:absolute;top:0;left:0;bottom:0;right:0}textarea{resize:none}option:disabled{color:#aaa;cursor:not-allowed}body:before{content:"";position:fixed;top:-10px;left:0;width:100%;height:8px;z-index:100;-webkit-box-shadow:0 0 10px rgba(0,0,0,.6);-moz-box-shadow:0 0 10px rgba(0,0,0,.6);box-shadow:0 0 10px rgba(0,0,0,.6)}*{outline:0}select:focus{outline:0}html.mobile *{-webkit-tap-highlight-color:rgba(0,0,0,0)}#rl-content{height:100%;width:100%}#rl-center{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0;min-width:900px;min-height:400px}#rl-top{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0;bottom:auto;z-index:2}#rl-bottom{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0;top:auto;z-index:1}#rl-left{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0;right:auto;width:100%}#rl-right{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0;z-index:1}#rl-resizer-right{position:absolute;top:0;bottom:0;right:0;left:35%}#rl-resizer-left{position:absolute;top:0;bottom:0;left:0;right:65%;min-width:350px}#rl-top-resizer-right{position:absolute;top:0;bottom:0;right:0;left:230px}#rl-top-resizer-left{position:absolute;top:0;bottom:0;left:0;right:auto;min-width:120px}html.mobile #rl-top-resizer-left{width:170px}html.mobile #rl-top-resizer-right{left:170px}html.mobile #rl-resizer-left{width:350px}html.mobile #rl-resizer-right{left:350px}html.rl-no-preview-pane #rl-resizer-left{right:5px!important;width:inherit}html.rl-no-preview-pane #rl-resizer-right{left:0!important}html.rl-no-preview-pane #rl-right .ui-resizable-handle{display:none!important}#rl-loading,#rl-loading-error{position:absolute;font:30px Tahoma;top:50%;width:100%;height:65px;margin:0;margin-top:-60px;background-color:transparent;background-repeat:no-repeat;background-position:center 50px;background-image:url(images/loader-black.gif);text-align:center;color:#000}#rl-loading-error{background-image:none;display:none}.b-system-drop-down .b-toolbar{position:absolute;top:0;right:0;height:30px;padding:10px 8px;z-index:103}.b-system-drop-down .e-facebook-name{display:inline-block;padding-top:4px}.b-system-drop-down .btn.system-dropdown{padding-left:10px;padding-right:10px}.b-system-drop-down .button-fb-logout{margin:5px}.b-system-drop-down .email-title{display:inline-block;max-width:200px;text-align:left;text-overflow:ellipsis;overflow:hidden}.rl-view-model.RL-Login,.rl-view-model.RL-LoginNew,.rl-view-model.RL-AdminLogin{height:100%}.b-login-content{height:100%;text-align:center;margin-left:-230px}.b-login-content .loginFormWrapper{display:inline-block;vertical-align:middle;text-align:center;width:380px}.b-login-content .loginFormWrapper .loginForm{background-color:#efefef;text-align:left;color:#333;margin:0;float:none}.b-login-content .loginFormWrapper .control-label{font-size:16px;line-height:30px}.b-login-content .loginFormWrapper .control-group{margin-bottom:25px}.b-login-content .loginFormWrapper .wrapper{padding:40px 40px 10px}.b-login-content .loginFormWrapper #recaptcha_image img{border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.b-login-content .loginFormWrapper .inputLoginForm,.b-login-content .loginFormWrapper .inputEmail,.b-login-content .loginFormWrapper .inputLogin,.b-login-content .loginFormWrapper .inputPassword{font-size:18px;height:30px;line-height:29px}.b-login-content .loginFormWrapper .signMeLabel{margin-top:5px}.b-login-content .loginFormWrapper .input-append .add-on{position:relative;height:30px;background:0;margin-left:-35px;z-index:1000;border:0}.b-login-content .loginFormWrapper .input-append .add-on i{font-size:17px;line-height:29px;color:#999}.b-login-content .loginFormWrapper .control-group.error .add-on i{color:#b94a48}.b-login-content .buttonLogin{margin:0}.b-login-content .alert{margin:0 0 20px;text-align:left}.b-login-content .loginAfter{display:inline-block;height:90%;vertical-align:middle;width:0}.b-login-content .flag-selector{margin-bottom:0}.b-folders .b-toolbar{position:absolute;top:0;right:0;left:0;height:30px;padding:10px 10px 0 8px;color:#fff}.b-folders .b-content{position:absolute;top:58px;bottom:13px;left:0;right:0;overflow:hidden;overflow-y:auto}.b-folders .b-content .content{-webkit-overflow-scrolling:touch}.b-folders .b-list-delimiter{margin:10px;border-top:0 solid #000;border-bottom:1px solid #999}.b-folders .e-item{overflow:hidden;white-space:nowrap}.b-folders .e-item .e-link{display:block;position:relative;z-index:1;height:34px;line-height:34px;background-color:transparent;vertical-align:middle;color:grey;cursor:not-allowed;font-size:14px;padding:0;padding-left:10px;padding-right:10px;outline:0;text-decoration:none}.b-folders .e-item .e-link.selectable{color:#000;cursor:pointer}.b-folders .e-item .e-link.selectable:hover,.b-folders .e-item .e-link.selectable.selected,.b-folders .e-item .e-link.selectable.droppableHover{background-color:#555;color:#fff}.b-folders .e-item .e-link.system{cursor:default;color:grey}.b-folders .e-item .e-link .count{display:none;margin-top:5px;line-height:19px}.b-folders .e-item .e-link.print-count{font-weight:700}.b-folders .e-item .e-link.print-count .count{display:inline}.b-folders .e-item .e-link .e-collapsed-sign{cursor:pointer;width:22px;height:30px;line-height:30px;text-align:center;vertical-align:inherit}.b-folders .e-item .hidden.e-link{display:none}.b-folders .e-item .b-sub-folders.collapsed{max-height:0;height:0;display:none}.b-folders .b-folder-system-item{font-weight:700}.b-folders .b-sub-folders .e-item .e-link{padding-left:25px}.b-folders .b-sub-folders.unpaddig-folder .e-item .e-link{padding-left:10px}.b-folders .b-sub-folders .b-sub-folders .e-item .e-link{padding-left:40px}.b-folders .b-sub-folders.unpaddig-folder .b-sub-folders .e-item .e-link{padding-left:25px}.b-folders .b-sub-folders .b-sub-folders .b-sub-folders .e-item .e-link{padding-left:55px}.b-folders .b-sub-folders.unpaddig-folder .b-sub-folders .b-sub-folders .e-item .e-link{padding-left:40px}.b-folders .b-sub-folders .b-sub-folders .b-sub-folders .b-sub-folders .e-item .e-link{padding-left:70px}.b-folders .b-sub-folders.unpaddig-folder .b-sub-folders .b-sub-folders .b-sub-folders .e-item .e-link{padding-left:55px}.popups .b-folder-clear-content .modal-header{background-color:#fff}.popups .b-folder-create-content .modal-header{background-color:#fff}.popups .b-folder-system-content.modal{z-index:1102}.popups .b-folder-system-content .modal-header{background-color:#fff}.popups .b-languages-content.modal{z-index:1103;width:500px}.popups .b-languages-content.exp{width:501px}.popups .b-languages-content .modal-header{background-color:#fff}.popups .b-languages-content .lang-item{display:inline-block;padding:5px 15px;margin:2px 5px;width:180px;background-color:#fff;text-align:left}.popups .b-languages-content .lang-item.selected{background-color:#f5f5f5}.popups .b-languages-content .lang-item:hover{background-color:#eee}.popups .b-account-add-content .modal-header{background-color:#fff}.popups .b-identity-content .modal-header{background-color:#fff}.popups .b-identity-content .textEmail{margin-top:5px;font-weight:700}.popups .b-advanced-search-content.modal{width:750px}.popups .b-advanced-search-content.modal .control-label{width:100px}.popups .b-advanced-search-content.modal .controls{margin-left:110px}.popups .b-advanced-search-content .modal-header{background-color:#fff}html.rl-no-preview-pane .messageList.message-selected{display:none}.messageList .toolbar{position:absolute;top:0;right:0;left:0;height:30px;padding:10px 1px;min-width:280px;z-index:102}.messageList .b-footer{position:absolute;bottom:0;right:0;left:0;height:29px;padding:10px;min-width:300px;z-index:101;background-color:#eee;-webkit-border-bottom-right-radius:5px;-moz-border-radius-bottomright:5px;border-bottom-right-radius:5px;-webkit-border-bottom-left-radius:5px;-moz-border-radius-bottomleft:5px;border-bottom-left-radius:5px}.messageList .b-footer .e-quota{display:inline-block;margin-left:10px;font-size:18px;cursor:help}.messageList .b-footer .e-quota:hover{border-bottom:1px dashed #333}.messageList .inputSearch{width:258px}.messageList .btn.buttonMoreSearch{padding-left:8px;padding-right:8px}.messageList .b-message-list-wrapper{position:absolute;top:50px;right:0;left:0;bottom:5px;border:1px solid #aaa;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.3);-moz-box-shadow:0 2px 8px rgba(0,0,0,.3);box-shadow:0 2px 8px rgba(0,0,0,.3);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;z-index:101}.messageList .second-toolbar{position:absolute;top:0;right:0;left:0;height:29px;padding:10px 8px 10px 11px;min-width:280px;z-index:101;background-color:#eee;-webkit-border-top-right-radius:5px;-moz-border-radius-topright:5px;border-top-right-radius:5px;-webkit-border-top-left-radius:5px;-moz-border-radius-topleft:5px;border-top-left-radius:5px}.messageList .second-toolbar .checkboxCkeckAll{margin:5px 0}.messageList .mainDelimiter{position:absolute;left:0;right:0;height:1px;z-index:101;background-color:#bbb}.messageList .toolbarDelimiter{top:49px}.messageList .footerDelimiter{bottom:49px}.messageList .b-content{position:absolute;top:50px;bottom:50px;left:0;right:0;padding:0;overflow-x:hidden;overflow-y:auto;z-index:101;min-width:300px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#fff}.messageList .b-content .content{-webkit-overflow-scrolling:touch}.messageList .b-content .listClear{color:#333;text-align:center;padding:10px;font-size:14px;line-height:13px}.messageList .b-content .listEmptyList,.messageList .b-content .listEmptyListLoading,.messageList .b-content .listDragOver,.messageList .b-content .listError,.messageList .b-content .listEmptySearchList{color:#999;text-align:center;padding:60px 10px;font-size:24px;line-height:30px}.messageList .b-content .listEmptyList .e-icon,.messageList .b-content .listEmptyListLoading .e-icon,.messageList .b-content .listDragOver .e-icon,.messageList .b-content .listError .e-icon,.messageList .b-content .listEmptySearchList .e-icon{font-size:24px;line-height:30px}.messageList .b-content .listDragOver{max-height:0;overflow:hidden;padding:0 10px}.messageList .b-content .listDragOver.viewAppendArea{max-height:120px;padding:30px 10px}.messageList .b-content .listDragOver.dragOverEnter{background-color:#e0fdda;color:#333}.messageList .b-content .listError{color:#DA4F49}.messageList .b-content .listSearchDesc{font-size:20px;padding:20px;border-bottom:1px solid #eee}.messageList .b-content .delimiter{display:block;height:1px;background-color:#e5e5e5}.messageList .b-content .messageListItem:last-child{border-bottom:1px solid #e5e5e5}.messageList .b-content .messageListItem:last-child.selected{border-bottom:1px solid #bfd5ef}.messageList .b-content .fullThreadsParent{height:25px;padding:3px 5px;background-color:#f4f4f4;text-align:center}.messageList .b-content .messageListItem{position:relative;height:52px;max-height:60px;font-size:12px;line-height:21px;overflow:hidden;cursor:pointer;margin:0;border:0 solid transparent;z-index:100;background-color:#f9f9f9}.messageList .b-content .messageListItem .delimiter{position:relative;display:block;height:1px;background-color:#999;opacity:.2;filter:alpha(opacity=20)}.messageList .b-content .messageListItem .wrapper{padding:5px 0}.messageList .b-content .messageListItem .sidebarParent{display:inline-block;width:6px;background-color:#eee;float:left;height:100%}.messageList .b-content .messageListItem.e-single-line{height:35px}.messageList .b-content .messageListItem.e-single-line .wrapper{line-height:25px;padding:5px}.messageList .b-content .messageListItem.new{max-height:0}.messageList .b-content .messageListItem.deleted{max-height:0;border-color:transparent!important}.messageList .b-content .messageListItem .checkedParent{display:inline-block;float:left;margin-top:11px;padding:0 8px 0 6px;font-size:14px}.messageList .b-content .messageListItem.e-single-line .checkedParent{margin-top:1px}.messageList .b-content .messageListItem .flagParent{display:inline-block;float:right;padding:0 8px 0 5px}.messageList .b-content .messageListItem.e-single-line .flagParent{float:left;padding:0 8px 0 2px}.messageList .b-content .messageListItem .dateParent{display:inline-block;float:right;position:relative;margin:0 5px;color:#999;font-size:11px}.messageList .b-content .messageListItem .attachmentParent{display:inline-block;float:right;position:relative;margin:2px 8px 0 5px}.messageList .b-content .messageListItem.e-single-line .attachmentParent{float:left;margin:0 5px 0 0}.messageList .b-content .messageListItem .senderParent{display:block;overflow:hidden;text-overflow:ellipsis}.messageList .b-content .messageListItem .threadsCountParent{display:inline;overflow:hidden;background-color:#eee;padding:1px 5px;margin-right:5px;border:1px solid #ccc;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.messageList .b-content .messageListItem .threadsCountParent.lastSelected{background-color:#999;border-color:#999;color:#fff}.messageList .b-content .messageListItem .threadsCountParent:hover{border-color:#666}.messageList .b-content .messageListItem.e-single-line .senderParent{display:inline-block;text-overflow:none;width:200px;float:left;font-weight:400}.messageList .b-content .messageListItem .subjectParent{display:block;overflow:hidden;text-overflow:ellipsis;color:#000}.messageList .b-content .messageListItem .senderParent,.messageList .b-content .messageListItem .subjectParent,.messageList .b-content .messageListItem .dateParent{white-space:nowrap}.messageList .b-content .messageListItem .subjectParent .emptySubjectText{display:none;font-style:italic;color:#999}.messageList .b-content .messageListItem.emptySubject .subjectParent .subject{display:none}.messageList .b-content .messageListItem.emptySubject .subjectParent .emptySubjectText{display:inline}.messageList .b-content .messageListItem .sender,.messageList .b-content .messageListItem .subject{overflow:hidden;text-overflow:ellipsis}.messageList .b-content .messageListItem .attachment{display:none}.messageList .b-content .messageListItem .flagOff,.messageList .b-content .messageListItem .flagOn,.messageList .b-content .messageListItem .flagOnHalf{cursor:pointer;display:inline-block}.messageList .b-content .messageListItem .flagOff{opacity:.5;filter:alpha(opacity=50)}.messageList .b-content .messageListItem .flagOff:hover{opacity:1;filter:alpha(opacity=100)}.messageList .b-content .messageListItem .flagOn,.messageList .b-content .messageListItem .flagOnHalf{display:none;color:orange}.messageList .b-content .messageListItem .replyFlag,.messageList .b-content .messageListItem .forwardFlag{display:none}.messageList .b-content .messageListItem.answered .replyFlag{display:inline-block}.messageList .b-content .messageListItem.forwarded .forwardFlag{display:inline-block}.messageList .b-content .messageListItem.withAttachments .attachment{display:inline-block;color:#666;text-shadow:0 1px 0 #eee}.messageList .b-content .messageListItem.unseen{background-color:#FFFFD9}.messageList .b-content .messageListItem.unseen .sender,.messageList .b-content .messageListItem.unseen .subject{font-weight:700}.messageList .b-content .messageListItem.unseen .sidebarParent{background-color:orange}.messageList .b-content .messageListItem.hasUnseenSubMessage{background-color:#FFFFD9}.messageList .b-content .messageListItem.hasUnseenSubMessage .sidebarParent{background-color:#ffdb99}.messageList .b-content .messageListItem.hasParentMessage{background-color:#ecf0f1}.messageList .b-content .messageListItem.hasParentMessage .sidebarParent{background-color:#bdc3c7}.messageList .b-content .messageListItem.hasParentMessage.unseen{background-color:#dde4e6}.messageList .b-content .messageListItem.hasParentMessage.unseen .sidebarParent{background-color:#6c777f}.messageList .b-content .messageListItem.checked .sidebarParent{background-color:#69a8f5!important}.messageList .b-content .messageListItem.selected{background-color:#DFEFFF;z-index:102}.messageList .b-content .messageListItem.selected .sidebarParent{background-color:#398CF2!important}.messageList .b-content .messageListItem.selected .delimiter{background-color:#398CF2;opacity:.2;filter:alpha(opacity=20)}.messageList .b-content .messageListItem.selected+.messageListItem .delimiter{background-color:#398CF2;opacity:.3;filter:alpha(opacity=30)}.messageList .b-content .messageListItem.hasFlaggedSubMessage .flagOff,.messageList .b-content .messageListItem.hasFlaggedSubMessage .flagOn{display:none}.messageList .b-content .messageListItem.hasFlaggedSubMessage .flagOnHalf{display:inline-block}.messageList .b-content .messageListItem.flagged .flagOff,.messageList .b-content .messageListItem.flagged .flagOnHalf{display:none}.messageList .b-content .messageListItem.flagged .flagOn{display:inline-block}.messageList.hideMessageListCheckbox .checkedParent,.messageList.hideMessageListCheckbox .checkboxCkeckAll{display:none!important}.messageList.hideMessageListCheckbox .sidebarParent{margin-right:10px!important}.messageList .pagenator .page{display:inline-block;color:#999;text-decoration:none;font-size:24px;padding:3px;cursor:pointer}.messageList .pagenator .page:hover .pageNumber{color:#555}.messageList .pagenator .page.current .pageNumber{font-size:28px;color:#333;border-bottom:2px solid #000}.draggablePlace{z-index:10002;color:#fff;background-color:#333;background-color:rgba(0,0,0,.5);padding:4px 10px;min-width:30px;height:20px;cursor:pointer;cursor:move}html.rl-no-preview-pane .messageView{display:none}html.rl-no-preview-pane .messageView.message-selected{display:block}.messageView{z-index:100}.messageView .toolbar{position:absolute;top:0;right:0;left:0;height:30px;padding:10px 0;color:#fff}.messageView .b-content{position:absolute;margin:0;top:58px;bottom:13px;right:8px;left:0;overflow:hidden;border:1px solid #aaa;border-left:0;-webkit-border-top-right-radius:3px;-moz-border-radius-topright:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-moz-border-radius-bottomright:3px;border-bottom-right-radius:3px;background-color:#fff}.messageView .b-content .b-message-view-desc{text-align:center;font-size:24px;line-height:30px;padding-top:120px;color:#999}.messageView .b-content .b-message-view-desc.error{color:#DA4F49}.messageView .b-content .content{-webkit-overflow-scrolling:touch}.messageView .b-content .messageItem{position:absolute;top:0;bottom:0;left:0;right:0;overflow:auto;-webkit-overflow-scrolling:touch;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.messageView .b-content .messageItem .emptySubjectText{display:none;font-style:italic;color:#999}.messageView .b-content .messageItem.emptySubject .emptySubjectText{display:inline}.messageView .b-content .messageItem .buttonUp,.messageView .b-content .messageItem .buttonUnFull,.messageView .b-content .messageItem .buttonFull{display:inline-block;position:fixed;right:30px;top:90px;height:30px;width:30px;text-align:center;vertical-align:middle;line-height:30px;background-color:transparent;background-color:#fff;border:1px solid #333;color:#333;z-index:2;cursor:pointer;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;opacity:.3;filter:alpha(opacity=30)}.messageView .b-content .messageItem .buttonUp:hover,.messageView .b-content .messageItem .buttonUnFull:hover,.messageView .b-content .messageItem .buttonFull:hover{opacity:.8;filter:alpha(opacity=80);border-color:#000;background-color:#888;color:#fff}.messageView .b-content .messageItem .buttonUp{right:70px;z-index:0}.messageView .b-content .messageItem .buttonUnFull{display:none}.messageView .b-content .messageItem .messageItemHeader{position:relative;padding:10px;background-color:#f8f8f8;border-top:0;border-bottom:1px solid #ddd;z-index:1}.messageView .b-content .messageItem .messageItemHeader .fromPic{display:inline-block;width:50px;height:50px;float:left;padding:2px;margin:0 5px 0 0;background:#fff;border:1px solid #ccc;border-radius:10px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.messageView .b-content .messageItem .messageItemHeader .subjectParent{font-size:16px;font-weight:700;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;margin-left:3px}.messageView .b-content .messageItem .messageItemHeader .senderParent{margin-top:10px}.messageView .b-content .messageItem .messageItemHeader .messageButtons{margin-top:5px}.messageView .b-content .messageItem .messageItemHeader .informationShort{margin-left:15px}.messageView .b-content .messageItem .messageItemHeader .informationShort a{color:#369;text-decoration:underline;cursor:pointer}.messageView .b-content .messageItem .messageItemHeader .informationFull{margin-top:10px;border:1px solid #ddd;background-color:#fff;border-radius:5px;padding:10px 15px}.messageView .b-content .messageItem .loading{text-align:center;font-size:24px;color:grey;padding-top:50px}.messageView .b-content .messageItem .line-loading{height:0}.messageView .b-content .messageItem .showImages{cursor:pointer;background-color:#eee;padding:10px 15px;border-bottom:1px solid #ccc}.messageView .b-content .messageItem .attachmentsPlace{padding:10px}.messageView .b-content .messageItem .attachmentsPlace .attachmentList{margin:0}.messageView .b-content .messageItem .attachmentsPlace .attachmentList .attachmentItem{display:inline-block;margin:5px;padding:5px;max-width:170px;min-width:60px;overflow:hidden;cursor:pointer;list-style:none;line-height:24px;border:2px solid grey;background-color:#fff;box-shadow:1px 1px 5px #ccc;box-shadow:1px 1px 5px rgba(0,0,0,.1);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.messageView .b-content .messageItem .attachmentsPlace .attachmentList .attachmentItem .attachmentIcon{font-size:23px;width:23px;height:23px}.messageView .b-content .messageItem .attachmentsPlace .attachmentList .attachmentItem .attachmentPreview{color:#999;margin:0 5px}.messageView .b-content .messageItem .attachmentsPlace .attachmentList .attachmentItem .attachmentPreview:hover{color:#333}.messageView .b-content .messageItem .rlBlockquoteSwitcher{background-color:#eee;border:1px solid #999;display:inline-block;width:30px;height:14px;line-height:14px;text-align:center;cursor:pointer;margin:10px 0;opacity:.5;filter:alpha(opacity=50)}.messageView .b-content .messageItem .rlBlockquoteSwitcher:hover{opacity:1;filter:alpha(opacity=100)}.messageView .b-content .messageItem .bodyText{color:#000;font-family:arial,sans-serif}.messageView .b-content .messageItem .bodyText .b-text-part a{color:#00f;text-decoration:underline}.messageView .b-content .messageItem .bodyText .b-text-part a:visited{color:#609}.messageView .b-content .messageItem .bodyText .b-text-part a:active{color:red}.messageView .b-content .messageItem .bodyText .b-text-part table{border-collapse:separate}.messageView .b-content .messageItem .bodyText .b-text-part blockquote{border-left:2px solid #000;margin:0;padding:0 10px}.messageView .b-content .messageItem .bodyText .b-text-part .rl-bq-switcher.hidden-bq{display:none}.messageView .b-content .messageItem .bodyText .b-text-part.rtl-text-part{direction:rtl}.messageView .b-content .messageItem .bodyText .b-text-part.html div[data-x-div-type=body]{margin:15px}.messageView .b-content .messageItem .bodyText .b-text-part.plain{padding:15px}.messageView .b-content .messageItem .bodyText .b-text-part.plain pre{margin:0;padding:0;font-family:arial,sans-serif;background:#fff;border:0;white-space:normal}.messageView .b-content .messageItem .bodyText .b-text-part.plain blockquote{border-left:2px solid #00f;color:#00f}.messageView .b-content .messageItem .bodyText .b-text-part.plain blockquote blockquote{border-left:2px solid green;color:green}.messageView .b-content .messageItem .bodyText .b-text-part.plain blockquote blockquote blockquote{border-left:2px solid red;color:red}html.rl-no-preview-pane .messageView .toolbar{padding-left:1px}html.rl-no-preview-pane .messageView .b-content{top:50px;bottom:5px;right:5px;border:1px solid #aaa;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.3);-moz-box-shadow:0 2px 8px rgba(0,0,0,.3);box-shadow:0 2px 8px rgba(0,0,0,.3);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}html.rl-no-preview-pane .messageView .b-content .buttonUp,html.rl-no-preview-pane .messageView .b-content .buttonUnFull,html.rl-no-preview-pane .messageView .b-content .buttonFull{top:70px}html.cssanimations.rl-anim .line-loading{height:5px!important}html.rl-message-fullscreen #rl-left,html.rl-message-fullscreen #rl-bottom{display:none!important}html.rl-message-fullscreen #rl-right .RL-MailMessageList,html.rl-message-fullscreen #rl-right .RL-SettingsPane,html.rl-message-fullscreen #rl-right .RL-SystemDropDown,html.rl-message-fullscreen #rl-right .RL-MailMessageView .messageView .toolbar{display:none!important}html.rl-message-fullscreen .messageView .b-content{position:fixed;margin:5px;top:0;left:0;right:0;bottom:0;z-index:10000}html.rl-message-fullscreen .messageView .b-content .buttonUp,html.rl-message-fullscreen .messageView .b-content .buttonUnFull{display:inline-block;top:36px}html.rl-message-fullscreen .messageView .b-content .buttonFull{display:none}.b-contacts-content.modal{position:absolute;right:0;top:0;bottom:0;left:0;width:900px;min-height:300px;max-height:700px;margin:auto}.b-contacts-content.modal .modal-body{overflow:auto;height:100%;background-color:#f5f5f5;padding:0}.b-contacts-content.modal .b-header-toolbar{height:40px;background-color:#aaa;color:#fff;background-color:#333;background-color:rgba(0,0,0,.8)!important}.b-contacts-content.modal .b-header-toolbar .close{color:#fff;opacity:1;filter:alpha(opacity=100)}.b-contacts-content.modal .b-header-toolbar .btn{margin-top:4px}.b-contacts-content.modal .b-header-toolbar .button-new-message{margin-left:8px}.b-contacts-content.modal .b-header-toolbar .button-delete{margin-left:8px}.b-contacts-content.modal .b-list-toopbar{padding:0;height:45px;text-align:center;width:250px;-webkit-box-shadow:inset 0 -1px 0 #ccc;-moz-box-shadow:inset 0 -1px 0 #ccc;box-shadow:inset 0 -1px 0 #ccc}.b-contacts-content.modal .b-list-toopbar .e-search{margin-top:7px}.b-contacts-content.modal .b-list-content{position:absolute;top:45px;bottom:60px;left:0;width:250px;overflow:hidden;overflow-y:auto}.b-contacts-content.modal .b-list-content .content{-webkit-overflow-scrolling:touch}.b-contacts-content.modal .b-list-content .listClear{color:#333;text-align:center;padding:10px;font-size:14px;line-height:13px;background-color:#fff}.b-contacts-content.modal .b-list-content .listEmptyList,.b-contacts-content.modal .b-list-content .listEmptyListLoading,.b-contacts-content.modal .b-list-content .listEmptySearchList{color:#999;text-align:center;padding:60px 10px;font-size:24px;line-height:30px}.b-contacts-content.modal .b-list-content.hideContactListCheckbox .checkedParent,.b-contacts-content.modal .b-list-content.hideContactListCheckbox .checkboxCkeckAll{display:none!important}.b-contacts-content.modal .b-list-content.hideContactListCheckbox .sidebarParent{margin-right:10px!important}.b-contacts-content.modal .b-list-content .e-contact-foreach{border-bottom:1px solid #ddd}.b-contacts-content.modal .b-list-content .e-contact-item{position:relative;height:45px;max-height:45px;line-height:45px;overflow:hidden;cursor:pointer;margin:0;border:0 solid transparent;z-index:100}.b-contacts-content.modal .b-list-content .e-contact-item .delimiter{position:relative;display:block;height:1px;background-color:#999;opacity:.2;filter:alpha(opacity=20)}.b-contacts-content.modal .b-list-content .e-contact-item .wrapper{padding:0}.b-contacts-content.modal .b-list-content .e-contact-item .sidebarParent{display:inline-block;width:6px;background-color:#eee;float:left;height:100%}.b-contacts-content.modal .b-list-content .e-contact-item.deleted{max-height:0;border-color:transparent!important}.b-contacts-content.modal .b-list-content .e-contact-item .checkedParent{display:inline-block;float:left;padding:0 8px 0 6px}.b-contacts-content.modal .b-list-content .e-contact-item .nameParent{display:block;overflow:hidden;text-overflow:ellipsis;color:#333;font-size:16px}.b-contacts-content.modal .b-list-content .e-contact-item .nameParent,.b-contacts-content.modal .b-list-content .e-contact-item .emailParent{white-space:nowrap}.b-contacts-content.modal .b-list-content .e-contact-item .displayName,.b-contacts-content.modal .b-list-content .e-contact-item .displayEmail{overflow:hidden;text-overflow:ellipsis}.b-contacts-content.modal .b-list-content .e-contact-item .displayImg{display:inline-block;float:right;position:relative;margin:0 5px}.b-contacts-content.modal .b-list-content .e-contact-item.checked{z-index:101}.b-contacts-content.modal .b-list-content .e-contact-item.checked .sidebarParent{background-color:#69A8F5}.b-contacts-content.modal .b-list-content .e-contact-item.selected{background-color:#fff;z-index:102}.b-contacts-content.modal .b-list-content .e-contact-item.selected .sidebarParent{background-color:#398CF2}.b-contacts-content.modal .b-view-content{position:absolute;top:0;bottom:60px;left:250px;right:0;overflow:hidden;overflow-y:auto;background-color:#fff;border-left:1px solid #ddd}.b-contacts-content.modal .b-view-content .content{-webkit-overflow-scrolling:touch}.b-contacts-content.modal .b-view-content .b-contact-view-desc{text-align:center;font-size:24px;line-height:30px;padding-top:120px;color:#999}.b-contacts-content.modal .b-view-content .top-part{margin-top:20px}.b-contacts-content.modal .b-view-content .top-part .control-label{text-align:center}.b-contacts-content.modal .b-view-content .image-wrapper{margin-left:30px;border-radius:10px}.b-contacts-content.modal .b-view-content .image-wrapper img{border-radius:10px}.b-contacts-content.modal .b-view-content .top-row{padding:10px 0;height:30px}.b-contacts-content.modal .b-view-content .contactEmptyValueClick,.b-contacts-content.modal .b-view-content .contactValueClick,.b-contacts-content.modal .b-view-content .contactValueInput{display:inline-block;font-size:24px;line-height:28px;height:28px}.b-contacts-content.modal .b-view-content .contactEmptyValueClick,.b-contacts-content.modal .b-view-content .contactValueClick{color:#ddd;cursor:pointer;margin:5px 0 0 7px}.b-contacts-content.modal .b-view-content .contactValueInput{padding-left:6px}.b-contacts-content.modal .b-view-content .contactEmptyValueClick{border-bottom:1px dashed #ddd}.b-contacts-content.modal .b-view-content .contactValueClick{color:#555;border-bottom:11px dashed transparent}.b-contacts-content.modal .b-view-content .contactValueClick:hover{color:#000;border-bottom:1px dashed #000}.b-contacts-content.modal .b-view-content .hasError .contactValueClick,.b-contacts-content.modal .b-view-content .hasError .contactValueInput{color:#ee5f5b;border:1px solid #ee5f5b}.b-contacts-content.modal .b-view-content .button-save-contact{position:absolute;bottom:20px;right:20px}.b-contacts-content .e-contact-item{position:relative;height:55px;max-height:60px;line-height:22px;overflow:hidden;cursor:pointer;margin:0;border:0 solid transparent;z-index:100}.b-compose.modal{width:850px;margin:10px auto}.b-compose.modal .modal-body{overflow:auto;padding:0}.b-compose .b-header-toolbar{height:40px;background-color:#aaa;color:#fff;background-color:#333;background-color:rgba(0,0,0,.8)!important}.b-compose .b-header-toolbar .close{color:#fff;opacity:1;filter:alpha(opacity=100)}.b-compose .b-header-toolbar .btn.disable.button-delete{visibility:hidden}.b-compose .b-header-toolbar .button-save,.b-compose .b-header-toolbar .button-delete,.b-compose .b-header-toolbar .saved-text{margin-left:8px}.b-compose .b-header-toolbar .disable.button-delete{margin-left:0}.b-compose .b-header{padding:10px;border-bottom:1px solid #333;background-color:#eee;color:#333}.b-compose .b-header .e-identity{font-weight:700}.b-compose .b-header .e-identity.multiply{cursor:pointer;border-bottom:1px dashed #555}.b-compose .b-header .e-row{line-height:30px}.b-compose .b-header .e-label{text-align:right;width:1%;min-width:70px;padding:6px 10px}.b-compose .b-header .e-value{padding:2px 0}.b-compose .b-header .e-value textarea,.b-compose .b-header .e-value input[type=text]{width:98%}.b-compose .b-header .e-value textarea{height:40px}.b-compose .b-header .error-desc{color:red}.b-compose .b-header .b-appachments .b-attacment{display:inline-block;line-height:20px}.b-compose .b-header .b-appachments .b-attacment-in-process{display:inline-block;line-height:20px}.b-compose .b-header .b-appachments .b-attacment-in-process .uploading{display:none;padding-right:5px}.b-compose .b-header .b-appachments .b-attacment-in-process.uploading .uploading{display:inline}.b-compose .b-header .b-appachments .b-attacment-in-process .upload-progress{font-weight:700}.b-compose .b-header .b-appachments .b-attacment-in-process.error .namedStr{color:#888}.b-compose .b-header .b-appachments .b-attacment-in-process .error{color:red}.b-compose .b-header .b-appachments .b-attacment-in-process .close{float:left;padding-right:13px}.b-compose .b-attachment-button{display:inline-block}.b-compose .b-attachment-place{position:absolute;height:120px;border:2px #777 dashed;line-height:119px;text-align:center;background-color:#fff;z-index:300;left:20px;right:20px;font-size:24px}.b-compose .b-attachment-place.drag-and-drop-over{background:#777;color:#fff}.b-compose .editorTextArea,.b-compose .editorHtmlArea{background:#fff;color:#000;font-family:Arial,Verdana,Geneva,sans-serif;font-size:14px}.b-compose .editorTextArea table,.b-compose .editorHtmlArea table{border-collapse:separate}.b-compose .editorTextArea blockquote,.b-compose .editorHtmlArea blockquote{border:0;border-left:solid 2px #444;margin-left:5px;margin:5px 0;padding-left:5px}.b-admin-left .b-toolbar{position:absolute;top:0;right:0;left:0;height:34px;padding:8px 0 0 8px}.b-admin-left .b-content{position:absolute;top:68px;bottom:8px;left:0;right:0;overflow:hidden}.b-admin-left .b-content .content{-webkit-overflow-scrolling:touch}.b-admin-menu .e-item{overflow:hidden;text-decoration:none;outline:0}.b-admin-menu .e-link{position:relative;display:block;height:30px;line-height:29px;cursor:pointer;font-size:18px;z-index:1;cursor:default;background-color:transparent;color:#888;padding:4px 10px;outline:0;text-decoration:none}.b-admin-menu .e-item.selectable .e-link{cursor:pointer}.b-admin-menu .e-item.selectable:hover .e-link,.b-admin-menu .e-item.selectable.selected .e-link{background-color:#555;color:#fff}.b-admin-right .b-toolbar{position:absolute;top:0;right:0;left:0;height:34px;padding:8px;color:#fff}.b-admin-right .b-content{position:absolute;top:58px;bottom:8px;left:0;right:8px;overflow-y:auto;z-index:2;background-color:#fff;border:1px solid #aaa;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.3);-moz-box-shadow:0 2px 8px rgba(0,0,0,.3);box-shadow:0 2px 8px rgba(0,0,0,.3);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.b-admin-right .b-content .content{-webkit-overflow-scrolling:touch}.b-admin-right .b-settings-content{padding:20px}.b-admin-general .flag-selector{padding-top:5px}.b-admin-general .flag-name{border-bottom:1px dashed #555}.b-admin-domains .process-place{width:600px;padding:14px 0;text-align:center;visibility:hidden}.b-admin-domains-list-table{width:600px}.b-admin-domains-list-table .e-item .e-action{cursor:pointer}.b-admin-domains-list-table .e-item .domain-name{display:inline-block;word-break:break-all;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.b-admin-domains-list-table .e-item.disabled .domain-name{color:#bbb}.b-admin-domains-list-table .e-item .button-delete{margin-right:15px;visibility:hidden;opacity:0;filter:alpha(opacity=0)}.b-admin-domains-list-table .e-item .delete-access.button-delete{visibility:visible;margin-right:0;opacity:1;filter:alpha(opacity=100)}.b-admin-domains-list-table .e-item .delete-domain,.b-admin-domains-list-table .e-item .disable-domain{cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.b-admin-domains-list-table .e-item.disabled .disable-domain{opacity:.5;filter:alpha(opacity=50)}.b-admin-domains-list-table .e-item .delete-domain:hover,.b-admin-domains-list-table .e-item .disable-domain:hover{opacity:1;filter:alpha(opacity=100)}.b-domain-content.modal{width:645px}.b-domain-content .modal-header{background-color:#fff}.b-domain-content .modal-body{position:relative;overflow:hidden;width:1300px;height:390px}.b-domain-content.domain-edit .modal-body{height:350px}.b-domain-content.domain-white-list-page .modal-body{left:-640px}.b-domain-content .error-desc{color:red;margin-left:10px}.b-domain-content .testing-done .imap-header,.b-domain-content .testing-done .smtp-header{color:green;font-weight:700}.b-domain-content .testing-error .imap-header,.b-domain-content .testing-error .smtp-header{color:red}.b-admin-packages .alert{width:650px}.b-admin-packages .process-place{visibility:hidden}.b-admin-packages-list-table{width:700px}.b-admin-packages-list-table .e-item .package-img{font-size:12px;margin-right:2px}.b-admin-packages-list-table .e-item .package-name.core{font-weight:700}.b-admin-packages-list-table .e-item .package-desc{color:#999;font-size:12px}.b-admin-packages-list-table .e-item .e-action{cursor:pointer}.b-admin-packages-list-table .e-item .package-release-parent,.b-admin-packages-list-table .e-item .package-actions-parent{text-align:center}.b-admin-packages-list-table .e-item .package-actions-parent{vertical-align:middle}.b-admin-plugins .process-place{visibility:hidden}.b-admin-plugins-list-table.disabled{opacity:.5;filter:alpha(opacity=50);background-color:#eee}.b-admin-plugins-list-table .e-item .e-action{cursor:pointer}.b-admin-plugins-list-table .e-item .plugin-img{font-size:12px;margin-right:2px}.b-admin-plugins-list-table .e-item.disabled .plugin-img,.b-admin-plugins-list-table .e-item.disabled .plugin-name{color:#bbb}.b-admin-plugins-list-table .e-item.disabled .disable-plugin{opacity:.5;filter:alpha(opacity=50)}.b-admin-plugin-property .help-block{margin-bottom:5px}.b-plugin-content.modal{width:660px}.b-plugin-content.modal .modal-body{overflow:auto}.b-plugin-content .modal-header{background-color:#fff}.b-plugin-content .information{display:inline-block;background-color:#ddd;border-radius:10px;cursor:pointer;height:25px;width:30px;text-align:center;padding-top:5px}.b-plugin-content textarea{width:400px;height:50px}.popups .b-activate-content{width:700px}.popups .b-activate-content .modal-header{background-color:#fff}.popups .b-activate-content .help-inline{padding-left:0}.b-settins-left .b-toolbar{position:absolute;top:0;right:0;left:0;height:34px;padding:8px 0 0 8px}.b-settins-left .b-content{position:absolute;top:68px;bottom:8px;left:0;right:0;overflow:hidden}.b-settins-left .b-content .content{-webkit-overflow-scrolling:touch}.b-settings-menu .e-item{overflow:hidden;text-decoration:none;outline:0}.b-settings-menu .e-link{position:relative;display:block;height:30px;line-height:29px;font-size:18px;z-index:1;cursor:default;background-color:transparent;color:#888;padding:4px 10px;outline:0;text-decoration:none}.b-settings-menu .e-item.selectable .e-link{cursor:pointer}.b-settings-menu .e-item.selectable:hover .e-link,.b-settings-menu .e-item.selectable.selected .e-link{background-color:#555;color:#fff}.b-settins-right .b-toolbar{position:absolute;top:0;right:0;left:0;height:34px;padding:8px 5px;color:#fff}.b-settins-right .b-content{position:absolute;top:58px;bottom:8px;left:0;right:8px;overflow-y:auto;z-index:2;background-color:#fff;border:1px solid #aaa;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.3);-moz-box-shadow:0 2px 8px rgba(0,0,0,.3);box-shadow:0 2px 8px rgba(0,0,0,.3);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.b-settins-right .b-content .content{-webkit-overflow-scrolling:touch}.b-settins-right .b-settings-content{padding:20px}.b-settings-general .notification-desc-denied{color:#999;display:none}.b-settings-general .denied-by-browser .notification-desc-denied{display:inline}.b-settings-general .denied-by-browser .notification-desc{color:#999}.b-settings-general .flag-selector{padding-top:5px}.b-settings-general .flag-name{border-bottom:1px dashed #555}.b-settings-accounts .process-place{text-align:center;width:600px;padding:14px 0}.b-settings-accounts .list-table{width:600px}.b-settings-accounts .list-table td{padding:4px 8px;line-height:30px}.b-settings-accounts .list-table .account-img{font-size:12px;margin-right:5px}.b-settings-accounts .list-table .account-name{display:inline-block;word-break:break-all;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;line-height:22px;cursor:default}.b-settings-accounts .account-item .button-delete{margin-right:15px;margin-top:5px;visibility:hidden;opacity:0;filter:alpha(opacity=0)}.b-settings-accounts .account-item .delete-access.button-delete{visibility:visible;margin-right:0;opacity:1;filter:alpha(opacity=100)}.b-settings-accounts .account-item .delete-account{cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.b-settings-identities .process-place{text-align:center;width:600px;padding:14px 0}.b-settings-identities .list-table{width:600px}.b-settings-identities .list-table td{padding:4px 8px;line-height:30px}.b-settings-identities .list-table .identity-img{font-size:12px;margin-right:5px}.b-settings-identities .list-table .identity-name{display:inline-block;word-break:break-all;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;line-height:22px;cursor:pointer}.b-settings-identities .identity-item .e-action{cursor:pointer}.b-settings-identities .identity-item .button-delete{margin-right:15px;margin-top:5px;visibility:hidden;opacity:0;filter:alpha(opacity=0)}.b-settings-identities .identity-item .delete-access.button-delete{visibility:visible;margin-right:0;opacity:1;filter:alpha(opacity=100)}.b-settings-identities .identity-item .delete-identity{cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.b-settings-folders.ignore-folder-subscribe .subscribe-folder,.b-settings-folders.ignore-folder-subscribe .unsubscribe-folder{display:none}.b-settings-folders .process-place{text-align:center;width:600px;padding:14px 0}.b-settings-folders .folders-list-error{width:550px;margin:10px 0}.b-settings-folders .list-table{width:600px}.b-settings-folders .list-table .e-action{cursor:pointer}.b-settings-folders .list-table td{padding:4px 8px;line-height:30px}.b-settings-folders .list-table .folder-padding{display:inline-block;width:0}.b-settings-folders .list-table .folder-name{display:inline-block;word-break:break-all;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-left:7px;line-height:22px;cursor:default}.b-settings-folders .list-table .folder-system-name{display:inline-block;line-height:22px;color:#999;cursor:default}.b-settings-folders .list-table .folder-name.can-be-edited:hover{border-bottom:1px dashed #333;cursor:pointer}.b-settings-folders .list-table .folder-name-input{border-width:1px;margin-bottom:0}.b-settings-folders .folder-item .button-delete{margin-right:15px;margin-top:5px;visibility:hidden;opacity:0;filter:alpha(opacity=0)}.b-settings-folders .folder-item .delete-access.button-delete{visibility:visible;margin-right:0;opacity:1;filter:alpha(opacity=100)}.b-settings-folders .folder-item .delete-folder,.b-settings-folders .folder-item .subscribe-folder,.b-settings-folders .folder-item .unsubscribe-folder{cursor:pointer;opacity:.6;filter:alpha(opacity=60)}.b-settings-folders .folder-item .unsubscribe-folder{opacity:.25;filter:alpha(opacity=25)}.b-settings-folders .folder-padding.deep-1{width:25px}.b-settings-folders .folder-padding.deep-2{width:40px}.b-settings-folders .folder-padding.deep-3{width:55px}.b-settings-folders .folder-padding.deep-4{width:70px}.b-settings-folders .folder-padding.deep-5{width:85px}.b-themes-list .e-item{display:inline-block;border:2px solid transparent;cursor:pointer;color:#000;background-color:#fff;padding:16px;margin:5px}.b-themes-list .e-item:hover{border:2px solid grey}.b-themes-list .e-item.selected{background-color:#eee;border:2px solid #000}.b-themes-list .e-item .e-image{width:100px;height:100px;border:1px solid #ddd}@keyframes highlight-folder-row{0%{transform:scale(1)}50%{transform:scale(1.1)}100%{transform:scale(1)}}@-moz-keyframes highlight-folder-row{0%{-moz-transform:scale(1)}50%{-moz-transform:scale(1.1)}100%{-moz-transform:scale(1)}}@-webkit-keyframes highlight-folder-row{0%{-webkit-transform:scale(1)}50%{-webkit-transform:scale(1.1)}100%{-webkit-transform:scale(1)}}@-webkit-keyframes textLoadingAnimationKeyFrame{0%{opacity:1}33%{opacity:0}100%{opacity:1}}@-moz-keyframes textLoadingAnimationKeyFrame{0%{opacity:1}33%{opacity:0}100%{opacity:1}}@keyframes textLoadingAnimationKeyFrame{0%{opacity:1}33%{opacity:0}100%{opacity:1}}@-webkit-keyframes animate-stripes{0%{background-position:0 0}100%{background-position:60px 0}}@-moz-keyframes animate-stripes{0%{background-position:0 0}100%{background-position:60px 0}}@keyframes animate-stripes{0%{background-position:0 0}100%{background-position:60px 0}}.rl-anim.rgba.cssanimations.backgroundsize .e-strip-animation{-webkit-background-size:60px 60px;-moz-background-size:60px 60px;background-size:60px 60px;background-image:-webkit-linear-gradient(135deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(135deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(135deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(135deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);background-image:linear-gradient(135deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);-webkit-animation:animate-stripes 2s linear infinite;-moz-animation:animate-stripes 2s linear infinite;animation:animate-stripes 2s linear infinite}.rl-anim.csstransitions .b-settings-folders .folder-item .button-delete{-webkit-transition:all .2s linear;-moz-transition:all .2s linear;-o-transition:all .2s linear;transition:all .2s linear}.rl-anim.csstransitions .b-settings-accounts .account-item .button-delete{-webkit-transition:all .2s linear;-moz-transition:all .2s linear;-o-transition:all .2s linear;transition:all .2s linear}.rl-anim.csstransitions .b-settings-identities .identity-item .button-delete{-webkit-transition:all .2s linear;-moz-transition:all .2s linear;-o-transition:all .2s linear;transition:all .2s linear}.rl-anim.csstransitions .b-admin-domains .e-item .button-delete{-webkit-transition:all .2s linear;-moz-transition:all .2s linear;-o-transition:all .2s linear;transition:all .2s linear}.rl-anim.csstransitions .b-compose .button-delete{-webkit-transition:margin-left .2s linear;-moz-transition:margin-left .2s linear;-o-transition:margin-left .2s linear;transition:margin-left .2s linear}.rl-anim.cssanimations .b-folders .e-item .anim-action-class{-webkit-animation:highlight-folder-row .5s linear;-moz-animation:highlight-folder-row .5s linear;animation:highlight-folder-row .5s linear}.rl-anim.csstransitions .messageList .messageListItem{-webkit-transition:max-height 400ms ease;-moz-transition:max-height 400ms ease;-o-transition:max-height 400ms ease;transition:max-height 400ms ease}.rl-anim.csstransitions .messageList .listDragOver{-webkit-transition:all 400ms ease;-moz-transition:all 400ms ease;-o-transition:all 400ms ease;transition:all 400ms ease}.rl-anim.csstransitions .b-list-content .e-contact-item{-webkit-transition:max-height 400ms ease;-moz-transition:max-height 400ms ease;-o-transition:max-height 400ms ease;transition:max-height 400ms ease}.rl-anim.csstransitions .modal.b-domain-content .modal-body{-webkit-transition:left 500ms ease;-moz-transition:left 500ms ease;-o-transition:left 500ms ease;transition:left 500ms ease}.rl-anim.csstransitions .modal-open .popups .modal{-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transition:.3s all cubic-bezier(0.250,.460,.450,.940);-moz-transition:.3s all cubic-bezier(0.250,.460,.450,.940);-o-transition:.3s all cubic-bezier(0.250,.460,.450,.940);transition:.3s all cubic-bezier(0.250,.460,.450,.940);-webkit-transform:scale(0.9);-moz-transform:scale(0.9);-ms-transform:scale(0.9);-o-transform:scale(0.9);transform:scale(0.9)}.rl-anim .modal-open .popups .popup-active.modal{-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none}.rl-anim.cssanimations .b-compose.loading .b-header-toolbar{-webkit-background-size:60px 60px;-moz-background-size:60px 60px;background-size:60px 60px;background-image:-webkit-linear-gradient(135deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(135deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(135deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(135deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-image:linear-gradient(135deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);-webkit-animation:animate-stripes 2s linear infinite;-moz-animation:animate-stripes 2s linear infinite;animation:animate-stripes 2s linear infinite}.textLoadingAnimationD1,.textLoadingAnimationD2,.textLoadingAnimationD3{-webkit-animation:textLoadingAnimationKeyFrame 1s linear infinite 0s;-moz-animation:textLoadingAnimationKeyFrame 1s linear infinite 0s;animation:textLoadingAnimationKeyFrame 1s linear infinite 0s}.textLoadingAnimationD2{-webkit-animation-delay:.3s;-moz-animation-delay:.3s;animation-delay:.3s}.textLoadingAnimationD3{-webkit-animation-delay:.6s;-moz-animation-delay:.6s;animation-delay:.6s}.editorToolbar{position:relative;height:20px;margin-top:10px;line-height:19px}.editorToolbar.editorHideToolbar .editorToolbarButtom{display:none}.editorToolbar .editorSwitcher{display:inline-block;vertical-align:middle}.editorToolbar .editorToolbarButtom{display:inline-block;width:16px;height:16px;padding:3px}.editorToolbar .editorToolbarButtom a{display:inline-block;border:0;margin:0;padding:0;width:16px;height:16px;cursor:default;background:url(images/editor.png)}.editorToolbar .editorToolbarButtom a.bold{background-position:0 0}.editorToolbar .editorToolbarButtom a.italic{background-position:-16px 0}.editorToolbar .editorToolbarButtom a.underline{background-position:-32px 0}.editorToolbar .editorToolbarButtom a.strikethrough{background-position:-48px 0}.editorToolbar .editorToolbarButtom a.link{background-position:-64px 0}.editorToolbar .editorToolbarButtom a.unlink{background-position:-80px 0}.editorToolbar .editorToolbarButtom a.orderedlist{background-position:-96px 0}.editorToolbar .editorToolbarButtom a.unorderedlist{background-position:-112px 0}.editorToolbar .editorToolbarButtom a.image{background-position:-128px 0}.editorToolbar .editorToolbarButtom a.h1{background-position:0 -16px}.editorToolbar .editorToolbarButtom a.h2{background-position:-16px -16px}.editorToolbar .editorToolbarButtom a.h3{background-position:-32px -16px}.editorToolbar .editorToolbarButtom a.h4{background-position:-48px -16px}.editorToolbar .editorToolbarButtom a.h5{background-position:-64px -16px}.editorToolbar .editorToolbarButtom a.h6{background-position:-80px -16px}.editorToolbar .editorToolbarButtom a.subscript{background-position:-96px -16px}.editorToolbar .editorToolbarButtom a.superscript{background-position:-112px -16px}.editorToolbar .editorToolbarButtom a.indent{background-position:-128px -16px}.editorToolbar .editorToolbarButtom a.outdent{background-position:-144px -16px}.editorToolbar .editorToolbarButtom a.horizontalrule{background-position:-160px -16px}.editorToolbar .editorToolbarButtom a.p{background-position:-176px -16px}.editorToolbar .editorToolbarButtom a.justifyleft{background-position:0 -32px}.editorToolbar .editorToolbarButtom a.justifycenter{background-position:-16px -32px}.editorToolbar .editorToolbarButtom a.justifyright{background-position:-32px -32px}.editorToolbar .editorToolbarButtom a.increasefontsize{background-position:-48px -32px}.editorToolbar .editorToolbarButtom a.decreasefontsize{background-position:-64px -32px}.editorToolbar .editorToolbarButtom a.forecolor{background-position:-80px -32px}.editorToolbar .editorToolbarButtom a.backcolor{background-position:-80px -32px}.editorToolbar .editorToolbarButtom a.removeformat{background-position:-144px 0}.textAreaParent{padding:0}.textAreaParent .editorHtmlArea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:0!important;overflow:auto;overflow-y:scroll;font-family:arial,sans-serif;font-size:14px;line-height:16px;margin:0;padding:8px}.textAreaParent .editorHtmlArea ul{padding-left:40px}.textAreaParent .editorHtmlArea ul li{list-style-type:disc!important}.textAreaParent .editorHtmlArea ol{padding-left:40px}.textAreaParent .editorHtmlArea ol li{list-style-type:decimal!important}.textAreaParent .editorHtmlArea blockquote{border-left:solid 2px #444;margin-left:5px;padding-left:5px}.textAreaParent .editorHtmlArea img{vertical-align:bottom}.textAreaParent .editorHtmlArea.editorDragOver{background:#ffffef}.textAreaParent .editorTextArea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;border:0!important;width:100%;line-height:16px;margin:0;padding:8px;font-family:arial,sans-serif;font-size:14px;overflow:auto;overflow-y:scroll}.editorColorPicker .editorCpColors{float:left;margin:0;clear:both;width:128px;border:1px solid #000;backgroud:#000}.editorColorPicker .editorCpColors .editorCpColor{border:1px solid #fff;float:left;width:14px;height:14px}.editorSwitcher{color:#369;text-decoration:underline;cursor:pointer;float:right;padding-bottom:6px}.editorFontStylePicker .editorFpFonts{padding:5px;border:1px solid #000;background-color:#fff}.editorFontStylePicker .editorFpFonts .editorFpFont{padding:5px} \ No newline at end of file +* Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:0}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;width:100%;list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;min-height:0;font-weight:400}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:400;margin:-1px}.ui-menu .ui-state-disabled{font-weight:400;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc;color:#222;font-weight:700}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#eee;font-weight:400;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #ccc;background:#eee;font-weight:400;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff;font-weight:400;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:2px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:2px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:2px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:2px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}/*! normalize.css 2012-03-11T12:53 UTC - http://github.com/necolas/normalize.css */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:hover,a:active{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.75em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:1em 40px}dfn{font-style:italic}mark{background:#ff0;color:#000}p,pre{margin:1em 0}pre,code,kbd,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:75%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@font-face{font-family:icomoon;src:url(fonts/icomoon.eot);src:url(fonts/icomoon.eot?#iefix) format('embedded-opentype'),url(fonts/icomoon.woff) format('woff'),url(fonts/icomoon.ttf) format('truetype'),url(fonts/icomoon.svg#icomoon) format('svg');font-weight:400;font-style:normal}[data-icon]:before{font-family:icomoon;content:attr(data-icon);speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased}.icon-paperplane,.icon-reply,.icon-reply-all,.icon-forward,.icon-search,.icon-add-to-list,.icon-info,.icon-arrow-right,.icon-arrow-down,.icon-ellipsis,.icon-pencil,.icon-image,.icon-music,.icon-film,.icon-print,.icon-calendar,.icon-key,.icon-cog,.icon-fire,.icon-rocket,.icon-checkbox-checked,.icon-checkbox-unchecked,.icon-checkbox-partial,.icon-radio-checked,.icon-radio-unchecked,.icon-google,.icon-google-plus,.icon-facebook,.icon-twitter,.icon-youtube,.icon-file-pdf,.icon-file-word,.icon-file-excel,.icon-file-powerpoint,.icon-file-xml,.icon-file-css,.icon-warning,.icon-switch,.icon-wrench,.icon-remove,.icon-ok,.icon-plus,.icon-minus,.icon-attachment,.icon-arrow-left,.icon-arrow-up--upload,.icon-arrow-right-2,.icon-arrow-down-2,.icon-file,.icon-file-zip,.icon-console,.icon-floppy,.icon-user,.icon-envelope,.icon-user-add,.icon-eye,.icon-arrow-right-3,.icon-arrow-down-3,.icon-facebook-2,.icon-spinner,.icon-lightning,.icon-trash,.icon-download,.icon-upload,.icon-settings5,.icon-bug,.icon-libreoffice,.icon-file-openoffice,.icon-google-drive,.icon-edit2,.icon-phonebook,.icon-book,.icon-spinner-2,.icon-bell,.icon-cart,.icon-cog-2,.icon-legacyfilemanager,.icon-favorite,.icon-favorite2,.icon-loved,.icon-love,.icon-scaleup,.icon-scaledown,.icon-opennewwindow,.icon-repeat,.icon-reorder,.icon-skype,.icon-dropbox{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased}.icon-paperplane:before{content:"\e000"}.icon-reply:before{content:"\e001"}.icon-reply-all:before{content:"\e002"}.icon-forward:before{content:"\e003"}.icon-search:before{content:"\e004"}.icon-add-to-list:before{content:"\e005"}.icon-info:before{content:"\e006"}.icon-arrow-right:before{content:"\e007"}.icon-arrow-down:before{content:"\e008"}.icon-ellipsis:before{content:"\e009"}.icon-pencil:before{content:"\e00a"}.icon-image:before{content:"\e00b"}.icon-music:before{content:"\e00c"}.icon-film:before{content:"\e00d"}.icon-print:before{content:"\e00e"}.icon-calendar:before{content:"\e00f"}.icon-key:before{content:"\e010"}.icon-cog:before{content:"\e011"}.icon-fire:before{content:"\e012"}.icon-rocket:before{content:"\e013"}.icon-checkbox-checked:before{content:"\e014"}.icon-checkbox-unchecked:before{content:"\e015"}.icon-checkbox-partial:before{content:"\e016"}.icon-radio-checked:before{content:"\e017"}.icon-radio-unchecked:before{content:"\e018"}.icon-google:before{content:"\e019"}.icon-google-plus:before{content:"\e01a"}.icon-facebook:before{content:"\e01b"}.icon-twitter:before{content:"\e01c"}.icon-youtube:before{content:"\e01d"}.icon-file-pdf:before{content:"\e01e"}.icon-file-word:before{content:"\e01f"}.icon-file-excel:before{content:"\e020"}.icon-file-powerpoint:before{content:"\e021"}.icon-file-xml:before{content:"\e022"}.icon-file-css:before{content:"\e023"}.icon-warning:before{content:"\e024"}.icon-switch:before{content:"\e025"}.icon-wrench:before{content:"\e026"}.icon-remove:before{content:"\e027"}.icon-ok:before{content:"\e028"}.icon-plus:before{content:"\e029"}.icon-minus:before{content:"\e02a"}.icon-attachment:before{content:"\e02b"}.icon-arrow-left:before{content:"\e02c"}.icon-arrow-up--upload:before{content:"\e02d"}.icon-arrow-right-2:before{content:"\e02e"}.icon-arrow-down-2:before{content:"\e02f"}.icon-file:before{content:"\e030"}.icon-file-zip:before{content:"\e031"}.icon-console:before{content:"\e032"}.icon-floppy:before{content:"\e033"}.icon-user:before{content:"\e034"}.icon-envelope:before{content:"\e035"}.icon-user-add:before{content:"\e036"}.icon-eye:before{content:"\e037"}.icon-arrow-right-3:before{content:"\e038"}.icon-arrow-down-3:before{content:"\e039"}.icon-facebook-2:before{content:"\e03a"}.icon-spinner:before{content:"\e03b"}.icon-lightning:before{content:"\e03c"}.icon-trash:before{content:"\e03d"}.icon-download:before{content:"\e03e"}.icon-upload:before{content:"\e03f"}.icon-settings5:before{content:"\e040"}.icon-bug:before{content:"\e041"}.icon-libreoffice:before{content:"\e042"}.icon-file-openoffice:before{content:"\e043"}.icon-google-drive:before{content:"\e044"}.icon-edit2:before{content:"\e045"}.icon-phonebook:before{content:"\e046"}.icon-book:before{content:"\e047"}.icon-spinner-2:before{content:"\e048"}.icon-bell:before{content:"\e049"}.icon-cart:before{content:"\e04a"}.icon-cog-2:before{content:"\e04b"}.icon-legacyfilemanager:before{content:"\e04c"}.icon-favorite:before{content:"\e04d"}.icon-favorite2:before{content:"\e04e"}.icon-loved:before{content:"\e04f"}.icon-love:before{content:"\e050"}.icon-scaleup:before{content:"\e051"}.icon-scaledown:before{content:"\e052"}.icon-opennewwindow:before{content:"\e053"}.icon-repeat:before{content:"\e054"}.icon-reorder:before{content:"\e055"}.icon-skype:before{content:"\e056"}.icon-dropbox:before{content:"\e057"}.nano{overflow :hidden!important}.nano .content{position :absolute;overflow :scroll;top :0;right :0;bottom :0;left :0;-webkit-overflow-scrolling:touch}.nano .content .content-wrapper{height:100%}.nano .content::-webkit-scrollbar{visibility:hidden}.has-scrollbar .content::-webkit-scrollbar{visibility:hidden}.nano-visibility-hidden::-webkit-scrollbar{visibility:hidden}.nano>.pane{background :none;position :absolute;width :5px;right :0;top :1px;bottom :1px;opacity :.01;filter:alpha(opacity=1);-webkit-transition :.4s;-moz-transition :.4s;-o-transition :.4s;transition :.4s;-moz-border-radius :5px;-webkit-border-radius :5px;border-radius :5px;z-index:10000;margin :2px}.nano>.pane2{background :none;position :absolute;height :5px;right :1px;left :1px;bottom :0;opacity :.01;filter:alpha(opacity=1);-webkit-transition :.4s;-moz-transition :.4s;-o-transition :.4s;transition :.4s;-moz-border-radius :5px;-webkit-border-radius :5px;border-radius :5px;z-index:10000;margin :2px}.nano>.pane>.slider{background-color:#999;background-color:rgba(0,0,0,.3);position :relative;margin :0;-moz-border-radius :3px;-webkit-border-radius :3px;border-radius :3px;width :5px}.nano>.pane2>.slider2{background-color:#999;background-color:rgba(0,0,0,.3);position :relative;margin :0;-moz-border-radius :3px;-webkit-border-radius :3px;border-radius :3px;height :5px}.nano:hover>.pane,.nano:hover>.pane2,.pane.active,.pane2.active,.pane.flashed,.pane2.flashed{visibility :visible\9;opacity :.99;filter:alpha(opacity=99)}.nano>.pane:hover,.nano>.pane.active{background-color:rgba(0,0,0,.15)}.nano>.pane2:hover,.nano>.pane2.active{background-color:rgba(0,0,0,.15)}.nano>.pane:hover>.slider,.nano>.pane.active>.slider{background-color:rgba(0,0,0,.4)}.nano>.pane2:hover>.slider2,.nano>.pane2.active>.slider2{background-color:rgba(0,0,0,.4)}.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#0b0b0b;opacity:.8;filter:alpha(opacity=80)}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:0!important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-container:before{content:'';display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-inline-holder .mfp-content,.mfp-ajax-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-close,.mfp-arrow,.mfp-preloader,.mfp-counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none!important}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;display:block;outline:0;padding:0;z-index:1046;-webkit-box-shadow:none;box-shadow:none}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:.65;padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:28px;font-family:Arial,Baskerville,monospace}.mfp-close:hover,.mfp-close:focus{opacity:1}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#333}.mfp-image-holder .mfp-close,.mfp-iframe-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px}.mfp-arrow{position:absolute;opacity:.65;margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:hover,.mfp-arrow:focus{opacity:1}.mfp-arrow:before,.mfp-arrow:after,.mfp-arrow .mfp-b,.mfp-arrow .mfp-a{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after,.mfp-arrow .mfp-a{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before,.mfp-arrow .mfp-b{border-top-width:21px;border-bottom-width:21px}.mfp-arrow-left{left:0}.mfp-arrow-left:after,.mfp-arrow-left .mfp-a{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before,.mfp-arrow-left .mfp-b{margin-left:25px;border-right:27px solid #3f3f3f}.mfp-arrow-right{right:0}.mfp-arrow-right:after,.mfp-arrow-right .mfp-a{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before,.mfp-arrow-right .mfp-b{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:40px 0;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width:800px) and (orientation:landscape),screen and (max-height:300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure{}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}@media all and (max-width:900px){.mfp-arrow{-webkit-transform:scale(0.75);transform:scale(0.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}.mfp-ie7 .mfp-img{padding:0}.mfp-ie7 .mfp-bottom-bar{width:600px;left:50%;margin-left:-300px;margin-top:5px;padding-bottom:5px}.mfp-ie7 .mfp-container{padding:0}.mfp-ie7 .mfp-content{padding-top:44px}.mfp-ie7 .mfp-close{top:0;right:0;padding-top:0}.mfp-fade.mfp-bg{opacity:0;-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out;transition:all .2s ease-out}.mfp-fade.mfp-bg.mfp-ready{opacity:.8}.mfp-fade.mfp-bg.mfp-removing{opacity:0}.mfp-fade.mfp-wrap .mfp-content{opacity:0;-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out;-webkit-transform:translateX(-50px);-moz-transform:translateX(-50px);transform:translateX(-50px)}.mfp-fade.mfp-wrap.mfp-ready .mfp-content{opacity:1;-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translateX(0)}.mfp-fade.mfp-wrap.mfp-removing .mfp-content{opacity:0;-webkit-transform:translateX(50px);-moz-transform:translateX(50px);transform:translateX(50px)}.simple-pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.simple-pace-inactive{display:none}.simple-pace .simple-pace-progress{background-color:#939595;position:fixed;z-index:2000;top:0;left:0;height:3px;overflow:hidden;-webkit-transition:width .5s;-moz-transition:width .5s;-o-transition:width .5s;transition:width .5s}.simple-pace .simple-pace-progress-inner{position:absolute;top:0;left:0;right:-32px;bottom:0;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.3)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.3)),color-stop(0.75,rgba(255,255,255,.3)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.3) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.3) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.3) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.3) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.3) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.3) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.3) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.3) 75%,transparent 75%,transparent);-webkit-background-size:32px 32px;-moz-background-size:32px 32px;-o-background-size:32px 32px;background-size:32px 32px;-webkit-animation:simple-pace-stripe-animation 500ms linear infinite;-moz-animation:simple-pace-stripe-animation 500ms linear infinite;-ms-animation:simple-pace-stripe-animation 500ms linear infinite;-o-animation:simple-pace-stripe-animation 500ms linear infinite;animation:simple-pace-stripe-animation 500ms linear infinite}@-webkit-keyframes simple-pace-stripe-animation{0%{-webkit-transform:none;transform:none}100%{-webkit-transform:translate(-32px,0);transform:translate(-32px,0)}}@-moz-keyframes simple-pace-stripe-animation{0%{-moz-transform:none;transform:none}100%{-moz-transform:translate(-32px,0);transform:translate(-32px,0)}}@-o-keyframes simple-pace-stripe-animation{0%{-o-transform:none;transform:none}100%{-o-transform:translate(-32px,0);transform:translate(-32px,0)}}@-ms-keyframes simple-pace-stripe-animation{0%{-ms-transform:none;transform:none}100%{-ms-transform:translate(-32px,0);transform:translate(-32px,0)}}@keyframes simple-pace-stripe-animation{0%{transform:none;transform:none}100%{transform:translate(-32px,0);transform:translate(-32px,0)}}.inputosaurus-container{background-color:#fff;border:1px solid #bcbec0;margin:0 5px 0 0;padding:0 3px;display :inline-block;cursor:text;font-size :14px;font-family :"Helvetica Neue",Helvetica,Arial,sans-serif}.inputosaurus-container li{display :block;float :left;overflow:hidden;margin :2px 2px 0;padding :2px 3px;white-space :nowrap;overflow :hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;-ms-text-overflow:ellipsis;background-color:#e5eff7;border:#a9cae4 solid 1px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;color:#5b9bcd;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.75) inset;-moz-box-shadow:0 1px 0 rgba(255,255,255,.75) inset;box-shadow:0 1px 0 rgba(255,255,255,.75) inset;line-height :20px;cursor:default}.inputosaurus-container li.inputosaurus-selected{background-color:#bdd6eb}.inputosaurus-container li a{font-size:16px;color:#5b9bcd;padding :1px;text-decoration :none;outline :none}.inputosaurus-container .inputosaurus-input{border:0;box-shadow:none;background-color:#fff;margin-top :3px}.inputosaurus-container .inputosaurus-input input{border:0;height :23px;font-size :14px;line-height :20px;color :#555;margin :0;outline :none;padding :0 0 1px 1px;width :25px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.inputosaurus-container .inputosaurus-input input:hover{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.inputosaurus-input-hidden{display:none}.flag-wrapper{width:24px;height:16px;display:inline-block}.flag{width:16px;height:11px;display:inline-block;background:url(flags.png) no-repeat}.flag.flag-en{background-position:-144px -154px}.flag.flag-en-us{background-position:-144px -154px}.flag.flag-en-gb{background-position:-240px -33px}.flag.flag-en-ca{background-position:-48px -22px}.flag.flag-nl,.flag.flag-nl-nl{background-position:-80px -110px}.flag.flag-pl,.flag.flag-pl-pl{background-position:-32px -121px}.flag.flag-ru,.flag.flag-ru-ru{background-position:-224px -121px}.flag.flag-ua,.flag.flag-ua-ua{background-position:-96px -154px}.flag.flag-de,.flag.flag-de-de{background-position:-80px -33px}.flag.flag-it,.flag.flag-it-it{background-position:-208px -66px}.flag.flag-is,.flag.flag-is-is{background-position:-192px -66px}.flag.flag-lv,.flag.flag-lv-lv{background-position:-112px -88px}.flag.flag-fr,.flag.flag-fr-fr,.flag.flag-fr-ca{background-position:-144px -44px}.flag.flag-es,.flag.flag-es-es,.flag.flag-es-la{background-position:-16px -44px}.flag.flag-ja,.flag.flag-jp,.flag.flag-ja-jp{background-position:-16px -77px}.flag.flag-pt,.flag.flag-pt-pt{background-position:-112px -121px}.flag.flag-pt-br{background-position:-192px -11px}.flag.flag-cn,.flag.flag-zh-tw,.flag.flag-zh-cn,.flag.flag-zh-hk{background-position:-208px -22px}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:"";line-height:0}.row:after{clear:both}[class*=span]{float:left;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0}.row-fluid:after{clear:both}.row-fluid [class*=span]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%}.row-fluid [class*=span]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*=span].hide,.row-fluid [class*=span].hide{display:none}[class*=span].pull-right,.row-fluid [class*=span].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;content:"";line-height:0}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:20px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:700}em{font-style:italic}cite{font-style:normal}.muted{color:#999}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:700;line-height:1;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;line-height:1;color:#999}h1{font-size:36px;line-height:40px}h2{font-size:30px;line-height:40px}h3{font-size:24px;line-height:40px}h4{font-size:18px;line-height:20px}h5{font-size:14px;line-height:20px}h6{font-size:12px;line-height:20px}h1 small{font-size:24px}h2 small{font-size:18px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:700}dd{margin-left:10px}.dl-horizontal dt{float:left;width:120px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:130px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:25px}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:400;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type=text],input[type=password],input[type=datetime],input[type=datetime-local],input[type=date],input[type=month],input[type=time],input[type=week],input[type=number],input[type=email],input[type=url],input[type=search],input[type=tel],input[type=color],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:9px;font-size:14px;line-height:20px;color:#555;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}input,textarea{width:210px}textarea{height:auto}textarea,input[type=text],input[type=password],input[type=datetime],input[type=datetime-local],input[type=date],input[type=month],input[type=time],input[type=week],input[type=number],input[type=email],input[type=url],input[type=search],input[type=tel],input[type=color],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type=text]:focus,input[type=password]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=date]:focus,input[type=month]:focus,input[type=time]:focus,input[type=week]:focus,input[type=number]:focus,input[type=email]:focus,input[type=url]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=color]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}input[type=radio],input[type=checkbox]{margin:4px 0 0;*margin-top:0;margin-top:1px \9;line-height:normal;cursor:pointer}input[type=file],input[type=image],input[type=submit],input[type=reset],input[type=button],input[type=radio],input[type=checkbox]{width:auto}select,input[type=file]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;border:1px solid #bbb;background-color:#fff}select[multiple],select[size]{height:auto}select:focus,input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.025);box-shadow:inset 0 1px 2px rgba(0,0,0,.025);cursor:not-allowed}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:18px;padding-left:18px}.radio input[type=radio],.checkbox input[type=checkbox]{float:left;margin-left:-18px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*=span],select[class*=span],textarea[class*=span],.uneditable-input[class*=span],.row-fluid input[class*=span],.row-fluid select[class*=span],.row-fluid textarea[class*=span],.row-fluid .uneditable-input[class*=span]{float:none;margin-left:0}.input-append input[class*=span],.input-append .uneditable-input[class*=span],.input-prepend input[class*=span],.input-prepend .uneditable-input[class*=span],.row-fluid input[class*=span],.row-fluid select[class*=span],.row-fluid textarea[class*=span],.row-fluid .uneditable-input[class*=span],.row-fluid .input-prepend [class*=span],.row-fluid .input-append [class*=span]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*=span]+[class*=span]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;content:"";line-height:0}.controls-row:after{clear:both}.controls-row [class*=span]{float:left}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type=radio][disabled],input[type=checkbox][disabled],input[type=radio][readonly],input[type=checkbox][readonly]{background-color:transparent}.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.warning .checkbox:focus,.control-group.warning .radio:focus,.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.error .checkbox:focus,.control-group.error .radio:focus,.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.success .checkbox:focus,.control-group.success .radio:focus,.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;content:"";line-height:0}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px}.input-append,.input-prepend{margin-bottom:5px;font-size:0;white-space:nowrap}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;font-size:14px;vertical-align:top;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:400;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn{margin-left:-1px;vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append .add-on:last-child,.input-append .btn:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;vertical-align:middle}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type=radio],.form-search .checkbox input[type=checkbox],.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:140px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:160px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:160px}.form-horizontal .help-block{margin-top:10px;margin-bottom:0}.form-horizontal .form-actions{padding-left:160px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:700}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child,.table-bordered tfoot:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child,.table-bordered tfoot:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-right-topleft:4px}.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9}.table-hover tbody tr:hover td,.table-hover tbody tr:hover th{background-color:#f5f5f5}table [class*=span],.row-fluid table [class*=span]{display:table-cell;float:none;margin-left:0}table .span1{float:none;width:44px;margin-left:0}table .span2{float:none;width:124px;margin-left:0}table .span3{float:none;width:204px;margin-left:0}table .span4{float:none;width:284px;margin-left:0}table .span5{float:none;width:364px;margin-left:0}table .span6{float:none;width:444px;margin-left:0}table .span7{float:none;width:524px;margin-left:0}table .span8{float:none;width:604px;margin-left:0}table .span9{float:none;width:684px;margin-left:0}table .span10{float:none;width:764px;margin-left:0}table .span11{float:none;width:844px;margin-left:0}table .span12{float:none;width:924px;margin-left:0}table .span13{float:none;width:1004px;margin-left:0}table .span14{float:none;width:1084px;margin-left:0}table .span15{float:none;width:1164px;margin-left:0}table .span16{float:none;width:1244px;margin-left:0}table .span17{float:none;width:1324px;margin-left:0}table .span18{float:none;width:1404px;margin-left:0}table .span19{float:none;width:1484px;margin-left:0}table .span20{float:none;width:1564px;margin-left:0}table .span21{float:none;width:1644px;margin-left:0}table .span22{float:none;width:1724px;margin-left:0}table .span23{float:none;width:1804px;margin-left:0}table .span24{float:none;width:1884px;margin-left:0}.table tbody tr.success td{background-color:#dff0d8}.table tbody tr.error td{background-color:#f2dede}.table tbody tr.info td{background-color:#d9edf7}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu li>a:hover,.dropdown-menu li>a:focus,.dropdown-submenu:hover>a{text-decoration:none;color:#fff;background-color:#08c;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0)}.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#08c;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0)}.dropdown-menu .disabled>a,.dropdown-menu .disabled>a:hover{color:#999}.dropdown-menu .disabled>a:hover{text-decoration:none;background-color:transparent;cursor:default}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px;-moz-border-radius:0 6px 6px;border-radius:0 6px 6px}.dropdown-submenu:hover .dropdown-menu{display:block}.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#ccc;margin-top:5px;margin-right:-10px}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px}.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;overflow:visible \9;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:700;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 14px;margin-bottom:0;font-size:14px;line-height:20px;*line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333;text-shadow:0 1px 1px rgba(255,255,255,.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border:1px solid #bbb;*border:0;border-bottom-color:#a2a2a2;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover{color:#333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.btn-large [class^=icon-]{margin-top:2px}.btn-small{padding:3px 9px;font-size:12px;line-height:18px}.btn-small [class^=icon-]{margin-top:0}.btn-mini{padding:2px 6px;font-size:11px;line-height:16px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,.75)}.btn{border-color:#c5c5c5;border-color:rgba(0,0,0,.15) rgba(0,0,0,.15) rgba(0,0,0,.25)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#04c;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#da4f49;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#5bb75b;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#49afcd;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#363636;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);border-color:#222 #222 #000;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#222;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type=submit].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type=submit].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type=submit].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type=submit].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type=submit].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{border-color:transparent;cursor:pointer;color:#08c;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent}.btn-group{position:relative;font-size:0;white-space:nowrap;*margin-left:.3em}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{font-size:0;margin-top:10px;margin-bottom:10px}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1}.btn-toolbar .btn+.btn,.btn-toolbar .btn-group+.btn,.btn-toolbar .btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu{font-size:14px}.btn-group>.btn-mini{font-size:11px}.btn-group>.btn-small{font-size:12px}.btn-group>.btn-large{font-size:16px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);*padding-top:5px;*padding-bottom:5px}.btn-group>.btn-mini+.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:2px;*padding-bottom:2px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{padding-left:12px;padding-right:12px;*padding-top:7px;*padding-bottom:7px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-mini .caret,.btn-small .caret,.btn-large .caret{margin-top:6px}.btn-large .caret{border-left-width:5px;border-right-width:5px;border-top-width:5px}.dropup .btn-large .caret{border-bottom:5px solid #000;border-top:0}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical .btn{display:block;float:none;width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical .btn+.btn{margin-left:0;margin-top:-1px}.btn-group-vertical .btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical .btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical .btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical .btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.modal-open .dropdown-menu{z-index:2050}.modal-open .dropdown.open{*z-index:2050}.modal-open .popover{z-index:2060}.modal-open .tooltip{z-index:2080}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:50%;left:50%;z-index:1050;overflow:auto;width:560px;margin:-250px 0 0 -280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,.3);box-shadow:0 3px 7px rgba(0,0,0,.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out;top:-25%}.modal.fade.in{top:50%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{overflow-y:auto;max-height:400px;padding:15px}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff;*zoom:1}.modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-3px}.tooltip.right{margin-left:3px}.tooltip.bottom{margin-top:3px}.tooltip.left{margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#eee;text-align:center;text-decoration:none;background-color:#333;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#333}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#333}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#333}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#333}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;width:236px;padding:1px;background-color:#fff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-bottom:10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-right:10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0}.popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow:after{content:"";z-index:-1}.popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#fff}.popover.top .arrow:after{border-width:11px 11px 0;border-top-color:rgba(0,0,0,.25);bottom:-1px;left:-11px}.popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#fff}.popover.right .arrow:after{border-width:11px 11px 11px 0;border-right-color:rgba(0,0,0,.25);bottom:-11px;left:-1px}.popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-width:0 10px 10px;border-bottom-color:#fff}.popover.bottom .arrow:after{border-width:0 11px 11px;border-bottom-color:rgba(0,0,0,.25);top:-1px;left:-11px}.popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#fff}.popover.left .arrow:after{border-width:11px 0 11px 11px;border-left-color:rgba(0,0,0,.25);bottom:-11px;right:-1px}.label,.badge{font-size:11.844px;font-weight:700;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#999}.label{padding:1px 4px 2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding:1px 9px 2px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}a.label:hover,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.progress .bar{width:0;height:100%;color:#fff;float:left;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}@media screen and (-webkit-min-device-pixel-ratio:0){@font-face{font-family:icomoon;src:url(fonts/icomoon.svg#icomoon) format('svg')}}[class^=icon-],[class*=" icon-"]{display:inline-block;width:16px;height:16px;line-height:16px;font-size:15px;*margin-right:.3em;vertical-align:text-top}.icon-white,.nav>.active>a>[class^=icon-],.nav>.active>a>[class*=" icon-"]{color:#fff}.g-ui-menu .e-item:hover [class^=icon-],.g-ui-menu .e-item:hover [class*=" icon-"]{color:#fff}[class^=icon2-],[class*=" icon2-"]{display:inline-block;width:16px;height:16px;line-height:16px;font-size:15px;*margin-right:.3em;vertical-align:text-top;background-repeat:no-repeat}.icon2-none{background-image:none}.icon3-as-button{cursor:pointer}.icon-checkbox-checked,.icon-checkbox-unchecked,.icon-checkbox-partial,.icon-radio-checked,.icon-radio-unchecked{cursor:pointer;color:#555;font-size:1em}.icon-checkbox-checked:hover,.icon-checkbox-unchecked:hover,.icon-checkbox-partial:hover,.icon-radio-checked:hover,.icon-radio-unchecked:hover,.icon-checkbox-checked:active,.icon-checkbox-unchecked:active,.icon-checkbox-partial:active,.icon-radio-checked:active,.icon-radio-unchecked:active{color:#000}.icon-white.icon-checkbox-checked,.icon-white.icon-checkbox-unchecked,.icon-white.icon-checkbox-partial,.icon-white.icon-radio-checked,.icon-white.icon-radio-unchecked{color:#eee}.icon-white.icon-checkbox-checked:hover,.icon-white.icon-checkbox-unchecked:hover,.icon-white.icon-checkbox-partial:hover,.icon-white.icon-radio-checked:hover,.icon-white.icon-radio-unchecked:hover,.icon-white.icon-checkbox-checked:active,.icon-white.icon-checkbox-unchecked:active,.icon-white.icon-checkbox-partial:active,.icon-white.icon-radio-checked:active,.icon-white.icon-radio-unchecked:active{color:#fff}.icon-refresh.in-process{background-position:0 0;background-image:url(images/sync.gif)}.denied-by-browser{cursor:default}.denied-by-browser .icon-checkbox-checked,.denied-by-browser icon-checkbox-unchecked{cursor:default}.icon-arrow-right-3,.icon-arrow-down-3{width:16px;line-height:20px}.icon2-reload{background-image:url(images/sync.png);background-repeat:no-repeat}.icon2-aminate-reload{background-image:url(images/sync.gif);background-repeat:no-repeat}@-webkit-keyframes rotation{from{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(359deg)}}@-moz-keyframes rotation{from{-moz-transform:rotate(0deg)}to{-moz-transform:rotate(359deg)}}@keyframes rotation{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.icon-repeat,.icon-spinner,.icon-spinner-2{width:16px;height:16px}.icon-repeat:before,.icon-spinner:before,.icon-spinner-2:before{font-size:16px;line-height:100%}html.no-cssanimations .icon-repeat,html.no-cssanimations .icon-spinner,html.no-cssanimations .icon-spinner-2{background-image:url(images/sync.png);background-repeat:no-repeat;font-family:Arial}html.no-cssanimations .icon-repeat:before,html.no-cssanimations .icon-spinner:before,html.no-cssanimations .icon-spinner-2:before{content:""}html.no-cssanimations .icon-repeat.animated,html.no-cssanimations .icon-spinner.animated,html.no-cssanimations .icon-spinner-2.animated{background-image:url(images/sync.gif)}html.cssanimations .icon-repeat.animated,html.cssanimations .icon-spinner.animated,html.cssanimations .icon-spinner-2.animated{-webkit-animation:rotation 1s infinite linear;-moz-animation:rotation 1s infinite linear;animation:rotation 1s infinite linear}body{background-color:transparent}label{cursor:pointer}.legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}.legend small{font-size:15px;color:#999}.legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}select{width:223px}.btn-small.btn-small-small{padding:3px 9px;font-size:11px;line-height:11px}.btn.btn-ellipsis{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.btn.btn-narrow{padding-left:12px;padding-right:12px}.dropdown-menu{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.btn{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background-image:none;text-shadow:0 1px 0 #fff}.btn.disabled,.btn[disabled]{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}html.rgba.textshadow .btn.btn-danger,html.rgba.textshadow .btn.btn-success,html.rgba.textshadow .btn.btn-primary{text-shadow:0 1px 0 rgba(0,0,0,.3)}.btn-toolbar{margin-top:0;margin-bottom:0}.dropdown-menu{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);-moz-box-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 1px 2px rgba(0,0,0,.2)}.tooltip{font-size:14px}.tooltip.in{opacity:1;filter:alpha(opacity=100)}.tooltip .tooltip-big{font-size:18px;padding:0 10px}.tooltip-inner{padding:5px 10px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.btn-group>.btn:first-child{-webkit-border-top-left-radius:2px;-moz-border-radius-topleft:2px;border-top-left-radius:2px;-webkit-border-bottom-left-radius:2px;-moz-border-radius-bottomleft:2px;border-bottom-left-radius:2px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:2px;-moz-border-radius-topright:2px;border-top-right-radius:2px;-webkit-border-bottom-right-radius:2px;-moz-border-radius-bottomright:2px;border-bottom-right-radius:2px}.btn-group>.btn.large:first-child{-webkit-border-top-left-radius:2px;-moz-border-radius-topleft:2px;border-top-left-radius:2px;-webkit-border-bottom-left-radius:2px;-moz-border-radius-bottomleft:2px;border-bottom-left-radius:2px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:2px;-moz-border-radius-topright:2px;border-top-right-radius:2px;-webkit-border-bottom-right-radius:2px;-moz-border-radius-bottomright:2px;border-bottom-right-radius:2px}textarea,input[type=text],input[type=password],input[type=email],input[type=search]{border:1px solid #ccc}textarea:focus,input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=search]:focus{background-color:#fff;border:1px solid #999;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}input[type=text],input[type=password],input[type=email],input[type=search]{height:20px;line-height:20px}select{border:1px solid #ccc}.alert a{text-decoration:underline}.alert.alert-null-left-margin{margin-left:0}.alert.alert-error a{color:#b94a48}html.no-rgba .modal{border-width:0!important}.modal-backdrop,.modal-backdrop.fade.in{opacity:.1;filter:alpha(opacity=10)}.popups{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1100;overflow:auto}.popups .modal{position:static;z-index:1101;margin:5% auto;background-color:transparent;overflow:hidden;-webkit-box-shadow:0 5px 80px rgba(0,0,0,.3);-moz-box-shadow:0 5px 80px rgba(0,0,0,.3);box-shadow:0 5px 80px rgba(0,0,0,.3)}.popups .modal .modal-body{background-color:#fff;max-height:none}.modal.loginContent .modal-body,.modal.loginAdminContent .modal-body{background-color:transparent!important}.picker.modal-dialog-bg,.picker.picker-dialog-bg{z-index:2000!important}.picker.modal-dialog,.picker.picker-dialog{z-index:2001!important}.inputosaurus-container{width:99%;line-height:20px;padding:2px;border:1px solid #ccc;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}.inputosaurus-container li{max-width:500px;background-color:#eee;border:1px solid #aaa;line-height:18px;padding:2px 4px;margin:2px;color:#555}.inputosaurus-container li a{color:#999;float:right;font-size:14px}.inputosaurus-container li a:hover{color:#666}.inputosaurus-container li.inputosaurus-selected{background-color:#ddd}.inputosaurus-container .inputosaurus-fake-span{position:absolute;top:0;left:-5000px}.inputosaurus-container .inputosaurus-input{margin:2px 10px 2px 0;height:22px}.inputosaurus-container .inputosaurus-input input{border:0;height:21px;padding-left:0}.ui-autocomplete{z-index:2000}.g-ui-user-select-none{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none;-webkit-touch-callout:none}.g-ui-clearfix{*zoom:1}.g-ui-clearfix:before,.g-ui-clearfix:after{display:table;content:"";line-height:0}.g-ui-clearfix:after{clear:both}.g-ui-link{color:#369;text-decoration:underline;cursor:pointer}.g-ui-min-height-300{min-height:300px}.g-ui-absolute-reset{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0}.g-ui-menu{max-height:400px;max-width:300px;overflow-y:auto;overflow-x:hidden}.g-ui-menu .e-link{text-decoration:none;cursor:pointer}.g-ui-menu .e-item>.e-link:hover{background-color:#555;background-image:none;color:#fff}.g-ui-menu .e-item.disable>.e-link{cursor:not-allowed;background-color:#fff;background-image:none;color:grey}.g-ui-menu .e-item.disable [class^=icon-]{color:grey}.g-ui-table{display:table;width:100%}.g-ui-table .e-row{display:table-row}.g-ui-table .e-cell{display:table-cell;vertical-align:top;text-align:left}.g-ui-resizable-delimiter-highlight{border:0;border-right:6px solid #aaa}html.rgba .g-ui-resizable-delimiter-highlight{border-right-color:rgba(0,0,0,.2)}.settings-saved-trigger{display:inline-block;line-height:17px;font-size:16px}.settings-saved-trigger .animated{color:green}.settings-saved-trigger .success{color:green;-webkit-transition:opacity .5s linear;-moz-transition:opacity .5s linear;-o-transition:opacity .5s linear;transition:opacity .5s linear;opacity:0;filter:alpha(opacity=0)}.settings-saved-trigger .error{color:red;-webkit-transition:opacity .5s linear;-moz-transition:opacity .5s linear;-o-transition:opacity .5s linear;transition:opacity .5s linear;opacity:0;filter:alpha(opacity=0)}.settings-saved-trigger .visible{opacity:1;filter:alpha(opacity=100)}.settings-saved-trigger-input.success{border-color:green!important;-webkit-transition:border-color .5s linear;-moz-transition:border-color .5s linear;-o-transition:border-color .5s linear;transition:border-color .5s linear}.settings-saved-trigger-input.error{border-color:red!important;-webkit-transition:border-color .5s linear;-moz-transition:border-color .5s linear;-o-transition:border-color .5s linear;transition:border-color .5s linear}html{margin:0;padding:0;overflow:hidden;font-family:Arial,Verdana,Geneva,sans-serif}body{margin:0;padding:0;overflow:hidden;background-color:#e3e3e3;font-family:Arial,Verdana,Geneva,sans-serif;-webkit-touch-callout:none;position:absolute;top:0;left:0;bottom:0;right:0}textarea{resize:none}option:disabled{color:#aaa;cursor:not-allowed}body:before{content:"";position:fixed;top:-10px;left:0;width:100%;height:8px;z-index:100;-webkit-box-shadow:0 0 10px rgba(0,0,0,.6);-moz-box-shadow:0 0 10px rgba(0,0,0,.6);box-shadow:0 0 10px rgba(0,0,0,.6)}*{outline:0}select:focus{outline:0}html.mobile *{-webkit-tap-highlight-color:rgba(0,0,0,0)}#rl-content{height:100%;width:100%}#rl-center{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0;min-width:900px;min-height:400px}#rl-top{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0;bottom:auto;z-index:2}#rl-bottom{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0;top:auto;z-index:1}#rl-left{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0;right:auto;width:100%}#rl-right{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0;z-index:1}#rl-resizer-right{position:absolute;top:0;bottom:0;right:0;left:35%}#rl-resizer-left{position:absolute;top:0;bottom:0;left:0;right:65%;min-width:350px}#rl-top-resizer-right{position:absolute;top:0;bottom:0;right:0;left:230px}#rl-top-resizer-left{position:absolute;top:0;bottom:0;left:0;right:auto;min-width:120px}html.mobile #rl-top-resizer-left{width:170px}html.mobile #rl-top-resizer-right{left:170px}html.mobile #rl-resizer-left{width:350px}html.mobile #rl-resizer-right{left:350px}html.rl-no-preview-pane #rl-resizer-left{right:5px!important;width:inherit}html.rl-no-preview-pane #rl-resizer-right{left:0!important}html.rl-no-preview-pane #rl-right .ui-resizable-handle{display:none!important}#rl-loading,#rl-loading-error{position:absolute;font:30px Tahoma;top:50%;width:100%;height:65px;margin:0;margin-top:-60px;background-color:transparent;background-repeat:no-repeat;background-position:center 50px;background-image:url(images/loader-black.gif);text-align:center;color:#000}#rl-loading-error{background-image:none;display:none}.b-system-drop-down .b-toolbar{position:absolute;top:0;right:0;height:30px;padding:10px 8px;z-index:103}.b-system-drop-down .e-facebook-name{display:inline-block;padding-top:4px}.b-system-drop-down .btn.system-dropdown{padding-left:10px;padding-right:10px}.b-system-drop-down .button-fb-logout{margin:5px}.b-system-drop-down .email-title{display:inline-block;max-width:200px;text-align:left;text-overflow:ellipsis;overflow:hidden}.rl-view-model.RL-Login,.rl-view-model.RL-LoginNew,.rl-view-model.RL-AdminLogin{height:100%}.b-login-content{height:100%;text-align:center;margin-left:-230px}.b-login-content .loginFormWrapper{display:inline-block;vertical-align:middle;text-align:center;width:380px}.b-login-content .loginFormWrapper .loginForm{background-color:#efefef;text-align:left;color:#333;margin:0;float:none}.b-login-content .loginFormWrapper .control-label{font-size:16px;line-height:30px}.b-login-content .loginFormWrapper .control-group{margin-bottom:25px}.b-login-content .loginFormWrapper .wrapper{padding:40px 40px 10px}.b-login-content .loginFormWrapper #recaptcha_image img{border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.b-login-content .loginFormWrapper .inputLoginForm,.b-login-content .loginFormWrapper .inputEmail,.b-login-content .loginFormWrapper .inputLogin,.b-login-content .loginFormWrapper .inputPassword{font-size:18px;height:30px;line-height:29px}.b-login-content .loginFormWrapper .signMeLabel{margin-top:5px}.b-login-content .loginFormWrapper .input-append .add-on{position:relative;height:30px;background:0;margin-left:-35px;z-index:1000;border:0}.b-login-content .loginFormWrapper .input-append .add-on i{font-size:17px;line-height:29px;color:#999}.b-login-content .loginFormWrapper .control-group.error .add-on i{color:#b94a48}.b-login-content .buttonLogin{margin:0}.b-login-content .alert{margin:0 0 20px;text-align:left}.b-login-content .loginAfter{display:inline-block;height:90%;vertical-align:middle;width:0}.b-login-content .flag-selector{margin-bottom:0}.b-folders .b-toolbar{position:absolute;top:0;right:0;left:0;height:30px;padding:10px 10px 0 8px;color:#fff}.b-folders .b-content{position:absolute;top:58px;bottom:13px;left:0;right:0;overflow:hidden;overflow-y:auto}.b-folders .b-content .content{-webkit-overflow-scrolling:touch}.b-folders .b-list-delimiter{margin:10px;border-top:0 solid #000;border-bottom:1px solid #999}.b-folders .e-item{overflow:hidden;white-space:nowrap}.b-folders .e-item .e-link{display:block;position:relative;z-index:1;height:34px;line-height:34px;background-color:transparent;vertical-align:middle;color:grey;cursor:not-allowed;font-size:14px;padding:0;padding-left:10px;padding-right:10px;outline:0;text-decoration:none}.b-folders .e-item .e-link.selectable{color:#000;cursor:pointer}.b-folders .e-item .e-link.selectable:hover,.b-folders .e-item .e-link.selectable.selected,.b-folders .e-item .e-link.selectable.droppableHover{background-color:#555;color:#fff}.b-folders .e-item .e-link.system{cursor:default;color:grey}.b-folders .e-item .e-link .count{display:none;margin-top:5px;line-height:19px}.b-folders .e-item .e-link.print-count{font-weight:700}.b-folders .e-item .e-link.print-count .count{display:inline}.b-folders .e-item .e-link .e-collapsed-sign{cursor:pointer;width:22px;height:30px;line-height:30px;text-align:center;vertical-align:inherit}.b-folders .e-item .hidden.e-link{display:none}.b-folders .e-item .b-sub-folders.collapsed{max-height:0;height:0;display:none}.b-folders .b-folder-system-item{font-weight:700}.b-folders .b-sub-folders .e-item .e-link{padding-left:25px}.b-folders .b-sub-folders.unpaddig-folder .e-item .e-link{padding-left:10px}.b-folders .b-sub-folders .b-sub-folders .e-item .e-link{padding-left:40px}.b-folders .b-sub-folders.unpaddig-folder .b-sub-folders .e-item .e-link{padding-left:25px}.b-folders .b-sub-folders .b-sub-folders .b-sub-folders .e-item .e-link{padding-left:55px}.b-folders .b-sub-folders.unpaddig-folder .b-sub-folders .b-sub-folders .e-item .e-link{padding-left:40px}.b-folders .b-sub-folders .b-sub-folders .b-sub-folders .b-sub-folders .e-item .e-link{padding-left:70px}.b-folders .b-sub-folders.unpaddig-folder .b-sub-folders .b-sub-folders .b-sub-folders .e-item .e-link{padding-left:55px}.popups .b-folder-clear-content .modal-header{background-color:#fff}.popups .b-folder-create-content .modal-header{background-color:#fff}.popups .b-folder-system-content.modal{z-index:1102}.popups .b-folder-system-content .modal-header{background-color:#fff}.popups .b-languages-content.modal{z-index:1103;width:500px}.popups .b-languages-content.exp{width:501px}.popups .b-languages-content .modal-header{background-color:#fff}.popups .b-languages-content .lang-item{display:inline-block;padding:5px 15px;margin:2px 5px;width:180px;background-color:#fff;text-align:left}.popups .b-languages-content .lang-item.selected{background-color:#f5f5f5}.popups .b-languages-content .lang-item:hover{background-color:#eee}.popups .b-account-add-content .modal-header{background-color:#fff}.popups .b-identity-content .modal-header{background-color:#fff}.popups .b-identity-content .textEmail{margin-top:5px;font-weight:700}.popups .b-advanced-search-content.modal{width:750px}.popups .b-advanced-search-content.modal .control-label{width:100px}.popups .b-advanced-search-content.modal .controls{margin-left:110px}.popups .b-advanced-search-content .modal-header{background-color:#fff}html.rl-no-preview-pane .messageList.message-selected{display:none}.messageList .toolbar{position:absolute;top:0;right:0;left:0;height:30px;padding:10px 1px;min-width:280px;z-index:102}.messageList .b-footer{position:absolute;bottom:0;right:0;left:0;height:29px;padding:10px;min-width:300px;z-index:101;background-color:#eee;-webkit-border-bottom-right-radius:5px;-moz-border-radius-bottomright:5px;border-bottom-right-radius:5px;-webkit-border-bottom-left-radius:5px;-moz-border-radius-bottomleft:5px;border-bottom-left-radius:5px}.messageList .b-footer .e-quota{display:inline-block;margin-left:10px;font-size:18px;cursor:help}.messageList .b-footer .e-quota:hover{border-bottom:1px dashed #333}.messageList .inputSearch{width:258px}.messageList .btn.buttonMoreSearch{padding-left:8px;padding-right:8px}.messageList .b-message-list-wrapper{position:absolute;top:50px;right:0;left:0;bottom:5px;border:1px solid #aaa;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.3);-moz-box-shadow:0 2px 8px rgba(0,0,0,.3);box-shadow:0 2px 8px rgba(0,0,0,.3);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;z-index:101}.messageList .second-toolbar{position:absolute;top:0;right:0;left:0;height:29px;padding:10px 8px 10px 11px;min-width:280px;z-index:101;background-color:#eee;-webkit-border-top-right-radius:5px;-moz-border-radius-topright:5px;border-top-right-radius:5px;-webkit-border-top-left-radius:5px;-moz-border-radius-topleft:5px;border-top-left-radius:5px}.messageList .second-toolbar .checkboxCkeckAll{margin:5px 0}.messageList .mainDelimiter{position:absolute;left:0;right:0;height:1px;z-index:101;background-color:#bbb}.messageList .toolbarDelimiter{top:49px}.messageList .footerDelimiter{bottom:49px}.messageList .b-content{position:absolute;top:50px;bottom:50px;left:0;right:0;padding:0;overflow-x:hidden;overflow-y:auto;z-index:101;min-width:300px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#fff}.messageList .b-content .content{-webkit-overflow-scrolling:touch}.messageList .b-content .listClear{color:#333;text-align:center;padding:10px;font-size:14px;line-height:13px}.messageList .b-content .listEmptyList,.messageList .b-content .listEmptyListLoading,.messageList .b-content .listDragOver,.messageList .b-content .listError,.messageList .b-content .listEmptySearchList{color:#999;text-align:center;padding:60px 10px;font-size:24px;line-height:30px}.messageList .b-content .listEmptyList .e-icon,.messageList .b-content .listEmptyListLoading .e-icon,.messageList .b-content .listDragOver .e-icon,.messageList .b-content .listError .e-icon,.messageList .b-content .listEmptySearchList .e-icon{font-size:24px;line-height:30px}.messageList .b-content .listDragOver{max-height:0;overflow:hidden;padding:0 10px}.messageList .b-content .listDragOver.viewAppendArea{max-height:120px;padding:30px 10px}.messageList .b-content .listDragOver.dragOverEnter{background-color:#e0fdda;color:#333}.messageList .b-content .listError{color:#DA4F49}.messageList .b-content .listSearchDesc{font-size:20px;padding:20px;border-bottom:1px solid #eee}.messageList .b-content .delimiter{display:block;height:1px;background-color:#e5e5e5}.messageList .b-content .messageListItem:last-child{border-bottom:1px solid #e5e5e5}.messageList .b-content .messageListItem:last-child.selected{border-bottom:1px solid #bfd5ef}.messageList .b-content .fullThreadsParent{height:25px;padding:3px 5px;background-color:#f4f4f4;text-align:center}.messageList .b-content .messageListItem{position:relative;height:52px;max-height:60px;font-size:12px;line-height:21px;overflow:hidden;cursor:pointer;margin:0;border:0 solid transparent;z-index:100;background-color:#f9f9f9}.messageList .b-content .messageListItem .delimiter{position:relative;display:block;height:1px;background-color:#999;opacity:.2;filter:alpha(opacity=20)}.messageList .b-content .messageListItem .wrapper{padding:5px 0}.messageList .b-content .messageListItem .sidebarParent{display:inline-block;width:6px;background-color:#eee;float:left;height:100%}.messageList .b-content .messageListItem.e-single-line{height:35px}.messageList .b-content .messageListItem.e-single-line .wrapper{line-height:25px;padding:5px}.messageList .b-content .messageListItem.new{max-height:0}.messageList .b-content .messageListItem.deleted{max-height:0;border-color:transparent!important}.messageList .b-content .messageListItem .checkedParent{display:inline-block;float:left;margin-top:11px;padding:0 8px 0 6px;font-size:14px}.messageList .b-content .messageListItem.e-single-line .checkedParent{margin-top:1px}.messageList .b-content .messageListItem .flagParent{display:inline-block;float:right;padding:0 8px 0 5px}.messageList .b-content .messageListItem.e-single-line .flagParent{float:left;padding:0 8px 0 2px}.messageList .b-content .messageListItem .dateParent{display:inline-block;float:right;position:relative;margin:0 5px;color:#999;font-size:11px}.messageList .b-content .messageListItem .attachmentParent{display:inline-block;float:right;position:relative;margin:2px 8px 0 5px}.messageList .b-content .messageListItem.e-single-line .attachmentParent{float:left;margin:0 5px 0 0}.messageList .b-content .messageListItem .senderParent{display:block;overflow:hidden;text-overflow:ellipsis}.messageList .b-content .messageListItem .threadsCountParent{display:inline;overflow:hidden;background-color:#eee;padding:1px 5px;margin-right:5px;border:1px solid #ccc;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.messageList .b-content .messageListItem .threadsCountParent.lastSelected{background-color:#999;border-color:#999;color:#fff}.messageList .b-content .messageListItem .threadsCountParent:hover{border-color:#666}.messageList .b-content .messageListItem.e-single-line .senderParent{display:inline-block;text-overflow:none;width:200px;float:left;font-weight:400}.messageList .b-content .messageListItem .subjectParent{display:block;overflow:hidden;text-overflow:ellipsis;color:#000}.messageList .b-content .messageListItem .senderParent,.messageList .b-content .messageListItem .subjectParent,.messageList .b-content .messageListItem .dateParent{white-space:nowrap}.messageList .b-content .messageListItem .subjectParent .emptySubjectText{display:none;font-style:italic;color:#999}.messageList .b-content .messageListItem.emptySubject .subjectParent .subject{display:none}.messageList .b-content .messageListItem.emptySubject .subjectParent .emptySubjectText{display:inline}.messageList .b-content .messageListItem .sender,.messageList .b-content .messageListItem .subject{overflow:hidden;text-overflow:ellipsis}.messageList .b-content .messageListItem .attachment{display:none}.messageList .b-content .messageListItem .flagOff,.messageList .b-content .messageListItem .flagOn,.messageList .b-content .messageListItem .flagOnHalf{cursor:pointer;display:inline-block}.messageList .b-content .messageListItem .flagOff{opacity:.5;filter:alpha(opacity=50)}.messageList .b-content .messageListItem .flagOff:hover{opacity:1;filter:alpha(opacity=100)}.messageList .b-content .messageListItem .flagOn,.messageList .b-content .messageListItem .flagOnHalf{display:none;color:orange}.messageList .b-content .messageListItem .replyFlag,.messageList .b-content .messageListItem .forwardFlag{display:none}.messageList .b-content .messageListItem.answered .replyFlag{display:inline-block}.messageList .b-content .messageListItem.forwarded .forwardFlag{display:inline-block}.messageList .b-content .messageListItem.withAttachments .attachment{display:inline-block;color:#666;text-shadow:0 1px 0 #eee}.messageList .b-content .messageListItem.unseen{background-color:#FFFFD9}.messageList .b-content .messageListItem.unseen .sender,.messageList .b-content .messageListItem.unseen .subject{font-weight:700}.messageList .b-content .messageListItem.unseen .sidebarParent{background-color:orange}.messageList .b-content .messageListItem.hasUnseenSubMessage{background-color:#FFFFD9}.messageList .b-content .messageListItem.hasUnseenSubMessage .sidebarParent{background-color:#ffdb99}.messageList .b-content .messageListItem.hasParentMessage{background-color:#ecf0f1}.messageList .b-content .messageListItem.hasParentMessage .sidebarParent{background-color:#bdc3c7}.messageList .b-content .messageListItem.hasParentMessage.unseen{background-color:#dde4e6}.messageList .b-content .messageListItem.hasParentMessage.unseen .sidebarParent{background-color:#6c777f}.messageList .b-content .messageListItem.checked .sidebarParent{background-color:#69a8f5!important}.messageList .b-content .messageListItem.selected{background-color:#DFEFFF;z-index:102}.messageList .b-content .messageListItem.selected .sidebarParent{background-color:#398CF2!important}.messageList .b-content .messageListItem.selected .delimiter{background-color:#398CF2;opacity:.2;filter:alpha(opacity=20)}.messageList .b-content .messageListItem.selected+.messageListItem .delimiter{background-color:#398CF2;opacity:.3;filter:alpha(opacity=30)}.messageList .b-content .messageListItem.hasFlaggedSubMessage .flagOff,.messageList .b-content .messageListItem.hasFlaggedSubMessage .flagOn{display:none}.messageList .b-content .messageListItem.hasFlaggedSubMessage .flagOnHalf{display:inline-block}.messageList .b-content .messageListItem.flagged .flagOff,.messageList .b-content .messageListItem.flagged .flagOnHalf{display:none}.messageList .b-content .messageListItem.flagged .flagOn{display:inline-block}.messageList.hideMessageListCheckbox .checkedParent,.messageList.hideMessageListCheckbox .checkboxCkeckAll{display:none!important}.messageList.hideMessageListCheckbox .sidebarParent{margin-right:10px!important}.messageList .pagenator .page{display:inline-block;color:#999;text-decoration:none;font-size:24px;padding:3px;cursor:pointer}.messageList .pagenator .page:hover .pageNumber{color:#555}.messageList .pagenator .page.current .pageNumber{font-size:28px;color:#333;border-bottom:2px solid #000}.draggablePlace{z-index:10002;color:#fff;background-color:#333;background-color:rgba(0,0,0,.5);padding:4px 10px;min-width:30px;height:20px;cursor:pointer;cursor:move}html.rl-no-preview-pane .messageView{display:none}html.rl-no-preview-pane .messageView.message-selected{display:block}.messageView{z-index:100}.messageView .toolbar{position:absolute;top:0;right:0;left:0;height:30px;padding:10px 0;color:#fff}.messageView .b-content{position:absolute;margin:0;top:58px;bottom:13px;right:8px;left:0;overflow:hidden;border:1px solid #aaa;border-left:0;-webkit-border-top-right-radius:3px;-moz-border-radius-topright:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-moz-border-radius-bottomright:3px;border-bottom-right-radius:3px;background-color:#fff}.messageView .b-content .b-message-view-desc{text-align:center;font-size:24px;line-height:30px;padding-top:120px;color:#999}.messageView .b-content .b-message-view-desc.error{color:#DA4F49}.messageView .b-content .content{-webkit-overflow-scrolling:touch}.messageView .b-content .messageItem{position:absolute;top:0;bottom:0;left:0;right:0;overflow:auto;-webkit-overflow-scrolling:touch;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.messageView .b-content .messageItem .emptySubjectText{display:none;font-style:italic;color:#999}.messageView .b-content .messageItem.emptySubject .emptySubjectText{display:inline}.messageView .b-content .messageItem .buttonUp,.messageView .b-content .messageItem .buttonUnFull,.messageView .b-content .messageItem .buttonFull{display:inline-block;position:fixed;right:30px;top:90px;height:30px;width:30px;text-align:center;vertical-align:middle;line-height:30px;background-color:transparent;background-color:#fff;border:1px solid #333;color:#333;z-index:2;cursor:pointer;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;opacity:.3;filter:alpha(opacity=30)}.messageView .b-content .messageItem .buttonUp:hover,.messageView .b-content .messageItem .buttonUnFull:hover,.messageView .b-content .messageItem .buttonFull:hover{opacity:.8;filter:alpha(opacity=80);border-color:#000;background-color:#888;color:#fff}.messageView .b-content .messageItem .buttonUp{right:70px;z-index:0}.messageView .b-content .messageItem .buttonUnFull{display:none}.messageView .b-content .messageItem .messageItemHeader{position:relative;padding:10px;background-color:#f8f8f8;border-top:0;border-bottom:1px solid #ddd;z-index:1}.messageView .b-content .messageItem .messageItemHeader .fromPic{display:inline-block;width:50px;height:50px;float:left;padding:2px;margin:0 5px 0 0;background:#fff;border:1px solid #ccc;border-radius:10px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.messageView .b-content .messageItem .messageItemHeader .subjectParent{font-size:16px;font-weight:700;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;margin-left:3px}.messageView .b-content .messageItem .messageItemHeader .senderParent{margin-top:10px}.messageView .b-content .messageItem .messageItemHeader .messageButtons{margin-top:5px}.messageView .b-content .messageItem .messageItemHeader .informationShort{margin-left:15px}.messageView .b-content .messageItem .messageItemHeader .informationShort a{color:#369;text-decoration:underline;cursor:pointer}.messageView .b-content .messageItem .messageItemHeader .informationFull{margin-top:10px;border:1px solid #ddd;background-color:#fff;border-radius:5px;padding:10px 15px}.messageView .b-content .messageItem .loading{text-align:center;font-size:24px;color:grey;padding-top:50px}.messageView .b-content .messageItem .line-loading{height:0}.messageView .b-content .messageItem .showImages{cursor:pointer;background-color:#eee;padding:10px 15px;border-bottom:1px solid #ccc}.messageView .b-content .messageItem .attachmentsPlace{padding:10px}.messageView .b-content .messageItem .attachmentsPlace .attachmentList{margin:0}.messageView .b-content .messageItem .attachmentsPlace .attachmentList .attachmentItem{display:inline-block;margin:5px;padding:5px;max-width:170px;min-width:60px;overflow:hidden;cursor:pointer;list-style:none;line-height:24px;border:2px solid grey;background-color:#fff;box-shadow:1px 1px 5px #ccc;box-shadow:1px 1px 5px rgba(0,0,0,.1);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.messageView .b-content .messageItem .attachmentsPlace .attachmentList .attachmentItem .attachmentIcon{font-size:23px;width:23px;height:23px}.messageView .b-content .messageItem .attachmentsPlace .attachmentList .attachmentItem .attachmentPreview{color:#999;margin:0 5px}.messageView .b-content .messageItem .attachmentsPlace .attachmentList .attachmentItem .attachmentPreview:hover{color:#333}.messageView .b-content .messageItem .rlBlockquoteSwitcher{background-color:#eee;border:1px solid #999;display:inline-block;width:30px;height:14px;line-height:14px;text-align:center;cursor:pointer;margin:10px 0;opacity:.5;filter:alpha(opacity=50)}.messageView .b-content .messageItem .rlBlockquoteSwitcher:hover{opacity:1;filter:alpha(opacity=100)}.messageView .b-content .messageItem .bodyText{color:#000;font-family:arial,sans-serif}.messageView .b-content .messageItem .bodyText .b-text-part a{color:#00f;text-decoration:underline}.messageView .b-content .messageItem .bodyText .b-text-part a:visited{color:#609}.messageView .b-content .messageItem .bodyText .b-text-part a:active{color:red}.messageView .b-content .messageItem .bodyText .b-text-part table{border-collapse:separate}.messageView .b-content .messageItem .bodyText .b-text-part blockquote{border-left:2px solid #000;margin:0;padding:0 10px}.messageView .b-content .messageItem .bodyText .b-text-part .rl-bq-switcher.hidden-bq{display:none}.messageView .b-content .messageItem .bodyText .b-text-part.rtl-text-part{direction:rtl}.messageView .b-content .messageItem .bodyText .b-text-part.html div[data-x-div-type=body]{margin:15px}.messageView .b-content .messageItem .bodyText .b-text-part.plain{padding:15px}.messageView .b-content .messageItem .bodyText .b-text-part.plain pre{margin:0;padding:0;font-family:arial,sans-serif;background:#fff;border:0;white-space:normal}.messageView .b-content .messageItem .bodyText .b-text-part.plain blockquote{border-left:2px solid #00f;color:#00f}.messageView .b-content .messageItem .bodyText .b-text-part.plain blockquote blockquote{border-left:2px solid green;color:green}.messageView .b-content .messageItem .bodyText .b-text-part.plain blockquote blockquote blockquote{border-left:2px solid red;color:red}html.rl-no-preview-pane .messageView .toolbar{padding-left:1px}html.rl-no-preview-pane .messageView .b-content{top:50px;bottom:5px;right:5px;border:1px solid #aaa;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.3);-moz-box-shadow:0 2px 8px rgba(0,0,0,.3);box-shadow:0 2px 8px rgba(0,0,0,.3);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}html.rl-no-preview-pane .messageView .b-content .buttonUp,html.rl-no-preview-pane .messageView .b-content .buttonUnFull,html.rl-no-preview-pane .messageView .b-content .buttonFull{top:70px}html.cssanimations.rl-anim .line-loading{height:5px!important}html.rl-message-fullscreen #rl-left,html.rl-message-fullscreen #rl-bottom{display:none!important}html.rl-message-fullscreen #rl-right .RL-MailMessageList,html.rl-message-fullscreen #rl-right .RL-SettingsPane,html.rl-message-fullscreen #rl-right .RL-SystemDropDown,html.rl-message-fullscreen #rl-right .RL-MailMessageView .messageView .toolbar{display:none!important}html.rl-message-fullscreen .messageView .b-content{position:fixed;margin:5px;top:0;left:0;right:0;bottom:0;z-index:10000}html.rl-message-fullscreen .messageView .b-content .buttonUp,html.rl-message-fullscreen .messageView .b-content .buttonUnFull{display:inline-block;top:36px}html.rl-message-fullscreen .messageView .b-content .buttonFull{display:none}.b-contacts-content.modal{position:absolute;right:0;top:0;bottom:0;left:0;width:900px;min-height:300px;max-height:700px;margin:auto}.b-contacts-content.modal .modal-body{overflow:auto;height:100%;background-color:#f5f5f5;padding:0}.b-contacts-content.modal .b-header-toolbar{height:40px;background-color:#aaa;color:#fff;background-color:#333;background-color:rgba(0,0,0,.8)!important}.b-contacts-content.modal .b-header-toolbar .close{color:#fff;opacity:1;filter:alpha(opacity=100)}.b-contacts-content.modal .b-header-toolbar .btn{margin-top:4px}.b-contacts-content.modal .b-header-toolbar .button-new-message{margin-left:8px}.b-contacts-content.modal .b-header-toolbar .button-delete{margin-left:8px}.b-contacts-content.modal .b-list-toopbar{padding:0;height:45px;text-align:center;width:250px;-webkit-box-shadow:inset 0 -1px 0 #ccc;-moz-box-shadow:inset 0 -1px 0 #ccc;box-shadow:inset 0 -1px 0 #ccc}.b-contacts-content.modal .b-list-toopbar .e-search{margin-top:7px}.b-contacts-content.modal .b-list-content{position:absolute;top:45px;bottom:60px;left:0;width:250px;overflow:hidden;overflow-y:auto}.b-contacts-content.modal .b-list-content .content{-webkit-overflow-scrolling:touch}.b-contacts-content.modal .b-list-content .listClear{color:#333;text-align:center;padding:10px;font-size:14px;line-height:13px;background-color:#fff}.b-contacts-content.modal .b-list-content .listEmptyList,.b-contacts-content.modal .b-list-content .listEmptyListLoading,.b-contacts-content.modal .b-list-content .listEmptySearchList{color:#999;text-align:center;padding:60px 10px;font-size:24px;line-height:30px}.b-contacts-content.modal .b-list-content.hideContactListCheckbox .checkedParent,.b-contacts-content.modal .b-list-content.hideContactListCheckbox .checkboxCkeckAll{display:none!important}.b-contacts-content.modal .b-list-content.hideContactListCheckbox .sidebarParent{margin-right:10px!important}.b-contacts-content.modal .b-list-content .e-contact-foreach{border-bottom:1px solid #ddd}.b-contacts-content.modal .b-list-content .e-contact-item{position:relative;height:45px;max-height:45px;line-height:45px;overflow:hidden;cursor:pointer;margin:0;border:0 solid transparent;z-index:100}.b-contacts-content.modal .b-list-content .e-contact-item .delimiter{position:relative;display:block;height:1px;background-color:#999;opacity:.2;filter:alpha(opacity=20)}.b-contacts-content.modal .b-list-content .e-contact-item .wrapper{padding:0}.b-contacts-content.modal .b-list-content .e-contact-item .sidebarParent{display:inline-block;width:6px;background-color:#eee;float:left;height:100%}.b-contacts-content.modal .b-list-content .e-contact-item.deleted{max-height:0;border-color:transparent!important}.b-contacts-content.modal .b-list-content .e-contact-item .checkedParent{display:inline-block;float:left;padding:0 8px 0 6px}.b-contacts-content.modal .b-list-content .e-contact-item .nameParent{display:block;overflow:hidden;text-overflow:ellipsis;color:#333;font-size:16px}.b-contacts-content.modal .b-list-content .e-contact-item .nameParent,.b-contacts-content.modal .b-list-content .e-contact-item .emailParent{white-space:nowrap}.b-contacts-content.modal .b-list-content .e-contact-item .displayName,.b-contacts-content.modal .b-list-content .e-contact-item .displayEmail{overflow:hidden;text-overflow:ellipsis}.b-contacts-content.modal .b-list-content .e-contact-item .displayImg{display:inline-block;float:right;position:relative;margin:0 5px}.b-contacts-content.modal .b-list-content .e-contact-item.checked{z-index:101}.b-contacts-content.modal .b-list-content .e-contact-item.checked .sidebarParent{background-color:#69A8F5}.b-contacts-content.modal .b-list-content .e-contact-item.selected{background-color:#fff;z-index:102}.b-contacts-content.modal .b-list-content .e-contact-item.selected .sidebarParent{background-color:#398CF2}.b-contacts-content.modal .b-view-content{position:absolute;top:0;bottom:60px;left:250px;right:0;overflow:hidden;overflow-y:auto;background-color:#fff;border-left:1px solid #ddd}.b-contacts-content.modal .b-view-content .content{-webkit-overflow-scrolling:touch}.b-contacts-content.modal .b-view-content .b-contact-view-desc{text-align:center;font-size:24px;line-height:30px;padding-top:120px;color:#999}.b-contacts-content.modal .b-view-content .top-part{padding-top:20px}.b-contacts-content.modal .b-view-content .property-line{margin-bottom:5px}.b-contacts-content.modal .b-view-content .top-row{padding:10px 0;height:30px}.b-contacts-content.modal .b-view-content .add-link{padding-top:5px;font-size:12px;color:#aaa}.b-contacts-content.modal .b-view-content .hasError .contactValueInput{color:#ee5f5b;border:1px solid #ee5f5b}.b-contacts-content.modal .b-view-content .button-save-contact{position:absolute;top:20px;right:20px}.b-contacts-content .e-contact-item{position:relative;height:55px;max-height:60px;line-height:22px;overflow:hidden;cursor:pointer;margin:0;border:0 solid transparent;z-index:100}.b-compose.modal{width:850px;margin:10px auto}.b-compose.modal .modal-body{overflow:auto;padding:0}.b-compose .b-header-toolbar{height:40px;background-color:#aaa;color:#fff;background-color:#333;background-color:rgba(0,0,0,.8)!important}.b-compose .b-header-toolbar .close{color:#fff;opacity:1;filter:alpha(opacity=100)}.b-compose .b-header-toolbar .btn.disable.button-delete{visibility:hidden}.b-compose .b-header-toolbar .button-save,.b-compose .b-header-toolbar .button-delete,.b-compose .b-header-toolbar .saved-text{margin-left:8px}.b-compose .b-header-toolbar .disable.button-delete{margin-left:0}.b-compose .b-header{padding:10px;border-bottom:1px solid #333;background-color:#eee;color:#333}.b-compose .b-header .e-identity{font-weight:700}.b-compose .b-header .e-identity.multiply{cursor:pointer;border-bottom:1px dashed #555}.b-compose .b-header .e-row{line-height:30px}.b-compose .b-header .e-label{text-align:right;width:1%;min-width:70px;padding:6px 10px}.b-compose .b-header .e-value{padding:2px 0}.b-compose .b-header .e-value textarea,.b-compose .b-header .e-value input[type=text]{width:98%}.b-compose .b-header .e-value textarea{height:40px}.b-compose .b-header .error-desc{color:red}.b-compose .b-header .b-appachments .b-attacment{display:inline-block;line-height:20px}.b-compose .b-header .b-appachments .b-attacment-in-process{display:inline-block;line-height:20px}.b-compose .b-header .b-appachments .b-attacment-in-process .uploading{display:none;padding-right:5px}.b-compose .b-header .b-appachments .b-attacment-in-process.uploading .uploading{display:inline}.b-compose .b-header .b-appachments .b-attacment-in-process .upload-progress{font-weight:700}.b-compose .b-header .b-appachments .b-attacment-in-process.error .namedStr{color:#888}.b-compose .b-header .b-appachments .b-attacment-in-process .error{color:red}.b-compose .b-header .b-appachments .b-attacment-in-process .close{float:left;padding-right:13px}.b-compose .b-attachment-button{display:inline-block}.b-compose .b-attachment-place{position:absolute;height:120px;border:2px #777 dashed;line-height:119px;text-align:center;background-color:#fff;z-index:300;left:20px;right:20px;font-size:24px}.b-compose .b-attachment-place.drag-and-drop-over{background:#777;color:#fff}.b-compose .editorTextArea,.b-compose .editorHtmlArea{background:#fff;color:#000;font-family:Arial,Verdana,Geneva,sans-serif;font-size:14px}.b-compose .editorTextArea table,.b-compose .editorHtmlArea table{border-collapse:separate}.b-compose .editorTextArea blockquote,.b-compose .editorHtmlArea blockquote{border:0;border-left:solid 2px #444;margin-left:5px;margin:5px 0;padding-left:5px}.b-admin-left .b-toolbar{position:absolute;top:0;right:0;left:0;height:34px;padding:8px 0 0 8px}.b-admin-left .b-content{position:absolute;top:68px;bottom:8px;left:0;right:0;overflow:hidden}.b-admin-left .b-content .content{-webkit-overflow-scrolling:touch}.b-admin-menu .e-item{overflow:hidden;text-decoration:none;outline:0}.b-admin-menu .e-link{position:relative;display:block;height:30px;line-height:29px;cursor:pointer;font-size:18px;z-index:1;cursor:default;background-color:transparent;color:#888;padding:4px 10px;outline:0;text-decoration:none}.b-admin-menu .e-item.selectable .e-link{cursor:pointer}.b-admin-menu .e-item.selectable:hover .e-link,.b-admin-menu .e-item.selectable.selected .e-link{background-color:#555;color:#fff}.b-admin-right .b-toolbar{position:absolute;top:0;right:0;left:0;height:34px;padding:8px;color:#fff}.b-admin-right .b-content{position:absolute;top:58px;bottom:8px;left:0;right:8px;overflow-y:auto;z-index:2;background-color:#fff;border:1px solid #aaa;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.3);-moz-box-shadow:0 2px 8px rgba(0,0,0,.3);box-shadow:0 2px 8px rgba(0,0,0,.3);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.b-admin-right .b-content .content{-webkit-overflow-scrolling:touch}.b-admin-right .b-settings-content{padding:20px}.b-admin-general .flag-selector{padding-top:5px}.b-admin-general .flag-name{border-bottom:1px dashed #555}.b-admin-domains .process-place{width:600px;padding:14px 0;text-align:center;visibility:hidden}.b-admin-domains-list-table{width:600px}.b-admin-domains-list-table .e-item .e-action{cursor:pointer}.b-admin-domains-list-table .e-item .domain-name{display:inline-block;word-break:break-all;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.b-admin-domains-list-table .e-item.disabled .domain-name{color:#bbb}.b-admin-domains-list-table .e-item .button-delete{margin-right:15px;visibility:hidden;opacity:0;filter:alpha(opacity=0)}.b-admin-domains-list-table .e-item .delete-access.button-delete{visibility:visible;margin-right:0;opacity:1;filter:alpha(opacity=100)}.b-admin-domains-list-table .e-item .delete-domain,.b-admin-domains-list-table .e-item .disable-domain{cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.b-admin-domains-list-table .e-item.disabled .disable-domain{opacity:.5;filter:alpha(opacity=50)}.b-admin-domains-list-table .e-item .delete-domain:hover,.b-admin-domains-list-table .e-item .disable-domain:hover{opacity:1;filter:alpha(opacity=100)}.b-domain-content.modal{width:645px}.b-domain-content .modal-header{background-color:#fff}.b-domain-content .modal-body{position:relative;overflow:hidden;width:1300px;height:390px}.b-domain-content.domain-edit .modal-body{height:350px}.b-domain-content.domain-white-list-page .modal-body{left:-640px}.b-domain-content .error-desc{color:red;margin-left:10px}.b-domain-content .testing-done .imap-header,.b-domain-content .testing-done .smtp-header{color:green;font-weight:700}.b-domain-content .testing-error .imap-header,.b-domain-content .testing-error .smtp-header{color:red}.b-admin-packages .alert{width:650px}.b-admin-packages .process-place{visibility:hidden}.b-admin-packages-list-table{width:700px}.b-admin-packages-list-table .e-item .package-img{font-size:12px;margin-right:2px}.b-admin-packages-list-table .e-item .package-name.core{font-weight:700}.b-admin-packages-list-table .e-item .package-desc{color:#999;font-size:12px}.b-admin-packages-list-table .e-item .e-action{cursor:pointer}.b-admin-packages-list-table .e-item .package-release-parent,.b-admin-packages-list-table .e-item .package-actions-parent{text-align:center}.b-admin-packages-list-table .e-item .package-actions-parent{vertical-align:middle}.b-admin-plugins .process-place{visibility:hidden}.b-admin-plugins-list-table.disabled{opacity:.5;filter:alpha(opacity=50);background-color:#eee}.b-admin-plugins-list-table .e-item .e-action{cursor:pointer}.b-admin-plugins-list-table .e-item .plugin-img{font-size:12px;margin-right:2px}.b-admin-plugins-list-table .e-item.disabled .plugin-img,.b-admin-plugins-list-table .e-item.disabled .plugin-name{color:#bbb}.b-admin-plugins-list-table .e-item.disabled .disable-plugin{opacity:.5;filter:alpha(opacity=50)}.b-admin-plugin-property .help-block{margin-bottom:5px}.b-plugin-content.modal{width:660px}.b-plugin-content.modal .modal-body{overflow:auto}.b-plugin-content .modal-header{background-color:#fff}.b-plugin-content .information{display:inline-block;background-color:#ddd;border-radius:10px;cursor:pointer;height:25px;width:30px;text-align:center;padding-top:5px}.b-plugin-content textarea{width:400px;height:50px}.popups .b-activate-content{width:700px}.popups .b-activate-content .modal-header{background-color:#fff}.popups .b-activate-content .help-inline{padding-left:0}.b-settins-left .b-toolbar{position:absolute;top:0;right:0;left:0;height:34px;padding:8px 0 0 8px}.b-settins-left .b-content{position:absolute;top:68px;bottom:8px;left:0;right:0;overflow:hidden}.b-settins-left .b-content .content{-webkit-overflow-scrolling:touch}.b-settings-menu .e-item{overflow:hidden;text-decoration:none;outline:0}.b-settings-menu .e-link{position:relative;display:block;height:30px;line-height:29px;font-size:18px;z-index:1;cursor:default;background-color:transparent;color:#888;padding:4px 10px;outline:0;text-decoration:none}.b-settings-menu .e-item.selectable .e-link{cursor:pointer}.b-settings-menu .e-item.selectable:hover .e-link,.b-settings-menu .e-item.selectable.selected .e-link{background-color:#555;color:#fff}.b-settins-right .b-toolbar{position:absolute;top:0;right:0;left:0;height:34px;padding:8px 5px;color:#fff}.b-settins-right .b-content{position:absolute;top:58px;bottom:8px;left:0;right:8px;overflow-y:auto;z-index:2;background-color:#fff;border:1px solid #aaa;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.3);-moz-box-shadow:0 2px 8px rgba(0,0,0,.3);box-shadow:0 2px 8px rgba(0,0,0,.3);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.b-settins-right .b-content .content{-webkit-overflow-scrolling:touch}.b-settins-right .b-settings-content{padding:20px}.b-settings-general .notification-desc-denied{color:#999;display:none}.b-settings-general .denied-by-browser .notification-desc-denied{display:inline}.b-settings-general .denied-by-browser .notification-desc{color:#999}.b-settings-general .flag-selector{padding-top:5px}.b-settings-general .flag-name{border-bottom:1px dashed #555}.b-settings-accounts .process-place{text-align:center;width:600px;padding:14px 0}.b-settings-accounts .list-table{width:600px}.b-settings-accounts .list-table td{padding:4px 8px;line-height:30px}.b-settings-accounts .list-table .account-img{font-size:12px;margin-right:5px}.b-settings-accounts .list-table .account-name{display:inline-block;word-break:break-all;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;line-height:22px;cursor:default}.b-settings-accounts .account-item .button-delete{margin-right:15px;margin-top:5px;visibility:hidden;opacity:0;filter:alpha(opacity=0)}.b-settings-accounts .account-item .delete-access.button-delete{visibility:visible;margin-right:0;opacity:1;filter:alpha(opacity=100)}.b-settings-accounts .account-item .delete-account{cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.b-settings-identities .process-place{text-align:center;width:600px;padding:14px 0}.b-settings-identities .list-table{width:600px}.b-settings-identities .list-table td{padding:4px 8px;line-height:30px}.b-settings-identities .list-table .identity-img{font-size:12px;margin-right:5px}.b-settings-identities .list-table .identity-name{display:inline-block;word-break:break-all;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;line-height:22px;cursor:pointer}.b-settings-identities .identity-item .e-action{cursor:pointer}.b-settings-identities .identity-item .button-delete{margin-right:15px;margin-top:5px;visibility:hidden;opacity:0;filter:alpha(opacity=0)}.b-settings-identities .identity-item .delete-access.button-delete{visibility:visible;margin-right:0;opacity:1;filter:alpha(opacity=100)}.b-settings-identities .identity-item .delete-identity{cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.b-settings-folders.ignore-folder-subscribe .subscribe-folder,.b-settings-folders.ignore-folder-subscribe .unsubscribe-folder{display:none}.b-settings-folders .process-place{text-align:center;width:600px;padding:14px 0}.b-settings-folders .folders-list-error{width:550px;margin:10px 0}.b-settings-folders .list-table{width:600px}.b-settings-folders .list-table .e-action{cursor:pointer}.b-settings-folders .list-table td{padding:4px 8px;line-height:30px}.b-settings-folders .list-table .folder-padding{display:inline-block;width:0}.b-settings-folders .list-table .folder-name{display:inline-block;word-break:break-all;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-left:7px;line-height:22px;cursor:default}.b-settings-folders .list-table .folder-system-name{display:inline-block;line-height:22px;color:#999;cursor:default}.b-settings-folders .list-table .folder-name.can-be-edited:hover{border-bottom:1px dashed #333;cursor:pointer}.b-settings-folders .list-table .folder-name-input{border-width:1px;margin-bottom:0}.b-settings-folders .folder-item .button-delete{margin-right:15px;margin-top:5px;visibility:hidden;opacity:0;filter:alpha(opacity=0)}.b-settings-folders .folder-item .delete-access.button-delete{visibility:visible;margin-right:0;opacity:1;filter:alpha(opacity=100)}.b-settings-folders .folder-item .delete-folder,.b-settings-folders .folder-item .subscribe-folder,.b-settings-folders .folder-item .unsubscribe-folder{cursor:pointer;opacity:.6;filter:alpha(opacity=60)}.b-settings-folders .folder-item .unsubscribe-folder{opacity:.25;filter:alpha(opacity=25)}.b-settings-folders .folder-padding.deep-1{width:25px}.b-settings-folders .folder-padding.deep-2{width:40px}.b-settings-folders .folder-padding.deep-3{width:55px}.b-settings-folders .folder-padding.deep-4{width:70px}.b-settings-folders .folder-padding.deep-5{width:85px}.b-themes-list .e-item{display:inline-block;border:2px solid transparent;cursor:pointer;color:#000;background-color:#fff;padding:16px;margin:5px}.b-themes-list .e-item:hover{border:2px solid grey}.b-themes-list .e-item.selected{background-color:#eee;border:2px solid #000}.b-themes-list .e-item .e-image{width:100px;height:100px;border:1px solid #ddd}@keyframes highlight-folder-row{0%{transform:scale(1)}50%{transform:scale(1.1)}100%{transform:scale(1)}}@-moz-keyframes highlight-folder-row{0%{-moz-transform:scale(1)}50%{-moz-transform:scale(1.1)}100%{-moz-transform:scale(1)}}@-webkit-keyframes highlight-folder-row{0%{-webkit-transform:scale(1)}50%{-webkit-transform:scale(1.1)}100%{-webkit-transform:scale(1)}}@-webkit-keyframes textLoadingAnimationKeyFrame{0%{opacity:1}33%{opacity:0}100%{opacity:1}}@-moz-keyframes textLoadingAnimationKeyFrame{0%{opacity:1}33%{opacity:0}100%{opacity:1}}@keyframes textLoadingAnimationKeyFrame{0%{opacity:1}33%{opacity:0}100%{opacity:1}}@-webkit-keyframes animate-stripes{0%{background-position:0 0}100%{background-position:60px 0}}@-moz-keyframes animate-stripes{0%{background-position:0 0}100%{background-position:60px 0}}@keyframes animate-stripes{0%{background-position:0 0}100%{background-position:60px 0}}.rl-anim.rgba.cssanimations.backgroundsize .e-strip-animation{-webkit-background-size:60px 60px;-moz-background-size:60px 60px;background-size:60px 60px;background-image:-webkit-linear-gradient(135deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(135deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(135deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(135deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);background-image:linear-gradient(135deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);-webkit-animation:animate-stripes 2s linear infinite;-moz-animation:animate-stripes 2s linear infinite;animation:animate-stripes 2s linear infinite}.rl-anim.csstransitions .b-settings-folders .folder-item .button-delete{-webkit-transition:all .2s linear;-moz-transition:all .2s linear;-o-transition:all .2s linear;transition:all .2s linear}.rl-anim.csstransitions .b-settings-accounts .account-item .button-delete{-webkit-transition:all .2s linear;-moz-transition:all .2s linear;-o-transition:all .2s linear;transition:all .2s linear}.rl-anim.csstransitions .b-settings-identities .identity-item .button-delete{-webkit-transition:all .2s linear;-moz-transition:all .2s linear;-o-transition:all .2s linear;transition:all .2s linear}.rl-anim.csstransitions .b-admin-domains .e-item .button-delete{-webkit-transition:all .2s linear;-moz-transition:all .2s linear;-o-transition:all .2s linear;transition:all .2s linear}.rl-anim.csstransitions .b-compose .button-delete{-webkit-transition:margin-left .2s linear;-moz-transition:margin-left .2s linear;-o-transition:margin-left .2s linear;transition:margin-left .2s linear}.rl-anim.cssanimations .b-folders .e-item .anim-action-class{-webkit-animation:highlight-folder-row .5s linear;-moz-animation:highlight-folder-row .5s linear;animation:highlight-folder-row .5s linear}.rl-anim.csstransitions .messageList .messageListItem{-webkit-transition:max-height 400ms ease;-moz-transition:max-height 400ms ease;-o-transition:max-height 400ms ease;transition:max-height 400ms ease}.rl-anim.csstransitions .messageList .listDragOver{-webkit-transition:all 400ms ease;-moz-transition:all 400ms ease;-o-transition:all 400ms ease;transition:all 400ms ease}.rl-anim.csstransitions .b-list-content .e-contact-item{-webkit-transition:max-height 400ms ease;-moz-transition:max-height 400ms ease;-o-transition:max-height 400ms ease;transition:max-height 400ms ease}.rl-anim.csstransitions .modal.b-domain-content .modal-body{-webkit-transition:left 500ms ease;-moz-transition:left 500ms ease;-o-transition:left 500ms ease;transition:left 500ms ease}.rl-anim.csstransitions .modal-open .popups .modal{-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transition:.3s all cubic-bezier(0.250,.460,.450,.940);-moz-transition:.3s all cubic-bezier(0.250,.460,.450,.940);-o-transition:.3s all cubic-bezier(0.250,.460,.450,.940);transition:.3s all cubic-bezier(0.250,.460,.450,.940);-webkit-transform:scale(0.9);-moz-transform:scale(0.9);-ms-transform:scale(0.9);-o-transform:scale(0.9);transform:scale(0.9)}.rl-anim .modal-open .popups .popup-active.modal{-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none}.rl-anim.cssanimations .b-compose.loading .b-header-toolbar{-webkit-background-size:60px 60px;-moz-background-size:60px 60px;background-size:60px 60px;background-image:-webkit-linear-gradient(135deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(135deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(135deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(135deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-image:linear-gradient(135deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);-webkit-animation:animate-stripes 2s linear infinite;-moz-animation:animate-stripes 2s linear infinite;animation:animate-stripes 2s linear infinite}.textLoadingAnimationD1,.textLoadingAnimationD2,.textLoadingAnimationD3{-webkit-animation:textLoadingAnimationKeyFrame 1s linear infinite 0s;-moz-animation:textLoadingAnimationKeyFrame 1s linear infinite 0s;animation:textLoadingAnimationKeyFrame 1s linear infinite 0s}.textLoadingAnimationD2{-webkit-animation-delay:.3s;-moz-animation-delay:.3s;animation-delay:.3s}.textLoadingAnimationD3{-webkit-animation-delay:.6s;-moz-animation-delay:.6s;animation-delay:.6s}.editorToolbar{position:relative;height:20px;margin-top:10px;line-height:19px}.editorToolbar.editorHideToolbar .editorToolbarButtom{display:none}.editorToolbar .editorSwitcher{display:inline-block;vertical-align:middle}.editorToolbar .editorToolbarButtom{display:inline-block;width:16px;height:16px;padding:3px}.editorToolbar .editorToolbarButtom a{display:inline-block;border:0;margin:0;padding:0;width:16px;height:16px;cursor:default;background:url(images/editor.png)}.editorToolbar .editorToolbarButtom a.bold{background-position:0 0}.editorToolbar .editorToolbarButtom a.italic{background-position:-16px 0}.editorToolbar .editorToolbarButtom a.underline{background-position:-32px 0}.editorToolbar .editorToolbarButtom a.strikethrough{background-position:-48px 0}.editorToolbar .editorToolbarButtom a.link{background-position:-64px 0}.editorToolbar .editorToolbarButtom a.unlink{background-position:-80px 0}.editorToolbar .editorToolbarButtom a.orderedlist{background-position:-96px 0}.editorToolbar .editorToolbarButtom a.unorderedlist{background-position:-112px 0}.editorToolbar .editorToolbarButtom a.image{background-position:-128px 0}.editorToolbar .editorToolbarButtom a.h1{background-position:0 -16px}.editorToolbar .editorToolbarButtom a.h2{background-position:-16px -16px}.editorToolbar .editorToolbarButtom a.h3{background-position:-32px -16px}.editorToolbar .editorToolbarButtom a.h4{background-position:-48px -16px}.editorToolbar .editorToolbarButtom a.h5{background-position:-64px -16px}.editorToolbar .editorToolbarButtom a.h6{background-position:-80px -16px}.editorToolbar .editorToolbarButtom a.subscript{background-position:-96px -16px}.editorToolbar .editorToolbarButtom a.superscript{background-position:-112px -16px}.editorToolbar .editorToolbarButtom a.indent{background-position:-128px -16px}.editorToolbar .editorToolbarButtom a.outdent{background-position:-144px -16px}.editorToolbar .editorToolbarButtom a.horizontalrule{background-position:-160px -16px}.editorToolbar .editorToolbarButtom a.p{background-position:-176px -16px}.editorToolbar .editorToolbarButtom a.justifyleft{background-position:0 -32px}.editorToolbar .editorToolbarButtom a.justifycenter{background-position:-16px -32px}.editorToolbar .editorToolbarButtom a.justifyright{background-position:-32px -32px}.editorToolbar .editorToolbarButtom a.increasefontsize{background-position:-48px -32px}.editorToolbar .editorToolbarButtom a.decreasefontsize{background-position:-64px -32px}.editorToolbar .editorToolbarButtom a.forecolor{background-position:-80px -32px}.editorToolbar .editorToolbarButtom a.backcolor{background-position:-80px -32px}.editorToolbar .editorToolbarButtom a.removeformat{background-position:-144px 0}.textAreaParent{padding:0}.textAreaParent .editorHtmlArea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:0!important;overflow:auto;overflow-y:scroll;font-family:arial,sans-serif;font-size:14px;line-height:16px;margin:0;padding:8px}.textAreaParent .editorHtmlArea ul{padding-left:40px}.textAreaParent .editorHtmlArea ul li{list-style-type:disc!important}.textAreaParent .editorHtmlArea ol{padding-left:40px}.textAreaParent .editorHtmlArea ol li{list-style-type:decimal!important}.textAreaParent .editorHtmlArea blockquote{border-left:solid 2px #444;margin-left:5px;padding-left:5px}.textAreaParent .editorHtmlArea img{vertical-align:bottom}.textAreaParent .editorHtmlArea.editorDragOver{background:#ffffef}.textAreaParent .editorTextArea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;border:0!important;width:100%;line-height:16px;margin:0;padding:8px;font-family:arial,sans-serif;font-size:14px;overflow:auto;overflow-y:scroll}.editorColorPicker .editorCpColors{float:left;margin:0;clear:both;width:128px;border:1px solid #000;backgroud:#000}.editorColorPicker .editorCpColors .editorCpColor{border:1px solid #fff;float:left;width:14px;height:14px}.editorSwitcher{color:#369;text-decoration:underline;cursor:pointer;float:right;padding-bottom:6px}.editorFontStylePicker .editorFpFonts{padding:5px;border:1px solid #000;background-color:#fff}.editorFontStylePicker .editorFpFonts .editorFpFont{padding:5px} \ No newline at end of file diff --git a/rainloop/v/0.0.0/static/css/less.css b/rainloop/v/0.0.0/static/css/less.css index 65f6dfa9d..a0d4c93ba 100644 --- a/rainloop/v/0.0.0/static/css/less.css +++ b/rainloop/v/0.0.0/static/css/less.css @@ -5089,58 +5089,27 @@ html.rl-message-fullscreen .messageView .b-content .buttonFull { color: #999; } .b-contacts-content.modal .b-view-content .top-part { - margin-top: 20px; + padding-top: 20px; } -.b-contacts-content.modal .b-view-content .top-part .control-label { - text-align: center; -} -.b-contacts-content.modal .b-view-content .image-wrapper { - margin-left: 30px; - border-radius: 10px; -} -.b-contacts-content.modal .b-view-content .image-wrapper img { - border-radius: 10px; +.b-contacts-content.modal .b-view-content .property-line { + margin-bottom: 5px; } .b-contacts-content.modal .b-view-content .top-row { padding: 10px 0; height: 30px; } -.b-contacts-content.modal .b-view-content .contactEmptyValueClick, -.b-contacts-content.modal .b-view-content .contactValueClick, -.b-contacts-content.modal .b-view-content .contactValueInput { - display: inline-block; - font-size: 24px; - line-height: 28px; - height: 28px; +.b-contacts-content.modal .b-view-content .add-link { + padding-top: 5px; + font-size: 12px; + color: #aaa; } -.b-contacts-content.modal .b-view-content .contactEmptyValueClick, -.b-contacts-content.modal .b-view-content .contactValueClick { - color: #ddd; - cursor: pointer; - margin: 5px 0 0 7px; -} -.b-contacts-content.modal .b-view-content .contactValueInput { - padding-left: 6px; -} -.b-contacts-content.modal .b-view-content .contactEmptyValueClick { - border-bottom: 1px dashed #ddd; -} -.b-contacts-content.modal .b-view-content .contactValueClick { - color: #555; - border-bottom: 11px dashed transparent; -} -.b-contacts-content.modal .b-view-content .contactValueClick:hover { - color: #000; - border-bottom: 1px dashed #000; -} -.b-contacts-content.modal .b-view-content .hasError .contactValueClick, .b-contacts-content.modal .b-view-content .hasError .contactValueInput { color: #ee5f5b; border: 1px solid #ee5f5b; } .b-contacts-content.modal .b-view-content .button-save-contact { position: absolute; - bottom: 20px; + top: 20px; right: 20px; } .b-contacts-content .e-contact-item { diff --git a/rainloop/v/0.0.0/static/js/admin.js b/rainloop/v/0.0.0/static/js/admin.js index 8274e1243..fd0561181 100644 --- a/rainloop/v/0.0.0/static/js/admin.js +++ b/rainloop/v/0.0.0/static/js/admin.js @@ -487,6 +487,45 @@ Enums.InterfaceAnimation = { 'Full': 'Full' }; +/** + * @enum {number} + */ +Enums.ContactPropertyType = { + + 'Unknown': 0, + + 'FullName': 10, + + 'FirstName': 15, + 'SurName': 16, + 'MiddleName': 17, + 'Nick': 18, + + 'EmailPersonal': 30, + 'EmailBussines': 31, + 'EmailOther': 32, + + 'PhonePersonal': 50, + 'PhoneBussines': 51, + 'PhoneOther': 52, + + 'MobilePersonal': 60, + 'MobileBussines': 61, + 'MobileOther': 62, + + 'FaxPesonal': 70, + 'FaxBussines': 71, + 'FaxOther': 72, + + 'Facebook': 90, + 'Skype': 91, + 'GitHub': 92, + + 'Description': 110, + + 'Custom': 250 +}; + /** * @enum {number} */ @@ -1427,7 +1466,6 @@ Utils.initDataConstructorBySettings = function (oData) oData.dropboxEnable = ko.observable(false); oData.dropboxApiKey = ko.observable(''); - oData.contactsIsSupported = ko.observable(false); oData.contactsIsAllowed = ko.observable(false); }; @@ -2679,6 +2717,12 @@ ko.extenders.falseTimeout = function (oTarget, iOption) return oTarget; }; +ko.observable.fn.validateNone = function () +{ + this.hasError = ko.observable(false); + return this; +}; + ko.observable.fn.validateEmail = function () { this.hasError = ko.observable(false); @@ -4866,8 +4910,6 @@ function AdminGeneral() return Utils.convertLangName(this.mainLanguage()); }, this); - this.contactsSupported = RL.settingsGet('ContactsIsSupported'); - this.contactsIsAllowed = RL.settingsGet('ContactsIsAllowed'); this.weakPassword = !!RL.settingsGet('WeakPassword'); this.titleTrigger = ko.observable(Enums.SaveSettingsStep.Idle); @@ -5588,7 +5630,6 @@ AbstractData.prototype.populateDataOnStart = function() this.dropboxEnable(!!RL.settingsGet('AllowDropboxSocial')); this.dropboxApiKey(RL.settingsGet('DropboxApiKey')); - this.contactsIsSupported(!!RL.settingsGet('ContactsIsSupported')); this.contactsIsAllowed(!!RL.settingsGet('ContactsIsAllowed')); }; diff --git a/rainloop/v/0.0.0/static/js/admin.min.js b/rainloop/v/0.0.0/static/js/admin.min.js index a5a2d7145..bdf2a9a58 100644 --- a/rainloop/v/0.0.0/static/js/admin.min.js +++ b/rainloop/v/0.0.0/static/js/admin.min.js @@ -1,4 +1,4 @@ /*! RainLoop Webmail Admin Module (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */ -!function(a,b,c,d,e,f){"use strict";function g(){this.sBase="#/",this.sCdnStaticDomain=cb.settingsGet("CdnStaticDomain"),this.sVersion=cb.settingsGet("Version"),this.sSpecSuffix=cb.settingsGet("AuthAccountHash")||"0",this.sServer=(cb.settingsGet("IndexFile")||"./")+"?",this.sCdnStaticDomain=""===this.sCdnStaticDomain?this.sCdnStaticDomain:"/"===this.sCdnStaticDomain.substr(-1)?this.sCdnStaticDomain:this.sCdnStaticDomain+"/"}function h(){}function i(){}function j(){var a=[i,h],b=f.find(a,function(a){return a.supported()});b&&(b=b,this.oDriver=new b)}function k(){}function l(a,b){this.sPosition=S.pString(a),this.sTemplate=S.pString(b),this.viewModelName="",this.viewModelVisibility=c.observable(!1),"Popups"===this.sPosition&&(this.modalVisibility=c.observable(!1)),this.viewModelDom=null}function m(a,b){this.sScreenName=a,this.aViewModels=S.isArray(b)?b:[]}function n(){this.sDefaultScreenName="",this.oScreens={},this.oBoot=null,this.oCurrentScreen=null,this.popupVisibility=c.observable(!1),this.popupVisibility.subscribe(function(a){cb&&cb.popupVisibility(a)})}function o(a,b){this.email=a||"",this.name=b||"",this.privateType=null,this.clearDuplicateName()}function p(){l.call(this,"Popups","PopupsDomain"),this.edit=c.observable(!1),this.saving=c.observable(!1),this.savingError=c.observable(""),this.whiteListPage=c.observable(!1),this.testing=c.observable(!1),this.testingDone=c.observable(!1),this.testingImapError=c.observable(!1),this.testingSmtpError=c.observable(!1),this.imapServerFocus=c.observable(!1),this.smtpServerFocus=c.observable(!1),this.name=c.observable(""),this.imapServer=c.observable(""),this.imapPort=c.observable(P.Values.ImapDefaulPort),this.imapSecure=c.observable(Q.ServerSecure.None),this.imapShortLogin=c.observable(!1),this.smtpServer=c.observable(""),this.smtpPort=c.observable(P.Values.SmtpDefaulPort),this.smtpSecure=c.observable(Q.ServerSecure.None),this.smtpShortLogin=c.observable(!1),this.smtpAuth=c.observable(!0),this.whiteList=c.observable(""),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=c.computed(function(){var a=this.name();return this.edit()?'Edit Domain "'+a+'"':"Add Domain"+(""===a?"":' "'+a+'"')},this),this.domainIsComputed=c.computed(function(){return""!==this.name()&&""!==this.imapServer()&&""!==this.imapPort()&&""!==this.smtpServer()&&""!==this.smtpPort()},this),this.canBeTested=c.computed(function(){return!this.testing()&&this.domainIsComputed()},this),this.canBeSaved=c.computed(function(){return!this.saving()&&this.domainIsComputed()},this),this.createOrAddCommand=S.createCommand(this,function(){this.saving(!0),cb.remote().createOrUpdateDomain(f.bind(this.onDomainCreateOrSaveResponse,this),!this.edit(),this.name(),this.imapServer(),this.imapPort(),this.imapSecure(),this.imapShortLogin(),this.smtpServer(),this.smtpPort(),this.smtpSecure(),this.smtpShortLogin(),this.smtpAuth(),this.whiteList())},this.canBeSaved),this.testConnectionCommand=S.createCommand(this,function(){this.whiteListPage(!1),this.testingDone(!1),this.testingImapError(!1),this.testingSmtpError(!1),this.testing(!0),cb.remote().testConnectionForDomain(f.bind(this.onTestConnectionResponse,this),this.imapServer(),this.imapPort(),this.imapSecure(),this.smtpServer(),this.smtpPort(),this.smtpSecure(),this.smtpAuth())},this.canBeTested),this.whiteListCommand=S.createCommand(this,function(){this.whiteListPage(!this.whiteListPage())})}function q(){l.call(this,"Popups","PopupsPlugin");var a=this;this.onPluginSettingsUpdateResponse=f.bind(this.onPluginSettingsUpdateResponse,this),this.saveError=c.observable(""),this.name=c.observable(""),this.readme=c.observable(""),this.configures=c.observableArray([]),this.hasReadme=c.computed(function(){return""!==this.readme()},this),this.hasConfiguration=c.computed(function(){return 0').appendTo("body"),_.on("error",function(a){cb&&a&&a.originalEvent&&a.originalEvent.message&&-1===S.inArray(a.originalEvent.message,["Script error.","Uncaught Error: Error calling method on NPObject."])&&cb.remote().jsError(S.emptyFunction,a.originalEvent.message,a.originalEvent.filename,a.originalEvent.lineno,location&&location.toString?location.toString():"",$.attr("class"),S.microtime()-V.now)})}function O(){N.call(this),this.oData=null,this.oRemote=null,this.oCache=null}var P={},Q={},R={},S={},T={},U={},V={},W={settings:[],"settings-removed":[],"settings-disabled":[]},X=null,Y=a.rainloopAppData||{},Z=a.rainloopI18N||{},$=b("html"),_=b(a),ab=b(a.document),bb=a.Notification&&a.Notification.requestPermission?a.Notification:null,cb=null;V.now=(new Date).getTime(),V.minuteTick=c.observable(!0),V.fiveMinuteTick=c.observable(!0),V.langChangeTick=c.observable(!0),V.iAjaxErrorCount=0,V.iTokenErrorCount=0,V.iMessageBodyCacheCount=0,V.bUnload=!1,V.sUserAgent=(navigator.userAgent||"").toLowerCase(),V.bIsiOSDevice=-1/g,">").replace(/"/g,""").replace(/'/g,"'"):""},S.splitPlainText=function(a,b){var c="",d="",e=a,f=0,g=0;for(b=S.isUnd(b)?100:b;e.length>b;)d=e.substring(0,b),f=d.lastIndexOf(" "),g=d.lastIndexOf("\n"),-1!==g&&(f=g),-1===f&&(f=b),c+=d.substring(0,f)+"\n",e=e.substring(f+1);return c+e},S.timeOutAction=function(){var b={};return function(c,d,e){S.isUnd(b[c])&&(b[c]=0),a.clearTimeout(b[c]),b[c]=a.setTimeout(d,e)}}(),S.timeOutActionSecond=function(){var b={};return function(c,d,e){b[c]||(b[c]=a.setTimeout(function(){d(),b[c]=0},e))}}(),S.audio=function(){var b=!1;return function(c,d){if(!1===b)if(V.bIsiOSDevice)b=null;else{var e=!1,f=!1,g=a.Audio?new a.Audio:null;g&&g.canPlayType&&g.play?(e=""!==g.canPlayType('audio/mpeg; codecs="mp3"'),e||(f=""!==g.canPlayType('audio/ogg; codecs="vorbis"')),e||f?(b=g,b.preload="none",b.loop=!1,b.autoplay=!1,b.muted=!1,b.src=e?c:d):b=null):b=null}return b}}(),S.hos=function(a,b){return a&&Object.hasOwnProperty?Object.hasOwnProperty.call(a,b):!1},S.i18n=function(a,b,c){var d="",e=S.isUnd(Z[a])?S.isUnd(c)?a:c:Z[a];if(!S.isUnd(b)&&!S.isNull(b))for(d in b)S.hos(b,d)&&(e=e.replace("%"+d+"%",b[d]));return e},S.i18nToNode=function(a){f.defer(function(){b(".i18n",a).each(function(){var a=b(this),c="";c=a.data("i18n-text"),c?a.text(S.i18n(c)):(c=a.data("i18n-html"),c&&a.html(S.i18n(c)),c=a.data("i18n-placeholder"),c&&a.attr("placeholder",S.i18n(c)))})})},S.i18nToDoc=function(){a.rainloopI18N&&(Z=a.rainloopI18N||{},S.i18nToNode(ab),V.langChangeTick(!V.langChangeTick())),a.rainloopI18N={}},S.initOnStartOrLangChange=function(a,b,c){a&&a.call(b),c?V.langChangeTick.subscribe(function(){a&&a.call(b),c.call(b)}):a&&V.langChangeTick.subscribe(a,b)},S.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)},S.removeInFocus=function(){if(document&&document.activeElement&&document.activeElement.blur){var a=b(document.activeElement);(a.is("input")||a.is("textarea"))&&document.activeElement.blur()}},S.removeSelection=function(){if(a&&a.getSelection){var b=a.getSelection();b&&b.removeAllRanges&&b.removeAllRanges()}else document&&document.selection&&document.selection.empty&&document.selection.empty()},S.replySubjectAdd=function(b,c){var d=null,e=S.trim(c);return null===(d=new a.RegExp("^"+b+"[\\s]?\\:(.*)$","gi").exec(c))||S.isUnd(d[1])?null===(d=new a.RegExp("^("+b+"[\\s]?[\\[\\(]?)([\\d]+)([\\]\\)]?[\\s]?\\:.*)$","gi").exec(c))||S.isUnd(d[1])||S.isUnd(d[2])||S.isUnd(d[3])?e=b+": "+c:(e=d[1]+(S.pInt(d[2])+1)+d[3],e=d[1]+(S.pInt(d[2])+1)+d[3]):e=b+"[2]: "+d[1],e},S.roundNumber=function(a,b){return Math.round(a*Math.pow(10,b))/Math.pow(10,b)},S.friendlySize=function(a){return a=S.pInt(a),a>=1073741824?S.roundNumber(a/1073741824,1)+"GB":a>=1048576?S.roundNumber(a/1048576,1)+"MB":a>=1024?S.roundNumber(a/1024,0)+"KB":a+"B"},S.log=function(b){a.console&&a.console.log&&a.console.log(b)},S.getNotification=function(a){return a=S.pInt(a),S.isUnd(R[a])?"":R[a]},S.initNotificationLanguage=function(){R[Q.Notification.InvalidToken]=S.i18n("NOTIFICATIONS/INVALID_TOKEN"),R[Q.Notification.AuthError]=S.i18n("NOTIFICATIONS/AUTH_ERROR"),R[Q.Notification.AccessError]=S.i18n("NOTIFICATIONS/ACCESS_ERROR"),R[Q.Notification.ConnectionError]=S.i18n("NOTIFICATIONS/CONNECTION_ERROR"),R[Q.Notification.CaptchaError]=S.i18n("NOTIFICATIONS/CAPTCHA_ERROR"),R[Q.Notification.SocialFacebookLoginAccessDisable]=S.i18n("NOTIFICATIONS/SOCIAL_FACEBOOK_LOGIN_ACCESS_DISABLE"),R[Q.Notification.SocialTwitterLoginAccessDisable]=S.i18n("NOTIFICATIONS/SOCIAL_TWITTER_LOGIN_ACCESS_DISABLE"),R[Q.Notification.SocialGoogleLoginAccessDisable]=S.i18n("NOTIFICATIONS/SOCIAL_GOOGLE_LOGIN_ACCESS_DISABLE"),R[Q.Notification.DomainNotAllowed]=S.i18n("NOTIFICATIONS/DOMAIN_NOT_ALLOWED"),R[Q.Notification.AccountNotAllowed]=S.i18n("NOTIFICATIONS/ACCOUNT_NOT_ALLOWED"),R[Q.Notification.CantGetMessageList]=S.i18n("NOTIFICATIONS/CANT_GET_MESSAGE_LIST"),R[Q.Notification.CantGetMessage]=S.i18n("NOTIFICATIONS/CANT_GET_MESSAGE"),R[Q.Notification.CantDeleteMessage]=S.i18n("NOTIFICATIONS/CANT_DELETE_MESSAGE"),R[Q.Notification.CantMoveMessage]=S.i18n("NOTIFICATIONS/CANT_MOVE_MESSAGE"),R[Q.Notification.CantSaveMessage]=S.i18n("NOTIFICATIONS/CANT_SAVE_MESSAGE"),R[Q.Notification.CantSendMessage]=S.i18n("NOTIFICATIONS/CANT_SEND_MESSAGE"),R[Q.Notification.InvalidRecipients]=S.i18n("NOTIFICATIONS/INVALID_RECIPIENTS"),R[Q.Notification.CantCreateFolder]=S.i18n("NOTIFICATIONS/CANT_CREATE_FOLDER"),R[Q.Notification.CantRenameFolder]=S.i18n("NOTIFICATIONS/CANT_RENAME_FOLDER"),R[Q.Notification.CantDeleteFolder]=S.i18n("NOTIFICATIONS/CANT_DELETE_FOLDER"),R[Q.Notification.CantDeleteNonEmptyFolder]=S.i18n("NOTIFICATIONS/CANT_DELETE_NON_EMPTY_FOLDER"),R[Q.Notification.CantSubscribeFolder]=S.i18n("NOTIFICATIONS/CANT_SUBSCRIBE_FOLDER"),R[Q.Notification.CantUnsubscribeFolder]=S.i18n("NOTIFICATIONS/CANT_UNSUBSCRIBE_FOLDER"),R[Q.Notification.CantSaveSettings]=S.i18n("NOTIFICATIONS/CANT_SAVE_SETTINGS"),R[Q.Notification.CantSavePluginSettings]=S.i18n("NOTIFICATIONS/CANT_SAVE_PLUGIN_SETTINGS"),R[Q.Notification.DomainAlreadyExists]=S.i18n("NOTIFICATIONS/DOMAIN_ALREADY_EXISTS"),R[Q.Notification.CantInstallPackage]=S.i18n("NOTIFICATIONS/CANT_INSTALL_PACKAGE"),R[Q.Notification.CantDeletePackage]=S.i18n("NOTIFICATIONS/CANT_DELETE_PACKAGE"),R[Q.Notification.InvalidPluginPackage]=S.i18n("NOTIFICATIONS/INVALID_PLUGIN_PACKAGE"),R[Q.Notification.UnsupportedPluginPackage]=S.i18n("NOTIFICATIONS/UNSUPPORTED_PLUGIN_PACKAGE"),R[Q.Notification.LicensingServerIsUnavailable]=S.i18n("NOTIFICATIONS/LICENSING_SERVER_IS_UNAVAILABLE"),R[Q.Notification.LicensingExpired]=S.i18n("NOTIFICATIONS/LICENSING_EXPIRED"),R[Q.Notification.LicensingBanned]=S.i18n("NOTIFICATIONS/LICENSING_BANNED"),R[Q.Notification.DemoSendMessageError]=S.i18n("NOTIFICATIONS/DEMO_SEND_MESSAGE_ERROR"),R[Q.Notification.AccountAlreadyExists]=S.i18n("NOTIFICATIONS/ACCOUNT_ALREADY_EXISTS"),R[Q.Notification.MailServerError]=S.i18n("NOTIFICATIONS/MAIL_SERVER_ERROR"),R[Q.Notification.UnknownNotification]=S.i18n("NOTIFICATIONS/UNKNOWN_ERROR"),R[Q.Notification.UnknownError]=S.i18n("NOTIFICATIONS/UNKNOWN_ERROR")},S.getUploadErrorDescByCode=function(a){var b="";switch(S.pInt(a)){case Q.UploadErrorCode.FileIsTooBig:b=S.i18n("UPLOAD/ERROR_FILE_IS_TOO_BIG");break;case Q.UploadErrorCode.FilePartiallyUploaded:b=S.i18n("UPLOAD/ERROR_FILE_PARTIALLY_UPLOADED");break;case Q.UploadErrorCode.FileNoUploaded:b=S.i18n("UPLOAD/ERROR_NO_FILE_UPLOADED");break;case Q.UploadErrorCode.MissingTempFolder:b=S.i18n("UPLOAD/ERROR_MISSING_TEMP_FOLDER");break;case Q.UploadErrorCode.FileOnSaveingError:b=S.i18n("UPLOAD/ERROR_ON_SAVING_FILE");break;case Q.UploadErrorCode.FileType:b=S.i18n("UPLOAD/ERROR_FILE_TYPE");break;default:b=S.i18n("UPLOAD/ERROR_UNKNOWN")}return b},S.killCtrlAandS=function(b){if(b=b||a.event){var c=b.target||b.srcElement,d=b.keyCode||b.which;if(b.ctrlKey&&d===Q.EventKeyCode.S)return b.preventDefault(),void 0;if(c&&c.tagName&&c.tagName.match(/INPUT|TEXTAREA/i))return;b.ctrlKey&&d===Q.EventKeyCode.A&&(a.getSelection?a.getSelection().removeAllRanges():a.document.selection&&a.document.selection.clear&&a.document.selection.clear(),b.preventDefault())}},S.createCommand=function(a,b,d){var e=b?function(){return e.canExecute&&e.canExecute()&&b.apply(a,Array.prototype.slice.call(arguments)),!1}:function(){};return e.enabled=c.observable(!0),d=S.isUnd(d)?!0:d,e.canExecute=S.isFunc(d)?c.computed(function(){return e.enabled()&&d.call(a)}):c.computed(function(){return e.enabled()&&!!d}),e},S.initDataConstructorBySettings=function(b){b.editorDefaultType=c.observable(Q.EditorDefaultType.Html),b.showImages=c.observable(!1),b.interfaceAnimation=c.observable(Q.InterfaceAnimation.Full),V.sAnimationType=Q.InterfaceAnimation.Full,b.allowThemes=c.observable(!0),b.allowCustomLogin=c.observable(!1),b.allowLanguagesOnSettings=c.observable(!0),b.allowLanguagesOnLogin=c.observable(!0),b.desktopNotifications=c.observable(!1),b.useThreads=c.observable(!0),b.replySameFolder=c.observable(!0),b.usePreviewPane=c.observable(!0),b.useCheckboxesInList=c.observable(!0),b.interfaceAnimation.subscribe(function(a){if(V.bMobileDevice||a===Q.InterfaceAnimation.None)$.removeClass("rl-anim rl-anim-full").addClass("no-rl-anim"),V.sAnimationType=Q.InterfaceAnimation.None;else switch(a){case Q.InterfaceAnimation.Full:$.removeClass("no-rl-anim").addClass("rl-anim rl-anim-full"),V.sAnimationType=a;break;case Q.InterfaceAnimation.Normal:$.removeClass("no-rl-anim rl-anim-full").addClass("rl-anim"),V.sAnimationType=a}}),b.interfaceAnimation.valueHasMutated(),b.desktopNotificationsPermisions=c.computed(function(){b.desktopNotifications();var c=Q.DesktopNotifications.NotSupported;if(bb&&bb.permission)switch(bb.permission.toLowerCase()){case"granted":c=Q.DesktopNotifications.Allowed;break;case"denied":c=Q.DesktopNotifications.Denied;break;case"default":c=Q.DesktopNotifications.NotAllowed}else a.webkitNotifications&&a.webkitNotifications.checkPermission&&(c=a.webkitNotifications.checkPermission());return c}),b.useDesktopNotifications=c.computed({read:function(){return b.desktopNotifications()&&Q.DesktopNotifications.Allowed===b.desktopNotificationsPermisions()},write:function(a){if(a){var c=b.desktopNotificationsPermisions();Q.DesktopNotifications.Allowed===c?b.desktopNotifications(!0):Q.DesktopNotifications.NotAllowed===c?bb.requestPermission(function(){b.desktopNotifications.valueHasMutated(),Q.DesktopNotifications.Allowed===b.desktopNotificationsPermisions()?b.desktopNotifications()?b.desktopNotifications.valueHasMutated():b.desktopNotifications(!0):b.desktopNotifications()?b.desktopNotifications(!1):b.desktopNotifications.valueHasMutated()}):b.desktopNotifications(!1)}else b.desktopNotifications(!1)}}),b.language=c.observable(""),b.languages=c.observableArray([]),b.mainLanguage=c.computed({read:b.language,write:function(a){a!==b.language()?-1=b.diff(c,"hours")?d:b.format("L")===c.format("L")?S.i18n("MESSAGE_LIST/TODAY_AT",{TIME:c.format("LT")}):b.clone().subtract("days",1).format("L")===c.format("L")?S.i18n("MESSAGE_LIST/YESTERDAY_IN",{TIME:c.format("LT")}):b.year()===c.year()?c.format("D MMM."):c.format("LL")},a)},S.isFolderExpanded=function(a){var b=cb.local().get(Q.ClientSideKeyName.ExpandedFolders);return f.isArray(b)&&-1!==f.indexOf(b,a)},S.setExpandedFolder=function(a,b){var c=cb.local().get(Q.ClientSideKeyName.ExpandedFolders);f.isArray(c)||(c=[]),b?(c.push(a),c=f.uniq(c)):c=f.without(c,a),cb.local().set(Q.ClientSideKeyName.ExpandedFolders,c)},S.initLayoutResizer=function(a,c,d,e,g,h,i,j){e=e||300,g=g||500,h=h||g-e/2,i=i||300;var k=0,l=b(a),m=b(c),n=b(d),o=cb.local().get(j)||h,p=function(a,b,c){if(b||c){var d=n.width(),e=b?b.size.width/d*100:null;null===e&&c&&(e=l.width()/d*100),null!==e&&(l.css({width:"",height:"",right:""+(100-e)+"%"}),m.css({width:"",height:"",left:""+e+"%"})) -}},q=function(b,c){if(c&&c.element&&c.element[0].id&&"#"+c.element[0].id==""+a){var d=n.width();k=d-i,k=g>k?k:g,l.resizable("option","maxWidth",k),c.size&&c.size.width&&cb.local().set(j,c.size.width),p(null,null,!0)}};o&&l.width(o),k=n.width()-i,k=g>k?k:g,l.resizable({minWidth:e,maxWidth:k,handles:"e",resize:p,stop:p}),p(null,null,!0),_.resize(f.throttle(q,400))},S.initBlockquoteSwitcher=function(a){if(a){var c=b("blockquote:not(.rl-bq-switcher)",a).filter(function(){return 0===b(this).parent().closest("blockquote",a).length});c&&0100)&&(a.addClass("rl-bq-switcher hidden-bq"),b('').insertBefore(a).click(function(){a.toggleClass("hidden-bq"),S.windowResize()}).after("
").before("
"))})}},S.removeBlockquoteSwitcher=function(a){a&&(b(a).find("blockquote.rl-bq-switcher").each(function(){b(this).removeClass("rl-bq-switcher hidden-bq")}),b(a).find(".rlBlockquoteSwitcher").each(function(){b(this).remove()}))},S.extendAsViewModel=function(a,b){b&&(b.__name=a,T.regViewModelHook(a,b),f.extend(b.prototype,l.prototype))},S.addSettingsViewModel=function(a,b,c,d,e){a.__rlSettingsData={Label:c,Template:b,Route:d,IsDefault:!!e},W.settings.push(a)},S.removeSettingsViewModel=function(a){W["settings-removed"].push(a)},S.disableSettingsViewModel=function(a){W["settings-disabled"].push(a)},S.convertThemeName=function(a){return S.trim(a.replace(/[^a-zA-Z]/g," ").replace(/([A-Z])/g," $1").replace(/[\s]+/g," "))},S.quoteName=function(a){return a.replace(/["]/g,'\\"')},S.microtime=function(){return(new Date).getTime()},S.convertLangName=function(a,b){return S.i18n("LANGS_NAMES"+(!0===b?"_EN":"")+"/LANG_"+a.toUpperCase().replace(/[^a-zA-Z0-9]+/,"_"),null,a)},S.fakeMd5=function(a){var b="",c="0123456789abcdefghijklmnopqrstuvwxyz";for(a=S.isUnd(a)?32:S.pInt(a);b.length/g,">").replace(/")},S.draggeblePlace=function(){return b('
 
').appendTo("#rl-hidden")},S.defautOptionsAfterRender=function(a,b){b&&!S.isUnd(b.disable)&&c.applyBindingsToNode(a,{disable:b.disable},b)},S.windowPopupKnockout=function(c,d,e,f){var g=null,h=a.open(""),i="__OpenerApplyBindingsUid"+S.fakeMd5()+"__",j=b("#"+d);a[i]=function(){if(h&&h.document.body&&j&&j[0]){var d=b(h.document.body);b("#rl-content",d).html(j.html()),b("html",h.document).addClass("external "+b("html").attr("class")),S.i18nToNode(d),n.prototype.applyExternal(c,b("#rl-content",d)[0]),a[i]=null,f(h)}},h.document.open(),h.document.write(''+S.encodeHtml(e)+'
'),h.document.close(),g=h.document.createElement("script"),g.type="text/javascript",g.innerHTML="if(window&&window.opener&&window.opener['"+i+"']){window.opener['"+i+"']();window.opener['"+i+"']=null}",h.document.getElementsByTagName("head")[0].appendChild(g)},S.settingsSaveHelperFunction=function(a,b,c,d){return c=c||null,d=S.isUnd(d)?1e3:S.pInt(d),function(e,g,h,i,j){b.call(c,g&&g.Result?Q.SaveSettingsStep.TrueResult:Q.SaveSettingsStep.FalseResult),a&&a.call(c,e,g,h,i,j),f.delay(function(){b.call(c,Q.SaveSettingsStep.Idle)},d)}},S.settingsSaveHelperSimpleFunction=function(a,b){return S.settingsSaveHelperFunction(null,a,b,1e3)},S.resizeAndCrop=function(b,c,d){var e=new a.Image;e.onload=function(){var a=[0,0],b=document.createElement("canvas"),e=b.getContext("2d");b.width=c,b.height=c,a=this.width>this.height?[this.width-this.height,0]:[0,this.height-this.width],e.fillStyle="#fff",e.fillRect(0,0,c,c),e.drawImage(this,a[0]/2,a[1]/2,this.width-a[0],this.height-a[1],0,0,c,c),d(b.toDataURL("image/jpeg"))},e.src=b},U={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",urlsafe_encode:function(a){return U.encode(a).replace(/[+]/g,"-").replace(/[\/]/g,"_").replace(/[=]/g,".")},encode:function(a){var b,c,d,e,f,g,h,i="",j=0;for(a=U._utf8_encode(a);j>2,f=(3&b)<<4|c>>4,g=(15&c)<<2|d>>6,h=63&d,isNaN(c)?g=h=64:isNaN(d)&&(h=64),i=i+this._keyStr.charAt(e)+this._keyStr.charAt(f)+this._keyStr.charAt(g)+this._keyStr.charAt(h);return i},decode:function(a){var b,c,d,e,f,g,h,i="",j=0;for(a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");j>4,c=(15&f)<<4|g>>2,d=(3&g)<<6|h,i+=String.fromCharCode(b),64!==g&&(i+=String.fromCharCode(c)),64!==h&&(i+=String.fromCharCode(d));return U._utf8_decode(i)},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0,d=a.length,e=0;d>c;c++)e=a.charCodeAt(c),128>e?b+=String.fromCharCode(e):e>127&&2048>e?(b+=String.fromCharCode(e>>6|192),b+=String.fromCharCode(63&e|128)):(b+=String.fromCharCode(e>>12|224),b+=String.fromCharCode(e>>6&63|128),b+=String.fromCharCode(63&e|128));return b},_utf8_decode:function(a){for(var b="",c=0,d=0,e=0,f=0;cd?(b+=String.fromCharCode(d),c++):d>191&&224>d?(e=a.charCodeAt(c+1),b+=String.fromCharCode((31&d)<<6|63&e),c+=2):(e=a.charCodeAt(c+1),f=a.charCodeAt(c+2),b+=String.fromCharCode((15&d)<<12|(63&e)<<6|63&f),c+=3);return b}},c.bindingHandlers.tooltip={init:function(a,d){if(!V.bMobileDevice){var e=b(a).data("tooltip-class")||"",f=b(a).data("tooltip-placement")||"top";b(a).tooltip({delay:{show:500,hide:100},html:!0,placement:f,trigger:"hover",title:function(){return''+S.i18n(c.utils.unwrapObservable(d()))+""}})}}},c.bindingHandlers.tooltip2={init:function(a,c){var d=b(a).data("tooltip-class")||"",e=b(a).data("tooltip-placement")||"top";b(a).tooltip({delay:{show:500,hide:100},html:!0,placement:e,title:function(){return''+c()()+""}})}},c.bindingHandlers.dropdown={init:function(a){b(a).closest(".dropdown").on("click",".e-item",function(){b(a).dropdown("toggle")})}},c.bindingHandlers.popover={init:function(a,d){b(a).popover(c.utils.unwrapObservable(d()))}},c.bindingHandlers.resizecrop={init:function(a){b(a).addClass("resizecrop").resizecrop({width:"100",height:"100",wrapperCSS:{"border-radius":"10px"}})},update:function(a,c){c()(),b(a).resizecrop({width:"100",height:"100"})}},c.bindingHandlers.onEnter={init:function(c,d,e,f){b(c).on("keypress",function(e){e&&13===a.parseInt(e.keyCode,10)&&(b(c).trigger("change"),d().call(f))})}},c.bindingHandlers.onEsc={init:function(c,d,e,f){b(c).on("keypress",function(e){e&&27===a.parseInt(e.keyCode,10)&&(b(c).trigger("change"),d().call(f))})}},c.bindingHandlers.modal={init:function(a,d){b(a).modal({keyboard:!1,show:c.utils.unwrapObservable(d())}).on("hidden",function(){d()(!1)})},update:function(a,d){var e=c.utils.unwrapObservable(d());b(a).modal(e?"show":"hide"),f.delay(function(){b(a).toggleClass("popup-active",e)},1)}},c.bindingHandlers.i18nInit={init:function(a){S.i18nToNode(a)}},c.bindingHandlers.i18nUpdate={update:function(a,b){c.utils.unwrapObservable(b()),S.i18nToNode(a)}},c.bindingHandlers.link={update:function(a,d){b(a).attr("href",c.utils.unwrapObservable(d()))}},c.bindingHandlers.title={update:function(a,d){b(a).attr("title",c.utils.unwrapObservable(d()))}},c.bindingHandlers.textF={init:function(a,d){b(a).text(c.utils.unwrapObservable(d()))}},c.bindingHandlers.initDom={init:function(a,b){b()(a)}},c.bindingHandlers.initResizeTrigger={init:function(a,d){var e=c.utils.unwrapObservable(d());b(a).css({height:e[1],"min-height":e[1]})},update:function(a,d){var e=c.utils.unwrapObservable(d()),f=S.pInt(e[1]),g=0,h=b(a).offset().top;h>0&&(h+=S.pInt(e[2]),g=_.height()-h,g>f&&(f=g),b(a).css({height:f,"min-height":f}))}},c.bindingHandlers.appendDom={update:function(a,d){b(a).hide().empty().append(c.utils.unwrapObservable(d())).show()}},c.bindingHandlers.draggable={init:function(d,e,f){if(!V.bMobileDevice){var g=100,h=3,i=f(),j=i&&i.droppableSelector?i.droppableSelector:"",k={distance:20,handle:".dragHandle",cursorAt:{top:22,left:3},refreshPositions:!0,scroll:!0};j&&(k.drag=function(c){b(j).each(function(){var d=null,e=null,f=b(this),i=f.offset(),j=i.top+f.height();a.clearInterval(f.data("timerScroll")),f.data("timerScroll",!1),c.pageX>=i.left&&c.pageX<=i.left+f.width()&&(c.pageY>=j-g&&c.pageY<=j&&(d=function(){f.scrollTop(f.scrollTop()+h),S.windowResize()},f.data("timerScroll",a.setInterval(d,10)),d()),c.pageY>=i.top&&c.pageY<=i.top+g&&(e=function(){f.scrollTop(f.scrollTop()-h),S.windowResize()},f.data("timerScroll",a.setInterval(e,10)),e()))})},k.stop=function(){b(j).each(function(){a.clearInterval(b(this).data("timerScroll")),b(this).data("timerScroll",!1)})}),k.helper=function(a){return e()(a&&a.target?c.dataFor(a.target):null)},b(d).draggable(k).on("mousedown",function(){S.removeInFocus()})}}},c.bindingHandlers.droppable={init:function(a,c,d){if(!V.bMobileDevice){var e=c(),f=d(),g=f&&f.droppableOver?f.droppableOver:null,h=f&&f.droppableOut?f.droppableOut:null,i={tolerance:"pointer",hoverClass:"droppableHover"};e&&(i.drop=function(a,b){e(a,b)},g&&(i.over=function(a,b){g(a,b)}),h&&(i.out=function(a,b){h(a,b)}),b(a).droppable(i))}}},c.bindingHandlers.nano={init:function(a){V.bDisableNanoScroll||b(a).addClass("nano").nanoScroller({iOSNativeScrolling:!1,preventPageScrolling:!0})}},c.bindingHandlers.saveTrigger1={init:function(a){var c=b(a);c.data("save-trigger-type",c.is("input[type=text]")?"input":"custom"),"custom"===c.data("save-trigger-type")?c.append('  ').addClass("settings-saved-trigger"):c.addClass("settings-saved-trigger-input")},update:function(a,d){var e=c.utils.unwrapObservable(d()),f=b(a),g="custom"===f.data("save-trigger-type"),h=g?"":"-input";switch(e.toString()){case"1":f.find(".sst-animated"+h+",.sst-error"+h).hide().removeClass("sst-visible"+h).end().find(".sst-success"+h).show().addClass("sst-visible"+h);break;case"0":f.find(".sst-animated"+h+",.sst-success"+h).hide().removeClass("sst-visible"+h).end().find(".sst-error"+h).show().addClass("sst-visible"+h);break;case"-2":f.find(".sst-error"+h+",.sst-success"+h).hide().removeClass("sst-visible"+h).end().find(".sst-animated"+h).show().addClass("sst-visible"+h);break;default:f.find(".sst-animated"+h).hide().end().find(".sst-error"+h+",.sst-success"+h).removeClass("sst-visible"+h)}}},c.bindingHandlers.saveTrigger={init:function(a){var c=b(a);c.data("save-trigger-type",c.is("input[type=text],select,textarea")?"input":"custom"),"custom"===c.data("save-trigger-type")?c.append('  ').addClass("settings-saved-trigger"):c.addClass("settings-saved-trigger-input")},update:function(a,d){var e=c.utils.unwrapObservable(d()),f=b(a);if("custom"===f.data("save-trigger-type"))switch(e.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")}else switch(e.toString()){case"1":f.addClass("success").removeClass("error");break;case"0":f.addClass("error").removeClass("success");break;case"-2":break;default:f.removeClass("error success")}}},c.bindingHandlers.emailsTags={init:function(a,c){var d=b(a),e=c();d.inputosaurus({parseOnBlur:!0,inputDelimiters:[",",";"],autoCompleteSource:function(a,b){cb.getAutocomplete(a.term,function(a){b(f.map(a,function(a){return a.toLine(!1)}))})},parseHook:function(a){return f.map(a,function(a){var b=S.trim(a),c=null;return""!==b?(c=new o,c.mailsoParse(b),c.clearDuplicateName(),[c.toLine(!1),c]):[b,null]})},change:f.bind(function(a){d.data("EmailsTagsValue",a.target.value),e(a.target.value)},this)}),e.subscribe(function(a){d.data("EmailsTagsValue")!==a&&(d.val(a),d.inputosaurus("refresh"))})}},c.bindingHandlers.command={init:function(a,d,e,f){var g=b(a),h=d();if(!h||!h.enabled||!h.canExecute)throw new Error("You are not using command function");g.addClass("command"),c.bindingHandlers[g.is("form")?"submit":"click"].init.apply(f,arguments)},update:function(a,c){var d=!0,e=b(a),f=c();d=f.enabled(),e.toggleClass("command-not-enabled",!d),d&&(d=f.canExecute(),e.toggleClass("command-can-not-be-execute",!d)),e.toggleClass("command-disabled disable disabled",!d),(e.is("input")||e.is("button"))&&e.prop("disabled",!d)}},c.extenders.trimmer=function(a){var b=c.computed({read:a,write:function(b){a(S.trim(b.toString()))},owner:this});return b(a()),b},c.extenders.reversible=function(a){var b=a();return a.commit=function(){b=a()},a.reverse=function(){a(b)},a.commitedValue=function(){return b},a},c.extenders.toggleSubscribe=function(a,b){return a.subscribe(b[1],b[0],"beforeChange"),a.subscribe(b[2],b[0]),a},c.extenders.falseTimeout=function(b,c){return b.iTimeout=0,b.subscribe(function(d){d&&(a.clearTimeout(b.iTimeout),b.iTimeout=a.setTimeout(function(){b(!1),b.iTimeout=0},S.pInt(c)))}),b},c.observable.fn.validateEmail=function(){return this.hasError=c.observable(!1),this.subscribe(function(a){a=S.trim(a),this.hasError(""!==a&&!/^[^@\s]+@[^@\s]+$/.test(a))},this),this.valueHasMutated(),this},c.observable.fn.validateSimpleEmail=function(){return this.hasError=c.observable(!1),this.subscribe(function(a){a=S.trim(a),this.hasError(""!==a&&!/^.+@.+$/.test(a))},this),this.valueHasMutated(),this},c.observable.fn.validateFunc=function(a){return this.hasFuncError=c.observable(!1),S.isFunc(a)&&(this.subscribe(function(b){this.hasFuncError(!a(b))},this),this.valueHasMutated()),this},g.prototype.root=function(){return this.sBase},g.prototype.attachmentDownload=function(a){return this.sServer+"/Raw/"+this.sSpecSuffix+"/Download/"+a},g.prototype.attachmentPreview=function(a){return this.sServer+"/Raw/"+this.sSpecSuffix+"/View/"+a},g.prototype.attachmentPreviewAsPlain=function(a){return this.sServer+"/Raw/"+this.sSpecSuffix+"/ViewAsPlain/"+a},g.prototype.upload=function(){return this.sServer+"/Upload/"+this.sSpecSuffix+"/"},g.prototype.uploadBackground=function(){return this.sServer+"/UploadBackground/"+this.sSpecSuffix+"/"},g.prototype.append=function(){return this.sServer+"/Append/"+this.sSpecSuffix+"/"},g.prototype.change=function(b){return this.sServer+"/Change/"+this.sSpecSuffix+"/"+a.encodeURIComponent(b)+"/"},g.prototype.ajax=function(a){return this.sServer+"/Ajax/"+this.sSpecSuffix+"/"+a},g.prototype.messageViewLink=function(a){return this.sServer+"/Raw/"+this.sSpecSuffix+"/ViewAsPlain/"+a},g.prototype.messageDownloadLink=function(a){return this.sServer+"/Raw/"+this.sSpecSuffix+"/Download/"+a},g.prototype.inbox=function(){return this.sBase+"mailbox/Inbox"},g.prototype.settings=function(a){var b=this.sBase+"settings";return S.isUnd(a)||""===a||(b+="/"+a),b},g.prototype.admin=function(a){var b=this.sBase;switch(a){case"AdminDomains":b+="domains";break;case"AdminSecurity":b+="security";break;case"AdminLicensing":b+="licensing"}return b},g.prototype.mailBox=function(a,b,c){b=S.isNormal(b)?S.pInt(b):1,c=S.pString(c);var d=this.sBase+"mailbox/";return""!==a&&(d+=encodeURI(a)),b>1&&(d=d.replace(/[\/]+$/,""),d+="/p"+b),""!==c&&(d=d.replace(/[\/]+$/,""),d+="/"+encodeURI(c)),d},g.prototype.phpInfo=function(){return this.sServer+"Info"},g.prototype.langLink=function(a){return this.sServer+"/Lang/0/"+encodeURI(a)+"/"+this.sVersion+"/"},g.prototype.getUserPicUrlFromHash=function(a){return this.sServer+"/Raw/"+this.sSpecSuffix+"/UserPic/"+a+"/"+this.sVersion+"/"},g.prototype.emptyContactPic=function(){return(""===this.sCdnStaticDomain?"rainloop/v/":this.sCdnStaticDomain)+this.sVersion+"/static/css/images/empty-contact.png"},g.prototype.sound=function(a){return(""===this.sCdnStaticDomain?"rainloop/v/":this.sCdnStaticDomain)+this.sVersion+"/static/sounds/"+a},g.prototype.themePreviewLink=function(a){return(""===this.sCdnStaticDomain?"rainloop/v/":this.sCdnStaticDomain)+this.sVersion+"/themes/"+encodeURI(a)+"/images/preview.png"},g.prototype.notificationMailIcon=function(){return(""===this.sCdnStaticDomain?"rainloop/v/":this.sCdnStaticDomain)+this.sVersion+"/static/css/images/icom-message-notification.png"},g.prototype.socialGoogle=function(){return this.sServer+"SocialGoogle"+(""!==this.sSpecSuffix?"/"+this.sSpecSuffix+"/":"")},g.prototype.socialTwitter=function(){return this.sServer+"SocialTwitter"+(""!==this.sSpecSuffix?"/"+this.sSpecSuffix+"/":"")},g.prototype.socialFacebook=function(){return this.sServer+"SocialFacebook"+(""!==this.sSpecSuffix?"/"+this.sSpecSuffix+"/":"")},T.oViewModelsHooks={},T.oSimpleHooks={},T.regViewModelHook=function(a,b){b&&(b.__hookName=a)},T.addHook=function(a,b){S.isFunc(b)&&(S.isArray(T.oSimpleHooks[a])||(T.oSimpleHooks[a]=[]),T.oSimpleHooks[a].push(b))},T.runHook=function(a,b){S.isArray(T.oSimpleHooks[a])&&(b=b||[],f.each(T.oSimpleHooks[a],function(a){a.apply(null,b)}))},T.mainSettingsGet=function(a){return cb?cb.settingsGet(a):null},T.remoteRequest=function(a,b,c,d,e,f){cb&&cb.remote().defaultRequest(a,b,c,d,e,f)},T.settingsGet=function(a,b){var c=T.mainSettingsGet("Plugins");return c=c&&S.isUnd(c[a])?null:c[a],c?S.isUnd(c[b])?null:c[b]:null},h.supported=function(){return!0},h.prototype.set=function(a,c){var d=b.cookie(P.Values.ClientSideCookieIndexName),e=!1,f=null;try{f=null===d?null:JSON.parse(d),f||(f={}),f[a]=c,b.cookie(P.Values.ClientSideCookieIndexName,JSON.stringify(f),{expires:30}),e=!0}catch(g){}return e},h.prototype.get=function(a){var c=b.cookie(P.Values.ClientSideCookieIndexName),d=null;try{d=null===c?null:JSON.parse(c),d=d&&!S.isUnd(d[a])?d[a]:null}catch(e){}return d},i.supported=function(){return!!a.localStorage},i.prototype.set=function(b,c){var d=a.localStorage[P.Values.ClientSideCookieIndexName]||null,e=!1,f=null;try{f=null===d?null:JSON.parse(d),f||(f={}),f[b]=c,a.localStorage[P.Values.ClientSideCookieIndexName]=JSON.stringify(f),e=!0}catch(g){}return e},i.prototype.get=function(b){var c=a.localStorage[P.Values.ClientSideCookieIndexName]||null,d=null;try{d=null===c?null:JSON.parse(c),d=d&&!S.isUnd(d[b])?d[b]:null}catch(e){}return d},j.prototype.oDriver=null,j.prototype.set=function(a,b){return this.oDriver?this.oDriver.set("p"+a,b):!1},j.prototype.get=function(a){return this.oDriver?this.oDriver.get("p"+a):null},k.prototype.bootstart=function(){},l.prototype.sPosition="",l.prototype.sTemplate="",l.prototype.viewModelName="",l.prototype.viewModelDom=null,l.prototype.viewModelTemplate=function(){return this.sTemplate},l.prototype.viewModelPosition=function(){return this.sPosition},l.prototype.cancelCommand=l.prototype.closeCommand=function(){},m.prototype.oCross=null,m.prototype.sScreenName="",m.prototype.aViewModels=[],m.prototype.viewModels=function(){return this.aViewModels},m.prototype.screenName=function(){return this.sScreenName},m.prototype.routes=function(){return null},m.prototype.__cross=function(){return this.oCross},m.prototype.__start=function(){var a=this.routes(),b=null,c=null;S.isNonEmptyArray(a)&&(c=f.bind(this.onRoute||S.emptyFunction,this),b=d.create(),f.each(a,function(a){b.addRoute(a[0],c).rules=a[1]}),this.oCross=b)},n.prototype.sDefaultScreenName="",n.prototype.oScreens={},n.prototype.oBoot=null,n.prototype.oCurrentScreen=null,n.prototype.showLoading=function(){b("#rl-loading").show()},n.prototype.hideLoading=function(){b("#rl-loading").hide()},n.prototype.routeOff=function(){e.changed.active=!1},n.prototype.routeOn=function(){e.changed.active=!0},n.prototype.setBoot=function(a){return S.isNormal(a)&&(this.oBoot=a),this},n.prototype.screen=function(a){return""===a||S.isUnd(this.oScreens[a])?null:this.oScreens[a]},n.prototype.delegateRun=function(a,b,c){a&&a[b]&&a[b].apply(a,S.isArray(c)?c:[])},n.prototype.buildViewModel=function(a,d){if(a&&!a.__builded){var e=new a(d),f=e.viewModelPosition(),g=b("#rl-content #rl-"+f.toLowerCase()),h=null;a.__builded=!0,a.__vm=e,e.data=cb.data(),e.viewModelName=a.__name,g&&1===g.length?(h=b("
").addClass("rl-view-model").addClass("RL-"+e.viewModelTemplate()).hide().attr("data-bind",'template: {name: "'+e.viewModelTemplate()+'"}, i18nInit: true'),h.appendTo(g),e.viewModelDom=h,a.__dom=h,"Popups"===f&&(e.cancelCommand=e.closeCommand=S.createCommand(e,function(){X.hideScreenPopup(a)})),T.runHook("view-model-pre-build",[a.__name,e,h]),c.applyBindings(e,h[0]),this.delegateRun(e,"onBuild",[h]),T.runHook("view-model-post-build",[a.__name,e,h])):S.log("Cannot find view model position: "+f)}return a?a.__vm:null},n.prototype.applyExternal=function(a,b){a&&b&&c.applyBindings(a,b)},n.prototype.hideScreenPopup=function(a){a&&a.__vm&&a.__dom&&(a.__dom.hide(),a.__vm.modalVisibility(!1),this.delegateRun(a.__vm,"onHide"),this.popupVisibility(!1))},n.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),T.runHook("view-model-on-show",[a.__name,a.__vm,b||[]])))},n.prototype.screenOnRoute=function(a,b){var c=this,d=null,e=null;""===S.pString(a)&&(a=this.sDefaultScreenName),""!==a&&(d=this.screen(a),d||(d=this.screen(this.sDefaultScreenName),d&&(b=a+"/"+b,a=this.sDefaultScreenName)),d&&d.__started&&(d.__builded||(d.__builded=!0,S.isNonEmptyArray(d.viewModels())&&f.each(d.viewModels(),function(a){this.buildViewModel(a,d)},this),this.delegateRun(d,"onBuild")),f.defer(function(){c.oCurrentScreen&&(c.delegateRun(c.oCurrentScreen,"onHide"),S.isNonEmptyArray(c.oCurrentScreen.viewModels())&&f.each(c.oCurrentScreen.viewModels(),function(a){a.__vm&&a.__dom&&"Popups"!==a.__vm.viewModelPosition()&&(a.__dom.hide(),a.__vm.viewModelVisibility(!1),c.delegateRun(a.__vm,"onHide"))})),c.oCurrentScreen=d,c.oCurrentScreen&&(c.delegateRun(c.oCurrentScreen,"onShow"),T.runHook("screen-on-show",[c.oCurrentScreen.screenName(),c.oCurrentScreen]),S.isNonEmptyArray(c.oCurrentScreen.viewModels())&&f.each(c.oCurrentScreen.viewModels(),function(a){a.__vm&&a.__dom&&"Popups"!==a.__vm.viewModelPosition()&&(a.__dom.show(),a.__vm.viewModelVisibility(!0),c.delegateRun(a.__vm,"onShow"),T.runHook("view-model-on-show",[a.__name,a.__vm]))},c)),e=d.__cross(),e&&e.parse(b)})))},n.prototype.startScreens=function(a){f.each(a,function(a){var b=new a,c=b?b.screenName():"";b&&""!==c&&(""===this.sDefaultScreenName&&(this.sDefaultScreenName=c),this.oScreens[c]=b)},this),f.each(this.oScreens,function(a){a&&!a.__started&&a.__start&&(a.__started=!0,a.__start(),T.runHook("screen-pre-start",[a.screenName(),a]),this.delegateRun(a,"onStart"),T.runHook("screen-post-start",[a.screenName(),a]))},this);var b=d.create();b.addRoute(/^([a-zA-Z0-9\-]*)\/?(.*)$/,f.bind(this.screenOnRoute,this)),e.initialized.add(b.parse,b),e.changed.add(b.parse,b),e.init()},n.prototype.setHash=function(a,b,c){a="#"===a.substr(0,1)?a.substr(1):a,a="/"===a.substr(0,1)?a.substr(1):a,c=S.isUnd(c)?!1:!!c,(S.isUnd(b)?1:!b)?(e.changed.active=!0,e[c?"replaceHash":"setHash"](a),e.setHash(a)):(e.changed.active=!1,e[c?"replaceHash":"setHash"](a),e.changed.active=!0)},n.prototype.bootstart=function(){return this.oBoot&&this.oBoot.bootstart&&this.oBoot.bootstart(),this},X=new n,o.newInstanceFromJson=function(a){var b=new o;return b.initByJson(a)?b:null},o.prototype.name="",o.prototype.email="",o.prototype.privateType=null,o.prototype.clear=function(){this.email="",this.name="",this.privateType=null},o.prototype.validate=function(){return""!==this.name||""!==this.email},o.prototype.hash=function(a){return"#"+(a?"":this.name)+"#"+this.email+"#"},o.prototype.clearDuplicateName=function(){this.name===this.email&&(this.name="")},o.prototype.type=function(){return null===this.privateType&&(this.email&&"@facebook.com"===this.email.substr(-13)&&(this.privateType=Q.EmailType.Facebook),null===this.privateType&&(this.privateType=Q.EmailType.Default)),this.privateType},o.prototype.search=function(a){return-1<(this.name+" "+this.email).toLowerCase().indexOf(a.toLowerCase())},o.prototype.parse=function(a){this.clear(),a=S.trim(a);var b=/(?:"([^"]+)")? ?,]+)>?,? ?/g,c=b.exec(a);c?(this.name=c[1]||"",this.email=c[2]||"",this.clearDuplicateName()):/^[^@]+@[^@]+$/.test(a)&&(this.name="",this.email=a)},o.prototype.initByJson=function(a){var b=!1;return a&&"Object/Email"===a["@Object"]&&(this.name=S.trim(a.Name),this.email=S.trim(a.Email),b=""!==this.email,this.clearDuplicateName()),b},o.prototype.toLine=function(a,b,c){var d="";return""!==this.email&&(b=S.isUnd(b)?!1:!!b,c=S.isUnd(c)?!1:!!c,a&&""!==this.name?d=b?'")+'" target="_blank" tabindex="-1">'+S.encodeHtml(this.name)+"":c?S.encodeHtml(this.name):this.name:(d=this.email,""!==this.name?b?d=S.encodeHtml('"'+this.name+'" <')+'")+'" target="_blank" tabindex="-1">'+S.encodeHtml(d)+""+S.encodeHtml(">"):(d='"'+this.name+'" <'+d+">",c&&(d=S.encodeHtml(d))):b&&(d=''+S.encodeHtml(this.email)+""))),d},o.prototype.select2Result=function(){var a="",b=cb.cache().getUserPic(this.email);return a+=""!==b?'':'',Q.EmailType.Facebook===this.type()?(a+=""+(0'):a+=""+(0('+this.name+")":this.email),a+""},o.prototype.select2Selection=function(a){var c="";if(Q.EmailType.Facebook===this.type()){if(c=0").text(c).appendTo(a),a.append(''),null}else c=0b&&(b+=d),d="undefined"==typeof c?d:0>c?c+d:c+b,b>=a.length||0>b||b>d?!1:a.slice(b,d)},c=function(a,b,c,d){return 0>c&&(c+=a.length),d=void 0!==d?d:a.length,0>d&&(d=d+a.length-c),a.slice(0,c)+b.substr(0,d)+b.slice(d)+a.slice(c+d)},d="",e="",f="",g=!1,h=!1,i=!1,j=null,k=0,l=0,m=0;m0&&0===d.length&&(d=b(a,0,m)),h=!0,k=m);break;case">":h&&(l=m,e=b(a,k+1,l-k-1),a=c(a,"",k,l-k+1),l=0,m=0,k=0,h=!1);break;case"(":g||h||i||(i=!0,k=m);break;case")":i&&(l=m,f=b(a,k+1,l-k-1),a=c(a,"",k,l-k+1),l=0,m=0,k=0,i=!1);break;case"\\":m++}m++}return 0===e.length&&(j=a.match(/[^@\s]+@\S+/i),j&&j[0]?e=j[0]:d=a),e.length>0&&0===d.length&&0===f.length&&(d=a.replace(e,"")),e=S.trim(e).replace(/^[<]+/,"").replace(/[>]+$/,""),d=S.trim(d).replace(/^["']+/,"").replace(/["']+$/,""),f=S.trim(f).replace(/^[(]+/,"").replace(/[)]+$/,""),d=d.replace(/\\\\(.)/,"$1"),f=f.replace(/\\\\(.)/,"$1"),this.name=d,this.email=e,this.clearDuplicateName(),!0},o.prototype.inputoTagLine=function(){return 0(new a.Date).getTime()-l),n&&i.oRequests[n]&&(i.oRequests[n].__aborted&&(e="abort"),i.oRequests[n]=null),i.defaultResponse(c,n,e,b,f,d)}),n&&0
").addClass("rl-settings-view-model").hide().attr("data-bind",'template: {name: "'+g.__rlSettingsData.Template+'"}, i18nInit: true'),i.appendTo(h),e.data=cb.data(),e.viewModelDom=i,e.__rlSettingsData=g.__rlSettingsData,g.__dom=i,g.__builded=!0,g.__vm=e,c.applyBindings(e,i[0]),X.delegateRun(e,"onBuild",[i])):S.log("Cannot find sub settings view model position: SettingsSubScreen")),e&&f.defer(function(){d.oCurrentSubScreen&&(X.delegateRun(d.oCurrentSubScreen,"onHide"),d.oCurrentSubScreen.viewModelDom.hide()),d.oCurrentSubScreen=e,d.oCurrentSubScreen&&(d.oCurrentSubScreen.viewModelDom.show(),X.delegateRun(d.oCurrentSubScreen,"onShow"),f.each(d.menu(),function(a){a.selected(e&&e.__rlSettingsData&&a.route===e.__rlSettingsData.Route)}),b("#rl-content .b-settings .b-content .content").scrollTop(0)),S.windowResize()})):X.setHash(cb.link().settings(),!1,!0)},K.prototype.onHide=function(){this.oCurrentSubScreen&&this.oCurrentSubScreen.viewModelDom&&(X.delegateRun(this.oCurrentSubScreen,"onHide"),this.oCurrentSubScreen.viewModelDom.hide())},K.prototype.onBuild=function(){f.each(W.settings,function(a){a&&a.__rlSettingsData&&!f.find(W["settings-removed"],function(b){return b&&b===a})&&this.menu.push({route:a.__rlSettingsData.Route,label:a.__rlSettingsData.Label,selected:c.observable(!1),disabled:!!f.find(W["settings-disabled"],function(b){return b&&b===a})})},this),this.oViewModelPlace=b("#rl-content #rl-settings-subscreen")},K.prototype.routes=function(){var a=f.find(W.settings,function(a){return a&&a.__rlSettingsData&&a.__rlSettingsData.IsDefault}),b=a?a.__rlSettingsData.Route:"general",c={subname:/^(.*)$/,normalize_:function(a,c){return c.subname=S.isUnd(c.subname)?b:S.pString(c.subname),[c.subname]}};return[["{subname}/",c],["{subname}",c],["",c]]},f.extend(L.prototype,m.prototype),L.prototype.onShow=function(){cb.setTitle("")},f.extend(M.prototype,K.prototype),M.prototype.onShow=function(){cb.setTitle("")},f.extend(N.prototype,k.prototype),N.prototype.oSettings=null,N.prototype.oLink=null,N.prototype.download=function(b){var c=null,d=null,e=navigator.userAgent.toLowerCase();return e&&(e.indexOf("chrome")>-1||e.indexOf("chrome")>-1)&&(c=document.createElement("a"),c.href=b,document.createEvent&&(d=document.createEvent("MouseEvents"),d&&d.initEvent&&c.dispatchEvent))?(d.initEvent("click",!0,!0),c.dispatchEvent(d),!0):(V.bMobileDevice?(a.open(b,"_self"),a.focus()):this.iframe.attr("src",b),!0)},N.prototype.link=function(){return null===this.oLink&&(this.oLink=new g),this.oLink},N.prototype.local=function(){return null===this.oLocal&&(this.oLocal=new j),this.oLocal},N.prototype.settingsGet=function(a){return null===this.oSettings&&(this.oSettings=S.isNormal(Y)?Y:{}),S.isUnd(this.oSettings[a])?null:this.oSettings[a]},N.prototype.settingsSet=function(a,b){null===this.oSettings&&(this.oSettings=S.isNormal(Y)?Y:{}),this.oSettings[a]=b},N.prototype.setTitle=function(b){b=(0').appendTo("body"),ab.on("error",function(a){db&&a&&a.originalEvent&&a.originalEvent.message&&-1===T.inArray(a.originalEvent.message,["Script error.","Uncaught Error: Error calling method on NPObject."])&&db.remote().jsError(T.emptyFunction,a.originalEvent.message,a.originalEvent.filename,a.originalEvent.lineno,location&&location.toString?location.toString():"",_.attr("class"),T.microtime()-W.now)})}function P(){O.call(this),this.oData=null,this.oRemote=null,this.oCache=null}var Q={},R={},S={},T={},U={},V={},W={},X={settings:[],"settings-removed":[],"settings-disabled":[]},Y=null,Z=a.rainloopAppData||{},$=a.rainloopI18N||{},_=b("html"),ab=b(a),bb=b(a.document),cb=a.Notification&&a.Notification.requestPermission?a.Notification:null,db=null;W.now=(new Date).getTime(),W.minuteTick=c.observable(!0),W.fiveMinuteTick=c.observable(!0),W.langChangeTick=c.observable(!0),W.iAjaxErrorCount=0,W.iTokenErrorCount=0,W.iMessageBodyCacheCount=0,W.bUnload=!1,W.sUserAgent=(navigator.userAgent||"").toLowerCase(),W.bIsiOSDevice=-1/g,">").replace(/"/g,""").replace(/'/g,"'"):""},T.splitPlainText=function(a,b){var c="",d="",e=a,f=0,g=0;for(b=T.isUnd(b)?100:b;e.length>b;)d=e.substring(0,b),f=d.lastIndexOf(" "),g=d.lastIndexOf("\n"),-1!==g&&(f=g),-1===f&&(f=b),c+=d.substring(0,f)+"\n",e=e.substring(f+1);return c+e},T.timeOutAction=function(){var b={};return function(c,d,e){T.isUnd(b[c])&&(b[c]=0),a.clearTimeout(b[c]),b[c]=a.setTimeout(d,e)}}(),T.timeOutActionSecond=function(){var b={};return function(c,d,e){b[c]||(b[c]=a.setTimeout(function(){d(),b[c]=0},e))}}(),T.audio=function(){var b=!1;return function(c,d){if(!1===b)if(W.bIsiOSDevice)b=null;else{var e=!1,f=!1,g=a.Audio?new a.Audio:null;g&&g.canPlayType&&g.play?(e=""!==g.canPlayType('audio/mpeg; codecs="mp3"'),e||(f=""!==g.canPlayType('audio/ogg; codecs="vorbis"')),e||f?(b=g,b.preload="none",b.loop=!1,b.autoplay=!1,b.muted=!1,b.src=e?c:d):b=null):b=null}return b}}(),T.hos=function(a,b){return a&&Object.hasOwnProperty?Object.hasOwnProperty.call(a,b):!1},T.i18n=function(a,b,c){var d="",e=T.isUnd($[a])?T.isUnd(c)?a:c:$[a];if(!T.isUnd(b)&&!T.isNull(b))for(d in b)T.hos(b,d)&&(e=e.replace("%"+d+"%",b[d]));return e},T.i18nToNode=function(a){f.defer(function(){b(".i18n",a).each(function(){var a=b(this),c="";c=a.data("i18n-text"),c?a.text(T.i18n(c)):(c=a.data("i18n-html"),c&&a.html(T.i18n(c)),c=a.data("i18n-placeholder"),c&&a.attr("placeholder",T.i18n(c)))})})},T.i18nToDoc=function(){a.rainloopI18N&&($=a.rainloopI18N||{},T.i18nToNode(bb),W.langChangeTick(!W.langChangeTick())),a.rainloopI18N={}},T.initOnStartOrLangChange=function(a,b,c){a&&a.call(b),c?W.langChangeTick.subscribe(function(){a&&a.call(b),c.call(b)}):a&&W.langChangeTick.subscribe(a,b)},T.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)},T.removeInFocus=function(){if(document&&document.activeElement&&document.activeElement.blur){var a=b(document.activeElement);(a.is("input")||a.is("textarea"))&&document.activeElement.blur()}},T.removeSelection=function(){if(a&&a.getSelection){var b=a.getSelection();b&&b.removeAllRanges&&b.removeAllRanges()}else document&&document.selection&&document.selection.empty&&document.selection.empty()},T.replySubjectAdd=function(b,c){var d=null,e=T.trim(c);return null===(d=new a.RegExp("^"+b+"[\\s]?\\:(.*)$","gi").exec(c))||T.isUnd(d[1])?null===(d=new a.RegExp("^("+b+"[\\s]?[\\[\\(]?)([\\d]+)([\\]\\)]?[\\s]?\\:.*)$","gi").exec(c))||T.isUnd(d[1])||T.isUnd(d[2])||T.isUnd(d[3])?e=b+": "+c:(e=d[1]+(T.pInt(d[2])+1)+d[3],e=d[1]+(T.pInt(d[2])+1)+d[3]):e=b+"[2]: "+d[1],e},T.roundNumber=function(a,b){return Math.round(a*Math.pow(10,b))/Math.pow(10,b)},T.friendlySize=function(a){return a=T.pInt(a),a>=1073741824?T.roundNumber(a/1073741824,1)+"GB":a>=1048576?T.roundNumber(a/1048576,1)+"MB":a>=1024?T.roundNumber(a/1024,0)+"KB":a+"B"},T.log=function(b){a.console&&a.console.log&&a.console.log(b)},T.getNotification=function(a){return a=T.pInt(a),T.isUnd(S[a])?"":S[a]},T.initNotificationLanguage=function(){S[R.Notification.InvalidToken]=T.i18n("NOTIFICATIONS/INVALID_TOKEN"),S[R.Notification.AuthError]=T.i18n("NOTIFICATIONS/AUTH_ERROR"),S[R.Notification.AccessError]=T.i18n("NOTIFICATIONS/ACCESS_ERROR"),S[R.Notification.ConnectionError]=T.i18n("NOTIFICATIONS/CONNECTION_ERROR"),S[R.Notification.CaptchaError]=T.i18n("NOTIFICATIONS/CAPTCHA_ERROR"),S[R.Notification.SocialFacebookLoginAccessDisable]=T.i18n("NOTIFICATIONS/SOCIAL_FACEBOOK_LOGIN_ACCESS_DISABLE"),S[R.Notification.SocialTwitterLoginAccessDisable]=T.i18n("NOTIFICATIONS/SOCIAL_TWITTER_LOGIN_ACCESS_DISABLE"),S[R.Notification.SocialGoogleLoginAccessDisable]=T.i18n("NOTIFICATIONS/SOCIAL_GOOGLE_LOGIN_ACCESS_DISABLE"),S[R.Notification.DomainNotAllowed]=T.i18n("NOTIFICATIONS/DOMAIN_NOT_ALLOWED"),S[R.Notification.AccountNotAllowed]=T.i18n("NOTIFICATIONS/ACCOUNT_NOT_ALLOWED"),S[R.Notification.CantGetMessageList]=T.i18n("NOTIFICATIONS/CANT_GET_MESSAGE_LIST"),S[R.Notification.CantGetMessage]=T.i18n("NOTIFICATIONS/CANT_GET_MESSAGE"),S[R.Notification.CantDeleteMessage]=T.i18n("NOTIFICATIONS/CANT_DELETE_MESSAGE"),S[R.Notification.CantMoveMessage]=T.i18n("NOTIFICATIONS/CANT_MOVE_MESSAGE"),S[R.Notification.CantSaveMessage]=T.i18n("NOTIFICATIONS/CANT_SAVE_MESSAGE"),S[R.Notification.CantSendMessage]=T.i18n("NOTIFICATIONS/CANT_SEND_MESSAGE"),S[R.Notification.InvalidRecipients]=T.i18n("NOTIFICATIONS/INVALID_RECIPIENTS"),S[R.Notification.CantCreateFolder]=T.i18n("NOTIFICATIONS/CANT_CREATE_FOLDER"),S[R.Notification.CantRenameFolder]=T.i18n("NOTIFICATIONS/CANT_RENAME_FOLDER"),S[R.Notification.CantDeleteFolder]=T.i18n("NOTIFICATIONS/CANT_DELETE_FOLDER"),S[R.Notification.CantDeleteNonEmptyFolder]=T.i18n("NOTIFICATIONS/CANT_DELETE_NON_EMPTY_FOLDER"),S[R.Notification.CantSubscribeFolder]=T.i18n("NOTIFICATIONS/CANT_SUBSCRIBE_FOLDER"),S[R.Notification.CantUnsubscribeFolder]=T.i18n("NOTIFICATIONS/CANT_UNSUBSCRIBE_FOLDER"),S[R.Notification.CantSaveSettings]=T.i18n("NOTIFICATIONS/CANT_SAVE_SETTINGS"),S[R.Notification.CantSavePluginSettings]=T.i18n("NOTIFICATIONS/CANT_SAVE_PLUGIN_SETTINGS"),S[R.Notification.DomainAlreadyExists]=T.i18n("NOTIFICATIONS/DOMAIN_ALREADY_EXISTS"),S[R.Notification.CantInstallPackage]=T.i18n("NOTIFICATIONS/CANT_INSTALL_PACKAGE"),S[R.Notification.CantDeletePackage]=T.i18n("NOTIFICATIONS/CANT_DELETE_PACKAGE"),S[R.Notification.InvalidPluginPackage]=T.i18n("NOTIFICATIONS/INVALID_PLUGIN_PACKAGE"),S[R.Notification.UnsupportedPluginPackage]=T.i18n("NOTIFICATIONS/UNSUPPORTED_PLUGIN_PACKAGE"),S[R.Notification.LicensingServerIsUnavailable]=T.i18n("NOTIFICATIONS/LICENSING_SERVER_IS_UNAVAILABLE"),S[R.Notification.LicensingExpired]=T.i18n("NOTIFICATIONS/LICENSING_EXPIRED"),S[R.Notification.LicensingBanned]=T.i18n("NOTIFICATIONS/LICENSING_BANNED"),S[R.Notification.DemoSendMessageError]=T.i18n("NOTIFICATIONS/DEMO_SEND_MESSAGE_ERROR"),S[R.Notification.AccountAlreadyExists]=T.i18n("NOTIFICATIONS/ACCOUNT_ALREADY_EXISTS"),S[R.Notification.MailServerError]=T.i18n("NOTIFICATIONS/MAIL_SERVER_ERROR"),S[R.Notification.UnknownNotification]=T.i18n("NOTIFICATIONS/UNKNOWN_ERROR"),S[R.Notification.UnknownError]=T.i18n("NOTIFICATIONS/UNKNOWN_ERROR")},T.getUploadErrorDescByCode=function(a){var b="";switch(T.pInt(a)){case R.UploadErrorCode.FileIsTooBig:b=T.i18n("UPLOAD/ERROR_FILE_IS_TOO_BIG");break;case R.UploadErrorCode.FilePartiallyUploaded:b=T.i18n("UPLOAD/ERROR_FILE_PARTIALLY_UPLOADED");break;case R.UploadErrorCode.FileNoUploaded:b=T.i18n("UPLOAD/ERROR_NO_FILE_UPLOADED");break;case R.UploadErrorCode.MissingTempFolder:b=T.i18n("UPLOAD/ERROR_MISSING_TEMP_FOLDER");break;case R.UploadErrorCode.FileOnSaveingError:b=T.i18n("UPLOAD/ERROR_ON_SAVING_FILE");break;case R.UploadErrorCode.FileType:b=T.i18n("UPLOAD/ERROR_FILE_TYPE");break;default:b=T.i18n("UPLOAD/ERROR_UNKNOWN")}return b},T.killCtrlAandS=function(b){if(b=b||a.event){var c=b.target||b.srcElement,d=b.keyCode||b.which;if(b.ctrlKey&&d===R.EventKeyCode.S)return b.preventDefault(),void 0;if(c&&c.tagName&&c.tagName.match(/INPUT|TEXTAREA/i))return;b.ctrlKey&&d===R.EventKeyCode.A&&(a.getSelection?a.getSelection().removeAllRanges():a.document.selection&&a.document.selection.clear&&a.document.selection.clear(),b.preventDefault())}},T.createCommand=function(a,b,d){var e=b?function(){return e.canExecute&&e.canExecute()&&b.apply(a,Array.prototype.slice.call(arguments)),!1}:function(){};return e.enabled=c.observable(!0),d=T.isUnd(d)?!0:d,e.canExecute=T.isFunc(d)?c.computed(function(){return e.enabled()&&d.call(a)}):c.computed(function(){return e.enabled()&&!!d}),e},T.initDataConstructorBySettings=function(b){b.editorDefaultType=c.observable(R.EditorDefaultType.Html),b.showImages=c.observable(!1),b.interfaceAnimation=c.observable(R.InterfaceAnimation.Full),W.sAnimationType=R.InterfaceAnimation.Full,b.allowThemes=c.observable(!0),b.allowCustomLogin=c.observable(!1),b.allowLanguagesOnSettings=c.observable(!0),b.allowLanguagesOnLogin=c.observable(!0),b.desktopNotifications=c.observable(!1),b.useThreads=c.observable(!0),b.replySameFolder=c.observable(!0),b.usePreviewPane=c.observable(!0),b.useCheckboxesInList=c.observable(!0),b.interfaceAnimation.subscribe(function(a){if(W.bMobileDevice||a===R.InterfaceAnimation.None)_.removeClass("rl-anim rl-anim-full").addClass("no-rl-anim"),W.sAnimationType=R.InterfaceAnimation.None;else switch(a){case R.InterfaceAnimation.Full:_.removeClass("no-rl-anim").addClass("rl-anim rl-anim-full"),W.sAnimationType=a;break;case R.InterfaceAnimation.Normal:_.removeClass("no-rl-anim rl-anim-full").addClass("rl-anim"),W.sAnimationType=a}}),b.interfaceAnimation.valueHasMutated(),b.desktopNotificationsPermisions=c.computed(function(){b.desktopNotifications();var c=R.DesktopNotifications.NotSupported;if(cb&&cb.permission)switch(cb.permission.toLowerCase()){case"granted":c=R.DesktopNotifications.Allowed;break;case"denied":c=R.DesktopNotifications.Denied;break;case"default":c=R.DesktopNotifications.NotAllowed}else a.webkitNotifications&&a.webkitNotifications.checkPermission&&(c=a.webkitNotifications.checkPermission());return c}),b.useDesktopNotifications=c.computed({read:function(){return b.desktopNotifications()&&R.DesktopNotifications.Allowed===b.desktopNotificationsPermisions()},write:function(a){if(a){var c=b.desktopNotificationsPermisions();R.DesktopNotifications.Allowed===c?b.desktopNotifications(!0):R.DesktopNotifications.NotAllowed===c?cb.requestPermission(function(){b.desktopNotifications.valueHasMutated(),R.DesktopNotifications.Allowed===b.desktopNotificationsPermisions()?b.desktopNotifications()?b.desktopNotifications.valueHasMutated():b.desktopNotifications(!0):b.desktopNotifications()?b.desktopNotifications(!1):b.desktopNotifications.valueHasMutated()}):b.desktopNotifications(!1)}else b.desktopNotifications(!1)}}),b.language=c.observable(""),b.languages=c.observableArray([]),b.mainLanguage=c.computed({read:b.language,write:function(a){a!==b.language()?-1=b.diff(c,"hours")?d:b.format("L")===c.format("L")?T.i18n("MESSAGE_LIST/TODAY_AT",{TIME:c.format("LT")}):b.clone().subtract("days",1).format("L")===c.format("L")?T.i18n("MESSAGE_LIST/YESTERDAY_IN",{TIME:c.format("LT")}):b.year()===c.year()?c.format("D MMM."):c.format("LL")},a)},T.isFolderExpanded=function(a){var b=db.local().get(R.ClientSideKeyName.ExpandedFolders);return f.isArray(b)&&-1!==f.indexOf(b,a)},T.setExpandedFolder=function(a,b){var c=db.local().get(R.ClientSideKeyName.ExpandedFolders); +f.isArray(c)||(c=[]),b?(c.push(a),c=f.uniq(c)):c=f.without(c,a),db.local().set(R.ClientSideKeyName.ExpandedFolders,c)},T.initLayoutResizer=function(a,c,d,e,g,h,i,j){e=e||300,g=g||500,h=h||g-e/2,i=i||300;var k=0,l=b(a),m=b(c),n=b(d),o=db.local().get(j)||h,p=function(a,b,c){if(b||c){var d=n.width(),e=b?b.size.width/d*100:null;null===e&&c&&(e=l.width()/d*100),null!==e&&(l.css({width:"",height:"",right:""+(100-e)+"%"}),m.css({width:"",height:"",left:""+e+"%"}))}},q=function(b,c){if(c&&c.element&&c.element[0].id&&"#"+c.element[0].id==""+a){var d=n.width();k=d-i,k=g>k?k:g,l.resizable("option","maxWidth",k),c.size&&c.size.width&&db.local().set(j,c.size.width),p(null,null,!0)}};o&&l.width(o),k=n.width()-i,k=g>k?k:g,l.resizable({minWidth:e,maxWidth:k,handles:"e",resize:p,stop:p}),p(null,null,!0),ab.resize(f.throttle(q,400))},T.initBlockquoteSwitcher=function(a){if(a){var c=b("blockquote:not(.rl-bq-switcher)",a).filter(function(){return 0===b(this).parent().closest("blockquote",a).length});c&&0100)&&(a.addClass("rl-bq-switcher hidden-bq"),b('').insertBefore(a).click(function(){a.toggleClass("hidden-bq"),T.windowResize()}).after("
").before("
"))})}},T.removeBlockquoteSwitcher=function(a){a&&(b(a).find("blockquote.rl-bq-switcher").each(function(){b(this).removeClass("rl-bq-switcher hidden-bq")}),b(a).find(".rlBlockquoteSwitcher").each(function(){b(this).remove()}))},T.extendAsViewModel=function(a,b){b&&(b.__name=a,U.regViewModelHook(a,b),f.extend(b.prototype,l.prototype))},T.addSettingsViewModel=function(a,b,c,d,e){a.__rlSettingsData={Label:c,Template:b,Route:d,IsDefault:!!e},X.settings.push(a)},T.removeSettingsViewModel=function(a){X["settings-removed"].push(a)},T.disableSettingsViewModel=function(a){X["settings-disabled"].push(a)},T.convertThemeName=function(a){return T.trim(a.replace(/[^a-zA-Z]/g," ").replace(/([A-Z])/g," $1").replace(/[\s]+/g," "))},T.quoteName=function(a){return a.replace(/["]/g,'\\"')},T.microtime=function(){return(new Date).getTime()},T.convertLangName=function(a,b){return T.i18n("LANGS_NAMES"+(!0===b?"_EN":"")+"/LANG_"+a.toUpperCase().replace(/[^a-zA-Z0-9]+/,"_"),null,a)},T.fakeMd5=function(a){var b="",c="0123456789abcdefghijklmnopqrstuvwxyz";for(a=T.isUnd(a)?32:T.pInt(a);b.length/g,">").replace(/")},T.draggeblePlace=function(){return b('
 
').appendTo("#rl-hidden")},T.defautOptionsAfterRender=function(a,b){b&&!T.isUnd(b.disable)&&c.applyBindingsToNode(a,{disable:b.disable},b)},T.windowPopupKnockout=function(c,d,e,f){var g=null,h=a.open(""),i="__OpenerApplyBindingsUid"+T.fakeMd5()+"__",j=b("#"+d);a[i]=function(){if(h&&h.document.body&&j&&j[0]){var d=b(h.document.body);b("#rl-content",d).html(j.html()),b("html",h.document).addClass("external "+b("html").attr("class")),T.i18nToNode(d),n.prototype.applyExternal(c,b("#rl-content",d)[0]),a[i]=null,f(h)}},h.document.open(),h.document.write(''+T.encodeHtml(e)+'
'),h.document.close(),g=h.document.createElement("script"),g.type="text/javascript",g.innerHTML="if(window&&window.opener&&window.opener['"+i+"']){window.opener['"+i+"']();window.opener['"+i+"']=null}",h.document.getElementsByTagName("head")[0].appendChild(g)},T.settingsSaveHelperFunction=function(a,b,c,d){return c=c||null,d=T.isUnd(d)?1e3:T.pInt(d),function(e,g,h,i,j){b.call(c,g&&g.Result?R.SaveSettingsStep.TrueResult:R.SaveSettingsStep.FalseResult),a&&a.call(c,e,g,h,i,j),f.delay(function(){b.call(c,R.SaveSettingsStep.Idle)},d)}},T.settingsSaveHelperSimpleFunction=function(a,b){return T.settingsSaveHelperFunction(null,a,b,1e3)},T.resizeAndCrop=function(b,c,d){var e=new a.Image;e.onload=function(){var a=[0,0],b=document.createElement("canvas"),e=b.getContext("2d");b.width=c,b.height=c,a=this.width>this.height?[this.width-this.height,0]:[0,this.height-this.width],e.fillStyle="#fff",e.fillRect(0,0,c,c),e.drawImage(this,a[0]/2,a[1]/2,this.width-a[0],this.height-a[1],0,0,c,c),d(b.toDataURL("image/jpeg"))},e.src=b},V={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",urlsafe_encode:function(a){return V.encode(a).replace(/[+]/g,"-").replace(/[\/]/g,"_").replace(/[=]/g,".")},encode:function(a){var b,c,d,e,f,g,h,i="",j=0;for(a=V._utf8_encode(a);j>2,f=(3&b)<<4|c>>4,g=(15&c)<<2|d>>6,h=63&d,isNaN(c)?g=h=64:isNaN(d)&&(h=64),i=i+this._keyStr.charAt(e)+this._keyStr.charAt(f)+this._keyStr.charAt(g)+this._keyStr.charAt(h);return i},decode:function(a){var b,c,d,e,f,g,h,i="",j=0;for(a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");j>4,c=(15&f)<<4|g>>2,d=(3&g)<<6|h,i+=String.fromCharCode(b),64!==g&&(i+=String.fromCharCode(c)),64!==h&&(i+=String.fromCharCode(d));return V._utf8_decode(i)},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0,d=a.length,e=0;d>c;c++)e=a.charCodeAt(c),128>e?b+=String.fromCharCode(e):e>127&&2048>e?(b+=String.fromCharCode(e>>6|192),b+=String.fromCharCode(63&e|128)):(b+=String.fromCharCode(e>>12|224),b+=String.fromCharCode(e>>6&63|128),b+=String.fromCharCode(63&e|128));return b},_utf8_decode:function(a){for(var b="",c=0,d=0,e=0,f=0;cd?(b+=String.fromCharCode(d),c++):d>191&&224>d?(e=a.charCodeAt(c+1),b+=String.fromCharCode((31&d)<<6|63&e),c+=2):(e=a.charCodeAt(c+1),f=a.charCodeAt(c+2),b+=String.fromCharCode((15&d)<<12|(63&e)<<6|63&f),c+=3);return b}},c.bindingHandlers.tooltip={init:function(a,d){if(!W.bMobileDevice){var e=b(a).data("tooltip-class")||"",f=b(a).data("tooltip-placement")||"top";b(a).tooltip({delay:{show:500,hide:100},html:!0,placement:f,trigger:"hover",title:function(){return''+T.i18n(c.utils.unwrapObservable(d()))+""}})}}},c.bindingHandlers.tooltip2={init:function(a,c){var d=b(a).data("tooltip-class")||"",e=b(a).data("tooltip-placement")||"top";b(a).tooltip({delay:{show:500,hide:100},html:!0,placement:e,title:function(){return''+c()()+""}})}},c.bindingHandlers.dropdown={init:function(a){b(a).closest(".dropdown").on("click",".e-item",function(){b(a).dropdown("toggle")})}},c.bindingHandlers.popover={init:function(a,d){b(a).popover(c.utils.unwrapObservable(d()))}},c.bindingHandlers.resizecrop={init:function(a){b(a).addClass("resizecrop").resizecrop({width:"100",height:"100",wrapperCSS:{"border-radius":"10px"}})},update:function(a,c){c()(),b(a).resizecrop({width:"100",height:"100"})}},c.bindingHandlers.onEnter={init:function(c,d,e,f){b(c).on("keypress",function(e){e&&13===a.parseInt(e.keyCode,10)&&(b(c).trigger("change"),d().call(f))})}},c.bindingHandlers.onEsc={init:function(c,d,e,f){b(c).on("keypress",function(e){e&&27===a.parseInt(e.keyCode,10)&&(b(c).trigger("change"),d().call(f))})}},c.bindingHandlers.modal={init:function(a,d){b(a).modal({keyboard:!1,show:c.utils.unwrapObservable(d())}).on("hidden",function(){d()(!1)})},update:function(a,d){var e=c.utils.unwrapObservable(d());b(a).modal(e?"show":"hide"),f.delay(function(){b(a).toggleClass("popup-active",e)},1)}},c.bindingHandlers.i18nInit={init:function(a){T.i18nToNode(a)}},c.bindingHandlers.i18nUpdate={update:function(a,b){c.utils.unwrapObservable(b()),T.i18nToNode(a)}},c.bindingHandlers.link={update:function(a,d){b(a).attr("href",c.utils.unwrapObservable(d()))}},c.bindingHandlers.title={update:function(a,d){b(a).attr("title",c.utils.unwrapObservable(d()))}},c.bindingHandlers.textF={init:function(a,d){b(a).text(c.utils.unwrapObservable(d()))}},c.bindingHandlers.initDom={init:function(a,b){b()(a)}},c.bindingHandlers.initResizeTrigger={init:function(a,d){var e=c.utils.unwrapObservable(d());b(a).css({height:e[1],"min-height":e[1]})},update:function(a,d){var e=c.utils.unwrapObservable(d()),f=T.pInt(e[1]),g=0,h=b(a).offset().top;h>0&&(h+=T.pInt(e[2]),g=ab.height()-h,g>f&&(f=g),b(a).css({height:f,"min-height":f}))}},c.bindingHandlers.appendDom={update:function(a,d){b(a).hide().empty().append(c.utils.unwrapObservable(d())).show()}},c.bindingHandlers.draggable={init:function(d,e,f){if(!W.bMobileDevice){var g=100,h=3,i=f(),j=i&&i.droppableSelector?i.droppableSelector:"",k={distance:20,handle:".dragHandle",cursorAt:{top:22,left:3},refreshPositions:!0,scroll:!0};j&&(k.drag=function(c){b(j).each(function(){var d=null,e=null,f=b(this),i=f.offset(),j=i.top+f.height();a.clearInterval(f.data("timerScroll")),f.data("timerScroll",!1),c.pageX>=i.left&&c.pageX<=i.left+f.width()&&(c.pageY>=j-g&&c.pageY<=j&&(d=function(){f.scrollTop(f.scrollTop()+h),T.windowResize()},f.data("timerScroll",a.setInterval(d,10)),d()),c.pageY>=i.top&&c.pageY<=i.top+g&&(e=function(){f.scrollTop(f.scrollTop()-h),T.windowResize()},f.data("timerScroll",a.setInterval(e,10)),e()))})},k.stop=function(){b(j).each(function(){a.clearInterval(b(this).data("timerScroll")),b(this).data("timerScroll",!1)})}),k.helper=function(a){return e()(a&&a.target?c.dataFor(a.target):null)},b(d).draggable(k).on("mousedown",function(){T.removeInFocus()})}}},c.bindingHandlers.droppable={init:function(a,c,d){if(!W.bMobileDevice){var e=c(),f=d(),g=f&&f.droppableOver?f.droppableOver:null,h=f&&f.droppableOut?f.droppableOut:null,i={tolerance:"pointer",hoverClass:"droppableHover"};e&&(i.drop=function(a,b){e(a,b)},g&&(i.over=function(a,b){g(a,b)}),h&&(i.out=function(a,b){h(a,b)}),b(a).droppable(i))}}},c.bindingHandlers.nano={init:function(a){W.bDisableNanoScroll||b(a).addClass("nano").nanoScroller({iOSNativeScrolling:!1,preventPageScrolling:!0})}},c.bindingHandlers.saveTrigger1={init:function(a){var c=b(a);c.data("save-trigger-type",c.is("input[type=text]")?"input":"custom"),"custom"===c.data("save-trigger-type")?c.append('  ').addClass("settings-saved-trigger"):c.addClass("settings-saved-trigger-input")},update:function(a,d){var e=c.utils.unwrapObservable(d()),f=b(a),g="custom"===f.data("save-trigger-type"),h=g?"":"-input";switch(e.toString()){case"1":f.find(".sst-animated"+h+",.sst-error"+h).hide().removeClass("sst-visible"+h).end().find(".sst-success"+h).show().addClass("sst-visible"+h);break;case"0":f.find(".sst-animated"+h+",.sst-success"+h).hide().removeClass("sst-visible"+h).end().find(".sst-error"+h).show().addClass("sst-visible"+h);break;case"-2":f.find(".sst-error"+h+",.sst-success"+h).hide().removeClass("sst-visible"+h).end().find(".sst-animated"+h).show().addClass("sst-visible"+h);break;default:f.find(".sst-animated"+h).hide().end().find(".sst-error"+h+",.sst-success"+h).removeClass("sst-visible"+h)}}},c.bindingHandlers.saveTrigger={init:function(a){var c=b(a);c.data("save-trigger-type",c.is("input[type=text],select,textarea")?"input":"custom"),"custom"===c.data("save-trigger-type")?c.append('  ').addClass("settings-saved-trigger"):c.addClass("settings-saved-trigger-input")},update:function(a,d){var e=c.utils.unwrapObservable(d()),f=b(a);if("custom"===f.data("save-trigger-type"))switch(e.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")}else switch(e.toString()){case"1":f.addClass("success").removeClass("error");break;case"0":f.addClass("error").removeClass("success");break;case"-2":break;default:f.removeClass("error success")}}},c.bindingHandlers.emailsTags={init:function(a,c){var d=b(a),e=c();d.inputosaurus({parseOnBlur:!0,inputDelimiters:[",",";"],autoCompleteSource:function(a,b){db.getAutocomplete(a.term,function(a){b(f.map(a,function(a){return a.toLine(!1)}))})},parseHook:function(a){return f.map(a,function(a){var b=T.trim(a),c=null;return""!==b?(c=new o,c.mailsoParse(b),c.clearDuplicateName(),[c.toLine(!1),c]):[b,null]})},change:f.bind(function(a){d.data("EmailsTagsValue",a.target.value),e(a.target.value)},this)}),e.subscribe(function(a){d.data("EmailsTagsValue")!==a&&(d.val(a),d.inputosaurus("refresh"))})}},c.bindingHandlers.command={init:function(a,d,e,f){var g=b(a),h=d();if(!h||!h.enabled||!h.canExecute)throw new Error("You are not using command function");g.addClass("command"),c.bindingHandlers[g.is("form")?"submit":"click"].init.apply(f,arguments)},update:function(a,c){var d=!0,e=b(a),f=c();d=f.enabled(),e.toggleClass("command-not-enabled",!d),d&&(d=f.canExecute(),e.toggleClass("command-can-not-be-execute",!d)),e.toggleClass("command-disabled disable disabled",!d),(e.is("input")||e.is("button"))&&e.prop("disabled",!d)}},c.extenders.trimmer=function(a){var b=c.computed({read:a,write:function(b){a(T.trim(b.toString()))},owner:this});return b(a()),b},c.extenders.reversible=function(a){var b=a();return a.commit=function(){b=a()},a.reverse=function(){a(b)},a.commitedValue=function(){return b},a},c.extenders.toggleSubscribe=function(a,b){return a.subscribe(b[1],b[0],"beforeChange"),a.subscribe(b[2],b[0]),a},c.extenders.falseTimeout=function(b,c){return b.iTimeout=0,b.subscribe(function(d){d&&(a.clearTimeout(b.iTimeout),b.iTimeout=a.setTimeout(function(){b(!1),b.iTimeout=0},T.pInt(c)))}),b},c.observable.fn.validateNone=function(){return this.hasError=c.observable(!1),this},c.observable.fn.validateEmail=function(){return this.hasError=c.observable(!1),this.subscribe(function(a){a=T.trim(a),this.hasError(""!==a&&!/^[^@\s]+@[^@\s]+$/.test(a))},this),this.valueHasMutated(),this},c.observable.fn.validateSimpleEmail=function(){return this.hasError=c.observable(!1),this.subscribe(function(a){a=T.trim(a),this.hasError(""!==a&&!/^.+@.+$/.test(a))},this),this.valueHasMutated(),this},c.observable.fn.validateFunc=function(a){return this.hasFuncError=c.observable(!1),T.isFunc(a)&&(this.subscribe(function(b){this.hasFuncError(!a(b))},this),this.valueHasMutated()),this},g.prototype.root=function(){return this.sBase},g.prototype.attachmentDownload=function(a){return this.sServer+"/Raw/"+this.sSpecSuffix+"/Download/"+a},g.prototype.attachmentPreview=function(a){return this.sServer+"/Raw/"+this.sSpecSuffix+"/View/"+a},g.prototype.attachmentPreviewAsPlain=function(a){return this.sServer+"/Raw/"+this.sSpecSuffix+"/ViewAsPlain/"+a},g.prototype.upload=function(){return this.sServer+"/Upload/"+this.sSpecSuffix+"/"},g.prototype.uploadBackground=function(){return this.sServer+"/UploadBackground/"+this.sSpecSuffix+"/"},g.prototype.append=function(){return this.sServer+"/Append/"+this.sSpecSuffix+"/"},g.prototype.change=function(b){return this.sServer+"/Change/"+this.sSpecSuffix+"/"+a.encodeURIComponent(b)+"/"},g.prototype.ajax=function(a){return this.sServer+"/Ajax/"+this.sSpecSuffix+"/"+a},g.prototype.messageViewLink=function(a){return this.sServer+"/Raw/"+this.sSpecSuffix+"/ViewAsPlain/"+a},g.prototype.messageDownloadLink=function(a){return this.sServer+"/Raw/"+this.sSpecSuffix+"/Download/"+a},g.prototype.inbox=function(){return this.sBase+"mailbox/Inbox"},g.prototype.settings=function(a){var b=this.sBase+"settings";return T.isUnd(a)||""===a||(b+="/"+a),b},g.prototype.admin=function(a){var b=this.sBase;switch(a){case"AdminDomains":b+="domains";break;case"AdminSecurity":b+="security";break;case"AdminLicensing":b+="licensing"}return b},g.prototype.mailBox=function(a,b,c){b=T.isNormal(b)?T.pInt(b):1,c=T.pString(c);var d=this.sBase+"mailbox/";return""!==a&&(d+=encodeURI(a)),b>1&&(d=d.replace(/[\/]+$/,""),d+="/p"+b),""!==c&&(d=d.replace(/[\/]+$/,""),d+="/"+encodeURI(c)),d},g.prototype.phpInfo=function(){return this.sServer+"Info"},g.prototype.langLink=function(a){return this.sServer+"/Lang/0/"+encodeURI(a)+"/"+this.sVersion+"/"},g.prototype.getUserPicUrlFromHash=function(a){return this.sServer+"/Raw/"+this.sSpecSuffix+"/UserPic/"+a+"/"+this.sVersion+"/"},g.prototype.emptyContactPic=function(){return(""===this.sCdnStaticDomain?"rainloop/v/":this.sCdnStaticDomain)+this.sVersion+"/static/css/images/empty-contact.png"},g.prototype.sound=function(a){return(""===this.sCdnStaticDomain?"rainloop/v/":this.sCdnStaticDomain)+this.sVersion+"/static/sounds/"+a},g.prototype.themePreviewLink=function(a){return(""===this.sCdnStaticDomain?"rainloop/v/":this.sCdnStaticDomain)+this.sVersion+"/themes/"+encodeURI(a)+"/images/preview.png"},g.prototype.notificationMailIcon=function(){return(""===this.sCdnStaticDomain?"rainloop/v/":this.sCdnStaticDomain)+this.sVersion+"/static/css/images/icom-message-notification.png"},g.prototype.socialGoogle=function(){return this.sServer+"SocialGoogle"+(""!==this.sSpecSuffix?"/"+this.sSpecSuffix+"/":"")},g.prototype.socialTwitter=function(){return this.sServer+"SocialTwitter"+(""!==this.sSpecSuffix?"/"+this.sSpecSuffix+"/":"")},g.prototype.socialFacebook=function(){return this.sServer+"SocialFacebook"+(""!==this.sSpecSuffix?"/"+this.sSpecSuffix+"/":"")},U.oViewModelsHooks={},U.oSimpleHooks={},U.regViewModelHook=function(a,b){b&&(b.__hookName=a)},U.addHook=function(a,b){T.isFunc(b)&&(T.isArray(U.oSimpleHooks[a])||(U.oSimpleHooks[a]=[]),U.oSimpleHooks[a].push(b))},U.runHook=function(a,b){T.isArray(U.oSimpleHooks[a])&&(b=b||[],f.each(U.oSimpleHooks[a],function(a){a.apply(null,b)}))},U.mainSettingsGet=function(a){return db?db.settingsGet(a):null},U.remoteRequest=function(a,b,c,d,e,f){db&&db.remote().defaultRequest(a,b,c,d,e,f)},U.settingsGet=function(a,b){var c=U.mainSettingsGet("Plugins");return c=c&&T.isUnd(c[a])?null:c[a],c?T.isUnd(c[b])?null:c[b]:null},h.supported=function(){return!0},h.prototype.set=function(a,c){var d=b.cookie(Q.Values.ClientSideCookieIndexName),e=!1,f=null;try{f=null===d?null:JSON.parse(d),f||(f={}),f[a]=c,b.cookie(Q.Values.ClientSideCookieIndexName,JSON.stringify(f),{expires:30}),e=!0}catch(g){}return e},h.prototype.get=function(a){var c=b.cookie(Q.Values.ClientSideCookieIndexName),d=null;try{d=null===c?null:JSON.parse(c),d=d&&!T.isUnd(d[a])?d[a]:null}catch(e){}return d},i.supported=function(){return!!a.localStorage},i.prototype.set=function(b,c){var d=a.localStorage[Q.Values.ClientSideCookieIndexName]||null,e=!1,f=null;try{f=null===d?null:JSON.parse(d),f||(f={}),f[b]=c,a.localStorage[Q.Values.ClientSideCookieIndexName]=JSON.stringify(f),e=!0}catch(g){}return e},i.prototype.get=function(b){var c=a.localStorage[Q.Values.ClientSideCookieIndexName]||null,d=null;try{d=null===c?null:JSON.parse(c),d=d&&!T.isUnd(d[b])?d[b]:null}catch(e){}return d},j.prototype.oDriver=null,j.prototype.set=function(a,b){return this.oDriver?this.oDriver.set("p"+a,b):!1},j.prototype.get=function(a){return this.oDriver?this.oDriver.get("p"+a):null},k.prototype.bootstart=function(){},l.prototype.sPosition="",l.prototype.sTemplate="",l.prototype.viewModelName="",l.prototype.viewModelDom=null,l.prototype.viewModelTemplate=function(){return this.sTemplate},l.prototype.viewModelPosition=function(){return this.sPosition},l.prototype.cancelCommand=l.prototype.closeCommand=function(){},m.prototype.oCross=null,m.prototype.sScreenName="",m.prototype.aViewModels=[],m.prototype.viewModels=function(){return this.aViewModels},m.prototype.screenName=function(){return this.sScreenName},m.prototype.routes=function(){return null},m.prototype.__cross=function(){return this.oCross},m.prototype.__start=function(){var a=this.routes(),b=null,c=null;T.isNonEmptyArray(a)&&(c=f.bind(this.onRoute||T.emptyFunction,this),b=d.create(),f.each(a,function(a){b.addRoute(a[0],c).rules=a[1]}),this.oCross=b)},n.prototype.sDefaultScreenName="",n.prototype.oScreens={},n.prototype.oBoot=null,n.prototype.oCurrentScreen=null,n.prototype.showLoading=function(){b("#rl-loading").show()},n.prototype.hideLoading=function(){b("#rl-loading").hide()},n.prototype.routeOff=function(){e.changed.active=!1},n.prototype.routeOn=function(){e.changed.active=!0},n.prototype.setBoot=function(a){return T.isNormal(a)&&(this.oBoot=a),this},n.prototype.screen=function(a){return""===a||T.isUnd(this.oScreens[a])?null:this.oScreens[a]},n.prototype.delegateRun=function(a,b,c){a&&a[b]&&a[b].apply(a,T.isArray(c)?c:[])},n.prototype.buildViewModel=function(a,d){if(a&&!a.__builded){var e=new a(d),f=e.viewModelPosition(),g=b("#rl-content #rl-"+f.toLowerCase()),h=null;a.__builded=!0,a.__vm=e,e.data=db.data(),e.viewModelName=a.__name,g&&1===g.length?(h=b("
").addClass("rl-view-model").addClass("RL-"+e.viewModelTemplate()).hide().attr("data-bind",'template: {name: "'+e.viewModelTemplate()+'"}, i18nInit: true'),h.appendTo(g),e.viewModelDom=h,a.__dom=h,"Popups"===f&&(e.cancelCommand=e.closeCommand=T.createCommand(e,function(){Y.hideScreenPopup(a)})),U.runHook("view-model-pre-build",[a.__name,e,h]),c.applyBindings(e,h[0]),this.delegateRun(e,"onBuild",[h]),U.runHook("view-model-post-build",[a.__name,e,h])):T.log("Cannot find view model position: "+f)}return a?a.__vm:null},n.prototype.applyExternal=function(a,b){a&&b&&c.applyBindings(a,b)},n.prototype.hideScreenPopup=function(a){a&&a.__vm&&a.__dom&&(a.__dom.hide(),a.__vm.modalVisibility(!1),this.delegateRun(a.__vm,"onHide"),this.popupVisibility(!1))},n.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),U.runHook("view-model-on-show",[a.__name,a.__vm,b||[]])))},n.prototype.screenOnRoute=function(a,b){var c=this,d=null,e=null;""===T.pString(a)&&(a=this.sDefaultScreenName),""!==a&&(d=this.screen(a),d||(d=this.screen(this.sDefaultScreenName),d&&(b=a+"/"+b,a=this.sDefaultScreenName)),d&&d.__started&&(d.__builded||(d.__builded=!0,T.isNonEmptyArray(d.viewModels())&&f.each(d.viewModels(),function(a){this.buildViewModel(a,d)},this),this.delegateRun(d,"onBuild")),f.defer(function(){c.oCurrentScreen&&(c.delegateRun(c.oCurrentScreen,"onHide"),T.isNonEmptyArray(c.oCurrentScreen.viewModels())&&f.each(c.oCurrentScreen.viewModels(),function(a){a.__vm&&a.__dom&&"Popups"!==a.__vm.viewModelPosition()&&(a.__dom.hide(),a.__vm.viewModelVisibility(!1),c.delegateRun(a.__vm,"onHide"))})),c.oCurrentScreen=d,c.oCurrentScreen&&(c.delegateRun(c.oCurrentScreen,"onShow"),U.runHook("screen-on-show",[c.oCurrentScreen.screenName(),c.oCurrentScreen]),T.isNonEmptyArray(c.oCurrentScreen.viewModels())&&f.each(c.oCurrentScreen.viewModels(),function(a){a.__vm&&a.__dom&&"Popups"!==a.__vm.viewModelPosition()&&(a.__dom.show(),a.__vm.viewModelVisibility(!0),c.delegateRun(a.__vm,"onShow"),U.runHook("view-model-on-show",[a.__name,a.__vm]))},c)),e=d.__cross(),e&&e.parse(b)})))},n.prototype.startScreens=function(a){f.each(a,function(a){var b=new a,c=b?b.screenName():"";b&&""!==c&&(""===this.sDefaultScreenName&&(this.sDefaultScreenName=c),this.oScreens[c]=b)},this),f.each(this.oScreens,function(a){a&&!a.__started&&a.__start&&(a.__started=!0,a.__start(),U.runHook("screen-pre-start",[a.screenName(),a]),this.delegateRun(a,"onStart"),U.runHook("screen-post-start",[a.screenName(),a]))},this);var b=d.create();b.addRoute(/^([a-zA-Z0-9\-]*)\/?(.*)$/,f.bind(this.screenOnRoute,this)),e.initialized.add(b.parse,b),e.changed.add(b.parse,b),e.init()},n.prototype.setHash=function(a,b,c){a="#"===a.substr(0,1)?a.substr(1):a,a="/"===a.substr(0,1)?a.substr(1):a,c=T.isUnd(c)?!1:!!c,(T.isUnd(b)?1:!b)?(e.changed.active=!0,e[c?"replaceHash":"setHash"](a),e.setHash(a)):(e.changed.active=!1,e[c?"replaceHash":"setHash"](a),e.changed.active=!0)},n.prototype.bootstart=function(){return this.oBoot&&this.oBoot.bootstart&&this.oBoot.bootstart(),this},Y=new n,o.newInstanceFromJson=function(a){var b=new o;return b.initByJson(a)?b:null},o.prototype.name="",o.prototype.email="",o.prototype.privateType=null,o.prototype.clear=function(){this.email="",this.name="",this.privateType=null},o.prototype.validate=function(){return""!==this.name||""!==this.email},o.prototype.hash=function(a){return"#"+(a?"":this.name)+"#"+this.email+"#"},o.prototype.clearDuplicateName=function(){this.name===this.email&&(this.name="")},o.prototype.type=function(){return null===this.privateType&&(this.email&&"@facebook.com"===this.email.substr(-13)&&(this.privateType=R.EmailType.Facebook),null===this.privateType&&(this.privateType=R.EmailType.Default)),this.privateType},o.prototype.search=function(a){return-1<(this.name+" "+this.email).toLowerCase().indexOf(a.toLowerCase())},o.prototype.parse=function(a){this.clear(),a=T.trim(a);var b=/(?:"([^"]+)")? ?,]+)>?,? ?/g,c=b.exec(a);c?(this.name=c[1]||"",this.email=c[2]||"",this.clearDuplicateName()):/^[^@]+@[^@]+$/.test(a)&&(this.name="",this.email=a)},o.prototype.initByJson=function(a){var b=!1;return a&&"Object/Email"===a["@Object"]&&(this.name=T.trim(a.Name),this.email=T.trim(a.Email),b=""!==this.email,this.clearDuplicateName()),b},o.prototype.toLine=function(a,b,c){var d="";return""!==this.email&&(b=T.isUnd(b)?!1:!!b,c=T.isUnd(c)?!1:!!c,a&&""!==this.name?d=b?'")+'" target="_blank" tabindex="-1">'+T.encodeHtml(this.name)+"":c?T.encodeHtml(this.name):this.name:(d=this.email,""!==this.name?b?d=T.encodeHtml('"'+this.name+'" <')+'")+'" target="_blank" tabindex="-1">'+T.encodeHtml(d)+""+T.encodeHtml(">"):(d='"'+this.name+'" <'+d+">",c&&(d=T.encodeHtml(d))):b&&(d=''+T.encodeHtml(this.email)+""))),d},o.prototype.select2Result=function(){var a="",b=db.cache().getUserPic(this.email);return a+=""!==b?'':'',R.EmailType.Facebook===this.type()?(a+=""+(0'):a+=""+(0('+this.name+")":this.email),a+""},o.prototype.select2Selection=function(a){var c="";if(R.EmailType.Facebook===this.type()){if(c=0").text(c).appendTo(a),a.append(''),null}else c=0b&&(b+=d),d="undefined"==typeof c?d:0>c?c+d:c+b,b>=a.length||0>b||b>d?!1:a.slice(b,d)},c=function(a,b,c,d){return 0>c&&(c+=a.length),d=void 0!==d?d:a.length,0>d&&(d=d+a.length-c),a.slice(0,c)+b.substr(0,d)+b.slice(d)+a.slice(c+d)},d="",e="",f="",g=!1,h=!1,i=!1,j=null,k=0,l=0,m=0;m0&&0===d.length&&(d=b(a,0,m)),h=!0,k=m);break;case">":h&&(l=m,e=b(a,k+1,l-k-1),a=c(a,"",k,l-k+1),l=0,m=0,k=0,h=!1);break;case"(":g||h||i||(i=!0,k=m);break;case")":i&&(l=m,f=b(a,k+1,l-k-1),a=c(a,"",k,l-k+1),l=0,m=0,k=0,i=!1);break;case"\\":m++}m++}return 0===e.length&&(j=a.match(/[^@\s]+@\S+/i),j&&j[0]?e=j[0]:d=a),e.length>0&&0===d.length&&0===f.length&&(d=a.replace(e,"")),e=T.trim(e).replace(/^[<]+/,"").replace(/[>]+$/,""),d=T.trim(d).replace(/^["']+/,"").replace(/["']+$/,""),f=T.trim(f).replace(/^[(]+/,"").replace(/[)]+$/,""),d=d.replace(/\\\\(.)/,"$1"),f=f.replace(/\\\\(.)/,"$1"),this.name=d,this.email=e,this.clearDuplicateName(),!0},o.prototype.inputoTagLine=function(){return 0(new a.Date).getTime()-l),n&&i.oRequests[n]&&(i.oRequests[n].__aborted&&(e="abort"),i.oRequests[n]=null),i.defaultResponse(c,n,e,b,f,d)}),n&&0
").addClass("rl-settings-view-model").hide().attr("data-bind",'template: {name: "'+g.__rlSettingsData.Template+'"}, i18nInit: true'),i.appendTo(h),e.data=db.data(),e.viewModelDom=i,e.__rlSettingsData=g.__rlSettingsData,g.__dom=i,g.__builded=!0,g.__vm=e,c.applyBindings(e,i[0]),Y.delegateRun(e,"onBuild",[i])):T.log("Cannot find sub settings view model position: SettingsSubScreen")),e&&f.defer(function(){d.oCurrentSubScreen&&(Y.delegateRun(d.oCurrentSubScreen,"onHide"),d.oCurrentSubScreen.viewModelDom.hide()),d.oCurrentSubScreen=e,d.oCurrentSubScreen&&(d.oCurrentSubScreen.viewModelDom.show(),Y.delegateRun(d.oCurrentSubScreen,"onShow"),f.each(d.menu(),function(a){a.selected(e&&e.__rlSettingsData&&a.route===e.__rlSettingsData.Route)}),b("#rl-content .b-settings .b-content .content").scrollTop(0)),T.windowResize()})):Y.setHash(db.link().settings(),!1,!0)},L.prototype.onHide=function(){this.oCurrentSubScreen&&this.oCurrentSubScreen.viewModelDom&&(Y.delegateRun(this.oCurrentSubScreen,"onHide"),this.oCurrentSubScreen.viewModelDom.hide())},L.prototype.onBuild=function(){f.each(X.settings,function(a){a&&a.__rlSettingsData&&!f.find(X["settings-removed"],function(b){return b&&b===a})&&this.menu.push({route:a.__rlSettingsData.Route,label:a.__rlSettingsData.Label,selected:c.observable(!1),disabled:!!f.find(X["settings-disabled"],function(b){return b&&b===a})})},this),this.oViewModelPlace=b("#rl-content #rl-settings-subscreen")},L.prototype.routes=function(){var a=f.find(X.settings,function(a){return a&&a.__rlSettingsData&&a.__rlSettingsData.IsDefault}),b=a?a.__rlSettingsData.Route:"general",c={subname:/^(.*)$/,normalize_:function(a,c){return c.subname=T.isUnd(c.subname)?b:T.pString(c.subname),[c.subname]}};return[["{subname}/",c],["{subname}",c],["",c]]},f.extend(M.prototype,m.prototype),M.prototype.onShow=function(){db.setTitle("")},f.extend(N.prototype,L.prototype),N.prototype.onShow=function(){db.setTitle("")},f.extend(O.prototype,k.prototype),O.prototype.oSettings=null,O.prototype.oLink=null,O.prototype.download=function(b){var c=null,d=null,e=navigator.userAgent.toLowerCase();return e&&(e.indexOf("chrome")>-1||e.indexOf("chrome")>-1)&&(c=document.createElement("a"),c.href=b,document.createEvent&&(d=document.createEvent("MouseEvents"),d&&d.initEvent&&c.dispatchEvent))?(d.initEvent("click",!0,!0),c.dispatchEvent(d),!0):(W.bMobileDevice?(a.open(b,"_self"),a.focus()):this.iframe.attr("src",b),!0)},O.prototype.link=function(){return null===this.oLink&&(this.oLink=new g),this.oLink},O.prototype.local=function(){return null===this.oLocal&&(this.oLocal=new j),this.oLocal},O.prototype.settingsGet=function(a){return null===this.oSettings&&(this.oSettings=T.isNormal(Z)?Z:{}),T.isUnd(this.oSettings[a])?null:this.oSettings[a]},O.prototype.settingsSet=function(a,b){null===this.oSettings&&(this.oSettings=T.isNormal(Z)?Z:{}),this.oSettings[a]=b},O.prototype.setTitle=function(b){b=(00&&-1b?b:a))},this),this.body=null,this.isRtl=c.observable(!1),this.isHtml=c.observable(!1),this.hasImages=c.observable(!1),this.attachments=c.observableArray([]),this.priority=c.observable(lb.MessagePriority.Normal),this.aDraftInfo=[],this.sMessageId="",this.sInReplyTo="",this.sReferences="",this.parentUid=c.observable(0),this.threads=c.observableArray([]),this.threadsLen=c.observable(0),this.hasUnseenSubMessage=c.observable(!1),this.hasFlaggedSubMessage=c.observable(!1),this.lastInCollapsedThread=c.observable(!1),this.lastInCollapsedThreadLoading=c.observable(!1),this.threadsLenResult=c.computed(function(){var a=this.threadsLen();return 0===this.parentUid()&&a>0?a+1:""},this)}function x(){this.name=c.observable(""),this.fullName="",this.fullNameRaw="",this.fullNameHash="",this.delimiter="",this.namespace="",this.deep=0,this.selectable=!1,this.existen=!0,this.isNamespaceFolder=!1,this.isGmailFolder=!1,this.isUnpaddigFolder=!1,this.type=c.observable(lb.FolderType.User),this.selected=c.observable(!1),this.edited=c.observable(!1),this.collapsed=c.observable(!0),this.subScribed=c.observable(!0),this.subFolders=c.observableArray([]),this.deleteAccess=c.observable(!1),this.actionBlink=c.observable(!1).extend({falseTimeout:1e3}),this.nameForEdit=c.observable(""),this.name.subscribe(function(a){this.nameForEdit(a)},this),this.edited.subscribe(function(a){a&&this.nameForEdit(this.name())},this),this.canBeEdited=c.computed(function(){return lb.FolderType.User===this.type()},this),this.privateMessageCountAll=c.observable(0),this.privateMessageCountUnread=c.observable(0),this.collapsedPrivate=c.observable(!0)}function y(a,b){this.email=a,this.deleteAccess=c.observable(!1),this.canBeDalete=c.observable(b)}function z(a,b,d){this.id=a,this.email=c.observable(b),this.name=c.observable(""),this.replyTo=c.observable(""),this.bcc=c.observable(""),this.deleteAccess=c.observable(!1),this.canBeDalete=c.observable(d)}function A(){p.call(this,"Popups","PopupsFolderClear"),this.selectedFolder=c.observable(null),this.clearingProcess=c.observable(!1),this.clearingError=c.observable(""),this.folderFullNameForClear=c.computed(function(){var a=this.selectedFolder();return a?a.printableFullName():""},this),this.folderNameForClear=c.computed(function(){var a=this.selectedFolder();return a?a.localName():""},this),this.dangerDescHtml=c.computed(function(){return nb.i18n("POPUPS_CLEAR_FOLDER/DANGER_DESC_HTML_1",{FOLDER:this.folderNameForClear()})},this),this.clearCommand=nb.createCommand(this,function(){var a=this,b=this.selectedFolder();b&&(zb.data().message(null),zb.data().messageList([]),this.clearingProcess(!0),zb.cache().setFolderHash(b.fullNameRaw,""),zb.remote().folderClear(function(b,c){a.clearingProcess(!1),lb.StorageResultType.Success===b&&c&&c.Result?(zb.reloadMessageList(!0),a.cancelCommand()):c&&c.ErrorCode?a.clearingError(nb.getNotification(c.ErrorCode)):a.clearingError(nb.getNotification(lb.Notification.MailServerError))},b.fullNameRaw))},function(){var a=this.selectedFolder(),b=this.clearingProcess();return!b&&null!==a})}function B(){p.call(this,"Popups","PopupsFolderCreate"),nb.initOnStartOrLangChange(function(){this.sNoParentText=nb.i18n("POPUPS_CREATE_FOLDER/SELECT_NO_PARENT")},this),this.folderName=c.observable(""),this.focusTrigger=c.observable(!1),this.selectedParentValue=c.observable(kb.Values.UnuseOptionValue),this.parentFolderSelectList=c.computed(function(){var a=zb.data(),b=[],c=null,d=null,e=a.folderList(),f=function(a){return a?a.isSystemFolder()?a.name()+" "+a.manageFolderSystemName():a.name():""};return b.push(["",this.sNoParentText]),""!==a.namespace&&(c=function(b){return a.namespace!==b.fullNameRaw.substr(0,a.namespace.length)}),zb.folderListOptionsBuilder([],e,[],b,null,c,d,f)},this),this.createFolder=nb.createCommand(this,function(){var a=zb.data(),b=this.selectedParentValue();""===b&&11||g>0&&f>g){for(f>g?(h(g),b=g,c=g):((3>=f||f>=g-2)&&(d+=2),h(f),b=f,c=f);d>0;)if(b-=1,c+=1,b>0&&(h(b,!1),d--),g>=c)h(c,!0),d--;else if(0>=b)break;3===b?h(2,!1):b>3&&h(Math.round((b-1)/2),!1,"..."),g-2===c?h(g-1,!0):g-2>c&&h(Math.round((g+c)/2),!0,"..."),b>1&&h(1,!1),g>c&&h(g,!0)}return e},this),this.checkAll=c.computed({read:function(){return 00&&b>0&&a>b},this),this.hasMessages=c.computed(function(){return 0'),e.after(f),e.remove()),f&&f[0]&&f.attr("data-href",g).attr("data-theme",a[0]).text(a[1]),d.themeTrigger(lb.SaveSettingsStep.TrueResult))}).always(function(){d.iTimer=a.setTimeout(function(){d.themeTrigger(lb.SaveSettingsStep.Idle)},1e3),d.oLastAjax=null})),zb.remote().saveSettings(null,{Theme:c})},this)}function $(){nb.initDataConstructorBySettings(this)}function _(){$.call(this);var a=function(a){return function(){var b=zb.cache().getFolderFromCacheList(a());b&&b.type(lb.FolderType.User)}},d=function(a){return function(b){var c=zb.cache().getFolderFromCacheList(b);c&&c.type(a)}};this.devEmail="",this.devLogin="",this.devPassword="",this.accountEmail=c.observable(""),this.accountIncLogin=c.observable(""),this.accountOutLogin=c.observable(""),this.projectHash=c.observable(""),this.threading=c.observable(!1),this.lastFoldersHash="",this.remoteSuggestions=!1,this.sentFolder=c.observable(""),this.draftFolder=c.observable(""),this.spamFolder=c.observable(""),this.trashFolder=c.observable(""),this.sentFolder.subscribe(a(this.sentFolder),this,"beforeChange"),this.draftFolder.subscribe(a(this.draftFolder),this,"beforeChange"),this.spamFolder.subscribe(a(this.spamFolder),this,"beforeChange"),this.trashFolder.subscribe(a(this.trashFolder),this,"beforeChange"),this.sentFolder.subscribe(d(lb.FolderType.SentItems),this),this.draftFolder.subscribe(d(lb.FolderType.Draft),this),this.spamFolder.subscribe(d(lb.FolderType.Spam),this),this.trashFolder.subscribe(d(lb.FolderType.Trash),this),this.draftFolderNotEnabled=c.computed(function(){return""===this.draftFolder()||kb.Values.UnuseOptionValue===this.draftFolder()},this),this.displayName=c.observable(""),this.signature=c.observable(""),this.replyTo=c.observable(""),this.accounts=c.observableArray([]),this.accountsLoading=c.observable(!1).extend({throttle:100}),this.identities=c.observableArray([]),this.identitiesLoading=c.observable(!1).extend({throttle:100}),this.namespace="",this.folderList=c.observableArray([]),this.foldersListError=c.observable(""),this.foldersLoading=c.observable(!1),this.foldersCreating=c.observable(!1),this.foldersDeleting=c.observable(!1),this.foldersRenaming=c.observable(!1),this.currentFolder=c.observable(null).extend({toggleSubscribe:[null,function(a){a&&a.selected(!1)},function(a){a&&a.selected(!0)}]}),this.currentFolderFullNameRaw=c.computed(function(){return this.currentFolder()?this.currentFolder().fullNameRaw:""},this),this.currentFolderFullName=c.computed(function(){return this.currentFolder()?this.currentFolder().fullName:""},this),this.currentFolderFullNameHash=c.computed(function(){return this.currentFolder()?this.currentFolder().fullNameHash:""},this),this.currentFolderName=c.computed(function(){return this.currentFolder()?this.currentFolder().name():""},this),this.folderListSystemNames=c.computed(function(){var a=["INBOX"],b=this.folderList(),c=this.sentFolder(),d=this.draftFolder(),e=this.spamFolder(),f=this.trashFolder();return nb.isArray(b)&&00?Math.ceil(b/a*100):0},this),this.useKeyboardShortcuts=c.observable(!0),this.googleActions=c.observable(!1),this.googleLoggined=c.observable(!1),this.googleUserName=c.observable(""),this.facebookActions=c.observable(!1),this.facebookLoggined=c.observable(!1),this.facebookUserName=c.observable(""),this.twitterActions=c.observable(!1),this.twitterLoggined=c.observable(!1),this.twitterUserName=c.observable(""),this.customThemeType=c.observable(lb.CustomThemeType.Light),this.purgeMessageBodyCacheThrottle=h.throttle(this.purgeMessageBodyCache,3e4)}function ab(){this.oRequests={}}function bb(){ab.call(this),this.oRequests={}}function cb(){this.oEmailsPicsHashes={},this.oServices={}}function db(){cb.call(this),this.oFoldersCache={},this.oFoldersNamesCache={},this.oFolderHashCache={},this.oFolderUidNextCache={},this.oMessageListHashCache={},this.oMessageFlagsCache={},this.oNewMessage={},this.oRequestedMessage={}}function eb(a){q.call(this,"settings",a),this.menu=c.observableArray([]),this.oCurrentSubScreen=null,this.oViewModelPlace=null}function fb(){q.call(this,"login",[J])}function gb(){q.call(this,"mailbox",[L,N,O,P]),this.oLastRoute={}}function hb(){eb.call(this,[M,Q,R]),nb.initOnStartOrLangChange(function(){this.sSettingsTitle=nb.i18n("TITLES/SETTINGS")},this,function(){zb.setTitle(this.sSettingsTitle)})}function ib(){o.call(this),this.oSettings=null,this.oPlugins=null,this.oLink=null,this.oLocal=null,this.isLocalAutocomplete=!0,this.popupVisibility=c.observable(!1),this.iframe=b('