/************************************************************************************************************************************
 *	fb.wall				Facebook Wall jQuery Plguin
 *
 *	@author:			Daniel Benkenstein / neosmart GmbH
 *	@version:			1.2.6
 *	@Last Update:		01.04.2011
 *	@licence:			MIT (http://www.opensource.org/licenses/mit-license.php)
 *						GPL	(http://www.gnu.org/licenses/gpl.html)
 *	@documentation:		http://www.neosmart.de/social-media/facebook-wall
 *	@feedback:			http://www.neosmart.de/blog/jquery-plugin-facebook-wall
 *	
 ************************************************************************************************************************************/
 
(function(jQuery) {
	
	jQuery.fn.fbWall = function(options) {
		
		var opts = jQuery.extend({}, jQuery.fn.fbWall.defaults, options);
		var meta = this;
		
		var tr = { 
			"english" : {
				"_code":"en",
				"log_in":"Log in with facebook CONNECT, and follow the news feed of your wall.",
				
				"errornodata":"has not shared any information.",
				"err_nofriends":"None of my friends use the Agatha app for now.",
				"err_nomylikes":"I didn't recommend any product for the moment.",
				"err_nofriendslikes":"My friends didn't recommend any product for the moment.",
				
				"date_at":"at",
				"date_le":"",
				"date_second":"second",
				"date_seconds":"seconds",
				"date_minute":"minute",
				"date_minutes":"minutes",
				"date_day":"day",
				"date_days":"days",
				"date_month":"month",
				"date_months":"months",
				"date_year":"year",
				"date_years":"years",
				
				"people":"people",
				"likes":"likes",
				"like_this":"like this",
				"likes_this":"likes this",
					
				"friend_uses":"of my friends uses the Agatha app.",
				"friends_use":"of my friends use the Agatha app."	
			},
			"francais" : {
				"_code":"fr",
				"log_in":"Identifiez vous via Facebook CONNECT et suivez les actualités de votre profil.",
				
				"errornodata":"n'a pas partagé d'information.",
				"err_nofriends":"Aucun de mes amis n'utilise l'application Agatha pour l'instant.",
				"err_nomylikes":"Je n'ai recommandé aucun produit pour l'instant.",
				"err_nofriendslikes":"Aucun de mes amis n'a recommandé de produit pour l'instant.",
				
				"date_at":"à",
				"date_le":"Le ",				
				"date_second":"seconde",
				"date_seconds":"secondes",
				"date_minute":"minute",
				"date_minutes":"minutes",
				"date_day":"jour",
				"date_days":"jours",
				"date_month":"mois",
				"date_months":"mois",
				"date_year":"année",
				"date_years":"années",
				
				"month_01":"janvier",
				"month_02":"février",
				"month_03":"mars",
				"month_04":"avril",
				"month_05":"mai",
				"month_06":"juin",
				"month_07":"juillet",
				"month_08":"août",
				"month_09":"septembre",
				"month_10":"octobre",
				"month_11":"novembre",
				"month_12":"décembre",
				
				"people":"personnes",
				"likes":"aime",
				"like_this":"aiment ça",
				"likes_this":"aime ça",
				
				"friend_uses":"ami utilise l'application Agatha.",
				"friends_use":"amis utilisent l'application Agatha."	
			}
		};
		
		return meta.each(function() {
			$this = jQuery(this);
			var o = jQuery.meta ? jQuery.extend({}, opts, $this.data()) : opts;
			var output = '';
			var avatarBaseURL;
			var baseData;
			var graphURL = "https://graph.facebook.com/";
			var nomPage = "agatha";
			var lg = o.currentStoreId;
			
			/******************************************************************************************************
			 * Load base data
			 ******************************************************************************************************/
			 
			meta.addClass('fb-wall').addClass('loading').html('');
			jQuery.ajax({
				url: graphURL+o.id,
				dataType: "jsonp",
				success: function(data, textStatus, XMLHttpRequest){
					initBase(data);
				}
			});
			
			/******************************************************************************************************
			 * Load feed data 
			 ******************************************************************************************************/
			 
			var initBase = function(data){
				baseData = data;
				
				/*if(data==false){
					meta.removeClass('loading').html('The alias you requested do not exist: '+o.id);
					return false;
				};*/
				
				if(data.error){
					meta.removeClass('loading').html(data.error.message);
					return false;
				};
				

				var type = 'posts'; /*(o.showGuestEntries=='true'||o.showGuestEntries==true) ? 'feed' : 'posts';*/
				jQuery.ajax({
					url: graphURL+nomPage+"/posts?limit="+o.max+"&limit=6&access_token="+o.acc_token,
					dataType: "jsonp",
					success:function (data, textStatus, XMLHttpRequest) {
						meta.removeClass('loading');
						initWall(data);
					}
				});
			}
	
			/******************************************************************************************************
			 * Parse feed data / wall
			 ******************************************************************************************************/
			 
			var initSocialWall = function(data) {
				
				var listing_users = new Array();
				var listing_mylikes = new Array();
				var listing_friendslikes = new Array();
				
				var nb_mylikes = 0;
				var nb_friendslikes = 0;
				var is_first = 0;
				
				var output_friends = '<div class="fb-mur-section"><div class="fb-mur-titre-section"><img src="/media/agatha/facebook/'+tr[lg]["_code"]+'/title-friends.gif"></div>';
				var output_mylikes = '<div class="fb-mur-section"><div class="fb-mur-titre-section"><img src="/media/agatha/facebook/'+tr[lg]["_code"]+'/title-mylikes.gif"></div>';
				var output_friendslikes = '<div class="fb-mur-section"><div class="fb-mur-titre-section"><img src="/media/agatha/facebook/'+tr[lg]["_code"]+'/title-friendslikes.gif"></div>';
				var output_recomm = '<iframe class="recomm-connecte" name="fbrecomm" src="//www.facebook.com/plugins/recommendations.php?site=www.agatha.fr&amp;width=424&amp;height=500&amp;header=true&amp;colorscheme=light&amp;linktarget=_blank&amp;font=lucida+grande" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:424px; height:500px;" allowTransparency="true"></iframe><div class="entete-recomm"><img src="/media/agatha/facebook/'+tr[lg]["_code"]+'/title-recomm.gif"></div>';
				
				var timeref = Math.round(new Date().getTime() / 1000);
				
				jQuery.each(data, function(index, dataset) { 
					switch ( dataset.name ) {
						case 'loggedfriends':
							switch(dataset.fql_result_set.length) {
								case 0:
									//output_friends += '<div class="msg_err">'+tr[lg]['err_nofriends']+'</div>';
									output_friends = '';
									break;
								case 1:
									output_friends += '<div class="msg-info">'+dataset.fql_result_set.length+' '+tr[lg]['friend_uses']+'</div>';
									break;
								default:
									output_friends += '<div class="msg-info">'+dataset.fql_result_set.length+' '+tr[lg]['friends_use']+'</div>';
							}
							if (dataset.fql_result_set.length > 0)
							{
								output_friends += '<div class="fb-friends-list">';
								jQuery.each(dataset.fql_result_set, function(index, user) { 
									listing_users['uid_'+user.uid] = {'name':user.name,'url':user.profile_url};
									output_friends += '<a class="friend-fb-block" href="'+user.profile_url+'" target="_blank"><img src="'+user.pic_square+'"><br><span>'+user.name+'</span></a>';
								});
							}
							break;
						case 'detailmylikes':
							nb_mylikes = dataset.fql_result_set.length;
							jQuery.each(dataset.fql_result_set, function(index, pglike) { 
								listing_mylikes['page_'+pglike.page_id]={'name':pglike.name,'pic':pglike.pic,'url':pglike.page_url,'description':pglike.description};
							});
							break;
						case 'detailfriendslikes':
							nb_friendslikes = dataset.fql_result_set.length;
							jQuery.each(dataset.fql_result_set, function(index, pglike) { 
								listing_friendslikes['page_'+pglike.page_id]={'name':pglike.name,'pic':pglike.pic,'url':pglike.page_url,'description':pglike.description};
							});
							break;
						case 'timemylikes':
							if (nb_mylikes > 0) {
								is_first=1;
								jQuery.each(dataset.fql_result_set, function(index, fanpage) { 
									var pid = fanpage.page_id;
									var datelike = getDelaiFormate(timeref - fanpage.created_time);
									output_mylikes += '<div class="favori-fb favori-fb-mine';
									if (is_first == 1) { is_first=0; output_mylikes += ' first'; }
									output_mylikes += '">';
									output_mylikes += '<img src="'+listing_mylikes['page_'+pid].pic+'" />';
									output_mylikes += '<div class="titre-favori-fb"><a class="lien-produit-fb" href="'+listing_mylikes['page_'+pid].url+'">'+listing_mylikes['page_'+pid].name+'</a></div>';
									output_mylikes += '<div class="description-produit-fb">'+listing_mylikes['page_'+pid].description+'</div>';
									output_mylikes += '<div class="date-like-fb">'+afficherDelai(datelike)+'</div>';
									output_mylikes += '<div class="bouton-like-fb"><iframe src="http://www.facebook.com/plugins/like.php?href='+escape(listing_mylikes['page_'+pid].url)+'&amp;send=false&amp;layout=standard&amp;width=270&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=42" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:270px; height:42px;" allowTransparency="true"></iframe></div>';	
									output_mylikes += '<div class="clear"></div>';
									output_mylikes += '</div>';
								});
							}
							else
								//output_mylikes += '<div class="msg_err">'+tr[lg]["err_nomylikes"]+'</div>';
								output_mylikes = '';
							break;
						case 'timefriendslikes':
							if (nb_friendslikes > 0) {
								is_first=1;
								jQuery.each(dataset.fql_result_set, function(index, fanpage) { 
									var pid = fanpage.page_id;
									var datelike = getDelaiFormate(timeref - fanpage.created_time);
									output_friendslikes += '<div class="favori-fb favori-fb-friend';
									if (is_first == 1) { is_first=0; output_friendslikes += ' first'; }
									output_friendslikes += '">';
									output_friendslikes += '<img src="'+listing_friendslikes['page_'+pid].pic+'" />';
									output_friendslikes += '<div class="titre-favori-fb"><a class="lien-friend-fb" href="'+listing_users['uid_'+fanpage.uid].url+'">'+listing_users['uid_'+fanpage.uid].name+'</a> '+tr[lg]['likes']+' <a href="'+listing_friendslikes['page_'+pid].url+'" class="lien-produit-fb">'+listing_friendslikes['page_'+pid].name+'</a></div>';
									output_friendslikes += '<div class="description-produit-fb">'+listing_friendslikes['page_'+pid].description+'</div>';
									output_friendslikes += '<div class="date-like-fb">'+afficherDelai(datelike)+'</div>';
									output_friendslikes += '<div class="bouton-like-fb"><iframe src="http://www.facebook.com/plugins/like.php?href='+escape(listing_friendslikes['page_'+pid].url)+'&amp;send=false&amp;layout=standard&amp;width=270&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=42" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:270px; height:42px;" allowTransparency="true"></iframe></div>';							
									output_friendslikes += '<div class="clear"></div>';
									output_friendslikes += '</div>';									
								});
							}
							else
								//output_friendslikes += '<div class="msg_err">'+tr[lg]["err_nofriendslikes"]+'</div>';
								output_friendslikes = '';
							break;
					}
					
					
				});
				
				output_friends += '<div class="clear"></div></div></div>';
				output_mylikes += '</div>';
				output_friendslikes += '</div>';
				
				
				output += '<div id="fb-mur-col-droite" class="col-droite-connecte">'+output_recomm+output_mylikes+output_friends+output_friendslikes;
				output += '</div><div class="clear"></div>';

				meta.hide().html(output);
				meta.fadeIn(700, function() {

					if (o.callback) {
						callbackFbwall();
					}
					
				});
				
				
			};
			
			var initWall = function(data){
				
				data = data.data;
				
				var max = data.length;
				var thisAvatar, isBase, hasBaseLink, thisDesc;
				
				var outputAgatha = '<div class="fb-mur-section"><div class="fb-mur-titre-section"><img src="/media/agatha/facebook/'+tr[lg]["_code"]+'/title-wall.gif"></div>';
				
				for(var k=0;k<max;k++){

					// Shortcut ------------------------------------------------------------------------------------------------------------------------------
					isBase = (data[k].from.id==baseData.id);
					hasBaseLink = isBase&&(exists(baseData.link));
					if(!o.showGuestEntries&&!isBase) continue;
					
					// Box -----------------------------------------------------------------------------------------------------------------------------------
					outputAgatha += (k==0) ? '<div class="fb-wall-box fb-wall-box-first">' : '<div class="fb-wall-box">';
					outputAgatha += '<a href="http://www.facebook.com/profile.php?id='+data[k].from.id+'" target="_blank">';
					outputAgatha += '<img class="fb-wall-avatar" src="'+getAvatarURL(data[k].from.id)+'" />';
					outputAgatha += '</a>';
					outputAgatha += '<div class="fb-wall-data">';
					
					outputAgatha += '<span class="fb-wall-message">';
					outputAgatha += '<a href="http://www.facebook.com/profile.php?id='+data[k].from.id+'" class="fb-wall-message-from" target="_blank">'+data[k].from.name+'</a> ';
					if(exists(data[k].message)) outputAgatha += modText(data[k].message);
					outputAgatha += '</span>';
					
					// Media -----------------------------------------------------------------------------------------------------------------------------------
					if(exists(data[k].picture)||exists(data[k].link)||exists(data[k].caption)||exists(data[k].description)){
						
						/*if (data[k].name != "Wall Photos") {
							outputAgatha += '<div class="fb-wall-media">';
	
							outputAgatha += '<div class="fb-wall-media-container">';
							if(exists(data[k].name)) outputAgatha += '<a class="fb-wall-name" href="'+data[k].link+'" target="_blank">'+data[k].name+'</a>';
							outputAgatha += '</div>';
							outputAgatha += '</div>';
						}*/
						
						outputAgatha += exists(data[k].picture) ? '<div class="fb-wall-media">' : '<div class="fb-wall-media fb-wall-border-left">';
						if(exists(data[k].picture)){
							if(exists(data[k].link)) outputAgatha += '<a href="'+data[k].link+'" target="_blank" class="fb-wall-media-link">';
							outputAgatha += '<img class="fb-wall-picture" src="'+data[k].picture+'" />';
							if(exists(data[k].link)) outputAgatha += '</a>';
						}
						outputAgatha += '<div class="fb-wall-media-container">';
						if(exists(data[k].name)) outputAgatha += '<a class="fb-wall-name" href="'+data[k].link+'" target="_blank">'+data[k].name+'</a>';
						if(exists(data[k].caption)) outputAgatha += '<a class="fb-wall-caption" href="http://'+data[k].caption+'" target="_blank">'+data[k].caption+'</a>';
						if(exists(data[k].properties)){
							for(var p=0;p<data[k].properties.length;p++) outputAgatha += (p==0) ? '<div>'+formatDate(data[k].properties[p].text)+'</div>' : '<div>'+data[k].properties[p].text+'</div>';
						}
						if(exists(data[k].description)){
							thisDesc = modText(data[k].description);
							if(thisDesc.length>299)thisDesc=thisDesc.substr(0,thisDesc.lastIndexOf(' '))+' ...';
							outputAgatha += '<span class="fb-wall-description">'+thisDesc+'</span>';
						}
						outputAgatha += '</div>';
						outputAgatha += '</div>';
						 
					}
					outputAgatha += '<span class="fb-wall-date">';
					if(exists(data[k].icon)) outputAgatha += '<img class="fb-wall-icon" src="'+data[k].icon+'" title="'+data[k].type+'" alt="" />';
					outputAgatha += formatDate(data[k].created_time)+'</span>';		
				
					// Likes -------------------------------------------------------------------------------------------------------------------------------
					if(exists(data[k].likes)){
						if(parseInt(data[k].likes.count)==1){
							outputAgatha += '<div class="fb-wall-likes"><div><span>'+data[k].likes.data[0].name+'</span> '+tr[lg]["likes_this"]+'</div> </div>';
						} else {
							outputAgatha += '<div class="fb-wall-likes"><div><span>'+data[k].likes.count+' '+tr[lg]["people"]+'</span> '+tr[lg]["like_this"]+'</div> </div>';
						}
					}
					
					// Comments -------------------------------------------------------------------------------------------------------------------------------
					if(exists(data[k].comments) && exists(data[k].comments.data) && (o.showComments==true||o.showComments=='true')){
												
						outputAgatha += '<div class="fb-wall-comments">';
						for(var c=0;c<data[k].comments.data.length;c++){
							outputAgatha += '<span class="fb-wall-comment">';
							outputAgatha += '<a href="http://www.facebook.com/profile.php?id='+data[k].comments.data[c].from.id+'" class="fb-wall-comment-avatar" target="_blank">';
							outputAgatha += '<img src="'+getAvatarURL(data[k].comments.data[c].from.id)+'" />';
							outputAgatha += '</a>';
							outputAgatha += '<span class="fb-wall-comment-message">';
							outputAgatha += '<a class="fb-wall-comment-from-name" href="http://www.facebook.com/profile.php?id='+data[k].comments.data[c].from.id+'" target="_blank">'+data[k].comments.data[c].from.name+'</a> ';
							outputAgatha += modText(data[k].comments.data[c].message);
							outputAgatha += '<span class="fb-wall-comment-from-date">'+formatDate(data[k].comments.data[c].created_time)+'</span>';
							outputAgatha += '</span>';
							outputAgatha += '</span>';
						}
						outputAgatha += '</div>';
					}
					
					outputAgatha += '</div>';
					outputAgatha += '<div class="fb-wall-clean"></div>';
					outputAgatha += '</div>';
				}
				
				// No data found --------------------------------------------------------------------------------------------
				if(max==0){
					outputAgatha += '<div class="fb-wall-box-first">';
					outputAgatha += '<img class="fb-wall-avatar" src="'+getAvatarURL(baseData.id)+'" />';
					outputAgatha += '<div class="fb-wall-data">';
					outputAgatha += '<span class="fb-wall-message"><span class="fb-wall-message-from">'+baseData.name+'</span> '+tr[lg]["errornodata"]+'</span>';
					outputAgatha += '</div>';
					outputAgatha += '</div>';
				}
				outputAgatha += '</div>';
				
				if (o.id == false) {
					
					var outputConnect = '<div class="fb-mur-section"><div class="fb-mur-titre-section"><img src="/media/agatha/facebook/'+tr[lg]["_code"]+'/title-login.gif"></div><p class="notice-fb-connect">'+tr[lg]["log_in"]+'</p><div class="buttons-set"><fb:login-button onclick="connecterUtilisateur();" length="long" perms="email,publish_stream,read_stream,user_likes,friends_likes">Connect</fb:login-button></div></div><div style="clear:both;"></div>';
					
					var output_recomm = '<iframe class="recomm-deconnecte" name="fbrecomm" src="//www.facebook.com/plugins/recommendations.php?site=www.agatha.fr&amp;width=424&amp;height=500&amp;header=true&amp;colorscheme=light&amp;linktarget=_blank&amp;font=lucida+grande" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:424px; height:500px;" allowTransparency="true"></iframe><div class="entete-recomm"><img src="/media/agatha/facebook/'+tr[lg]["_code"]+'/title-recomm.gif"></div>';
					
					output += '<div id="fb-mur-col-gauche">'+outputAgatha+'</div><div id="fb-mur-col-droite" class="col-droite-deconnecte">'+output_recomm+outputConnect+'</div><div class="clear"></div>';
					
					meta.hide().html(output).fadeIn(700, function() {
						if (o.callback) {
							callbackFbwall();
						}
					});
					
				}
				
				// Si on est loggé lancer la requête du mur
				else {
					output += '<div id="fb-mur-col-gauche">'+outputAgatha+'</div>';
					var req_loggedfriends = 'select uid, name, pic_square, profile_url from user where uid in (select uid2 from friend where uid1='+o.id+') and is_app_user=1 limit 5000';
					var req_mylikes = 'select page_id, created_time from page_fan where uid='+o.id+' and profile_section="other" and type="PRODUCT/SERVICE" order by created_time desc';
					var req_friendslikes = 'select page_id, uid, created_time from page_fan where uid in (select uid from %23loggedfriends) and profile_section="other" and type="PRODUCT/SERVICE" order by created_time desc';
					var req_detailmylikes = 'select page_id, name, description, pic, page_url from page where page_id in (select page_id from %23mylikes) and strpos(page_url,"agatha.fr")>0 limit 6';
					var req_detailfriendslikes = 'select page_id, name, description, pic, page_url from page where page_id in (select page_id from %23friendslikes) and strpos(page_url,"agatha.fr")>0 limit 4';
					var req_timemylikes = 'select page_id, created_time from page_fan where uid='+o.id+' and page_id in (select page_id from %23detailmylikes) order by created_time desc';
					var req_timefriendslikes = 'select page_id, uid, created_time from page_fan where uid in (select uid from %23loggedfriends) and page_id in (select page_id from %23detailfriendslikes) order by created_time desc';
					var req_actus = '';
					
					jQuery.support.cors = true;
					jQuery.ajax({
						url: "https://api.facebook.com/method/fql.multiquery?queries={'loggedfriends':'"+req_loggedfriends+"','friendslikes':'"+req_friendslikes+"','mylikes':'"+req_mylikes+"','detailmylikes':'"+req_detailmylikes+"','detailfriendslikes':'"+req_detailfriendslikes+"','timemylikes':'"+req_timemylikes+"','timefriendslikes':'"+req_timefriendslikes+"'}&format=json&access_token="+o.acc_token,
						dataType: "jsonp",
						error: function( data, status, msg) {
							alert("ERR "+msg);
						},
						success:function (data, textStatus, XMLHttpRequest) {
							meta.removeClass('loading');
							initSocialWall(data);
						}
					});
				}		

			};
			
			
			function getDelaiFormate(tstamp) {
				if (tstamp<60)
					return {'v':tstamp,'unit':'second'};
				else if (tstamp<3600)
					return {'v':Math.floor(tstamp/60),'unit':'minute'};
				else if (tstamp<86400)
					return {'v':Math.floor(tstamp/3600),'unit':'hour'};
				else if (tstamp<2592000)
					return {'v':Math.floor(tstamp/86400),'unit':'day'};			
				else if (tstamp<31536000)
					return {'v':Math.floor(tstamp/2592000),'unit':'month'};
				else
					return {'v':Math.floor(tstamp/31536000),'unit':'year'};
			}
			
			function afficherDelai(dl) {
				var tr_date = dl.v+' '+(dl.v>1?tr[lg]["date_"+dl.unit+"s"]:(tr[lg]["date_"+dl.unit]));
				var tr_delai = tr_date+' ago';
				if (lg == "francais") tr_delai = "il y a "+tr_date;
				return tr_delai;
			}
			
			/******************************************************************************************************
			 * Get Avatar URLs
			 ******************************************************************************************************/
			
			function getAvatarURL(id){
				var avatarURL;
				if(id==baseData.id){ avatarURL = (o.useAvatarAlternative) ? o.avatarAlternative : graphURL+id+'/picture?type=square'; }
				else{ avatarURL = (o.useAvatarExternal) ? o.avatarExternal : graphURL+id+'/picture?type=square'; }
				return avatarURL;
			}
						
			/******************************************************************************************************
			 * Parse dateStr as formatted date
			 * @return: if dateStr can't be parsed as Date, return dateStr
			 ******************************************************************************************************/
			 
			function formatDate(dateStr){
				var year, month, day, hour, minute, dateUTC, date, ampm, d, time;
				var iso = (dateStr.indexOf(' ')==-1&&dateStr.substr(4,1)=='-'&&dateStr.substr(7,1)=='-'&&dateStr.substr(10,1)=='T') ? true : false;

				if(iso){
					year = dateStr.substr(0,4);
					month = parseInt((dateStr.substr(5,1)=='0') ? dateStr.substr(6,1) : dateStr.substr(5,2))-1;
					day = dateStr.substr(8,2);
					hour = dateStr.substr(11,2);
					minute = dateStr.substr(14,2);
					dateUTC = Date.UTC(year, month, day, hour, minute);
					date = new Date(dateUTC);
				}else{
					d = dateStr.split(' ');
					if(d.length!=6||d[4]!='at')
						return dateStr;
					time = d[5].split(':');
					ampm = time[1].substr(2);
					minute = time[1].substr(0,2);
					hour = parseInt(time[0]);
					if(ampm=='pm')hour+=12;
					date = new Date(d[1]+' '+d[2]+' '+d[3] +' '+ hour+':'+minute);
					date.setTime(date.getTime()-(1000*60*60*7));
				}
				day = (date.getDate()<10)?'0'+date.getDate():date.getDate();
				month = date.getMonth()+1;
				month = (month<10)?'0'+month:month;
				hour = date.getHours();
				minute = (date.getMinutes()<10)?'0'+date.getMinutes():date.getMinutes();
				
				var date_formatee = day+'.'+month+'.'+date.getFullYear();
				if (lg=="francais") {
					date_formatee = 'Le '+date.getDate();
					if (date.getDate() == 1) date_formatee += "er";
					date_formatee += ' '+tr[lg]['month_'+month]+' '+date.getFullYear();
				}
				
				
				if(o.timeConversion==12){
					ampm = (hour<12) ? 'am' : 'pm';
					if(hour==0)hour==12;
					else if(hour>12)hour=hour-12;
					if(hour<10)hour='0'+hour;
					return date_formatee+' '+tr[lg]["date_at"]+' '+hour+':'+minute+' '+ampm;
				}
				return date_formatee+' '+tr[lg]["date_at"]+' '+hour+':'+minute;
			}
			
			/******************************************************************************************************
			 * Helper Function
			 ******************************************************************************************************/
			 
			function exists(data){
				if(!data || data==null || data=='undefined' || typeof(data)=='undefined') return false;
				else return true;
			}
			
			function modText(text){
				return nl2br(autoLink(escapeTags(text)));
			}
			
			function escapeTags(str){
				return str.replace(/</g,'&lt;').replace(/>/g,'&gt;');
			}
			
			function nl2br(str){
				return str.replace(/(\r\n)|(\n\r)|\r|\n/g,"<br>");
			}
			
			function autoLink(str){
				return str.replace(/((http|https|ftp):\/\/[\w?=&.\/-;#~%-]+(?![\w\s?&.\/;#~%"=-]*>))/g, '<a href="$1" target="_blank">$1</a>');
			}

		});
	};

	/******************************************************************************************************
	 * Defaults 
	 ******************************************************************************************************/
	 
	jQuery.fn.fbWall.defaults = {
		avatarAlternative:		'avatar-alternative.jpg',
		avatarExternal:			'avatar-external.jpg',
		id: 					'neosmart.gmbh',
		max:					5,
		showComments:			true,
		showGuestEntries:		true,
		timeConversion:			24,
		useAvatarAlternative:	false,
		useAvatarExternal:		false
	};

})(jQuery);
