$(document).ready(function() {
	// Get most recent Twitter
	$.getJSON('http://twitter.com/status/user_timeline/lukecanvin.json?count=1&callback=?', function(data){
		$.each(data, function(index, item){
			$('#twitter').prepend('<p>' + item.text.linkify() + '</p>');
			$('#speech-bubble').append('<p><a href="http://twitter.com/lukecanvin/">Twittered ' + relative_time(item.created_at) + '</a></p>');
		});
	});
	
	// Get 3 most recent Flickr photos
	$.getJSON('http://api.flickr.com/services/feeds/photos_public.gne?ids=62989896@N00&lang=en-us&format=json&jsoncallback=?', function(data){
		$.each(data.items, function(i, item){
			if (i == 0)
				$('<a/>')
					.addClass('flickr-large-1')
					.attr('href', item.link)
					.append( $('<div/>').addClass('flickr-caption').html('<p>' + item.title + '</p>') )
					.append( $('<img src="' + item.media.m.replace(/_m.jpg/, '.jpg') + '"/>') )
					.appendTo('#flickr-large');
			else if (i == 1)
				$('<a/>')
					.addClass('flickr-small-1')
					.attr('href', item.link)
					.append( $('<div/>').addClass('flickr-caption').html('<p>' + item.title + '</p>') )
					.append( $('<img src="' + item.media.m + '"/>') )
					.appendTo('#flickr-small-1');
			else if (i == 2)
				$('<a/>')
					.addClass('flickr-small-2')
					.attr('href', item.link)
					.append( $('<div/>').addClass('flickr-caption').html('<p>' + item.title + '</p>') )
					.append( $('<img src="' + item.media.m + '"/>') )
					.appendTo('#flickr-small-2');
			else return false;
		});
	});
	
	$('.flickr-pic').hover(
		function() {
			$('.flickr-caption', this).slideDown('fast');
		},
		function() {
			$('.flickr-caption', this).slideUp('fast');
		}
	);
	
	// Get 5 most recent scrobbles
	$.getJSON('http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=lukecanvin&api_key=1d0eeff1ea68e91c21a8c23954df0d00&limit=5&format=json&callback=?', function(data){
		$.each(data.recenttracks.track, function(index, item){
			var image = item.image[1]["#text"].replace(/64s/, '126');
			if (image == "")
				image = "images/no-album-art.png"
			if (index < 4)
				$('<img/>')
					.attr('src', image).attr('height',80).attr('width',80)
					.appendTo('#tracks')
					.wrap($('<a></a>').attr('href', item.url).addClass('lastfm'))
					.simpletip(item.artist["#text"] + '<br/><em>' + item.album["#text"] + '</em><br/>' + item.name, {
						hook: { target: 'topMiddle', tooltip: 'bottomMiddle' },
						stem: { corner: 'bottomMiddle', color: '#0B8C8F' },
						parentClass: 'tooltip-lastfm'
					});
			else if (index == 4)
				$('<img/>')
					.attr('src', item.image[1]["#text"].replace(/64s/, '126')).attr('height',80).attr('width',80)
					.appendTo('#tracks')
					.wrap($('<a></a>').attr('href', item.url).addClass('lastfm lastfm-last'))
					.simpletip(item.artist["#text"] + '<br/><em>' + item.album["#text"] + '</em><br/>' + item.name, {
						hook: { target: 'topMiddle', tooltip: 'bottomMiddle' },
						stem: { corner: 'bottomMiddle', color: '#0B8C8F' },
						parentClass: 'tooltip-lastfm'
					});
			else return false;
		});
	});

	// Format links for Twitter
	String.prototype.linkify = function() {
		return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) {
			return m.link(m);
		});
	};

	// Create relative time mark, from http://twitter.com/javascripts/blogger.js
	function relative_time(C){var B=C.split(" ");C=B[1]+" "+B[2]+", "+B[5]+" "+B[3];var A=Date.parse(C);var D=(arguments.length>1)?arguments[1]:new Date();var E=parseInt((D.getTime()-A)/1000);E=E+(D.getTimezoneOffset()*60);if(E<60){return"less than a minute ago"}else{if(E<120){return"about a minute ago"}else{if(E<(60*60)){return(parseInt(E/60)).toString()+" minutes ago"}else{if(E<(120*60)){return"about an hour ago"}else{if(E<(24*60*60)){return"about "+(parseInt(E/3600)).toString()+" hours ago"}else{if(E<(48*60*60)){return"1 day ago"}else{return(parseInt(E/86400)).toString()+" days ago"}}}}}}};

	// Get most recent 5 Flixster ratings
	$('#reviews').empty();
	$.ajax({
		type: 'GET',
		url: 'getUrl.py',
		dataType: 'xml',
		cache: 'false',
		success: function(xml) {
			$('rating:lt(5)',xml).each(function() {
				var $html = $('<li class="hreview"><span class="film fn">' + $('movie',this).attr('title') + '</span><abbr title="' + $(this).attr('score') + '" class="rating"></abbr></li>')
				var count = 0;
				while (count < $(this).attr('score')) {
					$('abbr',$html).append('<img src="images/star.png" alt="star" width="16" height="16"/>');
					count += 1;
				}
				// Add a tooltip with the review's comment text
				$html.simpletip($('comment',this).text(), {
					hook: { target: 'topLeft', tooltip: 'bottomLeft' },
					stem: { corner: 'bottomLeft', color: '#0B8C8F' },
					offset: [20, 0],
					parentClass: 'tooltip-review'
				});
				$('#reviews').append($html);  
			});
		}
	});
});