| OLD | NEW | 
|---|
| 1 "use strict"; | 1 "use strict"; | 
| 2 | 2 | 
| 3 (function() | 3 (function() | 
| 4 { | 4 { | 
| 5   function escapeRegExp(string) | 5   function escapeRegExp(string) | 
| 6   { | 6   { | 
| 7     return string.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); | 7     return string.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); | 
| 8   } | 8   } | 
| 9 | 9 | 
| 10   function hasClass(element, className) | 10   function hasClass(element, className) | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
| 40   { | 40   { | 
| 41     if (typeof window.event !== "undefined" | 41     if (typeof window.event !== "undefined" | 
| 42         && typeof window.event.cancelBubble !== "undefined") | 42         && typeof window.event.cancelBubble !== "undefined") | 
| 43       window.event.cancelBubble = true; | 43       window.event.cancelBubble = true; | 
| 44     else | 44     else | 
| 45       event.stopPropagation(); | 45       event.stopPropagation(); | 
| 46   } | 46   } | 
| 47 | 47 | 
| 48   function initLanguageSelection() | 48   function initLanguageSelection() | 
| 49   { | 49   { | 
| 50     var language = document.getElementById("language"); | 50     var locale = document.getElementById("navbar-locale-selected"); | 
| 51 | 51 | 
| 52     // skip if page does not have language selection (EG: blog) | 52     // skip if page does not have language selection (EG: blog) | 
| 53     if (!language) | 53     if (!locale) | 
| 54       return; | 54       return; | 
| 55 | 55 | 
| 56     var languageSelection = language.getElementsByTagName("ul")[0]; | 56     locale.onclick = function() | 
| 57 |  | 
| 58     document.documentElement.onclick = function() |  | 
| 59     { | 57     { | 
| 60       removeClass(languageSelection, "visible"); | 58       toggleClass(document.getElementById("navbar-locale-menu"), "visible"); | 
| 61     }; |  | 
| 62 |  | 
| 63     language.onclick = function(event) |  | 
| 64     { |  | 
| 65       if (hasClass(languageSelection, "visible")) |  | 
| 66         return; |  | 
| 67 |  | 
| 68       addClass(languageSelection, "visible"); |  | 
| 69       stopPropagation(event); |  | 
| 70     }; | 59     }; | 
| 71   } | 60   } | 
| 72 | 61 | 
| 73   function navigationClick(event) | 62   function navigationClick(event) | 
| 74   { | 63   { | 
| 75     var element = event.target; | 64     toggleClass(document.getElementById("navbar-menu"), "visible"); | 
| 76     while (true) |  | 
| 77     { |  | 
| 78       if (!element) |  | 
| 79         return; |  | 
| 80 |  | 
| 81       if (hasClass(element, "selected") || element.id == "hamburger") |  | 
| 82       { |  | 
| 83         if ("querySelector" in document) |  | 
| 84         { |  | 
| 85           event.preventDefault(); |  | 
| 86           toggleClass(document.querySelector("header nav > ul"), "visible"); |  | 
| 87         } |  | 
| 88         return false; |  | 
| 89       } |  | 
| 90       element = element.parentElement; |  | 
| 91     } |  | 
| 92   } | 65   } | 
| 93 | 66 | 
| 94   function initMenu() | 67   function initMenu() | 
| 95   { | 68   { | 
| 96     if ("querySelector" in document) | 69     document.getElementById("navbar-menu-toggle").onclick = navigationClick; | 
| 97       document.querySelector("header nav").onclick = navigationClick; |  | 
| 98   } | 70   } | 
| 99 | 71 | 
| 100   function initFooterSection(section) | 72   function initFooterSection(section) | 
| 101   { | 73   { | 
| 102     var header = section.getElementsByTagName("h1")[0]; | 74     var header = section.getElementsByTagName("h1")[0]; | 
| 103     header.onclick = function() | 75     header.onclick = function() | 
| 104     { | 76     { | 
| 105       toggleClass(section, "visible"); | 77       toggleClass(section, "visible"); | 
| 106     }; | 78     }; | 
| 107   } | 79   } | 
| 108 | 80 | 
| 109   function initFooter() | 81   function initFooter() | 
| 110   { | 82   { | 
| 111     var footerContent = document.getElementById("footer-content"); | 83     var footerContent = document.getElementById("footer-content"); | 
| 112     var footerNav = footerContent.getElementsByTagName("nav")[0]; | 84     var footerNav = footerContent.getElementsByTagName("nav")[0]; | 
| 113     var footerNavSections = footerNav.getElementsByTagName("section"); | 85     var footerNavSections = footerNav.getElementsByTagName("section"); | 
| 114 | 86 | 
| 115     for (var i = 0; i < footerNavSections.length; i++) | 87     for (var i = 0; i < footerNavSections.length; i++) | 
| 116     { | 88     { | 
| 117       var section = footerNavSections[i]; | 89       var section = footerNavSections[i]; | 
| 118       initFooterSection(section); | 90       initFooterSection(section); | 
| 119     } | 91     } | 
| 120   } | 92   } | 
| 121 | 93 | 
| 122   initLanguageSelection(); | 94   initLanguageSelection(); | 
| 123   initMenu(); | 95   initMenu(); | 
| 124   initFooter(); | 96   initFooter(); | 
| 125 })(); | 97 })(); | 
| OLD | NEW | 
|---|