$(function() {
    // Homepage slideshow
    if ($.browser.msie) {
        $('#slider ul').cycle({
            fx: 'none',
            speed: 500,
            timeout: 10000,
            next: '#slider .pagerNext',
            prev: '#slider .pagerPrev',
            slideExpr: 'li',
            pause: true,
            cleartypeNoBg: true,
            rev: true
        });
    } else {
        $('#slider ul').cycle({
            fx: 'fade',
            timeout: 10000,
            speed: 500,
            next: '#slider .pagerNext',
            prev: '#slider .pagerPrev',
            slideExpr: 'li',
            pause: true,
            cleartypeNoBg: true,
            rev: true
        });
    };
    
    // Homepage Twitter feed
    var username = 'scootersgogreen';
	var count = 2;
	
    $.getJSON('http://twitter.com/status/user_timeline/'+ username +'.json?count='+ count +'&callback=?', function(data) {
        $('.tweets li:eq(0)').replaceWith('');
        
        for (i=0; i<1; i++) {
            var text = data[i].text;
            var timestamp = data[i].created_at;
            $('.tweets .tweetFooter').before('<li><p>' + replaceURLWithHTMLLinks(text) + '</p><span class="tweetTime">' + relativeTime(timestamp) + '</span></li>');
        }
    });
});

function relativeTime(timestamp)
{
	var now = new Date();
	var dparts = timestamp.split(' ');
	var tparts = dparts[3].split(':');
	var then = new Date(dparts[1] +' '+ ' '+ dparts[2] +', '+ dparts[5] +' '+ tparts[0] +':'+ tparts[1] + ':'+ tparts[2]);
	var diff = now.getTime() - then.getTime();    
	var timeDiff = getTimeDiffDescription(diff, 'day', 86400000);
	
	if (false === timeDiff) {
		timeDiff = getTimeDiffDescription(diff, 'hour', 3600000);
		if (false === timeDiff) {
			timeDiff = getTimeDiffDescription(diff, 'minute', 60000);
			if (false === timeDiff) {
				timeDiff = getTimeDiffDescription(diff, 'second', 60);
				if (false === timeDiff) {
					timeDiff = 'just now';
				}
			}
		}
	}
 
	return timeDiff; 
}

function replaceURLWithHTMLLinks(text) {
    var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
    return text.replace(exp,"<a href='$1' target='_blank'>$1</a>");
}

function getTimeDiffDescription(diff, unit, timeDivisor)
{ 
	var unitAmount = parseInt(diff / timeDivisor);
	if (unitAmount > 0) {
		return unitAmount + ' ' + unit + (unitAmount == 1 ? '': 's') + ' ago';
	} else if (unitAmount < 0) {
		return 'in ' + Math.abs(unitAmount) + ' ' + unit + (unitAmount == 1 ? '' : 's');
	} else {
		return false;
	}
}
