
/* 
	Libraries: we put 'em all here it reduce the number of requests. Cause 1 big file is 
	faster than 10 small ones */
function sortFeed(doSort){
	if(!doSort){return false;}
	
	var mylist = $('#social_feed_items');
	var listitems = mylist.children('li').get();
	listitems.sort(function(a, b) {
	   var compA = $(b).attr('id').toUpperCase();
	   var compB = $(a).attr('id').toUpperCase();
	   return (compA < compB) ? -1 : (compA > compB) ? 1 : 0;
	})
	$.each(listitems, function(idx, itm) {
		mylist.append(itm);
		setTimeout("$('#" + $(itm).attr('id') + "').animate({'opacity': 1}, 150)", 100 * idx)						
	});
	// end sort
	
	$('#social_feed_items li:first-child').css('margin-top', '10px');
	$('#home_live_news_3 .scroll-pane').jScrollPane({showArrows: true});

}

function buildURL(id){
	return "http:\/\/api.twitter.com\/1\/statuses\/user_timeline\/"+id+".json?include_rts=true&callback=?";
}

var currentSocialFeedType = null;
var feedData = {"twitter":{"commdev_feed_url":[buildURL(254093532), buildURL(153729344)]}};

function changeSocialFeed(feedData, type){
	
	
	var months = new Array();
		months['01'] = 'Jan';
		months['02'] = 'Feb';
		months['03'] = 'Mar';
		months['04'] = 'Apr';
		months['05'] = 'May';
		months['06'] = 'Jun';
		months['07'] = 'Jul';
		months['08'] = 'Aug';
		months['09'] = 'Sep';
		months['10'] = 'Oct';
		months['11'] = 'Nov';
		months['12'] = 'Dec';
		
		$('#social_feed_items').html('');
		
		if(type == "twitter_commdev" || type == "twitter_fans"){
			
			var feedURL = (type == "twitter_commdev") ? feedData.commdev_feed_url : feedData.fans_feed_url;
			
			var itemCount = 0;
			var loadedFeeds = 0;
			var totalFeeds = feedURL.length;
			
			for(var counter=0; counter<totalFeeds; counter++){
				
				$.getJSON(feedURL[counter], function(data){
					
					$.each(data, function(i, item){
						// IE FIX
						var myDateArray = item.created_at.split(" ");						
						var timeArray = myDateArray[3].split(":");
						switch(myDateArray[1].toLowerCase()){
							case 'jan':myDateArray[1]=00;break;
							case 'feb':myDateArray[1]=01;break;
							case 'mar':myDateArray[1]=02;break;
							case 'apr':myDateArray[1]=03;break;
							case 'may':myDateArray[1]=04;break;
							case 'jun':myDateArray[1]=05;break;
							case 'jul':myDateArray[1]=06;break;
							case 'aug':myDateArray[1]=07;break;
							case 'sep':myDateArray[1]=08;break;
							case 'oct':myDateArray[1]=09;break;
							case 'nov':myDateArray[1]=10;break;
							case 'dec':myDateArray[1]=11;break;
							default:myDateArray[1]=00;break;
						}
						
						//(year, month, day, hours, minutes, seconds, milliseconds);						
						var date = new Date(myDateArray[5],myDateArray[1],myDateArray[2], timeArray[0], timeArray[1], timeArray[2]);					
						var pHour = date.getHours();
						var pMinute = date.getMinutes();
						var pMonth = (date.getMonth() + 1).toString();
						var pDay = date.getDate();
						
						var pAmPm = "AM";
						
						var timestamp = date.getTime();
						
						if(pMonth.length < 2){pMonth = "0" + pMonth;}
						pMonth = months[pMonth];
						
						if(pHour >= 12){
							if(pHour > 12){pHour -= 12;}
							var pAmPm = "PM";
						}
						
						if(type == "twitter_fans" && item.retweeted_status != null && item.retweeted_status != "undefined"){
							item = item.retweeted_status;
						}
						
						var li = $(
							"<li id=\"social_feed_item_" + timestamp + "\""  + (((itemCount+2)%2==0) ? " class=\"even\"" : "") + ">" + "<div class=\"home_twitter_item\">"+
	                                	"<div class=\"home_twitter_item_body clearfix\">"+
	                                    	"<img src=\"" + item.user.profile_image_url + "\" alt=\"" + item.user.screen_name + "\" />"+
	                                        "<div class=\"home_twitter_item_info\">"+
	                                            "<p class=\"home_twitter_snippet\">"+"<a href='http://www.twitter.com/" + item.user.screen_name + "' target='_blank'>" + item.user.screen_name + "</a> " + parseTwitterStatus(item.text) + 
											"</p>"+
	                                            "<p class=\"home_twitter_meta\">" +
												pMonth + " " + pDay + ", " + pHour + ":" + pMinute + " " + pAmPm + " via " + item.source +
											"</p></div></div>"+
	                                    "<div class=\"home_twitter_item_footer\"></div></div>"+
								
							"</li>"
						);						
						$('#social_feed_items').append(li.css({'opacity': 0}));						
						itemCount ++;						
					});
					// completed loading each JSON
					loadedFeeds++;
					
					sortFeed((totalFeeds==loadedFeeds));
					
				}); // end - getJSON
				
			}// end for loop
		}
		currentSocialFeedType = type;
}

function parseTwitterStatus(t){
	// links
	t = t.replace(/[a-z]+:\/\/[a-z0-9-_]+\.[a-z0-9-_:~%&\?\/.=]+[^:\.,\)\s*$]/ig, function(m){return '<a target="_blank" href="' + m + '">' + ((m.length > 25) ? m.substr(0, 24) + '...' : m) + '</a>';});
	// @
	t = t.replace(/(^|[^\w]+)\@([a-zA-Z0-9_]{1,15})/g, function(m, m1, m2){return m1 + '@<a target="_blank" href="http://twitter.com/' + m2 + '">' + m2 + '</a>';});
	// #
	t = t.replace(/(^|[^\w'"]+)\#([a-zA-Z0-9_]+)/g, function(m, m1, m2){return m1 + '#<a target="_blank" href="http://search.twitter.com/search?q=%23' + m2 + '">' + m2 + '</a>';});
	
	return t;
}


/** jquery cookie **/

jQuery.cookie=function(_1,_2,_3){if(typeof _2!="undefined"){_3=_3||{};if(_2===null){_2="";_3.expires=-1;}var _4="";if(_3.expires&&(typeof _3.expires=="number"||_3.expires.toUTCString)){var _5;if(typeof _3.expires=="number"){_5=new Date();_5.setTime(_5.getTime()+(_3.expires*24*60*60*1000));}else{_5=_3.expires;}_4="; expires="+_5.toUTCString();}var _6=_3.path?"; path="+(_3.path):"";var _7=_3.domain?"; domain="+(_3.domain):"";var _8=_3.secure?"; secure":"";document.cookie=[_1,"=",encodeURIComponent(_2),_4,_6,_7,_8].join("");}else{var _9=null;if(document.cookie&&document.cookie!=""){var _a=document.cookie.split(";");for(var i=0;i<_a.length;i++){var _b=jQuery.trim(_a[i]);if(_b.substring(0,_1.length+1)==(_1+"=")){_9=decodeURIComponent(_b.substring(_1.length+1));break;}}}return _9;}};
