function StyleSwitcher (name) {

 var myname=name;
 var defaultStyle = '';
 var styles = new Array();

 var standard = '';

 var fontunit='%';
 var defsize = 80;
 var minsize = 60;
 var maxsize = 110;

 var schwarzweiss = false;

 var init = function () {
  if(!document.getElementsByTagName) {
   return;
  }
  else {
   var el = document.getElementsByTagName('link');
   for (var i = 0; i < el.length; i++ ) {
    if (el[i].getAttribute("rel").indexOf("style") != -1 && el[i].getAttribute("title")) {
     styles.push(el[i].getAttribute("title"));
    }
   }
  }
 }


 var setcolor=function(el) {
  if (el.nodeType == 1) {
   for (var i=0; i<el.childNodes.length; i++) {
    setcolor(el.childNodes[i]);
   };
   if(el.style) {
    el.style.color='#000';
    el.style.backgroundColor='#fff';
    el.style.backgroundImage='none';
    el.style.borderColor='#000';
    if(el.nodeName.toLowerCase() == 'a') {
     el.style.textDecoration = 'underline';
    }
   }
  }
 }

 this.getStyle = function() {
  if(!document.getElementsByTagName) {
   return standard;
  }
  else {
   var el = document.getElementsByTagName('link');
   for (var i = 0; i < el.length; i++ ) {
    if (el[i].getAttribute("rel").indexOf("style") != -1 && el[i].getAttribute("title") && el[i].disabled == false) {
     return el[i].getAttribute("title");
    }
    else {
     return standard;
    };
   }
   return standard;
  }
 }

 this.getDefaultStyle = function () {
  if(!document.getElementsByTagName) {
   return standard;
  }
  else {
   var el = document.getElementsByTagName('link');
   for (var i = 0; i < el.length; i++ ) {
    if (el[i].getAttribute("rel").indexOf("style") != -1 && el[i].getAttribute("title") && el[i].getAttribute("rel").indexOf("alt") == -1) {
     return el[i].getAttribute("title");
    }
    else {
     return standard;
    };
   }
   return standard;
  }
 }


 this.setStyle = function (styl) {
  if(!document.getElementsByTagName) {
   return;
  }
  else {
   var el = document.getElementsByTagName('link');
   for (var i = 0; i < el.length; i++ ) {
    if (el[i].getAttribute("rel").indexOf("style") != -1 && el[i].getAttribute("title")) {
      el[i].disabled = true;
      if (el[i].getAttribute("title") == styl) el[i].disabled = false;
    }
   }
  }
 }

 this.getSize = function () {
  if(!document.getElementsByTagName) {
   return defsize;
  }
  else {
   var s = parseFloat(document.getElementsByTagName('body')[0].style.fontSize);
   s =  (isNaN(s)) ? defsize : s ;
   return s;
  }
 }

 this.increaseSize = function () {

  if(!document.getElementsByTagName) {
   return;
  }
  else {
   var s= Math.min(Math.floor(this.getSize() * 1.2),maxsize);
   document.getElementsByTagName('body')[0].style.fontSize=s+fontunit;
  }
 }

 this.decreaseSize = function () {

  if(!document.getElementsByTagName) {
   return;
  }
  else {
   var s= Math.max(Math.floor(this.getSize() * .83333),minsize);
   document.getElementsByTagName('body')[0].style.fontSize=s+fontunit;
  }
 }

 this.setSize = function (s) {

  if(!document.getElementsByTagName) {
   return;
  }
  else {
   document.getElementsByTagName('body')[0].style.fontSize=s;
  }
 }

 this.blackwhite = function () {
  if(!schwarzweiss) {
   setcolor(document.getElementsByTagName('body')[0]);
   schwarzweiss=true;
  }
  else {
   window.location.reload();
  }
 }

 this.showList = function () {
  if(styles.length>0) {
   document.writeln('<select class="styleswitcher" onchange="'+myname+'.setStyle(this.value)">');
   for (var i = 0; i < styles.length; i++ ) {
    if (styles[i] == this.getStyle()) {
     document.writeln('<option value="'+styles[i]+'" selected="selected">'+styles[i]+'</option>');
    }
    else {
     document.writeln('<option value="'+styles[i]+'">'+styles[i]+'</option>');
    }
   }

   document.writeln('</select>');
  }
 }


 this.showSizer = function () {
  document.writeln('<span class="fontsizer" onclick="'+myname+'.decreaseSize()" style="font-size:9px;cursor:pointer;">A</span> <span class="fontsizer" onclick="'+myname+'.increaseSize()" style="font-size:14px;cursor:pointer;">A</span>');
 }

 this.showBW = function () {
  document.writeln('<span id="styleblackwhite" onclick="'+myname+'.blackwhite();" style="font-weight:bold;cursor:pointer;"><span style="color:#fff;background-color:#000;border:solid 1px #000;font-size:12px;">S</span><span  style="color:#000;background-color:#fff;border:solid 1px #000;font-size:12px;">W</span></span>');
 }

 this.showStylepanel = function () {
  document.writeln('<div class="stylepanel"><h2>Stil wechseln</h2>');
  this.showList();
  document.writeln('<br>Zoom ');
  this.showSizer();
  document.writeln('<br>');
  this.showBW();
  document.writeln('</div>');
 }


 init();

}



