﻿var listHotNews;
var splashNews1;

function FadeAnimation(start, end, baseRate)
{
    if (end > start)
        var diff = end - start;
    if (end < start)
        var diff = start - end;

    var value = diff / baseRate;
    if (value > 0 && value < 1)
        value = 0.5;

    if (end > start)
        return start + value;
    if (end < start)
        return start - value;
}

function HotNews(title, source, date, url)
{
    this.Title = title;
    this.Source = source;
    this.PublishDate = date;
    this.Url = url;
}

listHotNews = new Array();

function SplashNews(newsCollection, containerNews, containerProgressBar, delay)
{
    this.NewsCollection = newsCollection;
    this.TotalNews = newsCollection.length;
    this.ContainerNews = document.getElementById(containerNews);
    this.ContainerProgressBar = document.getElementById(containerProgressBar);
    this.Index = 0;
    this.Delay = delay;

    this.SetNews = function()
    {
        var newsUrl = this.NewsCollection[this.Index].Url;
        var url = 'News.aspx?EventID=' + newsUrl;
        
        if (newsUrl.indexOf("://") > -1)
            url = newsUrl;
        
        var news = '<a href="' + url + '" target="_blank" >' + this.NewsCollection[this.Index].Title + '</a>&nbsp;' + '<span class="date">' + this.NewsCollection[this.Index].PublishDate + '</span>';
        this.ContainerNews.innerHTML = news;

    }

    this.HideRecentNews = function()
    {
        var opacity = 10;
        var timer;
        timer = window.setInterval(function()
        {
            opacity = FadeAnimation(opacity, 0, 1.55);
            setOpacity(splashNews1.ContainerNews, opacity);
            if (opacity <= 0)
            {
                setOpacity(splashNews1.ContainerNews, 0);
                clearInterval(timer);
                splashNews1.PrepareNext();
            }
        }, 35);
    }

    this.PrepareNext = function()
    {
        this.Index++;
        this.Index = this.Index % this.TotalNews;

        this.SetNews();
        this.ShowNextNews();
    }

    this.Rejuvante = function()
    {
        this.ContainerNews.style.filter = "";
        this.ContainerNews.style.cssText = "";
        window.setTimeout("splashNews1.HideRecentNews();", this.Delay);
    }

    this.ShowNextNews = function()
    {
        var opacity = 0;
        var timer;
        timer = window.setInterval(function()
        {
            opacity = FadeAnimation(opacity, 10, 1.55);
            setOpacity(splashNews1.ContainerNews, opacity);
            if (opacity >= 10)
            {
                setOpacity(splashNews1.ContainerNews, 10);
                clearInterval(timer);
                splashNews1.Rejuvante();
            }
        }, 35);
    }

    this.Play = function()
    {
        window.setTimeout(function()
        {
            splashNews1.HideRecentNews();
        }, this.Delay);
    }

    this.Initialize = function()
    {
        this.SetNews();
        this.Play();
    }

    this.AddNews = function(news)
    {
        if (news.length > 0)
        {
            var i;
            for (i = 0; i < news.length; i++)
            {
                this.NewsCollection[this.TotalNews] = news[i];
                this.TotalNews = this.NewsCollection.length;
            }
        }
    }
}

function InitializeSplashNews()
{
    splashNews1 = new SplashNews(listHotNews, "hotnewsContent", "hotnewsProgress", 3500);
    splashNews1.Initialize();

    LoadNewsAsync();
}

function LoadNewsAsync()
{
    var FPBMan = ISGetObject("WebFlyPostBackManager1");

    if (FPBMan != null)
    {
        window.setTimeout(function()
        {
            LoadNewsFromBlog();
            document.getElementById("hotnewsProgress").style.visibility = "visible";
        }, 700);
    }
    else
        window.setTimeout(LoadNewsAsync, 500);
}

function LoadNewsFromBlog()
{
    var FPBMan = ISGetObject("WebFlyPostBackManager1");
    FPBMan.Asynchronous = FPBMan._Asynchronous = true;
    FPBMan.GetSplashNewsFromBlog();
}

function LoadNewsFromAnsoesilBlog()
{
    var FPBMan = ISGetObject("WebFlyPostBackManager1");
    FPBMan.Asynchronous = FPBMan._Asynchronous = true;
    FPBMan.GetSplashNewsFromAnsoesilBlog();
    document.getElementById("hotnewsProgress").style.visibility = "visible";
}

function OnResponseSuccess(controlID, methodName, returnValue)
{
    switch (methodName)
    {
        case "GetSplashNewsFromBlog":
            splashNews1.AddNews(returnValue);
            document.getElementById("hotnewsProgress").style.visibility = "visible";
            LoadNewsFromAnsoesilBlog();
            break;
        case "GetSplashNewsFromAnsoesilBlog":
            splashNews1.AddNews(returnValue);
            break;
    }
    document.getElementById("hotnewsProgress").style.visibility = "hidden";
}