X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/2e847cf21b8ab9d15fa167b315ca5b2fa92638fc..6a7e4474cba9d8be4b2ec445e10f1691f7277c50:/examples/themes/styleswitcher.js diff --git a/examples/themes/styleswitcher.js b/examples/themes/styleswitcher.js new file mode 100644 index 00000000..a948b28b --- /dev/null +++ b/examples/themes/styleswitcher.js @@ -0,0 +1,91 @@ +/*! + * Ext JS Library 3.2.0 + * Copyright(c) 2006-2010 Ext JS, Inc. + * licensing@extjs.com + * http://www.extjs.com/license + */ +function setActiveStyleSheet(title) { + var i, + a, + links = document.getElementsByTagName("link"), + len = links.length; + for (i = 0; i < len; i++) { + a = links[i]; + if (a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) { + a.disabled = true; + if (a.getAttribute("title") == title) a.disabled = false; + } + } +} + +function getActiveStyleSheet() { + var i, + a, + links = document.getElementsByTagName("link"), + len = links.length; + for (i = 0; i < len; i++) { + a = links[i]; + if (a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) { + return a.getAttribute("title"); + } + } + return null; +} + +function getPreferredStyleSheet() { + var i, + a, + links = document.getElementsByTagName("link"), + len = links.length; + for (i = 0; i < len; i++) { + a = links[i]; + if (a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("rel").indexOf("alt") == -1 && a.getAttribute("title")) { + return a.getAttribute("title"); + } + } + return null; +} + +function createCookie(name, value, days) { + if (days) { + var date = new Date(); + date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); + var expires = "; expires=" + date.toGMTString(); + } else { + expires = ""; + } + document.cookie = name + "=" + value + expires + "; path=/"; +} + +function readCookie(name) { + var nameEQ = name + "=", + ca = document.cookie.split(';'), + i, + c, + len = ca.length; + for ( i = 0; i < len; i++) { + c = ca[i]; + while (c.charAt(0) == ' ') { + c = c.substring(1, c.length); + } + if (c.indexOf(nameEQ) == 0) { + return c.substring(nameEQ.length, c.length); + } + } + return null; +} + +window.onload = function (e) { + var cookie = readCookie("style"); + var title = cookie ? cookie : getPreferredStyleSheet(); + setActiveStyleSheet(title); +} + +window.onunload = function (e) { + var title = getActiveStyleSheet(); + createCookie("style", title, 365); +} + +var cookie = readCookie("style"); +var title = cookie ? cookie : getPreferredStyleSheet(); +setActiveStyleSheet(title);