// Binary-Online-Schatzkaestlein: Externe JavaScripts 050609
// Unkommentierte Funktionen haben unter angegebenem URL ein erklaertes Pendant 

// ============================ Basis-Bibliothek ============================

/* 'SysVars 120506 (090908)' (c) Cybaer - http://Coding.binon.net/Systemvariable */
// Neu : doc_Search unescaped und mit Leerzeichen, is_nav, is_oldop, is_kq, is_saf, is_ie, is_external, is_connected, agt_jsVersion
// Test: is_ActiveX
// ToDo: doc_URL ("nackter" URL protocoll://server/file)?
//       JS2: (Date.toISOString) (wenn nicht schon im FF3 enthalten)
//       ansonsten: Neue Konstante __ECMASCRIPT_VERSION__
// Info: Alert & Co.
function alertSysVars(type) {
 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 JavaScript-"+agt_jsVersion+"-kompatible Browser ist "+((navigator.online)?"":"vermutlich ")+((is_connected)?"on":"off")+"line";
 SysVar+="\n"+((agt_speed)?"("+((agt_speed>0)?"mit "+agt_speed+" kbps="+Math.round(agt_speed/8*100)/100+" KByte/s,":"die Verbindungsgeschwindigkeit war nicht zu ermitteln)"):"(die Verbindungsgeschwindigkeit wurde nicht ermittelt)")+((lineType()>0)?" was "+((lineType()>=5)?"einer Standleitung":(lineType()==4)?"einem DSL-Modem":(lineType()==3)?"einem Kabelmodem":(lineType()==2)?"einem ISDN-Modem":(lineType()==1)?"einem Analog-Modem":"")+" entspricht)":"")+".";
 SysVar+="\n";
 SysVar+="\nBrowser-Erkennung:";
 SysVar+="\nInternet Explorer? "+((is_ie)?"Ja":"Nein")+((agt_ieVersion)?" ("+((!is_ie)?"angeblich ":"")+"Version "+agt_ieVersion+")":"");
 SysVar+="\nNavigator\/Mozilla? "+((is_nav)?"Ja":"Nein")+((is_nav || navigator.userAgent.toLowerCase().substring(0,7)=="mozilla")?" ("+((!is_nav)?"angeblich ":"")+"Version "+agt_version+")":"");
 SysVar+="\nOpera? "+((is_op)?"Ja":"Nein")+((is_op)?" (Version "+agt_opVersion+")":"");
 SysVar+="\nSafari? "+((is_saf)?"Ja":"Nein")+((agt_safVersion)?" ("+((!is_saf)?"angeblich ":"")+"Version "+agt_safVersion+")":"");
 SysVar+="\nKonqueror? "+((is_kq)?"Ja":"Nein")+((agt_kqVersion)?" ("+((!is_kq)?"angeblich ":"")+"Version "+agt_kqVersion+")":"");
 SysVar+="\n";
 SysVar+="\nDocument Object Model:";
 SysVar+="\nW3C (strikt: getElementById)? "+((is_w3cDOM)?"Ja":"Nein");
 SysVar+="\nW3C (erweitert: innerHTML)? "+((is_w3cxDOM)?"Ja":"Nein");
 SysVar+="\nMicrosoft (document.all)? "+((is_ieDOM)?"Ja":"Nein");
 SysVar+="\nNetscape (document.layer)?"+((is_nnDOM)?"Ja":"Nein");
 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)?"Ja":"Nein")+"/"+((is_xcall)?"Ja":"Nein")+",";
 SysVar+=((document.location.search)?"\nmit Parameter \""+unescape(rc(doc_Search,"+"," "))+"\"":" ohne Parameter")+".";
 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+")";
  } }
 if(!type || type=="alert") { alert(SysVar); }
 else if(type=="window") { SysVar=rc(SysVar,"\n","<br>"); }
}

function ceh() { return true; }
function deFocus(element,always) { if((do_deFocus || always) && 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 lineType(hardware,real) { if(agt_speed<=0) { return 0; } if(!hardware) { if(agt_speed<50) { return 1; } else if(agt_speed<120) { return 2; } else if(agt_speed<300) { return 3; } else if(agt_speed<600) { return 4; } else if(agt_speed>=600) { return 5; } } else { hardware=hardware.toLowerCase(); if(hardware=="modem") { return (real)?(agt_speed>0 && agt_speed<50):(agt_speed>0); } else if(hardware=="isdn") { return (real)?(agt_speed>=50 && agt_speed<120):(agt_speed>=50); } else if(hardware=="cable") { return (real)?(agt_speed>=120 && agt_speed<300):(agt_speed>=120); } else if(hardware=="dsl") { return (real)?(agt_speed>=300 && agt_speed<600):(agt_speed>=300); } else if(hardware=="high") { return (agt_speed>=600); } 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://Coding.binon.net/MagicHTML )
 if(window.magicXL) { magicXL(); }
 // Bei Aenderung der Browsergroesse: Reload (wenn gewuenscht) - mit Mozilla-Workaround
 if(do_resize && (doc_width!=doc_widthOld || (doc_height!=doc_heightOld && doc_height!=doc_heightOld-1))) { location.reload(); }
}

function SysVarsBody() {
 if(top.window.innerWidth) {
  agt_docWidth=top.window.innerWidth;
  agt_docHeight=top.window.innerHeight;
 } else if(top.document.documentElement && top.document.documentElement.offsetWidth) {
  agt_docWidth=top.document.documentElement.offsetWidth;
  agt_docHeight=top.document.documentElement.offsetHeight;
 } 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.documentElement && document.documentElement.offsetWidth) {
  doc_width=document.documentElement.offsetWidth;
  doc_height=document.documentElement.offsetHeight;
 } 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=51200;
 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;
//r=""; for(i in navigator) { r+=i+"="+navigator[i]+"\n"; } alert(r);
 // 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=(Array.reduce)?1.8:(window.Iterator)?1.7:(Array.filter)?1.6:(document.getElementById)?1.5:(doc_time.getFullYear)?1.3:(window.screen)?1.2:(document.images)?1.1:1.0;
 // Neue Versionsabfrage Scriptversion - noch nicht in  Download-Version eingearbeitet
 agt_jsVersion=(("").trim)?"1.8.1":(Array.reduce)?"1.8":(window.Iterator)?"1.7":(Array.filter)?"1.6":(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; agt_chromeVersion=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_kq=(navigator.vendor && navigator.vendor=="KDE")?true:false;
 is_chrome=(navigator.vendor && navigator.vendor.indexOf("Google")>=0);
 is_saf=(!is_chrome && navigator.product && navigator.product=="Gecko" && navigator.vendor && navigator.vendor.indexOf("Apple")>-1);
 /*@cc_on
 @if(@_jscript)
  is_ie=true;
 @else @*/
  is_ie=(agt_ieVersion && agt_ieVersion<4)?true:false;
 /*@end @*/
 agt_ieSP=agt.indexOf("sp"); agt_ieSP=(is_ie && agt_ieVersion && agt_ieSP>=0)?agt.substring(agt_ieSP+2,agt_ieSP+3):0;
 is_ieSafer=(is_ie && agt_ieVersion && ((agt_ieVersion==6 && (agt_ieSP>=2 || navigator.appMinorVersion.indexOf("SP")>=0)) || agt_ieVersion>6))?true:false;
 is_external=(is_ie && window.external)?true:false;
 is_oldie=(is_ie && !is_ieDOM && !is_external);
 is_nav=(navigator.product && navigator.product=="Gecko" && !is_saf) || (agt_major<5 && !is_ie && !is_op && !is_saf && !is_kq && (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; }
 is_oldop=(is_op && !document.styleSheets);
 // 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);
 is_ActiveX=(agt_jsVersion>1)?(typeof(ActiveXObject)=="function"):false;
 // Spezielle Dokumenten-Eigenschaften
 is_online=(window.location.protocol!="file:");
 is_connected=(navigator.online || navigator.onLine)?(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=unescape(rc(document.location.search.substring(1),"+"," "));
 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!=self.location);
 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 && doc_TLDomain!="hd";
 do_resize=true;
 do_deFocus=true;
 do_frameset=(is_xcall && !is_cached && !is_op && (agt_screenWidth==0 || agt_screenWidth>=680) && (agt_screenHeight==0 || agt_screenHeight>=480));
 do_deFrame=true;
 do_uncache=true;
 do_blending=false; //((!is_ie || (is_ie && agt_ieVersion>=5.5)) && agt_speed>300);
 do_debug=false;
 do_develop=(doc_localPath.indexOf("/Sites/binon.net/coding/")>=0)
 do_opt=is_connected;
 // Script-Fehler abfangen?
 if(do_ceh) { window.onerror=ceh; }
}

// ---------------------------- Peanut-Bibliothek ---------------------------

function escapeAll(string) { string=escape(string); string=rc(string,"*","%2A"); string=rc(string,"+","%2B"); string=rc(string,"-","%2D"); string=rc(string,".","%2E"); string=rc(string,"/","%2F"); string=rc(string,"@","%40"); string=rc(string,"_","%5F"); return string; }

// --------------------------------------------------------------------------

/* 'Replace HTML Tags 020703' (c) by cybaer@binon.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://Coding.binon.net (cybaer@binon.net)
             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@binon.net
   ---------------------------
 Inhalt    : Reduziert in einem String doppelt vorkommene Leerzeichen (nach HTML-Definition)
 Aufruf    : reduceHtmlSpaces(Text)
 Parameter : Text (String)
 Sprache   : JavaScript 1.0
 Quelle    : http://Coding.binon.net (cybaer@binon.net)
             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@binon.net
   -----------------------------
 Inhalt    : Entfernt einem String vorstehende und folgende Leerzeichen
 Aufruf    : trim(Text)
 Parameter : Text (String)
 Sprache   : JavaScript 1.0
 Quelle    : http://Coding.binon.net (cybaer@binon.net)
             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;
}

// ---------------------------------------------------------------------------

/* 'Alert-Alternative 290706' (c) by cybaer@binon.net
   --------------------------
 Inhalt    : Gibt einen Alert-Text in einem Element mit der ID "alertH" aus
 Aufruf    : alertH(alertText,waitText)
 Parameter : alertText (mixed)
             waitText (mixed) (optional) Wird waitText nicht uebergeben, so
                      erscheint ein Alert mit einem Standardtext. Wird ein
                      Leerstring uebergeben, so erscheint gar kein Alert.
 Sprache   : JavaScript 1.2 (ungesichert), JavaScript 1.5 (gesichert)
 Quelle    : http://Coding.binon.net (cybaer@binon.net)
             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 : -
 Anmerkung : Existiert kein Element mit der ID "alertH" (oder ist der Browser
             zu alt), wird ein normaler Alert mit dem Text erzeugt).
 Beispiele : alertH("Hello World");
*/

function alertH(alertText,waitText) {
 var hObj;
 if(document.getElementById && document.getElementById("alertH")) {
  hObj=document.getElementById("alertH");
  hObj.innerHTML='<span>'+alertText.toString().replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\n/g,"<br>")+'</span>';
  with(hObj.style) {
   display="block";
   backgroundColor="#C0C0C0";
   color="#000000";
   margin="10px";
   padding="0";
   border="1px solid";
   borderColor="#C0C0C0 black black #C0C0C0";
  }
  with(hObj.firstChild.style) {
   display="block";
   margin="0";
   padding="10px";
   border="1px solid";
   borderColor="white #808080 #808080 white";
  }
  if(typeof(waitText)=="undefined") { waitText="Press OK to continue!"; }
  if(waitText!=="") { alert(waitText); }
 } else {
  alert(alertText);
 }
}

// ---------------------------- Zahlen-Bibliothek ---------------------------

// 'Number-Library-Auszug 060104' (c) Cybaer - http://Coding.binon.net/NumLib

function getFrac(num) { num=""+num; return parseFloat("0."+num.substring(num.length-((num.indexOf(".")>=0)?num.length-num.indexOf(".")-1:0),num.length)); }
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; } }
function rand(min,max) { var range=max-min+1; if(range>0) { if(Math.random) { return Math.ceil(range*Math.random())+min-1; } else { return max; } } else { return "undefined"; } }

// ----------------------------- GfA-Bibliothek -----------------------------

// 'Lib-GfA2JS-Auszug 191203' (c) Cybaer - http://Coding.binon.net/JSGfALib
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 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 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 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 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 ADD(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 MAX(data) { var i=MAX.arguments.length, result; result=parseGfA(data); while(i>1) { i--; result=Math.max(result,parseGfA(MAX.arguments[i])); } return result; } // Momentan keine Zeichenketten.
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
isCHR$=(String.fromCharCode)?true:false;

// Fields-Library-Auszug (c) Cybaer - http://Coding.binon.net/gfabas/fields.htm
function getfield$(field$,nr,div$) { var entry$,v,w,nrOld; if(!div$) {  div$="|"; } field$=field$+div$; nrOld=nr; w=0; while(true) { v=SUCC(w); w=INSTR(field$,div$,v); if(w==0) { entry$=MID$(field$,v,MAX(SUB(LEN(field$),PRED(v)),0)); } else { nr--; if(nr<=0) { entry$=MID$(field$,v,MAX(SUB(w,v),0)); } } if(w==0) { break; } if(nr<=0) { break; } } return entry$; }
function cfield(field$,div$) { var count,w,l; if(!div$) { div$="|"; } l=LEN(field$); count=ABS(l>0); while(true) { w=INSTR(field$,div$,SUCC(w)); if(w==0) { break; } count++; if(w==l) { break; } } return count; }
function infield(field$,string$,nr,div$,part) { var q,adr,lfield$,rfield$,lfield=0,result; if(!div$) { div$="|"; } if(nr<=1) { adr=1; lfield$=""; rfield$=field$; } else { adr=adrfield(field$,nr,div$); lfield$=LEFT$(field$,PRED(adr)); rfield$=MID$(field$,adr); } if(lfield$!="") { lfield=PRED(cfield(lfield$,div$)); } if(part) { q=INSTR(rfield$,string$); } else { q=INSTR(div$+rfield$+div$,div$+string$+div$); } if(q==0) { result=0; } else { result=nrfield(rfield$,q,div$)+lfield; } return result; }
function setfield$(field$,nr,string$,div$) { var count,adr,len,lfield$,rfield$; if(!div$) { div$="|"; } count=cfield(field$,div$); if(nr<=count) { adr=adrfield(field$,nr,div$); lfield$=LEFT$(field$,PRED(adr)); rfield$=MID$(field$,ADD(adr,LEN(getfield$(field$,nr,div$)))); field$=lfield$+string$+rfield$; } else { field$=addfield$(field$,nr,string$,div$); } return field$; }
function addfield$(field$,nr,string$,div$) { var count,adr,lfield$,rfield$; if(!div$) { div$="|"; } count=cfield(field$,div$); if(nr<=count) { if(nr>0) { adr=adrfield(field$,nr,div$); lfield$=LEFT$(field$,PRED(adr)); rfield$=div$+MID$(field$,adr); } else { lfield$=""; rfield$=""; } } else { if(count>0) { lfield$=field$+STRING$(SUB(nr,count),div$); rfield$=""; } else { lfield$=STRING$(PRED(nr),div$); rfield$=""; } } field$=lfield$+string$+rfield$; return field$; }
function adrfield(field$,nr,div$) { var v,w,nrOld; if(!div$) { div$="|"; } field$=field$+div$; nrOld=nr; w=0; while(true) { v=SUCC(w); w=INSTR(field$,div$,v); if(w==0) { v=0; } else { nr--; } if(w==0) { break; } if(nr<=0) { break; } } return v; }
function nrfield(field$,adr,div$) { var nr; if(!div$) { div$="|"; } nr=cfield(LEFT$(field$,adr),div$); if(MID$(field$,adr,1)==div$) { nr--; } return nr; }
function iblock$(field$,nr,ldiv$,rdiv$,border) { var left,right,entry$; left=cfield(field$,ldiv$); right=cfield(field$,rdiv$); if(left>0 && right>0) { entry$=getfield$(getfield$(field$,SUCC(nr),ldiv$),1,rdiv$); if(border && entry$!="") { entry$=ldiv$+getfield$(getfield$(field$,SUCC(nr),ldiv$),1,rdiv$)+rdiv$; } } return entry$; }

// =========================== System-Bibliothek ============================

/* 'ImgSwitch+ 100903' (c) by cybaer@binon.net
   -------------------
 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://Codingbinon.net (cybaer@binon.net)
             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@binon.net
   ----------------
 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://Coding.binon.net (cybaer@binon.net)
             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 050907' (c) Cybaer - http://Coding.binon.net/PageBlending */
function BlendOver(duration,effect,param) {
 var scope="Page";
 if(duration) {
  if(effect.length) {
   effect=rc(effect,"%",-2);
   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[rand(0,effects.length-1)];
   }
  }
  if(duration<0) { scope="Site"; duration*=-1; }
  if(effect==23) { effect=rand(-2,22); }
  duration=(is_ie && agt_ieVersion<6)?Math.round(duration/1000):duration/1000;
  if(effect==-1) {
   document.writeln('<meta http-equiv="'+scope+'-Exit" content="BlendTrans(Duration='+duration+')">');
  } else if(effect==-2) {
   document.writeln('<meta http-equiv="'+scope+'-Exit" content="progid:DXImageTransform.Microsoft.Pixelate(Duration='+duration+((param)?(',MaxSquare='+param):'')+')">');
  } else {
   document.writeln('<meta http-equiv="'+scope+'-Exit" content="RevealTrans(Duration='+duration+',Transition='+effect+')">');
  }
 }
}

// --------------------------------------------------------------------------

/* 'CSS-Regeln lesen/aendern 160608' (c) cybaer@binon.net - http://Coding.binon.net/cssRule */
/* Lizenz CC <http://creativecommons.org/licenses/by-nc-sa/3.0/> */
function cssRule(target,attrib,value) {
 var s=0, r=0, i, result=false, clipper, sheetNo=NaN, startSheetNo, endSheetNo, mediaType, unifiedSelectorText, unifiedTagName, complete, write;
 var sheetObj=false, ruleColl=false, ruleObj=false, styleObj=false, ownerObj=false, rulePointer="", sheetIndex=NaN, mediaTextObj, mediaTypeIndex;
 if(!target && document.styleSheets) {
  result=true;
 }
 if(typeof(target)=="object") {
  sheetObj=true;
  styleObj=target;
  target=false;
 }
 if(document.styleSheets && document.styleSheets.length && (target || typeof(target)=="number")) {
  if(typeof(target)=="number") { target+="/0"; }
  if(!isNaN(parseInt(target)) && target.indexOf("/")>0) {
   s=parseInt(target.split("/")[0],10);
   r=parseInt(target.split("/")[1],10);
   if(typeof(document.styleSheets[s])=="object" && document.styleSheets[s]) {
    sheetObj=document.styleSheets[s];
    rulePointer=""+s;
    ownerObj=(sheetObj.ownerNode)?sheetObj.ownerNode:sheetObj.owningElement;
    if(sheetAccessible(s)) {
     if(sheetObj.rules && typeof(sheetObj.media)=="string") {
      ruleColl=sheetObj.rules;
      if(ruleColl[r]) {
       ruleObj=ruleColl[r];
       styleObj=ruleObj.style;
       rulePointer+="/"+r;
      }
     } else if(sheetObj.cssRules) {
      ruleColl=sheetObj.cssRules;
      if(ruleColl[r]) {
       if(ruleColl[r].type==1) {
        ruleObj=ruleColl[r];
        styleObj=ruleObj.style;
        rulePointer+="/"+r;
       }
      }
     }
    }
   }
  } else {
   target=target.toLowerCase();
   i=target.indexOf("@")+1;
   if(i) {
    clipper=target.substring(i);
    target=target.substring(0,i-1);
    sheetNo=parseInt(clipper);
    mediaType=(isNaN(sheetNo))?clipper:"*"
   } else {
    mediaType="*";
   }
   if(!isNaN(sheetNo)) {
    startSheetNo=sheetNo;
    endSheetNo=sheetNo;
   } else {
    startSheetNo=document.styleSheets.length-1;
    endSheetNo=0;
   }
   if(startSheetNo>=endSheetNo && startSheetNo<document.styleSheets.length && endSheetNo>=0) {
    for(s=startSheetNo; s>=endSheetNo; s-=1) {
     sheetObj=document.styleSheets[s];
     rulePointer=""+s;
     ownerObj=(sheetObj.ownerNode)?sheetObj.ownerNode:sheetObj.owningElement;
     if(sheetAccessible(s)) {
      if(sheetObj.rules && typeof(sheetObj.media)=="string") {
       ruleColl=sheetObj.rules;
       for(r=ruleColl.length-1; r>=0; r-=1) {
        if(((mediaType && sheetObj.media.toLowerCase().indexOf(mediaType)>=0) || (!mediaType && !sheetObj.media) || mediaType=="*") && ruleColl[r].selectorText.toLowerCase().indexOf(target)>-1) {
         unifiedSelectorText=unifySelectorText(ruleColl[r].selectorText);
         if(unifiedSelectorText==target) {
          ruleObj=ruleColl[r];
          styleObj=ruleObj.style;
          rulePointer=s+"/"+r;
          break;
         }
        }
       }
      } else if(sheetObj.cssRules) {
       ruleColl=sheetObj.cssRules;
       for(r=ruleColl.length-1; r>=0; r-=1) {
        mediaTextObj=sheetObj.media.mediaText;
        mediaTypeIndex=(!mediaTextObj)?-1:mediaTextObj.toLowerCase().indexOf(mediaType);
        if(ruleColl[r].type==1 && ((mediaType && mediaTypeIndex>=0) || (!mediaType && !sheetObj.media.mediaText) || mediaType=="*") && ruleColl[r].selectorText.toLowerCase().indexOf(target)>-1) {
         unifiedSelectorText=unifySelectorText(ruleColl[r].selectorText);
         if(unifiedSelectorText==target) {
          ruleObj=ruleColl[r];
          styleObj=ruleObj.style;
          rulePointer=s+"/"+r;
          break;
         } else if(unifiedSelectorText.indexOf(",")>-1) {
          selectorArray=unifiedSelectorText.split(",");
          for(i=0; i<selectorArray.length; i++) {
           while(selectorArray[i].charAt(0)==" ") { selectorArray[i]=selectorArray[i].substring(1,selectorArray[i].length); }
           while(selectorArray[i].charAt(selectorArray[i].length-1)==" ") { selectorArray[i]=selectorArray[i].substring(0,selectorArray[i].length-1); }
           if(selectorArray[i]==target) {
            ruleObj=ruleColl[r];
            styleObj=ruleObj.style;
            rulePointer=s+"/"+r;
            break;
           }
          }
          if(styleObj) { break; }
         }
        }
       }
      }
      if(styleObj) { break; }
     }
    }
   }
   if(isNaN(sheetNo) && !styleObj) {
    sheetObj=false;
    ruleColl=false;
    ownerObj=false;
    rulePointer="";
   }
  }
 }
 if(!sheetObj) {
  if(attrib=="sheetindex") { result=NaN; }
 } else {
  switch(attrib) {
   case "sheetobject":
    result=sheetObj;
    break;
   case "rulecollection":
    result=ruleColl;
    break;
   case "ruleobject":
    result=ruleObj;
    break;
   case "styleobject":
    result=styleObj;
    break;
   case "ownerobject":
    result=ownerObj;
    break;
   case "ownermarkup":
    /*@cc_on
    @if(@_jscript)
     result=ownerObj.outerHTML;
     while(result.charCodeAt(0)==13 || result.charCodeAt(0)==10) { result=result.substring(1); } 
    @else @*/
     unifiedTagName=ownerObj.tagName.toLowerCase();
     result="<"+unifiedTagName;
     for(i=0; i<ownerObj.attributes.length; i++) { result+=' '+ownerObj.attributes[i].name+'="'+ownerObj.attributes[i].value+'"'; }
     result+=">";
     if(unifiedTagName=="style") {
      for(i=0; i<ruleColl.length; i++) { result+=ruleColl[i].selectorText+" { "+ruleColl[i].style.cssText+" }\n"; }
      result+="</"+unifiedTagName+">";
     }
    /*@end @*/
    break;
   case "sheetindex":
    result=parseInt(rulePointer);
    break;
   case "rulepointer":
    result=(rulePointer.indexOf("/")>-1 || rulePointer===false)?rulePointer:(sheetAccessible(rulePointer)?false:"");
    break;
  default:
   complete=(!attrib)?true:false;
   write=(typeof(value)!="undefined")?true:false;
   if(!complete) {
    attrib=propertyToStyle(attrib);
    if(write) {
     styleObj[attrib]=value;
     result=true;
    } else {
     result=styleObj[attrib];
    }
   } else if(styleObj.cssText!=null) {
    if(write) {
     styleObj.cssText=value;
     result=true;
    } else {
     result=styleObj.cssText.toLowerCase();
    }
   }
  }
 }
 return result;
}
function unifySelectorText(selText) {
 var i, addSelectors, addSelectorsRegExp;
 addSelectors=selText.match(/\.([A-Za-z]+[\w-]*\[)/g);
 if(addSelectors) {
  for(i=0; i<addSelectors.length; i++) {
   addSelectorsRegExp=new RegExp("\\"+addSelectors[i].substring(0,addSelectors[i].length-1)+"\\[(CLASS|class)~=["+'"'+"|']?"+addSelectors[i].substring(1,addSelectors[i].length-1)+"["+'"'+"|']?\\]","g");
   selText=selText.replace(addSelectorsRegExp,addSelectors[i].substring(0,addSelectors[i].length-1));
  }
 }
 addSelectors=selText.match(/#([A-Za-z]+[\w-]*\[)/g);
 if(addSelectors) {
  for(i=0; i<addSelectors.length; i++) {
   addSelectorsRegExp=new RegExp(addSelectors[i].substring(0,addSelectors[i].length-1)+"\\[(ID|id)["+'"'+"|']?"+addSelectors[i].substring(1,addSelectors[i].length-1)+"["+'"'+"|']?\\]","g");
   selText=selText.replace(addSelectorsRegExp,addSelectors[i].substring(0,addSelectors[i].length-1));
  }
 }
 selText=selText.toLowerCase();
 return selText;
}
function propertyToStyle(property) {
 var i, syntax;
 if(property=="float") { property=((typeof(window.cssFloat)=="undefined")?"style":"css")+property.charAt(0).toUpperCase()+property.substring(1); }
 else if(property.indexOf("-")>=0) {
  syntax=property.split("-");
  property=syntax[0];
  for(i=1; i<syntax.length; i++) { property+=syntax[i].charAt(0).toUpperCase()+syntax[i].substring(1); }
 }
 return property;
}
function sheetAccessible(sheetNo) {
 try {
  if(document.styleSheets[sheetNo].cssRules || document.styleSheets[sheetNo].rules) {
   throw "sheetAccessible";
  }
 } catch(e) {
  return (e=="sheetAccessible");
 }
}

// --------------------------------------------------------------------------

/* 'Stylesheet/Regeln hinzufuegen 260907' (c) Cybaer - http://Coding.binon.net/AddStyle */
function addStyle(rules,target) {
 var styleObj=null, styleSheetObj=null, i, j, p, selector, singleSelector, text;
 if(document.createElement && document.getElementsByTagName) {
  if(typeof(target)=="number") {
   if(target<=-1) { target=document.getElementsByTagName("style").length+Math.ceil(target); }
   target=Math.max(0,Math.min(document.getElementsByTagName("style").length-1,Math.floor(target)));
  }
  if(typeof(target)=="undefined" || typeof(target)=="string" || !document.getElementsByTagName("style")[target]) {
   if(document.createStyleSheet) {
    styleSheetObj=document.createStyleSheet();
    styleObj=styleSheetObj.owningElement || styleSheetObj.ownerNode;
   } else {
    styleObj=document.createElement("style");
    document.getElementsByTagName("head")[0].appendChild(styleObj);
   }
   styleObj.setAttribute("type","text/css");
   if(target) { styleObj.setAttribute("media",target); }
  } else if(typeof(target)=="number") {
   styleObj=document.getElementsByTagName("style")[target];
   styleSheetObj=styleObj.sheet || styleObj.styleSheet;
  }
  if(styleObj && rules) {
   /*@cc_on
   @if(@_jscript)
    rule=rules.replace(/\s+/g," ").replace(/\/\*.+?\*\//g,"").split("}");
    for(i=0;i<rule.length;i++) {
     p=rule[i].indexOf("{");
     selector=rule[i].substring(0,p).replace(/^\s+|\s+$/g,"");
     text=rule[i].substring(p+1).replace(/^\s+|\s+$/g,"");
     if(selector) {
      if(selector.indexOf(",")) {
       singleSelector=selector.split(",");
      } else {
       singleSelector=new Array(selector);
      }
      for(j=0;j<singleSelector.length;j++) {
       styleSheetObj.addRule(singleSelector[j].replace(/^\s+|\s+$/g,""),(text)?text:" ");
      }
     }
    }
   @else @*/
    if(styleObj.firstChild) { styleObj.firstChild.nodeValue=styleObj.firstChild.nodeValue.replace("<!--",""); }
    if(styleObj.lastChild) { styleObj.lastChild.nodeValue=styleObj.lastChild.nodeValue.replace("-->",""); }
    styleObj.appendChild(document.createTextNode(rules+"\n"));
   /*@end @*/
  }
 }
 return styleObj;
}

// --------------------------------------------------------------------------

/* 'Stil via Stylesheet setzen 280907' - Kombination aus http://Coding.binon.net/cssRule & http://Coding.binon.net/addStyle */
function setCssStyle(selector,attribute,value,media) {
 var result;
 if(typeof(value)=="undefined") { value=""; }
 if(typeof(media)=="undefined") { media="*"; }
 result=cssRule(selector+"@"+media,attribute,value);
 if(!result && value) { result=addStyle(selector+" { "+attribute+":"+value+"; }",(!media || media=="*")?"":media); }
 return (result)?true:false;
}

// --------------------------------------------------------------------------

/* 'Ticker4All 160608' (c) Cybaer - http://Coding.binon.net/Ticker4All */
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, nodeRecognition;
 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) {
     nodeRecognition=Node.nodeName.toLowerCase();
     if(nodeRecognition=="#text") { Value=reduceHtmlSpaces(Node.nodeValue); htmlText+=Value; Node.nodeValue=""; }
     else if(nodeRecognition=="#comment" || nodeRecognition=="br" || nodeRecognition=="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 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; } } } }

function makeTickerWork(entry,all) { var q, w=0; if(entry) { TickerWork=new Array(); for(q=0;q<TickerText.length;q++) { if(TickerText[q].toLowerCase().indexOf(entry)>=0) { TickerWork[w]=TickerText[q]; if(all) { w++; } else { break; } } } } else { TickerWork=TickerText.join("$NewTickerLine$").split("$NewTickerLine$"); } }
function xGetTicker(entry,all) { var text="", nr; entry=(entry)?(""+entry).toLowerCase():1; nr=parseInt("0"+entry,10); if(nr>0 && nr<=TickerText.length && (""+nr).length==entry.length) {  text=TickerText[nr-1] } else { all=(all)?true:false; makeTickerWork(entry,all); text=TickerWork.join("||"); } return text; }
function xAllTicker(reverse) { if(reverse) { makeTickerWork(); return TickerWork.reverse().join("||"); } else { return TickerText.join("||"); } }
function xRandomTicker(entry) { entry=(entry)?(""+entry).toLowerCase():false; makeTickerWork(entry,true); return TickerWork[rnd(TickerWork.length)-1]; }
function xShuffleTicker(entry) { var q, r, text=''; entry=(entry)?(""+entry).toLowerCase():false; makeTickerWork(entry,true); for(q=0;q<TickerWork.length;q++) { r=rnd(TickerWork.length-q)+q-1; text+=((text)?"||":"")+TickerWork[r]; TickerWork[r]=""; TickerWork.sort(); } return text; }

// ---------------------------------------------------------------------------

/* 'Wechsle Darstellung 061005' (c) Cybaer - http://Coding.binon.net/Toggle */
function toggle(type,element,toggleID) {
 var i, j, t, type0, start=0, result=0;
 var obj, objName, objFirst=-1, objLast=-1, objCount, exceptions, lastArgument, xSwitch;
 var toggleDisplay, displayType, displayStyle, displayXStyle;
 var toggleVisibility, visibilityStyle, visibilityXStyle;
 var toggleOpacity, opacityType, opacityStyle, opacityXStyle, opacityStyleCSS, opacityXStyleCSS, opacityStyleMoz, opacityXStyleMoz, opacityStyleKHTML, opacityXStyleKHTML, opacityStyleIE, opacityXStyleIE;
 var toggleColor, colorType, colorXType, colorStyle, colorXStyle;
 var toggleBack, backType, backXType, backStyle, backXStyle;
 var toggleBorder, borderType, borderXType, borderStyle, borderXStyle;
 var toggleAttribute="gid"; // hier ggf. gewuenschten Standard-Attribut-Namen eintragen (z.B. "id")
 var showStatus=200; // hier eintragen, ab wieviel Elementen ein Bearbeitungshinweis erfolgen soll

 type=(type)?type.toLowerCase():"fold";

 if(element) {
  i=element.indexOf("{"); j=element.indexOf("}",i);
  if(i>=0 && j>=0) {
  objFirst=parseInt(element.substring(i+1,element.indexOf("-",i)));
  objLast=parseInt(element.substring(element.indexOf("-",i)+1,j));
  element=element.substring(0,i);
  }
 }

 if(!element || type=="test") {
  result=(document.getElementsByTagName)?true:false;
 } else {

  toggleDisplay=(type.indexOf("fold")+1);    // Style display verwenden
  toggleVisibility=(type.indexOf("hide")+1); // Style visibility verwenden
  toggleOpacity=(type.indexOf("trans")+1);   // Style opacity & Co. verwenden
  toggleColor=(type.indexOf("color")+1);     // Style color verwenden
  toggleBack=(type.indexOf("back")+1);       // Style background-color verwenden
  toggleBorder=(type.indexOf("border")+1);   // Style border-color verwenden

  if(toggleDisplay) {
   displayType="";
   i=type.indexOf("fold:");
   if(i>=0) {
    i+=4; j=type.indexOf(" ",i)
    displayType=type.substring(i+1,(j<0)?type.length:j);
    displayType=(displayType=="none")?"":displayType;
   }
   if(type.indexOf("unfold")>=0) {
    displayStyle=displayType; displayXStyle="none";
   } else {
    displayStyle="none"; displayXStyle=displayType;
   }
  }

  if(toggleVisibility) {
   if(type.indexOf("unhide")>=0) {
    visibilityStyle="visible"; visibilityXStyle="hidden";
   } else {
    visibilityStyle="hidden"; visibilityXStyle="visible";
   }
  }

  if(toggleOpacity) {
   opacityType=50;
   opacityXType=0;
   i=type.indexOf("trans:");
   if(i>=0) {
    i+=5; j=type.indexOf(" ",i)
    opacityType=type.substring(i+1,(j<0)?type.length:j);
    i=opacityType.indexOf("/");
    if(i>=0) {
     j=opacityType.indexOf(" ",i)
     opacityXType=opacityType.substring(i+1,(j<0)?opacityType.length:j);
     opacityType=opacityType.substring(0,i)+((j<0)?"":opacityType.substring(j,opacityType.length));
    }
   }
   opacityStyle=Math.min(100,Math.max(0,100-parseInt(opacityType)));
   opacityXStyle=Math.min(100,Math.max(0,100-parseInt(opacityXType)));
   opacityStyleCSS=""+opacityStyle/100;
   opacityXStyleCSS=""+opacityXStyle/100;
   opacityStyleMoz=opacityStyleCSS;
   opacityXStyleMoz=opacityXStyleCSS;
   opacityStyleKHTML=opacityStyleCSS;
   opacityXStyleKHTML=opacityXStyleCSS;
   opacityStyleIE="alpha(opacity="+opacityStyle+")";
   opacityXStyleIE="alpha(opacity="+opacityXStyle+")";
  }

  if(toggleColor) {
   colorType="#000000";
   colorXType="#FFFFFF";
   i=type.indexOf("color:");
   if(i>=0) {
    i+=5; j=type.indexOf(" ",i)
    colorType=type.substring(i+1,(j<0)?type.length:j);
    i=colorType.indexOf("/");
    if(i>=0) {
     j=colorType.indexOf(" ",i)
     colorXType=colorType.substring(i+1,(j<0)?colorType.length:j);
     colorType=colorType.substring(0,i)+((j<0)?"":colorType.substring(j,colorType.length));
    }
   }
   colorStyle=colorType;
   colorXStyle=colorXType;
  }

  if(toggleBack) {
   backType="#FFFFFF";
   backXType="#000000";
   i=type.indexOf("back:");
   if(i>=0) {
    i+=4; j=type.indexOf(" ",i)
    backType=type.substring(i+1,(j<0)?type.length:j);
    i=backType.indexOf("/");
    if(i>=0) {
     j=backType.indexOf(" ",i)
     backXType=backType.substring(i+1,(j<0)?backType.length:j);
     backType=backType.substring(0,i)+((j<0)?"":backType.substring(j,backType.length));
    }
   }
   backStyle=backType;
   backXStyle=backXType;
  }

  if(toggleBorder) {
   borderType="transparent";
   borderXType="black";
   i=type.indexOf("border:");
   if(i>=0) {
    i+=6; j=type.indexOf(" ",i)
    borderType=type.substring(i+1,(j<0)?type.length:j);
    i=borderType.indexOf("/");
    if(i>=0) {
     j=borderType.indexOf(" ",i)
     borderXType=borderType.substring(i+1,(j<0)?borderType.length:j);
     borderType=borderType.substring(0,i)+((j<0)?"":borderType.substring(j,borderType.length));
    }
   }
   borderStyle=borderType;
   borderXStyle=borderXType;
  }

  if(document.getElementById && document.getElementById(element)) {
   obj=document.getElementById(element);
   result=1;

   if(toggleDisplay) {
    obj.style.display=displayStyle;
   }

   if(toggleVisibility) {
    obj.style.visibility=visibilityStyle;
   }

   if(toggleOpacity) {
    obj.style.filter=opacityStyleIE;
    obj.style.MozOpacity=opacityStyleMoz;
    obj.style.KhtmlOpacity=opacityStyleKHTML;
    obj.style.opacity=opacityStyleCSS;
   }

   if(toggleColor) {
    obj.style.color=colorStyle;
   }

   if(toggleBack) {
    obj.style.backgroundColor=backStyle;
   }

   if(toggleBorder) {
    obj.style.borderColor=borderStyle;
   }

  } else if(document.getElementsByTagName) {
   i=element.indexOf(":");
   if(i>=0) {
    toggleAttribute=element.substring(i+1,element.length);
    element=element.substring(0,i);
   }

   if(document.getElementsByTagName(element).length && toggleID) {

    lastArgument=(typeof(toggle.arguments[toggle.arguments.length-1])=="boolean")?-1:0;
    xSwitch=(lastArgument)?toggle.arguments[toggle.arguments.length-1]:false;
    exceptions=toggleID; for(i=3;i<(toggle.arguments.length+lastArgument);i++) { exceptions+=toggle.arguments[i]+"|"; }
    i=exceptions.indexOf("|"); t=""; while(i>=0) { t+=exceptions.substring(start,i+1)+toggleID; start=i+1; i=exceptions.indexOf("|",start); if(!i) { break; } }
    exceptions=t.substring(0,t.length-toggleID.length);

    obj=document.getElementsByTagName(element);
    objFirst=(objFirst<0)?0:Math.max(0,objFirst);
    objLast=(objLast<0)?obj.length:Math.min(obj.length,objLast);
    objCount=(objLast-objFirst)+1;
    for(i=objFirst;i<objLast;i++) {
     objName=obj[i].getAttribute(toggleAttribute);
     if(objName && objName.substring(0,toggleID.length)==toggleID) {
      result++;
      toggleException=(exceptions.indexOf(objName+"|")>=0)?true:false;
      if(objCount>showStatus) { window.status="Bearbeitetes Element: "+(result)+"/"+objCount; }

      if(toggleDisplay) {
       if(xSwitch) {
        obj[i].style.display=(toggleException)?displayXStyle:displayStyle;
       } else if(!toggleException) {
        obj[i].style.display=displayStyle;
       }
      }

      if(toggleVisibility) {
       if(xSwitch) {
        obj[i].style.visibility=(toggleException)?visibilityXStyle:visibilityStyle;
       } else if(!toggleException) {
        obj[i].style.visibility=visibilityStyle;
       }
      }

      if(toggleOpacity) {
       if(xSwitch) {
        obj[i].style.filter=((toggleException)?opacityXStyleIE:opacityStyleIE);
        obj[i].style.MozOpacity=((toggleException)?opacityXStyleMoz:opacityStyleMoz);
        obj[i].style.KhtmlOpacity=((toggleException)?opacityXStyleKHTML:opacityStyleKHTML);
        obj[i].style.opacity=((toggleException)?opacityXStyleCSS:opacityStyleCSS);
       } else if(!toggleException) {
        obj[i].style.filter=opacityStyleIE;
        obj[i].style.MozOpacity=opacityStyleMoz;
        obj[i].style.KhtmlOpacity=opacityStyleKHTML;
        obj[i].style.opacity=opacityStyleCSS;
       }
      }

      if(toggleColor) {
       if(xSwitch) {
        obj[i].style.color=(toggleException)?colorXStyle:colorStyle;
       } else if(!toggleException) {
        obj[i].style.color=colorStyle;
       }
      }

      if(toggleBack) {
       if(xSwitch) {
        obj[i].style.backgroundColor=(toggleException)?backXStyle:backStyle;
       } else if(!toggleException) {
        obj[i].style.backgroundColor=backStyle;
       }
      }

      if(toggleBorder) {
       if(xSwitch) {
        obj[i].style.borderColor=(toggleException)?borderXStyle:borderStyle;
       } else if(!toggleException) {
        obj[i].style.borderColor=borderStyle;
       }
      }

     }
    }
    if(objCount>showStatus) { window.status=" "; }
   } else {
    result=0;
   }
  } else {
   result=false;
  }
 }
 return result;
}

// ---------------------------------------------------------------------------

/* 'Transparenz 090507' (c) Cybaer - http://Coding.binon.net/Transparenz */
function transparency(element,percentage) {
 var i, count, objStyle, filterValue, opacityValue;
 if(document.getElementById) {
  if(typeof(element)=="object" && element) { obj=element; }
  else if (document.getElementsByName(element) && document.getElementsByName(element)[0]) { obj=document.getElementsByName(element); }
  else if (document.getElementById(element)) { obj=document.getElementById(element); }
  else if (document.getElementsByTagName && document.getElementsByTagName(element) && document.getElementsByTagName(element)[0]) { obj=document.getElementsByTagName(element); }
  else { obj=false; }
  if(obj) {
   percentage=(typeof(percentage)=="undefined")?50:100-percentage;
   filterValue="Alpha(opacity="+percentage+")";
   opacityValue=""+percentage/100;
   count=(obj.length)?obj.length:1;
   for(i=0;i<count;i++) {
    objStyle=(obj.length)?obj[i].style:obj.style;
    objStyle.filter=filterValue;
    objStyle.MozOpacity=opacityValue;
    objStyle.KhtmlOpacity=opacityValue;
    objStyle.opacity=opacityValue;
   }
  }
 }
}

// ---------------------------------------------------------------------------

/* 'Prefetch 180204' (c) by cybaer@binon.net
   -----------------
 Inhalt    : Lade Grafiken vorab
 Aufruf    : prefetch(set)
 Parameter : set (Gewuenschtes Grafik-Set)
 Sprache   : JavaScript 1.1 (gesichert)
 InlineFunc: -
 Konstante : -
 Variable  : -
 SystemVar : -
 ExternVar : -
 Rueckgabe : -
 Anmerkung : -
 Beispiele : -
*/

function prefetch(set) {
 if(document.images) {
  var i=-1; cache=new Array();
  if(set.indexOf("win95")>=0) {
   // Win95-Skin
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/ataritt1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/css1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/datei1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/dhtml1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/dleftbg.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/drightbg.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/drive_c1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/drives1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/email1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/exit1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/extras1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/fullerbg.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/gfabas1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/html1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/index1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/jscript1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/knowhow1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/leer.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/liesmch1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/megaste1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/minimize.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/moverbg.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/multtos1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/start1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/symbol.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/taskbg.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/win95/img/uhr1.gif";
  }
  if(set.indexOf("tos1")>=0) {
   // TOS-1.x-Skin
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/ataritt1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/bgm5s.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/closerbg.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/css1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/datei1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/desk1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/dhtml1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/drive_c1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/drives1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/email1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/exit1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/extras1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/fullerbg.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/gfabas1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/html1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/index1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/jscript1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/knowhow1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/leer.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/liesmch1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/megaste1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/menubg.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/moverbg.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/win951.gif";
  }
  if(set.indexOf("tos4")>=0) {
   // TOS-4.x-Skin
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/ataritt1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/closerbg.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/css1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/datei1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/desk1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/dhtml1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/drive_c1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/drives1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/email1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/exit1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/extras1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/fullerbg.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/gfabas1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/html1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/index1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/jscript1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/knowhow1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/leer.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/liesmch1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/megaste1.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/menubg.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/moverbg.gif";
   i++; cache[i]=new Image(); cache[i].src="skins/tos1/img/win951.gif";
  }
 }
}

// ========================== Programm-Bibliothek ===========================

/* 'Make Frameset 290404' (c) by cybaer@binon.net
   ----------------------
 Inhalt    : Erstellt ein neues Frameset
 Aufruf    : createFrameset(type,win,url)
 Parameter : type (Typ des Framesets: Desktop)
             win (Name des Hauptframes)
             url (URL der Seite, die im Hauptframe dargestellt werden soll)
 Sprache   : JavaScript 1.0
 InlineFunc: -
 Konstante : -
 Variable  : -
 SystemVar : -
 ExternVar : -
 Rueckgabe : -
 Anmerkung : -
 Beispiele : -
*/

function createFrameset(type,win,url) {
 with(document) {
  open();
  close();
  open();
  writeln('<html>');
  writeln('<head>');
  writeln('<title>Coding-Schatzk&auml;stlein<\/title>');
  writeln('<link rel="shortcut icon" href="coding.ico">');
  writeln('<link rel="stylesheet" type="text/css" media="print" href="coding-p.css">');
  writeln('<link rel="stylesheet" type="text/css" media="screen" href="coding-s.css">');
  writeln('<script type="text/javascript" language="JavaScript"><!--');
  writeln(' doc_type="FramesetJS"; xJS=false;');
  writeln('\/\/--><\/script>');
  writeln('<script type="text/javascript" language="JavaScript" src="coding.js"><\/script>');
  writeln('<script type="text/javascript" language="JavaScript"><!--');
  writeln(' if(xJS){magicGO();} \/\/ Header-Scripts --><\/script>');
  writeln('</head>');  //  writeln('<body><h1>Test<\/h1><\/body>');
  if(type=="Desktop") {
   writeln('<frameset id="DesktopRowsFS" rows="24,*,50,0" framespacing="0" frameborder="0" border="0" bordercolor="#000000" onLoad="if(xJS){magicOK();}" onUnload="if(xJS){magicKO();}">');
   writeln(' <frame src="skins\/tos2\/menu.htm" name="DeskMenu" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>');
   writeln(' <frameset id="DesktopColsFS" cols="10,*,70" framespacing="0" frameborder="0" border="0" bordercolor="#000000">');
   writeln('  <frame src="skins\/tos2\/dleft.htm" name="DeskLeft" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>');
   writeln('  <frameset id="WindowRowsFS" rows="40,*" framespacing="0" frameborder="0" border="0" bordercolor="#000000">');
   writeln('   <frameset id="WindowColsFS" cols="20,*,20" framespacing="0" frameborder="0" border="0" bordercolor="#000000">');
   writeln('    <frame src="skins\/tos2\/wleft.htm" name="WinLeft" marginwidth="0" marginheight="0" scrolling="auto" frameborder="0" noresize>');
   writeln('    <frame src="skins\/tos2\/wmover.htm" name="WinMover" marginwidth="0" marginheight="0" scrolling="auto" frameborder="0" noresize>');
   writeln('    <frame src="skins\/tos2\/wright.htm" name="WinRight" marginwidth="0" marginheight="0" scrolling="auto" frameborder="0" noresize>');
   writeln('   <\/frameset>');
   writeln('   <frame src="'+url+'" name="WinMain" marginwidth="0" marginheight="0" scrolling="yes" frameborder="0" noresize>');
   writeln('  <\/frameset>');
   writeln('  <frame src="skins\/tos2\/dright.htm" name="DeskRight" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>');
   writeln(' <\/frameset>');
   writeln(' <frame src="skins\/tos2\/dbottom.htm" name="DeskBottom" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>');
   writeln(' <frame src="skins\/tos2\/taskbar.htm" name="DeskTaskbar" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>');
   writeln(' <noframes>');
   writeln(' <body class="NoFrames" bgcolor="#FFFFFF" text="#000000" link="#999999" alink="#FFFFFF" vlink="#CCCCCC" scroll="auto" bottommargin="10" leftmargin="20" rightmargin="20" topmargin="10" marginwidth="20" marginheight="10">');
   writeln(' <p><b>');
   writeln(' Um diese Seite komplett zu sehen, brauchen Sie leider einen framef&auml;higen Browser.<br>');
   writeln(' <br>');
   writeln(' Zu den Haupt-Frames:<ul>');
   writeln('  <li><a href="'+url+'">Inhaltsseite<\/a><\/li>');
   writeln('  <li><a href="skins\/tos2\/dright.htm">Rubriken</a><ul>');
   writeln('   <li><a href="html\/html.htm">HTML</a></li>');
   writeln('   <li><a href="css\/css.htm">CSS<\/a><\/li>');
   writeln('   <li><a href="jscript\/jscript.htm">JavaScript<\/a><\/li>');
   writeln('   <li><a href="dhtml\/dhtml.htm">DHTML<\/a><\/li>');
   writeln('   <li><a href="server\/server.htm">Server<\/a><\/li>');
   writeln('   <li><a href="gfabas\/gfabas.htm">GfA-Basic<\/a><\/li><\/ul><\/li>');
   writeln('  <li><a href="skins\/tos2\/dbottom.htm">Infos<\/a><ul>');
   writeln('   <li><a href="info\/liesmich.htm">Lies mich 1st\/Impressum<\/a><\/li>');
   writeln('   <li><a href="info\/knowhow.htm">Know-how<\/a><\/li>');
   writeln('  <li><a href="skins\/tos2\/menu.htm">Add-Ons<\/a><ul>');
   writeln('   <li><a href="info\/links.htm">Link-Liste<\/a><\/li>');
   writeln('   <li><a href="files\/index.htm">Downloads<\/a> (Atari-<wbr>Devotionalien <span class="Smiley">;-)<\/span><\/li><\/ul><\/li>');
   writeln(' <\/ul>');
   writeln(' <\/b><\/p>');
   writeln(' <\/body>');
   writeln('<\/noframes>');
   writeln('<\/frameset>');
  }
  writeln('<\/html>');
  close();
 }
}

// ---------------------------------------------------------------------------

/* 'View Source 120506' (c) by cybaer@binon.net
   --------------------
 Inhalt    : Zeige (wenn moeglich) den Quelltext, oder lade die Datei
 Aufruf    : viewSource(element,target)
 Parameter : element (URL des Quelltextes)
             target (optional: Ziel des Links; gueltig sind Zeichenfolgen, die vor dem
                    Location-Objekt stehen duerfen: top.location, self.location, ...)
 Sprache   : JavaScript 1.0
 Quelle    : http://Coding.binon.net (cybaer@binon.net)
             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_nav, is_ie, is_ie6sp2, agt_ieVersion
 ExternVar : -
 Rueckgabe : -
 Anmerkung : Internet Explorer und Navigator/Mozilla kennen das noetige Pseudo-Protokoll.
             "view-source:" - Opera, Konqueror/Safari und neuere IEs z.B. nicht.  
 Beispiel  : <a href="test.htm" onClick="return viewSource(this);">test.htm</a>
             <a href="test.js" target="_parent" onClick="return viewSource(this,'parent');">test.js</a>
*/

function viewSource(element,target) {
 // URL um "view-source:" ergaenzen (nur bei bekannten Browsern, die dieses Pseudo-Protokoll kennen)
 if(is_nav || (is_ie && !is_ieSafer)) { element="view-source:"+element; }

 // URL laden ...
 if(!target) {
  // ... im aktuellen Ziel, oder ...
  location.href=element;
 } else {
  // ... im ausgewaehlten Ziel
  eval(target+".location.href=element");
 }
 // HTML-Link nicht mehr ausfuehren
 return false;
}

// ---------------------------------------------------------------------------

// Ueberpruefen (WinFuller & magicXL):
 // Wenn Breitenaenderung, ggf. auch "Fuller" des Pseudofensters erneuern
 // Frame-Refresh

/* 'WindowsFuller 070104' (c) by cybaer@binon.net
   ----------------------
 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://Coding.binon.net (cybaer@binon.net)
             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" && parent.frames["WinRight"]) { parent.frames["WinRight"].document.images["WinFuller"].src="img/"+((WinFull)?"leer":"minimize")+".gif"; }
  // Frame-Refresh
  if(WinFull && !is_ie) { for(var i=parent.frames.length-1;i>=0;i--) { if(parent.frames[i].name.substring(0,4)=="Desk") { parent.frames[i].location.replace(parent.frames[i].location.href); } } }
 }
}

// ---------------------------------------------------------------------------

/* 'LoadPage 300904' (c) by cybaer@binon.net
   -----------------
 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.location.href=page;
 return false;
}

// =============================== MagicHTML ================================

function magicGO() {

 // Datei ggf. "uncachen"
 if(is_cached && do_uncache) {
  window.location.replace(doc_cachedURL);
 }

 // Normale Inhaltsdatei
 if(doc_type=="Content") {
  var i, SKview;
  // Frameset ggf. sofort nachladen, wenn Datei alleine geladen wurde
  if(!is_frame && do_frameset) {
   SKview=""; for(i=1;i<=doc_PathDeep;i++) { SKview+="../"; }
   SKview+="index.htm?"+escape(doc_fullFile); //+document.location.hash);
   top.location.replace(SKview);
  }
  // Frame-Exit-Link im Navigationsframe aktualisieren (Papierkorb)
  if(is_frame && parent.frames["DeskBottom"] && parent.frames["DeskBottom"].document.links[0] && parent.frames["DeskBottom"].document.links[0].href) {
   parent.frames["DeskBottom"].document.links[parent.frames["DeskBottom"].document.links.length-1].href="../../"+doc_fullFile;
  }
 }

 // Frameset
 if(doc_type=="Frameset") {
  if(is_frame) {
   // Ggf. uebergeordnetes Frameset entfernen
   if(do_deFrame) {
    top.location.replace(self.location.href);
   }
  } else {
   // Falls Seite (auch externe!) als Parameter uebergeben wurde, Frameset mit dieser Seite als Hauptseite laden
   if(doc_Search) {
    createFrameset("Desktop","WinMain",doc_Search);
   }
  }
 }

 // Beispielseite immer in den Vordergrund bringen
 if(doc_type=="Example") {
  self.focus();
 }

 // "%"," ","[]<-","[]->","O<-","O->","_-","-_","|->","|<-","||->","=_","#->","#_"
 // "::","->|<-","<-|->",">-","-<","\-_","/_-","/-_","\_-","==","||||","*"
 if(do_blending) { BlendOver(1500," ,%,::,[]->,O->,<-|->,-<"); }

 // IE-Link-Icon-CSS laden
 if(doc_type=="Content" && is_ie && agt_ieVersion>=5.5) { // && agt_ieVersion<8) {
  document.writeln('<link rel="stylesheet" type="text/css" media="screen" href="'+STRING$(doc_PathDeep,"../")+'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,"../")+'skins/'+desktop.substring(desktop.indexOf("skins/")+6,desktop.indexOf("/",desktop.indexOf("skins/")+6))+'/skin.css">');
  if(desktop.indexOf("tos1")>-1 && is_ie && agt_ieVersion>=5.5) {
   document.writeln('<link rel="stylesheet" type="text/css" href="'+STRING$(doc_PathDeep,"../")+'skins/'+desktop.substring(desktop.indexOf("skins/")+6,desktop.indexOf("/",desktop.indexOf("skins/")+6))+'/skin2.css">');
  }
 }
}

function magicB4() {

 // Fenster-Parameter holen
 SysVarsBody();

 if(doc_type=="Content") {
 // document.writeln('<a class="Screen" href="'+STRING$(doc_PathDeep,"../")+'info/links.htm#Politik"><img src="'+STRING$(doc_PathDeep,"../")+'files/zensurbanner.gif" width="468" height="60" alt="Petition gegen Internetzensur" title="Jede Stimme ist ein Signal!" border="0"></a>');
 }

 // Im IE unten und rechts Frame-Rahmen sichtbar machen
 if(window.name=="WinMain" && is_ie && agt_ieVersion>=5.5 && is_frame) {
  document.body.style.borderBottomColor="#000000";
  document.body.style.borderRightColor="#000000";
  // Wenn Full-Screen, dann im IE "Scrollbar-Anzeige-Bug" beheben (zumindest versuchsweise)
  if((doc_height==agt_screenHeight-88) || (doc_height==agt_screenHeight-142)) {
   document.body.style.scrollbarHighlightColor="#000000";
   document.body.style.scrollbarShadowColor="#000000";
   document.body.style.scrollbar3dlightColor="#FFFFFF";
   document.body.style.scrollbarDarkshadowColor="#FFFFFF";
  }
 }

 // AlwaysVPN-Ad-Remover
 if(document.getElementById && document.getElementById("alwaysvpnadbar")) {
  document.body.removeChild(document.getElementsByTagName("style")[document.getElementsByTagName("style").length-1]);
  document.body.removeChild(document.getElementById("alwaysvpnadbar"));
 }

 // Wenn Content mit Frameset
 if(is_frame && doc_type=="Content") {
  if(is_w3cxDOM) {
   // Scrollbalken durch uebergrossen Inhalt erzwingen ...
   document.getElementsByTagName("table")[0].style.width="100.1%";
   document.getElementsByTagName("table")[0].style.height="100.1%";
   // ... und auf jeden Fall auch Platzhalter dafuer
   document.body.style.overflow="scroll";
  }
 }

 // Wenn Content ohne Frameset
 if(!is_frame && doc_type=="Content") {
  if(is_w3cxDOM) {

   // Scrollbalken nur noch wenn wirklich notwendig
   document.body.style.width="99%";
   document.body.style.height="99%";
   // Und ggf. auch die Platzhalter dafuer weglassen (bzw. zumindest den Horizontalbalken)
   document.body.style.overflow="auto";
   document.body.style.overflowY="scroll";
   // Workaround fuer Ausdruck beim Mozilla
   addStyle("body { overflow: visible !important; overflow-y: visible !important; }","print");
  }
  // Button "Frameset laden"
  SKview=""; for(i=1;i<=doc_PathDeep;i++) { SKview+="../"; }
  // Pfadangabe fuer F1()/F2()
  FimgDir=SKview+"img/";
  if((top.window.name.indexOf("Skin_")+1) && (top.window.name.indexOf("TOS1")+1)) {
   skin=top.window.name.substring(top.window.name.indexOf("Skin_"));
   skinfile="index.htm";
  } else {
   skinfile="index.htm";
  } 

  if(is_oldop) {
   SKview+="index.htm";
  } else {
   SKview+="index.htm"+((doc_File=="start.htm")?"":"?"+escape(doc_fullFile)); //+document.location.hash);
  }
  document.writeln(((is_nav3)?'':'<img class="ContentNav" style="visibility:hidden;" src="'+FimgDir+'leer.gif" width="88" height="72" alt="" title="" align="left" border="0">')+'<a class="ContentNav" href="'+SKview+'" target="_top" onMouseOver="F2(\'menu\');" onMouseOut="F1(\'menu\');" onMouseUp="deFocus(this,true);" hidefocus="true"><img src="'+FimgDir+'menu0.gif" width="88" height="72" name="menu" alt="Lade Menue" title="Lade Men&uuml;frames (&quot;Desktop&quot;)" hspace="0" vspace="0" align="'+((is_nav3)?'left':'right')+'" border="0"><\/a>'+((is_nav3)?'<br clear="all">':''));
  if(document.images) { menuCache1=new Image(); menuCache1.src=FimgDir+"menu1.gif"; menuCache2=new Image(); menuCache2.src=FimgDir+"menu2.gif"; }
 }

}

function magicL8() {

 if(doc_type=="Content") {
  // Englische Textpassagen in deutschen Browsern einklappen
  if(agt_lang.substring(0,2)=="de" && document.location.hash!="#english") { toggle("fold","div:lang","en"); }

  /*
  document.write('<center><div class="InfoButtons" align="center"><img name="visit" src="'+STRING$(doc_PathDeep,"../")+'img/visit.gif?+'+(new Date()).getTime()+'" width="5" height="10" alt="" title="" border="0"><a href="http://www.digitalpoint.com/tools/geovisitors/"><img src="http://geo.digitalpoint.com/a.png" alt="Geo Visitors Map" title="" border="0"></a></div></center>');
  if(is_nav && is_w3cDOM && navigator.userAgent.indexOf("IC_")>-1) { cssRule(".InfoButtons@screen","visibility","visible"); }
  */
  window.onbeforeunload=function() { if(document.images["visit"]) { document.images["visit"].src=STRING$(doc_PathDeep,"../")+"img/visit.gif?-"+(new Date()).getTime(); } }

  // Im Debug-Modus Link auf alertSysVars()
  if(do_debug) { 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,"../")+'img/leer.gif" width="5" height="5" alt="" title="" align="left" border="1"><\/a><img src="'+STRING$(doc_PathDeep,"../")+'img/leer.gif" width="5" height="5" alt="" title="" align="right" border="0">'); }
 }

}

function magicOK() {
 var i;

 // Frameset
 if(doc_type=="Frameset" || doc_type=="FramesetJS") {
  if(window.frames["DeskRight"] && !is_ie) {
   window.frames["DeskRight"].location.reload();
  }
 }

 // Content-Page
 if((doc_type=="Content")) {

  if(do_opt) {
   if(!agt_speed && !is_cached) {
    SysVarSpeed();
   }
  }

  // Inhaltsframe fokussieren
  if(is_frame) {
   self.focus();
  }

 }

 // "Link-Rahmen" ggf. immer deaktivieren
 if(do_deFocus) {
  for(i=0; i<document.links.length; i++) {
   document.links[i].onmouseup=function() { deFocus(this); }
  }
 }

}

function magicXL() {
 // Wenn Breitenaenderung, ggf. auch "Fuller" des Pseudofensters erneuern
 if(!is_ie && doc_File=="dbottom.htm") {
  parent.WinRight.location.replace(parent.WinRight.location.href);
 }
}

function magicKO() {
// if(doc_type=="Content" && document.images && document.images["visit"]) { document.images["visit"].src=STRING$(doc_PathDeep,"../")+"img/visit.gif?-"+Math.round((new Date()).getTime()/1000); }
}

// =============================== Direkt-Code ===============================

// PARAMETER UNBEDINGT DEN EIGENEN BEDINGUNGEN ANPASSEN!
SysVarsHead("coding","index.htm");

/* Dokument-Typen:
   Frameset (Framesetdefinition)
   Frameset (Framesetdefinition in JavaScript)
   Content  (Inhaltsseite)
   Element  (Navigationsseite, Typ 1)
   Elementx (Navigationsseite, Typ 2)
*/

xJS=true; // Externes JavaScript geladen!

