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/spacer.gif' width='" + ticker.Elem.offsetWidth + "px' height='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)
	{
		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);
    }
}

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;
	            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;
	            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;
	        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;
}


