function linkify(str){
  str = str.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/g, function(m) 
  {
  	m = m.link(m);
  	m = m.replace('href="','target="_blank" href="');
  	return m;
  });
  str = str.replace(/[@]+[A-Za-z0-9-_]+/g, function(us) 
  {
    var username = us.replace("@","");
    
    us = us.link("http://twitter.com/"+username);
  	us = us.replace('href="','target="_blank" href="');
    return us;
  });
  str = str.replace(/[#]+[A-Za-z0-9-_]+/g, function(t) 
  {
    var tag = t.replace("#","%23");
    t = t.link("http://twitter.com/search?q="+tag);
  	t = t.replace('href="','target="_blank" href="');
  	return t;
  });
  return str;
};

jQuery(function(){
	// Hook up Tweet Navigation
	jQuery('#tweetnav li a').click(function(){
		jQuery('#tweetnav li, #tweetcontainer div').removeClass('current');
		jQuery(this).parent().addClass('current');
		jQuery('#'+this.className).addClass('current');
		return false;
	});

	// Populate Tweets
	var ul = jQuery('#atduketweets');
	var li = null;
	jQuery(tweets).each(function(){
		createRow(this.user.profile_image_url, this.user.screen_name, this.text, this.created_at, this.source, ul);
	});
	ul.append('<li><p>Want more? <a href="http://twitter.com/HVChurch">Check it out at Twitter!</a></p></li>');
	ul.children().eq(0).remove();


	var setupPaging = function(container, listContainer, setListHeight, maxListHeight){
		// Figure out where page breaks should be:
		var h = 0;
		var pages = [0];
		jQuery(listContainer+' li').each(function(index, item){
			var ch = jQuery(item).height();
			if(h+ch > maxListHeight){
				pages.push(index);
				h = 0;
			}
			h+=ch;
		});
		if(setListHeight){
			jQuery(listContainer+'').height(736);
		}
		// Setup HVChurch Twitterers Pagination
		var currentPage = 0;
		var changePage = function(pageNumber){
			if(pageNumber > (pages.length-1)){
				return;
			}
			jQuery(listContainer+' li:lt('+(pages[pageNumber]+1)+')').hide();
			jQuery(listContainer+' li:gt('+pages[pageNumber]+'), '+listContainer+' li:eq('+pages[pageNumber]+')').show();
			if(pageNumber < (pages.length-1)){
				jQuery(listContainer+' li:gt('+pages[pageNumber+1]+'), '+listContainer+' li:eq('+pages[pageNumber+1]+')').hide();
			}
			if(pageNumber == 0){
				jQuery(container+' a.previous').hide();
			}else{
				jQuery(container+' a.previous').show();
			}
			if(pageNumber == (pages.length-1)){
				jQuery(container+' a.next').hide();
			}else{
				jQuery(container+' a.next').show();
			}
			jQuery(container+' .info').html('Page '+(pageNumber+1)+' of '+pages.length);
			currentPage = pageNumber;
		}
		var next = jQuery('<a href="#" class="next arrow">Next &gt;</a>').insertAfter(listContainer).click(function(){
			changePage(currentPage+1);
			return false;
		});
		jQuery('<a href="#" class="previous arrow">&lt; Previous</a>').insertAfter(listContainer).click(function(){
			changePage(currentPage-1);
			return false;
		}).after(jQuery('<span class="info arrow">Page 1 of '+pages.length+'</span'));
		changePage(0);

	}
	setupPaging('#officialhvchurch', '#officialhvcaccounts', 736, 650);
	jQuery('#officialduke').removeClass('current');
	setupPaging('#atduke', '#atduketweets', 736, 675);
});
