// variable defined by XML
/*
var nTeletypeTick - tick time in milliseconds
var nTeletypePause - pause time in milliseconds
var nTeletypeMax - number of ticks between pauses
var sTeletypeDot - dot character, e.g. '+'
var nTeletypeStringLength - long enough to go across even a wide screen
var sTeletypePauseText - text shown during pause, e.g. 'Ensemble Hofkapelle'
var aTeletype - array of strings to build the teletype
*/

var bStatic = false; // show static or moving text

var sTeletypeString = ""; // the teletype string
var sTeletypePauseString = makePauseString(sTeletypePauseText, sTeletypeDot, nTeletypeStringLength);
var nTeletypeCount = 0; // tick counter

// get started
var imgTeletypeTrigger = new Image();	
imgTeletypeTrigger.onLoad = initTeletype();	
imgTeletypeTrigger.src = "images/logo/teletypeTrigger.gif";

var nTeletypeTimer = null; // timer id
var sTeletypeObjName = "marquee"; // matches <div id="marquee"> ... </div>
var oTeletypeObject = null;

function initTeletype() {
    clearTimeout(nTeletypeTimer);
    nTeletypeCount = -1;
    nTeletypeTimer = window.setTimeout("nTeletypeTimer = null; loadTeletype();", nTeletypeTick);
}
function buildTeletypeString() {
    var n = nTeletypeStringLength + nTeletypeMax; // enough to go across the screen after all the ticks
    var s = sTeletypeDot + " ";
    while (s.length < n) {
        var i = Math.floor(Math.random() * aTeletype.length);
        if (i >= aTeletype.length) i = 0;
        s += aTeletype[i] + " " + sTeletypeDot + " ";
    }
    return s.replace(/[ ]/ig, "\240").replace(/[-]/ig, "\255"); // convert all spaces to hard spaces
}
function loadTeletype() {
    clearTimeout(nTeletypeTimer);
    if (document.getElementById) {
        oTeletypeObject = document.getElementById(sTeletypeObjName);
    } else if (document.all) {
        oTeletypeObject = document.all(sTeletypeObjName);
    }
    if (oTeletypeObject) {
        sTeletypeString = buildTeletypeString();
        if (document.getElementById) {
            oTeletypeObject.childNodes[0].nodeValue = sTeletypeString;
        } else if (oTeletypeObject.innerText) {
            oTeletypeObject.innerText = sTeletypeString;
        }
        nTeletypeCount = bStatic ? nTeletypeMax : 0;
        nTeletypeTimer = window.setTimeout("nTeletypeTimer = null; tickTeletype();", bStatic ? nTeletypeTick * nTeletypeMax : nTeletypeTick);
    }
}
function tickTeletype() {
    clearTimeout(nTeletypeTimer);
    nTeletypeCount++;
    var str = sTeletypeString.substring(nTeletypeCount, nTeletypeCount + nTeletypeStringLength);
    if (document.getElementById) {
        oTeletypeObject.childNodes[0].nodeValue = str;
    } else if (oTeletypeObject.innerText) {
        oTeletypeObject.innerText = str;
    }

    if (nTeletypeCount < nTeletypeMax) {
        nTeletypeTimer = window.setTimeout("nTeletypeTimer = null; tickTeletype();", nTeletypeTick);
    } else if (nTeletypePause <= 0) {
        nTeletypeTimer = window.setTimeout("nTeletypeTimer = null; loadTeletype();", nTeletypeTick);
    } else {
        nTeletypeTimer = window.setTimeout("nTeletypeTimer = null; pauseTeletype();", nTeletypeTick);
    }
}
function pauseTeletype() {
    clearTimeout(nTeletypeTimer);
    sTeletypeString = sTeletypePauseString;
    if (document.getElementById) {
        oTeletypeObject.childNodes[0].nodeValue = sTeletypeString;
    } else if (oTeletypeObject.innerText) {
        oTeletypeObject.innerText = sTeletypeString;
    }
    nTeletypeCount = -1;
    nTeletypeTimer = window.setTimeout("nTeletypeTimer = null; loadTeletype();", nTeletypePause);
}
function makePauseString(s, d, n) {
    var x = "\240" + s.replace(/[ ]/ig, "\240") + "\240" + d;
    while (x.length < (n - 1)) {
        x += x;
    }
    return (d + x).substring(0, n);
}
