/*
 * TwitStream - A jQuery plugin for the Twitter Search API
 * Version 1.2
 * http://kjc-designs.com/TwitStream
 * Copyright (c) 2009 Noah Cooper
 * Licensed under the GNU General Public License <http://www.gnu.org/licenses/>
*/
String.prototype.linkify=function(){
	return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&;\?\/.=]+/g,function(m){
		return m.link(m);
	});
};
String.prototype.linkuser=function(){
	return this.replace(/[@]+[A-Za-z0-9-_]+/g,function(u){
		return u.link("http://twitter.com/"+u.replace("@",""));
	});
};
String.prototype.linktag=function(){
	return this.replace(/[]+[A-Za-z0-9-_]+/,function(t){
		return t;
	});
};

//Twitter Object
var twiiterObj = new Object();

twiiterObj.searchParam = "from:Levis_Japan #LLS_YMDO";

twiiterObj.elementsNum = 0;
twiiterObj.elementsArray = [];

twiiterObj.showTweetLinks = 'none';



twiiterObj.fetchTweets = function(elem, num){
	var elem = jQuery(elem);
	var elementsNum = num;
	
	var keyword = escape(twiiterObj.searchParam);
	var num = elem.attr('class').split(' ').slice(-1);
	var url = "http://search.twitter.com/search.json?q="+keyword+"&rpp="+num+"&callback=?";
	
	jQuery.getJSON(url,function(json){
		var json_results = jQuery(json.results);
		var tweet = '';
		jQuery(json.results).each(function(i){
			var tTime = new Date(Date.parse(this.created_at));
			
			var d_hour = tTime.getHours();
			var d_min = tTime.getMinutes();
			d_min = twiiterObj.zeroPadding(String(d_min), 2);
			var d_hour_ampm = d_hour < 12 ? "AM" : "PM";
			d_hour = d_hour < 13 ? d_hour : d_hour - 12;
			var month_array = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
			var d_month = month_array[tTime.getMonth()];
			var d_day = tTime.getDate();
			d_day = d_day + twiiterObj.getSuffix(d_day);
			var d_year = tTime.getFullYear();
			
			var date_str = d_hour + ":" + d_min + " " + d_hour_ampm + " " + d_month + " " + d_day;
			
			var tweetBy = '<a class="tweet_user" target="_blank" href="http://twitter.com/'+this.from_user+'">@'+this.from_user+'</a>';
			
			tweet += '\n        <li>\n';
			tweet += '          <p class="tweet">' + this.text.linkify().linkuser().linktag().replace(/<a/g,'<a target="_blank"') + '</p>\n'
			tweet += '          <p class="date">' + date_str + '</p>\n';
			tweet += '        </li>';


		});
		
		var elem = twiiterObj.elementsArray[twiiterObj.elementsNum];
		jQuery(elem).html(tweet);
		
		
	});
	return(false);
}




twiiterObj.zeroPadding = function(str, length) {
	if (str.length >= length) {
		return str;
	}
	return new Array(length - str.length + 1).join("0") + str;
}


twiiterObj.getSuffix = function(day_num) {
	var return_str;
	switch(day_num % 10){
		case 0:
		case 4:
		case 5:
		case 6:
		case 7:
		case 8:
		case 9:
			return_str = "th";
			break;
		case 1:
			if(day_num % 100 == 11){
				return_str = "th";
			} else {
				return_str = "st";
			}
			break;
		case 2:
			if(day_num % 100 == 12){
				return_str = "th";
			} else {
				return_str = "nd";
			}
			break;
		case 3:
			if(day_num % 100 == 13){
				return_str = "th";
			} else {
				return_str = "rd";
			}
		break;
	}
	return return_str;
}

jQuery(function(){
	jQuery('.twitterArea').each(function(i){
		twiiterObj.fetchTweets(this, i);
		twiiterObj.elementsArray.push(this);
	});
	
});
