﻿var Tickers = new Array();
var PausedTicker = null;


function Ticker(Index, ID, AJAXURL, Content, Speed, IsRTL, Elem, TimeOut) {
    this.Index = Index;
    this.ID = ID;
    this.AJAXURL = AJAXURL;
    this.Content = Content;
    this.Speed = Speed;
    this.IsRTL = IsRTL;
    this.Elem = Elem;
    this.TimeOut = TimeOut;
}

function RunTicker(index) {
    PausedTicker = null;
}

function StopTicker(index) {
    PausedTicker = index;
}

function IsPaused(index) {
    if (PausedTicker == index)
        return true;
    else
        return false;
}

function TickerStart(ticker) {
    ticker.Elem.style.width = ticker.Elem.parentNode.offsetWidth - 4;

    var tickerSupported = false;
    var img = "<img src='images/pixel.gif' width='" + ticker.Elem.offsetWidth + "px' height='0' border='0'>";    
    if (navigator.userAgent.indexOf("Firefox") != -1) {
        ticker.Elem.innerHTML = "<table cellspacing='0' cellpadding='0'><tr><td> " + img + "</td><td id='Body_" + ticker.ID + "'></td><td>" + img + "</td></tr></table>";
        tickerSupported = true;
    }
    else if ((navigator.userAgent.indexOf("MSIE") != -1 && navigator.userAgent.indexOf("Opera") == -1)
    ||(navigator.userAgent.indexOf("Chrome") != -1)) {
        ticker.Elem.innerHTML = "<div><table cellspacing='0' cellpadding='0'><tr><td>" + img + " </td><td id='Body_" + ticker.ID + "'></td><td>" + img + "</td></tr></table></div>";
        tickerSupported = true;
    }

    if (!tickerSupported) {
        ticker.Elem.outerHTML = "";
    }
    else {
        document.getElementById("Body_" + ticker.ID).innerHTML = ticker.Content;
        window.setTimeout("TickerTick(" + ticker.Index + ")", ticker.TimeOut);
    }

    ticker.Elem.style.width = 1010;
}

function TickerTick(index) {
    if (!IsPaused(index)) Tickers[index].Elem.scrollLeft += Tickers[index].Speed * (Tickers[index].IsRTL ? -1 : 1);

    if (Tickers[index].IsRTL) {
        if (navigator.appName == 'Netscape')// && navigator.userAgent=='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1')
        {
            var tckrScrollLeft = (Tickers[index].Elem.scrollLeft * -1) - 150;
            var tckrLength = Tickers[index].Content.length * 3;

            if (tckrLength <= tckrScrollLeft || (Tickers[index].Elem.scrollWidth - tckrScrollLeft) <= 1000)//if(Tickers[index].Elem.scrollWidth<=tckrScrollLeft)
            {
                Tickers[index].Elem.scrollLeft = Tickers[index].Elem.scrollWidth - Tickers[index].Elem.offsetWidth;
                if (Tickers[index].AJAXURL != "")
                    GetTickerData(Tickers[index].ID, Tickers[index].AJAXURL);
            }
        }
        else {
            if (Tickers[index].Elem.scrollLeft <= 0) {
                Tickers[index].Elem.scrollLeft = Tickers[index].Elem.scrollWidth - Tickers[index].Elem.offsetWidth;
                if (Tickers[index].AJAXURL != "")
                    GetTickerData(Tickers[index].ID, Tickers[index].AJAXURL);
            }
        }
    }
    else {
        if (Tickers[index].Elem.scrollLeft >= Tickers[index].Elem.scrollWidth - Tickers[index].Elem.offsetWidth) {
            Tickers[index].Elem.scrollLeft = 0;
            if (Tickers[index].AJAXURL != "")
                GetTickerData(Tickers[index].ID, Tickers[index].AJAXURL);
        }
    }

    window.setTimeout("TickerTick(" + index + ")", Tickers[index].TimeOut);
}

function GetTickerData(tickerID, AJAXURL) {
    var objXmlHttp = GetXmlHttpObject();

    objXmlHttp.onreadystatechange = function () { ChangeHandler(tickerID, objXmlHttp) };

    XmlHttpGet(objXmlHttp, AJAXURL);
}

function ChangeHandler(tickerID, objXmlHttp) {
    if (objXmlHttp.readyState == 4 || objXmlHttp.readyState == 'complete') {
        if (objXmlHttp.status == 200)//ok
        {
            var sResponse = objXmlHttp.responseText;

            document.getElementById("Body_" + tickerID).innerHTML = sResponse;
        }
    }
}

function OpenTickerSettings(elemId) {
    Show(elemId);
}

function CloseTickerSettings(elemId) {
    Hide(elemId);
}

var TickerSpeedTimeOut = new Array();

TickerSpeedTimeOut[TickerSpeedTimeOut.length] = [1, 20];
TickerSpeedTimeOut[TickerSpeedTimeOut.length] = [2, 36.3636363636364];
TickerSpeedTimeOut[TickerSpeedTimeOut.length] = [3, 50];
TickerSpeedTimeOut[TickerSpeedTimeOut.length] = [4, 61.5384615384615];
TickerSpeedTimeOut[TickerSpeedTimeOut.length] = [5, 71.4285714285714];
TickerSpeedTimeOut[TickerSpeedTimeOut.length] = [6, 80];
TickerSpeedTimeOut[TickerSpeedTimeOut.length] = [7, 87.5];
TickerSpeedTimeOut[TickerSpeedTimeOut.length] = [8, 94.1176470588235];
TickerSpeedTimeOut[TickerSpeedTimeOut.length] = [9, 100];
TickerSpeedTimeOut[TickerSpeedTimeOut.length] = [10, 105.263157894737];

function GetTickerTimeOut(Speed) {
    var defaultTimeOut = 50;
    for (var i = 0; i < TickerSpeedTimeOut.length; i++)
        if (TickerSpeedTimeOut[i][0] >= Speed)
            return TickerSpeedTimeOut[i][1];
    return defaultTimeOut;
}

function IncSpeed(index) {
    try {
        if (Tickers[index].Speed < TickerSpeedTimeOut[TickerSpeedTimeOut.length - 1][0]) {
            Tickers[index].Speed += 1;
            Tickers[index].TimeOut = GetTickerTimeOut(Speed);
        }
    }
    catch (ex) {
    }
}

function DecSpeed(index) {
    try {
        if (Tickers[index].Speed > 1) {
            Tickers[index].Speed -= 1;
            Tickers[index].TimeOut = GetTickerTimeOut(Speed);
        }
    }
    catch (ex) {
    }
}

function ChangeDir(index) {
    Tickers[index].IsRTL = !Tickers[index].IsRTL;
}



