172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
53345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickcr.define('options', function() {
63345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickvar OptionsPage = options.OptionsPage;
83345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
93345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  //
103345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  // AdvancedOptions class
113345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  // Encapsulated handling of advanced options page.
123345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  //
133345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  function AdvancedOptions() {
1472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    OptionsPage.call(this, 'advanced', templateData.advancedPageTabTitle,
153345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick                     'advancedPage');
163345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  }
173345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
183345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  cr.addSingletonGetter(AdvancedOptions);
193345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
203345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  AdvancedOptions.prototype = {
213345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    // Inherit AdvancedOptions from OptionsPage.
223345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    __proto__: options.OptionsPage.prototype,
233345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
243345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    /**
253345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick     * Initializes the page.
263345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick     */
273345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    initializePage: function() {
283345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      // Call base class implementation to starts preference initialization.
293345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      OptionsPage.prototype.initializePage.call(this);
303345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
314a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      // Set up click handlers for buttons.
323345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      $('privacyContentSettingsButton').onclick = function(event) {
3372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        OptionsPage.navigateToPage('content');
343345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        OptionsPage.showTab($('cookies-nav-tab'));
353345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        chrome.send('coreOptionsUserMetricsAction',
363345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick            ['Options_ContentSettings']);
373345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      };
383345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      $('privacyClearDataButton').onclick = function(event) {
3972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        OptionsPage.navigateToPage('clearBrowserData');
403345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        chrome.send('coreOptionsUserMetricsAction', ['Options_ClearData']);
413345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      };
42731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
433345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      // 'metricsReportingEnabled' element is only present on Chrome branded
443345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      // builds.
453345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      if ($('metricsReportingEnabled')) {
463345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        $('metricsReportingEnabled').onclick = function(event) {
473345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick          chrome.send('metricsReportingCheckboxAction',
483345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick              [String(event.target.checked)]);
493345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        };
503345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      }
51731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
5272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      if (!cr.isChromeOS) {
5372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        $('autoOpenFileTypesResetToDefault').onclick = function(event) {
5472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen          chrome.send('autoOpenFileTypesAction');
5572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        };
5672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      }
5772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
58201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch      $('fontSettingsCustomizeFontsButton').onclick = function(event) {
59dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen        OptionsPage.navigateToPage('fonts');
603345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        chrome.send('coreOptionsUserMetricsAction', ['Options_FontSettings']);
61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      };
6221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      $('defaultFontSize').onchange = function(event) {
6321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen        chrome.send('defaultFontSizeAction',
6421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen            [String(event.target.options[event.target.selectedIndex].value)]);
6521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      };
6672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      $('language-button').onclick = function(event) {
67dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen        OptionsPage.navigateToPage('languages');
6872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        chrome.send('coreOptionsUserMetricsAction',
6972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen            ['Options_LanuageAndSpellCheckSettings']);
7072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      };
71731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
723345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      if (cr.isWindows || cr.isMac) {
733345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        $('certificatesManageButton').onclick = function(event) {
743345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick          chrome.send('showManageSSLCertificates');
753345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        };
763345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      } else {
773345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        $('certificatesManageButton').onclick = function(event) {
78dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen          OptionsPage.navigateToPage('certificates');
793345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick          OptionsPage.showTab($('personal-certs-nav-tab'));
803345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick          chrome.send('coreOptionsUserMetricsAction',
813345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick                      ['Options_ManageSSLCertificates']);
823345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        };
833345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      }
84731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
853345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      if (!cr.isChromeOS) {
863345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        $('proxiesConfigureButton').onclick = function(event) {
873345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick          chrome.send('showNetworkProxySettings');
883345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        };
8921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen        $('downloadLocationChangeButton').onclick = function(event) {
903345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick          chrome.send('selectDownloadLocation');
913345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        };
92dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen        $('promptForDownload').onclick = function(event) {
93dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen          chrome.send('promptForDownloadAction',
94dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen              [String($('promptForDownload').checked)]);
95dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen        };
963345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      } else {
973345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        $('proxiesConfigureButton').onclick = function(event) {
9872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen          OptionsPage.navigateToPage('proxy');
993345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick          chrome.send('coreOptionsUserMetricsAction',
1003345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick              ['Options_ShowProxySettings']);
1013345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick        };
1023345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      }
1033345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
104ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('sslCheckRevocation').onclick = function(event) {
105ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        chrome.send('checkRevocationCheckboxAction',
106ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen            [String($('sslCheckRevocation').checked)]);
107ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      };
108ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('sslUseSSL3').onclick = function(event) {
109ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        chrome.send('useSSL3CheckboxAction',
110ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen            [String($('sslUseSSL3').checked)]);
111ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      };
112ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('sslUseTLS1').onclick = function(event) {
113ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        chrome.send('useTLS1CheckboxAction',
114ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen            [String($('sslUseTLS1').checked)]);
115ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      };
116731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
117731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      // 'cloudPrintProxyEnabled' is true for Chrome branded builds on
118731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      // certain platforms, or could be enabled by a lab.
119dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen      if (!cr.isChromeOS) {
120731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        $('cloudPrintProxySetupButton').onclick = function(event) {
121731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick          if ($('cloudPrintProxyManageButton').style.display == 'none') {
122731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick            // Disable the button, set it's text to the intermediate state.
123731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick            $('cloudPrintProxySetupButton').textContent =
124731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick              localStrings.getString('cloudPrintProxyEnablingButton');
125731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick            $('cloudPrintProxySetupButton').disabled = true;
126731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick            chrome.send('showCloudPrintSetupDialog');
127731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick          } else {
128731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick            chrome.send('disableCloudPrintProxy');
129731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick          }
130731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        };
131731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        $('cloudPrintProxyManageButton').onclick = function(event) {
132731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick          chrome.send('showCloudPrintManagePage');
133731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        };
134731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      }
1353f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen
13672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      if ($('remotingSetupButton')) {
13772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen          $('remotingSetupButton').onclick = function(event) {
13872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen              chrome.send('showRemotingSetupDialog');
13972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen          }
14072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen          $('remotingStopButton').onclick = function(event) {
14172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen              chrome.send('disableRemoting');
14272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen          }
1433f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen      }
14472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  }
1453345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  };
1463345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
1473345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  //
1483345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  // Chrome callbacks
1493345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  //
1503345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
1513345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  // Set the checked state of the metrics reporting checkbox.
15221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  AdvancedOptions.SetMetricsReportingCheckboxState = function(
15321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      checked, disabled) {
1543345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    $('metricsReportingEnabled').checked = checked;
1553345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    $('metricsReportingEnabled').disabled = disabled;
15621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    if (disabled)
15721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      $('metricsReportingEnabledText').className = 'disable-services-span';
158c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  }
1593345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
160513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  AdvancedOptions.SetMetricsReportingSettingVisibility = function(visible) {
161513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch    if (visible) {
162513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch      $('metricsReportingSetting').style.display = 'block';
163513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch    } else {
164513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch      $('metricsReportingSetting').style.display = 'none';
165513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch    }
166513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  }
167513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
16821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  // Set the font size selected item.
169ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  AdvancedOptions.SetFontSize = function(font_size_value) {
17021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    var selectCtl = $('defaultFontSize');
171ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    for (var i = 0; i < selectCtl.options.length; i++) {
172ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      if (selectCtl.options[i].value == font_size_value) {
173ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        selectCtl.selectedIndex = i;
174ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        if ($('Custom'))
175ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          selectCtl.remove($('Custom').index);
176ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        return;
17721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      }
17821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    }
17921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
18021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    // Add/Select Custom Option in the font size label list.
18121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    if (!$('Custom')) {
18221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      var option = new Option(localStrings.getString('fontSizeLabelCustom'),
18321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                              -1, false, true);
18421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      option.setAttribute("id", "Custom");
18521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      selectCtl.add(option);
18621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    }
18721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    $('Custom').selected = true;
18821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  };
18921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
1903345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  // Set the download path.
191dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  AdvancedOptions.SetDownloadLocationPath = function(path, disabled) {
192ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    if (!cr.isChromeOS) {
1933345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      $('downloadLocationPath').value = path;
194dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen      $('downloadLocationChangeButton').disabled = disabled;
195ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    }
196dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  };
197dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen
198dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  // Set the prompt for download checkbox.
199dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  AdvancedOptions.SetPromptForDownload = function(checked, disabled) {
200ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    if (!cr.isChromeOS) {
201ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('promptForDownload').checked = checked;
202ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('promptForDownload').disabled = disabled;
203ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      if (disabled)
204ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        $('promptForDownloadLabel').className = 'informational-text';
205ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      else
206ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        $('promptForDownloadLabel').className = '';
207ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    }
2083345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  };
2093345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
2103345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  // Set the enabled state for the autoOpenFileTypesResetToDefault button.
2113345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  AdvancedOptions.SetAutoOpenFileTypesDisabledAttribute = function(disabled) {
21272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    if (!cr.isChromeOS) {
21372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      $('autoOpenFileTypesResetToDefault').disabled = disabled;
21472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
21572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      if (disabled)
21672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        $('auto-open-file-types-label').classList.add('disabled');
21772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      else
21872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        $('auto-open-file-types-label').classList.remove('disabled');
21972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    }
2203345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  };
2213345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
2223345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  // Set the enabled state for the proxy settings button.
2233345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  AdvancedOptions.SetupProxySettingsSection = function(disabled, label) {
2243345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    $('proxiesConfigureButton').disabled = disabled;
2253345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    $('proxiesLabel').textContent = label;
2263345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  };
2273345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
2283345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  // Set the checked state for the sslCheckRevocation checkbox.
22921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  AdvancedOptions.SetCheckRevocationCheckboxState = function(
23021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      checked, disabled) {
2313345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    $('sslCheckRevocation').checked = checked;
232731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    $('sslCheckRevocation').disabled = disabled;
2333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  };
2343345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
235731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // Set the checked state for the sslUseSSL3 checkbox.
236731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  AdvancedOptions.SetUseSSL3CheckboxState = function(checked, disabled) {
237731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    $('sslUseSSL3').checked = checked;
238731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    $('sslUseSSL3').disabled = disabled;
239731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  };
240731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
241731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // Set the checked state for the sslUseTLS1 checkbox.
242731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  AdvancedOptions.SetUseTLS1CheckboxState = function(checked, disabled) {
243731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    $('sslUseTLS1').checked = checked;
244731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    $('sslUseTLS1').disabled = disabled;
245731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  };
246731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
247731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // Set the Cloud Print proxy UI to enabled, disabled, or processing.
24872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  AdvancedOptions.SetupCloudPrintProxySection = function(
24972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        disabled, label, allowed) {
250731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    if (!cr.isChromeOS) {
251731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      $('cloudPrintProxyLabel').textContent = label;
25272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      if (disabled || !allowed) {
253731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        $('cloudPrintProxySetupButton').textContent =
254731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick          localStrings.getString('cloudPrintProxyDisabledButton');
255731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        $('cloudPrintProxyManageButton').style.display = 'none';
256731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      } else {
257731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        $('cloudPrintProxySetupButton').textContent =
258731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick          localStrings.getString('cloudPrintProxyEnabledButton');
259731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        $('cloudPrintProxyManageButton').style.display = 'inline';
260731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      }
26172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      $('cloudPrintProxySetupButton').disabled = !allowed;
262731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    }
2633345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  };
2643345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
2653f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen  AdvancedOptions.RemoveCloudPrintProxySection = function() {
266513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch    if (!cr.isChromeOS) {
2673f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen      var proxySectionElm = $('cloud-print-proxy-section');
26872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      if (proxySectionElm)
26972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen        proxySectionElm.parentNode.removeChild(proxySectionElm);
27072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    }
27172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  };
27272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
27372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  AdvancedOptions.SetRemotingStatus = function(enabled, status) {
27472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    if (enabled) {
27572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      $('remotingSetupButton').style.display = 'none';
27672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      $('remotingStopButton').style.display = 'inline';
27772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    } else {
27872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      $('remotingSetupButton').style.display = 'inline';
27972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      $('remotingStopButton').style.display = 'none';
280513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch    }
28172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    $('remotingStatus').textContent = status;
282513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  };
283513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
2843f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen  AdvancedOptions.RemoveRemotingSection = function() {
2853f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen    var proxySectionElm = $('remoting-section');
28672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    if (proxySectionElm)
28772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      proxySectionElm.parentNode.removeChild(proxySectionElm);
2883f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen  };
2893f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen
2903345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  // Export
2913345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  return {
2923345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    AdvancedOptions: AdvancedOptions
2933345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  };
2943345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
2953345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick});
296