personal_options.js revision 4a5e2dc747d50c653511c68ccb2cfbfb740bd5a7
1b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine// Use of this source code is governed by a BSD-style license that can be
3b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine// found in the LICENSE file.
4b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine
5b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkinecr.define('options', function() {
6b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine
7b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine  var OptionsPage = options.OptionsPage;
8b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine
9b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine  // State variables.
10b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine  var syncEnabled = false;
11b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine  var syncSetupCompleted = false;
12b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine
13b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine  //
14b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine  // PersonalOptions class
15b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine  // Encapsulated handling of personal options page.
16b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine  //
17b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine  function PersonalOptions() {
18b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    OptionsPage.call(this, 'personal', templateData.personalPage,
19b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine                     'personalPage');
20b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine  }
21b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine
22b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine  cr.addSingletonGetter(PersonalOptions);
23b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine
24b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine  PersonalOptions.prototype = {
255467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine    // Inherit PersonalOptions from OptionsPage.
265467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine    __proto__: options.OptionsPage.prototype,
27b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine
28b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    // Initialize PersonalOptions page.
29b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    initializePage: function() {
30b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine      // Call base class implementation to starts preference initialization.
31b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine      OptionsPage.prototype.initializePage.call(this);
325467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine
335467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine      var self = this;
345467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine      $('customize-sync').onclick = function(event) {
355467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine        OptionsPage.showPageByName('sync');
365467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine      };
372a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine      $('sync-action-link').onclick = function(event) {
385467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine        chrome.send('showSyncLoginDialog');
395467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine      };
402a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine      $('start-stop-sync').onclick = function(event) {
412a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine        if (self.syncSetupCompleted)
422a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine          self.showStopSyncingOverlay_();
432a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine        else
442a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine          chrome.send('showSyncLoginDialog');
452a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine      };
46b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine      $('privacy-dashboard-link').onclick = function(event) {
47366396d9b001c7a1abf2b73161a9b7b05e9022ecChristine Chen        chrome.send('openPrivacyDashboardTabAndActivate');
48366396d9b001c7a1abf2b73161a9b7b05e9022ecChristine Chen      };
4912c0b21abeea8f07cdcab3bf9a79b0791590f537Christine Chen      $('showpasswords').onclick = function(event) {
5012c0b21abeea8f07cdcab3bf9a79b0791590f537Christine Chen        PasswordsExceptions.load();
5112c0b21abeea8f07cdcab3bf9a79b0791590f537Christine Chen        OptionsPage.showPageByName('passwordsExceptions');
5212c0b21abeea8f07cdcab3bf9a79b0791590f537Christine Chen        OptionsPage.showTab($('passwords-nav-tab'));
5312c0b21abeea8f07cdcab3bf9a79b0791590f537Christine Chen        chrome.send('coreOptionsUserMetricsAction',
54b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine            ['Options_ShowPasswordsExceptions']);
55b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine      };
56b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine      $('autofill_options').onclick = function(event) {
57b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine        OptionsPage.showPageByName('autoFillOptions');
58b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine        chrome.send('coreOptionsUserMetricsAction',
59b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine            ['Options_ShowAutoFillSettings']);
60b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine      };
61b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine
62b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine      if (!cr.isChromeOS) {
63b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine        $('import_data').onclick = function(event) {
645467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine          OptionsPage.showOverlay('importDataOverlay');
65b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine          chrome.send('coreOptionsUserMetricsAction', ['Import_ShowDlg']);
66629719e390ce66be822c3563bbd248ce15eaae7bSteve Block        };
67b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine      }
685467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine
695467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine      if (!cr.isChromeOS && navigator.platform.match(/linux|BSD/i)) {
705a622cba8c5287d5e6577f940a22343a7cae977fSteve Block        $('themes_GTK_button').onclick = function(event) {
71b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine          chrome.send('themesSetGTK');
72b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine        };
735467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine        $('themes_set_classic').onclick = function(event) {
746aff44c27ee487bd65d5a1c74faf4b7165530bd4Steve Block          chrome.send('themesReset');
75b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine        };
76b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine      }
77b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine
7849842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine      if (cr.isMac || cr.isWindows || cr.isChromeOS) {
795467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine        $('themes_reset').onclick = function(event) {
80b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine          chrome.send('themesReset');
81b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine        };
82b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine      }
83b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine
845467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine      if (cr.isChromeOS) {
85b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine        chrome.send('loadAccountPicture');
86629719e390ce66be822c3563bbd248ce15eaae7bSteve Block      }
87b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    },
885467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine
895467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine    showStopSyncingOverlay_: function(event) {
906aff44c27ee487bd65d5a1c74faf4b7165530bd4Steve Block      AlertOverlay.show(
91b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine          localStrings.getString('stop_syncing_title'),
92b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine          localStrings.getString('stop_syncing_explanation'),
9349842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine          localStrings.getString('stop_syncing_confirm_button_label'),
945a622cba8c5287d5e6577f940a22343a7cae977fSteve Block          undefined,
95b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine          function() { chrome.send('stopSyncing'); });
96b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    },
97b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine
9849842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine    setElementVisible_: function(element, visible) {
995467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine      if (visible)
100b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine        element.classList.remove('hidden');
101b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine      else
102b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine        element.classList.add('hidden');
103b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    },
10449842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine
10549842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine    setElementClassSyncError_: function(element, visible) {
10649842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine      visible ? element.classList.add('sync-error') :
107b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine                element.classList.remove('sync-error');
108629719e390ce66be822c3563bbd248ce15eaae7bSteve Block    },
109b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine
11049842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine    setSyncEnabled_: function(enabled) {
1115467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine      this.syncEnabled = enabled;
1125a622cba8c5287d5e6577f940a22343a7cae977fSteve Block    },
113b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine
114b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    setSyncSetupCompleted_: function(completed) {
11549842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine      this.syncSetupCompleted = completed;
1165a622cba8c5287d5e6577f940a22343a7cae977fSteve Block    },
11749842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine
118b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    setAccountPicture_: function(image) {
119b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine      $('account-picture').src = image;
12049842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine    },
12149842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine
12249842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine    setSyncStatus_: function(status) {
12349842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine      $('sync-status').textContent = status;
1242a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine    },
1252a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine
1262a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine    setSyncStatusErrorVisible_: function(visible) {
12768ec4ac828762745155be9662285d2174a7eff1eVladimir Chtchetkine      this.setElementClassSyncError_($('sync-status'), visible);
12868ec4ac828762745155be9662285d2174a7eff1eVladimir Chtchetkine    },
12968ec4ac828762745155be9662285d2174a7eff1eVladimir Chtchetkine
13068ec4ac828762745155be9662285d2174a7eff1eVladimir Chtchetkine    setSyncActionLinkErrorVisible_: function(visible) {
13168ec4ac828762745155be9662285d2174a7eff1eVladimir Chtchetkine      this.setElementClassSyncError_($('sync-action-link'), visible);
13268ec4ac828762745155be9662285d2174a7eff1eVladimir Chtchetkine    },
13368ec4ac828762745155be9662285d2174a7eff1eVladimir Chtchetkine
1342a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine    setSyncActionLinkEnabled_: function(enabled) {
1352a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine      $('sync-action-link').disabled = !enabled;
1362a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine    },
1372a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine
1382a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine    setSyncActionLinkLabel_: function(status) {
1392a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine      $('sync-action-link').textContent = status;
1402a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine
1412a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine      // link-button does is not zero-area when the contents of the button are
1422a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine      // empty, so explicitly hide the element.
1432a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine      this.setElementVisible_($('sync-action-link'), status.length != 0);
1442a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine    },
1452a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine
1462a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine    setStartStopButtonVisible_: function(visible) {
1472a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine      this.setElementVisible_($('start-stop-sync'), visible);
1482a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine    },
1492a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine
1502a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine    setStartStopButtonEnabled_: function(enabled) {
1512a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine      $('start-stop-sync').disabled = !enabled;
1522a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine    },
1532a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine
1542a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine    setStartStopButtonLabel_: function(label) {
1552a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine      $('start-stop-sync').textContent = label;
1562a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine    },
1575a622cba8c5287d5e6577f940a22343a7cae977fSteve Block
1582a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine    setCustomizeButtonVisible_: function(visible) {
1592a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine      this.setElementVisible_($('customize-sync'), visible);
1602a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine    },
1612a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine
1622a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine    setCustomizeButtonEnabled_: function(enabled) {
16349842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine      $('customize-sync').disabled = !enabled;
16449842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine    },
1655a622cba8c5287d5e6577f940a22343a7cae977fSteve Block
166b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    setCustomizeButtonLabel_: function(label) {
167b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine      $('customize-sync').textContent = label;
16849842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine    },
169b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine
170b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    setGtkThemeButtonEnabled_: function(enabled) {
1715467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine      if (!cr.isChromeOS && navigator.platform.match(/linux|BSD/i)) {
172b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine        $('themes_GTK_button').disabled = !enabled;
173629719e390ce66be822c3563bbd248ce15eaae7bSteve Block      }
174b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    },
17549842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine
17649842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine    setClassicThemeButtonEnabled_: function(enabled) {
1776aff44c27ee487bd65d5a1c74faf4b7165530bd4Steve Block      if (!cr.isChromeOS && navigator.platform.match(/linux|BSD/i)) {
178b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine        $('themes_set_classic').disabled = !enabled;
179b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine      }
180b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    },
1812a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine
18249842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine    hideSyncSection_: function() {
18349842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine      this.setElementVisible_($('sync-section'), false);
184b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    },
18549842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine  };
186b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine
187b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine  // Forward public APIs to private implementations.
188b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine  [
189b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    'setSyncEnabled',
190b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    'setSyncSetupCompleted',
191b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    'setAccountPicture',
1925467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine    'setSyncStatus',
193b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    'setSyncStatusErrorVisible',
194b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    'setSyncActionLinkErrorVisible',
195b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    'setSyncActionLinkEnabled',
1965467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine    'setSyncActionLinkLabel',
197b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    'setStartStopButtonVisible',
198629719e390ce66be822c3563bbd248ce15eaae7bSteve Block    'setStartStopButtonEnabled',
199b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    'setStartStopButtonLabel',
200b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    'setCustomizeButtonVisible',
201b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    'setCustomizeButtonEnabled',
202b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    'setCustomizeButtonLabel',
20349842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine    'setGtkThemeButtonEnabled',
204b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    'setClassicThemeButtonEnabled',
205b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    'hideSyncSection',
206b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine  ].forEach(function(name) {
207b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine    PersonalOptions[name] = function(value) {
2082a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine      PersonalOptions.getInstance()[name + '_'](value);
2092a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine    };
2102a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine  });
2112a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine
2122a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine  // Export
2132a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine  return {
2142a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine    PersonalOptions: PersonalOptions
2152a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine  };
2162a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine
2172a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine});
2182a532ee388828120a5a11fba0087a1ed2539a159Vladimir Chtchetkine