if (typeof(LinkDev) == 'undefined')
{
    LinkDev = new Object();
}

if (typeof(LinkDev.WebMonkey) == 'undefined')
{
    LinkDev.WebMonkey = new Object();
}

if (typeof(LinkDev.WebMonkey.Tickers) == 'undefined')
{
    LinkDev.WebMonkey.Tickers = new Object();
}

LinkDev.WebMonkey.Tickers.AllTickers = new Array();

LinkDev.WebMonkey.Tickers.AddTicker = function(id, target, scrollDelay, scrollAmount, space)
{
    var ticker = new Object();
    ticker.id = id;
    ticker.target = target;
    ticker.scrollDelay = scrollDelay;
    ticker.scrollAmount = scrollAmount;
    ticker.space = space;
    ticker.stopped = false;
    ticker.items = new Array();
    LinkDev.WebMonkey.Tickers.AllTickers[LinkDev.WebMonkey.Tickers.AllTickers.length] = ticker;
}

LinkDev.WebMonkey.Tickers.AddTickerItem = function(id, text, url, description)
{
    var ticker;
    var i;
    var all = LinkDev.WebMonkey.Tickers.AllTickers;
    for(i = 0; i < all.length; i++)
    {
        if (all[i].id == id)
        {
            ticker = all[i];
            break;
        }
    }
    var item = new Object();
    item.text = text;
    item.url = url;
    item.description = description;
    ticker.items[ticker.items.length] = item;
}

LinkDev.WebMonkey.Tickers.StartTicker = function(ticker)
{
    var html = '<div style="position:absolute; left: 0px; top: 0px; white-space: nowrap;" id="' + ticker.id + '_ticker" >';
    var i, j;
    for(i = 0; i < ticker.items.length; i++)
    {
        var item = ticker.items[i];
        if(i != 0)
        {
            for(j = 0; j < ticker.space; j++)
            {
                html += "&nbsp;";
            }
        }
        var itemHtml;
        if(item.url == null || item.url == "")
        {
            itemHtml = '<span';
        }
        else
        {
            itemHtml = '<a href="' + item.url + '" ';
            if(ticker.target != null && ticker.target != "")
            {
                itemHtml += ' target="' + ticker.target + '" ';
            }
        }
        if(item.description != null && item.description != "")
        {
            itemHtml += ' title="' + item.description + '" ';
        }
        itemHtml += '>' + item.text;
        if(item.url == null || item.url == "")
        {
            itemHtml += '</span>';
        }
        else
        {
            itemHtml += '</a>';
        }
        
        html += itemHtml;
    }
    html += "</div>";
    var tickParent = document.getElementById(ticker.id);
    tickParent.ticker = ticker;
    tickParent.innerHTML = html;
    var div = document.getElementById(ticker.id + "_ticker");
    tickParent.tickChild = div;
    var width = tickParent.offsetWidth;
    if(ticker.scrollAmount < 0)
    {
       div.style.left = (-10 - div.offsetWidth).toString() + "px";
    }
    else
    {
        div.style.left = (width + 10).toString() + "px";
    }
    if(tickParent.style.height == "" || tickParent.style.height == null)
    {
        tickParent.style.height = (div.offsetHeight + 2) + "px";
    }
    if(tickParent.style.width  == "" || tickParent.style.width == null)
    {
        tickParent.style.width = "100%";
    }
    setInterval('LinkDev.WebMonkey.Tickers.ScrollTicker("' + ticker.id + '")', ticker.scrollDelay);
}

LinkDev.WebMonkey.Tickers.ScrollTicker = function(id)
{
    var tickParent = document.getElementById(id);
    var ticker = tickParent.ticker;
    if(ticker.stopped)
    {
        return;
    }
    var div = tickParent.tickChild;
    var left = parseInt(div.style.left);
    var width = tickParent.offsetWidth;
    if(ticker.scrollAmount > 0)
    {
        if(left > (-10 - div.offsetWidth))
        {
            left = left - ticker.scrollAmount;
        }
        else
        {
            left = width + 10;
        }
    }
    else
    {
        if (left > 10 + width)
        {
            left = -10 - div.offsetWidth;
        }
        else
        {
            left = left - ticker.scrollAmount;
        }
    }
    div.style.left = left.toString() + "px";
}

LinkDev.WebMonkey.Tickers.OriginalOnload = window.onload;

window.onload = function()
{
    if(typeof(LinkDev.WebMonkey.Tickers.OriginalOnload) == 'function')
    {
        LinkDev.WebMonkey.Tickers.OriginalOnload();
    }
    var all = LinkDev.WebMonkey.Tickers.AllTickers;
    for(i = 0; i < all.length; i++)
    {
        LinkDev.WebMonkey.Tickers.StartTicker(all[i]);
    }
}

