var ITL = window.ITL || {};

ITL.article = window.ITL.article || {};

ITL.article.index = {};

ITL.article.index.ajaxOptions = {};

ITL.article.index.ajaxRequestData = {};

ITL.article.index.NewstickerElements = {};

ITL.article.index.show = function ( obj ) {
    YAHOO.util.Dom.setStyle(obj , 'display', '');
}

ITL.article.index.hide = function ( obj ) {
    YAHOO.util.Dom.setStyle(obj , 'display', 'none');
}


ITL.article.index.ajaxOptions.url           = 'http://' + window.location.hostname + '/ajax/getNewsArticle';
ITL.article.index.ajaxOptions.requestMethod = 'POST';
ITL.article.index.ajaxOptions.postData      = '';

ITL.article.index.updateNewstickerData = function () { 
    
    ITL.article.index.NewstickerElements.title.data             = ITL.article.index.ajaxRequestData.title;
    ITL.article.index.NewstickerElements.publishAt.data         = ITL.article.index.ajaxRequestData.publishAt;
    ITL.article.index.NewstickerElements.shortDescription.set('innerHTML', ITL.article.index.ajaxRequestData.shortDescription);
    
    ITL.article.index.NewstickerElements.newstickerMoreLinkText.set('href', 'http://' + window.location.hostname + '/beitrag/' + ITL.article.index.ajaxRequestData.slug);
    ITL.article.index.NewstickerElements.newstickerMoreLinkImage.set('href', 'http://' + window.location.hostname + '/beitrag/' + ITL.article.index.ajaxRequestData.slug);
    
    ITL.article.index.show('newstickerLinks');
    
    ITL.article.index.fadeNewstickerIn(); 
    
}

ITL.article.index.getNewsArticle = function () {

    var request = YAHOO.util.Connect.asyncRequest(
        ITL.article.index.ajaxOptions.requestMethod,
        ITL.article.index.ajaxOptions.url,
        {
          success:ITL.article.index.fadeNewstickerOut
        },
        ITL.article.index.ajaxOptions.postData
    );
    
}

ITL.article.index.getNewsArticleById = function (newsArticleId) {

    ITL.article.index.ajaxOptions.postData = 'articleId=' + newsArticleId;

    var request = YAHOO.util.Connect.asyncRequest(
        ITL.article.index.ajaxOptions.requestMethod,
        ITL.article.index.ajaxOptions.url,
        {
          success:ITL.article.index.fadeNewstickerOut
        },
        ITL.article.index.ajaxOptions.postData
    );
    
}

ITL.article.index.fadeNewstickerOut = function (o) {

    ITL.article.index.ajaxRequestData = JSON.parse(o.responseText);

    ITL.article.index.fadeNewstickerOutEffect.animate();
}

ITL.article.index.fadeNewstickerIn = function () {
    ITL.article.index.fadeNewstickerInEffect.animate();
}

YAHOO.util.Event.onDOMReady(function () {

    // Init
    ITL.article.index.NewstickerElements.title                      = new YAHOO.util.Element('newstickerTitle').get('firstChild');
    ITL.article.index.NewstickerElements.publishAt                  = new YAHOO.util.Element('newstickerPublishAt').get('firstChild');
    ITL.article.index.NewstickerElements.shortDescription           = new YAHOO.util.Element('newstickerShortDescription');
    ITL.article.index.NewstickerElements.newstickerMoreLinkText     = new YAHOO.util.Element('newstickerMoreLinkText');
    ITL.article.index.NewstickerElements.newstickerMoreLinkImage    = new YAHOO.util.Element('newstickerMoreLinkImage');
    
    YAHOO.util.Event.addListener('newstickerNextArticle', "click", function () {
        
        window.clearInterval(ITL.article.index.newstickerUpdater);
        
        ITL.article.index.getNewsArticleById(ITL.article.index.ajaxRequestData.nextArticle);
    });
    YAHOO.util.Event.addListener('newstickerPreviousArticle', "click", function () {
        
        window.clearInterval(ITL.article.index.newstickerUpdater);
        
        ITL.article.index.getNewsArticleById(ITL.article.index.ajaxRequestData.previouesArticle)
    });
    
    ITL.article.index.getNewsArticle();
    
    ITL.article.index.fadeNewstickerOutEffect = new YAHOO.util.Anim('newstickerBody');
    ITL.article.index.fadeNewstickerOutEffect.attributes.opacity= { to: 0 };
    ITL.article.index.fadeNewstickerOutEffect.attributes.duration = 1;
    ITL.article.index.fadeNewstickerOutEffect.onComplete.subscribe(ITL.article.index.updateNewstickerData);
    
    
    ITL.article.index.fadeNewstickerInEffect = new YAHOO.util.Anim('newstickerBody');
    ITL.article.index.fadeNewstickerInEffect.attributes.opacity= { to: 1 };
    ITL.article.index.fadeNewstickerInEffect.attributes.duration = 1;
    
    ITL.article.index.newstickerUpdater = window.setInterval("ITL.article.index.getNewsArticleById(ITL.article.index.ajaxRequestData.nextArticle)", 10000);
    
    
    
});
