﻿/*
  PHP style date() plugin
  Call in exactly the same way as you do the "date" command in PHP
  e.g. s = $.PHPDate("l, jS F Y", dtDate);

  License:
  PHPDate 1.0 jQuery Plugin

  Copyright (c) 2008 Jon Combe (http://joncom.be)
*/
(function(n){function e(d){d<10&&(d="0"+d);return d}function h(d){return d>11?"pm":"am"}function i(d){for(d=new Date(d,0,1);d.getDay()!=1;)d.setDate(d.getDate()+1);return d.valueOf()}function j(d){d==0?d=24:d>12&&(d-=12);return d}var k="Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),l="January,February,March,April,May,June,July,August,September,October,November,December".split(",");n.PHPDate=function(d,b){for(var a="",m="",d=d.replace(/r/g,"D, j M Y H;i:s O"),f=0;f<d.length;f++){a=
d.charAt(f);switch(a){case "a":a=h(b.getHours());break;case "c":var a=b.getFullYear()+"-"+e(b.getMonth())+"-"+e(b.getDate())+"T"+e(b.getHours())+":"+e(b.getMinutes())+":"+e(b.getSeconds()),c=b.toString().split(" ")[5];a+=c.indexOf("-")>-1?c.substr(c.indexOf("-")):c.indexOf("+")>-1?c.substr(c.indexOf("+")):"+0000";break;case "d":a=e(b.getDate());break;case "g":a=j(b.getHours());break;case "h":a=e(j(b.getHours()));break;case "i":a=e(b.getMinutes());break;case "j":a=b.getDate();break;case "l":a=k[b.getDay()];
break;case "m":a=e(b.getMonth()+1);break;case "n":a=b.getMonth()+1;break;case "o":new Date(i(b.getFullYear()))>b?a=b.getFullYear()-1:a=b.getFullYear();break;case "s":a=e(b.getSeconds());break;case "t":a=new Date(b.valueOf());a.setMonth(a.getMonth()+1);a.setDate(0);a=a.getDate();break;case "u":a=b.getMilliseconds();break;case "w":a=b.getDay();break;case "y":a=b.getFullYear().toString().substr(2,2);break;case "z":a=new Date(b.getFullYear(),0,1,0,0,0,0);c=new Date(b.getFullYear(),b.getMonth(),b.getDate(),
0,0,0,0);a=Math.round((c.valueOf()-a.valueOf())/1E3/60/60/24);break;case "A":a=h(b.getHours()).toUpperCase();break;case "B":a=Math.floor((b.getHours()*36E5+b.getMinutes()*6E4+b.getSeconds()*1E3+b.getMilliseconds())/86400);break;case "D":a=k[b.getDay()].substr(0,3);break;case "F":a=l[b.getMonth()];break;case "G":a=b.getHours();break;case "H":a=e(b.getHours());break;case "I":var c=new Date(b.getFullYear(),0,1),g=new Date(b.getFullYear(),b.getMonth(),b.getDate()),c=(g.valueOf()-c.valueOf())/1E3/60/60/
24;c==Math.round(c)?a=0:a=1;break;case "L":(new Date(b.getFullYear(),2,0)).getDate()==29?a=1:a=0;break;case "M":a=l[b.getMonth()].substr(0,3);break;case "N":b.getDay()==0?a=7:a=b.getDay();break;case "O":c=b.toString().split(" ")[5];a=c.indexOf("-")>-1?c.substr(c.indexOf("-")):c.indexOf("+")>-1?c.substr(c.indexOf("+")):"+0000";break;case "P":c=b.toString().split(" ")[5];c.indexOf("-")>-1?(a=c.substr(c.indexOf("-")+1).split(""),a="-"+a[0]+a[1]+":"+a[2]+a[3]):c.indexOf("+")>-1?(a=c.substr(c.indexOf("+")+
1).split(""),a="+"+a[0]+a[1]+":"+a[2]+a[3]):a="+00:00";break;case "S":a=b.getDate();c="th";switch(parseInt(a)){case 1:case 21:case 31:c="st";break;case 2:case 22:c="nd";break;case 3:case 23:c="rd"}a=c;break;case "T":a=b.toString().split(" ")[5];a.indexOf("+")>-1?a=a.substr(0,a.indexOf("+")):a.indexOf("-")>-1&&(a=a.substr(0,a.indexOf("-")));break;case "U":a=Math.floor(b.getTime()/1E3);break;case "W":c=new Date(i(b.getFullYear()));g=new Date(b.getFullYear(),b.getMonth(),b.getDate());a=Math.ceil(Math.round((g.valueOf()-
c.valueOf())/1E3/60/60/24)/7);break;case "Y":a=b.getFullYear();break;case "Z":b.getTimezoneOffset()<0?a=Math.abs(b.getTimezoneOffset()*60):a=0-b.getTimezoneOffset()*60}m+=a.toString()}return m}})(jQuery);

/*
  Facebook feed widget
  By Bryce Looms
*/

function facebookDate(str) {
	var v = str.replace(/-/g,'/').replace(/[T\+]/g,' ').split(' ');
	return new Date(Date.parse(v[0] + " " + v[1] + " UTC"));
}

var fbFanName = "ppnzmusic";
var token = "216670845045547%7Cf401d1461956e52df8674313.1-647298731%7Cswqo4agwr1CUM1y8PQIHKVRfZQ0";
var url = "https://graph.facebook.com/"+fbFanName+"/feed/?access_token="+token+"&callback=?";

var defaultContent = '<img src="template/css/imgs/facebook.jpg" alt="PPNZ Facebook Feed" /><a class="overlay" target="_blank" href="http://www.facebook.com/ppnzmusic" title="Go to the PPNZ Facebook Feed">PPNZ Facebook Feed</a>';

//jquery dom ready
$(function() {

	var ul = $('#facebook-feed');
	ul.addClass('loading');

});

$.getJSON(url, function(data) {
	
	if(data) {
		//jquery dom ready
		$(function() {
			
			var ul = $('#facebook-feed');
			ul.html('');

			$.each(data.data, function(key, item) {
				
				var type = item.type;
				var userLink = '<a class="name" href="http://www.facebook.com/profile.php?id='+item.from.id+'">'+item.from.name+'</a> ';
				var icon = '<span class="icon" style="background-image:url('+item.icon+')" title="'+type+'">'+type+'</span> ';
				var msg  = item.message;
				var dateObj = facebookDate(item.created_time);
				var date  = '<abbr title="'+$.PHPDate('l, d F Y H:i', dateObj)+'">'+$.PHPDate('d F H:i', dateObj)+'</abbr>';
				var like = '';
				
				if(item.likes) {
					var num = item.likes.count;
					if(num == 1) {
						if(item.likes.data[0]) 
							 like = '<span class="like"><i></i><a href="http://www.facebook.com/profile.php?id='+item.likes.data[0].id+'">'+item.likes.data[0].name+'</a> likes this.<span></span></span>';
						else like = '<span class="like"><i></i>Someone likes this!<span></span></span>';
					}
					else like = '<span class="like"><i></i>'+item.likes.count+' people like this.<span></span></span>';
				}
				
				var li = '';
				
				switch(type) {
					
					case "status" :
						if(msg) li += '<li class="status"><p>'+userLink+msg+'</p><p>'+date+like+'</p></li>';
					break;
					case "link"   :
						var pic = (item.picture) ? '<a href="'+item.link+'"><img src="'+decodeURI(item.picture)+'" /></a>' : '';
						var desc = (item.description) ? item.description : '';
						var caption = (item.caption) ? '<a class="caption" href="'+item.link+'">'+item.caption+'</a>' : '';
						if(msg && msg.match(/http:\/\//)) msg = '';//'<a class="link" href="'.$msg.'">'+msg+'</a>'; 
						li += '<li class="link"><p>'+userLink+msg+'</p><p>'+pic+'<a class="name" href="'+item.link+'">'+item.name+'</a>'+caption+desc+'</p><p>'+date+icon+like+'</p></li>';
					break;
					case "photo"  :
						var arr = item.link.split('?').pop().split('&');
						var vars = {};
						for(var i = 0, l = arr.length; i < l; i++) {
							var temp = arr[i].split('=');
							vars[temp[0]] = temp[1];
						}
						var album = '<a href="http://www.facebook.com/media/set/?set='+vars['set']+'&type=1">'+item.name+'</a>';
						if(item.caption) album = 'Added '+item.caption+' to '+album;
						li += '<li class="photo"><p>'+userLink+msg+'</p><p><a class="img" href="'+item.link+'"><img src="'+item.picture+'" alt="" /></a> '+album+'</p><p>'+date+icon+like+'</p></li>';
					break;
					case "video"  :
						li += '<li class="video"><p>'+userLink+msg+'</p><p><a class="img" href="'+item.link+'"><img src="'+item.picture+'" alt="" /><i></i></a></p><p>'+date+icon+like+'</p></li>';
					break;
					
				}
				
				$(li).appendTo(ul);
				
			});
			
			ul.removeClass('loading');
		});

	}
	else {
	
		$(function() {
			var ul = $('#facebook-feed');
			ul.replaceWith(defaultContent).removeClass('loading');;
		});
	}
	
});
