Disable view source for Developer Tools.
[chromium-blink-merge.git] / chrome / common / extensions / docs / static / js / popup.js
blobea5d9f8ea990fbd073bf6883d210d2d15a2ac5dd
1 // Copyright 2013 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.
5 (function() {
7 // A simple popup manager.
8 var activePopup = null;
10 function init() {
11   // Set up the buttons to toggle the popup.
12   Array.prototype.forEach.call(document.getElementsByTagName('button'),
13                                function(button) {
14     var popupId = button.getAttribute('data-menu');
15     if (popupId == null)
16       return;
17     var popup = document.getElementById(popupId);
18     if (popup == null)
19       throw new Error('No element with id "' + popupId + '" for popup');
20     button.addEventListener('click', function(event) {
21       toggle(popup);
22       event.stopPropagation();
23     });
24   });
25   // Make clicking anywhere else or pressing escape on the page hide the popup.
26   document.body.addEventListener('click', function() {
27     hideActive();
28   });
29   document.body.addEventListener('keydown', function(event) {
30     if (event.keyCode == 27)
31       hideActive();
32   });
35 function toggle(popup) {
36   if (hideActive() == popup)
37     return;
38   popup.style.display = 'block';
39   activePopup = popup;
42 function hideActive() {
43   if (activePopup == null)
44     return;
45   activePopup.style.display = ''
46   var wasActive = activePopup;
47   activePopup = null;
48   return wasActive;
51 init();
53 }());