
// Vampirehost - "Schatzkaestlein": Externe JavaScripts 091203

// ============================ Basis-Bibliothek ============================

/* 'SysVars 091203' (c) Cybaer - http://www.vampirehost.de/gruft/coding/jscript/sysvars.htm */
function alertSysVars() {
 var SysVar="Browser: "+navigator.userAgent;
 SysVar+="\nDatei: "+window.location.href+"\n";
 SysVar+="\nBrowsereigenschaften (\""+navigator.appVersion+"\"):";
 SysVar+="\n"+((agt_os)?agt_os+"-":"")+"Browser"+((agt_lang)?" ("+agt_lang+")":"");
 SysVar+=" mit "+((is_ie)?"ca. ":"")+agt_width+"*"+agt_height+" (maximal "+agt_maxWidth+"*"+agt_maxHeight+") Punkten";
 SysVar+="\nund einem Nutzbereich von "+agt_docWidth+"*"+agt_docHeight+" Punkten (auf einem";
 SysVar+="\nBildschirm mit "+agt_screenWidth+"*"+agt_screenHeight+" Punkten und "+agt_colors+" Farben).";
 SysVar+="\nDer Browser ist "+((navigator.online)?"":"vermutlich ")+((is_connected)?"on":"off")+"line "+((agt_speed)?"("+((agt_speed>0)?agt_speed+" kbps="+Math.round(agt_speed/8*100)/100+" KByte/s)":"KBit/s nicht zu ermitteln)"):"(KBit/s nicht ermittelt)");
 SysVar+="\nund kompatibel zu JavaScript "+agt_jsVersion+".";
 SysVar+="\n";
 SysVar+="\nInternet Explorer? "+is_ie+((is_ie)?" (Version "+agt_ieVersion+")":"");
 SysVar+="\nNavigator/Mozilla? "+is_nav+((is_nav)?" (Version "+agt_version+")":"");
 SysVar+="\nOpera? "+is_op+((is_op)?" (Version "+agt_opVersion+")":"");
 SysVar+="\nSafari? "+is_saf+((is_saf)?" (Version "+agt_safVersion+")":"");
 SysVar+="\nKonqueror? "+is_kq+((is_kq)?" (Version "+agt_kqVersion+")":"");
 SysVar+="\n";
 SysVar+="\nDocument Object Model:";
 SysVar+="\nW3C (strikt)? "+is_w3cDOM;
 SysVar+="\nW3C (erweitert)? "+is_w3cxDOM;
 SysVar+="\nMicrosoft? "+is_ieDOM;
 SysVar+="\nNetscape? "+is_nnDOM;
 SysVar+="\n";
 SysVar+="\nDokumenteneigenschaften:";
 SysVar+="\nDas Dokument ist "+((!is_frame)?"k":"")+"ein Frame"+((is_frame)?" (von insgesamt "+parent.frames.length+")":" (Frameset "+((do_frameset)?"ggf.":"nicht")+" nachladen)")+" mit "+doc_width+"*"+doc_height+" Punkten.";
 SysVar+=(is_online)?"\nServer: "+doc_Server+" (Levels: "+doc_Subdomain+"|"+doc_Domain+"|"+doc_TLDomain+")":"\nServer: offline ("+doc_localPath+")";
 SysVar+=(is_online && doc_User)?"\nAufrufender User \""+doc_User+"\", "+((doc_Password)?"mit dem Passwort \""+doc_Password+"\".":"ohne Passwort."):"";
 SysVar+="\nPfad: "+doc_Path+"  Name: "+doc_FileName+"  Extension: "+doc_FileExt;
 SysVar+="\nHauptverzeichnis: "+doc_MainDir+"  Dateiverzeichnis: "+doc_FileDir+"  (insgesamt "+doc_PathDeep+" Ebene"+((doc_PathDeep!=1)?"n":"")+")";
 SysVar+="\nAufruf durch Link von Eigen/Fremdserver: "+is_icall+"/"+is_xcall;
 if(is_online) { if(!doc_xServer) { if(is_refblocked) {
    SysVar+="\nDer Seitenaufrufer wurde verborgen: \""+document.referrer+"\"";
   } else {
    SysVar+="\nDer Seitenaufrufer entspricht nicht der Norm: \""+document.referrer+"\"";
   } } else {
   SysVar+="\nSeitenaufrufer: "+doc_xServer+" ("+document.referrer+")";
  } }
 alert(SysVar);
}

function ceh() { return true; }
function deFocus(element,flag) { if((do_deFocus || flag) && element.blur) { element.blur(); } }
function rc(text,chars,subs,insensitive) { if(chars) { var i, work, result="", start=0; subs=(subs)?subs:""; if(insensitive) { work=text.toLowerCase(); chars=chars.toLowerCase(); } else { work=text; } i=work.indexOf(chars,start); while(i>=0) { result+=text.substring(start,i)+subs; start=i+chars.length; i=work.indexOf(chars,start); if(!i) { break; } } result+=text.substring(start,text.length); return result; } else { return text; } }
function cc(text,chars) { if(chars) { var ccnext=text.indexOf(chars); var ccfound=0; while(parseInt(ccnext)>=0) { ccfound++; ccnext+=chars.length; ccnext=text.indexOf(chars,ccnext); if(!ccnext) { break; } } return ccfound; } else { return 0; } }
function winResize() {
 // Alte Groessen sichern, dann System-Variablen aktualisieren
 var doc_widthOld=doc_width, doc_heightOld=doc_height; SysVarsBody()
 // Bei Verwendung von MagicHTML ggf. eigene Routinen aufrufen
 // ( http://www.vampirehost.de/gruft/coding/html/magichtm.htm )
 magicXL();
 // Bei Aenderung der Browsergroesse: Reload (wenn gewuenscht)
 if(do_resize && (doc_width!=doc_widthOld || doc_height!=doc_heightOld)) { location.reload(); }
}

function SysVarsBody() {
 if(top.window.innerWidth) {
  agt_docWidth=top.window.innerWidth;
  agt_docHeight=top.window.innerHeight;
 } else if(top.document.body && top.document.body.clientWidth) {
  agt_docWidth=top.document.body.clientWidth;
  agt_docHeight=top.document.body.clientHeight;
 }
 if(window.innerWidth) {
  doc_width=window.innerWidth;
  doc_height=window.innerHeight;
 } else if(document.body && document.body.clientWidth) {
  doc_width=document.body.clientWidth;
  doc_height=document.body.clientHeight;
 }
 if(window.outerWidth) {
  agt_width=window.outerWidth;
  agt_height=window.outerHeight;
 } else if(top.document.body && top.document.body.clientWidth) {
  // Leider keine exakten Werte beim IE!
  agt_width=Math.min(screen.width,top.document.body.clientWidth+12);
  agt_height=Math.min(screen.height,top.document.body.clientHeight+120);
 }
 window.onresize=winResize;
}

function SysVarSpeedDone() {
 var speedTime=new Date();
 var speedSeconds=(speedTime.getTime()-SysVarSpeedStart)/1000;
 var speedImgSize=51392;
 agt_speed=Math.round((speedImgSize*8/1024)/speedSeconds);
} function SysVarSpeed() {
 agt_speed=-1;
 var speedImg=new Image();
 var speedTime=new Date();
 SysVarSpeedStart=speedTime.getTime();
 speedImg.onload=SysVarSpeedDone;
 speedImg.src=doc_rootPath+"sysvars.gif?"+SysVarSpeedStart;
}

function SysVarsHead(offlineDir,defaultFile) {
 var i, r, agt, ver, sys, pathBegin, cacheBegin
 // Aktuelle Uhrzeit & Datum
 doc_time=new Date();
 // Verwendete Browser-Software & vorhandenes Document Object Model (DOM)
 agt=navigator.userAgent.toLowerCase();
 ver=navigator.appVersion.toLowerCase();
 sys=(navigator.platform)?navigator.platform.toLowerCase():agt;
 agt_version=parseFloat(ver);
 agt_jsVersion=(document.getElementById)?1.5:(doc_time.getFullYear)?1.3:(window.screen)?1.2:(document.images)?1.1:1.0;
 agt_ieVersion=0; agt_opVersion=0; agt_kqVersion=0; agt_safVersion=0
 if(ver.indexOf("msie")>=0) { agt_ieVersion=parseFloat(ver.substring(ver.indexOf("msie")+4,ver.length)); }
 if(ver.indexOf("safari/")>=0) { r=""+parseFloat(ver.substring(ver.indexOf("safari/")+7,ver.length)); i=""+parseInt(r,10)/100; r=(r.indexOf(".")>=0)?r.substring(r.indexOf(".")+1,r.length):""; agt_safVersion=parseFloat(i+((i.indexOf(".")==-1 && r)?".":"")+r); }
 if(ver.indexOf("konqueror/")>=0) { agt_kqVersion=parseFloat(ver.substring(ver.indexOf("konqueror/")+10,ver.length)); }
 if(agt.indexOf("opera")>=0) { agt_opVersion=parseFloat(agt.substring(agt.indexOf("opera")+6,agt.length)); }
 agt_major=parseInt(agt_version);
 is_op=(window.opera || agt.indexOf('opera')>=0)?true:false;
 is_w3cxDOM=(document.getElementsByTagName && document.getElementsByTagName("title").length && document.getElementsByTagName("title")[0] && (document.getElementsByTagName("title")[0].innerHTML || document.getElementsByTagName("title")[0].innerHTML==""))?true:false;
 is_w3cDOM=(document.getElementById && (!is_op || is_w3cxDOM))?true:false;
 is_ieDOM=(document.all && (!is_op || is_w3cxDOM))?true:false;
 is_nnDOM=(document.layers)?true:false;
 is_external=(window.external)?true:false;
 is_kq=(agt.indexOf('konqueror')>=0)?true:false;
 is_saf=(agt.indexOf('safari')>=0)?true:false;
 is_ie=(agt.indexOf('msie')>=0 && (((is_external || agt.indexOf(' aol ')>=0) && document.all) || agt_ieVersion<4))?true:false;
 is_oldie=(is_ie && !is_ieDOM && !is_external);
 is_nav=(!is_ie && !is_op && !is_saf && (agt.indexOf('mozilla')>=0) && (agt.indexOf('spoofer')==-1) && (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1) && (agt.indexOf('webtv')==-1));
 is_nav2=(is_nav && (agt_major==2));
 is_nav3=(is_nav && (agt_major==3));
 is_nav4=(is_nav && (agt_major==4) && is_nnDOM);
 is_oldnav=(is_nav && !is_w3cDOM);
 if(is_nav4) { is_nav=(is_nnDOM)?true:false; }
 // Browser-Daten
 agt_os=((sys.indexOf('mac')>=0)?"Macintosh":(sys.indexOf('unix')>=0 || sys.indexOf('linux')>=0 || sys.indexOf('x11')>=0 || sys.indexOf('x 11')>=0)?"Linux/Unix":(sys.indexOf('os/2')>=0)?"OS/2":(sys.indexOf('win')>=0)?"Windows":"");
 agt_lang=(navigator.language)?navigator.language:(navigator.userLanguage)?navigator.userLanguage:"";
 agt_speed=0; agt_colors=0; agt_maxWidth=0; agt_maxHeight=0; agt_screenWidth=0; agt_screenHeight=0; agt_docWidth=0; agt_docHeight=0; agt_width=0; agt_height=0; is_agtSize=false;
 if(window.screen) {
  agt_colors=(window.screen.colorDepth)?Math.pow(2,window.screen.colorDepth):(window.screen.pixelDepth)?Math.pow(2,window.screen.pixelDepth):0;
  agt_maxWidth=window.screen.availWidth;
  agt_maxHeight=window.screen.availHeight;
  agt_screenWidth=window.screen.width;
  agt_screenHeight=window.screen.height;
 }
 // Spezielle Browser-Eigenschaften
 is_noscript=(!is_nav2);
 is_complete=(!is_oldnav);
 // Spezielle Dokumenten-Eigenschaften
 is_online=(window.location.protocol!="file:");
 is_connected=(navigator.online)?navigator.online:is_online;
 if(!defaultFile) { defaultFile="index.htm"; }
 doc_URI=rc(window.location.href,"\\","/");
 doc_URI=(doc_URI.indexOf("?")>=0)?doc_URI.substring(0,doc_URI.indexOf("?")):doc_URI;
 doc_URI=(doc_URI.indexOf("#")>=0)?doc_URI.substring(0,doc_URI.indexOf("#")):doc_URI;
 doc_URI=(doc_URI.charAt(doc_URI.length-1)=="/")?(doc_URI+defaultFile):doc_URI;
 doc_User=""; doc_Password="";
 if(is_online) {
  doc_localPath="";
  doc_Server=doc_URI.substring(doc_URI.indexOf("://")+3,doc_URI.indexOf("/",doc_URI.indexOf("://")+4));
  i=doc_Server.indexOf("@");
  if(i>=0) {
   doc_User=doc_Server.substring(0,i); doc_Server=doc_Server.substring(i+1,doc_Server.length);
   i=doc_User.indexOf(":"); if(i>=0) { doc_Password=doc_User.substring(i+1,doc_User.length); doc_User=doc_User.substring(0,i) }
  }
  doc_Server=(doc_Server.indexOf(":")>=0)?doc_Server.substring(0,doc_Server.indexOf(":")):doc_Server;
  doc_TLDomain=doc_Server.substring(doc_Server.lastIndexOf(".")+1,doc_Server.length);
  doc_Domain=doc_Server.substring(0,doc_Server.lastIndexOf("."));
  doc_Subdomain=(doc_Domain.indexOf("."))?doc_Domain.substring(0,doc_Domain.lastIndexOf(".")):"";
  doc_Domain=(doc_Domain.indexOf("."))?doc_Domain.substring(doc_Domain.lastIndexOf(".")+1,doc_Domain.length):doc_Domain;
 } else {
  if(!offlineDir) { offlineDir=doc_URI.substring(7,doc_URI.lastIndexOf("/")-1); }
  pathBegin=(doc_URI.indexOf("://")>=0)?7:5;
  doc_localPath=doc_URI.substring(pathBegin,doc_URI.indexOf(offlineDir)+offlineDir.length+1);
  doc_URI=doc_URI.substring(doc_URI.indexOf(offlineDir)+offlineDir.length,doc_URI.length);
  doc_Server=""; doc_TLDomain=""; doc_Domain=""; doc_Subdomain="";
 }
 i=doc_URI.indexOf(":",doc_URI.indexOf("://")+3); // Port-Adresse ausfiltern
 doc_URI=(i>=0)?doc_URI.substring(0,i)+doc_URI.substring(doc_URI.indexOf("/",i),doc_URI.length):doc_URI;
 doc_File=doc_URI.substring(doc_URI.lastIndexOf("/")+1,doc_URI.length);
 doc_FileExt=(doc_File.indexOf(".")>=0)?doc_File.substring(doc_File.lastIndexOf(".")+1,doc_File.length):"";
 doc_FileName=(doc_FileExt)?doc_File.substring(0,doc_File.lastIndexOf(doc_FileExt)-1):doc_File;
 doc_Path=doc_URI.substring(doc_URI.indexOf(doc_Server)+doc_Server.length+1,doc_URI.lastIndexOf("/"));
 doc_Path=(doc_Path=="/")?"":doc_Path;
 doc_MainDir=(doc_Path.indexOf("/")>=0)?doc_Path.substring(0,doc_Path.indexOf("/")):doc_Path;
 doc_FileDir=(doc_Path.indexOf("/")>=0)?doc_Path.substring(doc_Path.lastIndexOf("/")+1,doc_Path.length):doc_Path;
 doc_Path+="/";
 doc_PathDeep=(doc_Path=="/")?0:cc(doc_Path,"/");
 doc_rootPath=""; for(i=1;i<=doc_PathDeep;i++) { doc_rootPath+="../"; }
 doc_fullFile=doc_Path+doc_File;
 doc_Search=(document.location.search)?document.location.search.substring(1,document.location.search.length):"";
 doc_cachedURL="";
 if(doc_Search.indexOf("q=cache:")+1) {
  cacheBegin=doc_Search.indexOf(":",doc_Search.indexOf("q=cache:")+8)+1, cacheEnd=(doc_Search.indexOf("+",cacheBegin)+1)?doc_Search.indexOf("+",cacheBegin):doc_Search.length;
  doc_cachedURL=doc_Search.substring(cacheBegin,cacheEnd);
  if(parseInt(doc_cachedURL.indexOf("://"))<0) { doc_cachedURL="http://"+doc_cachedURL; }
 }
 is_frame=(top.location.href!=self.location.href);
 if(is_online) {
  doc_Referrer=rc(document.referrer,"\\","/");
  doc_xURI=doc_Referrer;
  doc_xServer=doc_xURI.substring(doc_xURI.indexOf("://")+3,doc_xURI.indexOf("/",doc_xURI.indexOf("://")+3))
  doc_xServer=(doc_xServer.indexOf(":")>=0)?doc_xServer.substring(0,doc_xServer.indexOf(":")):doc_xServer;
  doc_xTLDomain=doc_xServer.substring(doc_xServer.lastIndexOf(".")+1,doc_xServer.length)
  doc_xDomain=doc_xServer.substring(0,doc_xServer.lastIndexOf("."))
  doc_xSubdomain=(doc_xDomain.indexOf("."))?doc_xDomain.substring(0,doc_xDomain.lastIndexOf(".")):"";
  doc_xDomain=(doc_xDomain.indexOf("."))?doc_xDomain.substring(doc_xDomain.lastIndexOf(".")+1,doc_xDomain.length):doc_xDomain;
  doc_xURI=doc_xURI.substring(doc_xURI.lastIndexOf("/")+1,doc_xURI.length);
  // Geblockter Referrer-URL
  is_refblocked=(is_frame)?(doc_Server!=doc_xServer && document.referrer==parent.document.referrer):false;
  // Ungueltiger Referrer-URL
  if(is_refblocked || (doc_Referrer.substring(0,7)!="http://" && doc_Referrer.substring(0,8)!="https://" && doc_Referrer.substring(0,6)!="ftp://" && doc_Referrer.substring(0,7)!="news://")) {
   doc_Referrer=""; doc_xURI=""; doc_xServer=""; doc_xTLDomain=""; doc_xDomain=""; doc_xSubdomain="";
  }
 } else {
  is_refblocked=false; doc_Referrer=""; doc_xURI=""; doc_xServer=""; doc_xTLDomain=""; doc_xDomain=""; doc_xSubdomain="";
 }
 doc_temp=""; doc_width=0; doc_height=0;
 is_cached=(doc_cachedURL);
 is_xcall=(doc_xServer!="" && doc_Server!=doc_xServer);
 is_icall=(doc_Server==doc_xServer);
 // Spezielle Dokumenten-Steuerung
 do_ceh=is_online;
 do_resize=true;
 do_deFocus=is_ie;
 do_frameset=(is_xcall && !is_op); // Die Opera-Programmierer haben mal wieder geschlampt
 do_deFrame=true;
 do_uncache=true;
 do_blending=false; //((!is_ie || (is_ie && agt_ieVersion>=6)) && agt_speed>600);
 do_opt=is_connected;
 do_optShow=false;
 do_debug=false;
 // Script-Fehler abfangen?
 if(do_ceh) { window.onerror=ceh; }
}
// --------------------------------------------------------------------------

/* 'Replace HTML Tags 020703' (c) by cybaer@vampirehost.de
   --------------------------
 Inhalt    : Ersetzt alle gefundenen HTML-(End-)Tags durch eine Zeichenfolge
 Aufruf    : replaceHtmlTags(text,tagname,subs)
 Parameter : Text (String mit Tags)
             Tagname (Name des gewuenschten Tags (z.B. "A " oder "BR" - Endtags mit
                      vorangestelltem "/"); leer, wenn alle Tags ersetzt werden sollen)
             Subs (Ersatzstring)
             All (wenn True, werden alle Tags geaendert; bei False nur der erste)
             Start (Anfangsposition der Suche - optional)
 Sprache   : JavaScript 1.0
 Quelle    : http://www.vampirehost.de/gruft/coding/ (cybaer@vampirehost.de)
             Die kostenlose Nutzung der Quelltexte in eigenen Projekten ist
             bei nicht-kommerziellen Projekten (und deren unentgeltlicher
             Herstellung) bei Nennung der Quelle ausdruecklich gestattet.
 InlineFunc: -
 Konstante : -
 Variable  : -
 SystemVar : -
 ExternVar : -
 Rueckgabe : Bearbeiteter String
 Anmerkung : Start- und End-Tags werden separat behandelt
 Beispiele : -
*/

function replaceHtmlTags(text,tagname,subs,all,start) {
 var ende; tagname=tagname.toUpperCase();
 start=(start)?start:0;
 while(text.toUpperCase().indexOf("<"+tagname,start)>=0) {
  start=text.toUpperCase().indexOf("<"+tagname,start);
  if(tagname=="!--") { ende=text.indexOf("-->",start)+3 } else { ende=text.toUpperCase().indexOf(">",start)+1 }
  text=text.substring(0,start)+subs+text.substring(ende,text.length);
  if(!all) { break; }
 }
 return text;
}

// ---------------------------------------------------------------------------

/* 'Reduce HTML Spaces 240703' (c) by cybaer@vampirehost.de
   ---------------------------
 Inhalt    : Reduziert in einem String doppelt vorkommene Leerzeichen (nach HTML-Definition)
 Aufruf    : reduceHtmlSpaces(Text)
 Parameter : Text (String)
 Sprache   : JavaScript 1.0
 Quelle    : http://www.vampirehost.de/gruft/coding/ (cybaer@vampirehost.de)
             Die kostenlose Nutzung der Quelltexte in eigenen Projekten ist
             bei nicht-kommerziellen Projekten (und deren unentgeltlicher
             Herstellung) bei Nennung der Quelle ausdruecklich gestattet.
 InlineFunc: rc()
 Konstante : -
 Variable  : -
 SystemVar : -
 ExternVar : -
 Rueckgabe : Bearbeiteter String
 Anmerkung : -
 Beispiele : -
*/

function reduceHtmlSpaces(text) {
 text=rc(text,"\x0A"," ");
 text=rc(text,"\x0D"," ");
 while(text.indexOf("  ")>=0) { text=rc(text,"  "," "); }
 return text;
}

// ---------------------------------------------------------------------------

/* 'Trim Trailing Spaces 010703' (c) by cybaer@vampirehost.de
   -----------------------------
 Inhalt    : Entfernt einem String vorstehende und folgende Leerzeichen
 Aufruf    : trim(Text)
 Parameter : Text (String)
 Sprache   : JavaScript 1.0
 Quelle    : http://www.vampirehost.de/gruft/coding/ (cybaer@vampirehost.de)
             Die kostenlose Nutzung der Quelltexte in eigenen Projekten ist
             bei nicht-kommerziellen Projekten (und deren unentgeltlicher
             Herstellung) bei Nennung der Quelle ausdruecklich gestattet.
 InlineFunc: -
 Konstante : -
 Variable  : -
 SystemVar : -
 ExternVar : -
 Rueckgabe : Bearbeiteter String
 Anmerkung : -
 Beispiele : -
*/

function trim(text) {
 while(text.charAt(0)==" ") { text=text.substring(1,text.length); }
 while(text.charAt(text.length-1)==" ") { text=text.substring(0,text.length-1); }
 return text;
}

// ---------------------------------------------------------------------------

/* 'EscapeAll 111003' (c) by cybaer@vampirehost.de
   -----------------
 Inhalt    : Wandelt alle Zeichen ausser Buchstaben & Ziffern in Hex-Werte
 Aufruf    : escapeAll(string)
 Parameter : string (zu codierender string)
 Sprache   : JavaScript 1.0
 Quelle    : http://www.vampirehost.de/gruft/coding/ (cybaer@vampirehost.de)
             Die kostenlose Nutzung der Quelltexte in eigenen Projekten ist
             bei nicht-kommerziellen Projekten (und deren unentgeltlicher
             Herstellung) bei Nennung der Quelle ausdruecklich gestattet.
 InlineFunc: -
 Konstante : -
 Variable  : -
 SystemVar : -
 ExternVar : -
 Rueckgabe : Codierte Zeichenkette
 Anmerkung : -
 Beispiel  : escapeAll("Kleiner_Test.") ergibt "Kleiner%5FTest%2E"
*/

function escapeAll(string) {
 var i, c, r, temp="";
 string=escape(string);
 c="*"; r="%2A"; i=string.indexOf(c); while(i>=0) { temp+=string.substring(0,i)+r; string=string.substring(i+1,string.length); i=string.indexOf(c); } string=temp+string.substring(0,string.length); temp="";
 c="+"; r="%2B"; i=string.indexOf(c); while(i>=0) { temp+=string.substring(0,i)+r; string=string.substring(i+1,string.length); i=string.indexOf(c); } string=temp+string.substring(0,string.length); temp="";
 c="-"; r="%2D"; i=string.indexOf(c); while(i>=0) { temp+=string.substring(0,i)+r; string=string.substring(i+1,string.length); i=string.indexOf(c); } string=temp+string.substring(0,string.length); temp="";
 c="."; r="%2E"; i=string.indexOf(c); while(i>=0) { temp+=string.substring(0,i)+r; string=string.substring(i+1,string.length); i=string.indexOf(c); } string=temp+string.substring(0,string.length); temp="";
 c="/"; r="%2F"; i=string.indexOf(c); while(i>=0) { temp+=string.substring(0,i)+r; string=string.substring(i+1,string.length); i=string.indexOf(c); } string=temp+string.substring(0,string.length); temp="";
 c="@"; r="%40"; i=string.indexOf(c); while(i>=0) { temp+=string.substring(0,i)+r; string=string.substring(i+1,string.length); i=string.indexOf(c); } string=temp+string.substring(0,string.length); temp="";
 c="_"; r="%5F"; i=string.indexOf(c); while(i>=0) { temp+=string.substring(0,i)+r; string=string.substring(i+1,string.length); i=string.indexOf(c); } string=temp+string.substring(0,string.length); temp="";
 return string;
}

// ---------------------------- Zahlen-Bibliothek ---------------------------

// 'Number-Library 131203' (c) Cybaer - http://www.vampirehost.de/gruft/coding/jscript/numlib.htm

function getFrac(num) { num=""+num; return parseFloat("0."+num.substring(num.length-((num.indexOf(".")>=0)?num.length-num.indexOf(".")-1:0),num.length)); }
function stringInt(num,base,size) { var i, q, sign, result="", baseTable="0123456789ABCDEF"; num=parseInt(num); sign=(num<0)?"-":""; base=parseInt(base); size=(size)?size:0; if(!base || base>baseTable.length) { base=10; } while(true) { q=num/base; result=baseTable.charAt(parseInt(getFrac(q)*base))+result; num=parseInt(q); if(num==0) { break; } } q=""; size-=result.length; for(i=0;i<size;i++) { q+="0"; } return sign+q+result; }
function dezRound(num,pos) { if(pos<0) { pos=Math.pow(10,Math.abs(pos)); return Math.round(num/pos)*pos; } else if(pos>0) { pos=Math.pow(10,pos); return Math.round(num*pos)/pos; } else { return Math.round(num); } }
function dezInt(num,size,prefix) { prefix=(prefix)?prefix:"0"; var minus=(num<0)?"-":"", result=(prefix=="0")?minus:""; num=Math.abs(parseInt(num,10)); size-=(""+num).length; for(var i=1;i<=size;i++) { result+=""+prefix; } result+=((prefix!="0")?minus:"")+num; return result; }
function dezFrac(num,size,postfix) { postfix=(postfix)?postfix:"0"; var i, result=getFrac(Math.abs(num)); result=(result)?""+result:""; if(result) { result=result.substring(2,result.length); } size-=result.length; for(i=1;i<=size;i++) { result+=postfix; } return result; }
function dez(num,presize,postsize,prefix,postfix,fracSign) { fracSign=(fracSign)?fracSign:"."; var result=dezInt(num,presize,prefix)+fracSign+dezFrac(num,postsize,postfix); result=(result.substring(result.length-1,result.length)==fracSign)?result.substring(0,result.length-1):result; return result; }
function rnd(max) { if(Math.random) { return Math.ceil(Math.max(1,max)*Math.random()); } else { return max; } }

// ----------------------------- GfA-Bibliothek -----------------------------

// 'Lib-GfA2JS 131203' (c) Cybaer - http://www.vampirehost.de/gruft/coding/jscript/jsgfalib.htm
gfaInteger=4294967295; gfaIntegerSigned=2147483647;
function wrongJS(gfa,version) { alert("Dieser Browser ist leider zu alt!\n"+gfa+" braucht mindestens JavaScript "+version+"."); }
function parseGfA(data,isInt) { var result; data=""+data; if(data=="true") { result=-1; } else if(data!="false") { result=0; data=data.toLowerCase(); if(data.substring(0,1)=="&") { if(data.substring(0,2)=="&h") { result=parseInt(data.substring(2,data.length),16); result=(result<0)?0:result; } else if(data.substring(0,2)=="&x") { result=parseInt(data.substring(2,data.length),2); result=(result<0)?0:result; } else if(data.substring(0,2)=="&o") { result=parseInt(data.substring(2,data.length),8); result=(result<0)?0:result; } else { result=parseInt(data.substring(1,data.length),16); result=(result<0)?0:result; } } else if(data.substring(0,1)=="$") { result=parseInt(data.substring(1,data.length),16); result=(result<0)?0:result; } else if(data.substring(0,1)=="%") { result=parseInt(data.substring(1,data.length),2); result=(result<0)?0:result; } else { if(data.indexOf("e+")>1) { data=""+Math.pow(10,parseInt(data.substring(data.indexOf("e+")+2,data.length)))*parseFloat(data); } else if(data.indexOf("e-")>1) { data=""+Math.pow(10,parseInt(data.substring(data.indexOf("e-")+1,data.length)))*parseFloat(data); } data=(data.substring(0,1)=="-")?data:"0"+data; result=(isInt)?parseInt(data.substring(0,data.length),10):parseFloat(data.substring(0,data.length)); } } return (result>=0 || result<0)?result:0; }
function INPUT(text) { text=(text)?text:""; return prompt(text,""); }
function PRINT(data,channel) { if(typeof(channel)!="undefined") { channel=parseGfA(channel); } if(channel>=0 && top.frames[channel]) { top.frames[channel].document.write(data); } else { document.write(data); } }
function PRINTLN(data,channel) { if(typeof(channel)!="undefined") { channel=parseGfA(channel); } if(channel>=0 && top.frames[channel]) { top.frames[channel].document.write(data); } else { document.write(data); } }
function SPC(size) { return STRING$(size,"&#160;",true); }
function INSTR(text,string,pos) { if(string) { pos=(!pos)?1:parseGfA(pos); return text.indexOf(string,Math.max(0,pos-1))+1; } else { return 0; } }
function LEFT$(text,num) { num=(num)?parseGfA(num):1; return text.substring(0,num); }
function LEN(text) { return text.length; }
function MID$(text,pos,num) { pos=parseGfA(pos)-1; if(typeof(num)=="undefined") { num=text.length-pos; } else { num=parseGfA(num); } return text.substring(pos,pos+num); } // JS 1.1
function RIGHT$(text,num) { num=(num)?parseGfA(num):1; return text.substring(text.length-num,text.length); }
function RINSTR(text,string,pos) { if(string) { pos=(!pos)?text.length:parseGfA(pos); return text.lastIndexOf(string,pos-1)+1; } else { return 0; } }
function SPACE$(size,isHTML) { size=parseGfA(size); var result=""; var string=(isHTML)?"&#160;":" "; for(var i=0;i<size;i++) { result+=string; } return result; }
function STRING$(size,data,isNumber) { size=parseGfA(size); var string="",result=""; if(isNumber) { if(String.fromCharCode) { string=String.fromCharCode(parseGfA(data)); } else { wrongJS("STRING$(size,num)",1.2); } } else { string=data; } for(var i=1;i<=size;i++) { result+=string; } return result; } // JS 1.2
function TRIM$(text) { while(text.charAt(0)==" ") { text=text.substring(1,text.length); } while(text.charAt(text.length-1)==" ") { text=text.substring(0,text.length-1); } return text; }
function UPPER$(text) { return text.toUpperCase(); }
function ADD(num1,num2) { return parseGfA(num1,true)+parseGfA(num2,true); }
function DIV(num1,num2) { return parseGfA(num1,true)/parseGfA(num2,true); }
function MOD(num1,num2) { return parseGfA(num1,true)%parseGfA(num2,true); }
function MUL(num1,num2) { return parseGfA(num1,true)*parseGfA(num2,true); }
function SUB(num1,num2) { return parseGfA(num1,true)-parseGfA(num2,true); }
function ABS(num) { return Math.abs(parseGfA(num)); }
function EVEN(num) { num=parseGfA(num,true); return (num%2)?0:-1; }
function FIX(num) { return parseGfA(num,true); }
function FRAC(num) { num=parseGfA(num); return parseFloat("0."+num.substring(num.length-((num.indexOf(".")>=0)?num.length-num.indexOf(".")-1:0),num.length)); }
function INT(num) { return Math.floor(parseGfA(num)); }
function ODD(num) { num=parseGfA(num,true); return (num%2)?-1:0; }
function PRED(data,isString) { if(!isString) { return parseGfA(data,true)-1; } else if(String.fromCharCode) { return String.fromCharCode(data.charCodeAt(0)-1); } else { wrongJS("PRED(string$)",1.2); return ""; } }
function ROUND(num,pos) { num=parseGfA(num); pos=parseGfA(pos); if(pos<0) { pos=Math.pow(10,Math.abs(pos)); return Math.round(num/pos)*pos; } else if(pos>0) { pos=Math.pow(10,pos); return Math.round(num*pos)/pos; } else { return Math.round(num); } }
function SGN(num) { num=parseGfA(num); return (num>0)?1:(num<0)?-1:0; }
function SQR(num) { return Math.sqr(parseGfA(num)); }
function SUCC(data,isString) { if(!isString) { return parseGfA(data,true)+1; } else if(String.fromCharCode) { return String.fromCharCode(data.charCodeAt(0)+1); } else { wrongJS("SUCC(string$)",1.2); return ""; } }
function TRUNC(num) { return parseGfA(num,true); }
function ACOS(radian) { return Math.acos(parseGfA(radian)); }
function ASIN(radian) { return Math.asin(parseGfA(radian)); }
function ATN(radian) { return Math.atan(parseGfA(radian)); }
function COS(radian) { return Math.cos(parseGfA(radian)); }
function COSQ(degree) { return Math.cos(parseGfA(degree)*Math.PI/180); }
function DEG(radian) { return parseGfA(radian)*180/Math.PI; }
function RAD(degree) { return parseGfA(degree)*Math.PI/180; }
function SIN(radian) { return Math.sin(parseGfA(radian)); }
function SINQ(degree) { return Math.sin(parseGfA(degree)*Math.PI/180); }
function TAN(radian) { return Math.tan(parseGfA(radian)); }
function MAX(data1,data2) { return Math.max(parseGfA(data1),parseGfA(data2)); } // Momentan nur 2 Zahlen und keine Zeichenketten.
function MIN(data1,data2) { return Math.min(parseGfA(data1),parseGfA(data2)); } // Momentan nur 2 Zahlen und keine Zeichenketten.
function RAND(num) { num=parseGfA(num); num=(num>65535)?num%65535:num; return RANDOM(num); }
function RANDOM(num) { num=parseGfA(num); if(Math.random) { return Math.ceil(Math.max(1,max)*Math.random()); } else { return max; } }
function RND() { if(Math.random) { return Math.random(); } else { return 0; } }
function ASC(text) { var result=""; if(String.fromCharCode) { result=(text.length)?(text.charCodeAt(0)):0; } else { wrongJS("ASC()",1.2); } return result; }
function BIN$(num,size) { var q, result=""; num=parseGfA(num,true); if(num<0) { num=gfaInteger+num; } while(true) { q=num/2; result=((FRAC(q))?"1":"0")+result; num=parseInt(q); if(num==0) { break; } } if(typeof(size)!="undefined") { size=(size<0 || size>32)?32:size; result="00000000000000000000000000000000"+result; result=result.substring(result.length-size,result.length); } return result; }
function CHR$(num) { num=parseGfA(num,true); num=(256+num)%256; var result=""; if(String.fromCharCode) { result=String.fromCharCode(num); } else { wrongJS("CHR$()",1.2); } return result; } // JS 1.2
function HEX$(num,size) { var q, baseTable="0123456789ABCDEF", result=""; num=parseGfA(num,true); if(num<0) { num=gfaInteger+1+num; } while(true) { q=num/16; result=baseTable.charAt(parseInt(FRAC(q)*16))+result; num=parseInt(q); if(num==0) { break; } } if(typeof(size)!="undefined") { size=(size<0 || size>8)?8:size; result="00000000"+result; result=result.substring(result.length-size,result.length); } return result; }
function OCT$(num,size) { var q, result=""; num=parseGfA(num,true); if(num<0) { num=gfaInteger+num; } while(true) { q=num/8; result=""+parseInt(FRAC(q)*8)+result; num=parseInt(q); if(num==0) { break; } } if(typeof(size)!="undefined") { size=(size<0 || size>11)?11:size; result="00000000000"+result; result=result.substring(result.length-size,result.length); } return result; }
function STR$(num,size,real) { var i, q, strInt, strFrac, result=""; num=parseGfA(num); if(typeof(real)=="undefined") { strFrac=""+FRAC(Math.abs(num)); if(strFrac) { strFrac=strFrac.substring(2,strFrac.length); } strInt=""+parseInt(num); } else { real=parseGfA(real); if(real==0) { strFrac=""; strInt=Math.round(num); } else { strFrac=""+FRAC(Math.abs(ROUND(num,real))); if(strFrac) { strFrac=strFrac.substring(2,strFrac.length); } q=real-strFrac.length; for(i=1;i<=q;i++) { strFrac+="0"; } strInt=""+parseInt(num); } } strFrac=(strFrac)?"."+strFrac:strFrac; result=strInt+strFrac; if(typeof(size)!="undefined") { size=parseGfA(size); if(result.length>size) { if(strFrac.length)  { if(typeof(real)=="undefined") { result=result.substring(0,size); } else { result=result.substring(result.length-size,result.length); } } else { result=""+ROUND(result,-(result.length-size)); result=result.substr(0,result.length-(result.length-size)); } } result=SPACE$(size-result.length)+result; } return result; }
function VAL(text) { var result=0; text=""+text.toLowerCase(); if(text.substring(0,2)=="&h") { result=parseInt(text.substring(2,text.length),16); result=(result<0)?0:result; } else if(text.substring(0,2)=="&x") { result=parseInt(text.substring(2,text.length),2); result=(result<0)?0:result; } else if(text.substring(0,2)=="&o") { result=parseInt(text.substring(2,text.length),8); result=(result<0)?0:result; } else if(text.substring(0,1)=="$" || text.substring(0,1)=="&") { result=parseInt(text.substring(1,text.length),16); result=(result<0)?0:result; } else if(text.substring(0,1)=="%") { result=parseInt(text.substring(1,text.length),2); result=(result<0)?0:result; } else { text=(text.substring(0,1)=="-")?text:"0"+text; result=parseFloat(text.substring(0,text.length),10); } return (result>=0 || result<0)?result:0; }
function TIMER() { var actual=new Date(); return parseInt(actual.getTime()/5); }
function ALERT(icon,text,button,buttontext) { text=rc(text,"|","\n"); if(buttontext.indexOf("|")>=0) { return -confirm(text)+2; } else { alert(text); return 1; } }
FALSE=0;
PI=Math.PI;
TRUE=-1;

// Fields-Library (c) Cybaer - http://www.vampirehost.de/gruft/coding/gfabasic/fields.htm
function field$(feld$,nr,trenner$) { var entry$,v,w,nrOld; if(!trenner$) { trenner$="|"; } feld$=feld$+trenner$; nrOld=nr; w=0; while(true) { v=SUCC(w); w=INSTR(feld$,trenner$,v); if(w==0) { entry$=MID$(feld$,v,MAX(SUB(LEN(feld$),PRED(v)),0)); } else { nr--; if(nr<=0) { entry$=MID$(feld$,v,MAX(SUB(w,v),0)); } } if(w==0) { break; } if(nr<=0) { break; } } return entry$; }
function rfield$(feld$,nr,trenner$) { var max,entry$; max=cfield(feld$,trenner$); if(nr<=max) { entry$=field$(feld$,SUCC(SUB(max,nr)),trenner$); } return entry$; }
function cfield(feld$,trenner$) { var count,w,l; if(!trenner$) { trenner$="|"; } l=LEN(feld$); count=ABS(l>0); while(true) { w=INSTR(feld$,trenner$,SUCC(w)); if(w==0) { break; } count++; if(w==l) { break; } } return count; }
function infield(feld$,string$,nr,trenner$,part) { var q,adr,lfeld$,rfeld$,lfeld=0,result; if(!trenner$) { trenner$="|"; } if(nr<=1) { adr=1; lfeld$=""; rfeld$=feld$; } else { adr=adrfield(feld$,nr,trenner$); lfeld$=LEFT$(feld$,PRED(adr)); rfeld$=MID$(feld$,adr); } if(lfeld$!="") { lfeld=PRED(cfield(lfeld$,trenner$)); } if(part) { q=INSTR(rfeld$,string$); } else { q=INSTR(trenner$+rfeld$+trenner$,trenner$+string$+trenner$); } if(q==0) { result=0; } else { result=nrfield(rfeld$,q,trenner$)+lfeld; } return result; }
function setfield$(feld$,nr,string$,trenner$) { var count,adr,len,lfeld$,rfeld$; if(!trenner$) { trenner$="|"; } count=cfield(feld$,trenner$); if(nr<=count) { adr=adrfield(feld$,nr,trenner$); lfeld$=LEFT$(feld$,PRED(adr)); rfeld$=MID$(feld$,ADD(adr,LEN(field$(feld$,nr,trenner$)))); feld$=lfeld$+string$+rfeld$; } else { feld$=addfield$(feld$,nr,string$,trenner$); } return feld$; }
function addfield$(feld$,nr,string$,trenner$) { var count,adr,lfeld$,rfeld$; if(!trenner$) { trenner$="|"; } count=cfield(feld$,trenner$); if(nr<=count) { if(nr>0) { adr=adrfield(feld$,nr,trenner$); lfeld$=LEFT$(feld$,PRED(adr)); rfeld$=trenner$+MID$(feld$,adr); } else { lfeld$=""; rfeld$=""; } } else { if(count>0) { lfeld$=feld$+STRING$(SUB(nr,count),trenner$); rfeld$=""; } else { lfeld$=STRING$(PRED(nr),trenner$); rfeld$=""; } } feld$=lfeld$+string$+rfeld$; return feld$; }
function delfield$(feld$,nr,trenner$) { var count,adr,lfeld$,rfeld$; if(!trenner$) { trenner$="|"; } count=cfield(feld$,trenner$); if(nr<=count) { adr=adrfield(feld$,nr,trenner$); lfeld$=LEFT$(feld$,PRED(adr)); rfeld$=MID$(feld$,ADD(adr,LEN(field$(feld$,nr,trenner$)))); if(RIGHT$(lfeld$)==trenner$) { lfeld$=LEFT$(lfeld$,PRED(LEN(lfeld$))); } else if(LEFT$(rfeld$)==trenner$) { rfeld$=RIGHT$(rfeld$,PRED(LEN(rfeld$))); } feld$=lfeld$+rfeld$; } return feld$; }
function adrfield(feld$,nr,trenner$) { var v,w,nrOld; if(!trenner$) { trenner$="|"; } feld$=feld$+trenner$; nrOld=nr; w=0; while(true) { v=SUCC(w); w=INSTR(feld$,trenner$,v); if(w==0) { v=0; } else { nr--; } if(w==0) { break; } if(nr<=0) { break; } } return v; }
function nrfield(feld$,adr,trenner$) { var nr; if(!trenner$) { trenner$="|"; } nr=cfield(LEFT$(feld$,adr),trenner$); if(MID$(feld$,adr,1)==trenner$) { nr--; } return nr; }
function iblock$(feld$,nr,ltrenner$,rtrenner$,border) { var left,right,entry$; left=cfield(feld$,ltrenner$); right=cfield(feld$,rtrenner$); if(left>0 && right>0) { entry$=field$(field$(feld$,SUCC(nr),ltrenner$),1,rtrenner$); if(border && entry$!="") { entry$=ltrenner$+field$(field$(feld$,SUCC(nr),ltrenner$),1,rtrenner$)+rtrenner$; } } return entry$; }
function oblock$(feld$,nr,ltrenner$,rtrenner$,offen) { var left,right,entry$; if(offen) { entry$=iblock$(feld$+ltrenner$,nr,rtrenner$,ltrenner$,false); } else { entry$=iblock$(rtrenner$+feld$+ltrenner$,nr,rtrenner$,ltrenner$,false); } return entry$; }
function delblocks$(text$,ltrenner$,rtrenner$,offen) { var q=0,q$,result$=""; while(true) { q++; q$=oblock$(rc(text$,rtrenner$+ltrenner$,""),q,ltrenner$,rtrenner$,offen); result$=result$+q$; if(q$=="" && q>1) { break; } } return result$; }
function deltags$(html$,unix) { var newline$="",result$; if(isCHR$) { if(unix) { newline$=CHR$(10); } else { newline$=CHR$(10)+CHR$(13); } } else { newline$=" "; } html$=rtag(html$,"br",newline$); html$=rtag(html$,"div",newline$); html$=rtag(html$,"p",newline$+newline$); html$=rtag(html$,"table",newline$+newline$); html$=rtag(html$,"hr",newline$+STRING$(75,"-")+newline$); html$=rc(html$,newline$+newline$+newline$+newline$,newline$+newline$); html$=rc(html$,"  "," "); html$=rc(html$," "+newline$,newline$); html$=delblocks$(html$,"<",">",true); return TRIM$(rc(html$,"  "," ")); }
function rtag(html$,element$,text$) { html$=rc(html$,"<"+element$+">",text$); html$=rc(html$,"<"+element$+" ",text$+"<!"); element$=UPPER$(element$); html$=rc(html$,"<"+element$+">",text$); html$=rc(html$,"<"+element$+" ",text$+"<!"); return html$; }
// Number-Library (c) Cybaer
function dez$(num,size,prefix) { dezInt(num,size,prefix); }

// =========================== System-Bibliothek ============================

/* 'ImgSwitch+ 100903' (c) by cybaer@vampirehost.de
   -------------------
 Inhalt    : Laedt fuer beliebig viele IMGs 1-2 Grafiken und/oder ersetzt Statuszeile des Browsers
 Aufruf    : S(Name1,Source1,Name2,Source2,Text,TopDown,All)
 Parameter : Name1 (Name des/der ersten zu ersetzenden IMG-Tags)
             Source1 (Dateiname der ersten Ersatzgrafik)
             Name2 (Name des/der zweiten zu ersetzenden IMG-Tags)
             Source2 (Dateiname der zweiten Ersatzgrafik)
             Text (gewuenschter Text der Statuszeile; " " wenn Statuszeile geloescht werden soll)
             TopDown (Reihenfolge der Ersetzungen: true  -> von oben nach unten
                                                   False -> von unten nach oben)
             All (Anzahl der Ersetzungen: true  -> alle zutreffenden Grafiken werden ersetzt
                                          False -> nur die erste zutreffende Grafik wird ersetzt)
 Sprache   : JavaScript 1.0 (partiell) & JavaScript 1.1 (gesichert)
 Quelle    : http://www.vampirehost.de/gruft/coding/ (cybaer@vampirehost.de)
             Die kostenlose Nutzung der Quelltexte in eigenen Projekten ist
             bei nicht-kommerziellen Projekten (und deren unentgeltlicher
             Herstellung) bei Nennung der Quelle ausdruecklich gestattet.
 InlineFunc: -
 Konstante : -
 Variable  : oldSource1/oldSource2 (Jeweils letzte ersetzte Grafik)
 SystemVar : -
 ExternVar : -
 Rueckgabe : true
 Anmerkung : oldSource1 & oldSource2 beinhalten die jeweils zuletzt ersetzte Grafik. Diese Variablen
             werden anstelle der Parameter Source1 & Source2 verwendet, falls diese leer sind.
 Beispiele :
  S("Img","i2.gif","","","",0,0) ersetzt die Grafik mit Namen "Img" durch "i2.gif"
   Gibt es mehrere Grafiken mit Namen "Img", so obliegt es dem Browser, welche er ersetzt (schnelle Variante)
  S("Img*","i2.gif","","","",0,0) ersetzt die erste Grafik (unten beginnend), deren Namen mit "Img" anfaengt
  S("Img*","i2.gif","","","",0,-1) ersetzt alle Grafiken (unten beginnend), deren Namen mit "Img" anfaengt
  S("Img","i2.gif","","","",0,-1) ersetzt alle Grafiken (unten beginnend) mit Namen "Img"
  S("Img","i2.gif","","","",-1,-1) ersetzt alle Grafiken (oben beginnend) mit Namen "Img"
  S("Img","i2.gif","Txt","t2.gif","",0,0) ersetzt "Img" durch "i2.gif" und "Txt" durch "t2.gif"
  S("Img","","Txt","","",0,0) ersetzt "Img" und "Txt" durch die Grafiken vor der letzten Auswechslung
  S("","","","","Hinweis",0,0) gibt in der Statuszeile den Text "Hinweis" aus
  S("","","",""," ",0,0) loescht den Text in der Statuszeile
*/

function S(Name1,Source1,Name2,Source2,Text,TopDown,All) {
 var i, SNameBeginn;
 if(Text!="") { window.status=Text; }
 if(document.images) { if(document.images[0]) {
   if(Name1!="" && Source1=="" && oldSource1!="") { Source1=oldSource1; }
   if(Name1!="" && Source1!="") {
    SNameBeginn=Name1.substring(0,Name1.indexOf("*"));
    if(SNameBeginn=="" && All==false) {
     oldSource1=document.images[Name1].src;
     document.images[Name1].src=Source1;
    } else {
     if(TopDown) {
      for(i=0;i<document.images.length;i++) {
       if(document.images[i].name==Name1 || (SNameBeginn!="" && document.images[i].name.substring(0,SNameBeginn.length)==SNameBeginn)) {
        oldSource1=document.images[i].src;
        document.images[i].src=Source1;
        if(All==false) { break; }
       }
      }
     } else {
      for(i=document.images.length-1;i>=0;i--) {
       if(document.images[i].name==Name1 || (SNameBeginn!="" && document.images[i].name.substring(0,SNameBeginn.length)==SNameBeginn)) {
        oldSource1=document.images[i].src;
        document.images[i].src=Source1;
        if(All==false) { break; }
       }
      }
     }
    }
   }
   if(Name2!="" && Source2=="" && oldSource2!="") { Source2=oldSource2; }
   if(Name2!="" && Source2!="") {
    SNameBeginn=Name2.substring(0,Name2.indexOf("*"));
    if(SNameBeginn=="" && All==false) {
     oldSource2=document.images[Name2].src;
     document.images[Name2].src=Source2;
    } else {
     if(TopDown) {
      for(i=0;i<document.images.length;i++) {
       if(document.images[i].name==Name2 || (SNameBeginn!="" && document.images[i].name.substring(0,SNameBeginn.length)==SNameBeginn)) {
        oldSource2=document.images[i].src;
        document.images[i].src=Source2;
        if(All==false) { break; }
       }
      }
     } else {
      for(i=document.images.length-1;i>=0;i--) {
       if(document.images[i].name==Name2) {
        if(document.images[i].name==Name2 || (SNameBeginn!="" && document.images[i].name.substring(0,SNameBeginn.length)==SNameBeginn)) {
         oldSource2=document.images[i].src;
         document.images[i].src=Source2;
         if(All==false) { break; }
        }
       }
      }
     }
    }
   }
  }
 }
 return true;
}

// --------------------------------------------------------------------------

/* 'ImgFlip 100903' (c) by cybaer@vampirehost.de
   ----------------
 Inhalt    : Laedt fuer ein IMG eine Grafik
 Aufruf    : Fn(Name)
 Parameter : n (im Funktionsnamen(!): Ziffer der zu ersetzenden Grafik (1 oder 2)
             Name (Name des zu ersetzenden IMG-Tags)
 Sprache   : JavaScript 1.1 (gesichert)
 Quelle    : http://www.vampirehost.de/gruft/coding/ (cybaer@vampirehost.de)
             Die kostenlose Nutzung der Quelltexte in eigenen Projekten ist
             bei nicht-kommerziellen Projekten (und deren unentgeltlicher
             Herstellung) bei Nennung der Quelle ausdruecklich gestattet.
 InlineFunc: S()
 Konstante : -
 Variable  : -
 SystemVar : -
 ExternVar : FimgDir (enthaelt das Verzeichnis der Grafiken)
 Rueckgabe : Rueckgabewert von S()
 Anmerkung : Der Dateiname muss sich bilden koennen aus Dateipfad + IMG-Name + 0/1/2 + Dateiextension
 Beispiele :
  F0("i") entspricht S("i","i0.gif","","","",0,0) (bei FimgDir="")
  F1("i") entspricht S("i","i1.gif","","","",0,0) (bei FimgDir="")
  F2("i") entspricht S("i","img/i2.gif","","","",0,0) (bei FimgDir="img/")
*/

function F0(Name) {
 if(document.images) {
  var FimgFile=document.images[Name].src;
  var FimgExt=FimgFile.substring(FimgFile.lastIndexOf("."),FimgFile.length);
  S(Name,FimgDir+Name+'0'+FimgExt,'','','',0,0);
 }
}

function F1(Name) {
 if(document.images) {
  var FimgFile=document.images[Name].src;
  var FimgExt=FimgFile.substring(FimgFile.lastIndexOf("."),FimgFile.length);
  S(Name,FimgDir+Name+'1'+FimgExt,'','','',0,0);
 }
}

function F2(Name) {
 if(document.images) {
  var FimgFile=document.images[Name].src;
  var FimgExt=FimgFile.substring(FimgFile.lastIndexOf("."),FimgFile.length);
  S(Name,FimgDir+Name+'2'+FimgExt,'','','',0,0);
 }
}

// --------------------------------------------------------------------------

/* 'Page BlendOver 120703' (c) Cybaer - http://www.vampirehost.de/gruft/coding/jscript/blending.htm */
function BlendOver(duration,effect) {
 if(duration>0) {
  if(effect.length) {
   effect=rc(effect," ",-1);
   effect=rc(effect,"::",12);
   effect=rc(effect,"[]<-",0);
   effect=rc(effect,"[]->",1);
   effect=rc(effect,"O<-",2);
   effect=rc(effect,"O->",3);
   effect=rc(effect,"||->",8);
   effect=rc(effect,"=_",9);
   effect=rc(effect,"#->",10);
   effect=rc(effect,"#_",11);
   effect=rc(effect,"->|<-",13);
   effect=rc(effect,"<-|->",14);
   effect=rc(effect,"|->",6);
   effect=rc(effect,"|<-",7);
   effect=rc(effect,"\-_",17);
   effect=rc(effect,"/_-",18);
   effect=rc(effect,"/-_",19);
   effect=rc(effect,"\_-",20);
   effect=rc(effect,"_-",4);
   effect=rc(effect,"-_",5);
   effect=rc(effect,">-",15);
   effect=rc(effect,"-<",16);
   effect=rc(effect,"==",21);
   effect=rc(effect,"||||",22);
   effect=rc(effect,"*",23);
   if(effect.indexOf(",")+1) { var effects=effect.split(","); effect=effects[rnd(effects.length)-1]; }
  }
  if(effect==23) { effect=rnd(24)-2; }
  if(effect==-1) {
   document.writeln('<meta http-equiv="Page-Exit" content="BlendTrans(Duration='+(duration/1000)+')">');
  } else {
   document.writeln('<meta http-equiv="Page-Exit" content="RevealTrans(Duration='+(duration/1000)+',Transition='+effect+')">');
  }
 }
}

// --------------------------------------------------------------------------

/* 'Ticker4All 041103' (c) Cybaer - http://www.vampirehost.de/gruft/coding/dhtml/ticker.htm */
function Ticker(Name,Text,LCursor,RCursor,Size,Filler,FillerCheck,Chardelay,Linedelay,WhiteSpace,Status,ImgMask,Capitals,Width,Height) {
 var infiniteLineend=" +++ ", finiteLineend=" ...", finiteLinestart="... ", tickerSpace=" ", htmlText="", formText, i;
 tickerName=Name; tickerLCursor=LCursor; tickerRCursor=RCursor; tickerSize=Size; tickerChardelay=Chardelay; tickerLinedelay=Linedelay;
 tickerElement=""; tickerWspace=(String.fromCharCode)?String.fromCharCode(160):"";

 is_w3cTicker=(document.getElementById && document.getElementById(tickerName) && !window.opera)?true:false;
 is_w3cxTicker=(document.getElementById && document.getElementById(tickerName) && (document.getElementById(tickerName).innerHTML || document.getElementById(tickerName).innerHTML==""))?true:false;
 is_formTicker=(document.forms[tickerName] && document.forms[tickerName].elements[0] && (document.forms[tickerName].elements[0].type=="text"));
 formText=(is_formTicker)?document.forms[tickerName].elements[0].value:"";
 is_domTicker=(is_w3cxTicker || is_w3cTicker);
 is_formTicker=(!is_domTicker && is_formTicker && (Text || formText))?true:false;
 is_statusTicker=(!is_domTicker && !is_formTicker && Status && Text)?true:false;
 is_imageTicker=(document.images && ImgMask && ImgMask.indexOf(".")+1 && Size>0 && " ".charCodeAt && (Text || is_domTicker))?true:false;
 is_infiniteTicker=((is_formTicker || is_statusTicker) && !is_imageTicker && Size>0)

 if(is_w3cTicker || is_w3cxTicker) { tickerElement=eval(document.getElementById(tickerName)); }
 else if(is_formTicker) { tickerElement=eval(document.forms[tickerName].elements[0]); }

 if(tickerElement) {
  if(is_w3cxTicker) {
   htmlText=tickerElement.innerHTML; tickerElement.innerHTML="";
   htmlText=replaceHtmlTags(htmlText,"!--","|",true);
   htmlText=replaceHtmlTags(htmlText,"BR","|",true);
   htmlText=replaceHtmlTags(htmlText,"HR","|",true);
  }
  else if(is_w3cTicker) {
   if(tickerElement.hasChildNodes()) { var Node=tickerElement.firstChild;
    while(Node!=null) {
     if(Node.nodeName=="#text") { Value=reduceHtmlSpaces(Node.nodeValue); htmlText+=Value; Node.nodeValue=""; }
     else if(Node.nodeName=="#comment" || Node.nodeName=="BR" || Node.nodeName=="HR") { htmlText+="|"; }
    Node=Node.nextSibling;
    }
    for(i=(tickerElement.firstChild.nodeType==3)?1:0;i<tickerElement.childNodes.length;i++) { tickerElement.removeChild(tickerElement.childNodes[i]); }
   }
   if(!tickerElement.hasChildNodes()) { tickerElement.appendChild(document.createTextNode("")); }
  }
  else if(is_formTicker) { htmlText=formText; tickerElement.value=""; }
  if(!Text) { Text=(formText)?formText:htmlText; }
 }

 Text=trim(reduceHtmlSpaces(replaceHtmlTags(Text,"","",true))); tickerLines=new Array(); i=1;
 while(Text.indexOf("| ")>=0) { Text=rc(Text,"| ","|"); }
 while(Text.indexOf(" |")>=0) { Text=rc(Text," |","|"); }
 while(Text.indexOf("||")>=0) { Text=rc(Text,"||","|"); }
 if(Text.charAt(0)=="|") { Text=Text.substr(1,Text.length-1); }
 if(Text.charAt(Text.length-1)=="|") { Text=Text.substr(0,Text.length-1); }
 while(Text.indexOf("|")>=0) { tickerLines[i]=Text.substring(0,Text.indexOf("|")); Text=Text.substring(tickerLines[i].length+1,Text.length); i++; } if(Text) { tickerLines[i]=Text; Text=""; }

 if(!tickerLines.length) { return false; }
 else {
  if(Size>0) {  // Konstanter Zeichenbereich (Endlosticker)
   if(is_infiniteTicker) {
    var tickerTrailingSpaces=infiniteLineend; var tickerEndSpaces=""; }
   else {
    var tickerTrailingSpaces=""; for(i=Size;i>1;i--) { tickerTrailingSpaces+=tickerSpace; }
    tickerTrailingSpaces+=tickerSpace; var tickerEndSpaces=tickerTrailingSpaces;
   }
   tickerLines[0]=tickerTrailingSpaces; i=1;
   while(i<tickerLines.length-1) {
    tickerLines[0]+=tickerLines[i]+tickerSpace;
    if(Filler && FillerCheck.indexOf(tickerLines[i].charAt(tickerLines[i].length-1))>=0) { tickerLines[0]+=tickerTrailingSpaces; }
    i++;
   }
   tickerLines[0]+=tickerLines[i]+tickerEndSpaces;
   Size=Math.min(Size,tickerLines[0].length); tickerSize=Size;
   if(is_infiniteTicker) { tickerLines[0]+=tickerLines[0].substr(0,tickerSize); }
   if(is_infiniteTicker) { tickerLines[0]=reduceHtmlSpaces(tickerLines[0]); }
   if(WhiteSpace && String.fromCharCode) { tickerLines[0]=rc(tickerLines[0]," ",String.fromCharCode(160)); }
  }
  else {
   if(Filler && tickerLines.length>2) {
    for(i=1;i<tickerLines.length-1;i++) { if(tickerLines[i] && FillerCheck.indexOf(tickerLines[i].charAt(tickerLines[i].length-1))<0) { tickerLines[i]+=finiteLineend; tickerLines[i+1]=finiteLinestart+tickerLines[i+1]; } }
    if(WhiteSpace && String.fromCharCode) { for(i=1;i<tickerLines.length;i++) { tickerLines[i]=rc(tickerLines[i]," ",String.fromCharCode(160)); } }
   }
  }

  if(is_imageTicker) {
   if(Capitals) { for(i=0;i<tickerLines.length;i++) { tickerLines[i]=tickerLines[i].toUpperCase(); } }
   cacheTicker(ImgMask,Capitals);
   Width=(Width)?'width="'+Width+'" ':''; Height=(Height)?'height="'+Height+'" ':'';
   tickerSpace=tickerImg+32+tickerExt; nr=-1; document.write('<span id="'+Name+'Img">');
   for(i=0;i<LCursor.length;i++) { nr++; document.write('<img src="'+tickerSpace+'" name="'+Name+'Img'+nr+'" '+Width+Height+' alt="" border="0">'); }
   for(i=0;i<Size;i++) { nr++; document.write('<img src="'+tickerSpace+'" name="'+Name+'Img'+nr+'" '+Width+Height+' alt="" border="0">'); }
   for(i=0;i<RCursor.length;i++) { nr++; document.write('<img src="'+tickerSpace+'" name="'+Name+'Img'+nr+'" '+Width+Height+' alt="" border="0">'); }
   document.write('<\/span>');
  }

  return doTicker((Size>0)?0:1,0,1);
 }
}

function crunchPeanut(peanutJar) { return rc(escapeAll(peanutJar),"%","_"); } function decrunchPeanut(peanutJar) { return unescape(rc(peanutJar,"_","%")); } function replaceDivs(data) { return rc(rc(rc(data,"{","["),"}","]"),"|","/"); } function clusterPeanut(data) { return "{"+data+"}"; } function scriptOpt(show) { var i, q, id=""; optID="WebOptimizer0102"; optNrDig=4; optActual=new Date(); optImg=new Image(); optImgFile=doc_rootPath+"img/optimize.gif"; var peanutJar=decrunchPeanut(top.window.name); if(peanutJar.indexOf(optID)==-1) { optHead="WOHead||-"; optHead=setfield$(optHead,4,dezInt(agt_screenWidth,4)+"x"+dezInt(agt_screenHeight,4)); q=dez(agt_jsVersion,1,1); id+=q; optHead=setfield$(optHead,5,q); q="WoW"+((window.outerWidth)?1:0)+"WeX"+Math.abs(is_external)+"NLa"+((navigator.language)?1:0)+"NuL"+((navigator.userLanguage)?1:0)+"NOn"+((navigator.online)?1:0)+"NNe"+((navigator.netscape)?1:0)+"NOp"+((navigator.opera)?1:0)+"DAl"+Math.abs(is_ieDOM)+"DLa"+Math.abs(is_nnDOM)+"DW3"+(Math.abs(is_w3cDOM)+Math.abs(is_w3cDOM))+")"; id+=q; optHead=setfield$(optHead,6,q); q=((is_ie)?"IE  "+dez(agt_ieVersion,1,2):(is_nav)?"Nav "+dez(agt_version,1,2):(is_op)?"OP  "+dez(agt_opVersion,1,2):(is_kq)?"KQ  "+dez(agt_kqVersion,1,2):(is_saf)?"Saf "+dez(agt_safVersion,1,2):"?  ")+" "+((agt_os)?agt_os:"?")+" ("+((agt_lang)?agt_lang:"?")+")"; id+=q; optHead=setfield$(optHead,7,q); q=navigator.appName+", "+navigator.appVersion+", "+((navigator.platform)?navigator.platform:"?"); id+=q; optHead=setfield$(optHead,8,replaceDivs(q)); q=navigator.userAgent; id+=q; optHead=setfield$(optHead,9,replaceDivs(q)); optHead=setfield$(optHead,10,"-"); optHead=setfield$(optHead,11,doc_Server); optHead=setfield$(optHead,12,top.window.doc_Referrer); q=id; if(String.fromCharCode) { id=0; for(i=0;i<q.length;i++) { id+=q.charCodeAt(i); } id=Math.floor(doc_time.getTime()/7200000)*720*10000*1000+id+(agt_screenWidth*agt_screenHeight)+(agt_maxWidth*agt_maxHeight); } else { id=Math.floor(doc_time.getTime()/36000000)*360*10000*1000; } optHead=setfield$(optHead,2,id); q=doc_time.getYear(); q+=(q<999)?1900:0; q+="/"+dezInt((doc_time.getMonth()+1),2)+"/"+dezInt(doc_time.getDate(),2)+" "+dezInt(doc_time.getHours(),2)+":"+dezInt(doc_time.getMinutes(),2)+"'"+dezInt(doc_time.getSeconds(),2)+"''"+dezInt(doc_time.getMilliseconds(),3)+" ("+doc_time.getTime()+")"; optHead=setfield$(optHead,13,q); optHead=setfield$(optHead,14,"-"); optHead=setfield$(optHead,15,(agt_speed<0)?-dezInt(agt_speed,5):dezInt(agt_speed,6)); optBody=setfield$("0000",2,"00000"); optVal=clusterPeanut(optID)+clusterPeanut(optHead)+clusterPeanut(optBody); } else { optVal=peanutJar; WOStartCluster=infield(optVal,optID,1,"}",true); optHead=iblock$(optVal,WOStartCluster+1,"{","}"); agt_speed=parseInt(field$(optHead,15),10); optBody=iblock$(optVal,WOStartCluster+2,"{","}"); } if(optHead.substring(0,6)=="WOHead") { optTime=optActual.getTime(); optNr=parseInt(field$(optBody,1),10)+1; optBody=setfield$(optBody,1,dezInt(optNr,optNrDig)); optBody=setfield$(optBody,3,doc_Server+"/"+doc_fullFile); if(doc_MainDir=="Augen-Blicke") { optBody=setfield$(optBody,4,top.document.title); } else { optBody=setfield$(optBody,4,document.title); } optBody=setfield$(optBody,5,doc_Referrer); q=top.window.doc_User+((top.window.doc_Password)?":":"")+top.window.doc_Password; optBody=setfield$(optBody,6,replaceDivs(q)); q=optActual.getYear(); q+=(q<999)?1900:0; q+="/"+dezInt((optActual.getMonth()+1),2)+"/"+dezInt(optActual.getDate(),2)+" "+dezInt(optActual.getHours(),2)+":"+dezInt(optActual.getMinutes(),2)+"'"+dezInt(optActual.getSeconds(),2)+"''"+dezInt(optActual.getMilliseconds(),3)+" ("+optTime+")"; optBody=setfield$(optBody,7,q); optBody=setfield$(optBody,8,"-"); optBody=setfield$(optBody,9,dezInt(doc_width,4)+"x"+dezInt(doc_height,4)); optBody=setfield$(optBody,10,dezInt(agt_docWidth,4)+"x"+dezInt(agt_docHeight,4)); optBody=setfield$(optBody,11,dezInt(agt_width,4)+"x"+dezInt(agt_height,4)); optVal=clusterPeanut(optID)+clusterPeanut(optHead)+clusterPeanut(optBody); optEVal=crunchPeanut(optVal); top.window.name=optEVal; optImg.src=optImgFile+"?"+optEVal; if(show) { alert("Head: "+optHead+"\nBody: "+optBody); } } } function scriptOptX() { optActual=new Date(); optHead=setfield$(optHead,15,(agt_speed<0)?-dezInt(agt_speed,5):dezInt(agt_speed,6)); optTime=dezInt((optActual.getTime()-doc_time.getTime())/1000,5); optBody=setfield$(optBody,2,optTime); optVal=clusterPeanut(optID)+clusterPeanut(optHead)+clusterPeanut(optBody); optEVal=crunchPeanut(optVal); top.window.name=optEVal; }

function doTicker(line,pos,dir) {
 var text, last, delay;

 if(line==0) {
  text=((is_imageTicker)?"":tickerWspace)+tickerLCursor+tickerLines[line].substring(pos,pos+tickerSize)+tickerRCursor+((is_imageTicker)?"":tickerWspace);
  last=tickerLines[line].length-tickerSize; }
 else { text=((is_imageTicker)?"":tickerWspace)+tickerLCursor+tickerLines[line].substring(0,pos)+tickerRCursor+((is_imageTicker)?"":tickerWspace); last=tickerLines[line].length; }

 if(is_imageTicker) { for(i=0;i<text.length;i++) { document.images[tickerName+"Img"+i].src=tickerCache[text.charCodeAt(i)].src; } }
 else if(is_w3cxTicker) { tickerElement.innerHTML=text; }
 else if(is_w3cTicker) { tickerElement.childNodes[0].nodeValue=text; }
 else if(is_formTicker) { tickerElement.value=text; }
 else if(is_statusTicker) { window.status=text; }

 pos+=dir; delay=(tickerChardelay<0 && dir<0)?0:Math.abs(tickerChardelay);

 if(pos>last) {
  delay=Math.abs(tickerLinedelay);
  if(tickerSize<0) {
   pos--; dir=-dir;
  } else {
   pos=0;
   delay=(is_infiniteTicker)?Math.abs(tickerChardelay):Math.abs(tickerLinedelay)
   if(line>0) { line=(line<tickerLines.length-1)?line+1:1 }
  }
 } else if(pos<0) {
  pos=0; dir=-dir; delay=Math.max(0,tickerLinedelay);
  line=(line<tickerLines.length-1)?line+1:1
 }

 setTimeout('doTicker('+line+','+pos+','+dir+')',delay);
 return true;
}

function cacheTicker(ImgMask,Capitals) {
 if(document.images) { var i;
  tickerImg=ImgMask.substring(0,ImgMask.lastIndexOf("."));
  tickerExt=ImgMask.substring(ImgMask.lastIndexOf("."),ImgMask.length);
  tickerCache=new Array();
  for(i=0;i<256;i++) {
   if((i>=32 && i<=96) || (!Capitals && i>=97 && i<=122) || (i>=123 && i<=127) || (i>=160 && i<=223) || (!Capitals && i>=224 && i<=246) || i==247 || i==248 || (!Capitals && i>=249 && i<=253) || i==254 || i==255) {
    tickerCache[i]=new Image();
    tickerCache[i].src=tickerImg+i+tickerExt;
   }
  }
 }
}

// ========================== Programm-Bibliothek ===========================

/* 'SK-StartUp 011003' (c) by cybaer@vampirehost.de
   -------------------
 Inhalt    : Nach dem Laden auszufuehrende Routinen
 Aufruf    : SU(Modus)
 Parameter : Modus (Kennung der Routinenauswahl: Frameset = SK-Frameset
                                                   Inhalt = SK-Inhaltsdatei
 Sprache   : JavaScript 1.1 (ungesichert)
 InlineFunc: -
 Konstante : -
 Variable  : SKfile (Zu ladende SK-Datei inkl. Pfad)
             SKviewFile (Dateiname des "Viewers" inkl. relativem Pfad zur aufrufenden HTML-Datei)
 SystemVar : is_ie, is_frame
 ExternVar : -
 Rueckgabe : -
 Anmerkung : -
 Beispiele : -
*/

function StartUp(Modus) {
 var i, SKview;

 // Datei ggf. "uncachen"
 if(is_cached && do_uncache) {
  location.replace(doc_cachedURL); //+document.location.hash);
 }

 // Normale Inhaltsdatei
 if(Modus=="Content") {
  // Frameset ggf. sofort nachladen, wenn Datei alleine geladen wurde
  if(!is_frame && do_frameset) {
   SKview=""; for(i=1;i<=doc_PathDeep-2;i++) { SKview+="../"; }
   SKview+="index.htm?"+doc_fullFile.substring(doc_fullFile.indexOf("gruft/coding/")+13); //+document.location.hash);
   top.location.replace(SKview);
  }
  // Frame fokussieren
  if(is_frame) {
   self.focus();
  }
 }

 // Beispielseite
 if(Modus=="Example") {
  self.focus();
 }

 // Frameset oder alleinstehende Datei
 if(Modus=="Frameset") {
  if(is_frame) {
   // Ggf. uebergeordnetes Frameset entfernen
   if(do_deFrame) {
    top.location.href=self.location.href;
   }
  } else {
   // Falls Seite als Parameter uebergeben wurde, Hauptfenster mit dieser Seite laden
   if(document.location.search && window.frames["WinMain"]) {
    window.frames["WinMain"].location.replace(document.location.search.substring(1,document.location.search.length));
   }
  }
  if(window.frames["DeskRight"] && is_nav) {
   window.frames["DeskRight"].location.reload();
  }
 }

 if(do_opt && (doc_type=="Content" || doc_type=="Single")) { scriptOpt(do_optShow); if(!agt_speed) { SysVarSpeed(); } }

}

// ---------------------------------------------------------------------------

/* 'WindowsFuller 111003' (c) by cybaer@vampirehost.de
   ----------------------
 Inhalt    : Vergroessere/verkleinere Inhaltsframe
 Aufruf    : WinFull(RowsFull,ColsFull,RowsSmall,ColsSmall)
 Parameter : RowsFull (rows-Attribut fuer grossen Frame)
             ColsFull (cols-Attribut fuer grossen Frame)
             RowsSmall (rows-Attribut fuer kleinen Frame)
             ColsSmall (cols-Attribut fuer kleinen Frame)
 Sprache   : JavaScript 1.5 (gesichert)
 Quelle    : http://www.vampirehost.de/gruft/coding/ (cybaer@vampirehost.de)
             Die kostenlose Nutzung der Quelltexte in eigenen Projekten ist
             bei nicht-kommerziellen Projekten (und deren unentgeltlicher
             Herstellung) bei Nennung der Quelle ausdruecklich gestattet.
 InlineFunc: -
 Konstante : -
 Variable  : -
 SystemVar : is_ie, is_w3cDOM
 ExternVar : -
 Rueckgabe : -
 Anmerkung : Ggf. muessen die beim Verkleinern sichtbar werdenden Frames neu geladen
             werden (nicht beim IE). Die betreffenden Frames beginnen mit "Desk" in
             ihrem Namen). 
 Beispiel  : WinFuller("0,*,0","0,*,0","20,*,20","20,*,20") vergroessert den "*"-Frame
             auf volle Groesse (abzueglich einer fest definierten "Taskbar"), bzw.
             laesst nach der Verkleinerung einen Rand von 20 Pixeln.
*/

function WinFuller(RowsFull,ColsFull,RowsSmall,ColsSmall) {
 if(is_w3cDOM && parent.window.document.getElementById("DesktopRowsFS")) {
  var DesktopRows=parent.window.document.getElementById("DesktopRowsFS").getAttribute("rows");
  var DesktopCols=parent.window.document.getElementById("DesktopColsFS").getAttribute("cols");
  var Taskbar=parseInt(DesktopRows.substring(DesktopRows.lastIndexOf(",")+1,DesktopRows.length));
  var WinY1=parseInt(DesktopRows);
  var WinY2=parseInt(DesktopRows.substring(DesktopRows.indexOf("*")+2,DesktopRows.length));
  var WinX1=parseInt(DesktopCols);
  var WinX2=parseInt(DesktopCols.substring(DesktopCols.indexOf("*")+2,DesktopCols.length));
  // Ist Inhaltsframe bereits auf voller Groesse?
  var WinFull=(WinY2+WinX1+WinX2)?false:true;
  // Neue Framegroessen zusammenstellen
  if(WinFull) { DesktopRows=RowsSmall+","+Taskbar; DesktopCols=ColsSmall; }
  else { DesktopRows=RowsFull+","+Taskbar; DesktopCols=ColsFull; }
  // Neue Framegroessen aktivieren
  parent.window.document.getElementById("DesktopRowsFS").setAttribute("rows",DesktopRows);
  parent.window.document.getElementById("DesktopColsFS").setAttribute("cols",DesktopCols);
  // "Minimizer" setzen
  if(doc_FileDir=="win95") { top.frames["WinRight"].document.images["WinFuller"].src="img/"+((WinFull)?"leer":"minimize")+".gif"; }
  // Frame-Refresh
  if(WinFull && !is_ie) { for(var i=top.frames.length-1;i>=0;i--) { if(top.frames[i].name.substring(0,4)=="Desk") { top.frames[i].location.replace(top.frames[i].location.href); } } }
 }
}

// ---------------------------------------------------------------------------

/* 'LoadPage 240703' (c) by cybaer@vampirehost.de
   -----------------
 Inhalt    : Lade Seite
 Aufruf    : L(page)
 Parameter : Page (zu ladende Seite)
 Sprache   : JavaScript 1.0
 InlineFunc: -
 Konstante : -
 Variable  : -
 SystemVar : -
 ExternVar : -
 Rueckgabe : -
 Anmerkung : Zur Angabe eines alternativen Zieles mit onClick.
 Beispiele : <a href="noscript.htm" onClick="L('script.htm');">Link</a>
*/

function L(page) {
 top.document.location.href=page;
 return false;
}

// =============================== MagicHTML ================================

function magicGO() {
 // " ","[]<-","[]->","O<-","O->","_-","-_","|->","|<-","||->","=_","#->","#_"
 // "::","->|<-","<-|->",">-","-<","\-_","/_-","/-_","\_-","==","||||","*"
 if(do_blending) { BlendOver(1500," ,::,[]->,O->,<-|->,-<"); }

 // IE-Link-Icon-CSS laden
 if(doc_type=="Content" && is_ie && agt_ieVersion<6.5) {
  document.writeln('<link rel="stylesheet" type="text/css" media="screen" href="'+STRING$(doc_PathDeep-2,"../")+'coding2s.css">');
 }
 // Skin-CSS laden
 if(doc_type=="Content" && is_frame && parent.frames[0]) {
  var desktop=parent.frames[0].location.href;
  document.writeln('<link rel="stylesheet" type="text/css" href="'+STRING$(doc_PathDeep-2,"../")+'skins/'+desktop.substring(desktop.indexOf("skins/")+6,desktop.indexOf("/",desktop.indexOf("skins/")+6))+'/skin.css">');
 }
}

function magicB4() {
 // Fenster-Parameter holen
 SysVarsBody();
}

function magicL8() {
 // Im IE unten und rechts Frame-Rahmen sichtbar machen
 if(window.name=="WinMain" && is_ie && agt_ieVersion>=5.5) {
  document.body.style.borderBottomColor="#000000";
  document.body.style.borderRightColor="#000000";
 }

 // Im Debug-Modus Link auf alertSysVars()
 if(do_debug && doc_type=="Content") {
  document.write('<a href="javascript:alertSysVars();" onMouseOver="window.status=\'\';return true;" onClick="deFocus(this,true);" style="cursor:default;" hidefocus="true"><img src="'+STRING$(doc_PathDeep-2,"../")+'img/leer.gif" width="5" height="5" alt="" title="" align="left" border="1"><\/a><img src="'+STRING$(doc_PathDeep-2,"../")+'img/leer.gif" width="5" height="5" alt="" title="" align="right" border="0">');
 }

 // Button "Frameset laden"
 if(!is_frame && doc_type=="Content") {
  SKview=""; for(i=1;i<=doc_PathDeep-2;i++) { SKview+="../"; }
  // Pfadangabe fuer F1()/F2()
  FimgDir=SKview+"img/";
  if(is_op) { // Die Opera-Programmierer haben mal wieder geschlampt
   SKview+="index.htm";
  } else {    // Der Rest der Browser-Programmierer natuerlich nicht
   SKview+="index.htm"+((doc_File=="start.htm")?"":"?"+doc_fullFile.substring(doc_fullFile.indexOf("gruft/coding/")+13)); //+document.location.hash);
  }
  document.write('<a class="ContentNav" href="'+SKview+'" target="_top" onMouseOver="F2(\'back\');" onMouseOut="F1(\'back\');" onMouseUp="deFocus(this,true);" hidefocus="true"><img src="'+FimgDir+'back1.gif" width="26" height="26" name="back" alt="Menue" title="Lade Men&uuml;frames" hspace="10" vspace="10" align="right" border="0"><\/a>');
 }

 document.close();
}

function magicOK() {
 StartUp(doc_type);
}

function magicXL() {
 // Wenn Breitenaenderung, ggf. auch "Fuller" des Pseudofensters erneuern
 if(!is_ie && doc_File=="dbottom.htm") {
  top.WinRight.location.replace(top.WinRight.location.href);
 }
}

function magicKO() {
 if(do_opt && agt_speed>0 && (doc_type=="Content" || doc_type=="Single")) { scriptOptX(); }
}

// =============================== Direkt-Code ===============================

// PARAMETER UNBEDINGT DEN EIGENEN BEDINGUNGEN ANPASSEN!
SysVarsHead("vampirehost","index.htm");

xJS=true; // Externes JavaScript geladen!


