/* Textgroessen-Steuerung (unabhaengig von den Browser-Vorgaben)
  - Alle Rechte: E.J.Minhorst - aendern, kopieren verboten !
  - (c) 2003-2004 E.J.Minhorst, Dresden/Germany http://www.ejomi.de/
  - It is expressly forbidden to modify, copy, publish or sell this
  - sourcecode (or parts of it) without prior written consent by author!
*/

window.onerror = ErrProcRsz;
var rszname="size03ie.js";

/* Uebersetzungstabelle fuer Sonderzeichen und Umlaute
   (ACHTUNG: muss immer am Programm-Anfang stehen!) */
var Ycp = String.fromCharCode(169);
var Yae = String.fromCharCode(228);
var Yoe = String.fromCharCode(246);
var Yue = String.fromCharCode(252);
var YAE = String.fromCharCode(196);
var YOE = String.fromCharCode(214);
var YUE = String.fromCharCode(220);
var Ysz = String.fromCharCode(223);
var cx = "%20%32%30%30%35%20%45%2E%4A%2E%4D%69%6E%68%6F%72%73%74%2C%20%44%72%65%73";
cx=cx+"%64%65%6E%20%28%68%74%74%70%3A%2F%2F%77%77%77%2E%65%6A%6F%6D%69%2E%64%65%29";
var CpyRgt = unescape(cx);

// CSS-Dateien fuer SMALL=0, NORMAL=1, BOLD=2, LARGE=3
CssFiles = new Array("size03_1.css", "size03_2.css", "size03_3.css", "size03_4.css");
var CssPath = "../pstyles/";

// Standard-Style beim Start (NORMAL=1):
var ActStyleNr = 1;

//Cookie-Gueltigkeit in Tagen:
var GltyDays = 1;

/* Text-Bausteine fuer Menue und alle PopUp-Meldungen */
var MenuText = "text-size: ";
var MenuInfo = "textlayout <normal>, <bold> or scalefactor 80%, 120%";
MenuChoices = new Array("80%"," N "," B ","120%");
MenuSizes = new Array("font-size:9pt;","font-size:12pt;","font-size:12pt;font-weight:bold;","font-size:16pt;");
var MouseONText = "Your choice: change text-style to ";
var MouseOffText = "The current text-size is: ";
var MouseHelp = "Showing an Info-PopUp";

var PrgTtl = "Text-Resizer "+Ycp;

var CookTtl = PrgTtl+":\n\nTool for a better text legibility on different screen-dimensions. The attitudes are individually stored for each single side. The following selection is available:\n";

var CookMsg = "This view-assistance causes only a temporarily text-scaling on the screen WITHOUT influencing your browser settings. Therefore it is necessary, to store the current scale-factor briefly into a so-called \"Cookie\".\n\nDon't worry: After a while this \"Cookie\" will be deleted automatically. Also, this web-page does not store any further informations or personal data from you or your computer-system - guaranteed!\n\nPERMIT COOKIES FROM THIS WEB-PAGE FOR USING SCALE-FUNCTIONS!\n"+PrgTtl+": "+CpyRgt;

var CookWarn = PrgTtl+"\nUNFORTUNATELY YOUR BROWSER BLOCKS \"COOKIE\"-BUFFERING.\n\n";

/* Seitenunabhaengige Formatierung des Resizer-Menues */
var MenuStyle = "font-family:Arial,Helvetica,sans-serif; color:#7F7F7F;";
var GaugeStyle = "font-weight:bold; color:#999933;";
var LinkStyle = "<style type='text/css'>\n";
LinkStyle = LinkStyle + "a.Rsz:link {font-weight:bold; color:#AFAFAF; text-decoration:none}\n";
LinkStyle = LinkStyle + "a.Rsz:visited {font-weight:bold; color:#AFAFAF; text-decoration:none}\n";
LinkStyle = LinkStyle + "a.Rsz:hover {font-weight:bold; color:#FF0000; text-decoration:none}\n";
LinkStyle = LinkStyle + "</style>\n";

/* ---- HAUPT-PRGRAMM (ab hier nichts aendern!) : ---- */

/* Style-Nummer aus Cookie: */
function GetCookie() {
    if(document.cookie) {
       var CookStr = document.cookie;
       var a = CookStr.indexOf("=") + 1;
       var b = CookStr.indexOf(";");
       if (b == -1) b = CookStr.length;
       var ValStr = CookStr.substring(a,b);
       ActStyleNr = parseInt(ValStr);
    }
}

/* gewaehlte Style-Nr. in Cookie schreiben: */
function StyleSwitch(FileNr) {
    if (FileNr==99) {
       alert(CookTtl+MenuInfo+"\n\n"+CookMsg);}
    else {
       var DateStr = new Date();
       var EndFromNow = DateStr.getTime() + (GltyDays * 864E5);
       DateStr.setTime(EndFromNow);
       document.cookie = "TEXTSIZE=" + FileNr.toString() + "; expires=" + DateStr.toGMTString();

       // Seite erneut aufrufen falls Cookie erfolgreich gesetzt:
       if(document.cookie) self.location.reload(false);
       else alert(CookWarn+CookMsg);
    }
}

/* Dynamisches Auswahl-Menue einsetzen: */
function ShowResizer() {

   var MenuLine = "&brvbar;&nbsp;";
   var MenuItem = "";
   var TabID = 0;

   // Menue-Kopf vorbereiten:
   var MenuHead = "<div style='" + MenuStyle + MenuSizes[ActStyleNr] + "' title='" + MenuInfo + "'>" + MenuText + "&nbsp;&nbsp;";

   for (var i = 0; i <= 3; i++) {
      MenuItem = MenuChoices[i];
      TabID++;
      if (i == ActStyleNr) {
         MenuLine = MenuLine + "<span style='" + GaugeStyle +"'";
         MenuLine = MenuLine + " onMouseover=\"status='" + MouseOffText + MenuItem + "';return true;\"";
         MenuLine = MenuLine + " onMouseout=\"status='" + PrgTtl + CpyRgt + "'; return true;\">";
         MenuLine = MenuLine + MenuItem + "&nbsp;</span>&brvbar;&nbsp;";
      }
      else {
         MenuLine = MenuLine + "<a href=\"javascript:StyleSwitch('" + i + "')\" class='Rsz'";
         MenuLine = MenuLine + " onMouseover=\"status='" + MouseONText + MenuItem + "'; return true;\"";
         MenuLine = MenuLine + " onMouseout=\"status='" + PrgTtl + CpyRgt + "'; return true;\"";
         MenuLine = MenuLine + " tabindex=" + TabID.toString() + ">";
         MenuLine = MenuLine + MenuItem + "</a>&nbsp;&brvbar;&nbsp;";
      }
   }
   // Script-Schalter Nr.99 zeigt ein Hilfe-Popup:
   TabID++;
   MenuLine = MenuLine + "<a href=\"javascript:StyleSwitch('99')\" class='Rsz'";
   MenuLine = MenuLine + " onMouseover=\"status='" + MouseHelp + "'; return true;\"";
   MenuLine = MenuLine + " onMouseout=\"status='" + PrgTtl + CpyRgt + "'; return true;\"";
   MenuLine = MenuLine + " tabindex=" + TabID.toString() + ">";
   MenuLine = MenuLine + "?&nbsp;</a>&brvbar;";
   document.write(MenuHead + MenuLine + "</div>");
}

/* Fehler-Behandlung */
function ErrProcRsz(Msg, Src, LnNr) {
errtext = Msg + " Line-Nr.: " + LnNr;
RszError();
return true;
}

function RszError () {
  stdtext = "ERROR " + rszname + "/" + fnctname + ": " + errtext;
  window.status = stdtext;
  window.defaultStatus = stdtext;
}

/* Dynamische CSS-Anweisung einsetzen: */
GetCookie();
document.writeln("<link rel='stylesheet' type='text/css' media='screen' href='" + CssPath+CssFiles[ActStyleNr] + "'>" + LinkStyle);
