﻿window['dvl'] = window['dvl'] || {};
window['dvl']['twitter'] = window['dvl']['twitter'] || {};

// twitter module
(function (twitter, $, undefined) {
    var target;
    var postElements;
    var maxPosts;
    var currentPost = 0;
    var intervalID = -1;

    twitter.initialise = function(appendTarget, numOfPosts){
        maxPosts = numOfPosts;
        var url = "http://twitter.com/statuses/user_timeline.json";
        var arguments = "?screen_name=deepvisuals&count=" + numOfPosts + "&callback=?";
        $.getJSON(url + arguments, tweetCallback);

        target = appendTarget;
    };

    var tweetCallback = function(items){
        var disp = 'none';
        var markup = '';

        items.reverse();

        $.each(items, function(i, item){
            if(i === 0){
                disp = 'list-item';
            }
            else{
                disp = 'none';
            }
            markup = '<a href="http://www.twitter.com/deepvisuals/status/' + item.id_str + '">' + item.text + '</a>';
            $('<li>').css('display', disp).html(markup).appendTo(target);
        });

        postElements = $(target).children();
        currentPost = 0;
        intervalID = setInterval(showNextTweet, 5000);
    };

    var showNextTweet = function(){
        // get the jquery objects for the individual tweets
        var currentTweet = postElements.eq(currentPost);
        if(++currentPost >= maxPosts){
            currentPost = 0;
        }
        var nextTweet = postElements.eq(currentPost);

        // hide the current tweet, then show the next tweet
        currentTweet.fadeOut(1000, function(){
            nextTweet.fadeIn(1000);
        });
    };

} (window['dvl']['twitter'], jQuery));

