﻿	$(document).ready(function(){
		$('div.recentcomments-wrapper').recentCommentsFill();
	});
	
	(function($){  
		jQuery.fn.recentCommentsFill = function(options) {
				var o = jQuery.extend({},jQuery.fn.recentCommentsFill.defaults,options);
				var url = o.url;
				var jsonstr = url + '/feeds/comments/default?max-results='+o.number;
				jsonstr+='&orderby=published&alt=json-in-script&callback=?';
				$(this).html('');
				recentCommentsInsertHTML($(this),jsonstr,o.shortlength,o.datestamp);
		}
		jQuery.fn.recentCommentsFill.defaults = {
			number: 6,
			shortlength: 60,
			datestamp: false,
			url: 'http://www.heyiamroger.com'
		}
	})(jQuery);

	function passedDTime(time) {
			var now = new Date();
			var diff = (now.getTime() - time.getTime())/1000;
			if(diff < 60) {
					return 'alldeles nyss'; }
			if(diff < 120) {
					return 'för 1 minut sedan'; }
			if(diff > 120 && diff < 2700) {
				return 'för '+ Math.floor( diff / 60 ) + ' minuter sedan'; }
			if(diff > 2700 && diff < 4800) {
				if(diff > 3300 && diff < 3900) { return 'för 1 timma sedan'; }
				return 'för ungefär 1 timma sedan'; }
			if(diff > 4800 && diff < 6300) {
				if(diff > 5100 && diff < 5700) { return 'för 1,5 timma sedan'; }
				return 'för ungefär 1,5 timma sedan'; }
			if(diff > 6300 && diff < 8100) {
				if(diff > 6900 && diff < 7500) { return 'för 2 timmar sedan'; }
				return 'för ungefär 2 timmar sedan'; }
			if(diff > 8100 && diff < 21600) {
				var lowhrs = Math.floor(diff/3600);
				var hihrs = Math.ceil(diff/3600);
					var retstr = 'ungefär ';
				if(diff-lowhrs*3600 < 300|| hihrs*3600-diff < 300) {
					retstr = '';
				}
				return 'för ' + retstr + Math.round( diff / 3600 ) + ' timmar sedan'; }
			if(diff > 21600 && diff < 86400) {
				if(now.getDate()!=time.getDate()) { return 'igår'; }
				return 'för '+ Math.floor( diff / 3600 )  + ' timmar sedan'; }
			if(diff > 86400 && diff < 1555200) {
				var day_diff = Math.round(diff/86400);				
				if(day_diff > 13 && day_diff <= 15) { return 'för 2 veckor sedan'; }
				if(day_diff == 7) { return  'för 1 vecka sedan'; }
				return 'för ' + day_diff + ' dagar sedan'; }
			var day_diff = Math.floor(diff/86400);
			return 'för ' + Math.round( day_diff / 7 ) + ' veckor sedan';
	}

	function recentCommentsInsertHTML(obj,str,slen,datestamp) {
		$.getJSON(str,
        function(data){
			$.each(data.feed.entry, function(i, commententry){
					var content = commententry.content.$t;
					var published = commententry.published.$t;
					if($.browser.msie) {
						var y = published.substr(0,4);
						var m = parseInt(published.substr(5,2))-1;
						var d = published.substr(8,2);
						var h = published.substr(11,2);
						var mm = published.substr(14,2);
						var s = published.substr(17,2);
						var mmm = published.substr(20,3);
						published = new Date(y,m,d,h,mm,s,mmm);
					}
					else {
						published = new Date(published);
					}
					var time = published.getHours()+':'+published.getMinutes();
					var passed = ' <span title="'+published.toLocaleDateString()+' '+published.toLocaleTimeString();
					passed += '" class="recentcomment-datetime-relative">'+passedDTime(published)+'</span>';
					published = published.toLocaleDateString();
					var sdate =  published.match(/\w+/g);
					published = sdate[1]+' '+sdate[2].substr(0,3)+' '+sdate[3]+' '+time;
					if(!datestamp) {
						published = '';
					}
					var linkedit = commententry.link[0].href;
					var linkalternate = commententry.link[2].href;				
					var id = linkedit.match(/\d+/g);
					var blogid = id[0];
					var postid = id[1];
					var authorname = '';
					var authoruri = '';
					var authoremail = '';
					for (var k = 0; k < commententry.author.length; k++) {
						if (commententry.author[k].name!=null) {
							authorname = commententry.author[k].name.$t;
						}
						if (commententry.author[k].uri!=null) {
							authoruri = commententry.author[k].uri.$t;
						}
						if (commententry.author[k].email!=null) {
							authoremail = commententry.author[k].email.$t;
						}
					}					
					var  striphtml = /<\S[^>]*>/g;
					content = content.replace(striphtml, '');
					if(content.length>slen) {
						var pos = content.indexOf(' ',slen);
						if (pos < slen) { pos = slen; } 
						content = content.substr(0,pos);
						content = '"'+content+' [...]"';
					}
					else {
						content = '"'+content+'"';
					}
					var innerHTML = '<div class="recentcomment-body"><a href="'+linkalternate+'">'+content+'</a></div>';
					innerHTML += '<div class="recentcomment"><span class="recentcomment-head" id="recentcomment-head-'+i+'"></span>';
					innerHTML += '<span class="recentcomment-datetime">'+published+passed+'</span>';
					innerHTML += '</div>';
					$(innerHTML).appendTo(obj);
					var id = 'recentcomment-head-'+i;
					postHeaderByURL(id,blogid,postid,authorname,authoruri,authoremail);
				});
		});
	}
	function postHeaderByURL(id,bloggid,postid,name,uri,email) {
		var hasLink = false;
			if(uri!='') {
				hasLink = true;
				var link = uri;
			}else if(email!='') {
				if(email!='noreply@blogger.com') {
					hasLink = true;
					var link = 'mailto:'+email;
				}
			}
		if(hasLink) {
			name = '<a href="'+link+'">'+name+'</a>';
		}
		var innerHTML = name + ' kommenterade <a href="" class="rc-postlink"></a>';
		$('#'+id).html(innerHTML);
		postHeaderLinkByIds (id,bloggid,postid);
	}
	
	function postHeaderLinkByIds (id,bloggid,postid) {
		var str = 'http://www.blogger.com/feeds/'+bloggid;
		str += '/posts/default/'+postid+'?alt=json-in-script&callback=?';		
		$.getJSON(str,
        function(data){
				var posttitle = data.entry.title.$t;
				var posturl;
				for (var k = 0; k < data.entry.link.length; k++) {
				  if (data.entry.link[k].rel == 'alternate') {
					posturl = data.entry.link[k].href;
					break;
				  }
				}
				var obj = $('#'+id).children('.rc-postlink').first();
				obj.attr('href',posturl);
				obj.html(posttitle);
		});
	}
