    function CssSwitcher() {
      this.varsion = '1.0';
      this.linkId = 'cssSwitcher-link';
      this.listId = 'cssSwitcher-list';
      this.cookie = 'cssSwitcher';
      this.rel = 'stylesheet';
      this.type = 'text/css';
    }

    CssSwitcher.prototype.setStylesheet = function() {
      var url = this._readCookie(this.cookie);
      if(url) {
        this.changeStylesheet(url);
        this._selectOption(url);
      }
    }

    CssSwitcher.prototype.changeStylesheet = function(url) {
      this._removeStylesheet();
      this._addStylesheet(url);
      this._setCookie(url);
    }

    CssSwitcher.prototype._addStylesheet = function(url) {
      var head = document.getElementsByTagName('head')[0];
      var link = document.createElement('link');
      link.id = this.linkId;
      link.rel = this.rel;
      link.type = this.type;
      link.href = url;
      head.appendChild(link);
    }

    CssSwitcher.prototype._removeStylesheet = function() {
      var head = document.getElementsByTagName('head')[0];
      var link = document.getElementById(this.linkId);
      if(link) {
        head.removeChild(link);
      }
    }

    CssSwitcher.prototype._selectOption = function(value) {
      var list = document.getElementById(this.listId);
      for(var i=0; i<list.length; i++)
        list.options[i].selected = (list.options[i].value == value) ? 1 : 0;
    }

    CssSwitcher.prototype._setCookie = function(url) {
      var time=new Date();
      var text=escape(url);
      time.setTime(time.getTime()+1000*60*60*24*7);
      document.cookie=this.cookie+"="+text+";expires=" + time.toGMTString();
    }

    CssSwitcher.prototype._readCookie = function(name) {
      var dc = document.cookie;
      var prefix = name + "=";
      var begin = dc.indexOf("; " + prefix);
      if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
      } else begin += 2;
      var end=document.cookie.indexOf(";",begin);
      if (end==-1) end = dc.length;
      return unescape(dc.substring(begin+prefix.length,end));
    }

    MyCssSwitcher = new CssSwitcher();


