﻿// TWEET SWITCHER
// ------------------
// Author: Nik Makris
// Date: 19 May 2009
// ------------------


var m_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");

function createOutput(xmlItem) {
    $item = xmlItem;
    var $title = $item.find('title').text();
    var $link = $item.find('link').text();
    var $date = $item.find('pubDate').text();
    var $pubDate = new Date($date);
    $title = $title.replace(/nikmakris:/ig, "");
    $title = $title.replace(/(\bhttp:\/\/[^ ]+\b)/ig, "<a href='$&'>$&</a>");
    $title = $title.replace(/([@]+[A-Za-z0-9-_]+)/ig, "<a href='http://www.twitter.com/$&'>$&</a>");
    $title = $title.replace('http://www.twitter.com/@', 'http://www.twitter.com/');
    var html = '<li><span>' + $title + '</span>';
    html += '  <a style=\"font-size: 85%;\" href=\"' + $link + '\">';
    html += $pubDate.getDate() + ' ' + m_names[$pubDate.getMonth()] + ' ' + $pubDate.getFullYear() + ' ' + $pubDate.toLocaleTimeString();
    html += '</a></li>';
    return html;
} 

$(document).ready(function() {
    $('#more').attr('href', '#');
    $('#more').toggle(function() {
        $.get('feeds/twitter.xml', function(data) {
            $('#twitter_div .twitter_update_list').empty();
            $('#more').text('back to latest tweets');
            var $itemCount = 0;
            $(data).find('item').each(function() {
                if ($itemCount > 9) {
                    var html = createOutput($(this));
                    $('#twitter_div .twitter_update_list').fadeIn('slow').append($(html));
                }
                $itemCount++;
            });
        });
        return false;
    }, function() {
        $.get('feeds/twitter.xml', function(data) {
            $('#twitter_div .twitter_update_list').empty();
            $('#more').text('older tweets');
            var $itemCount = 0;
            $(data).find('item').each(function() {
                if ($itemCount <= 9) {
                    var html = createOutput($(this));
                    $('#twitter_div .twitter_update_list').fadeIn('slow').append($(html));
                }
                $itemCount++;
            });
        });
        return false;
    });
});


