| OLD | NEW | 
|---|
| 1 (function(){ | 1 (function(){ | 
| 2   document.addEventListener("DOMContentLoaded", function() | 2   document.addEventListener("DOMContentLoaded", function() | 
| 3   { | 3   { | 
| 4 | 4 | 
| 5     /************************************************************************** | 5     /************************************************************************** | 
| 6      * General | 6      * General | 
| 7      **************************************************************************/ | 7      **************************************************************************/ | 
| 8 | 8 | 
| 9     // Change html class name from "no-js" to "js" | 9     // Change html class name from "no-js" to "js" | 
| 10     document.documentElement.className = "js"; | 10     document.documentElement.className = "js"; | 
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 192 | 192 | 
| 193       this.toggleSection(event.target); | 193       this.toggleSection(event.target); | 
| 194     } | 194     } | 
| 195 | 195 | 
| 196     var productTopicsAccordion = document.getElementById('product-topics-accordi
     on'); | 196     var productTopicsAccordion = document.getElementById('product-topics-accordi
     on'); | 
| 197     if (productTopicsAccordion) | 197     if (productTopicsAccordion) | 
| 198     { | 198     { | 
| 199       new Accordion(productTopicsAccordion); | 199       new Accordion(productTopicsAccordion); | 
| 200     } | 200     } | 
| 201 | 201 | 
|  | 202     /************************************************************************** | 
|  | 203      * BrowserSelect | 
|  | 204      **************************************************************************/ | 
|  | 205 | 
|  | 206     function BrowserSelect(select) | 
|  | 207     { | 
|  | 208       this.browserSelect = select; | 
|  | 209       this.browserCustomSelect = new CustomSelect(this.browserSelect); | 
|  | 210 | 
|  | 211       this.DEFAULT_BROWSER = "chrome"; | 
|  | 212       this.BROWSER_STORAGE_KEY = "BROWSER"; | 
|  | 213       this.BROWSER_AUTODETECTED_STORAGE_KEY = "BROWSER_AUTODETECTED"; | 
|  | 214 | 
|  | 215       this.browserSelect | 
|  | 216         .addEventListener("click", this._onClickOrKeyDown.bind(this), false); | 
|  | 217 | 
|  | 218       this.browserSelect | 
|  | 219         .addEventListener("keydown", this._onClickOrKeyDown.bind(this), false); | 
|  | 220 | 
|  | 221       var storedBrowser = localStorage.getItem(this.BROWSER_STORAGE_KEY); | 
|  | 222       if (storedBrowser) | 
|  | 223       { | 
|  | 224         this.selectOption(storedBrowser); | 
|  | 225       } | 
|  | 226       else | 
|  | 227       { | 
|  | 228         this.detectBrowser(); | 
|  | 229       } | 
|  | 230     } | 
|  | 231 | 
|  | 232     BrowserSelect.prototype.detectBrowser = function() | 
|  | 233     { | 
|  | 234       localStorage.setItem(this.BROWSER_AUTODETECTED_STORAGE_KEY, "true"); | 
|  | 235 | 
|  | 236       var browser; | 
|  | 237       if (bowser.chrome) browser = "chrome"; | 
|  | 238       else if (bowser.opera) browser = "opera"; | 
|  | 239       else if (bowser.coast) browser = "opera"; | 
|  | 240       else if (bowser.samsungBrowser) browser = "samsung"; | 
|  | 241       else if (bowser.yandexbrowser) browser = "yandex"; | 
|  | 242       else if (bowser.maxthon) browser = "maxthon"; | 
|  | 243       else if (bowser.msie) browser = "ie"; | 
|  | 244       else if (bowser.msedge) browser = "edge"; | 
|  | 245       else if (bowser.firefox) browser = "firefox"; | 
|  | 246       else if (bowser.ios) browser = "ios"; | 
|  | 247       else if (bowser.safari) browser = "safari"; | 
|  | 248       else | 
|  | 249       { | 
|  | 250         localStorage.removeItem(this.BROWSER_AUTODETECTED_STORAGE_KEY); | 
|  | 251         browser = this.DEFAULT_BROWSER; | 
|  | 252       } | 
|  | 253 | 
|  | 254       this.selectOption(browser); | 
|  | 255     } | 
|  | 256 | 
|  | 257     BrowserSelect.prototype.selectOption = function(browser) | 
|  | 258     { | 
|  | 259       // Save value to Local Storage | 
|  | 260       localStorage.setItem(this.BROWSER_STORAGE_KEY, browser); | 
|  | 261 | 
|  | 262       // Change body class | 
|  | 263       var bodyClassList = Array.prototype.slice.call(document.body.classList); | 
|  | 264       for (var i = 0; i < bodyClassList.length; i++) | 
|  | 265       { | 
|  | 266         if (bodyClassList[i].indexOf('ua-') > -1) | 
|  | 267         { | 
|  | 268           document.body.classList.remove(bodyClassList[i]); | 
|  | 269         } | 
|  | 270       } | 
|  | 271       document.body.classList.add("ua-" + browser); | 
|  | 272 | 
|  | 273       // Check selected option | 
|  | 274       var selectedItem = this.browserSelect | 
|  | 275                              .querySelector("[data-value='" + browser + "']"); | 
|  | 276       selectedItem.setAttribute("aria-checked", "true"); | 
|  | 277 | 
|  | 278       // Set selected option | 
|  | 279       var selectedOption = document.createElement("li"); | 
|  | 280       selectedOption.innerHTML = selectedItem.innerHTML; | 
|  | 281 | 
|  | 282       if (localStorage.getItem(this.BROWSER_AUTODETECTED_STORAGE_KEY)) | 
|  | 283       { | 
|  | 284         var autodetected = document | 
|  | 285                               .getElementById('browser-select-autodetected') | 
|  | 286                               .innerHTML; | 
|  | 287         selectedOption.innerHTML += "<span class='muted'>(" + autodetected + ")<
     /span>"; | 
|  | 288       } | 
|  | 289 | 
|  | 290       this.browserSelect | 
|  | 291           .querySelector(".custom-select-selected") | 
|  | 292           .innerHTML = selectedOption.innerHTML; | 
|  | 293     } | 
|  | 294 | 
|  | 295     BrowserSelect.prototype._onClickOrKeyDown = function(event) | 
|  | 296     { | 
|  | 297       if (!event.target.classList.contains("custom-select-option")) return; | 
|  | 298 | 
|  | 299       var IS_ENTER_KEY = event.key == "Enter" || event.keyCode == 13; | 
|  | 300       if (event.keyCode && !IS_ENTER_KEY) return; | 
|  | 301 | 
|  | 302       localStorage.removeItem(this.BROWSER_AUTODETECTED_STORAGE_KEY); | 
|  | 303 | 
|  | 304       // Uncheck previously checked option | 
|  | 305       this.browserSelect | 
|  | 306           .querySelector("[aria-checked='true']") | 
|  | 307           .setAttribute("aria-checked", "false"); | 
|  | 308 | 
|  | 309       this.selectOption(event.target.getAttribute("data-value")); | 
|  | 310 | 
|  | 311       // Close Select | 
|  | 312       this.browserCustomSelect.close(); | 
|  | 313     } | 
|  | 314 | 
|  | 315     var browserSelect = document.getElementById("browser-select"); | 
|  | 316     if (browserSelect) | 
|  | 317     { | 
|  | 318       new BrowserSelect(browserSelect); | 
|  | 319     } | 
|  | 320 | 
| 202   }, false); | 321   }, false); | 
| 203 }()); | 322 }()); | 
| OLD | NEW | 
|---|