1 // Copyright (c) 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
9 function setRadio(name, value) {
10 var radios = document.querySelectorAll('input[name="' + name + '"]');
11 for (var i = 0; i < radios.length; i++) {
12 radios[i].checked = (radios[i].value == value);
13 radios[i].disabled = !getEnabled();
18 document.body.className = getEnabled() ? '' : 'disabled';
21 $('title').innerText = 'High Contrast is Enabled';
22 $('toggle').innerHTML = '<b>Disable</b> ' +
23 '<span class="kb">(' + key1 + ')</span>';
24 $('subcontrols').style.display = 'block';
26 $('title').innerText = 'High Contrast is Disabled';
27 $('toggle').innerHTML = '<b>Enable</b> ' +
28 '<span class="kb">(' + key1 + ')</span>';
29 $('subcontrols').style.display = 'none';
32 setRadio('keyaction', getKeyAction());
34 setRadio('scheme', getSiteScheme(site));
35 $('make_default').disabled = (getSiteScheme(site) == getDefaultScheme());
37 setRadio('scheme', getDefaultScheme());
40 document.documentElement.setAttribute(
42 site ? 'a' + getSiteScheme(site) : 'a' + getDefaultScheme());
44 document.documentElement.setAttribute('hc', 'a0');
46 chrome.extension.getBackgroundPage().updateTabs();
50 setEnabled(!getEnabled());
59 function onRadioChange(name, value) {
69 setSiteScheme(site, value);
71 setDefaultScheme(value);
78 function onMakeDefault() {
79 setDefaultScheme(getSiteScheme(site));
83 function addRadioListeners(name) {
84 var radios = document.querySelectorAll('input[name="' + name + '"]');
85 for (var i = 0; i < radios.length; i++) {
86 radios[i].addEventListener('change', function(evt) {
87 onRadioChange(evt.target.name, evt.target.value);
89 radios[i].addEventListener('click', function(evt) {
90 onRadioChange(evt.target.name, evt.target.value);
96 var i18nElements = document.querySelectorAll('*[i18n-content]');
97 for (var i = 0; i < i18nElements.length; i++) {
98 var elem = i18nElements[i];
99 var msg = elem.getAttribute('i18n-content');
100 elem.innerHTML = chrome.i18n.getMessage(msg);
103 addRadioListeners('keyaction');
104 addRadioListeners('apply');
105 addRadioListeners('scheme');
106 $('toggle').addEventListener('click', onToggle, false);
107 $('make_default').addEventListener('click', onMakeDefault, false);
108 $('forget').addEventListener('click', onForget, false);
109 if (navigator.appVersion.indexOf('Mac') != -1) {
110 key1 = '⌘+Shift+F11';
111 key2 = '⌘+Shift+F12';
117 chrome.windows.getLastFocused({'populate': true}, function(window) {
118 for (var i = 0; i < window.tabs.length; i++) {
119 var tab = window.tabs[i];
121 if (isDisallowedUrl(tab.url)) {
122 $('scheme_title').innerText = 'Default color scheme:';
123 $('make_default').style.display = 'none';
125 site = siteFromUrl(tab.url);
126 $('scheme_title').innerHTML = 'Color scheme for <b>' + site +
127 '</b>:<br><span class="kb">(' + key2 + ')</span>';
128 $('make_default').style.display = 'block';
134 site = 'unknown site';
139 window.addEventListener('load', init, false);