moved qdb here because matt is lazy
[public/www-new.git] / pub / qdb / res / themes / default / js / style_switcher.js
1 /*\r###############################################################################\r# Chirpy!, a quote management system                                          #\r# Copyright (C) 2005-2007 Tim De Pauw <ceetee@users.sourceforge.net>          #\r###############################################################################\r# This program is free software; you can redistribute it and/or modify it     #\r# under the terms of the GNU General Public License as published by the Free  #\r# Software Foundation; either version 2 of the License, or (at your option)   #\r# any later version.                                                          #\r#                                                                             #\r# This program is distributed in the hope that it will be useful, but WITHOUT #\r# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or       #\r# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for   #\r# more details.                                                               #\r#                                                                             #\r# You should have received a copy of the GNU General Public License along     #\r# with this program; if not, write to the Free Software Foundation, Inc., 51  #\r# Franklin St, Fifth Floor, Boston, MA  02110-1301  USA                       #\r###############################################################################\r\r###############################################################################\r# style_switcher.js                                                           #\r# Makes the user's alternate stylesheet choice persistent using a cookie      #\r# Largely based on http://www.alistapart.com/articles/alternate/              #\r###############################################################################\r# $Id:: style_switcher.js 291 2007-02-05 21:24:46Z ceetee                   $ #\r###############################################################################\r*/\r\rfunction setActiveStyleSheet (title) {\r var a;\r var l = document.getElementsByTagName("link");\r var found = false;\r     for (var i = 0; a = l[i]; i++) {\r               var t = a.getAttribute("title");\r               if (a.getAttribute("rel").indexOf("stylesheet") >= 0 && t) {\r                   var d = (t != title);\r                  a.disabled = d;\r                        if (!d) found = true;\r          }\r      }\r      return found;\r}\r\rfunction getActiveStyleSheet () {\r     var a;\r var l = document.getElementsByTagName("link");\r for (var i = 0; a = l[i]; i++) {\r               var t = a.getAttribute("title");\r               if (a.getAttribute("rel").indexOf("stylesheet") >= 0 && t && !a.disabled)\r                      return t;\r      }\r      return null;\r}\r\rfunction getPreferredStyleSheet () {\r   var a;\r var l = document.getElementsByTagName("link");\r for (var i = 0; a = l[i]; i++) {\r               var t = a.getAttribute("title");\r               if (t && a.getAttribute("rel") == "stylesheet")\r                        return t;\r      }\r      return null;\r}\r\rfunction readCookie (name) {\r   var nameEq = name + "=";\r       var ca = document.cookie.split(/; */);\r for (var i = 0; i < ca.length; i++) {\r          var c = ca[i];\r         if (c.indexOf(nameEq) == 0)\r                    return c.substring(nameEq.length, c.length);\r   }\r      return null;\r}\r\rfunction createCookie (name, value) {\r  var date = new Date();\r date.setYear(1900 + date.getYear() + 1);\r       document.cookie = name + "=" + value + "; expires=" + date.toGMTString()\r               + "; path=" + cookiePath + "; domain=" + cookieDomain;\r}\r\rfunction addOnunloadFunction (f) {\r   if (window.onunload != null) {\r         var old = window.onunload;\r             window.onunload = function (e) {\r                       old(e);\r                        f();\r           };\r     }\r      else {\r         window.onunload = f;\r   }\r}\r\raddOnunloadFunction(function () {\r var style = getActiveStyleSheet();\r     if (style) createCookie("style", style);\r});\r\rsetActiveStyleSheet(readCookie("style"))\r || setActiveStyleSheet(getPreferredStyleSheet());