summaryrefslogtreecommitdiff
path: root/portal/layout/js/styleswitcher.js
blob: f238b27a8b3ef5ed7398b664a6c0b5143f3fcb7d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/* http://www.alistapart.com/articles/alternate/ */

function
setActiveStyleSheet (title)
{
  var i, a, main;
  for (i = 0; (a = document.getElementsByTagName ("link")[i]); i++)
    {
      if (a.getAttribute ("rel").indexOf ("style") != -1
	  && a.getAttribute ("title"))
	{
	  a.disabled = true;
	  if (a.getAttribute ("title").indexOf(title) != -1)
	    a.disabled = false;
	}
    }
}

function
getActiveStyleSheet ()
{
  var i, a;
  for (i = 0; (a = document.getElementsByTagName ("link")[i]); i++)
    {
      if (a.getAttribute ("rel").indexOf ("style") != -1
	  && a.getAttribute ("title") && !a.disabled)
	return a.getAttribute ("title");
    }
  return null;
}

function
getPreferredStyleSheet ()
{
  var i, a;
  for (i = 0; (a = document.getElementsByTagName ("link")[i]); 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 + "=";
  var ca = document.cookie.split (';');
  for (var i = 0; i < ca.length; i++)
    {
      var 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);