/* Icon- + Color-Switcher + IE-workarrond fuer s16_twtd (www.the-well-tempered-dog.com)
  - Alle Rechte: E.J.Minhorst - aendern, kopieren verboten !
  - (c) 2003-2005 E.J.Minhorst, Dresden/Germany http://www.ejomi.de/
  - It is expressly forbidden to modify, copy, publish or sell this
  - sourcecode (or parts of it) without prior written consent by author!
*/

window.onerror = ErrProc;
var prgname="b00index.js";

/* Vorgaben für Ticker-Zeile: */
var Ticker = "";
 Ticker = Ticker + "Nächstes Seminar 'Clickern im Team' am 24. Mai";
 Ticker = Ticker + " und am 12. Juli bei den Hundefreunden Wetzlar. Infos unter: ";
 Ticker = Ticker + "<a href='http://www.hundefreunde-wetzlar.de'>www.hundefreunde-wetzlar.de</a>";
 Ticker = Ticker + " +++ Matze ist seit dem 4. April '08 offizielles Mitglied der Sprengstoffhunde-Staffel der";
 Ticker = Ticker + " <a href='http://www.wisag.at/index.cfm?siteid=76&CFID=1695691&CFTOKEN=f8a4d33c919eaa5f-4F2CC924-AA7D-7C89-875EB2D2F4999482&jsessionid=d23061698b2d1$3F$3Fh'>WISAG</a>";
 Ticker = Ticker + " (na gut, Claudia auch ;-)";
 Ticker = Ticker + " +++ Basils Quali-Prüfung 6.April: 99-91-80";
 Ticker = Ticker + " ... Trotzdem danke der OG Kriftel, 'Bommi' Bommersheim und Th. Lapp";
 Ticker = Ticker + " - super OG, super Helfer und super Richter!!";
 Ticker = Ticker + " +++ 17. Mai: Veranstaltung des <a href='http://www.sv-2000.de/'>SV2000 e.V.</a>";
 Ticker = Ticker + " im Kölner Rhein-Enegie-Stadion. Wir sind alle gespannt!!";
 Ticker = Ticker + " +++ 28. Juni 2008 ab 13.00 Uhr Vorführung Flächensuche / Bringselverweisen"
 Ticker = Ticker + " und Sprengstoffsuche beim VdH Groß-Rohrheim. Kontakt: Friedel Hofmann, Bahnhofstraße 30,"
 Ticker = Ticker + " 68649 Groß-Rohrheim, Tel.: 06245 - 7278";

 // Intro ( "Titel-Text beim 1. Durchlauf" , "Trennzeichen bei Wiederholung" )
 var Intro = new Array("                                ... THE WELL TEMPERED DOG:      ","   * TICKER ENDE *   ");

 // Pause in Millisekunden beim Ueberfahren mit der Maus:
 var PauseTime = 20;

 // Vorgaben Banner-Breite (Buchstaben) und diverse Roll-Tempi (msec):
 var DisplayWdt = 80, NormSpeed = 90, FastSpeed = 20;

 // ID-Name des Ticker-Abschnitts (HTML):
 var DomID = "DOMTick1"

 // Schleifen-Ende (Anzahl durchlaufender Doppel-Banner bis zum Stop):
 var MaxLoops = 5;
 var tmpx = 0;

/* Vorgaben für Statuszeilen-Ticker: */
var TickerText = "++ date: ...  ++";
var readystr;
var scrollengh=10;
var spacebefore=100;

/* Statuszeilen-Texte bei Mous-Over (MouseInfo[0] = Standard-Text!) */
MouseInfo = new Array("welcome to 'The Well Tempered Dog' !");
MouseInfo[1] = "Zur deutschen Text-Fassung ...";
MouseInfo[2] = "continue with the next page in english ...";
MouseInfo[3] = "jump to the next page ...";

/* Flags + Objekt-Variablen */
var BtnPath = "website/pbuttons/";
var ImgNum=0;

/* Anzahl Swap-Images: */
var LastImg=5
var prld=0;
var sfterr=0;
var isdefault=0;
var havelogo;
var doc=window.document;

/* Array als Bild-Container vorbereiten */
doc.BtnPic = new Array(LastImg + 1);
for (i=0; i < doc.BtnPic.length; ++i) doc.BtnPic[i] = new Array(2);
for (i=0; i < doc.BtnPic.length; ++i){
for (k=0; k < 2; ++k) doc.BtnPic[i][k] = new Image();}

/* permanenter Statuszeilen-Text  */
window.defaultStatus = MouseInfo[0];

/* Knoepfe + Wechsel-Grafiken im Voraus laden */
doc.BtnPic[1][0].src = BtnPath + "udeut06a.gif";
doc.BtnPic[1][1].src = BtnPath + "udeut06b.gif";

doc.BtnPic[2][0].src = BtnPath + "uengl05a.gif";
doc.BtnPic[2][1].src = BtnPath + "uengl05b.gif";

doc.BtnPic[3][0].src = BtnPath + "arrow01a.gif";
doc.BtnPic[3][1].src = BtnPath + "arrow01b.gif";

doc.BtnPic[4][0].src = BtnPath + "flag_e03.gif";
doc.BtnPic[4][1].src = BtnPath + "flag_e02.gif";

doc.BtnPic[5][0].src = BtnPath + "flag_d03.gif";
doc.BtnPic[5][1].src = BtnPath + "flag_d02.gif";

prld=1;
isdefault=0;
havelogo=0;

//ScrollSetup(TickerText);


// ======================== ab hier nichts aendern! =========================

// Ticker-Funktionsvariablen:
var StartPos=0,TickerOff=0,ItmNum=0,ObjCnt=0,ChkLen=0,StrLen=0,RgtSln=0,Turn=0;
var ActPos=StartPos,Speed=NormSpeed,TxtFst=0,OldLen=0,IsBusy=0,Mov=1,Elapse=0;
var RefCmd="<a href='",RefEnd="'>",CmdEnd="</a>",RgtStr="",ChkStr="",OldStr="";
var LftStr = new Array(), UrlStr = new Array(), CptStr = new Array();
var LftSln = new Array(), UrlSln = new Array(), CptSln = new Array();
var HasUrl = new Array(), TxtNde = new Array(), UrlNde = new Array();
var CpyRgt = "Java-Script/DOM Ticker (c) 2008: E.J.Minhorst, Dresden";
var OrgLen = GetTickerItems(0);


// Standard Statustext-Wechsler (MouseOver):  */
function BtnMsg(msgnum){if (sfterr){sfterr=0; return true;}
else window.status=MouseInfo[msgnum];}


/* Standard Bild-Wechsler (MouseOver/MouseDown): */
function FlipBtn(TagID,Swtch){
if (!doc.images[TagID]){
sfterr=1;
window.status = "ERROR " + prgname + "/FlipBtn : TAG-ID '" + (TagID) + "' NOT FOUND!";}
else {
ImgNum = eval(TagID.substr(1,2));
if (!ImgNum || ImgNum > LastImg) {
window.status = "ERROR " + prgname + "/FlipBtn : ImgNum '" + (ImgNum) + "' NOT EXIST!";
}
else{
doc.images[TagID].src = doc.BtnPic[ImgNum][Swtch].src;
window.status=MouseInfo[ImgNum];}
}}

/* Scroll-Funktionen (Ticker-Zeile) */
function ScrollSetup(orgstr){
var spc = " ";
for (x=0; x < spacebefore; x++){spc += " ";}
readystr = spc + orgstr;
ScrollStart();
}

function ScrollStart(){
window.setTimeout('Scroll(readystr)', 10)
}

function Scroll(msg){
if (msg.length > scrollengh){
 newmsg = msg.substring (1, msg.length)
 self.status=newmsg
 BusyTime = window.setTimeout('Scroll(newmsg)', 100);
 }
else{
 BusyTime = window.setTimeout('ScrollStart()', 1)
 }
}

/*



/* Hover-Klapplisten fuer MS-IE ab V.5 */

if(window.navigator.systemLanguage && !window.navigator.language) {

  function hoverIE() {
    var ElmBox1 = document.getElementById("mnu1").firstChild;
    var ElmBox2 = document.getElementById("mnu2").firstChild;

    do {
      if (IsMenu(ElmBox1.firstChild)) {
        ElmBox1.onmouseover=ShowMenu1;
        ElmBox1.onmouseout=HideMenu;
      }
      ElmBox1 = ElmBox1.nextSibling;
    }
    while(ElmBox1);

    do {
      if (IsMenu(ElmBox2.firstChild)) {
        ElmBox2.onmouseover=ShowMenu2;
        ElmBox2.onmouseout=HideMenu;
      }
      ElmBox2 = ElmBox2.nextSibling;
    }
    while(ElmBox2);
  }

  function IsMenu(ActChild) {
    do {
      if(ActChild) ActChild = ActChild.nextSibling;
      if(ActChild && ActChild.nodeName == "DIV") return ActChild;
    }
    while(ActChild);
    return false;
  }

  function ShowMenu1() {
    var MenuTAG = IsMenu(this.firstChild);
    with (MenuTAG.style) {
       fontSize = "13px";
       display = "inline";
       position = "relative";
       top = "-34px";
       zindex = "2";
       backgroundColor = "#565143";
    }
  }

  function ShowMenu2() {
    var MenuTAG = IsMenu(this.firstChild);
    with (MenuTAG.style) {
       fontSize = "13px";
       display = "inline";
       position = "relative";
       top = "-22px";
       zindex = "2";
       backgroundColor = "#565143";
    }
  }

  function HideMenu() {
    IsMenu(this.firstChild).style.display = "none";
  }

  window.onload=hoverIE;
}



// ----------------- D O M  TICKER --- Aufruf-Funktionen --------------------

function StopTicker() {
   TickerOff = 1;
}

function MoveFast()  {
   if (TickerOff) {
      RestartTicker();
   }
   else {
      Mov = 1;
      IsBusy = 0;
      Speed = FastSpeed;
   }
}

function MoveNormal()  {
   if (TickerOff) {
      RestartTicker();
   }
   else {
      Mov = 1;
      IsBusy = 0;
      Speed = NormSpeed;
   }
}

function Rewind() {
   if (TickerOff) {
      RestartTicker();
   }
   else {
      Mov = -1;
      Speed = FastSpeed;
   }
}

function Pause() {
   if (TickerOff) {
      RestartTicker();
   }
   else {
      Mov = 0;
      Elapse = PauseTime;
   }
}

function RestartTicker() {
   if (IsBusy) return;
   ActPos = StartPos;
   Speed = NormSpeed;
   TickerOff = 0;
   Mov = 1;
   Turn = 0;
   ItmNum = 0;
   OrgLen = GetTickerItems(0);
   RollTicker();
}

function RollTicker() {

   if (TickerOff) {
      window.status = "Ticker:  - O F F -  " + CpyRgt;
      IsBusy=0;
   }
   else {
      if (IsBusy==0) {
         IsBusy=1;
         window.status = CpyRgt;
      }
      ScreenPlay();
      window.setTimeout("RollTicker()", Speed);
   }
}


/*
   ===================== D O M  TICKER == BASIS-ROUTINEN ====================
            alle Rechte: E.J.Minhorst, Dresden (http://www.ejomi.de/)
   --------------------------------------------------------------------------
*/

function ScreenPlay() {

    var FstLen = OrgLen;

    if (Mov == 0) {
       Speed = 100;
       Elapse--;

       if (Elapse < 0) {
          Mov = 1;
          Speed = NormSpeed;
       }
    }
    else {

       ObjCnt = 0; ChkLen = 0; OldLen = 0; TxtFst=0;
       ChkStr = ""; ChkOld = "";

       DeleteDynHTM();

       StrLen = AddItems(ActPos);

       if (StrLen < DisplayWdt){
             ChkLen = StrLen;
             ChkOld = ChkStr;
             OldLen = StrLen;
             if (Turn < 1) {
                ItmNum = 0;
                OrgLen = GetTickerItems(1);
                StrLen = AddItems(1)

                ItmNum = 0;
                OrgLen = GetTickerItems(0);
             }
             else {

                StrLen = AddItems(1)

             }
       }

       InsertDynHTM();

         ActPos = ActPos + Mov;

         if (ActPos < 1) ActPos = FstLen;

          if (ActPos > OrgLen - TxtFst) {
            ActPos=0;
            if (Mov == 1) {
               Turn++;
               if (Turn == 1) {
                 ItmNum = 0;
                 OrgLen = GetTickerItems(1);
               }

               if (Turn > MaxLoops) {
                 Mov = 1;
                 TickerOff = 1;
               }

            }

            //alert(" Banner-Ende! ");
            //return;
          }
    }
}



function DeleteDynHTM() {

    var Node01, Node02, DomElm = document.getElementById(DomID);
    Node01 = DomElm.firstChild;
    DomElm.style.visibility = "hidden";

    while (Node01 != null) {
       if (Node01.hasChildNodes()) {
            Node02 = Node01.firstChild;
            Node01.removeChild(Node02);
       }
       else {
            DomElm.removeChild(Node01);
       }
       Node01 = DomElm.firstChild;
    }
}

function InsertDynHTM() {

   var DomElm = document.getElementById(DomID);
   var CptNde = new Array(), NewNde = new Array();

   for (n = 0; n < ObjCnt; n++) {

        if (HasUrl[n]) {
           NewNde[n] = document.createElement("a");
           NewNde[n].href = UrlNde[n];
           CptNde[n] = document.createTextNode(TxtNde[n]);
           NewNde[n].appendChild(CptNde[n]);
        }
        else {
           NewNde[n] = document.createTextNode(TxtNde[n]);
        }

        DomElm.appendChild(NewNde[n]);
   }

   DomElm.style.visibility = "visible";

}


function AddItems(CutPos) {

    var n = 0, NxtItm = 0, ItmBgn = 0, GetLeft = 1, TmpStr = "";

    if ((OrgLen-CutPos-RgtSln)>0) {

       // Ticker-Anfang (Schnittkante, links):
       for (n = 0; n < ItmNum; n++) {

          // Textteil  v o r  HREF:
          HasUrl[ObjCnt] = 0;
          GetLeft = 0;
          TxtFst =1;
          ChkLen = ChkLen + LftSln[n];
          if (ChkLen > CutPos) {
             ItmBgn = CutPos - ChkStr.length + OldLen;
             TmpStr = LftStr[n].slice(ItmBgn, ItmBgn + DisplayWdt - OldLen);
             TxtNde[ObjCnt] = TmpStr;
             ObjCnt ++;
             ChkStr = ChkOld + TmpStr;
             NxtItm = n;
             break;
          }
          ChkStr = ChkStr + LftStr[n];

          // HREF-Bezeichner:
          HasUrl[ObjCnt] = 1;
          GetLeft = 1;
          TxtFst =0;
          ChkLen = ChkLen + CptSln[n];
          if (ChkLen > CutPos) {
             ItmBgn = CutPos - ChkStr.length - OldLen;
             TmpStr = CptStr[n].slice(ItmBgn, ItmBgn + DisplayWdt - OldLen);
             TxtNde[ObjCnt] = TmpStr;
             UrlNde[ObjCnt] = UrlStr[n];
             ObjCnt ++;
             ChkStr = ChkOld + TmpStr;
             NxtItm = n + 1;
             break;
          }
          ChkStr = ChkStr + CptStr[n];
       }

       ChkLen = ChkStr.length;

       if  (ChkStr.length < DisplayWdt) {

          // Rest bis zur rechten Kante
          for (var n = NxtItm; n < ItmNum; n++) {

             // Textteil vor HREF:
             if (GetLeft) {
                HasUrl[ObjCnt] = 0;
                ChkLen = ChkLen + LftSln[n];
                if (ChkLen > DisplayWdt) {
                   ChkLen = ChkStr.length;
                   TmpStr = LftStr[n].substr(0, DisplayWdt - ChkLen);
                   TxtNde[ObjCnt] = TmpStr;
                   ObjCnt ++;
                   ChkStr = ChkStr + TmpStr;
                   break;
                }
                TmpStr = LftStr[n];
                TxtNde[ObjCnt] = TmpStr;
                ObjCnt ++;
                ChkStr = ChkStr + TmpStr;
             }

             // HREF-Bezeichner:
             HasUrl[ObjCnt] = 1;
             ChkLen = ChkLen + CptSln[n];
             if (ChkLen > DisplayWdt) {
                ChkLen = ChkStr.length;
                TmpStr = CptStr[n].substr(0, DisplayWdt - ChkLen);
                TxtNde[ObjCnt] = TmpStr;
                UrlNde[ObjCnt] = UrlStr[n];
                ObjCnt ++;
                ChkStr = ChkStr + TmpStr;
                break;
             }
             TmpStr = CptStr[n];
             TxtNde[ObjCnt] = TmpStr;
             UrlNde[ObjCnt] = UrlStr[n];
             ObjCnt ++;
             ChkStr = ChkStr + TmpStr;

             GetLeft = 1;
          }
       }

       ChkLen = ChkStr.length;

       if (ChkLen < DisplayWdt) {
          TmpStr = RgtStr.substr(0, DisplayWdt - ChkLen);
          HasUrl[ObjCnt] = 0;
          TxtNde[ObjCnt] = TmpStr;
          ObjCnt ++;
          ChkStr = ChkStr + TmpStr;
       }

    }
    else {

       ChkLen = ChkStr.length;
       var XLWN = ChkLen;
       if (ChkLen < DisplayWdt) {
          TmpStr = RgtStr.substr(RgtSln-(OrgLen-CutPos),DisplayWdt - OldLen);
          HasUrl[ObjCnt] = 0;
          TxtNde[ObjCnt] = TmpStr;
          ObjCnt ++;
          ChkStr = ChkStr + TmpStr;
       }
    }

    ChkLen =  ChkStr.length;

    return ChkLen;
}


function GetTickerItems(SwpTyp) {

   var NxtHrf=0, RgtPos=0, RgtLen=0, EndPos=0, CmdPos=0, CmdLen=0, TxtLen=0;
   var RefWdt = RefCmd.length, EndWdt = RefEnd.length, CmdWdt = CmdEnd.length;
   var Loop = 0;
   RgtStr = MakeHrefStd(Intro[SwpTyp] + Ticker);

   NxtHrf = RgtStr.indexOf(RefCmd,0);

   while (NxtHrf != -1) {

       LftStr[ItmNum] = RgtStr.substr(0, NxtHrf);        // Text vor HREF
       LftSln[ItmNum] = NxtHrf;
       TxtLen = TxtLen + NxtHrf;

       RgtPos = NxtHrf + RefWdt;
       RgtLen = RgtStr.length - RgtPos;
       RgtStr = RgtStr.substr(RgtPos, RgtLen);
       EndPos = RgtStr.indexOf(RefEnd, 0);
       UrlStr[ItmNum] = RgtStr.substr(0, EndPos);        // URL-Adresse
       UrlSln[ItmNum] = EndPos;

       RgtLen = RgtLen - (EndPos + EndWdt);
       RgtStr = RgtStr.substr(EndPos + EndWdt, RgtLen);
       CmdPos = RgtStr.indexOf(CmdEnd, 0);
       CptStr[ItmNum] = RgtStr.substr(0, CmdPos);        // HREF-Bezeichner
       CptSln[ItmNum] = CmdPos;
       TxtLen = TxtLen + CmdPos;

       RgtLen = RgtLen - (CptStr[ItmNum].length + CmdWdt);
       RgtStr = RgtStr.substr(CmdPos + CmdWdt, RgtLen);  // Textrest dahinter

       ItmNum ++;
       NxtHrf = RgtStr.indexOf(RefCmd, 0);

   }

   RgtSln = RgtStr.length;
   TxtLen = TxtLen + RgtSln;

   return TxtLen;

}

function MakeHrefStd(SourceStr) {
 var ProperStr = SourceStr.replace(/<a href=\'|<A HREF = \'|<A HREF= \'|<A HREF =\'/gi,"<a href='")
 ProperStr = ProperStr.replace(/<\/A/gi,"</a");
 return ProperStr;
}

/* Standard-Subs */

function ErrProc(Msg, Src, LnNr) {
errtxt = Msg + " Line-Nr.: " + LnNr;
DisplayError();
return true;
}

function DisplayError () {
  window.status = "GENERAL ERROR: " + prgname + " / " + errtxt;
}
