/*
  project: www.achtgrau.de
  type: javascript
  description: changes the cascading stylesheet 
  first edited: 14.04.2003, Stefan Heimann
  last edited: 30.06.2003, Stefan Heimann
  note: based on a javascript from Netscape DevEdge, http://devedge.netscape.com/
*/


function setStyleSheet(evt) {
  var evtId = identifyEvent(evt);
  var evtElem = document.getElementById(evtId);

  setStyleSheetInternal(evtElem.value);

  // this part exists solely to 
  // distinguish when the user chooses a new
  // theme. IE does not properly reflow the page
  // when a new theme is chosen and we must force
  // a reload when IE users choose a new theme.
  if (navigator.userAgent.indexOf('MSIE') != -1
      && !window.opera
      && navigator.product != 'Gecko') {
    history.go(0);
  }
}


function setStyleSheetInternal(newtitle) {
  var savedtitle = newtitle;
  var links = document.getElementsByTagName("link");
  var cookieCheck = true;

  if (!newtitle) {
    newtitle = savedtitle = readCookie("ACHTGRAU-Theme", false);

    var linktitle;
    cookieCheck = false;
    for (var i = 0; i < links.length; i++) {
      linktitle = links[i].getAttribute('title');
      if (linktitle == newtitle) {
          cookieCheck = true;
          break;
      }
    }
  }

  if (!newtitle) {
    newtitle = getPreferredStyleSheet();
  }

  var activesheet = null;
  for (var j = 0; j < links.length; j++) {
    var a = links[j];
    var rel = a.getAttribute('rel');
    var title = a.getAttribute('title');

    if (rel.indexOf("style") != -1 && title && cookieCheck) {
      a.disabled = true;
      if (title == newtitle) {
        activesheet = a;
      }
    }
  }
  if (activesheet) {
    activesheet.disabled = false;
  }

  if (savedtitle != null) {
    createCookie("ACHTGRAU-Theme", newtitle, 1, false);
  }
}


function getActiveStyleSheet() {
  var i;
  var links = document.getElementsByTagName("link");

  for(i = 0; i < links.length; i++) {
    var a = links[i];
    var rel = a.getAttribute('rel');
    var title = a.getAttribute('title');

    if (rel.indexOf("style") != -1 && title && !a.disabled) {
      return title;
    }
  }
  return null;
}


function getPreferredStyleSheet() {
  var i, a;
  var links = document.getElementsByTagName("link");

  for (i = 0; i < links.length; i++) {
    a = links[i];
    var rel = a.getAttribute('rel');
    var title = a.getAttribute('title');

    if (rel.indexOf("style") != -1 && rel.indexOf("alt") == -1 && title) {
      return title;
    }
  }
  return null;
}
