(function($){
	$.fn.facebook_feed = function(options) {

		var defaults = {
			nb: 5,
			feed: null,
			access_token: null
		};
				
		var options = $.extend(defaults, options);
		
		this.each(function(){
		
			var obj = $(this);
			
			obj.addClass("facebook_feed");
			obj.append("<div class='loader'>Chargement du mur ...</div>");
			
			if(options.feed != null)
				$.ajax({
					url: options.feed+"?limit="+options.nb+"&access_token="+options.access_token,
					dataType: "jsonp",
					success: function(feed)
					{
						var html = "<ul>";
						
						$(feed.data).each(function(i, elt){
							if(elt.from.name=="Bruno Copin" || elt.type == "status") {
								className = (i%2 == 0)?"odd":"even";
								borderClass = (i==0)?" first":(i==(options.nb-1))?" last":"";
								
								date = elt.created_time.substr(0,10).split("-");
								date = date[2]+"/"+date[1]+"/"+date[0];
								
								var exp = /((\b(https?|ftp|file):\/\/)[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i;
								var exp2 = /(\b(www.)[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i;
								if(elt.message) {
									msg = elt.message.replace(exp,"<a href='$1' target='_new'>$1</a>");
									msg = msg.replace(exp2,"<a href='http://$1' target='_new'>$1</a>"); 
								}
								else
									msg = "";
								
								html += "<li class='"+className+borderClass+"'>";
								if(elt.picture){
									html += "<p class='date'><small>"+date+"</small></p>"
										 + "<div class='img'><a href='"+elt.link+"' target='_new'><img src='"+elt.picture+"' alt='"+elt.message+"' /></a></div>"
										 + "<div class='txt'>";
									if (elt.name != "Wall Photos") 		{html += "<p>"+elt.name+"</p>";}
									html += "</div>";
									html += "<div class='clear'></div>";
									if (elt.description) 				{html += "<p class='comment'>"+elt.description+"</p>";}
								}
								else {
									html += "<p class='date'><small>"+date+"</small></p></div>";
									html += "<p class='blue comment'>"+elt.from.name+" says:</p>";
								}
								if (msg != "") 						{html += "<p class='comment'>"+msg+"</p>";}
								html += "<div class='clear'></div>";
								if(elt.likes) {
									html += "<div class='actions'>"
										 + "<p class='blue'><img class='like' src='css/custom-theme/images/like.png' alt='facebook likes' /> "
										 + elt.likes.count + " likes</p>";
									
									if(elt.comments) {
										html += "<h3>Comments</h3>";
										for(var j in elt.comments.data){
											dateCom = elt.comments.data[j].created_time.substr(0,10).split("-");
											dateCom = dateCom[2]+"/"+dateCom[1]+"/"+dateCom[0];
											html += "<p class='blue comment'>"+elt.comments.data[j].from.name+" <small>	-"+dateCom+"-</small></p>";
											html += "<p class='comment'>"+elt.comments.data[j].message+"</p>";
										}
									}
									
									html += "</div>";
								}
								
								html += "</li>";
							}
						})
						
						html += "<p><a href='http://fr-fr.facebook.com/people/Bruno-Copin/100000131001513' target='_new'>"
							 + "more on Facebook...</a></p>"
							 + "</ul>";
						
						obj.html(html);
						obj.find(".loader").remove();
					}
				});

			else
				obj.html("flux introuvable.");
			
		});
		
		return this;
	};
})(jQuery);
