172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen// Use of this source code is governed by a BSD-style license that can be
321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen// found in the LICENSE file.
421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenvar AddLanguageOverlay = options.AddLanguageOverlay;
621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvar AdvancedOptions = options.AdvancedOptions;
721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvar AlertOverlay = options.AlertOverlay;
8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvar AutofillEditAddressOverlay = options.AutofillEditAddressOverlay;
9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvar AutofillEditCreditCardOverlay = options.AutofillEditCreditCardOverlay;
10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvar AutofillOptions = options.AutofillOptions;
1121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvar BrowserOptions = options.BrowserOptions;
1221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvar ClearBrowserDataOverlay = options.ClearBrowserDataOverlay;
1321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvar ContentSettings = options.ContentSettings;
1421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvar ContentSettingsExceptionsArea =
1521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    options.contentSettings.ContentSettingsExceptionsArea;
1621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvar CookiesView = options.CookiesView;
1721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvar FontSettings = options.FontSettings;
1821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvar ImportDataOverlay = options.ImportDataOverlay;
1921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvar InstantConfirmOverlay = options.InstantConfirmOverlay;
2072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenvar LanguageOptions = options.LanguageOptions;
2121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvar OptionsPage = options.OptionsPage;
2221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvar PasswordManager = options.PasswordManager;
2321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvar PersonalOptions = options.PersonalOptions;
2421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvar Preferences = options.Preferences;
2521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvar ProxyOptions = options.ProxyOptions;
2621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvar SearchEngineManager = options.SearchEngineManager;
2721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvar SearchPage = options.SearchPage;
28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvar SyncSetupOverlay = options.SyncSetupOverlay;
2921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
3021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen/**
3121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen * DOMContentLoaded handler, sets up the page.
3221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen */
3321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenfunction load() {
3421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  // Decorate the existing elements in the document.
3521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  cr.ui.decorate('input[pref][type=checkbox]', options.PrefCheckbox);
3621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  cr.ui.decorate('input[pref][type=number]', options.PrefNumber);
3721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  cr.ui.decorate('input[pref][type=radio]', options.PrefRadio);
3821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  cr.ui.decorate('input[pref][type=range]', options.PrefRange);
3921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  cr.ui.decorate('select[pref]', options.PrefSelect);
4021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  cr.ui.decorate('input[pref][type=text]', options.PrefTextField);
4121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  cr.ui.decorate('input[pref][type=url]', options.PrefTextField);
423f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen  cr.ui.decorate('#content-settings-page input[type=radio]',
4321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      options.ContentSettingsRadio);
4421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
4521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  var menuOffPattern = /(^\?|&)menu=off($|&)/;
4621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  var menuDisabled = menuOffPattern.test(window.location.search);
47dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  // document.documentElement.setAttribute('hide-menu', menuDisabled);
48dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  // We can't use an attribute on the html element because of webkit bug
49dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  // 12519. Instead, we add a class.
50dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  if (menuDisabled)
51dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen    document.documentElement.classList.add('hide-menu');
5221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
5321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  localStrings = new LocalStrings();
5421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
5521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  OptionsPage.register(SearchPage.getInstance());
5621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
5721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  OptionsPage.register(BrowserOptions.getInstance());
5821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  OptionsPage.registerSubPage(SearchEngineManager.getInstance(),
5921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                              BrowserOptions.getInstance(),
6021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                              [$('defaultSearchManageEnginesButton')]);
6121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  OptionsPage.register(PersonalOptions.getInstance());
62ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  OptionsPage.registerSubPage(AutofillOptions.getInstance(),
6321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                              PersonalOptions.getInstance(),
6421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                              [$('autofill-settings')]);
6521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  OptionsPage.registerSubPage(PasswordManager.getInstance(),
6621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                              PersonalOptions.getInstance(),
6721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                              [$('manage-passwords')]);
6821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  if (cr.isChromeOS) {
6921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    OptionsPage.register(SystemOptions.getInstance());
7021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    OptionsPage.registerSubPage(AboutPage.getInstance(),
7121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                                SystemOptions.getInstance());
7221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    OptionsPage.registerSubPage(LanguageOptions.getInstance(),
7321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                                SystemOptions.getInstance(),
7421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                                [$('language-button')]);
7521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    OptionsPage.registerSubPage(
7621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen        new OptionsPage('languageChewing',
7772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                        templateData.languageChewingPageTabTitle,
7821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                        'languageChewingPage'),
7972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        LanguageOptions.getInstance());
8021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    OptionsPage.registerSubPage(
8121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen        new OptionsPage('languageHangul',
8272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                        templateData.languageHangulPageTabTitle,
8321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                        'languageHangulPage'),
8472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        LanguageOptions.getInstance());
8521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    OptionsPage.registerSubPage(
8621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen        new OptionsPage('languageMozc',
8772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                        templateData.languageMozcPageTabTitle,
8821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                        'languageMozcPage'),
8972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        LanguageOptions.getInstance());
9021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    OptionsPage.registerSubPage(
9121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen        new OptionsPage('languagePinyin',
9272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                        templateData.languagePinyinPageTabTitle,
9321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                        'languagePinyinPage'),
9472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        LanguageOptions.getInstance());
9521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    OptionsPage.register(InternetOptions.getInstance());
9621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  }
9721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  OptionsPage.register(AdvancedOptions.getInstance());
9821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  OptionsPage.registerSubPage(ContentSettings.getInstance(),
9921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                              AdvancedOptions.getInstance(),
10021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                              [$('privacyContentSettingsButton')]);
10121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  OptionsPage.registerSubPage(ContentSettingsExceptionsArea.getInstance(),
10221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                              ContentSettings.getInstance());
10321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  OptionsPage.registerSubPage(CookiesView.getInstance(),
10421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                              ContentSettings.getInstance(),
10521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                              [$('privacyContentSettingsButton'),
10621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                               $('show-cookies-button')]);
10721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  OptionsPage.registerSubPage(FontSettings.getInstance(),
10821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                              AdvancedOptions.getInstance(),
10921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                              [$('fontSettingsCustomizeFontsButton')]);
11072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (!cr.isChromeOS) {
11172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    OptionsPage.registerSubPage(LanguageOptions.getInstance(),
11272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                                AdvancedOptions.getInstance(),
11372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                                [$('language-button')]);
11472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  }
11521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  if (!cr.isWindows && !cr.isMac) {
11621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    OptionsPage.registerSubPage(CertificateManager.getInstance(),
11721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                                AdvancedOptions.getInstance(),
11821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                                [$('show-cookies-button')]);
11972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    OptionsPage.registerOverlay(CertificateRestoreOverlay.getInstance(),
12072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                                CertificateManager.getInstance());
12172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    OptionsPage.registerOverlay(CertificateBackupOverlay.getInstance(),
12272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                                CertificateManager.getInstance());
12372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    OptionsPage.registerOverlay(CertificateEditCaTrustOverlay.getInstance(),
12472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                                CertificateManager.getInstance());
12572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    OptionsPage.registerOverlay(CertificateImportErrorOverlay.getInstance(),
12672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                                CertificateManager.getInstance());
12721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  }
12872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  OptionsPage.registerOverlay(AddLanguageOverlay.getInstance(),
12972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                              LanguageOptions.getInstance());
13021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  OptionsPage.registerOverlay(AlertOverlay.getInstance());
131ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  OptionsPage.registerOverlay(AutofillEditAddressOverlay.getInstance(),
132ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                              AutofillOptions.getInstance());
133ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  OptionsPage.registerOverlay(AutofillEditCreditCardOverlay.getInstance(),
134ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                              AutofillOptions.getInstance());
13521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  OptionsPage.registerOverlay(ClearBrowserDataOverlay.getInstance(),
13672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                              AdvancedOptions.getInstance(),
13721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                              [$('privacyClearDataButton')]);
13872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  OptionsPage.registerOverlay(ImportDataOverlay.getInstance(),
13972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                              PersonalOptions.getInstance());
14072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  OptionsPage.registerOverlay(InstantConfirmOverlay.getInstance(),
14172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                              BrowserOptions.getInstance());
142ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  OptionsPage.registerOverlay(SyncSetupOverlay.getInstance(),
143ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                              PersonalOptions.getInstance());
14421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
14521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  if (cr.isChromeOS) {
14621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    OptionsPage.register(AccountsOptions.getInstance());
14721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    OptionsPage.registerSubPage(ProxyOptions.getInstance(),
14821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                                AdvancedOptions.getInstance(),
14921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                                [$('proxiesConfigureButton')]);
150ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    OptionsPage.registerSubPage(ChangePictureOptions.getInstance(),
151ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                                PersonalOptions.getInstance(),
152ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                                [$('change-picture-button')]);
15321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    OptionsPage.registerOverlay(new OptionsPage('detailsInternetPage',
15421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                                                'detailsInternetPage',
15572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                                                'detailsInternetPage'),
15672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                                InternetOptions.getInstance());
15721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
15821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    var languageModifierKeysOverlay = new OptionsPage(
15921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen        'languageCustomizeModifierKeysOverlay',
16021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen        localStrings.getString('languageCustomizeModifierKeysOverlay'),
16121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen        'languageCustomizeModifierKeysOverlay')
16221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    OptionsPage.registerOverlay(languageModifierKeysOverlay,
16372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                                SystemOptions.getInstance(),
16421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                                [$('modifier-keys-button')]);
16521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  }
16621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
16721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  Preferences.getInstance().initialize();
16821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  OptionsPage.initialize();
16921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
17021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  var path = document.location.pathname;
17121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
17221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  if (path.length > 1) {
17321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    var pageName = path.slice(1);
17472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    // Show page, but don't update history (there's already an entry for it).
17572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    OptionsPage.showPageByName(pageName, false);
17621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  } else {
17772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    OptionsPage.showDefaultPage();
17821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  }
17921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
18021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  var subpagesNavTabs = document.querySelectorAll('.subpages-nav-tabs');
18121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  for(var i = 0; i < subpagesNavTabs.length; i++) {
18221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    subpagesNavTabs[i].onclick = function(event) {
18321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      OptionsPage.showTab(event.srcElement);
18421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    }
18521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  }
18621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
18721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  // Allow platform specific CSS rules.
18821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  if (cr.isMac)
18921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    document.documentElement.setAttribute('os', 'mac');
19072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (cr.isWindows)
19172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    document.documentElement.setAttribute('os', 'windows');
19272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (cr.isChromeOS)
19372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    document.documentElement.setAttribute('os', 'chromeos');
19472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (cr.isLinux) {
19572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    document.documentElement.setAttribute('os', 'linux');
19621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    document.documentElement.setAttribute('toolkit', 'gtk');
19772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  }
19821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  if (cr.isViews)
19921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    document.documentElement.setAttribute('toolkit', 'views');
200ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  if (navigator.plugins['Shockwave Flash'])
201ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    document.documentElement.setAttribute('hasFlashPlugin', '');
20272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
20372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // Clicking on the Settings title brings up the 'Basics' page.
20472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  $('settings-title').onclick = function() {
20572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    OptionsPage.navigateToPage(BrowserOptions.getInstance().name);
20672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  };
20721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}
20821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
20921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsendocument.addEventListener('DOMContentLoaded', load);
21021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
21121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenwindow.onpopstate = function(e) {
21221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  options.OptionsPage.setState(e.state);
21321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen};
214ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
215ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenwindow.onbeforeunload = function() {
216ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  options.OptionsPage.willClose();
217ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen};
218