// tumblrBadge by Robert Nyman, http://www.robertnyman.com/, http://code.google.com/p/tumblrbadge/
// modded by gleuch from v1.1 to play nicer with jQuery.
var tumblrBadge = {
	settings : {userName : "knowyourmeme", itemsToShow : 3, itemToAddBadgeTo : false, itemToShowWhenDone : false, imageSize : 100, shortPublishDate : true, timeToWait : 2000},
	init : function(elm, p_elm) {
		this.settings.itemToAddBadgeTo = elm;
		this.settings.itemToShowWhenDone = (p_elm != '' ? p_elm : elm);
		var head = document.getElementsByTagName("head")[0];
		this.badgeContainer = document.getElementById(this.settings.itemToAddBadgeTo);
		this.badgeParent = document.getElementById(this.settings.itemToShowWhenDone);
		if (head && this.badgeContainer && this.badgeParent) {
			var badgeJSON = document.createElement("script");
			badgeJSON.type = "text/javascript";
			badgeJSON.src = "http://" + this.settings.userName + ".tumblr.com/api/read/json?callback=tumblrBadge.listItems&num=" + this.settings.itemsToShow;
			head.appendChild(badgeJSON);
			var wait = setTimeout(function () {badgeJSON.onload = null; badgeJSON.parentNode.removeChild(badgeJSON); badgeJSON = null;}, this.settings.timeToWait);
		}
	},
	listItems : function (json) {
		var posts = json.posts, list = document.createElement("ul"), date='', post, listItem, text, link, img, conversation, postLink;
		list.className = "tumblr list";
		for (var i=0, il=posts.length; i<il; i=i+1) {
			var post = posts[i];
			if (/regular|photo|quote|link|video|conversation/.test(post.type)) {
				var listItem = document.createElement("li");
				//var str = ""; $.each(post, function(i, v) {str += i+" - "+v+"\n";}); alert(str);

				var text = post["regular-body"] || post["photo-caption"] || post["video-caption"] || post["quote-source"] || post["link-text"] || post["link-url"] || "";
				//date = '<br /><a href="'+ post.url +'" class="date">'+ ((this.settings.shortPublishDate)? post["date"].replace(/(^\w{3},\s)|(:\d{2}$)/g, "") : post["date"]) +'</a>';

				var content = false, f = false;
				if (post.type == 'regular') {
					content = '<h6><a href="'+post.url+'">'+ post['regular-title'] +'</a></h6><p class="inline">'+ this.words(text.replace(/<p>|<\/p>/, ''), 20)+date+'</p>';
				} else if (post.type == 'video' && /vimeo|youtube/.test(post['video-source'])) {
					if (/vimeo/.test(post['video-source'])) {
						Vimeo.Use = 'small';
						v_id = Vimeo.GetId(post['video-source']);
						Vimeo.GetThumbnail(v_id);
						f = '<a href="http://www.vimeo.com/'+ v_id +'" class="left"><img src="images/blank.png" width="50" height="38" class="vimeo_'+v_id +'" /></a>';
					} else {
						YouTube.Use = 'small';
						f = '<a href="http://www.youtube.com/watch?v='+ YouTube.GetId(post['video-source']) +'" class="left"><img src="'+ YouTube.GetThumbnail(post['video-source']) +'" width="50" height="38" /></a>';
					}
					content = f + '<p class="inline"><strong>Video:</strong> '+ this.words(text.replace(/<p>|<\/p>/, ''), 20) +date+'</p>';// <a href="'+ post.url +'" class="button ghost small"><span>Watch Video</span></a>'+date+'</p>';
				} else if (post.type == 'photo') {
					f = '<a href="'+ post['photo-link-url'] +'"" class="left"><img src="'+ post['photo-url-75'] +'" width="50" height="50" /></a>';
					content = f+'<p class="inline"><strong>Photo:</strong> '+this.words(text.replace(/<p>|<\/p>/, ''), 20) +date+'</p>';//' <a href="'+ post.url +'" class="button ghost small"><span>View Photo</span></a>'+date+'</p>';
				}
				if (content) {
					listItem.className = post.type +' c'
					listItem.innerHTML = content.replace(/(<li>|<\/li>|<ol>|<\/ol>|<ul>|<\/ul>|<blockquote>|<\/blockquote>)/ig, '').replace(/<p(!?.)?>/i, '<p class="inline">');
					list.appendChild(listItem);
				}
			}
		}
		this.badgeContainer.innerHTML = "";
		this.badgeContainer.appendChild(list);
		this.badgeParent.style.display = "block";
	},
	words : function(str, len) {return (str.split(" ").length > len) ? str.split(" ").splice(0, len, '').join(" ")+"&hellip;" : str;}
};