jQuery(document).ready(function() {
	jQuery('#slider').bxSlider({
			auto: true,
			pause: 5000
		});

	latestTweets('kilcoltd', 3);

	// function applies to all input items with class 'replace'
	// the default value for each input item with a class of
	// 'replace' will be removed onfocus and then reapplied
	// onblur if no input has been made
	jQuery(':input.replace').each(function() {
		jQuery(this)
				.data('label', jQuery(this).val())
				.focus(function() {
						if(jQuery(this).val() == jQuery(this).data('label')) {
							jQuery(this).removeClass('replace').val('');
						}
				})
				.blur(function() {
						if(!jQuery(this).val()) {
							jQuery(this).addClass('replace').val(jQuery(this).data('label'));
						}
				});
	});
});

function latestTweets (username, results) {
	if(!username || username == '') return this; // username required
	
	var url = "http://twitter.com/statuses/user_timeline.json?callback=?";
	var results_to_fetch = 15;
	var results_to_display = results;
	
	jQuery.getJSON(
		url,
		{ count: results_to_fetch, screen_name: username },
		function(data) {
			
			if(data && data.length >= 1) {
				var results = 0;
				
				for(i=0;i<=data.length;i++) {
					var item = null;
					
					// if @ reply then ignore
					if(/^@/i.test(data[i].text)) {

					}
					else {
						item = data[i];
					}
					
					if(item) {
						var $tweet = jQuery("<p></p>").text(item.text);
						$tweet.html(
							$tweet.html()
								.replace(/((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi,'<a href="$1">$1</a>')
								.replace(/(^|\s)#(\w+)/g,'$1<a href="http://search.twitter.com/search?q=%23$2">#$2</a>')
								.replace(/(^|\s)@(\w+)/g,'$1<a href="http://twitter.com/$2">@$2</a>')
								);
						
						var element = jQuery("<li></li>").html($tweet).prepend("<a href='" + username + "' class='avatar'><img src='" + item.user.profile_image_url + "' /></a>");
						
						// remove loading image
						jQuery('ul#twitter-feed li.loading').hide()
						jQuery(element).insertBefore("ul#twitter-feed li.last");

						results++;
						
						if(results >= results_to_display) break;
					}
				}
				
				// apply the 'last-tweet' class the the next to last element
				var last_tweet = jQuery('ul#twitter-feed').children().length - 1;
				jQuery('ul#twitter-feed li:nth-child(' + last_tweet + ')').addClass('final-tweet');
			};
		});
		return this;
}
