
/* ----- styleswitcher.js ----- */
// StyleSwitcher functions written by Paul Sowden;
// rewritten to use feature-testing in 2009
// by Thomas Lahn <thomas.lahn@brain-tec.ch>

function isFeature(o, p)
{
  if (typeof o != "object") return;
  
  return !/^\s*undefined\s*$/i.test(typeof o[p]);
}

function isMethod(o, p)
{
  if (typeof o != "object") return;
  
  var t = typeof o[p];
  return /^\s*(function|object|unknown)\s*$/i.test(t)
         && (/^\s*unknown\s*$/i.test(t) || true);
}

function setActiveStyleSheet(title, reset)
{
  // terminate if we don't hit an unsupported DOM implementation
  var hasStyleSheets; 
  if (typeof document == 'undefined'
      || !(hasStyleSheets = isFeature(document, 'styleSheets'))
      && !isMethod(document, "getElementsByTagName"))
  {
    return false;
  }
  
  if (hasStyleSheets)
  {
    for (var styleSheets = document.styleSheets, i = styleSheets.length;
         i--;)
    {
      var e = styleSheets[i];
        
      if (e.href && e.title)
      {
        e.disabled = true;
        
        if (e.title == title)
        {
          e.disabled = false;
        }
      }
    }
  }
  else
  {
    for (var linkEls = document.getElementsByTagName("link"), i = linkEls.length;
         i--;)
    {
      var e = linkEls[i];
      
      if (/(^|\s)stylesheet(\s|$)/i.test(e.rel) && e.title)
      {
        e.disabled = true;
        if (e.title == title)
        {
          e.disabled = false;
        }
      }
    }
    
    if (reset)
    {
      createCookie("wstyle", title, 365);
    }
  }
}

function setStyle()
{
  var style = readCookie("wstyle");
  if (style != null)
  {
    setActiveStyleSheet(style, 0);
  }
}
registerPloneFunction(setStyle);

