




if (typeof(disqus_iframe_css) == 'undefined') {
	disqus_iframe_css = '';
}
if (typeof(disqus_def_name) == 'undefined') {
	disqus_def_name = '';
}
if (typeof(disqus_def_email) == 'undefined') {
	disqus_def_email = '';
}
if (typeof(disqus_skip_auth) == 'undefined') {
	disqus_skip_auth = false;
}
if (typeof(disqus_default_text) == 'undefined') {
	disqus_default_text = 'Type your comment here.';
}

(function(){
	
	var ie = document.uniqueID
		&& document.compatMode
		&& !window.XMLHttpRequest
		&& document.execCommand ;

	try {
		if(!!ie) {
			document.execCommand("BackgroundImageCache", false, true);
		}
	} catch(e) {};
})();

var Dsq = new function() {
	this.container = document.getElementById('dsq-content');
	this.jsonData = {"reactions": [{"body": "@chalenejohnson http://bit.ly/v1V72\n <--- everything i read says to \"wait it out\" :(", "author_name": "Alshoosh", "source_url": "http://www.backtype.com/search?q=http%3A//scobleizer.com/2007/10/14/the-you-dont-need-more-friends-lobby/", "id": 1041210, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/Alshoosh/statuses/1836014591", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://static.twitter.com/images/default_profile_normal.png", "author_url": "", "date_created": "7 months ago", "retweets": []}, {"body": "\"The fact that people assume that you should only have 'real friends' in your social network is just plain wrong.\"  http://bit.ly/zzxdl", "author_name": "McCallister", "source_url": "http://www.backtype.com/search?q=http%3A//scobleizer.com/2007/10/14/the-you-dont-need-more-friends-lobby/", "id": 1401517, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/McCallister/statuses/1522555610", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://s3.amazonaws.com/twitter_production/profile_images/84382793/11029299813710763757_normal.png", "author_url": "", "date_created": "8 months ago", "retweets": []}], "has_more_reactions": false, "users": {"a4b277e1312826352c52c9d70764e745": {"username": "Jeffrey", "tumblr": "", "display_name": "Jeffrey", "url": "http://disqus.com/guest/a4b277e1312826352c52c9d70764e745/", "registered": false, "linkedin": "", "blog": "http://www.phraseexpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "14f89ec6dc2aad3658d47eb45723fbfa": {"username": "Deepak", "tumblr": "", "display_name": "Deepak", "url": "http://disqus.com/guest/14f89ec6dc2aad3658d47eb45723fbfa/", "registered": false, "linkedin": "", "blog": "http://mndoci.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/10764/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "fc01b6575368251c1a310ed6ea5d6a03": {"username": "Eric Rice", "tumblr": "", "display_name": "Eric Rice", "url": "http://disqus.com/guest/fc01b6575368251c1a310ed6ea5d6a03/", "registered": false, "linkedin": "", "blog": "http://ericrice.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/868/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "bb805a58cedc505fc63190ec9f1f59b2": {"username": "Netliving", "tumblr": "", "display_name": "Netliving", "url": "http://disqus.com/guest/bb805a58cedc505fc63190ec9f1f59b2/", "registered": false, "linkedin": "", "blog": "http://www.netliving.es/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "c087cf8794ad2cdcd25eee8ebf2d4f79": {"username": "Steve Rhodes", "tumblr": "", "display_name": "Steve Rhodes", "url": "http://disqus.com/guest/c087cf8794ad2cdcd25eee8ebf2d4f79/", "registered": false, "linkedin": "", "blog": "http://ari.typepad.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3553f5e0db0fd1ec4e40a932a2d8f5b3": {"username": "Robert Scoble", "tumblr": "", "display_name": "Robert Scoble", "url": "http://disqus.com/guest/3553f5e0db0fd1ec4e40a932a2d8f5b3/", "registered": false, "linkedin": "", "blog": "http://scobleizer.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/4069/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "779d3a268d7451dbb20a90088e77ad27": {"username": "Caryn", "tumblr": "", "display_name": "Caryn", "url": "http://disqus.com/guest/779d3a268d7451dbb20a90088e77ad27/", "registered": false, "linkedin": "", "blog": "http://www.lit-fuse.net/blog", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "76949787aa4faa38e120a72535a3b304": {"username": "mac d", "tumblr": "", "display_name": "mac d", "url": "http://disqus.com/guest/76949787aa4faa38e120a72535a3b304/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "8f2b12ce6ecc29926b166e5587d34c74": {"username": "atrix", "tumblr": "", "display_name": "atrix", "url": "http://disqus.com/guest/8f2b12ce6ecc29926b166e5587d34c74/", "registered": false, "linkedin": "", "blog": "http://atrix.or.id/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/12/4644/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "d8bb4623895a9ba01a125d3d7800bead": {"username": "Joseph Hunkins", "tumblr": "", "display_name": "Joseph Hunkins", "url": "http://disqus.com/guest/d8bb4623895a9ba01a125d3d7800bead/", "registered": false, "linkedin": "", "blog": "http://joeduck.wordpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/1372/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "04e92754cc8f2e396a14fde356c4c25b": {"username": "Rev. Scott", "tumblr": "", "display_name": "Rev. Scott", "url": "http://disqus.com/guest/04e92754cc8f2e396a14fde356c4c25b/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "9125c68fb14043f2b82ce5f1b43a4145": {"username": "michael j pastor", "tumblr": "", "display_name": "michael j pastor", "url": "http://disqus.com/guest/9125c68fb14043f2b82ce5f1b43a4145/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "558fe51ccaf51ea0c6927750fe64c04e": {"username": "Michael", "tumblr": "", "display_name": "Michael", "url": "http://disqus.com/guest/558fe51ccaf51ea0c6927750fe64c04e/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6ae2eaad1174c218ddca689b5cd0a8f6": {"username": "Siddharth Thakkar", "tumblr": "", "display_name": "Siddharth Thakkar", "url": "http://disqus.com/guest/6ae2eaad1174c218ddca689b5cd0a8f6/", "registered": false, "linkedin": "", "blog": "http://siddharthatwork.livejournal.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "2af076e457fa1d42b32481328bd4771f": {"username": "Ron", "tumblr": "", "display_name": "Ron", "url": "http://disqus.com/guest/2af076e457fa1d42b32481328bd4771f/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "922547c941a9407d246398abe4625444": {"username": "Ryan", "tumblr": "", "display_name": "Ryan", "url": "http://disqus.com/guest/922547c941a9407d246398abe4625444/", "registered": false, "linkedin": "", "blog": "http://www.mofata.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3a913e657d843b22d8c0be49f3759092": {"username": "Joel", "tumblr": "", "display_name": "Joel", "url": "http://disqus.com/guest/3a913e657d843b22d8c0be49f3759092/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "e423d923d844017b8d2fa4b060126ac0": {"username": "Eran Kampf", "tumblr": "", "display_name": "Eran Kampf", "url": "http://disqus.com/guest/e423d923d844017b8d2fa4b060126ac0/", "registered": false, "linkedin": "", "blog": "http://www.ekampf.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "bcd14c6ebcfbc60ead90c0223cfa361e": {"username": "princedream", "tumblr": "", "display_name": "princedream", "url": "http://disqus.com/guest/bcd14c6ebcfbc60ead90c0223cfa361e/", "registered": false, "linkedin": "", "blog": "http://www.facebook.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "1453239087125522a1c55ea6f9e1e733": {"username": "Seth E", "tumblr": "", "display_name": "Seth E", "url": "http://disqus.com/guest/1453239087125522a1c55ea6f9e1e733/", "registered": false, "linkedin": "", "blog": "http://theobstructionist.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "135e0fb484b66257dec3319ce2e04ce6": {"username": "Nicholas Quixote", "tumblr": "", "display_name": "Nicholas Quixote", "url": "http://disqus.com/guest/135e0fb484b66257dec3319ce2e04ce6/", "registered": false, "linkedin": "", "blog": "http://www.rabbitbites.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "d9b0deca18a6d142534238aa23b76d64": {"username": "Scrivs", "tumblr": "", "display_name": "Scrivs", "url": "http://disqus.com/guest/d9b0deca18a6d142534238aa23b76d64/", "registered": false, "linkedin": "", "blog": "http://9rules.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "b6b87721c444078a99633d6ed9352cec": {"username": "Chris", "tumblr": "", "display_name": "Chris", "url": "http://disqus.com/guest/b6b87721c444078a99633d6ed9352cec/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "55a187e1420f2e2e081d0423d4289866": {"username": "Kevin", "tumblr": "", "display_name": "Kevin", "url": "http://disqus.com/guest/55a187e1420f2e2e081d0423d4289866/", "registered": false, "linkedin": "", "blog": "http://blog.frivolousmotion.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "cdac3068640d71453c6531ab56b78c85": {"username": "Tim Dawson", "tumblr": "", "display_name": "Tim Dawson", "url": "http://disqus.com/guest/cdac3068640d71453c6531ab56b78c85/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "e93b47610372efeb509cff64858d52e3": {"username": "Dawn D.", "tumblr": "", "display_name": "Dawn D.", "url": "http://disqus.com/guest/e93b47610372efeb509cff64858d52e3/", "registered": false, "linkedin": "", "blog": "http://dawnkey.wordpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/38/9024/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "67b21f836daa38508848dfc00e850848": {"username": "Andrew", "tumblr": "", "display_name": "Andrew", "url": "http://disqus.com/guest/67b21f836daa38508848dfc00e850848/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "blogan": {"username": "blogan", "tumblr": "", "display_name": "Brent Logan", "url": "http://disqus.com/blogan/", "registered": true, "linkedin": "", "blog": "http://blogan.net", "remote_domain": null, "points": 2, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/43/6488/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "75c7dae24bcd436235dd5ca728cef066": {"username": "Adam", "tumblr": "", "display_name": "Adam", "url": "http://disqus.com/guest/75c7dae24bcd436235dd5ca728cef066/", "registered": false, "linkedin": "", "blog": "http://www.bladam.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "1a33e7a69df4f675fcd799edca088ac2": {"username": "Donncha", "tumblr": "", "display_name": "Donncha", "url": "http://disqus.com/guest/1a33e7a69df4f675fcd799edca088ac2/", "registered": false, "linkedin": "", "blog": "http://inphotos.org/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "f867df58fd2efcb59688e0a183fd2e9d": {"username": "Thomas Aquinas", "tumblr": "", "display_name": "Thomas Aquinas", "url": "http://disqus.com/guest/f867df58fd2efcb59688e0a183fd2e9d/", "registered": false, "linkedin": "", "blog": "http://wilywordsmith.blogspot.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "e5ee9352def27f8616f685cc5c2a7b60": {"username": "Vit Fargas", "tumblr": "", "display_name": "Vit Fargas", "url": "http://disqus.com/guest/e5ee9352def27f8616f685cc5c2a7b60/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "000801987fb3dd4d9b92db484c455ba0": {"username": "Ian Betteridge", "tumblr": "", "display_name": "Ian Betteridge", "url": "http://disqus.com/guest/000801987fb3dd4d9b92db484c455ba0/", "registered": false, "linkedin": "", "blog": "http://www.technovia.co.uk/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/19/8035/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "98583d556bf0b5c55f7a62217ceeafcc": {"username": "anon", "tumblr": "", "display_name": "anon", "url": "http://disqus.com/guest/98583d556bf0b5c55f7a62217ceeafcc/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "5f32d7e4ac1a1964801753cc36d4c22b": {"username": "Chris Hahn", "tumblr": "", "display_name": "Chris Hahn", "url": "http://disqus.com/guest/5f32d7e4ac1a1964801753cc36d4c22b/", "registered": false, "linkedin": "", "blog": "http://www.newmodernscience.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "efef813d45c0ae5de836e9a425fa78ce": {"username": "Javonni Brustow - Media Mogul", "tumblr": "", "display_name": "Javonni Brustow - Media Mogul", "url": "http://disqus.com/guest/efef813d45c0ae5de836e9a425fa78ce/", "registered": false, "linkedin": "", "blog": "http://facebook.com/touchmyvonni", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3d0935053057f364356bb126b7ec9795": {"username": "alienmode", "tumblr": "", "display_name": "alienmode", "url": "http://disqus.com/guest/3d0935053057f364356bb126b7ec9795/", "registered": false, "linkedin": "", "blog": "http://alienmode.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "7bb9682ee7ee32ac2c3e100991d48ad5": {"username": "chain", "tumblr": "", "display_name": "chain", "url": "http://disqus.com/guest/7bb9682ee7ee32ac2c3e100991d48ad5/", "registered": false, "linkedin": "", "blog": "http://zinzi.us/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "55056f72081beade24097440c56a91ea": {"username": "sapana gad", "tumblr": "", "display_name": "sapana gad", "url": "http://disqus.com/guest/55056f72081beade24097440c56a91ea/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "a11a3418b66aecc1901d57490c480861": {"username": "Scott", "tumblr": "", "display_name": "Scott", "url": "http://disqus.com/guest/a11a3418b66aecc1901d57490c480861/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "c660216c96c1b958ac35ef565da27573": {"username": "robertaccettura", "tumblr": "", "display_name": "robertaccettura", "url": "http://disqus.com/guest/c660216c96c1b958ac35ef565da27573/", "registered": false, "linkedin": "", "blog": "http://robert.accettura.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/24800/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "9a16ef4381d21345aaca7c0f5e3d9b13": {"username": "Christopher", "tumblr": "", "display_name": "Christopher", "url": "http://disqus.com/guest/9a16ef4381d21345aaca7c0f5e3d9b13/", "registered": false, "linkedin": "", "blog": "http://nonedesign.net/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3db410ba43388fb9bd4df8b80956a838": {"username": "nevali", "tumblr": "", "display_name": "nevali", "url": "http://disqus.com/guest/3db410ba43388fb9bd4df8b80956a838/", "registered": false, "linkedin": "", "blog": "http://nevali.net/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "7c4d1f79da6d413fefdf779f6437aa15": {"username": "catena", "tumblr": "", "display_name": "catena", "url": "http://disqus.com/guest/7c4d1f79da6d413fefdf779f6437aa15/", "registered": false, "linkedin": "", "blog": "http://www.facebook.com/profile.php?id=624241806", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "49e424e73f13f490162b388f4d6c747b": {"username": "Tom", "tumblr": "", "display_name": "Tom", "url": "http://disqus.com/guest/49e424e73f13f490162b388f4d6c747b/", "registered": false, "linkedin": "", "blog": "http://thesmallwave.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "a7f1ef524504b4b0b4d87b49db712728": {"username": "Anatoly", "tumblr": "", "display_name": "Anatoly", "url": "http://disqus.com/guest/a7f1ef524504b4b0b4d87b49db712728/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "eff907afb4db451e023d86570ec23f20": {"username": "NewOrkut", "tumblr": "", "display_name": "NewOrkut", "url": "http://disqus.com/guest/eff907afb4db451e023d86570ec23f20/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "4a1d68105c844924400965164f98104a": {"username": "anon", "tumblr": "", "display_name": "anon", "url": "http://disqus.com/guest/4a1d68105c844924400965164f98104a/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "e13934639ba4209850bd6e37e6d000c3": {"username": "Tim Baxter", "tumblr": "", "display_name": "Tim Baxter", "url": "http://disqus.com/guest/e13934639ba4209850bd6e37e6d000c3/", "registered": false, "linkedin": "", "blog": "http://www.facebook.com/profile.php?id=647949714", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "9da809e590e401fd455c2cd67a308fea": {"username": "Trevor Weir", "tumblr": "", "display_name": "Trevor Weir", "url": "http://disqus.com/guest/9da809e590e401fd455c2cd67a308fea/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "zolierdos": {"username": "zolierdos", "tumblr": "", "display_name": "Zoli Erdos", "url": "http://disqus.com/zolierdos/", "registered": true, "linkedin": "in/zolierdos", "blog": "http://www.zoliblog.com", "remote_domain": null, "points": 4, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/5/4192/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "9c9bbbf2935a01d2c3513b04f95afd29": {"username": "Christian Burns", "tumblr": "", "display_name": "Christian Burns", "url": "http://disqus.com/guest/9c9bbbf2935a01d2c3513b04f95afd29/", "registered": false, "linkedin": "", "blog": "http://christianburns.wordpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/28/2007/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "b11a9a7bee6fc07723be3e8aea636835": {"username": "Alexander van Elsas", "tumblr": "", "display_name": "Alexander van Elsas", "url": "http://disqus.com/guest/b11a9a7bee6fc07723be3e8aea636835/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/6/5510/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "0edcb0e542bc0fd3ac8d76a4d4099784": {"username": "Noah Mittman", "tumblr": "", "display_name": "Noah Mittman", "url": "http://disqus.com/guest/0edcb0e542bc0fd3ac8d76a4d4099784/", "registered": false, "linkedin": "", "blog": "http://www.teradome.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/4416/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "cd3dc8f979c290682a2e717a781453dd": {"username": "Alison", "tumblr": "", "display_name": "Alison", "url": "http://disqus.com/guest/cd3dc8f979c290682a2e717a781453dd/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "4706475ca62d414dbb71825cb565df56": {"username": "sapna", "tumblr": "", "display_name": "sapna", "url": "http://disqus.com/guest/4706475ca62d414dbb71825cb565df56/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}}, "forum": {"use_media": true, "name": "Scobleizer", "streaming_realtime": true, "url": "scobleizer", "allow_anon_post": true, "reactions_enabled": true, "reply_position": 1, "show_avatar": true, "allow_anon_votes": false, "disqus_auth_disabled": false}, "realtime_enabled": true, "request": {"username": "", "is_global_moderator": false, "sharing": {}, "sort": 4, "forum": "scobleizer", "is_initial_load": true, "is_authenticated": false, "timestamp": "2009-12-17_05:33:01", "remote_domain": "", "page": 1, "is_moderator": false, "display_username": "", "points": null, "subscribe_on_post": 2, "moderator_can_edit": false, "is_remote": false, "is_verified": false, "missing_perm": "locked"}, "realtime_paused": false, "posts": {"9692032": {"up_voted": false, "ip": "", "has_replies": false, "message": "Great, my epic comment eaten by akismet.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_00:22:25", "killed": false, "user_key": "fc01b6575368251c1a310ed6ea5d6a03", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692033": {"up_voted": false, "ip": "", "has_replies": false, "message": "Limits are good.<br><br>There are millions of places to be public on the internet and build relationships. Your own blog is one.<br><br>Facebook isn't an address book -- its design is to pipe \"friend\" activity back to you in a very active way. If you're pushing 10,000 contact as you claim some do, I highly doubt those people are seeking pushed information back to them about those 10,000 at the micro level Facebook is designed to facilitate.<br><br>Yes, \"friends\" are not only friends, but they're more than social bookmarks, too. And Facebook is more than just a place to promote yourself and your other blogs.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_11:42:21", "killed": false, "user_key": "0edcb0e542bc0fd3ac8d76a4d4099784", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692034": {"up_voted": false, "ip": "", "has_replies": false, "message": "Note that probably most of these \"people\" who have thousands of contacts on Facebook are spammers who use it to promote all kinds of \"money making\" schemes", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_08:41:34", "killed": false, "user_key": "e423d923d844017b8d2fa4b060126ac0", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692035": {"up_voted": false, "ip": "", "has_replies": false, "message": "I really hope Facebook ignore your whining. You're an edge case, and you know it - albeit a vocal one. You know you have a large soapbox to shout from, so behave responsibly about it. Facebook is a great service for millions of users. And it's a not-so-great service for the (generously) hundreds of users who want to collect thousands of \"friends\" to boost their egos. They'd be fools to listen to you. I hope they reduce the cap to 1000.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_05:42:57", "killed": false, "user_key": "cdac3068640d71453c6531ab56b78c85", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692036": {"up_voted": false, "ip": "", "has_replies": false, "message": "Well, it's also kinda diva-ish.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_06:07:09", "killed": false, "user_key": "fc01b6575368251c1a310ed6ea5d6a03", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692037": {"up_voted": false, "ip": "", "has_replies": false, "message": "Not sure how you're even adding videos, except through a widget.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_03:41:36", "killed": false, "user_key": "558fe51ccaf51ea0c6927750fe64c04e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692038": {"up_voted": false, "ip": "", "has_replies": false, "message": "Sorry, Robert, I have to disagree with you here.<br><br>If my understanding is correct, you add anyone as a friend who has asked you to be their \"friend\" on Facebook.  Meaning... you're willing to add someone whom you've never met, never chatted with, probably never even exchanged an e-mail with.<br><br>If everyone did that on Facebook, the social graph would become meaningless.  Everyone would be \"friends\" with everyone, and thus browsing through friends-of-friends or doing other stuff through (theoretically) trusted network links would end up completely foobar'd.<br><br>So, frankly, I'm glad that Facebook has a 5K friend limit.  Perhaps even 2K would be more reasonable.  As others have noted, I'd rather Facebook spend their time and resources on more interesting, more broadly useful projects and expansions.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_03:43:13", "killed": false, "user_key": "75c7dae24bcd436235dd5ca728cef066", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692039": {"up_voted": false, "ip": "", "has_replies": false, "message": "And since I'm doing multireplies, a business card often isn't even a weak acquaintance - it's a random guy who handed me a business card. Maybe you only accept them from people whom you've had at least pleasurable conversation with, but that would be outside the norm.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_03:45:22", "killed": false, "user_key": "558fe51ccaf51ea0c6927750fe64c04e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692040": {"up_voted": false, "ip": "", "has_replies": false, "message": "It would be interesting to have a social app that limited you to 150 friends and then allowed you to still read and join conversations of all but still mapped out your social graph. So everyone can only follow 150 people but could be followed by as many as follow them. I would like to see that graph.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_02:30:11", "killed": false, "user_key": "9c9bbbf2935a01d2c3513b04f95afd29", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692041": {"up_voted": false, "ip": "", "has_replies": false, "message": "I'm much more concerned about the fact that Facebook decides what I can do with my frends network, than the technical limit of 5000. While the user does all the work building these networks, Facebook puts up this walled garden to ensure they can monetize that. But hey, did I really ask for that? Can't even export my network or my data. This, and nine more wishes for improvements on web 2.0 from a user's perspective are written in my post here:<br><a href=\"http://vanelsas.wordpress.com/2007/10/11/10-ways-to-improve-web-20-and-move-into-an-era-of-true-interaction/\" rel=\"nofollow\">http://vanelsas.wordpress.com/2007/10/11/10-way...</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_02:03:57", "killed": false, "user_key": "b11a9a7bee6fc07723be3e8aea636835", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692042": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert you have a neat way to define \"friend\" but you are wrong about the 5k limit, which is perfectly reasonable.  Obviously this affects you greatly, but you are a very extraordinary social networker and therefore exception to even \"super duper heavy users\".  I'd guess that less than 1 in 1000 FB users will ever have a problem with the 5000 limit.  Scaling the system to meet that need a this time is not a reasonable request for the reasons others mention above.<br><br>Why can't you just get them to allow you two profiles?   This would mean more management for you but it would allow you to fit in all your peeps...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_01:37:24", "killed": false, "user_key": "d8bb4623895a9ba01a125d3d7800bead", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692043": {"up_voted": false, "ip": "", "has_replies": false, "message": "They really need to put the resources into fixing it. Imagine if they wanted to start to take some of MySpace's market in letting say, music artists set up profile pages. I guarantee, some artists would probably hit 5K in a matter of hours. Not to mention all of the other reasons that have been given.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_23:57:21", "killed": false, "user_key": "5f32d7e4ac1a1964801753cc36d4c22b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692044": {"up_voted": false, "ip": "", "has_replies": false, "message": "@24 \"Michael: how can I let everyone see my videos on Facebook? I\u2019d love to know that.\"<br><br>Uhhhhh...doesn't everyone that has access to facebook have access to the internet? Thus, can't they get to your videos via your blog, PodTech, etc?  Why does Facebook have to be the vehicle to serve them up?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_23:57:29", "killed": false, "user_key": "3a913e657d843b22d8c0be49f3759092", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692045": {"up_voted": false, "ip": "", "has_replies": false, "message": "Scoble - get a team together and build a social network for non-real friends with no limits.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_00:37:54", "killed": false, "user_key": "98583d556bf0b5c55f7a62217ceeafcc", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692046": {"up_voted": false, "ip": "", "has_replies": false, "message": "I think the 5000 friend limit is fine. For most, Facebook is meant to be for a network of real friends.<br><br>You're an outlier and I respect that you can voice your opinion, but I'm certain Facebook has their priorities and the guts to forego pleasing those with the loudest voices. Frankly, I don't think this is a pressing issue for Facebook's core audience.<br><br>But of course, you're entitled to complain and gloat about having 5000 friends :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_00:36:17", "killed": false, "user_key": "98583d556bf0b5c55f7a62217ceeafcc", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692047": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, much as I appreciate your work, I have some disagreement with you on this.  First of all, Flickr is not the best example.  To upload more than a certain number of pictures a month you have to pay. This rules it out for quite a few people, or they end up improvising of paying.<br><br>Second, while it is true there could be scaling issues, you develop software for a market, not a customer.  So unless the Facebook market moves towards users with 1000's of contacts, then the limit might not be a bad idea.<br><br>That said, if it is a scaling issue, they need to address it, since markets do change.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_00:25:21", "killed": false, "user_key": "14f89ec6dc2aad3658d47eb45723fbfa", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692048": {"up_voted": false, "ip": "", "has_replies": false, "message": "Now you've made me think about the approaches to what \"friends\" are to different people. I lean toward only adding people I've actually met and known for a bit -- or those I've known and would invite for dinner. But that's just my personal preference and I wholly agree that your approach is certainly valid and probably very useful. Really, you should be able to have 50,000 social network contacts if you wanted to. Although I wonder how many vampires invititions you would receive per day then?<br><br>It seems that FB was willing to open the doors to the rest of us, without fully considering the multitude of uses their new customers might need. Or perhaps they did and weren't able or willing to accomodate it? Maybe this opens the door for ScoBook?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_22:20:22", "killed": false, "user_key": "779d3a268d7451dbb20a90088e77ad27", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692049": {"up_voted": false, "ip": "", "has_replies": false, "message": "Yeah, Robert - Facebook should cater to the minority that wants to have more than 5000 friends.<br><br>In fact, they should make this a bigger priority than anything else they may have on their plate. I recommend you petition your 5000 friends to make a big hue and cry about this.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_22:23:48", "killed": false, "user_key": "a7f1ef524504b4b0b4d87b49db712728", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692050": {"up_voted": false, "ip": "", "has_replies": false, "message": "Deja vu. We had this debate 2-3 years ago on LinkedIn, between those who amassed 5k-7k (in one <a href=\"http://www.zoliblog.com/2006/05/07/why-i-cleaned-house-on-linkedin-when-less-is-more/\" rel=\"nofollow\">famous case</a> 16K) and those who thought your online network  should be as reflection of your real-life one, typically maxing out at a few hundred - the latter appeared to be the majority opinion.<br><br>Now we have a new platform, and here we start again not having learned anything...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_20:46:11", "killed": false, "user_key": "zolierdos", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692051": {"up_voted": false, "ip": "", "has_replies": false, "message": "Are you insane? I couldn't care less how many \"friends\" you have, but you're asking Facebook to support what you and \"thousands\" have when their service has MILLIONS of users. They'd be NUTS to cater to such a tiny percentage of their base no matter how whiney those users become. And, believe me, you're being pretty whiney.<br><br>While they're busy building a site that scales for you and a few thousand others, Google or somebody else will offer a site with added features for the millions of users who will desert Facebook for it. Features Facebook would have had if they weren't wasting their time trying to keep you happy.<br><br>Facebook still hasn't figured out how to make money, but I can guarantee them that wasting resources on such a small fraction of their base in not it. Unless they charged for the \"Facebook Pro\" you want them to build.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_20:06:37", "killed": false, "user_key": "49e424e73f13f490162b388f4d6c747b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692052": {"up_voted": false, "ip": "", "has_replies": false, "message": "Scob- You know it's an engineer problem, c'mon. 5K friends is an edge case. Not many people probably have 5K friends. So if I'm a PM at FB I'm ranking this feature against more highly used or competitive features. Sorry man, it's the price you pay for being popular :)<br><br>Ryan", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_19:24:58", "killed": false, "user_key": "922547c941a9407d246398abe4625444", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692053": {"up_voted": false, "ip": "", "has_replies": false, "message": "You could just setup a <a href=\"http://9rules.com/my/\" rel=\"nofollow\">my.9r account</a> and have everything aggregated to one page to let the world see it. You have to figure though people like you will never be satisfied because if you get a raise in the limit you will reach that and then just go around looking for another raise. The cycle never stops. Honestly nothing really different than just typing on this blog or another one what you are doing.<br><br>- Blog<br>- Twitter/Jaiku<br>- Flickr<br>- YouTube<br><br>And yet we are still wanting Facebook to be the end all solution? Not gonna happen.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_04:18:50", "killed": false, "user_key": "d9b0deca18a6d142534238aa23b76d64", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692054": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert said: \"The hell with the lobby.\"<br><br>If you would take a few moments to unfriend those who disagree with you on a subject you care so passionately about, perhaps you would have room in your friend list for people who better support your positions.<br><br>When you grow past a certain point, it's better to use churn to improve quality.  For example, once I grew to adulthood, I'd rather have a fixed amount of healthy cells, than fast-growing cancer or fat.<br><br>What value are you getting from most of your \"friends\"?  How can you take advantage of a network that large and shallow?  I'll bet that whatever you answer to that is, it's not in Facebook's mission statement.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_18:45:06", "killed": false, "user_key": "7c4d1f79da6d413fefdf779f6437aa15", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692055": {"up_voted": false, "ip": "", "has_replies": false, "message": "I don't think it's practical to build applications to meet every persons needs.  You build towards your target audience.  Your clearly not Facebook's target.<br><br>One could say they should just get rid of the \"Friend\" concept and make it just 1 large community.<br><br>That said, one could *very easily* say Facebook is inept because it won't let me bulk comment on everyone's wall.  One may need this for commercial purposes.  Of course Facebook doesn't want this.  But there are easily hundreds of thousands on Facebook who want to be able to leave \"commercial offers/advertisements\" on everyone's profile page.<br><br>5000 is a pretty nice # because it limits the amount of damage anyone can do.  Even the worst type of social exploits can only go so far to damage their global community.  MySpace didn't have this.  MySpace, Facebook, Flickr constantly wage a war against spammers/child molesters/porn, etc. etc.  Facebook has been able to avoid most of this because everyone is essentially sandboxed.  You can only go so far without having enough friends.  A cap on friends means you still have a limited reach.<br><br>I'd say it's a brilliant design.  The biggest problems that face their competitors are much smaller issues for them.  I'm pretty sure every company would like to be able say that.  Especially in tech, normally your competitors biggest problem is yours.  The winner is the one who can handle it the best and still edge out the others.  Facebook can focus purely on the fight.<br><br>Also rather well done is LinkedIn, they cured the problem by avoiding the true \"social\" aspect instead going for \"business\".  Combined with a \"pro\" or \"paid\" whatever you want to call it model.  That's left them with a fairly beneficial networking model, but their niche targeting hasn't allowed them to bring in as much traffic.<br><br>Nobody has solved the problems thus far as well as Facebook.  Not even Google managed to pull off a community as well.  Orkut's drove Americans away by being spam filled when alternatives were open and spam free.  Now it's mainly for Latin America.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_17:15:35", "killed": false, "user_key": "c660216c96c1b958ac35ef565da27573", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692056": {"up_voted": false, "ip": "", "has_replies": false, "message": "While I love free markets, I don't know if someone else coming along is going to be a solution in this case.  Let's say a new social networking site comes along advertising that they allow an infinite number of friends.  On the face of it, it seems like that would be appealing to people like Robert who want a lot of friends.  However, it's not really going to appeal to his 5,000+ friends, since most of them have much smaller social networks.  The only reason for them to switch to another network is if Robert moves and they like him enough to give up their own networks and follow him.  So a social networking site without Facebook's limitations is only going to appeal to a relatively small number of people (the 'few thousand' that have run up against the limit in Facebook).  If only a small number of people switch, that would really defeats the purpose of moving to a network without limits in the first place.<br><br>IIRC Robert's already said that he's not going to move away from Facebook despite this limitation because it's where all his existing friends are.  The combination of the network lock-in effect and the fact that \"people with more than 5000 online friends\" are such a niche market is probably going to keep a competitor who makes that their selling point from succeeding.<br><br>The only real hope I see here (aside from enough people running up against this barrier to make it worthwhile for Facebook to rearchitect) is for a competing social networking site to arise that has enough improvements and cool features to get lots of people to switch AND just happens to scale for large numbers of friends much better than Facebook does.  The obvious candidate to fill this role is Google.  They have experience creating products that are able to take market share away from established competitors (even in fields with lock-in effects) and they're better than anyone else in the world at building software that's massively scalable.<br><br>I'll just add that while I think that not addressing the 5000 user limit makes sense for Facebook from a business point of view, this is really something they should have seen coming.  Online relationships have long been known to display \"small world\" characteristics, and one of those characteristics is the presence of hubs, individuals with huge numbers of connections.  Even before social networking sites existed, it was quite easy for someone with knowlege of small-world networks to predict that there would be some people would end up with a lot of online friends.  If Facebook had done a little research they could have recognized this from the beginning and built their software to accommodate it much more easily than trying to go back and retrofit it now.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_19:00:51", "killed": false, "user_key": "b6b87721c444078a99633d6ed9352cec", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692057": {"up_voted": false, "ip": "", "has_replies": false, "message": "Okay, Vit retracted his remarks.<br><br>I agree that no site can be all things to all people, but smart companies listen to customer needs.  If Facebook can't or won't increase the 5,000, then somebody else will come along.  That's the beauty of a free market.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_18:23:07", "killed": false, "user_key": "e93b47610372efeb509cff64858d52e3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692058": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"To get to 10 000 you need to 1000 times upgrade your hardware everytime boosting billion times performance.\"<br><br>Okay, I'm not an engineer, but this sounds absurd to me.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_18:17:55", "killed": false, "user_key": "e93b47610372efeb509cff64858d52e3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692059": {"up_voted": false, "ip": "", "has_replies": false, "message": "Michael: how can I let everyone see my videos on Facebook? I'd love to know that.<br><br>I have more than 4,500 business cards collected in face-to-face meetings over the past seven years. Are you saying those aren't \"weak acquaintances?\"", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_17:39:43", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692060": {"up_voted": false, "ip": "", "has_replies": false, "message": "I made an error, it's not so dramatical - the number of connections is just number of users times number of connections. Still taking in account that that it's centralized solution, if everyone would use facebook  to add everyone he knows, this could get quickly very messy...<br><br>sorry", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_16:50:50", "killed": false, "user_key": "e5ee9352def27f8616f685cc5c2a7b60", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692061": {"up_voted": false, "ip": "", "has_replies": false, "message": "Scoble, you prove your own point when you say just because You want to use a product a certain way means it should be designed that way. You are a corner case. No software company builds its products to appeal to corner usage cases.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_16:24:18", "killed": false, "user_key": "2af076e457fa1d42b32481328bd4771f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692062": {"up_voted": false, "ip": "", "has_replies": false, "message": "What I don't understand is how MySpace allows you to have literally millions of friends, yet Facebook is stuck with an engineering problem that limits them to 5000. Could it be that the nearly universally-agreed-upon-as-crappy site is actually a much stronger platform than the poster-child of good social networking? What's going on here?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_16:38:38", "killed": false, "user_key": "55a187e1420f2e2e081d0423d4289866", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692063": {"up_voted": false, "ip": "", "has_replies": false, "message": "Siddharth: I can't be sure, but from the way Robert described it, it seems unlikely to be a problem that can be solved by throwing more hardware at it (if it were, they probably would have done it by now, if just to keep him from complaining about it).  Lack of scalability is generally asoftware architecture problem.  Like most software problems, a fix will probably scale very well for large numbers of customers(if they fix it for one person, there's no additional cost to fix it for everyone) but software economics suck for small numbers of customers (a software problem costs the same amount to fix whether it affects one person or 100,000 people).  Hence the question: are enough people running up against this limit to make it worthwhile for Facebook to rearchitect their software to fix it?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_15:56:39", "killed": false, "user_key": "b6b87721c444078a99633d6ed9352cec", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692064": {"up_voted": false, "ip": "", "has_replies": false, "message": "Whew, I finally know the answer.  Only 5,000 FB friends can dance on the point of a needle!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_13:48:54", "killed": false, "user_key": "f867df58fd2efcb59688e0a183fd2e9d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692065": {"up_voted": false, "ip": "", "has_replies": false, "message": "just because YOU want use a system in a hard-core way doesn\u2019t mean that it should be designed for YOU.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_13:50:49", "killed": false, "user_key": "a11a3418b66aecc1901d57490c480861", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692066": {"up_voted": false, "ip": "", "has_replies": false, "message": "Seems to me that political campaigns would want a *lot* more than 5,000 friends.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_15:40:38", "killed": false, "user_key": "blogan", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692067": {"up_voted": false, "ip": "", "has_replies": false, "message": "All of this points to the wider (but unnoticed by many) problem with a lot of social networks: they aim to supplant third-party services which are often far BETTER than the ones they provide. Is Flickr as an all-round photo sharing service better than Facebook's photo sharing? Absolutely! It's what it's FOR, after all.<br><br>Social networks are eventually going to have to stop trying to provide every service under the sun as their own and form partnerships and perform good integration jobs instead. Facebook's apps are a big step in this direction: I don't actually touch Facebook's photo sharing unless I'm looking at somebody else's pictures, and just publish all of mine via Flickr (and I use one of the several Flickr-Facebook apps so that people browsing to my profile know that they're there). It works, but it doesn't work THAT well because the integration is limited. Facebook (in this example) is in no position to dictate that I must share all of my photos through it and not the service I already have and pay for, and so IT (rather than me) should be doing the hoop-jumping to make the integration work seamlessly. The same applies to YouTube, Upcoming, del.icio.us, Twitter, and so forth.<br><br>Ultimately, I can't help but wonder if eventually social networks as they stand will die off, replaced with people and their blogs/homepages with something like an OpenID-based service for access control (public/friends/family access lists) and embedded metadata (e.g., FOAF) to actually describe the \u201cnetwork\u201d. The existing networks, of course, could participate in this, but they don't because they either don't see the value, or they see it as a threat (which it is, really). I suspect it may well be where the future lies, though.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_13:08:47", "killed": false, "user_key": "3db410ba43388fb9bd4df8b80956a838", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692068": {"up_voted": false, "ip": "", "has_replies": false, "message": "Now this is some discussion!<br><br>While it may *not* be as simple a calculation about hardware as Vit Fargas has mentioned, there is still a flaw in the argument. It is utilization of available space. Now, it's not that everyone who *can* add 10,000 friends *will*. Infact, most users will not cross that limit even if they were to start friend-spamming (if there was such a term) others. Recently Gmail upped their storage space counters and increased it's speed. Does not mean it WILL be maxed out by each user. Infact most would use it for less than 10% space (I get more than 300 mails daily and I am still at 6%).<br><br>Hence, I guess facebook could do away with the limits. Especially for critics that are as vocal, visible and followed as Robert.<br><br>Cheers!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_14:54:44", "killed": false, "user_key": "6ae2eaad1174c218ddca689b5cd0a8f6", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692069": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, if it's an engineering problem then does that mean it's insurmountable or that they CAN fix it, but WON'T???<br><br>I mean, is Facebook the pig who wished they had used bricks instead of straw but now it's too late unless they start over, or are they the pig who did build a brick house on a strong foundation but they're choosing not to make it any taller??", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_14:09:14", "killed": false, "user_key": "e93b47610372efeb509cff64858d52e3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692070": {"up_voted": false, "ip": "", "has_replies": false, "message": "First time my profile was deleted,which was sometime last year, it was because of too many friend request.<br><br>Recently, it has been deleted due to sending/recieving too many messages.<br><br>Unfortunately, neither of which has been reinstated.<br><br>Should I just create a new page and start all over again? Or fight to have my profiles operative once again?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-01-29_15:16:55", "killed": false, "user_key": "04e92754cc8f2e396a14fde356c4c25b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692071": {"up_voted": false, "ip": "", "has_replies": false, "message": "owen is a great book", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-29_19:58:55", "killed": false, "user_key": "4706475ca62d414dbb71825cb565df56", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692072": {"up_voted": false, "ip": "", "has_replies": false, "message": "because it is about friendship", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-29_19:59:19", "killed": false, "user_key": "4706475ca62d414dbb71825cb565df56", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692073": {"up_voted": false, "ip": "", "has_replies": false, "message": "owen &amp; mzee is great it is about friendship I dont like dont need friens because the rat is mean", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-30_11:51:25", "killed": false, "user_key": "4706475ca62d414dbb71825cb565df56", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692074": {"up_voted": false, "ip": "", "has_replies": false, "message": "hi IYes, \u201cfriends\u201d are not only friends, but they\u2019re more than social bookmarks, too. And Facebook is more than just a place to promote yourself and your other blogs[\u2026] I saw Robert Scoble post about Facebook ad noseum.  I think he has to get a commission or something from Facebook or maybe he got a finder\u2019s fee for Microsoft\u2019s recent investment, which probably made him very happy.  I tried to add him as a friend but I got a notice saying he has too many friends [\u2026]<br>[\u2026] recently read a post on Scobleizer ranting about Facebook\u2019s 5,000 friends limit and it had the following quote: First, a [\u2026]<br><br>Pingback by <a href=\"http://FacebookTalk.com\" rel=\"nofollow\">FacebookTalk.com</a> - Facebook Hacks, Tricks, Tips, ASCII, and Apps - All in one blog! \u2014 October 15, 2007 @ 2:27 pm<br><br>[\u2026] constantly harping on Facebook for not giving you the ability to add more than 5,000 friends. Every day, you\u2019ve got at least one post complaining about Facebook capping your friend limit. [\u2026]<br><br>Pingback by Dear Robert Scoble \u00ab the j. botter weblog \u2014 October 15, 2007 @ 2:58 pm<br><br>[\u2026] everything above) famously hit Facebook\u2019s 5000 friend limit and has recently revealed that he is not alone in this milestone, that thousands have hit the limit (now, can you see why Facebook is worth $15 [\u2026]<br><br>Pingback by Life &amp; Scalability \u2014 October 15, 2007 @ 6<br><br>Pingback by entrepreMusings \u00bb Why I Finally", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-30_11:48:38", "killed": false, "user_key": "4706475ca62d414dbb71825cb565df56", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692075": {"up_voted": false, "ip": "", "has_replies": false, "message": "wilt chamberlain slept with over 20,000 women. if he wanted to use facebook to keep track of his friends, he would have been screwed (literally)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-12-19_01:21:21", "killed": false, "user_key": "4a1d68105c844924400965164f98104a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692076": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have almost 1,700 friends already and have a dozen groups with about 20,000 more friends ( not all unique )<br><br>Scoble is not alone here, I have a dozen group creators and other **friends** whom are nearly at 3500 friends.<br><br>The fact that Scoble has/had 5000 and was one of about a thousand users at the limit, doesn't mean that there aren't 20-50,000 of us clawing up the same ladder at our own pace.<br><br>I stopped personally adding friends that I didn't know directly in life, when I had about 260, since then people have added me for their own myriad reasons.<br><br>I expect my 1700 to grow to about 3-4,000 in a few months.<br><br>The more profound and interesting things you write, is the more likely that certain types/groups of people will be attracted to your way of thinking and simply add you as a friend.<br><br>If 10-15,000 people think they would like to add me as a friend, why shouldn't they be allowed to do so?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-05-14_11:52:05", "killed": false, "user_key": "9da809e590e401fd455c2cd67a308fea", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692077": {"up_voted": false, "ip": "", "has_replies": false, "message": "the point about facebook being a competitor for flickr and youtube is right on", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-11-05_19:03:36", "killed": false, "user_key": "3d0935053057f364356bb126b7ec9795", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692078": {"up_voted": false, "ip": "", "has_replies": false, "message": "i have also noticed facebook slowing down when i hit 3000 friends, its so slow its near impossible to invite people to an event", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-14_20:04:55", "killed": false, "user_key": "76949787aa4faa38e120a72535a3b304", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692079": {"up_voted": false, "ip": "", "has_replies": false, "message": "Late to commenting on this Robert, but I came across this post of your while looking for information on this subject ( as usual).  Turns out that some of the celebrities we have worked with on Rabbit Bites are unable to \"friend\" anyone. Most of them get too many requests and the accounts lock up. It's dumb.<br><br>Buzz is awesome btw and we'll be doing a post soon about Activewords. Activewords blows away it's competition in many ways.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-04_20:04:45", "killed": false, "user_key": "135e0fb484b66257dec3319ce2e04ce6", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692080": {"up_voted": false, "ip": "", "has_replies": false, "message": "Nicholas, have already you tride the freeware PhraseExpress?<br><br><a href=\"http://www.phraseexpress.com\" rel=\"nofollow\">http://www.phraseexpress.com</a><br><br><br>&gt; blows away it\u2019s competition in many ways.<br><br>I would wonder how it is better than above util.<br><br>Jeffrey", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-05_02:28:49", "killed": false, "user_key": "a4b277e1312826352c52c9d70764e745", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692081": {"up_voted": false, "ip": "", "has_replies": false, "message": "actually website such facebook and flickr which has implemented web 2.0 hierarchy int their scripting are well more easy to use and attract for new user in the social network service (sns)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-02-11_07:22:07", "killed": false, "user_key": "8f2b12ce6ecc29926b166e5587d34c74", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "10 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692082": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ahh mac d, so you're the one doing all the inviting, ha ha, just kidding.<br>Haven't been here in a while, but I am just a few hundred short of 5,000 myself and the big disadvantage is that many facebook applications that are using the sample facebook php code won't let me in to interact or play.<br><br>Its because I have to many friends, and when the php code that facebook gave everyone to use, goes out to my friends list, the size of the list causes the arrays to bomb hence very few applications allow me to play.<br><br>Facebook themselves must have seen this and fixed it in a few areas, but the faulty array code is still sitting in the sample code that they gave everyone else to use.<br><br>I have seen the code and seen it throw errors on apache/php irrespective of how much memory you reasonably give each php processes.<br><br>So, currently and for the past 10 months or more, there are technical limitations when one starts to approach even 4000 friends.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-29_13:52:28", "killed": false, "user_key": "9da809e590e401fd455c2cd67a308fea", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "11 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692083": {"up_voted": false, "ip": "", "has_replies": false, "message": "how can i solve the proplem of this message :  You are blocked from adding friends due to continued misuse of this feature.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-02-05_16:10:49", "killed": false, "user_key": "bcd14c6ebcfbc60ead90c0223cfa361e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "10 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692084": {"up_voted": false, "ip": "", "has_replies": false, "message": "Facebook was never supposed to be used as a business tool.  You compare it to the phonebook and business cards which is ignorant.  Facebook started out as an easy way for students to keep in contact with one another.  It was never meant to be abused for spamming or as a way to stroke anyone's GIANT ego by seeing if one could con 5000 (mostly total strangers) to add to your \"friend\" list.  As for me, I would NEVER request to be added to a person's friend list if I didn't have some sort of connection to that person.  Sorry Ms. 5000 but you don't get any sympathy from me.  Sounds like you need another hobby!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-01-28_13:56:21", "killed": false, "user_key": "cd3dc8f979c290682a2e717a781453dd", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "10 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "11932940": {"up_voted": false, "ip": "", "has_replies": false, "message": "lol \"the hell with the lobby\" ha! I like your style of writing man! It's pretty dumb..this limit because I;m networking heavy as I'm restarting my career as an entertainment writer after a 3 yr break. Things have  changed a lot in those few years and now I see networking limits? The hell?! What gives!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-06-30_09:58:06", "killed": false, "user_key": "efef813d45c0ae5de836e9a425fa78ce", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "5 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692005": {"up_voted": false, "ip": "", "has_replies": false, "message": "is this about nonfiction or dont need friends book please tell me that or I 'll find out please thank you I like this book is it fiction i hate fiction I like non fiction dont give me books are fiction thank you my name is sapana  I will save this page thank you for me conct me please and thank you I have a book that is owen &amp;mzee i'm doing a project about at home today is tued=sday 27 2007 please contct me  i will come tommorww too see you at tommorw wednesday 28 thank you contact me sapana bye see you later sapanaa <a href=\"mailto:fadg334@hotmail.com\" rel=\"nofollow\">fadg334@hotmail.com</a> bye sappana", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-27_21:09:11", "killed": false, "user_key": "4706475ca62d414dbb71825cb565df56", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692006": {"up_voted": false, "ip": "", "has_replies": false, "message": "facebok talking isvery fun thank you", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-27_21:12:41", "killed": false, "user_key": "4706475ca62d414dbb71825cb565df56", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692007": {"up_voted": false, "ip": "", "has_replies": false, "message": "hi", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-27_21:14:12", "killed": false, "user_key": "4706475ca62d414dbb71825cb565df56", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692008": {"up_voted": false, "ip": "", "has_replies": false, "message": "i was talking about owen &amp; mzee<br>thank you by joe<br>today is my friend's birthday 67<br>bn facebook<br>everything girl<br><a href=\"http://facebook.com\" rel=\"nofollow\">facebook.com</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-27_21:15:47", "killed": false, "user_key": "4706475ca62d414dbb71825cb565df56", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692009": {"up_voted": false, "ip": "", "has_replies": false, "message": "is this about don't need friend or something else", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-27_20:59:24", "killed": false, "user_key": "55056f72081beade24097440c56a91ea", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692010": {"up_voted": false, "ip": "", "has_replies": false, "message": "I believe the 5000-\"friend\" limit is a good thing - for the reason that it DOES limit people like Scoble.<br><br>It really IS supposed to be for friends - or at least weak acquaintances whom you've at least vetted in some real way - and not a public (or worse, commercial) broadcast medium.<br><br>If the site were wide open to those who \"befriend\" anyone because they believe popularity is what's important it would quickly break down. In fact, MySpace is becoming a case in point. It's now a commercial medium, driving the individuals to...Facebook.<br><br>So Facebook, having learned that lesson, sacrifices the few Scobles to protect the many, um, Michaels. I like that. Don't potentially mess me over so that Scoble can use the site to broadcast.<br><br>One final thing - since when did people HAVE to be your friends to see your photos? And even if they did, isn't it insanely inefficient to have to \"befriend\" them by the thousands?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_17:31:57", "killed": false, "user_key": "558fe51ccaf51ea0c6927750fe64c04e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692011": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"Fifth, just because YOU don\u2019t use a system in a hard-core way doesn\u2019t mean that it should be designed for YOU.\"<br><br>Just because you're a hard-core user doesn't mean the system should be designed for you either.  In fact, since you're almost certainly an extreme case, it probably shouldn't be designed for you.  A system should be designed in a way that is going to best serve its users and make its owners the most money.  If Facebook puts their resources (money, hardware, developer time) into improved scaling, so you and a few others can put more than 5000 people on their contact list, they won't be putting those resources into something else that would benefit more of their customer base.  Fixing the 5000 friend limit only really makes sense if there are more than a few people who are bumping up against it (and a lot more people who can't be friends with a 'whale' because of the limit).<br><br>Now, because you've got a big audience and are quite vocal about this issue, they may want to do it just so you'll stop complaining about it.  However, I still think their users would be better off if they put their resources into improvements that would benefit a broader cross section of their users.  A service that tries to be all things to all people isn't going to be very good at any of them.  It's hard, but sometimes a business just has to say to a customer, \"I'm sorry, the product we're making isn't the product you want to buy.  We're focused on a different market.\"  I think that may be the case with you and Facebook.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_13:59:32", "killed": false, "user_key": "b6b87721c444078a99633d6ed9352cec", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692012": {"up_voted": false, "ip": "", "has_replies": false, "message": "I know you've interviewed the Facebook folks before, somehow I always thought you could just, well, \"ask\" them to increase your limit. But, then again, I also assumed you were the only one to ever reach it, which, as you point out, isn't the case. I guess the answer, like the answer to Twitter's \"upgrading\", is for these services to get bought by someone big, evil, and competent (like, uh, Microsoft).", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_13:12:02", "killed": false, "user_key": "1453239087125522a1c55ea6f9e1e733", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692013": {"up_voted": false, "ip": "", "has_replies": false, "message": "Actually flickr did cap the number of contacts earlier this year.  I forget if it was 2000 or 3000.<br><br>  The reason was to try and prevent contact spam.  You get that on twitter now too with people (or some cases websites) following thousands of people hoping some of them will follow them back out of politeness).<br><br>A lot of people complained and they took the suggestion of one member to make the limit 3000 non-reciprocal contacts.<br><br> But I do agree that Facebook needs to raise the limit (even though I only currently have 132 friends) &amp; realize (like almost every internet site) people are using it for different purposes than they ever imagined.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_13:12:34", "killed": false, "user_key": "c087cf8794ad2cdcd25eee8ebf2d4f79", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692014": {"up_voted": false, "ip": "", "has_replies": false, "message": "Seth: I've always asked about that off camera. They admit it's an engineering problem. They call people who reach the limit \"whales,\" by the way.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_13:15:30", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692015": {"up_voted": false, "ip": "", "has_replies": false, "message": "Also, couldn't you just start a \"Scoble University\" Network, so those of us in your queue could at-least access your page?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_13:15:48", "killed": false, "user_key": "1453239087125522a1c55ea6f9e1e733", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692016": {"up_voted": false, "ip": "", "has_replies": false, "message": "Steve: yeah, but Flickr lets me share my stuff with a public audience. I have 600 people who want to see my stuff that I can't show it to them.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_13:16:22", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692017": {"up_voted": false, "ip": "", "has_replies": false, "message": "Some reality check for Scoble: imagine 1000 people who are connected to 5000 other people. How more efficient hardware you need to make 1000 people connect to 10 000 people?<br><br>Well math is simple.. number of connections are in first case 1000 ^ 5000 which is 1 followed by 15 000 zeros (million is 1 followed by 6 zeros, billion 1 followed by 9 zeros... to get an idea...). In second case its 1000 ^ 10 000 what is 1 followed by 30 000 zeros). So if your system runs fine with 5000 connection and you get billion times better hardware, you can make how many connection? Well 5009. Yes that's right. And not 10 000. To get to 10 000 you need to 1000 times upgrade your hardware everytime boosting billion times performance.<br><br>The problem is simply not scalable. Surely not with centered architecture. Yeah, if you want it scalable write down distributed architecture, where everyone is running server on own computer and your computer  will make 10000 connections to your friends... I'm not sure if your comp or ISP could handle it, but problem would be scalable. To get 20000 connection you would need only 2x better internet connection or hardware...<br><br>I hope facebook developers aren't so shortsighted and know why are limits and won't give in.  Because milions of people with hundreds contact will suffer because of few hundred with thousand of them.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_14:13:47", "killed": false, "user_key": "e5ee9352def27f8616f685cc5c2a7b60", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692018": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hey Rob, if google realy wants to eat facebook's part of the cake, they should hire you right now to promote their new social arena next november 5th.<br><br>Google, you reading?<br><br>Both win big.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_14:22:53", "killed": false, "user_key": "eff907afb4db451e023d86570ec23f20", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692019": {"up_voted": false, "ip": "", "has_replies": false, "message": "Chris - well said. I'm glad I wasn't the only who saw the hilarious irony there.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_14:19:58", "killed": false, "user_key": "67b21f836daa38508848dfc00e850848", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692020": {"up_voted": false, "ip": "", "has_replies": false, "message": "Nevali: that's why a service which integrates other services, rather than trying to reinvent the wheel, will ultimately win out. And, I suspect, that service will be based around RSS coupled with a strong address book component.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_13:23:43", "killed": false, "user_key": "000801987fb3dd4d9b92db484c455ba0", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692021": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert - watch out, one of these days I'll add you as a friend on Facebook and come visit your home town :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-14_15:37:43", "killed": false, "user_key": "1a33e7a69df4f675fcd799edca088ac2", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692022": {"up_voted": false, "ip": "", "has_replies": false, "message": "They should allow you to have as many friends as you like. But doesn't there have to limit.I mean how many friends can you have before Facebook crashes. I sorta wonder what happens when you get more than a million friends. Which probably would not be out of the question for the popular folks. Whats the \"Physical limit\"?..Is there one?.And at some point you would have to think about managing that many friends. I mean say u  messaged them all. You know ppl would abuse the hell outta that.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_04:06:17", "killed": false, "user_key": "7bb9682ee7ee32ac2c3e100991d48ad5", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692023": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert:<br><br>Click Photos on your profile; create photo album; set it to be visible to everyone.<br><br>Presto.<br><br>I can't believe you couldn't find that.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_03:40:09", "killed": false, "user_key": "558fe51ccaf51ea0c6927750fe64c04e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692024": {"up_voted": false, "ip": "", "has_replies": false, "message": "h imy brother want's to talk<br>hello my bro is shy", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-12-02_22:43:51", "killed": false, "user_key": "4706475ca62d414dbb71825cb565df56", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692025": {"up_voted": false, "ip": "", "has_replies": false, "message": "I don't know why people get so hung up over this. If you want 5000 friends, so what? If you want to 'keep it real' with people you really know, then that's fine too.<br><br>Personally I'm looking for Whale status so I can make new friends that I wouldn't have the opportunity to do without the web, so friend me now!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-02-08_05:30:10", "killed": false, "user_key": "e13934639ba4209850bd6e37e6d000c3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692026": {"up_voted": false, "ip": "", "has_replies": false, "message": "The main problem is that we're trying to manage our contacts lists *online*  None of these services require us to be using a client/server model via webpages.  Last I checked, I had plenty of of CPU capability to handle much more than 5000 contacts.<br><br>The other side effect of this phenomenon is the outright extravertedly public way it all happens.  My friends are none of your business, even if you are my friend.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-18_12:19:30", "killed": false, "user_key": "9125c68fb14043f2b82ce5f1b43a4145", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692027": {"up_voted": false, "ip": "", "has_replies": false, "message": "hi IYes, \u201cfriends\u201d are not only friends, but they\u2019re more than social bookmarks, too. And Facebook is more than just a place to promote yourself and your other blogs[\u2026] I saw Robert Scoble post about Facebook ad noseum. I think he has to get a commission or something from Facebook or maybe he got a finder\u2019s fee for Microsoft\u2019s recent investment, which probably made him very happy. I tried to add him as a friend but I got a notice saying he has too many friends [\u2026]<br>[\u2026] recently read a post on Scobleizer ranting about Facebook\u2019s 5,000 friends limit and it had the following quote: First, a [\u2026]<br><br>im the folling one lol loohflgkg<br>gjopjoj wrong time it is 5;46 pm caall me later loser lololollll please talk to me lol 5;47 lol kk bye i hate my bro kkkkkklklkklllkllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-12-01_17:47:44", "killed": false, "user_key": "4706475ca62d414dbb71825cb565df56", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692028": {"up_voted": false, "ip": "", "has_replies": false, "message": "The Hell with the lobby Man!! I want to be your friend in Facebook (Javier Duro).", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-16_06:13:41", "killed": false, "user_key": "bb805a58cedc505fc63190ec9f1f59b2", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692029": {"up_voted": false, "ip": "", "has_replies": false, "message": "n/a my favourite book is n/a chirsamas my faourite seson is summer", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-29_20:09:34", "killed": false, "user_key": "4706475ca62d414dbb71825cb565df56", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692030": {"up_voted": false, "ip": "", "has_replies": false, "message": "owen and mzee is a great book", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-30_11:18:37", "killed": false, "user_key": "4706475ca62d414dbb71825cb565df56", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9692031": {"up_voted": false, "ip": "", "has_replies": false, "message": "One of the reasons I DON'T use MySpace is the fact that it's a repository for these huge marketing pushes. I want something that is smaller and more personal. That connects me with just the people that I have in my network and isn't inundated with spam. I have stuck with Friendster for so long because my network has remained small -- although I was getting too much spammy friend contacts there for awhile.<br><br>And anyone that collects 5,000 business cards at a face-to-face meeting either isn't remembering your face. Or isn't someone that I want to know or do business with. Who actually likes a networker. Networker=tool.<br><br>Social groups are meant to be small. It's not a contest to see how many contacts you can amass. It's actually quite the opposite. It's about quality over quantity.<br><br>At least it is with me. I want to know that when I'm making contact with someone that I'm one of a handful. Not one of thousands. I value the contact more and I value the implied judgement of worthiness that comes with it.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-15_10:12:51", "killed": false, "user_key": "9a16ef4381d21345aaca7c0f5e3d9b13", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}}, "integration": {"receiver_url": "", "theme": 4, "reply_position": true, "disqus_logo": false}, "timer": {"timer_url": "http://localhost:8005", "thread_id": "18349583", "user_id": "anonymous", "forum_id": "125200", "hash": -4312493378369839710}, "thread": {"total_posts": 0, "paginate": false, "per_page": 0, "slug": "the_you_don8217t_need_more_friends_lobby", "num_pages": 1, "days_alive": 0, "realtime_paused": true, "id": 18349583, "num_posts": 81, "closed": true, "queued": false, "killed": false}, "reactions_limit": 10, "context": {"show_reply": false, "use_fb_connect": true, "forum_facebook_key": "faaf467d0f47abde553c3b8e0e1b3570", "use_yahoo": false, "subscribed": false, "use_twitter_signin": true, "use_openid": false, "realtime_speed": 5000}, "reactions_start": 0, "settings": {"debug": false, "disqus_url": "http://disqus.com", "media_url": "http://media.disqus.com"}, "media_url": "http://media.disqus.com"};
	/* */ this.jsonData.cookie_messages = {"user_created": null, "post_has_profile": null, "post_twitter": null, "post_not_approved": null}; this.jsonData.session = {"url": null, "name": null, "email": null}; /* */

	
	this.curPageId = 'dsq-comments';

	this.frames = {};
};

var disqus_popup_reference = null;

if(typeof DsqLocal == 'undefined') {
	DsqLocal = {};
}



/**
 * Dsq.Strings: UI strings
 */
Dsq.Strings = new function() {
	this.ADD_NEW_COMMENT = "Add New Comment";
	this.LOG_INTO_DISQUS = "Log into DISQUS";
	this.USE_MEDIA = "Use Media";
	this.LOGOUT = "Logout";
	this.SHARING_OPTIONS = "Sharing options";
	this.SHARE_ON = "Share on";
	this.TWEET_THIS_COMMENT = "Tweet this comment";
	this.SHARE_ON_NEWSFEED = "Share on news feed";
	this.SEND_UPDATE_TO_YAHOO = "Send update to Yahoo!";
	this.REBLOG_ON = "Reblog on";
	this.CONFIGURE_OPTIONS = "Configure options";
	this.POST_AS = "Post as";
	this.SORT_BY = "Sort by";
	this.SUBSCRIBE_BY_EMAIL = "Subscribe by email";
	this.SUBSCRIBE_BY_RSS = "Subscribe by RSS";
	this.POPULAR_NOW = "Popular now";
	this.BEST_RATING = "Best Rating";
	this.NEWEST_FIRST = "Newest first";
	this.OLDEST_FIRST = "Oldest first";
	this.HIGHLIGHTED = "Highlighted";
	this.UNSUBSCRIBE = "Unsubscribe";
	this.REQUIRED = "Required";
	this.OPTIONAL = "Optional";
	this.YOU_ARE_COMMENTING_AS_A = "You are commenting as a";
	this.LOGIN_BELOW = "Login below";
	this.PLEASE_LOGIN_BELOW_TO_COMMENT = "Please login below to comment.";
	this.SUBSCRIBE_TO_ALL_COMMENTS_BY_EMAIL = "Subscribe to all comments by email";
	this.DO_NOT_SUBSCRIBE_TO_COMMENTS = "Do not subscribe to comments";
	this.REALTIME_UPDATING_IS = "Real-time updating is";
	this.ENABLED = "enabled";
	this.PAUSED = "paused";
	this.PAUSE = "Pause";
	this.RESUME = "Resume";
	this.SHOW = "Show";
	this.JUST_NOW = "Just now";
	this.REPLY = "Reply";
	this.EDIT = "Edit";
	this.FLAG = "Flag";
	this.MODERATE = "Moderate";
	this.CANCEL = "Cancel";
	this.REPLYING_TO = "Replying to";
	this.REPORT_MISSING_REACTIONS = "Report missing reactions";
	this.POST_A_COMMENT = "Post a comment";
	this.FLAG_INAPPROPRIATE_COMMENT = "Flag inappropriate comment";
	this.FLAGGED = "Flagged";
	this.NO = "No";
	this.YES = "Yes";
	this.NEVER_MIND = "Never mind";
	this.ARE_YOU_SURE_YOU_WOULD_LIKE_TO_REPORT_THIS_COMMENT_TO_A_MODERATOR = "Are you sure you would like to report this comment to a moderator";
	this.THIS_WILL_FLAG_COMMENTS_FOR_MODERATORS_TO_TAKE_ACTION = "This will flag comments for moderators to take action";
	this.TO_RATE_PLEASE_LOG_IN = "To rate, please log in";
	this.JUST_A_MOMENT = "Just a moment...";
	this.GUEST = "Guest";
	this.NAME = "Name";
	this.EMAIL = "Email";
  this.WEBSITE = "Website";
  this.SETTINGS = "Settings";
  this.MODERATOR_OPTIONS = "Moderator options: ";
  this.MODERATE_OPTIONS = "Moderate Options";

  // Thread moderator actions
  this.CLOSE_THREAD = "Close thread";
  this.OPEN_THREAD = "Open thread";
  this.REMOVE_THREAD = "Remove thread";
  this.RESTORE_THREAD = "Restore thread";
  this.ACTIONS = "Actions";
};
// Dsq.Strings

/**
 * Dsq.FmtStrings: functions that return interpolated UI strings
 */
Dsq.FmtStrings = new function() {
	// Seems we have to use named interpolation for Django to translate. Investigate more.
	this.LOGGED_IN_AS = function(username) {
		return Dsq.Utils.interpolate('Logged in as %(username)s', {username:username});
	};

	this.LOGOUT_FROM = function(disqus) {
		return Dsq.Utils.interpolate('Logout from %(disqus)s', {disqus:disqus});
	};

	this.SHOWING_COMMENTS_FULL = function(total, num) {
		if (num === 1) {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> of <span id='dsq-total-posts'>%(total)s</span> comment", {num:num, total:total});
		} else {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> of <span id='dsq-total-posts'>%(total)s</span> comments", {num:num, total:total});
		}
	};

	this.SHOWING_COMMENTS_WITHOUT_PAGINATION = function(num) {
		if (num === 1) {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> comment", {num:num});
		} else {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> comments", {num:num});
		}
	};

	this.NUMBER_OF_COMMENTS = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s comment'
				: '%(num)s comments'
			), {num:num});
	};

	this.NUMBER_OF_LIKES = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s like'
				: '%(num)s likes'
			), {num:num});
	};

	this.NUMBER_OF_POINTS = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s point'
				: '%(num)s points'
			), {num:num});
	};
};
// Dsq.FmtStrings





Dsq.CSRF_TOKEN = 'a2d140c59df8cd4ce27a20e0829cacd8';
Dsq.COMMENTS_RE = /(<li.*?id="?dsq-comment-(\d+)"?.*?>)((?:.|\s)*?)(<\/li>)/gim;
Dsq.POST_RE = /(<div.*?id="?dsq-comment-header-(\d+)"?.*?>)((?:.|\s)*?)(<\/div>)\s*(<div.*?class="?dsq-comment-body"?.*?>)((?:.|\s)*)(<\/div>)/gim;
Dsq.POST_BODY_RE = /\s*(<div.*?id="?dsq-comment-message-(\d+)"?.*?>)((?:.|\s)*)(<\/div>)/gim;
// HACK: Safari ends with "-->" while other browsers end with "--&gt;" as expected.
Dsq.MEDIA_POST_RE = /&lt;!--\[(.*?)\]--(?:>|&gt;)/gim;



var FragmentPacket = function(reader, writer, writer_url, is_child, receiveCallback) {
	var that = this;
	this.reader = reader;
	this.writer = writer;
	this.writer_url = writer_url;

	this.is_child = is_child || false;
	this.receiveCallback = receiveCallback;

	this._lastHash = null;

	this._accumMsg = '';

	this._lastSeqno = 0;

	this.MAX_DATA_LEN	= 1024;

	this.WAIT_TIME		= 10;

	this.READY		= 0x1;
	this.WRITING	= 0x2;
	this.FIN		= 0x4;
	this.ACK		= 0x8;

};

FragmentPacket.prototype.createListener = function() {
	var that = this;
	var listener = function() {
		that.recv();
	};
	return window.setInterval(listener, 10);
};

FragmentPacket.prototype.log = function(msg) {



};

FragmentPacket.prototype.recv = function() {
	var hash;
	if (/MSIE/.test(navigator.userAgent)) {

		hash = this.reader.name;
	} else {

		var hashIndex = this.reader.location.href.indexOf('#');
		if (hashIndex == -1) {
			return;
		}
		hash = this.reader.location.href.substring(hashIndex+1);
	}
	var flags = parseInt(hash.substring(0, 4), 10);
	var seqno = parseInt(hash.substring(4, 24), 10);
	var data  = hash.substring(24);

	if (this._lastHash !== hash) {
		this._lastHash = hash;
		this.log('recv: ' + hash);

		this.log(' flags: ' + flags);
		this.log(' seqno: ' + seqno + ' len: ' + hash.substring(4, 24).length + ' (' + hash.substring(4, 24) + ')');
		this.log(' data: ' + data + ' len: ' + data.length);

		this._lastSeqno = seqno;

		if (flags & this.WRITING) {
			this._accumMsg += data;
			this.sendFlag(this.ACK, seqno);
			if (flags & this.FIN) {
				this.log('recv finished: ' + decodeURIComponent(this._accumMsg));
				this.receiveCallback(decodeURIComponent(this._accumMsg));

				this._accumMsg = '';

				this.sendFlag(this.READY | this.ACK, this._lastSeqno);
			}
		}
	}

	return {
		flags: flags,
		seqno: seqno,
		data: data
	};
};

FragmentPacket.prototype.sendRawPacket = function(packet) {
	if (/MSIE/.test(navigator.userAgent)) {
		this.writer.name = packet;
	} else {

		this.writer.location.href = this.writer_url + '#' + packet;
	}

};

FragmentPacket.prototype.sendFlag = function(flag, seqno) {
	this.sendRawPacket(this._zerofill(flag, 4) + this._zerofill(seqno, 20));
};

FragmentPacket.prototype.send = function(msg) {
	this._send(0, encodeURIComponent(msg));
};

FragmentPacket.prototype._send = function(packetNum, msg) {
	var that = this;
	var recvBuf = this.recv();

	if (packetNum === 0) {

		if (!(recvBuf.flags & this.READY)) {
			this.log('client is not ready, waiting...');
			window.setTimeout(function() { that._send(packetNum, msg); }, this.WAIT_TIME);
			return;
		}
	} else {

		if (!( (recvBuf.flags & this.ACK) && (recvBuf.seqno === this._lastSeqno) )) {
			this.log('waiting for ack from client...');
			window.setTimeout(function() { that._send(packetNum, msg); }, this.WAIT_TIME);
			return;
		} else {
			this.log('received ack: ' + this._lastSeqno + ' ' + recvBuf.seqno);
		}
	}

	var flags = this.WRITING;
	var num_packets = Math.ceil(msg.length / this.MAX_DATA_LEN);
	this.log('num_packets: ' + num_packets);

	if (num_packets === packetNum) {

		this.log('message successfully sent!');
		this.sendFlag(this.READY | this.ACK, this._lastSeqno);
		return true;
	}

	this._lastSeqno++;

	if (packetNum == num_packets-1) {
		flags |= this.FIN;
	}

	var data = msg.substring(packetNum * this.MAX_DATA_LEN, (packetNum+1) * this.MAX_DATA_LEN);
	var packet = this._zerofill(flags, 4) + this._zerofill(this._lastSeqno, 20) + data;

	this.log('sending raw packet: ' + packet);
	this.sendRawPacket(packet);

	return this._send(packetNum + 1, msg);
};

FragmentPacket.prototype._zerofill = function(num, width) {
	var retval = num.toString();
	var retval_len = retval.length;
	for (var i = 0; i < width - retval_len; i++) {
		retval = '0' + retval;
	}
	return retval;
};

var PostMessagePacket = function(receiver, receiveCallback, id, receiverId) {
	var that = this;
	this.receiver = receiver;
	this.receiveCallback = receiveCallback;
	this.id = id;


	this.receiverId = receiverId;
};

PostMessagePacket.prototype.createListener = function() {
	var that = this;

	var listener = function(e) {

		if (!that.id) {
			that.id = e.data;
			return;
		}


		var id = e.data.split(';')[0];
		if (id !== that.id) {
			return;
		}
		var data = e.data.substring(e.data.indexOf(';') + 1);

		that.receiveCallback(data);
	};

	if (typeof window.attachEvent == 'function') {
		window.attachEvent('onmessage', listener);
	} else if (typeof window.addEventListener == 'function') {
		window.addEventListener('message', listener, false);
	} else {
		throw new Error('No method found to create event listener for PostMessagePacket.');
	}
};

PostMessagePacket.prototype.send = function(msg) {



	var needs_reget = false;
	try {
		if (typeof this.receiver.id == 'undefined' || typeof this.receiver.postMessage == 'undefined') {
			needs_reget = true;
		}
	} catch(e) {


	}
	if (needs_reget && typeof this.receiverId != 'undefined') {
		this.receiver = document.getElementById(this.receiverId).contentWindow;
	}

	var packet;
	if (!msg) {

		packet = this.id;
	} else {
		packet = this.id + ';' + msg;
	}
	this.receiver.postMessage(packet, '*');
};

PostMessagePacket._last_unique_id = null;
PostMessagePacket._get_unique_id = function() {
	var id = (new Date()).getTime();
	if (id == PostMessagePacket._last_unique_id) {
		id++;
	}
	PostMessagePacket._last_unique_id = id;
	return id.toString();
};

var JsonRpc = function() {

	this.ids = {};

	this.objectToJSON = function(obj) {
		var json = '';
		var results = [];

		if (obj === undefined || obj === null) {
			return 'null';
		}

		switch (obj.constructor) {
			case Object:
				for (var property in obj) {
					if (obj.hasOwnProperty(property)) {
						results.push(this.objectToJSON(property) + ': ' + this.objectToJSON(obj[property]));
					}
				}
				json = '{' + results.join(', ') + '}';
				break;
			case Array:
				for (var i = 0; i < obj.length; i++) {
					results.push(this.objectToJSON(obj[i]));
				}
				json = '[' + results.join(', ') + ']';
				break;
			case Number:
			case Boolean:
				json = obj.toString();
				break;
			case String:

				var specialChars = {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '\\': '\\\\'};

				json = obj.replace(/[\x00-\x1f\\]/g, function(match) {
					var ch = specialChars[match];
					return ch ? ch : '\\u00' + match.charCodeAt().toPaddedString(2, 16);
				});

				json = '"' + json.replace(/"/g, '\\"') + '"';
				break;
			default:

				json = 'null';
				break;
		}

		return json;
	};

	this.createHandler = function(send_func, registered_funcs) {
		var that = this;
		var handler = function(message) {

			try {
				var rpc = eval('(' + message + ')');
			} catch(e) {
				alert('bad JSON: ' + message);
				return;
			}
			if (rpc.method) {

				if (!registered_funcs[rpc.method]) {
					return;
				}

				var retval = registered_funcs[rpc.method].apply(null, rpc.params);
				if (rpc.id) {
					var response = {
						result: retval,
						error: null,	// TODO
						id: rpc.id
					};
					send_func(that.objectToJSON(response));
				}
			} else if(rpc.result) {

				if (!that.ids[rpc.id]) {
					return;
				}

				that.ids[rpc.id](rpc.result);
				delete that.ids[rpc.id];
			}
		};
		return handler;
	};

	this.execute = function(send_func, method, params, response_callback) {
		response_callback = response_callback || null;
		var id = (response_callback) ? (new Date()).getTime() : null;

		var request = {
			method: method,
			params: params,
			id: id
		};

		send_func(this.objectToJSON(request));

		if (id) {
			this.ids[id] = response_callback;
		}
	};
};
JsonRpc = new JsonRpc();

var ParentMessenger = function(childUrl, receiverUrl, container, receiveCallback) {


	if (navigator.userAgent.indexOf('Safari') >= 0 && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf('Version/') + 8), 10) == 3) {
		throw new Error("unsupported.");
	} else if (window.opera) {
		throw new Error("unsupported.");
	}



	if (!receiverUrl &&
		navigator.userAgent.indexOf('Gecko') >= 0 &&
		parseFloat(navigator.userAgent.slice(navigator.userAgent.indexOf('rv:') + 3, navigator.userAgent.indexOf('rv:') + 6)) < 1.9) {
		throw new Error("unsupported.");
	}


	if (/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent)) {


		if (document.domain == window.location.hostname) {
			receiverUrl = '';
		}
	}

	var that = this;
	this.childUrl = childUrl;
	this.receiverUrl = receiverUrl;
	this.container = container || document.body;

	this.packetHandler = null;


	this._ready = false;
	this._error = false;


	var _createReceiverForFragmentPacket = function() {

		that.receiver = document.createElement('iframe');
		that.receiver.src = receiverUrl;
		that.receiver.id = 'receiver_' + (new Date()).getTime();
		that.receiver.name = that.receiver.id;

		that.receiver.frameBorder = '0';
		that.receiver.frameSpacing = '0';
		that.receiver.style.borderStyle = 'none';

		var receiver_onload = function() {
			var receiver = document.getElementById(that.receiver.id).contentWindow;

			try {
				receiver.document.body.innerHTML = '';
			} catch(e) {

				that._error = true;
			}
			receiver.document.body.style.padding = '0px';
			receiver.document.body.style.margin = '0px';

			var child = receiver.document.createElement('iframe');
			child.id = 'child';
			child.name = 'child';
			child.src = that.childUrl;

			child.frameBorder = '0';
			child.frameSpacing = '0';
			child.style.borderStyle = 'none';
			child.style.width = '100%';
			child.style.height = '100%';
			receiver.document.body.appendChild(child);

			that.child = receiver.document.getElementById('child').contentWindow;
			that.receiver = receiver;

			that.packetHandler = new FragmentPacket(that.receiver, that.child, that.childUrl, false, receiveCallback);

			that._listener = that.packetHandler.createListener();

			that.packetHandler.sendFlag(that.packetHandler.READY, 0);

			that._ready = true;
		};

		that.receiver.onreadystatechange = function() {
			if (this.readyState == 'complete') {
				receiver_onload();
			}
		};

		that.receiver.onload = receiver_onload;







		if (Dsq.Utils.ie) {
			if (that.container.clientWidth === 0) {

				var _waitForWidth = function() {
					if (that.container.clientWidth > 0) {
						Dsq.Utils.fixIframesIE(that.container.id);
					} else {
						window.setTimeout(_waitForWidth, 100);
					}
				};
				_waitForWidth();

				that._once = false;
				that.receiver.onresize = function() {
					if (!that._once) {
						Dsq.Utils.fixIframesIE(that.container.id);
					}
					that._once = true;
				};
			}
		}

		that.container.appendChild(that.receiver);
	};


	var _createReceiverForPostMessage = function() {

		var receiver_onload = function() {

			that.packetHandler.send();
			that._ready = true;
		};

		var id = PostMessagePacket._get_unique_id();
		var receiverId = 'child_' + id;


		ParentMessenger['_receiver_onload_' + receiverId] = receiver_onload;

		that.container.innerHTML += '<iframe ' +
			'src="' + childUrl + '" ' +
			'id="' + receiverId + '" ' +
			'name="' + receiverId + '" ' +
			'onload="ParentMessenger._receiver_onload_' + receiverId +'();" ' +
			'></iframe>';

		that.receiver = document.getElementById(receiverId).contentWindow;
		that.packetHandler = new PostMessagePacket(that.receiver, receiveCallback, id, receiverId);
		that._listener = that.packetHandler.createListener();
	};

	if (typeof window.postMessage == 'function') {
		_createReceiverForPostMessage();
	} else {
		_createReceiverForFragmentPacket();
	}

};

ParentMessenger.prototype.sendMessage = function(message) {
	var that = this;
	if (!this._ready) {

		window.setTimeout(function() { that.sendMessage(message); }, 10);
		return;
	}
	this.packetHandler.send(message);
	return true;
};

Dsq.NewFrames = function(url) {
	this.url = url;
};

Dsq.NewFrames.prototype.init = function(onFailure) {
	var that = this;

	try {
		this.messenger = new ParentMessenger(this.url, Dsq.jsonData.integration.receiver_url, this.container, this.receive_callback);
	} catch(e) {
		if (typeof onFailure == 'function') {
			onFailure();
		}
	}

	if (typeof onFailure == 'function') {
		var iId = window.setInterval(function() {
			if (typeof that.messenger == 'undefined') {
				window.clearInterval(iId);
				return;
			}
			if (that.messenger._ready) {
				window.clearInterval(iId);
			} else if (that.messenger._error) {
				window.clearInterval(iId);
				onFailure();
			}
		}, 10);
	}
};

Dsq.NewFrames.prototype._execute = function(method, args, callback) {
	var that = this;
	if (typeof that.messenger == 'undefined') {
		return false;
	}
	JsonRpc.execute(
		function(msg) { that.messenger.sendMessage(msg); },
		method,
		args || [],
		callback);
	return true;
};

Dsq.ReplyFrame = function(container, parent_post_id) {
	var that = this;
	this.container = container;
	this.parent_post_id = parent_post_id;

	var sendFunc = function(msg) {

		Dsq.Debug.log('Dsq.ReplyFrame.sendFunc');
		that.messenger.sendMessage(msg);
	};


	var postComment_onSuccess = function(response) {
		Dsq.jsonData.posts[response.message.id] = response.message.post_meta;
		if (!Dsq.jsonData.users[response.message.post_meta.user_key]) {
			Dsq.jsonData.users[response.message.post_meta.user_key] = response.message.user_meta;
		}


		var reply_position = (typeof(disqus_insert_wrt_sort) == 'undefined' 
			? (Dsq.jsonData.forum.reply_position ? -1 : null) 
			: (Dsq.jsonData.request.sort == 2 ? null : -1));
		
		if (response.message.post_meta.approved) {
			Dsq.Post.insert(response.message.post_meta.parent_post_id || reply_position, response.message.id, response.message.post_meta.message);
		}

		Dsq.Templates.postComment_onSuccess(response, parent_post_id, response.message.id);
	};

	var postComment_onFailure = function(response) {
		Dsq.Popup.popModal(response.message, 'Error');
		Dsq.Templates.postComment_onFailure(response, parent_post_id, response.message.id);
	};

	var editComment_onSuccess = function(response) {
		var post_id = parent_post_id;
		var message = Dsq.$('dsq-comment-message-' + post_id);
		
		message.innerHTML = response.message;
		Dsq.Templates.toggleEdit(post_id);
		Dsq.Templates.setLoadingButton(false);
	};
	
	var editComment_onFailure = function(response) {
		var post_id = parent_post_id;
		
		Dsq.Popup.popModal('Sorry, there was an error editing this comment.', 'Edit Error');
		Dsq.Templates.toggleEdit(post_id);
		Dsq.Templates.setLoadingButton(false);
	};

	var getUserByEmail_onSuccess = function(response) {
		var msg = response.message;
		var fields = Dsq.Templates.getFormFields(parent_post_id);

		if (msg.username) {

			Dsq.Templates.lightboxAuthenticate(parent_post_id, 'login', {
				'username': msg.username,
				'display_name': msg.display_name,
				'avatar_url': msg.avatar_url,
				'verified': msg.verified,
				'email': fields.email.value
			});
		} else {

			Dsq.Templates.lightboxAuthenticate(parent_post_id, 'register');
		}
	};

	var validateAuth_onSuccess = function(response, auth_choice) {
		Dsq.Templates.postComment(parent_post_id, null, true, auth_choice);
	};

	var validateAuth_onFailure = function(response, auth_choice) {
		var pid = parent_post_id ? '-' + parent_post_id : '';
		var msg = response.message;

		if (auth_choice == 'register') {
			var fields = ['email', 'username', 'password'];

			for (var i = 0; i < fields.length; i++) {
				var field = fields[i];
				var errorDiv = Dsq.$('dsq-' + field + '-errors' + pid);

				if (msg[field]) {
					errorDiv.innerHTML = msg[field];
				} else {
					errorDiv.innerHTML = '';
				}
			}
		} else if (auth_choice == 'login') {
			Dsq.$('dsq-lightbox-errors' + pid).innerHTML = '<p>We couldn\'t log you in. Please verify your login.</p>';
		}
		
		Dsq.Templates.setLoadingButton(false);
	};

	this.receive_callback = JsonRpc.createHandler(sendFunc, {
		'postComment.onSuccess': postComment_onSuccess,
		'postComment.onFailure': postComment_onFailure,
		'editComment.onSuccess': editComment_onSuccess,
		'editComment.onFailure': editComment_onFailure,		
		'getUserByEmail.onSuccess': getUserByEmail_onSuccess,
		'validateAuth.onSuccess': validateAuth_onSuccess,
		'validateAuth.onFailure': validateAuth_onFailure,
		'reload': function() { window.location.reload(); }
	});

	this.url = Dsq.Urls.REPLY +
		'?' + (new Date()).getTime() +
		'&f=scobleizer' +
		'&t=the_you_don8217t_need_more_friends_lobby' +
		'&ff=' + Dsq.Thread.ff +
		'&default_text=' + encodeURIComponent(disqus_default_text) +
		'&ifrs=' + encodeURIComponent(disqus_iframe_css);
	if (this.parent_post_id) {
		this.url += '&parent_post=' + this.parent_post_id;
	}
};

Dsq.ReplyFrame.prototype = new Dsq.NewFrames(Dsq.ReplyFrame.url);

Dsq.ReplyFrame.prototype.post = function(author_name, author_email, author_url, authenticate, sharing_services, subscribe) {
	this._execute('postComment', [author_name, author_email, author_url, authenticate, sharing_services, subscribe]);
};

Dsq.ReplyFrame.prototype.edit = function(post_id, message) {
	this._execute('editComment', [post_id, message]);
};

Dsq.ReplyFrame.prototype.setState = function(parent_post_id, depth) {
	this._execute('setState', [parent_post_id, depth]);
};

Dsq.ReplyFrame.prototype.getUserByEmail = function(email) {
	this._execute('getUserByEmail', [email]);
};

Dsq.ReplyFrame.prototype.validateAuth = function(auth_choice, email, username, password) {
	this._execute('validateAuth', [auth_choice, email, username, password]);
};

Dsq.ReplyFrame.prototype.authenticateFacebook = function(session, forum_url) {
	this._execute('authenticateFacebook', [session, forum_url]);
};

	Dsq.Facebook = function() {
	var that = this;

	var handleSessionData = function(session) {

		var forum_url = Dsq.jsonData.forum.url;




		if (typeof disqus_facebook_forum != 'undefined') {
			forum_url = disqus_facebook_forum;
		}
		Dsq.frames.reply_0.authenticateFacebook(session, forum_url);
	};

	var onLogin = function() {
		FB.Connect.getSignedPublicSessionData(handleSessionData);
	};

	this.login = function() {
		FB.Connect.requireSession(onLogin, true);
	};
};
Dsq.Facebook = new Dsq.Facebook();


	






Dsq.Themes = {};

Dsq.Themes.narcissus = new function() {
	this.addPostContainer = 'dsq-form-area';
	this.textareaContainer = 'dsq-textarea-wrapper';



	
	this.header = function() {
		var comments_count, total_posts, num_posts;
		var html = '';
		var missing_perm_tmpl;

		if (Dsq.jsonData.request.missing_perm) {
			missing_perm_tmpl = Dsq.Templates.missingPermissions();
			if (missing_perm_tmpl) {
				html += '<div class="dsq-missing-permissions">' + missing_perm_tmpl + '</div>';
			}
		}

		total_posts = Dsq.jsonData.thread.total_posts;
		num_posts = Dsq.jsonData.thread.num_posts;

		if (total_posts) {
			comments_count = Dsq.FmtStrings.SHOWING_COMMENTS_FULL(total_posts, num_posts);
		} else {
			comments_count = Dsq.FmtStrings.SHOWING_COMMENTS_WITHOUT_PAGINATION(num_posts);
		}

		html += ' \
		<div id="dsq-comments-title"> \
			<h3>' + comments_count + '</h3> \
		</div> \
		';

		html += ' \
		<div class="dsq-options"> \
			<span class="dsq-item-sort">'
				+ Dsq.Strings.SORT_BY + ' \
				<select id="dsq-sort-select" onchange="Dsq.Thread.sortBy(this.value);"> \
					<option value="hot" ' + (Dsq.jsonData.request.sort == 4 ? 'selected="selected"' : '') + '>' + Dsq.Strings.POPULAR_NOW + '</option> \
					<option value="best" ' + (Dsq.jsonData.request.sort == 3 ? 'selected="selected"' : '') + '>' + Dsq.Strings.BEST_RATING + '</option> \
					<option value="newest" ' + (Dsq.jsonData.request.sort == 2 ? 'selected="selected"' : '') + '>' + Dsq.Strings.NEWEST_FIRST + '</option> \
					<option value="oldest" ' + (Dsq.jsonData.request.sort == 1 ? 'selected="selected"' : '') + '>' + Dsq.Strings.OLDEST_FIRST + '</option> \
				</select> \
				&nbsp; \
			</span> \
			<span class="dsq-subscribe-email"> \
				<img src="http://media.disqus.com/images/embed/email.png" style="width:12px;height:12px;vertical-align:middle"> \
				<span id="dsq-subscribe">'
					+ (Dsq.jsonData.context.subscribed
						? '<a href="#" onclick="Dsq.Thread.subscribe(0); return false">' + Dsq.Strings.UNSUBSCRIBE + '</a>'
						: '<a href="#" onclick="Dsq.Thread.subscribe(1); return false">' + Dsq.Strings.SUBSCRIBE_BY_EMAIL + '</a>')
				+ '</span> \
			</span> \
			<span class="dsq-subscribe-rss" style="width:12px;height:12px;vertical-align:middle"> \
				<img src="http://media.disqus.com/images/embed/bullet-feed.png" alt="" /> \
				<a href="http://scobleizer.disqus.com/the_you_don8217t_need_more_friends_lobby/latest.rss">' + Dsq.Strings.SUBSCRIBE_BY_RSS + '</a> \
			</span> \
		</div> \
		';

		
		

		return html;

	};
	
	this.footer = function() {
		var html = '';

		html += Dsq.Templates.pagination();

		
		
			html += Dsq.Templates.realtime();
			html += Dsq.Templates.showThreadSettings();
			html += Dsq.Templates.postBox();

		html += Dsq.Templates.reactions();

		
			html += Dsq.Templates.trackbacks();
		


		if (Dsq.jsonData.request.is_global_moderator) {
 			html += ' \
				<div class="dsq-global-moderator-extras">'
					+ '<strong>shortname:</strong> ' + Dsq.jsonData.forum.url
					+ '<strong>thread id:</strong> ' + Dsq.jsonData.thread.id
					+ '<strong>thread slug:</strong> ' + Dsq.jsonData.thread.slug
				+ '</div> \
			';
		}

		return html;
	};
	
	this.realtime = function() {
		var html = '';
		
		if (Dsq.jsonData.realtime_enabled) {
			html += '<div id="dsq-realtime-options" class="dsq-options">'
					 + Dsq.Strings.REALTIME_UPDATING_IS + ' <strong id="dsq-realtime-status" style="text-transform: lowercase">' + Dsq.Strings.ENABLED + '</strong>. \
					 <a href="#" id="dsq-realtime-toggle" style="text-transform: capitalize"></a> \
					</div>';
		}

		if (!Dsq.jsonData.forum.streaming_realtime) {
			html += ' \
				<div style="display: none" id="dsq-realtime-alert" class="dsq-realtime-alert"><span id="dsq-realtime-queued"></span> <a href="#" id="dsq-realtime-show"></a></div> \
			';
		}
		
		return html;
	};

	this.showThreadSettings = function() {
		if (!Dsq.jsonData.request.is_moderator) {
			return '';
		}

		html = '<div id="dsq-thread-settings" class="dsq-thread-settings">' + Dsq.Strings.MODERATOR_OPTIONS;
		html += '<a href="#" onclick="Dsq.Thread.showSettings(); return false;">' + Dsq.Strings.SETTINGS + '</a>';
		html += '<a href="#" onclick="Dsq.Thread.showModeratorActions(); return false;">' + Dsq.Strings.MODERATE + '</a>';
		if (Dsq.jsonData.forum.reactions_enabled && Dsq.jsonData.reactions.length === 0) {
			html += '<a href="#" onclick="Dsq.Reaction.reportMissingReactions(); return false;">'
						+ Dsq.Strings.REPORT_MISSING_REACTIONS
						+ '</a>';
		}
		html +='</div>';

		return html;
	};

	this.postBox = function(post_id, use_fallback_iframe) {


		var html;
		var display_sharing_options = Dsq.jsonData.request.is_authenticated;

		if (!Dsq.jsonData.request.is_authenticated && Dsq.jsonData.forum.disqus_auth_disabled && !Dsq.jsonData.forum.allow_anon_post) {
			return '';
		}
		
		if (Dsq.jsonData.request.is_remote) {


			if (!Dsq.jsonData.request.sharing.hasOwnProperty(Dsq.jsonData.request.remote_domain)) {
				display_sharing_options = false;
			}
		}
		
		if (post_id) {
			var _meta = Dsq.jsonData.posts[post_id];
			var userData = Dsq.jsonData['users'][_meta.user_key];				
		}
		
		var pid = post_id ? '-' + post_id : '';

		var _requestUserInfo = function() {
			var html;



			var user_has_email = false;

			html = '<div class="dsq-request-user-info"> <!-- // If authenticated --> \
				<a href="' + Dsq.jsonData.settings.disqus_url + Dsq.Urls.LOGOUT + '?ctkn=' + Dsq.CSRF_TOKEN + '" class="dsq-request-user-logout">' + Dsq.Strings.LOGOUT + '</a> \
				<table> \
					<tr> \
						<td rowspan="2">'
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '<a href="' + Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE + '">' : '')
								+ '<img src="' + Dsq.Urls.REQUEST_USER_AVATAR + '" width="48" height="48" class="dsq-request-user-avatar">'
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '</a>' : '')
						+ '</td> \
						<td class="dsq-request-user-name">'
								+ (Dsq.jsonData.request.is_remote
									 ? '<span class="dsq-badge-small dsq-badge-' + Dsq.jsonData.request.remote_domain + '">' + Dsq.jsonData.request.remote_domain + '</span>'
									 : (Dsq.jsonData.request.is_verified
											? '<span class="dsq-badge-small dsq-badge-verified">Verified</span>'
											: '<span class="dsq-badge-small dsq-badge-registered">Registered</span>'))
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? ' <a href="' + Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE + '">' : '') 
								+ Dsq.jsonData.request.display_username 
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '</a>' : '')
							+  (Dsq.jsonData.request.is_remote && user_has_email ? ' <small>(<a href="#" onclick="Dsq.Popup.remoteAccountSettings(); return false;">change settings</a>)</small>' : '')
							+  (!Dsq.jsonData.request.is_remote && !Dsq.jsonData.forum.disqus_auth_disabled ? ' <small>(<a href="' + Dsq.jsonData.settings.disqus_url + '/profile/info/" target="_blank">change name</a> or <a href="' + Dsq.jsonData.settings.disqus_url + '/profile/avatar/" target="_blank">picture</a>)</small>' : '')
						+ '</td> \
					</tr> \
					<tr> \
						<td class="dsq-request-user-stats"> \
							<span><big>' + Dsq.jsonData.request.comments_count + '</big> ' + (Dsq.jsonData.request.comments_count == 1 ? 'comment' : 'comments') + '</span> \
							<span><big>' + Dsq.jsonData.request.likes_count + '</big> ' + (Dsq.jsonData.request.likes_count == 1 ? 'like' : 'likes') + '</span> \
							<span><big>' + Dsq.jsonData.request.points + '</big> ' + (Dsq.jsonData.request.points == 1 ? 'point' : 'points') + '</span> \
						</td> \
					</tr> \
				</table> \
			</div> \
			';
			return html;
		};

		var _loginOptions = function() {
			var html;
			html = ' \
			<div class="dsq-authenticate"> \
				<p class="dsq-autheneticate-copy">'
				+ (Dsq.jsonData.forum.allow_anon_post
					? Dsq.Strings.YOU_ARE_COMMENTING_AS_A + ' <a class="dsq-help" title="Click for more information" href="#" onclick="Dsq.Popup.helpBadges(); return false">Guest</a>. ' + Dsq.Strings.OPTIONAL + ': ' + Dsq.Strings.LOGIN_BELOW + '.'
					: Dsq.Strings.REQUIRED + ': ' + Dsq.Strings.PLEASE_LOGIN_BELOW_TO_COMMENT + '.')
				+ '</p> \
				<ul class="dsq-login-buttons">'
					+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Popup.login(); return false"><img src="http://media.disqus.com/images/themes/narcissus/login-disqus.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_fb_connect ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Facebook.login(); return false;"><img src="http://media.disqus.com/images/themes/narcissus/login-facebook.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_twitter_signin ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Twitter.startTwitterConnect(); return false"><img src="http://media.disqus.com/images/themes/narcissus/login-twitter.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_openid ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.OpenID.requestURL(); return false" ><img src="http://media.disqus.com/images/themes/narcissus/login-openid.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_yahoo ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Yahoo.startYahooConnect(); return false"><img src="http://media.disqus.com/images/themes/narcissus/login-yahoo.gif" /></a></li>' : '')
				+ '</ul> \
			</div> \
			';
			return html;
		};

		if (!Dsq.jsonData.context.show_reply) {


			if (!Dsq.jsonData.request.is_authenticated) {



				return '<div id="dsq-form-area" style="display:none"><div id="dsq-textarea-wrapper"></div></div>' + _loginOptions();
			} else {
				return '';
			}
		}

		html = ' \
		<div id="' + (post_id 
			? 'dsq-reply-post-' + post_id
			: 'dsq-new-post')
		 	+ '" class="dsq-post-area"> \
			<div class="dsq-dc-logo"> \
				<a href="http://disqus.com/comments" target="_blank"><img src="http://media.disqus.com/images/themes/narcissus/disqus-logo.png"></a> \
			</div>'
			+ (post_id 
				? '<h3>' + Dsq.Strings.REPLYING_TO + ' ' + userData.display_name + '</h3>'
				: '<h3>' + Dsq.Strings.ADD_NEW_COMMENT + '</h3>')
			+ (Dsq.jsonData.request.is_authenticated 
				? _requestUserInfo()
				: _loginOptions() )
			+ '<div id="dsq-form-area' + pid + '">'
			+ '<div class="dsq-textarea"> \
				<div class="dsq-textarea-wrapper" id="dsq-textarea-wrapper' + pid + '"></div> \
			</div>'
			+ (!Dsq.jsonData.request.is_authenticated
			? ' \
			<div class="dsq-post-fields"> \
				<table> \
					<tr> \
						<td class="dsq-post-fields-left"><div class="dsq-input-wrapper"><input id="dsq-field-name' + pid + '" type="text" value="' + (disqus_def_name ? disqus_def_name : (Dsq.jsonData.session.name ? Dsq.jsonData.session.name : Dsq.Strings.NAME + '" class="dsq-placeholder')) + '" onfocus="Dsq.Templates.handlePlaceholder(event, this, \'name\')" onblur="Dsq.Templates.handlePlaceholder(event, this, \'name\')" /></div></td> \
						<td class="dsq-post-fields-right"><div class="dsq-input-wrapper"><input id="dsq-field-website' + pid + '" type="text" value="' + (Dsq.jsonData.session.url ? Dsq.jsonData.session.url : Dsq.Strings.WEBSITE + ' (' + Dsq.Strings.OPTIONAL.toLowerCase() + ')" class="dsq-placeholder') + '" onfocus="Dsq.Templates.handlePlaceholder(event, this, \'website\')" onblur="Dsq.Templates.handlePlaceholder(event, this, \'website\')" /></div></td> \
					</tr> \
					<tr> \
						<td class="dsq-post-fields-left"><div class="dsq-input-wrapper"><input id="dsq-field-email' + pid + '" type="text" value="' + (disqus_def_email ? disqus_def_email : (Dsq.jsonData.session.email ? Dsq.jsonData.session.email : Dsq.Strings.EMAIL + '" class="dsq-placeholder')) + '" onfocus="Dsq.Templates.handlePlaceholder(event, this, \'email\')" onblur="Dsq.Templates.handlePlaceholder(event, this, \'email\')" /></div></td> \
						<td class="dsq-post-fields-right"> \
							<div class="dsq-subscribe"> \
								<a href="#" onclick="Dsq.Templates.chooseSubscribe(' + post_id + '); return false" class="dsq-subscribe-menu"><span id="dsq-subscribe-select' + pid + '">' + (Dsq.jsonData.request.subscribe_on_post ? Dsq.Strings.SUBSCRIBE_TO_ALL_COMMENTS_BY_EMAIL : Dsq.Strings.DO_NOT_SUBSCRIBE_TO_COMMENTS) + '</span> <small>&#9660;</small></a> \
								<ul class="dsq-panel" id="dsq-subscribe-menu' + pid + '"> \
									<li><a href="#" onclick="Dsq.Templates.setSubscribe(2, this, ' + post_id + '); return false">' + Dsq.Strings.SUBSCRIBE_TO_ALL_COMMENTS_BY_EMAIL + '</a></li> \
									<li><a href="#" onclick="Dsq.Templates.setSubscribe(0, this, ' + post_id + '); return false">' + Dsq.Strings.DO_NOT_SUBSCRIBE_TO_COMMENTS + '</a></li> \
								</ul> \
								<input id="dsq-subscribe-on-post' + pid + '" type="hidden" value="' + Dsq.jsonData.request.subscribe_on_post + '" /> \
							</div> \
						</td> \
					</tr> \
				</table> \
			</div>'
			: '')
			+ '<div class="dsq-post-footer"> \
				<div class="dsq-sharing-options" ' + (!display_sharing_options ? 'style="display:none;"' : '') + '> \
					<button type="button" class="dsq-button-small" onfocus="document.getElementById(\'dsq-post-button' + pid + '\').focus();"><span>' + Dsq.Strings.SHARING_OPTIONS + ' <small>&#9660;</small></span></button> \
					<div class="dsq-panel"> '
						+ (Dsq.jsonData.request.sharing.twitter !== undefined
								&& Dsq.jsonData.request.sharing.twitter.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-twitter' + pid + '"'
								  + (Dsq.jsonData.request.sharing.twitter.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-twitter' + pid + '">' + Dsq.Strings.SHARE_ON + ' Twitter</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.facebook
								&& (Dsq.jsonData.request.sharing.facebook.enabled === true ||
										(Dsq.jsonData.request.is_remote && Dsq.jsonData.request.remote_domain == 'facebook'))
							? '<div><input type="checkbox" id="dsq-sharing-facebook' + pid + '"'
									+ (Dsq.jsonData.request.sharing.facebook.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-facebook' + pid + '">' + Dsq.Strings.SHARE_ON + ' Facebook</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.yahoo !== undefined
								&& Dsq.jsonData.request.sharing.yahoo.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-yahoo' + pid + '"'
									+ (Dsq.jsonData.request.sharing.yahoo.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-yahoo' + pid + '">' + Dsq.Strings.SHARE_ON + ' Yahoo!</label> \
								</div>'
							: '')
						+ (Dsq.jsonData.request.sharing.tumblr !== undefined
								&& Dsq.jsonData.request.sharing.tumblr.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-tumblr' + pid + '"'
									+ (Dsq.jsonData.request.sharing.tumblr.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-tumblr' + pid + '">' + Dsq.Strings.SHARE_ON + ' Tumblr</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.wordpress !== undefined
								&& Dsq.jsonData.request.sharing.wordpress.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-wordpress' + pid + '"'
									+ (Dsq.jsonData.request.sharing.wordpress.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-wordpress' + pid + '">' + Dsq.Strings.SHARE_ON + ' Wordpress</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.movabletype !== undefined
							  && Dsq.jsonData.request.sharing.movabletype.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-movabletype' + pid + '"'
									+ (Dsq.jsonData.request.sharing.movabletype.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-movabletype' + pid + '">' + Dsq.Strings.SHARE_ON + ' Movable Type</label> \
							   </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.typepad !== undefined
							  && Dsq.jsonData.request.sharing.typepad.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-typepad' + pid + '"'
									+ (Dsq.jsonData.request.sharing.typepad.auto === true ? 'checked=true' : '') + '/> \
								  <label for="dsq-sharing-typepad' + pid + '">' + Dsq.Strings.SHARE_ON + ' TypePad</label> \
							   </div>'
							: '')
						+ '<div><a href="' + Dsq.jsonData.settings.disqus_url + '/profile/connections/" target="_blank" class="dsq-configure-options">' + Dsq.Strings.CONFIGURE_OPTIONS + '</a></div>'
					+ '</div> \
				</div>'
				+ '<button type="button" class="dsq-button" id="dsq-post-button' + pid + '" onclick="Dsq.Templates.postComment(' + post_id + ', this, false)"><span>' + Dsq.Strings.POST_AS + ' '
				+ (Dsq.jsonData.request.display_username
					? Dsq.jsonData.request.display_username
					: Dsq.Strings.GUEST)
				+ '</span></button>'
				+ (post_id
					? '<button type="button" class="dsq-button" id="dsq-cancel-button' + pid + '" onclick="Dsq.Post.toggleReply(' + post_id +', this)"><span>' + Dsq.Strings.CANCEL + '</span></button>'
					: '')
			+ '</div>'
			+ '</div>' // end dsq-form-area
		+ '</div> \
		';
		
		return html;
	};




	this.appendPost = function(post_id) {
		var html = '<div id="dsq-append-post-' + post_id + '"></div>';
		return html;
	};

	this.postPrependHeader = function(post_id) {
		var html;
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		
		html = ' \
		<table> \
			<tr> \
				<td id="dsq-header-avatar-' + post_id + '" class="dsq-header-avatar" onmouseover="Dsq.Post.dropProfile(' + post_id + ')"> \
					<a id="dsq-avatar-' + post_id + '" class="dsq-avatar" href="' + userData.url + '" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">'
					+ (Dsq.jsonData.forum.show_avatar
					? '<img src="' + Dsq.jsonData.users[_meta.user_key].avatar + '" alt="" />'
					: '')
				+ '</a> \
				</td> \
				<td class="dsq-comment-header-meta"> \
		';

		
		return html;
	};
	
	this.postAppendHeader = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var html;
		var parent_display_name = '';
		
		if(_meta.parent_post_id) {

			var _parent_meta = Dsq.jsonData.posts[_meta.parent_post_id];

			if (_parent_meta) {
				var parentUserData = Dsq.jsonData['users'][_parent_meta.user_key];
				parent_display_name = parentUserData.display_name;
			}
		}

		html = ' \
		<img src="http://media.disqus.com/images/themes/narcissus/moderator.png" class="dsq-moderator-star" title="Moderator" /> \
		<span class="dsq-comment-header-time"><a href="#comment-' + post_id + '" onclick="Dsq.Popup.permalink(' + post_id + ')" title="Permalink">' + (_meta.is_realtime ? Dsq.Strings.JUST_NOW : _meta.date) + '</a></span> '
		+ (_meta.parent_post_id && parent_display_name
			? '<a href="#comment-' + _meta.parent_post_id + '" title="Jump to comment">in reply to ' + parent_display_name + '</a>'
			: '')
		+ '</td> \
		<td id="dsq-like-pts-' + post_id + '" class="dsq-comment-header-likes">'
		+ (_meta.points
			? _meta.points + Dsq.Utils.pluralize(_meta.points, ' person', ' people') + ' liked this.'
			: '')
		+ '</td> \
		</tr> \
		</table> \
		';
		return html;
	};

	this.preBody = function(post_id) {
		var html = '';
		return html;
	};

	this.postFooter = function(post_id) {
		var html;
		var _meta = Dsq.jsonData.posts[post_id];
		if(_meta.killed || !_meta.approved) { return ''; }
		
		html = ' \
		<div class="dsq-comment-footer" id="dsq-comment-footer-' + post_id + '"> \
			<div class="dsq-comment-footer-left">'
				+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator
					? '<a href="#" onclick="Dsq.Templates.moderateOptions(' + post_id+ '); return false">' + Dsq.Strings.MODERATE + '</a>'
					: '')
				+ '<a href="#" id="dsq-post-report-' + post_id + '" class="dsq-post-report" onclick="Dsq.Post.report(' + post_id + ', false); return false;">' + Dsq.Strings.FLAG + '</a> \
			</div> \
			<div class="dsq-comment-footer-right">'
				+ (_meta.votable 
					? '<span id="dsq-like-' + post_id + '" class="dsq-like">'
					+ (!_meta.up_voted
						? '<button type="button" class="dsq-button-small" onclick="Dsq.Post.rate(this, ' + post_id + ', 1)" >Like</button>'
						: 'You liked this.&nbsp;&nbsp;')
					+ '</span>'
					: '')
				+ (_meta.can_reply && !_meta.has_replies && _meta.from_request_user
					? '<button type="button" class="dsq-button-small dsq-post-edit" onclick="Dsq.Post.edit(this, ' + post_id + ')" >' + Dsq.Strings.EDIT + '</button>'
					: '')
				+ (_meta.can_reply
					? '<span class="dsq-comment-footer-reply" id="dsq-comment-footer-reply-' + post_id + '" onclick="Dsq.Post.toggleReply(' + post_id +', this)"> \
						<button type="button" class="dsq-button-small">' + Dsq.Strings.REPLY + '</button> \
						<button type="button" class="dsq-comment-footer-reply-tab">' + Dsq.Strings.REPLY + '</button><span></span> \
					</span>'
					: '')
			+ '</div> \
		</div> \
		';
		
		return html;
	};



	
	this.showRetweets = function(id, limit, element_id /* Optional */) {
		var source, html = '';

		for (var i = 0, reaction; reaction = Dsq.jsonData.reactions[i]; i++) {
			if (reaction.id === id) {
				source = reaction.retweets;
			}
		}

		if (source) {
			if (limit === 0) {
				limit = source.length;
			}

			for (var j = 0; j < limit; j++) {
				var rt = source[j];
				html += '<a href="' + rt.url + '">' + rt.author_name + '</a>'	+ ((j === (limit - 1)) ? '.' : ', ');
			}
		}

		if (element_id === undefined) {
			return html;
		}

		var element = document.getElementById(element_id);
		element.innerHTML = html;
		return element;
	};

	this.showMoreReactions = function(reactions, has_more, start, limit) {
		var link = document.getElementById('dsq-show-more-reactions');
		var container = link.parentNode;
		container.removeChild(link);

		for (var i = 0, reaction; reaction = reactions[i]; i++) {
			var el = Dsq.Templates.generateReactionHTML(reaction);
			if (el) {
				container.innerHTML += el;
			}
		}

		if (has_more) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = start;
			var l = limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			container.innerHTML += '<li id="dsq-show-more-reactions" class="dsq-show-more-reactions"><button type="button" class="dsq-button-small" onclick="' + handler + '">Show more reactions</button></li>';
		}
	};

	this.generateReactionHTML = function(reaction) {
		if (reaction.body === null || reaction.body == '') {
			return;
		}

		if (reaction.author_name === '') {
			reaction.author_name = '&nbsp;';
		}

		if (reaction.url === '') {
			reaction.url = reaction.get_service_url;
		}

		var item = '<li class="dsq-comment dsq-reaction" id="dsq-reaction-' + reaction.id + '">'
			+ '<div class="dsq-comment-header"> \
			<table> \
			<tr> \
			<td class="dsq-header-avatar"> \
			';

		if (reaction.author_url && reaction.author_url !== '') {
			item += '<a target="_blank" href="' + reaction.author_url +'" class="dsq-avatar">';
		}

		if (reaction.avatar_url && reaction.avatar_url !== '') {
			item += '<img src="' + reaction.avatar_url + '"/>';
		} else {

			item += '<img src="' + Dsq.jsonData.media_url + '/images/noavatar92.png"/>';
		}

		var service_icon = (reaction.get_service_name == 'trackback' || reaction.get_service_name == 'pingback' ? 'rss' : reaction.get_service_name.replace(' ', ''));
		item += (reaction.author_url && reaction.author_url !== ''
				? '</a>'
				: '')
			+ '</td>'
			+ '<td><cite class="dsq-comment-cite">' + reaction.author_name + '</cite> <span class="dsq-comment-header-time">' + reaction.date_created + '</span></td>'
			+ '<td class="dsq-comment-header-likes"></td>'
			+ '</tr></table></div>' // end dsq-comment-header
			+ '<div class="dsq-reaction-header" \
				<table> \
					<tr> \
						<td class="dsq-reaction-header-left">'
							+ '<img class="dsq-service-icon" src="' + Dsq.jsonData.media_url + '/images/reactions/services/' + service_icon + '.png" />'
							+ ' From <a class="dsq-service-name" target="_blank" href="' + reaction.url + '">' + reaction.get_service_name + '</a> '
							+ 'via <a href="' + reaction.source_url + '">' + (reaction.source == 'backtype' ? 'BackType' : 'UberVU') + '</a>'
						+ '</td>'
						+ '<td class="dsq-reaction-header-right">';

			if(reaction.retweets) {
				var num_retweets = reaction.retweets.length;
				if (num_retweets > 0) {
					if (num_retweets == 1) {
						item += 'One more retweet from <a href="' + reaction.retweets[0].url + '">'  + reaction.retweets[0].author_name + '</a>';
					} else {
						item += (num_retweets + ' more retweets from ');
						item += '<span id="dsq-reaction-retweets-' + reaction.id + '">';
						var n_tweets = (num_retweets > 3) ? 3 : num_retweets;
						item += Dsq.Templates.showRetweets(reaction.id, n_tweets);
						if (n_tweets != num_retweets) {
							item += '</span> <a onclick="Dsq.Templates.showRetweets(' + reaction.id + ', 0, \'dsq-reaction-retweets-' + reaction.id + '\');'
								+ 'this.parentNode.removeChild(this); return false;" href="#">Show all</a>';
						}
					}
				}
			}	
			item += '</td></tr> \
			</table> \
			</div>' // end dsq-reaction-header
			+ '<div class="dsq-comment-body"> \
				<div class="dsq-comment-message">' + reaction.body + '</div>'
			+ '</div> \
			<div class="dsq-comment-footer"> \
				<div class="dsq-comment-footer-left"> \
				</div>'
				+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator 
					? ' \
					<div class="dsq-comment-footer-right"> \
						<button type="button" class="dsq-button-small dsq-hide-reaction" onclick="Dsq.Reaction.hide(' + reaction.id + ')">Hide</button> \
					</div>'
					: '')
			+ '</div>'
		item += '</li>'; /* Reaction HTML ends */
		return item;
	};

	this.reactions = function() {
		var html, reaction;

		if (Dsq.jsonData.reactions === undefined || Dsq.jsonData.reactions.length === 0) {
			return '';
		}

		html = '';
		for (var i = 0; reaction = Dsq.jsonData.reactions[i]; i++) {
			var item = Dsq.Templates.generateReactionHTML(reaction);
			if (item) {
				html += item;
			}
		}

		if (Dsq.jsonData.has_more_reactions) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = Dsq.jsonData.reactions_start;
			var l = Dsq.jsonData.reactions_limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			html += '<li id="dsq-show-more-reactions" class="dsq-show-more-reactions"><button type="button" class="dsq-button-small" onclick="' + handler + '">Show more reactions</button></li>';
		}

		return '<h3 id="dsq-reactions-title" class="dsq-h3-reactions">Reactions</h3><ul id="dsq-reactions" class="dsq-reactions">' + html + '</ul>';
	};
	
	this._popupGeneric = function(content) {
		return ' \
		<div class="dsq-popup-container"> \
			<table> \
				<tbody> \
					<tr> \
						<td class="dsq-popup-tl"></td><td class="dsq-popup-b"></td><td class="dsq-popup-tr"></td> \
					</tr> \
					<tr> \
						<td class="dsq-popup-b"></td> \
						<td class="dsq-popup-body"> \
							<div class="dsq-popup-content"> \
								<div class="dsq-popup-title"> \
									<button type="button" class="dsq-button-small" style="float:right" onclick="Dsq.Popup._closePopup(null, true)">Close</button>'
									+ content['header'] 
								+ '</div>'
								+ content['body']
							+ '</div> \
							<div class="powered-by"><a href="http://disqus.com/comments/">Powered by <img src="http://media.disqus.com/images/embed/disqus-logo.png" alt="Disqus Comments" style="margin-bottom:-5px" /></a></div> \
						</td> \
						<td class="dsq-popup-b"></td> \
					</tr> \
					<tr> \
						<td class="dsq-popup-bl"></td><td class="dsq-popup-b"></td><td class="dsq-popup-br"></td> \
					</tr> \
				</tbody> \
			</table> \
		</div> \
		';
	};



	
	this.chooseSubscribe = function(post_id) {

		var pid = post_id ? '-' + post_id : '';
		var menu = Dsq.$('dsq-subscribe-menu' + pid);
		
		menu.style.display = menu.style.display == 'block' ? 'none' : 'block';
		
	};
	
	this.setSubscribe = function(value, el, post_id) {

		var pid = post_id ? '-' + post_id : '';
		var input = Dsq.$('dsq-subscribe-on-post' + pid);
		var select = Dsq.$('dsq-subscribe-select' + pid);
		var menu = Dsq.$('dsq-subscribe-menu' + pid);
		
		select.innerHTML = el.innerHTML;
		input.value = value;
		this.chooseSubscribe(post_id);
	};
	
	this.getFormFields = function(post_id) {

		var fields = {};
		var pid = post_id ? '-' + post_id : '';
		var name = Dsq.$('dsq-field-name' + pid);
		var email = Dsq.$('dsq-field-email' + pid);
		var website = Dsq.$('dsq-field-website' + pid);
		var username = Dsq.$('dsq-field-username' + pid);
		var password = Dsq.$('dsq-field-password' + pid);

		fields = {
			'name': name,
			'email': email,
			'website': website,
			'username': username,
			'password': password
		}
		
		return fields;
	}
	
	this.validateFields = function(post_id) {
		
		if(Dsq.jsonData.request.is_authenticated) { return true; }
		
		var fields = Dsq.Templates.getFormFields(post_id);
		
		var nameField = fields.name;
		var websiteField = fields.website;
		var emailField = fields.email;
		
		websiteField.value = (websiteField.value == Dsq.Templates.placeholder['website']) ? '' : websiteField.value;
		
		var v = [{

			validator: Dsq.Validators.name,
			value: nameField.value
		}, {

			validator: Dsq.Validators.email,
			value: emailField.value
		}, {

			validator: Dsq.Validators.url,
			value: websiteField.value
		}];
		
		return Dsq.Validators.validate(v, function(e) { Dsq.Popup.popModal(e, 'Oops...') } );
	};
	
	this.checkExistingUser = function(post_id) {
		var fields = Dsq.Templates.getFormFields(post_id);		
		Dsq.Popup.loading(post_id);
		
		if (post_id) {
			Dsq.frames['reply_' + post_id].getUserByEmail(fields.email.value);
		} else {
			Dsq.frames['reply_0'].getUserByEmail(fields.email.value);
		}
	};

	this.validateAuth = function(el_clicked, post_id, auth_choice) {
		var fields = Dsq.Templates.getFormFields(post_id);
		var email = fields.email ? fields.email.value : '';
		var username = fields.username ? fields.username.value : '';
		var password = fields.password ? fields.password.value : '';
		
		Dsq.Templates.setLoadingButton(el_clicked, post_id);
		
		if (post_id) {
			Dsq.frames['reply_' + post_id].validateAuth(auth_choice, email, username, password);
		} else {
			Dsq.frames['reply_0'].validateAuth(auth_choice, email, username, password);
		}
	};

	this.lightboxUpdateEmail = function(post_id, new_email) {
		var fields = Dsq.Templates.getFormFields(post_id);
		fields.email.value = new_email;
	};

	this.lightboxAuthenticate = function(post_id, auth_choice, auth_data) {
		var title, body;
		var pid = post_id ? '-' + post_id : '';

		if(typeof(auth_data) == 'undefined') {
			var auth_data = Dsq.Templates.getFormFields(post_id);
		}

		d = auth_data;

		switch(auth_choice) {
			case 'register':
				var suggestedUsername = d.name.value.replace(/[^a-zA-Z0-9-]/g,'').toLowerCase();
			
				title = Dsq.jsonData.forum.allow_anon_post ? 'Optional:' : 'Required:';
				title += ' Register a <img src="http://media.disqus.com/images/embed/disqus-profile.png" alt=Disqus Profile" />';

				body = ' \
				<ul class="dsq-lightbox-register-reasons"> \
				<li>Verify your comments</li> \
				<li>Edit and delete comments</li> \
				<li>Manage comments and replies</li> \
				</ul> \
				';

				body += ' \
				<div class="dsq-lightbox-auth-fields"> \
					<table> \
						<tr> \
							<td>Email</td> \
							<td><input type="text" value="' + d.email.value + '" onchange="Dsq.Templates.lightboxUpdateEmail(' + post_id + ', this.value)" /><div id="dsq-email-errors' + pid + '"></div></td> \
						</tr> \
						<tr> \
							<td>Username</td> \
							<td><input id="dsq-field-username' + pid + '" type="text" value="' + suggestedUsername + '"/><div id="dsq-username-errors' + pid + '"></div></td> \
						</tr> \
						<tr> \
							<td>Password</td> \
							<td><input id="dsq-field-password' + pid + '" type="password" /><div id="dsq-password-errors' + pid + '"></div></td> \
						</tr> \
					</table> \
					<div class="dsq-lightbox-switch-auth"><a href="#" onclick="Dsq.Templates.lightboxAuthenticate(' + post_id + ',\'login\'); return false">Login instead</a></div> \
				</div> \
				<div id="dsq-lightbox-errors' + pid + '" class="dsq-lightbox-errors"></div> \
				<div class="dsq-lightbox-submit"> \
					<div class="dsq-lightbox-auth-post"><button type="button" class="dsq-button" onclick="Dsq.Templates.validateAuth(this, ' + post_id + ',\'' + auth_choice + '\')">Register and Post comment</button></div>'
					+ (Dsq.jsonData.forum.allow_anon_post
						? '<div class="dsq-lightbox-auth-skip"><button type="button" class="dsq-button-small" onclick="Dsq.Templates.postComment(' + post_id + ', this, true)">Just post as a Guest</button></div>'
						: '')
				+ '</div> \
				';
				break;
			case 'login':
				title = Dsq.jsonData.forum.allow_anon_post ? 'Optional:' : 'Required:';
				title += ' Login to your <img src="http://media.disqus.com/images/embed/disqus-profile.png" alt=Disqus Profile" />';
				body = '';
				
				if(d.avatar_url) {
					body += '<div class="dsq-lightbox-recognized"><table><tr>';
					body += '<td><img src="' + d.avatar_url + '" alt="" /></td>';
					body += '<td><span class="dsq-badge ' + (d.verified ? 'dsq-badge-verified' : 'dsq-badge-registered') + '">' + (d.verified ? 'Verified' : 'Registered') + '</span></td>';
					body += '<td>Hey <strong>' + d.display_name + '</strong>, is that you? Login below to claim this comment.';
					body += '</tr></table></div>';
				}

				body += ' \
				<div class="dsq-lightbox-auth-fields"> \
					<table> \
						<tr> \
							<td>Username or Email</td> \
							<td><input id="dsq-field-username' + pid + '" type="text" value="' + (d.avatar_url ? d.username : '') + '" /></td> \
						</tr> \
						<tr> \
							<td>Password <a href="http://disqus.com/forgot" target="_blank">(cannot log in?)</a></td> \
							<td><input id="dsq-field-password' + pid + '" type="password" /></td> \
						</tr> \
					</table> \
					<div class="dsq-lightbox-switch-auth"><a href="#" onclick="Dsq.Templates.lightboxAuthenticate(' + post_id + ',\'register\'); return false">Register instead</a></div> \
				</div> \
				<div id="dsq-lightbox-errors' + pid + '" class="dsq-lightbox-errors"></div> \
				<div class="dsq-lightbox-submit"> \
					<div class="dsq-lightbox-auth-post"><button type="button" class="dsq-button" onclick="Dsq.Templates.validateAuth(this, ' + post_id + ',\'' + auth_choice + '\')">Login and Post comment</button></div>'
					+ (Dsq.jsonData.forum.allow_anon_post
						? '<div class="dsq-lightbox-auth-skip"><button type="button" class="dsq-button-small" onclick="Dsq.Templates.postComment(' + post_id + ', this, true)">Just post as a Guest</button></div>'
						: '')
				+ '</div> \
				';
				break;
			default:
				break;
		}
		Dsq.Popup.lightbox(body, title, post_id);
		Dsq.$('dsq-field-username' + pid).focus();
	};
	
	this.buttonsToRestore = [];
	this.setLoadingButton = function(btn, post_id) {
		var pid = post_id ? '-' + post_id : '';
		if (btn) {

			var loadingBtn = document.createElement('button');
			loadingBtn.id = btn.id + '-loading';
			loadingBtn.innerHTML = '<img src="http://media.disqus.com/images/loading-lite.gif" alt="" /> ' + Dsq.Strings.JUST_A_MOMENT;
			loadingBtn.className = btn.className + ' dsq-post-loading';
			btn.parentNode.appendChild(loadingBtn);
			btn.style.display = 'none';
			var cancelBtn = Dsq.$('dsq-cancel-button' + pid);
			if(cancelBtn) { cancelBtn.style.display = 'none'; this.buttonsToRestore.push(cancelBtn); }
			this.buttonsToRestore.push(btn);
		} else {

			var buttons = this.buttonsToRestore;
			for(var i = 0; i < buttons.length; i++) {
				buttons[i].style.display = 'inline';
				Dsq.Utils.deleteNode(Dsq.$(buttons[i].id + '-loading'));
			}
		}
		
	};

	this.postComment = function(post_id, el_clicked, force, auth_choice) {
		var append_id = post_id ? '-' + post_id : '';
		var fields = Dsq.Templates.getFormFields(post_id);

		if (Dsq.Templates.validateFields(post_id)) {

			if (!Dsq.jsonData.request.is_authenticated && !force &&
				((!Dsq.Utils.readCookie('skipped_auth') && !disqus_skip_auth && !Dsq.jsonData.forum.disqus_auth_disabled) || !Dsq.jsonData.forum.allow_anon_post)) {
				Dsq.Templates.checkExistingUser(post_id);
				return false;
			}
			var params = [];
			if (!Dsq.jsonData.request.is_authenticated) {
				params.push(fields.name.value,
					fields.email.value,
					fields.website.value);

				if (auth_choice == 'login' || auth_choice == 'register') {
					params.push({
						auth_choice: auth_choice,
						username: fields.username.value,
						password: fields.password.value,
						email: fields.email.value
					});
				} else {
					params.push(null);
				}

				params.push(null /* sharing options */, Dsq.$('dsq-subscribe-on-post' + append_id).value);
			} else {
				var service_checked = function(name) {
					var el = Dsq.$('dsq-sharing-' + name + append_id);
					return (el !== null && el.checked === true) ? '1' : '0';
				};
				params.push(null, null, null, null, {
					tw: service_checked('twitter'),
					fb: service_checked('facebook'),
					tr: service_checked('tumblr'),
					wp: service_checked('wordpress'),
					mt: service_checked('movabletype'),
					tp: service_checked('typepad'),
					yh: service_checked('yahoo')
				});
			}

			var frame = Dsq.frames['reply_' + (post_id ? post_id : 0)];
			frame.post.apply(frame, params);

			if (el_clicked) {
				Dsq.Templates.setLoadingButton(el_clicked, post_id);
			}
			
			if (force) {
				Dsq.Utils.createCookie('skipped_auth', true);	
			}
			
		} else {
			return false;
		}
	};

	this.editComment = function(el_clicked, post_id) {
		var edited_message = Dsq.$('dsq-edit-textarea-' + post_id).value;

		Dsq.Templates.setLoadingButton(el_clicked, post_id);
		Dsq.frames['edit_' + post_id].edit(post_id, edited_message);
	};

	this.toggleEdit = function(post_id) {
		var body = Dsq.$('dsq-comment-body-' + post_id);
		var message = Dsq.$('dsq-comment-message-' + post_id);

		if (!Dsq.Post.stateEditToggled[post_id]) {


			message.style.display = 'none';
			if (Dsq.$('dsq-edit-' + post_id)) {
				Dsq.$('dsq-edit-' + post_id).style.display = 'block';
			} else {

				var edit_area = document.createElement('div');
				edit_area.id = 'dsq-edit-' + post_id;
				edit_area.className = 'dsq-edit dsq-textarea';
				edit_area.innerHTML = ' \
				<div class="dsq-textarea-wrapper"> \
					<textarea class="dsq-edit-textarea" id="dsq-edit-textarea-' + post_id + '">' + message.innerHTML + '</textarea> \
				</div> \
				<div class="dsq-save-edit"> \
					<button type="button" onclick="Dsq.Templates.editComment(this, ' + post_id + ')" class="dsq-button-small">Save Edit</button> \
				</div> \
				<div id="dsq-edit-iframe-' + post_id + '" style="display: none"></div> \
				';

				body.appendChild(edit_area);

				if (!Dsq.frames['edit_' + post_id]) {
					var _meta = Dsq.jsonData.posts[post_id];
					Dsq.frames['edit_' + post_id] = new Dsq.ReplyFrame(Dsq.$('dsq-edit-iframe-' + post_id), post_id);
					Dsq.frames['edit_' + post_id].init();
					Dsq.frames['edit_' + post_id].setState(post_id, _meta.depth);
				}
			}
		} else {

			message.style.display = 'block';
			Dsq.$('dsq-edit-' + post_id).style.display = 'none';
		}
		
		Dsq.Post.stateEditToggled[post_id] = !Dsq.Post.stateEditToggled[post_id];
	};
	
	this.edit = function(el, post_id) {

		Dsq.Templates.toggleEdit(post_id);
	};

	this.toggleReply = function(post_id, button) {
		
		if(!this.stateReplyToggled[post_id]) {

			if (Dsq.$('dsq-reply-post-' + post_id)) {
				Dsq.$('dsq-append-post-' + post_id).style.display = 'block';
			} else {
				Dsq.$('dsq-append-post-' + post_id).innerHTML = Dsq.Templates.postBox(post_id);
				var container = Dsq.$('dsq-textarea-wrapper-' + post_id);
				if (!Dsq.frames['reply_' + post_id] && container) {
					var _meta = Dsq.jsonData.posts[post_id];
					Dsq.frames['reply_' + post_id] = new Dsq.ReplyFrame(container, post_id);
					Dsq.frames['reply_' + post_id].init(function() {

						Dsq.$('dsq-append-post-' + post_id).innerHTML = Dsq.Templates.postBox(post_id, true);
						Dsq.$('dsq-form-area-' + post_id).innerHTML = '';

						var theme = (typeof disqus_frame_theme == 'undefined') ? 'default' : disqus_frame_theme;
						Dsq.Iframes.showReplyIframeInContainer(Dsq.$('dsq-form-area-' + post_id), post_id, {theme: theme});

					});
					Dsq.frames['reply_' + post_id].setState(post_id, _meta.depth);
				}
			}
			Dsq.$('dsq-append-post-' + post_id).className = 'dsq-append-post';
			Dsq.$('dsq-comment-footer-reply-' + post_id).className = 'dsq-comment-footer-reply-active';
			
		} else {

			Dsq.$('dsq-append-post-' + post_id).style.display = 'none';
			Dsq.$('dsq-append-post-' + post_id).className = '';
			Dsq.$('dsq-comment-footer-reply-' + post_id).className = 'dsq-comment-footer-reply';
		}
		
		this.stateReplyToggled[post_id] = !this.stateReplyToggled[post_id];

		if(Dsq.Utils.ie && this.stateReplyToggled[post_id]) {

		}

		Dsq.Events.fire(Dsq.Events.REPLY_IFRAME_TOGGLED, {
			postId: post_id,
			opened: this.stateReplyToggled[post_id]
		});
	};
	
	this.moderateOptions = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		
		if(!Dsq.jsonData.request.is_moderator && !Dsq.jsonData.request.is_global_moderator) { return false; }

		var html;
		
		html = ' \
		<div class="dsq-moderate-options"> \
		<table>'
		+ (_meta.email ? '<tr><td>Email</td><td>' + _meta.email + '</td></tr>' : '')
		+ (_meta.ip ? '<tr><td>IP address</td><td>' + _meta.ip + '</td></tr>' : '')
		+ '<tr> \
			<td>Actions</td> \
			<td><ul>'
			+ (Dsq.jsonData.request.moderator_can_edit
				? '<li><a href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); Dsq.Popup._closePopup(null, true); return false;">Edit Comment</a></li>'
				: '')
			+ '<li><a href="#" onclick="Dsq.Post.removePost(' + post_id + ', 1); Dsq.Popup._closePopup(null, true); return false;">Delete Comment</a></li> \
			<li><a href="#" onclick="Dsq.Post.reportSpam(' + post_id + '); Dsq.Popup._closePopup(null, true); return false;">Mark Spam</a></li> \
			<li><a href="#" onclick="Dsq.Popup.blacklist(' + post_id + '); return false">Block User</a></li> \
			</ul></td> \
			</table> \
		</div> \
		';
		
		html += '<p>Go to the full <a href="http://disqus.com/comments/moderate/" target="_blank">moderate panel</a> for more options.</p>';
		
		return Dsq.Popup.popModal(html, 'Moderate Options', post_id);
	};
	
	this.placeholder = {
		'class': 'dsq-placeholder',
		'name': Dsq.Strings.NAME,
		'email': Dsq.Strings.EMAIL,
		'website': Dsq.Strings.WEBSITE + ' (' + Dsq.Strings.OPTIONAL.toLowerCase() + ')'
	};
	
	this.handlePlaceholder = function(evt, el, key) {
		var placeholder = Dsq.Templates.placeholder[key];
		var className = Dsq.Templates.placeholder['class'];
		
		switch(evt.type) {
			case 'focus':
				if(el.value == placeholder) {
					el.value = '';
					el.className = '';
				}
				break;

			case 'blur':
				if(el.value == '') {
					el.value = placeholder;
					el.className = className;
				}
				break;
			default:
				break;
		}
	};
	
	this.paginate = function(page, el_clicked) {

		var extra_params = '';

		if(typeof disqus_per_page != 'undefined') {
			extra_params += '&per_page=' + disqus_per_page;
		}
		if(typeof disqus_sort != 'undefined') {
			extra_params += '&sort=' + disqus_sort;
		}

		Dsq.$('dsq-pagination').innerHTML += '<img src="http://media.disqus.com/images/loading-small.gif">';
		
		if(el_clicked) {
			Dsq.Templates.setLoadingButton(el_clicked);
		}
		
		Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/thread.js'
			+ '?slug='	+ 'the_you_don8217t_need_more_friends_lobby'
			+ '&p='		+ page
			+ extra_params);
	};
	
	
	this.rate = function(el, id, vote) {


		if(Dsq.jsonData.request.is_authenticated || Dsq.jsonData.forum.allow_anon_votes) {
			if(vote == 1) {
				Dsq.$('dsq-like-' + id).innerHTML = '<img src="http://media.disqus.com/images/loading-small.gif">';
			}
			Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/vote.js'
				+ '?post_id='    + id
				+ '&vote='        + vote);
		} else {
			Dsq.Popup.login('To rate, please log in');
		}
	};

	this.voted = function(post_id, points, vote) {

		Dsq.$('dsq-like-pts-' + post_id).innerHTML = points + Dsq.Utils.pluralize(points, ' person', ' people') + ' liked this.';

		if(vote) {
			Dsq.$('dsq-like-' + post_id).innerHTML = 'You liked this.&nbsp;&nbsp;';
		}
	};




	this.postComment_onSuccess = function(response, parent_post_id, post_id) {
		var approved = response.message.post_meta.approved;

		if (parent_post_id) {
			Dsq.Post.toggleReply(parent_post_id);
		}

		Dsq.Popup._closePopup(null, true);
		
		if (approved) {
			Dsq.Post.incrementPostCount();
			Dsq.Post.outlineComment(post_id);
		} else {			
			var unapproved_msg = 'Thanks for posting!\
	 Your comment must be approved by a moderator before appearing here.\
			';
			Dsq.Popup.popModal(unapproved_msg, 'Comment awaiting approval', post_id);
		}

		var sharing_results = response.message.sharing_results;
		var sharing_errors = '';
		for (var service in sharing_results) {
			if (sharing_results.hasOwnProperty(service) === true) {
				if (sharing_results[service].error === true) {
					sharing_errors += service + ', ';
				}
			}
		}

		if (sharing_results.facebook && sharing_results.facebook.callback) {
			FB.ensureInit(function() {
				FB.Connect.streamPublish('', sharing_results.facebook.attachment);
			});
		}

		if (sharing_errors !== '') {
			var message = 'Your comment was posted, but there were errors sharing with the following connections: ';
			message += sharing_errors.replace(/,\s$/, '');
			message += '<p><a href="' + Dsq.jsonData.settings.disqus_url + '/profile/connections" target="_blank">Configure your connections here</a></p>'
			Dsq.Popup.popModal(message, 'Sharing options');
		}

		Dsq.Templates.setLoadingButton(false);
	};

	this.postComment_onFailure = function(response, parent_post_id, post_id) {

		Dsq.Templates.setLoadingButton(false);
	};
};




// TODO: It might be faster to use string methods to find all <li (...) </li> blocks and pass to Dsq.PostHandler manually.
Dsq.CommentsHandler = function(str, head, post_id, content, tail, offset, s) {
	var prepend_post = Dsq.Templates.prependPost(post_id);
	var append_post = Dsq.Templates.appendPost(post_id);

	content = content.replace(Dsq.POST_RE, Dsq.PostHandler);
	Dsq.Templates.postLoopCounter++;
	head = Dsq.Templates.Filters.commentContainer(post_id, head);
	return prepend_post + head + content + tail + append_post;
};

Dsq.PostHandler = function(str, h_head, post_id, h_content, h_tail, b_head, b_content, b_tail, offset, s) {
	var prepend_header = Dsq.Templates.postPrependHeader(post_id);
	var append_header = Dsq.Templates.postAppendHeader(post_id);
	var prepend_body = Dsq.Templates.preBody(post_id);
	var append_body = Dsq.Templates.postBody(post_id);
	var append_footer = Dsq.Templates.postFooter(post_id);

	b_content = b_content.replace(Dsq.POST_BODY_RE, Dsq.PostBodyHandler);
	return h_head + prepend_header + h_content + append_header + h_tail + b_head + prepend_body + b_content + append_body + b_tail + append_footer;
};

Dsq.PostBodyHandler = function(str, head, post_id, content, tail, offset, s) {
	content = Dsq.Templates.Filters.commentContent(post_id, content);
	return head + content + tail;
};

Dsq.MediaPostHandler = function(str, args, offset, s) {
	args = args.split(' ');
	if(args[0] == 'seesmic') {
		return '<br />' + Dsq.Templates.mediaSeesmic(args[1], args[2]);
	}
	return '';
};


/**
 * Shorcuts
 */
Dsq.$ = function(element) { return document.getElementById(element); };
Dsq.$b = document.body || document.getElementsByTagName('body')[0];


/**
 * Dsq.Debug: Logging functions.
 */

Dsq.Debug = new function() {this.log=function(s){};this.profile=function(f){if(typeof f == 'function')return f();else return eval(f);};};


/**
 * Dsq.Urls: URL paths
 */
Dsq.Urls = new function() {
	this.LOGIN = '/profile/login/';
	this.LOGOUT = '/logout/';
	this.REPLY = 'http://scobleizer.disqus.com/the_you_don8217t_need_more_friends_lobby/reply.html';
	this.REQUEST_USER_PROFILE = '/AnonymousUser/';
	this.REQUEST_USER_AVATAR = 'http://media.disqus.com/images/noavatar92.png';
};
// Dsq.Urls

/**
 * Dsq.Validators: Validation for form fields
 */
Dsq.Validators = new function() {
	this.VALID_EMAIL_RE = /^[a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*\@(([a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*)+\.[a-z]{2,}|([0-9]+\.){3}[0-9]+)$/i;
	this.name = function(name) {
		var error = false;

		if(typeof Dsq.Templates.placeholder !== 'undefined' &&
		   name == Dsq.Templates.placeholder.name) {
			error = true;
		}
		if(name.length <= 1) {
			error = true;
		}

		if(error) {
			return "Please enter a name to comment.";
		} else {
			return true;
		}
	};
	this.email = function(addr) {
		if(Dsq.Validators.VALID_EMAIL_RE.test(addr)) {
			return true;
		} else {
			return "Please enter a valid email to comment.";
		}
	};
	this.url = function(addr) {
		if(!addr || addr.indexOf('.') != -1) {
			return true;
		} else {
			return "Please check your website URL (this field is optional).";
		}
	};

	this.validate = function(bulk_validation, failure_callback) {
		failure_callback = failure_callback || function(e){ alert(e); };

		for(var i = 0; i < bulk_validation.length; i++) {
			v = bulk_validation[i];
			ret = v.validator(v.value);
			if(ret !== true) {
				failure_callback(ret);
				return false;
			}
		}
		return true;
	};
};

/**
 * Dsq.Utils: Generic utility functions.
 */
Dsq.Utils = new function() {
	this.ie = /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
	this.ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;
	this.ie6 = (!window.XMLHttpRequest) ? true: false;
	this.webkit = navigator.userAgent.indexOf('AppleWebKit/') >= 0;
	this.gebiFromElementCollectionCache = {};
	this._styleSheet = null;

	this.gebiFromElement = function(el, id, tag) {
		// This only method only helps IE.
		if(!this.ie) {
			return Dsq.$(id);
		} else {
			var cacheKey = el.id + '-' + tag;
			tag = tag || 'div';
			if(typeof this.gebiFromElementCollectionCache[cacheKey] != 'undefined') {
				collection = this.gebiFromElementCollectionCache[cacheKey];
			} else {
				collection = el.getElementsByTagName(tag);
				this.gebiFromElementCollectionCache[cacheKey] = collection;
			}

			for(var i = 0; i < collection.length; i++) {
				if(collection[i].id == id) {
					return collection[i];
				}
			}
			return null;
		}
	};

	this.execOnReady = function(func) {
		var node = document.createElement('document:ready');
		try {
			node.doScroll('left');
			func();
			node = null;
		} catch(err) {
			setTimeout(function() { Dsq.Utils.execOnReady(func); }, 10);
		}
	};


	// Courtesy of http://www.quirksmode.org/js/cookies.html
	this.createCookie = function(name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	};

	this.readCookie = function(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	};

	this.eraseCookie = function(name) {
		Dsq.Utils.createCookie(name,"",-1);
	};

	this.deleteNode = function(node) {
		if(node) {
			this.deleteChildren(node);
			if(typeof node.outerHTML != 'undefined') { node.outerHTML = ''; }
			else if(node.parentNode) { node.parentNode.removeChild(node); }
			delete node;
		}
	};

	this.deleteChildren = function(node) {
		if(node) {
			for(var x = node.childNodes.length-1; x >= 0; x--) {
				var childNode = node.childNodes[x];
				if(childNode.hasChildNodes()) { this.deleteChildren(childNode); }
				if(typeof childNode.outerHTML != 'undefined') { childNode.outerHTML = ''; }
				else node.removeChild(childNode);
				delete childNode;
			}
		}
	};

	this.findPos = function(obj) {
		var curleft = 0;
		var curtop = 0;
		if (obj.offsetParent) {
			do {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			} while (obj = obj.offsetParent);
		}
		return [curleft,curtop];
	};

	this.getWindowSize = function() {
		var windowWidth = -1;
		var windowHeight = -1;

		if(typeof(window.innerWidth) == 'number') { //Non-IE
			windowWidth = window.innerWidth;
			windowHeight = window.innerHeight;
		} else if(document.documentElement) { // IE 6+ in 'standards compliant mode'
			windowWidth = document.documentElement.clientWidth || document.body.clientWidth;
			windowHeight = document.documentElement.clientHeight || document.body.clientHeight;
		}

		return [windowWidth, windowHeight];
	}

	this.getScrollPos = function() {
		var scrollWidth, scrollTop;

		if(document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollWidth)) {
			scrollWidth = document.documentElement.scrollWidth;
			// IE is weird here.  If no doctype is provided, document.body.scrollTop is 0,
			// otherwise document.documentElement.scrollTop is 0.
			scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
		} else if(document.body.scrollTop && document.body.scrollWidth) {
			scrollWidth = document.body.scrollWidth;
			scrollTop = document.body.scrollTop;
		}

		return [scrollWidth, scrollTop];
	}

	this.addEventListener = function(instance, eventName, listener) {
		var listenerFn = listener;
		if (instance.addEventListener) {
			instance.addEventListener(eventName, listenerFn, false);
		} else if (instance.attachEvent) {
			listenerFn = function() {
				listener(window.event);
			};
			instance.attachEvent("on" + eventName, listenerFn);
		} else {
			throw new Error("Event registration not supported");
		}
		return {
			instance: instance,
			name: eventName,
			listener: listenerFn
		};
	};

	this.removeEventListener = function(event) {
		var instance = event.instance;
		if (instance.removeEventListener) {
			instance.removeEventListener(event.name, event.listener, false);
		} else if (instance.detachEvent) {
			instance.detachEvent("on" + event.name, event.listener);
		}
	};

	this.fixIframesIE = function(id) {
		var disqusThread = Dsq.$(disqus_container_id);
		var iframes = disqusThread.getElementsByTagName('iframe');

		if(id) {
			var container = Dsq.$(id);
		} else {
			var container = Dsq.$('dsq-content');
		}

		for(i = 0; i < iframes.length; i++) {
			if (container) {
				iframes[i].style.width = container.offsetWidth;
			}
		}
	};

	this.getElementsByClassName = function(oElm, strTagName, strClassName) {
	/* Credit: Jonathan Snook [http://www.snook.ca/jonathan], Robert Nyman [http://www.robertnyman.com] */
		var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
		var arrReturnElements = new Array();
		strClassName = strClassName.replace(/\-/g, "\\-");
		var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
		var oElement;
		for(var i = 0; i < arrElements.length; i++) {
			oElement = arrElements[i];
			if(oRegExp.test(oElement.className)) {
				arrReturnElements.push(oElement);
			}
		}
		return (arrReturnElements);
	};

	this.postToUrl = function(url, post_data, opt_redirect) {
		var form = document.createElement('form');
		var iframe_container = document.createElement('div');
		var id = 'dsq-temp-iframe-' + (new Date()).getTime();

		form.method = 'POST';
		form.action = url;
		if (!opt_redirect) {
			form.target = id;
		}
		iframe_container.innerHTML = '<iframe style="display:none" name="' + id + '" id="' + id + '"></iframe>';

		for(var key in post_data) {
			if(post_data.hasOwnProperty(key)) {
				var input = document.createElement('input');
				input.name = key;
				input.type = 'hidden';
				input.value = post_data[key];

				form.appendChild(input);
			}
		}

		Dsq.$b.appendChild(iframe_container);
		Dsq.$b.appendChild(form);
		form.submit();
	};

	// Strips integer id from id of element in the form ('some-id-###')
	this.extractId = function(e) {
		var chunks = e.id.split('-');
		if(chunks.length <= 1) {
			return 0;
		} else {
			var retval = parseInt(chunks[chunks.length-1]);
			return !isNaN(retval) ? retval : null;
		}
	};

	this.getStyle = function(el, styleProp) {
		if(el.currentStyle) {
			var y = el.currentStyle[styleProp];
		} else if(window.getComputedStyle) {
			var y = document.defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);
		}

		if(y == 'transparent' || y == '') {
			this.getStyle(el.parentNode, styleProp);
		} else {
			return y;
		}
	};

	this.execScript = function(url, append_qs, container) {
		var script = document.createElement('script');
		append_qs = typeof append_qs == 'undefined' ? true : append_qs;
		container = container || Dsq.container;

		if(append_qs) {
			var j = (url.indexOf('?') >= 0) ? '&' : '?';
			url += j + (new Date()).getTime();
		}
		script.type = 'text/javascript';
		script.charset = 'UTF-8';
		script.src = url;
		container.appendChild(script);
		return script;
	};

	this.pluralize = function(num, singular, plural) {
		return (num != 1) ? plural || 's' : singular || '';
	};

	this.getRequestParams = function(queryString /* optional */) {
		var pairs, tuple;
		var params = {};

		queryString = queryString || window.location.search.substring(1);
		pairs = queryString.split('&');

		for (var i = 0, pair; pair = pairs[i]; i++) {
			tuple = pair.split('=');
			params[tuple[0]] = (tuple[1] || true);
		}

		return params;
	};

	this.addCssRule = function(selector, styleText, index) {
		var stylesheet;
		index = index || 0;

		if(!this._styleSheet) {
			var styleEl = document.createElement('style');
			document.getElementsByTagName('head')[0].appendChild(styleEl);
			this._styleSheet = styleEl.sheet;
			if(!this._styleSheet) {
				// IE does not like our newly created stylesheet.
				this._styleSheet = document.styleSheets[document.styleSheets.length-1];
			}
		}
		stylesheet = this._styleSheet;

		if(stylesheet.insertRule) {
			var ruleText = selector + ' { ' + styleText + ' }';
			if(index == -1) {
				index = stylesheet.cssRules.length;
			}
			stylesheet.insertRule(ruleText, index);
		} else if(stylesheet.addRule) {
			stylesheet.addRule(selector, styleText, index);
		}
	};

	this.forEachIn = function(obj, callback) {
		for(var key in obj) {
			if(obj.hasOwnProperty(key)) {
				callback(key, obj[key]);
			}
		}
	};

	this._interpolateGlobalContext = {
		// values that get used a lot and are global to the request
		'profile_url': Dsq.Urls.REQUEST_USER_PROFILE,

		'disqus_url': Dsq.jsonData.settings.disqus_url,
		'media_url': Dsq.jsonData.settings.media_url,
		'request_username': Dsq.jsonData.request.username,
		'request_display_username': Dsq.jsonData.request.display_username,
		'forum_name': Dsq.jsonData.forum.name
	};

	this.renderFromContextStack = function(key, contexts) {
		// Returns the first instance of `key` in the array of objects `contexts` or else ''
		for (var i=0; i<contexts.length; i++) {
			if (contexts[i][key] !== undefined) {
				return String(contexts[i][key]);
			}
		}
		throw new Error('key ' + key + ' not found in context');
	};

	var that = this;
	this.interpolate = function(fmt, opt_localContext) {
		// Interpolate `fmt` named-format string with an assumed global context.
		// Based on `interpolate` in django.views.i18n
		var contextStack = [opt_localContext || {}, that._interpolateGlobalContext];
		return fmt.replace(/%\(\w+\)s/g, function(match){
			return that.renderFromContextStack(match.slice(2,-2), contextStack);
		});
	};

	this.stripTags = function(s) {
		// Removes HTML tags from `s`
		return s.replace(/(<([^>]+)>)/g,"");

	};

	this.assert = function(b) {
		if (!b) {
			throw new Error('Assertion error.');
		}
	};

};
// Dsq.Utils

/**
 * Dsq.Popup: Popup helper functions.
 */
Dsq.Popup = new function() {
	this.timeHide = new Array();
	this.timeShow = new Array();
	this.activePopup = {};
	this.profileCache = {};
	this.statusCache = {};

	this.showTimer = function(post_id) {
		// clear the hide timer
		clearTimeout(this.timeHide[post_id]);

		// start the timer
		if(!Dsq.Popup.profileIsOn && !Dsq.Thread.adminIsOn) {
			this.timeShow[post_id] = setTimeout("Dsq.Popup.popProfile(\"" + post_id + "\")", 400);
		}
	};

	this.hideTimer = function(post_id) {
		// clear the show timer
		clearTimeout(this.timeShow[post_id]);
	};

	this.updateProfile = function(username) {
		// Callback from /embed/profile.js
		if (this.statusCache[username]) {
			var statusEl = Dsq.$('dsq-profile-status-' + username);
			statusEl.innerHTML = this.statusCache[username];
			statusEl.style.display = 'block';
		}

		if (this.profileCache[username]) {
			var _cache = this.profileCache[username];

			var _genhtml = function(text) { return '<span><big>' + text + '</big></span>'; };
			var _no_comments = _genhtml(Dsq.FmtStrings.NUMBER_OF_COMMENTS(_cache.comments_count));
			var _no_likes = _genhtml(Dsq.FmtStrings.NUMBER_OF_LIKES(_cache.likes_count));
			var _no_points = _genhtml(Dsq.FmtStrings.NUMBER_OF_POINTS(_cache.points));

			var statsEl = Dsq.$('dsq-popup-profile-user-stats-' + username);
			statsEl.innerHTML = '';

			if (Dsq.jsonData.users[username].registered) {
				statsEl.innerHTML = _no_comments + _no_likes;
			}
			statsEl.innerHTML += _no_points;

			var activeSites = '';
			for (var i = 0; i < _cache.active_sites.length; i++) {
				var site = _cache.active_sites[i];
				activeSites += '<li><a href="' + site.url + '"> \
					<img src="' + site.favicon + '"/ width="16" height="16"/></a>\
					<a href="' + site.url + '">' + site.name + '</a></li>';
			}
			if (activeSites !== '') {
				Dsq.$('dsq-popup-profile-active-sites-' + username).innerHTML = activeSites;
			} else {
				Dsq.$('dsq-popup-profile-active-sites-' + username).innerHTML = 'This site.';
			}

			var moderatedSites = '';
			for (var i = 0; i < _cache.moderated_sites.length; i++) {
				var site = _cache.moderated_sites[i];
				moderatedSites += '<li><a href="' + site.url + '"> \
					<img src="' + site.favicon + '"/ width="16" height="16"/></a>\
					<a href="' + site.url + '">' + site.name + '</a></li>';
			}
			if (moderatedSites !== '') {
				Dsq.$('dsq-popup-profile-moderated-' + username).innerHTML = moderatedSites;
			} else {
				Dsq.$('dsq-popup-profile-moderated-wrapper-' + username).innerHTML = '';
			}
		}

		// Reposition popup after full HTML is rendered
		if(Dsq.Popup.activePopup && Dsq.Popup.activePopup.el) {
			Dsq.Popup.initPopup(Dsq.Popup.activePopup.el, Dsq.Popup.activePopup.id, Dsq.Popup.activePopup.type);
		}

	};

	this.showCookieMsgs = function() {
		var title = '';
		var message = '';
		var numAlerts = 0;

		Dsq.Utils.forEachIn(Dsq.jsonData.cookie_messages, function(k, v) {
			if (!v) return;

			switch(k) {
				// Cookie: Twitter
				case 'post_twitter':
					if (v === 'error') {
						title = 'Twitter Error!';
						message += '<li id="dsq-msg-twitter-error">Oops, we couldn\'t tweet this comment. Please check your <a href="http://disqus.com/account/services">account settings</a>.</li>';
					} else {
						var _msg = v.split(':');
						title = 'Tweeted!';
						message += '<li id="dsq-msg-twitter-success">Your comment was successfully tweeted. <a href="http://twitter.com/' + _msg[0] + '/status/' + _msg[1] + '">Click here to view the tweet</a>.</li>';
					}
					break;
				// Cookie: Unapproved Post
				case 'post_not_approved':
					title = 'Comment awaiting approval by a moderator';
					message += '<li id="dsq-msg-post-not-approved">Your comment must be approved by a moderator before appearing here.</li>';
					break;
				// Cookie: Profile Found
				case 'post_has_profile':
					title = 'Use your existing commenter profile';
					message += '<li id="dsq-msg-post-has-profile">You have just posted your commment as a <span class="dsq-badge-guest">Guest</span>, but you may already have a <span class="logo-disqus">Disqus</span> Profile.<br /><br /><a href="http://disqus.com/claim">Log in and claim this comment!</a></li>';
					break;
				case 'user_created':
					var _data = v.split(':');
					title = 'Profile created!';
					message += '<li id="dsq-msg-user-created">You have just created a <span class="logo-disqus">Disqus</span> Profile, the best way to claim, manage, and track your comments all over the web. \
					<br /><br />A confirmation is being sent to <strong>' + _data[1] + '</strong>. Please check for this email in order to verify your profile. \
					<ul class="dsq-list-tick"> \
						<li>Your username is <strong>' + _data[0] +'</strong>. <a href="http://disqus.com/people/' + _data[0] + '/" target="_blank">Click here to view your public profile</a>.</li> \
						<li>Be sure to set your profile picture, as well as connect your <span class="dsq-badge-facebook">Facebook</span> and <span class="dsq-badge-twitter">Twitter</span> accounts. <a href="http://disqus.com/account/" target="_blank">Click here for account settings</a>.</li> \
					</ul> \
					</li>'
					break;
				default:
					break;
			}
			numAlerts++;
		});

		if(numAlerts > 1) {
			message = '<ul class="dsq-list-bluebullet">' + message;
			message += '</ul>';
			title = 'Thanks for posting!';
		}
		if(numAlerts > 0) {
			if(typeof(disqus_cookie_msgs) == 'function') {
				disqus_cookie_msgs(message, title);
			} else {
				Dsq.Popup.popModal(message, title);
			}
		}
	};

	this.helpBadges = function(post_id) {
		var html = ' \
			<ul class="dsq-popup-help"> \
				<li><span class="dsq-badge dsq-badge-verified">Verified</span> has a <span class="logo-disqus">Disqus</span> Profile with a confirmed email address.</li> \
				<li><span class="dsq-badge dsq-badge-registered">Registered</span> has a <span class="logo-disqus">Disqus</span> Profile, but has not yet confirmed his or her email address.</li> \
				<li><span class="dsq-badge dsq-badge-guest">Guest</span> is not logged in with any account and has not claimed his or her comments.</li> \
				<li class="dsq-help-otheraccts">Other accounts</li> \
				<li><span class="dsq-badge dsq-badge-facebook">Facebook</span> is using his or her Facebook profile via Facebook Connect.</li> \
				<li><span class="dsq-badge dsq-badge-twitter">Twitter</span> is using his or her Twitter profile via Twitter Sign-in.</li> \
				<li><span class="dsq-badge dsq-badge-openid">OpenID</span> is using his or her OpenID.</li> \
			</ul> \
		';

		this.popModal(html, 'Help: Types of Commenters', post_id);
		return;
	};

	this.permalink = function(post_id) {
		var header = 'Link to this comment';
		var body = '<strong>You are anchored to</strong>:<br />' + document.location.protocol + '//' + document.location.host + document.location.pathname + document.location.search + '#comment-' + post_id;

		this.popModal(body, header, post_id);
	};

	this.login = function(header, body) {
		var h = header || 'Login or Register';
		var b = body || '';
		b += Dsq.Templates.frameLogin({id: 'dsq-popup-login'});
		b += '</iframe>'; // HACK: Sometimes there is something funky with the IFRAME SRC that causes no end tag
		this.popModal(b, h, null, true, 'dsq-popup-login');
	};

	this.blacklist = function(id) {
		var _meta = Dsq.jsonData.posts[id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		var title = 'Add to Blacklist';
		var message = ' \
		Adding this person to the blacklist will block him or her from commenting on this site. Check the following types that you would like to add to the blacklist:'
		+ (userData['registered'] ?
			'<div class="dsq-blacklist-option"> \
				<input id="dsq-blacklist-username" type="checkbox" checked> \
				<label for="dsq-blacklist-username"><strong>Username</strong>: ' + userData['username'] + '</label> \
			</div>'
			: '')
		+ (_meta.email ?
			'<div class="dsq-blacklist-option"> \
				<input id="dsq-blacklist-email" type="checkbox" checked> \
				<label for="dsq-blacklist-email"><strong>Email address</strong>: ' + _meta.email + '</label> \
			</div>'
			: '')
		+ '<div class="dsq-blacklist-option"> \
			<input id="dsq-blacklist-ip" type="checkbox" onclick="Dsq.$(\'dsq-blacklist-ip-warning\').style.display=\'block\'"> \
			<label for="dsq-blacklist-ip"><strong>IP address</strong>: ' + _meta.ip + '</label> \
		</div> \
		';

		message += ' \
			<p id="dsq-blacklist-ip-warning" style="display:none">	\
				Note: Blocking this person\'s IP address may also unintentionally prevent others, who share his/her IP address, from commenting on this site. \
				This may include people who are sharing the same computer, living in the same house, or using the same Internet provider. Only block an IP address as a last resort. \
			</p> \
		';

		message += ' \
			<p style="text-align:center"><button type="button" onclick="Dsq.Post.blockUser(' + id + '); this.disabled=true; this.innerHTML=\'Just one moment...\'">Add to Blacklist</button></p> \
		';

		Dsq.Popup.popModal(message, title);
	};

	this.remoteAccountSettings = function() {
		var body = '';
		// Set up IFrame.
		var params = {};
		var base_url = 'http://disqus.com/forums/scobleizer/_auth/embed/remote_settings/';
		var attributes = {id: 'dsq-popup-account-settings'};
		if (typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}

		body = Dsq.Templates._frameGeneric(base_url, params, attributes);
		this.popModal(body, 'Account Settings', null, true, 'dsq-popup-account-settings');
	};

	this.popModal = function(message, title, post_id, use_listener, extra_classes) {
		var container = document.createElement('div');
		var header, body;

		Dsq.Popup._closePopup(null, true);

		if(typeof(title) == 'undefined') { title = ''; }
		if(typeof(use_listener) == 'undefined') { use_listener = true; }

		if(post_id) {
			container.id = 'dsq-popup-message-' + post_id;
		} else {
			container.id = 'dsq-popup-message';
		}

		header = title;
		body = message;

		container.innerHTML = Dsq.Templates.popupModal(header, body);
		Dsq.Popup.initPopup(container, post_id, 'message', extra_classes);
		if(use_listener) {
			Dsq.Popup.popupListener = Dsq.Utils.addEventListener(document, 'mouseup', Dsq.Popup._closePopup);
		}
	};

	this.popAlert = this.popModal;

	this.loading = function(post_id) {
		var title = Dsq.Strings.JUST_A_MOMENT;
		var body = '<div style="text-align:center; padding: 5px 0 10px 0"><img src="http://media.disqus.com/images/loading.gif" alt="" /></div>'
		Dsq.Popup.lightbox(body, title, post_id);
	};

	this.lightbox = function(message, title, post_id) {
		// Wraps Dsq.Popup.popModal

		var overlay = document.createElement('div');
		overlay.id = 'dsq-overlay';
		overlay.className = 'dsq-overlay';
		Dsq.$b.appendChild(overlay);
		
		Dsq.Popup.popModal(message, title, post_id, false, 'dsq-lightbox');
	};

	this.popProfile = function(post_id, userKey) {
		var post = Dsq.jsonData['posts'][post_id];
		if (post && post.has_been_anonymized) {
			Dsq.Popup.popModal('This message was anonymized by its previous owner.', 'Anonymized', post_id);
			return;
		}

		if(post_id) {
			userKey = Dsq.jsonData['posts'][post_id].user_key;	
		}
		var userData = Dsq.jsonData['users'][userKey];
		var elId = 'dsq-popup-profile-' + userKey;
		var container = document.createElement('div');

		if(this.activePopup.el) {
			this._closePopup(null, true);
			if(this.activePopup.linkClicked) {
				this.activePopup.linkClicked = false;
				return;
			}
		}

		container.id = elId;
		container.innerHTML = Dsq.Templates.popupProfile(userKey);

		this.initPopup(container, post_id, 'profile');
		this.popupListener = Dsq.Utils.addEventListener(document, 'mouseup', this._closePopup);

		if(!this.profileCache[userKey]) {
			Dsq.Utils.execScript('http://disqus.com/embed/profile.js'
				+ '?username=' + userKey
				+ '&anon=' + (userData['registered'] ? 0 : 1)
				+ '&f=' + Dsq.jsonData['request'].forum);
		} else {
			this.updateProfile(userKey);
		}
	};

	this._closePopup = function(e, force) {
		var activePopup = Dsq.Popup.activePopup.el;
		var id = Dsq.Popup.activePopup.id;
		var link = 'dsq-avatar-' + id; // HACK: Specific to profile toggle target

		// HACK: This event should be gone if there is no active popup.
		if(!activePopup) {
			return;
		}
		if(force || !Dsq.Popup.isClicked(e, activePopup.id)) {
			// TODO: This is breaking iE?
			if(Dsq.Popup.popupListener) {
				Dsq.Utils.removeEventListener(Dsq.Popup.popupListener);
			}
			
			// Kill overlay
			var overlay = Dsq.$('dsq-overlay');
			if(overlay) { Dsq.Utils.deleteNode(overlay); }
			
			try {
				Dsq.Utils.deleteNode(activePopup);
			} catch(e) {
				// HACK: IE6 throws an error when using deleteNode() with a node containing a <table> in the html.
				activePopup.parentNode.removeChild(activePopup);
			}
			Dsq.Popup.activePopup = {};
		}

		if(!force && Dsq.Popup.isClicked(e, link)) {
 			Dsq.Popup.activePopup.linkClicked = true;
		}

	};

	this.initPopup = function(popup, post_id, type, extra_classes) {
		popup.className = 'dsq-popup dsq-popup-' + type + ' ' + (extra_classes ? extra_classes : '');
		if(Dsq.Utils.ie6 || Dsq.Utils.ie7) {
			// HACK: We can't modify the body before it's ready, so we need
			//       to use an IE-safe "DOMReady" workaround before loading
			//       our popup.
			Dsq.Utils.execOnReady(function() {Dsq.$b.appendChild(popup); });
		} else {
			Dsq.$b.appendChild(popup);
		}

		popup.style.display = 'block';

		var xPos = (Dsq.Utils.getWindowSize()[0] - popup.offsetWidth) / 2;
		var yPos = (Dsq.Utils.getWindowSize()[1] - popup.offsetHeight) / 2;

		if(Dsq.Utils.ie6) {
			yPos += Dsq.Utils.getScrollPos()[1];
		}

		popup.style.left = xPos + 'px';
		popup.style.top = yPos + 'px';

		Dsq.Popup.activePopup = {
			'el' : popup,
			'id' : post_id,
			'type': type,
			'linkClicked' : false
		};
	};

	this.isClicked = function(e, id) {
		var t = e.target || e.srcElement;
		while(t && t.parentNode) {
			if(t.id == id) {
				return true;
			}

			t = t.parentNode;
		}
		return false;
	};
};
// Dsq.Popup

/**
 * Dsq.Templates
 */
Dsq.Templates = new function() {
	/*
	 * Counter keeping track of the number of posts iterated over.
	 */
	this.postLoopCounter = 0;
	this.filters = {};
	this.addPostContainer = 'dsq-post-add';
	this.textareaContainer = 'dsq-post-add';

	this.registerTemplate = function(name, func) {
		this['$$_' + name] = func;

		if(typeof DsqLocal.Filters != 'undefined'
		&& typeof DsqLocal.Filters[name] == 'function') {
			// Push filters to this.filters to unify code.
			this.filters[name] = this.filters[name] || [];
			this.filters[name].push(DsqLocal.Filters[name]);
		}

		this[name] = function() {
			var ret;

			if(typeof DsqLocal.Templates != 'undefined'
			&& typeof DsqLocal.Templates[name] == 'function') {
				ret = DsqLocal.Templates[name].apply(this, arguments);
			}

			if(ret === undefined) {
				ret = this['$$_' + name].apply(this, arguments);
			}

			if(this.filters[name]) {
				var args = [ret];

				args.push.apply(args, arguments);
				for(var i = 0; i < this.filters[name].length; i++) {
					ret = this.filters[name][i].apply(this, args);
				}
			}

			return ret;
		};
	};

	this.registerFilter = function(name, func) {
		this.filters[name] = this.filters[name] || [];
		this.filters[name].push(func);
	};

	/**
	 * Dsq.Templates.Filters
	 */
	this.Filters = new function() {
		this.commentContainer = function(post_id, s) {
			var _meta = Dsq.jsonData.posts[post_id];
			var classes = [];
			if(Dsq.jsonData.request.page > 1) {
				classes.push('dsq-append');
			}

			//
			// Extra classes used for custom themes
			//

			if(_meta.depth) {
				classes.push('dsq-comment-child', 'dsq-depth-' + _meta.depth, 'dsq-parent-is-' + _meta.parent_post_id);
			}


			//

			if(_meta.author_is_creator) {
				// TODO: We need to deprecate the "special" class since it is not properly prefixed.
				classes.push('special', 'dsq-special');
			}
			if(_meta.author_is_moderator) {
				classes.push('dsq-moderator');
			}
			classes.push(['dsq-odd', 'dsq-even'][Dsq.Templates.postLoopCounter % 2]);

			s = s.substring(0, s.lastIndexOf('>'));
			return s + ' class="dsq-comment ' + classes.join(' ') + '" style="margin-left:' + _meta.depth*30 + 'px">';
		};

		this.commentContent = function(post_id, s) {
			var _meta = Dsq.jsonData.posts[post_id];
			if (_meta.killed) {
				return '<em>Comment removed.</em>';
			} else if (!_meta.approved) {
				return '<em>This comment was flagged for review.</em>';
			}

			s = s.replace(Dsq.MEDIA_POST_RE, Dsq.MediaPostHandler);
			return s;
		};
	};

	//
	// Thread
	//
	// TODO: These need to be stripped of all Django template tags.

	this.authPost = function() {
		if (!Dsq.jsonData.context.show_reply) {
			return '';
		}
		var result = [];
		result = result.concat([
				'<div id="dsq-auth"',
						Dsq.jsonData.integration.reply_position ? 'class="dsq-auth-bottom"' : '',
						'>',
					'<div class="dsq-by">',
						'<a href="http://disqus.com" target="_blank">',
							(Dsq.jsonData.integration.disqus_logo ?
								Dsq.Utils.interpolate('<img src="%(media_url)s/images/embed/by-disqus.png" alt="discussion by DISQUS">') :
								Dsq.Utils.interpolate('<img src="%(media_url)s/images/embed/dsq-button-120x19.png" alt="discussion by DISQUS">')
							),
						'</a>',
					'</div>',
					'<div class="dsq-auth-header">',
						'<h3 id="dsq-add-new-comment" class="dsq-h3-addcomment">',
								Dsq.Strings.ADD_NEW_COMMENT,
						'</h3>',
						'<div id="dsq-login">',
						(!Dsq.jsonData.request.is_authenticated && Dsq.jsonData.forum.allow_anon_post
								? '<p class="dsq-login-message" id="dsq-login-message">You are commenting as a <a class="dsq-help" title="Click for more information" href="#" onclick="Dsq.Popup.helpBadges(); return false">Guest</a>. You may select one to log into:</p>'
								: '')
		]);
		if (!Dsq.jsonData.request.is_authenticated) {
			result = result.concat([
							Dsq.Utils.interpolate(
								'<a id="dsq-login-toggle" href="%(disqus_url)s%(login_url)s?next=article:%(thread_id)s" onclick="Dsq.Popup.login(); return false"><img class="dsq-login-icon" src="%(media_url)s/images/dsq-profile-btn.png" title="%(log_into)s" alt="%(log_into)s"/></a>',
								{login_url: Dsq.Urls.LOGIN, thread_id: Dsq.jsonData.thread.id, log_into: Dsq.Strings.LOG_INTO_DISQUS}
								),
							'&nbsp; ',
							(Dsq.jsonData.context.use_fb_connect ?
								'<div id="dsq-fbc-login" onlogin="DisqusFbcParentController.onLogin()" size="medium" background="light" length="short" style="display:inline; margin-right:7px"></div>' :
								''
							),
							(Dsq.jsonData.context.use_twitter_signin ?
								Dsq.Utils.interpolate(
									'<div id="dsq-twitter-login" class="dsq-twitter-login" onclick="Dsq.Twitter.startTwitterConnect();" style="display:inline; cursor: pointer"><img src="%(media_url)s/images/twitter-signin-short.png" style="margin-right:7px" /></div>', {}) : ''),
							(Dsq.jsonData.context.use_openid ?
								Dsq.Utils.interpolate(
									'<div id="dsq-openid-login" class="dsq-openid-login" onclick="Dsq.OpenID.requestURL();" style="display:inline; cursor:pointer;"><img src="%(media_url)s/images/openid-login-button.png"/></div>', {}
								) : '')
			]);
		}
		result = result.concat([
						'</div>', // dsq-login
					'</div>', // dsq-auth-header
					'<div id="dsq-authenticated" class="dsq-authenticated" ',
						Dsq.jsonData.request.is_authenticated ? 'style="display:block"' : '',
						'>',
						'<div class="dsq-authenticated-pic">',
								Dsq.Utils.interpolate('<a href="%(url)s" title="%(request_display_username)s">' +
																			'<img class="dsq-post-avatar" src="%(avatar_url)s" alt="" /></a>',
																			{avatar_url: Dsq.Urls.REQUEST_USER_AVATAR,
																			url: (Dsq.jsonData.request.is_remote
																					 ? Dsq.jsonData.request.url
																					 : Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE) }),
						'</div>',
						'<div class="dsq-authenticated-info">',
							'<ul>',
								'<li>',
									(Dsq.jsonData.request.is_remote
										? Dsq.FmtStrings.LOGGED_IN_AS(
												Dsq.Utils.interpolate('<a href="%(url)s" title="%(request_display_username)s">%(request_display_username)s</a>', {url:Dsq.jsonData.request.url})
										  )
										: Dsq.FmtStrings.LOGGED_IN_AS(
												Dsq.Utils.interpolate('<a href="%(disqus_url)s%(profile_url)s" title="%(request_display_username)s">%(request_display_username)s</a>')
											)
									),
								'</li>',
								'<li class="logout">',
									(!Dsq.jsonData.request.is_remote
										? Dsq.Utils.interpolate('<img class="dsq-login-icon" src="%(media_url)s/images/dsqicon12.png" alt="%(logged_in_as)s"/>&nbsp',
											{logged_in_as: Dsq.FmtStrings.LOGGED_IN_AS(Dsq.jsonData.request.display_username)})
										: ''),

									(!Dsq.jsonData.request.is_remote
										? Dsq.Utils.interpolate('<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="%(logout_from_disqus)s">',
											{logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN, logout_from_disqus: Dsq.FmtStrings.LOGOUT_FROM('DISQUS')})
										: ((Dsq.jsonData.request.remote_domain == 'twitter')
												? Dsq.Utils.interpolate('using Twitter (<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="Logout">Logout</a>)',
												 {logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN})
												: ((Dsq.jsonData.request.remote_domain == 'openid')
													 ? Dsq.Utils.interpolate('using OpenID (<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="Logout">Logout</a>)',
													 {logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN})
													 : ''
													)
											)
									),

									(!Dsq.jsonData.request.is_remote ? Dsq.FmtStrings.LOGOUT_FROM('<span class="logo-disqus">DISQUS</span>') : ''),
									'</a>',
								'</li>',
							'</ul>',
						'</div>',
					'</div>'
		]);
		if (Dsq.jsonData.context.use_fb_connect) {
			result = result.concat([
					'<div id="dsq-fbc-authenticated" class="dsq-authenticated">',
						'<div id="dsq-fbc-profilepic" class="dsq-authenticated-pic" uid="loggedinuser" type="FB.XFBML.ProfilePic" size="square" facebook-logo="true"></div>',
						'<div class="dsq-authenticated-info">',
							'<ul>',
								'<li>',
									'Logged in as <span id="dsq-fbc-name" uid="loggedinuser" type="FB.XFBML.Name" linked="true" useyou="false"></span>',
								'</li>',
								'<li class="logout">using Facebook Connect <a href="#" onclick="javascript:DisqusFbcParentController.logout();return false;">(Logout)</a></li>',
							'</ul>',
						'</div>',
					'</div>'
			]);
		}
		result = result.concat([
				'</div>', // dsq-auth
				'<div id="dsq-toolbar-items">',
				'</div>'
		]);
		result = result.concat([
					//
					//
					//
				((!Dsq.jsonData.forum.allow_anon_post && !Dsq.jsonData.request.is_authenticated) ?
					// Needs to be translated:
					('<p id="dsq-no-anon-msg">Required: Please log into <span class="logo-disqus">Disqus</span> ' +
					(Dsq.jsonData.context.use_fb_connect ? 'or connect with Facebook ' : '') +
					(Dsq.jsonData.context.use_twitter_signin ? 'or sign in with Twitter ' : '') +
					(Dsq.jsonData.context.use_openid ? 'or sign in using OpenID ' : '') +
					Dsq.Utils.interpolate('to comment on <strong>%(forum_name)s</strong>.</p>')) :
					''
				),
				'<div id="dsq-post-add"></div>',
				'<div style="margin:10px 0">',
				((Dsq.jsonData.forum.use_media) ?
						'<a href="#" id="dsq-media-link" onclick="Dsq.Post.showMenu(this, false, \'media\'); return false">' + Dsq.Strings.USE_MEDIA + ' <small>&#9660;</small></a>' :
						''),
				'</div>'
		]);
		return result.join('');
	};


	this.header = function() {

		var html = '\<h3 id="dsq-comments-count" class="dsq-h3-commentcount">\
	 <span id="dsq-num-posts">81</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://scobleizer.disqus.com/the_you_don8217t_need_more_friends_lobby/latest.rss"><img src="http://media.disqus.com/images/embed/bullet-feed.png"></a>\
	 </span>\
	 </h3>\
	 <div id="dsq-options" style="margin:15px 0">\
	 <span class="dsq-item-sort">\
	 Sort by\
	 <select id="dsq-sort-select" onchange="Dsq.Thread.sortBy(this.value);">\
	 <option value="hot" selected="selected">Popular now</option>\
	 <option value="best" >Best Rating</option>\
	 <option value="newest" >Newest first</option>\
	 <option value="oldest" >Oldest first</option>\
	 </select>\
	 &nbsp;\
	 </span>\
	 <span class="dsq-item-cp"><a href="http://scobleizer.disqus.com/the_you_don8217t_need_more_friends_lobby/">Community Page</a>&nbsp;&nbsp;&nbsp;</span>\
	 <span class="dsq-item-subscribe">\
	 <img src="http://media.disqus.com/images/embed/email.png" style="width:12px;height:12px;vertical-align:middle">\
	 <span id="dsq-subscribe">\
	 <a href="#" onclick="Dsq.Thread.subscribe(1); return false">Subscribe by email</a>\
	 </span>\
	 </span>\
	 </div>\
	 <div id="dsq-alerts">\
	 <p>Comments for this page are closed.</p>\
	 </div>\
		';

		

		
		if (Dsq.jsonData.request.is_moderator) { 
			html = ' \
			<div class="dsq-alert-message dsq-upgrade-message"> \
				<strong>Disqus upgrade available.</strong> Hi ' + Dsq.jsonData.request.display_username + ', this message is being displayed to you because you are a moderator of this site. <a href="#" onclick="Dsq.$(\'dsq-upgrade-message\').style.display=\'block\';this.style.display=\'none\';return false">Click here for details.</a> \
				<div style="display:none; margin-top:10px;" id="dsq-upgrade-message"> \
					A new theme is available with added features. <a href="http://disqus.com/comments/settings/' + Dsq.jsonData.forum.url + '/?p=customize">To change your theme, click here</a> and choose the theme Narcissus. \
					If you do not upgrade, you are missing out on features such as: real-time commenting, new sign-in integrations, and an upgrade interface. \
					<strong>This message will automatically go away in one week.</strong> \
				</div> \
			</div> \
			' + html; 
		}
		return html;
	};

	this.footer = function() {
		var html = Dsq.Templates.pagination();

		
			html += Dsq.Templates.authPost();
		

		html += Dsq.Templates.reactions();

		
			html += Dsq.Templates.trackbacks();
		

		return html;
	};

	this.pagination = function() {
		var html = '';
		
		if (Dsq.$('dsq-pagination')) { Dsq.$('dsq-pagination').innerHTML = ''; }
		if (!Dsq.jsonData.thread.paginate) { return ''; }

		//
		// TODO: num_paginator still uses the template tag for pagination, 
		// 		while append_paginator does it all in JavaScript.
		//		This should all be in JavaScript.
		//

		if (Dsq.jsonData.thread.num_pages > 1 && Dsq.jsonData.request.page < Dsq.jsonData.thread.num_pages) {
			html = ' \<a class="dsq-paginate-append-text" href="#" onclick="Dsq.Thread.paginate(Dsq.jsonData.request.page + 1, this); return false">Show more comments...</a>\
	 <button type="button" class="dsq-button-small dsq-paginate-append-button" onclick="Dsq.Thread.paginate(Dsq.jsonData.request.page + 1, this);">Load more comments</button>\
			';
		}
		
		if (Dsq.$('dsq-pagination')) {
			Dsq.$('dsq-pagination').innerHTML = html;
			return '';
		} else {
			return '<div id="dsq-pagination" class="dsq-pagination">' + html + '</div>';
		}
	};

	this.trackbacks = function() {
		var html = '';

		if(typeof DsqLocal != 'undefined' && DsqLocal.trackback_url && DsqLocal.trackbacks) {
			var trackbacks = DsqLocal.trackbacks;
			var trackback_url = DsqLocal.trackback_url;
		} else {
			var trackbacks = [
			
			
			];
			var trackback_url = 'http://scobleizer.disqus.com/the_you_don8217t_need_more_friends_lobby/trackback/';
		}

		html += '<div class="dsq-item-trackback">Trackback URL&nbsp;&nbsp;<input class="dsq-trackback-url" onclick="this.select()" readonly="true" value="' + trackback_url + '"></div>';

		if(trackbacks.length) {
			html += '<ul id="dsq-references">'
			for(var i = 0; i < trackbacks.length; i++) {
				var trackback = trackbacks[i];
				html += '<li><cite><a href="' + trackback.author_url + '" rel="nofollow">' + trackback.author_name + '</a></cite> \
						<p class="dsq-meta">' + trackback.date + '</p> \
						<p class="dsq-content">' + trackback.excerpt + '</p></li>';
			}
			html += '</ul>';
			html = '<h3 class="dsq-h3-trackbacks">Trackbacks</h3>' + html;
		}

		return html;
	}

	this.showRetweets = function(id, limit, element_id /* Optional */) {
		var source, html = '';

		for (var i = 0, reaction; reaction = Dsq.jsonData.reactions[i]; i++) {
			if (reaction.id === id) {
				source = reaction.retweets;
			}
		}

		if (source) {
			if (limit === 0) {
				limit = source.length;
			}

			for (var j = 0; j < limit; j++) {
				var rt = source[j];
				html += '<a href="' + rt.url + '">' + rt.author_name + '</a>'	+ ((j === (limit - 1)) ? '.' : ', ');
			}
		}

		if (element_id === undefined) {
			return html;
		}

		var element = document.getElementById(element_id);
		element.innerHTML = html;
		return element;
	};

	this.showMoreReactions = function(reactions, has_more, start, limit) {
		var link = document.getElementById('dsq-show-more-reactions');
		var container = link.parentNode;
		container.removeChild(link);

		for (var i = 0, reaction; reaction = reactions[i]; i++) {
			var el = Dsq.Templates.generateReactionHTML(reaction);
			if (el) {
				container.innerHTML += el;
			}
		}

		if (has_more) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = start;
			var l = limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			container.innerHTML += '<li id="dsq-show-more-reactions"><a href="#" onclick="' + handler + '">Show more reactions</a></li>';
		}
	};

	this.generateReactionHTML = function(reaction) {
		if (reaction.body === null || reaction.body == '') {
			return;
		}

		if (reaction.author_name === '') {
			reaction.author_name = '&nbsp;';
		}

		if (reaction.url === '') {
			reaction.url = reaction.get_service_url;
		}

		/* Reaction HTML begins */
		var item = '<li class="dsq-reaction" id="dsq-reaction-' + reaction.id + '">'
			+ '<div class="dsq-reaction-header">'
			+ '<div class="dsq-header-avatar">';

		if (reaction.author_url && reaction.author_url !== '') {
			item += '<a target="_blank" href="' + reaction.author_url +'">';
		} else {
			item += '<a target="_blank" href="#" onclick="return false;">';
		}

		if (reaction.avatar_url && reaction.avatar_url !== '') {
			item += '<img src="' + reaction.avatar_url + '"/>';
		} else {
			item += '<img src="' + Dsq.jsonData.media_url + '/images/noavatar32.png"/>';
		}

		var service_icon = (reaction.get_service_name == 'trackback' || reaction.get_service_name == 'pingback' ? 'rss' : reaction.get_service_name.replace(' ', ''));
		item += '<img class="dsq-service-icon" src="' + Dsq.jsonData.media_url + '/images/reactions/services/' + service_icon + '.png"/>'
			+ '</a></div>'
			+ '<cite><span>' + reaction.author_name + '</span></cite>'
			+ '<span class="dsq-header-meta"><a class="dsq-header-time">' + reaction.date_created + '</a></span>'
			+ '</div><div class="dsq-reaction-body">'
			+ '<div class="dsq-reaction-message">' + reaction.body + '</div>'
			+ '<div class="dsq-reaction-footer">From <a class="dsq-service-name" target="_blank" href="' + reaction.url + '">' + reaction.get_service_name + '</a> '
			+ 'via <a href="' + reaction.source_url + '">' + (reaction.source == 'backtype' ? 'BackType' : 'UberVU') + '</a>'
			+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator ? '&nbsp;&bull;&nbsp;<a class="dsq-hide-reaction" href="#" onclick="Dsq.Reaction.hide(' + reaction.id + '); return false;">Hide</a>' : '') + '</div></div>';

		if(reaction.retweets) {
			var num_retweets = reaction.retweets.length;
			if (num_retweets > 0) {
				item += '<div class="dsq-reaction-retweets">';
				if (num_retweets == 1) {
					item += 'One more retweet from <a href="' + reaction.retweets[0].url + '">'  + reaction.retweets[0].author_name + '</a>';
				} else {
					item += (num_retweets + ' more retweets from ');

					item += '<span id="dsq-reaction-retweets-' + reaction.id + '">';
					var n_tweets = (num_retweets > 15) ? 15 : num_retweets;
					item += Dsq.Templates.showRetweets(reaction.id, n_tweets);

					if (n_tweets != num_retweets) {
						item += '</span> <a onclick="Dsq.Templates.showRetweets(' + reaction.id + ', 0, \'dsq-reaction-retweets-' + reaction.id + '\');'
							+ 'this.parentNode.removeChild(this); return false;" href="#">Show all</a>';
					}
				}
				item += '</div>';
			}
		}

		item += '</li>'; /* Reaction HTML ends */
		return item;
	};

	this.reactions = function() {
		var html, reaction;

		if (Dsq.jsonData.reactions === undefined || Dsq.jsonData.reactions.length === 0) {
			return '';
		}

		html = '';
		for (var i = 0; reaction = Dsq.jsonData.reactions[i]; i++) {
			var item = Dsq.Templates.generateReactionHTML(reaction);
			if (item) {
				html += item;
			}
		}

		if (Dsq.jsonData.has_more_reactions) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = Dsq.jsonData.reactions_start;
			var l = Dsq.jsonData.reactions_limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			html += '<li id="dsq-show-more-reactions"><a href="#" onclick="' + handler + '">Show more reactions</a></li>';
		}

		return '<h3 class="dsq-h3-reactions">Reactions</h3><ul id="dsq-reactions" class="dsq-reactions">' + html + '</ul>';
	};
	
	this.missingPermissions = function() {
		return '	<p>Comments for this page are closed.</p>\n';
	};

	//
	// Post
	//

	this.prependPost = function(post_id) {
		var html = '<div id="comment-' + post_id + '"></div>';
		return html;
	};

	this.appendPost = function(post_id) {
		var html = '<div id="dsq-comment-reply-' + post_id + '"></div>';
		return html;
	};

	this.postPrependHeader = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];

		var _includeServices = function() {
			var userServices = Dsq.Post.getUserServices(null, post_id);
			var html = '';
			var hiddenThreshold = 3; // Define # of services to show before stuffing them in hidden div

			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == hiddenThreshold
					? '<li id="dsq-drop-hidden-' + post_id +'" class="dsq-drop-hidden"><ul>'
					: '')
				+ '<li class="dsq-drop-services"> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank"> \
						<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '">'
					+ userServices[i].name
					+ '</a> \
				</li>';
			}

			if(i >= hiddenThreshold) {
				html += '</ul></li> \
				<li id="dsq-drop-more-' + post_id + '" class="dsq-drop-more"><a href="#" onclick="Dsq.Post.dropProfileMore(this, '+ post_id + '); return false"><small>&#9660;</small></a></li> \
				';
			}
			return html;
		};

		return ' \
			<div class="dsq-header-avatar" id="dsq-header-avatar-' + post_id + '" onmouseover="Dsq.Post.dropProfile(' + post_id + ')"> \
				<a id="dsq-avatar-' + post_id + '" class="dsq-avatar" href="' + userData.url + '" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">'
			+ (Dsq.jsonData.forum.show_avatar
				? '<img src="' + Dsq.jsonData.users[_meta.user_key].avatar + '" alt="" />'
				: '')
			+ '</a>'
			+ '</div> \
		';
	};

	this.postAppendHeader = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];

		return ''
			+ (_meta.author_is_moderator
				? '<img class="dsq-mod-star" src="http://media.disqus.com/images/bullet-star.png" title="Moderator" alt="" />'
				: '')
			+ '<span class="dsq-header-meta"> \
				<a id="dsq-time-' + post_id + '" class="dsq-header-time" href="#comment-' + post_id + '" title="Permalink">' + _meta.date + '</a> \
			</span>';
	};

	this.preBody = function(post_id) {
		return '';
	}

	this.postBody = function(post_id) {
		// TODO: Deprecate flagging conditional
		var _meta = Dsq.jsonData.posts[post_id];
		return ''
			+ (_meta.edited
				? '<p class="dsq-editedtxt">(Edited by a moderator)</p>'
				: '')
			;
	};

	this.postFooter = function(post_id) {
		// TODO: Use media should be conditional
		var _meta = Dsq.jsonData.posts[post_id];
		if(_meta.killed) { return ''; }

		return ' \
			<div class="dsq-comment-footer" id="dsq-comment-footer-' + post_id + '"> \
				<div id="dsq-points-' + post_id + '" class="dsq-likedtxt">'
				+ (_meta.points
					? _meta.points + Dsq.Utils.pluralize(_meta.points, ' person', ' people') + ' liked this comment.'
					: '')
				+ '</div>'
				+ '<ul class="dsq-comment-options dsq-list-style">'
				+ (_meta.votable
					? '<li class="dsq-list-first dsq-rate" id="dsq-rate-cont-' + post_id + '">'
					+ (!_meta.up_voted
						? '<a href="#" onclick="Dsq.Post.rate(this, ' + post_id + ', 1); return false;">Like</a>'
						: 'You liked this.') + '</li>'
					: '')
				+ '<li class="dsq-report' + (!_meta.votable ? ' dsq-list-first' : '') + '" id="dsq-post-report-' + post_id + '"><a href="#" class="dsq-post-report" onclick="Dsq.Post.report(' + post_id + ', false); return false;">Report</a></li> \
				</ul> \
				<ul class="dsq-list-style">'
				+ (_meta.can_reply
					? '<li class="dsq-list-first"><a href="#" id="dsq-reply-link-' + post_id +'" onclick="Dsq.Post.toggleReply(this, ' + post_id +'); return false;">Reply</a></li>'
					: '')
				+ (_meta.can_reply && !_meta.has_replies && _meta.from_request_user
					? '<li id="dsq-edit-el-' + post_id + '"><a id="dsq-edit-link-' + post_id + '" href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); return false;">Edit</a></li>'
					: '')
				+ '<li class="' + (!_meta.can_reply ? 'dsq-list-first' : '') + '" id="dsq-more-el-' + post_id + '"><a id="dsq-more-link-' + post_id + '" href="#" onclick="Dsq.Post.showMenu(this, ' + post_id + ', \'more\'); return false">More <small>&#9660;</small></a></li>'
				+ (Dsq.jsonData.forum.use_media
					? '<li id="dsq-media-el-' + post_id +'" style="display:none"><a id="dsq-media-link-' + post_id + '" href="#" onclick="Dsq.Post.showMenu(this, ' + post_id + ', \'media\'); return false">Use Media <small>&#9660;</small></a></li>'
					: '')
				+ '</ul>'
				+ '<div id="dsq-reply-bar-' + post_id + '" class="dsq-reply-bar" style="display:none"> \
						<div id="dsq-reply-bar-items-' + post_id + '" class="dsq-reply-bar-items"> \
						</div> \
						<div id="dsq-reply-bar-auth-' + post_id + '" class="dsq-reply-bar-auth"> \
							 \
								 \
								 	<a href="#" class="dsq-help dsq-reply-req-opt" title="You are commenting as a Guest. You may choose to log into an existing DISQUS Profile, your Facebook, Twitter or OpenID account to comment on Scobleizer" onclick="Dsq.Popup.helpBadges(); return false">Optional:</a> \
								 \
								<img class="dsq-login-icon" src="http://media.disqus.com/images/dsq-favicon-16x16.png" alt="" /> \
								<a id="dsq-reply-login-' + post_id + '" href="http://disqus.com/profile/login/?next=article:18349583" onclick="Dsq.Popup.login(); return false">Login</a> \
								 \
									&nbsp;or&nbsp; \
									<img class="fb_login_image" src="http://static.ak.fbcdn.net/images/fbconnect/login-buttons/connect_light_small_short.gif" alt="Facebook Connect"/> \
									<a href="#" onclick="FB.Connect.requireSession(DisqusFbcParentController.onLogin); return false;">Connect</a> \
								 \
								&nbsp;or&nbsp; \
									<img src="http://media.disqus.com/images/twitter-signin-icon.png" alt="" /> \
									<a href="#" onclick="Dsq.Twitter.startTwitterConnect(); return false">Sign-in</a> \
								 \
								 \
							 \
						</div> \
					</div> \
					<div id="dsq-reply-' + post_id + '"></div> \
			</div> \
		';
	};

	//
	// Iframes
	//

	this._makeAttributes = function(attributes) {
		// Makes a tag attributes string out of an object.
		// Caller is responsible for making sure nothing needs to be escaped.
		var result = [];
		for (key in attributes) {
			result.push(' ' + key + '="' + attributes[key] + '"');
		}
		result = result.join('');
		return result;
	};

	this._frameGeneric = function(base_url, params, attributes) {
		if(typeof(disqus_callback_params) == 'undefined') {
			disqus_callback_params = '';
		}

		var default_params = {
			// TODO: These should be moved to Dsq.jsonData.
			'f'				: 'scobleizer',
			't'				: 'the_you_don8217t_need_more_friends_lobby',
			// Do we need encodeURIComponent here?
			'ifrs'			: encodeURIComponent(disqus_iframe_css),
			'to_redirect'	: encodeURIComponent(window.location),
			'cbp'			: disqus_callback_params,
			'ff'			: Dsq.Thread.ff,
			'fc'			: Dsq.Thread.fc,
			'ac'			: Dsq.Thread.ac,
			'default_text'	: disqus_default_text
		};

		base_url += '?' + (new Date()).getTime();
		// Add params to default_params.
		if(params) {
			for(var key in params) {
				if(params.hasOwnProperty(key)) {
					default_params[key] = encodeURIComponent(params[key]);
				}
			}
		}
		// Build querystring.
		for(var key in default_params) {
			if(default_params[key] && default_params.hasOwnProperty(key)) {
				base_url += '&' + key + '=' + default_params[key];
			}
		}

		return [
			'<iframe marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0"',
			(' allowtransparency="true" src="' + base_url + '"'),
			this._makeAttributes(attributes),
			'</iframe>'].join('');
	};

	this.frameLogin = function(opt_attributes) {
		var params = {};
		var base_url = 'http://disqus.com/embed/login.html';
		var attributes = opt_attributes || {};
		attributes['class'] = 'dsq-post-login';

		if(typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}
		return this._frameGeneric(base_url, params, attributes);
	};

	this.frameReply = function(post_id, extra_params, attributes) {
		// Returns the HTML for a reply iframe. Called by Dsq.Iframes.setReplyIframeToContainer
		var _meta = (typeof post_id != 'undefined') ? Dsq.jsonData.posts[post_id] : false;
		var base_url = Dsq.Urls.REPLY;
		var params = {
			'def_email'		: disqus_def_email,
			'def_name'		: disqus_def_name
		};
		if(extra_params) {
			for(var key in extra_params) {
				if(extra_params.hasOwnProperty(key)) {
					params[key] = extra_params[key];
				}
			}
		}
		if(_meta) {
			params['parent_post'] = post_id;
		}
		if(typeof disqus_per_page != 'undefined') {
			params['per_page'] = disqus_per_page;
		}
		if(typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}
		if(Dsq.jsonData.request.is_authenticated) {
			attributes['class'] += '-authenticated';
		}
		return this._frameGeneric(base_url, params, attributes);
	};

	this.frameEdit = function(post_id) {
		var _meta = (typeof post_id != 'undefined') ? Dsq.jsonData.posts[post_id] : false;
		var base_url = 'http://disqus.com/embed/edit.html';
		var params = {
			'p' : post_id
		};
		return this._frameGeneric(base_url, params, {'class': 'dsq-post-edit', 'name': 'dsq-edit_' + post_id + '-frame'});
	};

	//
	// Menus
	//

	this.menuMore = function(post_id) {
		// TODO: "Remove post" button should hide menu.
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		return ' \
			<li><a href="#comment-' + post_id + '" onclick="Dsq.Popup.permalink(' + post_id + ')">Link</a></li> \
			<li><a href="#" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">Profile</a></li>'
	+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator
		? '	<li class="dsq-menu-sep"></li>' + (_meta.email ? '<li class="dsq-admin-email">' + _meta.email + '</li>' : '')
		+ '	<li class="dsq-admin-ip">' + _meta.ip + '</li> \
			<li class="dsq-menu-sep"></li>'
		+ (Dsq.jsonData.request.moderator_can_edit
			? ' <li class="dsq-admin-edit"><a href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); return false;">Edit Comment</a></li>'
			: '')
		+ ' <li class="dsq-remove"><a href="#" onclick="Dsq.Post.removePost(' + post_id + ', 1); return false;">Remove Comment</a></li> \
			<li class="dsq-report-spam"><a href="#" onclick="Dsq.Post.reportSpam(' + post_id + '); return false;">Mark Spam</a></li> \
			<li class="dsq-block-user"><a href="#" onclick="Dsq.Popup.blacklist(' + post_id + '); return false">Block User</a></li>'
		: '');
	};

	this.menuMedia = function(post_id) {
		return ' \
			<li><a href="#" onclick="Dsq.Post.toggleMediaReply(this, ' + post_id + ', \'seesmic\'); return false;">Record video</a></li> \
		';
	};

	this.dropProfile = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];

		var _includeServices = function() {
			var userServices = Dsq.Post.getUserServices(null, post_id);
			var html = '';
			var hiddenThreshold = 3; // Define # of services to show before stuffing them in hidden div

			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == hiddenThreshold
					? '<li id="dsq-drop-hidden-' + post_id +'" class="dsq-drop-hidden"><ul>'
					: '')
				+ '<li class="dsq-drop-services"> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank"> \
						<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '">'
					+ userServices[i].name
					+ '</a> \
				</li>';
			}

			if(i >= hiddenThreshold) {
				html += '</ul></li> \
				<li id="dsq-drop-more-' + post_id + '" class="dsq-drop-more"><a href="#" onclick="Dsq.Post.dropProfileMore(this, '+ post_id + '); return false"><small>&#9660;</small></a></li> \
				';
			}
			return html;
		};


		var menu = '<li class="dsq-drop-showlnk"><a href="#" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">Expand &#8663;</a></li>';
		var pointsMessage = '';
		if (userData['registered']) {
			pointsMessage = 'with ' + userData['points'] + ' points (more points are better).';
		}

		if (userData['is_remote']) {
			var domain = userData['remote_domain_name'];
			menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' is a ' + domain + ' user ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
			menu += '<span class="dsq-badge-' + domain.toLowerCase() + '">' + domain + '</span></li>';
		} else if (userData['registered']) {
			if (userData['verified']) {
				menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has a verified commenter profile ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
				menu += '<span class="dsq-badge-verified">Verified</span></li>';
			} else {
				menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has a registered, but unverified, commenter profile ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
				menu += '<span class="dsq-badge-registered">Registered</span></li>';
			}
		} else {
			menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has not claimed this commenter profile." onclick="Dsq.Popup.helpBadges()"><span class="dsq-badge-guest">Guest</span></li>';
		}

		menu += _includeServices();
		return menu;
	};

	//
	// Popups
	//

	this._popupGeneric = function(content) {
		return ' \
		<div class="dsq-popup-content"> \
			<div class="dsq-popup-top"></div> \
			<div class="dsq-popup-body" class="clearfix"> \
				<div class="dsq-popup-body-padding"> \
					<div class="dsq-popup-header"> \
						<a class="dsq-close-link" href="#" onclick="Dsq.Popup._closePopup(null, true); return false"><img src="http://media.disqus.com/images/modal-close.png" alt="" /></a>'
						+ content['header']
					+ '</div>'
					+ content['body']
					+ '<div class="powered-by"><a href="http://disqus.com/comments/">Powered by <img src="http://media.disqus.com/images/embed/disqus-logo.png" alt="Disqus Comments" style="margin-bottom:-5px" /></a></div> \
				</div> <!-- padding --> \
			</div> <!-- body --> \
			<div class="dsq-popup-bottom"></div> \
		</div> \
		';
	};

	this.popupProfile = function(user_key) {
		var userServices = Dsq.Post.getUserServices(user_key, null);
		var userData = Dsq.jsonData['users'][user_key];
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		var _includeServices = function() {
			var html = '';
			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == 0
					? '<h4>Connections</h4><ul>'
					: '')
				+ '<li> \
					<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '" title="' + userServices[i].name.toLowerCase() + '" /> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank">'
					+ userServices[i].name
					+ '</a> \
				</li>'
				+ (i+1 == userServices.length ? '</ul>' : '');
			}
			return html;
		};

		headerHtml = ' \
			<table> \
				<tr> \
					<td> \
						<a class="dsq-profile-userurl" href="' + userData.url + '"><img class="dsq-popup-profile-avatar" src="' + userData['avatar'] + '" alt="" /></a> \
					</td> \
					<td> \
						<div class="dsq-popup-profile-user"> \
							<h3>' + userData['display_name'] + '</h3> \
							<div class="dsq-popup-profile-user-stats" id="dsq-popup-profile-user-stats-' + user_key + '">Loading...</div> \
						</div> \
					</td> \
				</tr> \
			</table> \
		';

		bodyHtml = ' \
			<div class="dsq-popup-profile-state"> \
				This is a&nbsp;<span class="'
					+ (userData['registered']
						? (userData['verified']
							? ' dsq-badge-verified'
							: (userData['is_remote']
								? ' dsq-badge-' + userData['remote_domain_name'].toLowerCase()
								: ' dsq-badge-registered')
							)
							: ' dsq-badge-guest') + '">'
			+ (userData['registered']
				? (userData['verified']
					? 'Verified'
					: (userData['is_remote']
						 ? userData['remote_domain_name']
						 : 'Registered')
					)
				: 'Guest')
			+ '</span>&nbsp;commenter profile.'
			+ '&nbsp;<a class="dsq-profile-userurl" href="' + userData.url + '"><strong>View more comments </strong></a>'
			+ (!userData['points']
				? '<p class="dsq-popup-notice">If this is you, <a href="http://disqus.com/profile" target="_blank">claim it now</a> to manage your comments.</p>'
				: '')
			+ ((userData['registered'] && !userData['verified'] && (Dsq.jsonData.request.username && (Dsq.jsonData.request.username == userData['username'])) && !userData['is_remote'])
				? '<p class="dsq-popup-notice"><strong>Alert</strong>: You have not verified this account. <a href="http://disqus.com/verify">Verify it now.</a></p>'
				: '')
			+ '</div> \
			<div id="dsq-profile-status-' + user_key + '" class="dsq-popup-profile-status" style="display:none"></div> \
			<div class="dsq-popup-profile-snapshot"> \
				<table> \
					<tr> \
						<td> \
							<div id="dsq-popup-profile-active-sites-wrapper-' + user_key + '"> \
								<h4>Most active sites</h4> \
								<ul id="dsq-popup-profile-active-sites-' + user_key + '"> \
									<li>Loading...</li> \
								</ul> \
							</div> \
						</td> \
						<td>'
							+ _includeServices()
							+ '<div id="dsq-popup-profile-moderated-wrapper-' + user_key + '"> \
								<h4>Moderator of</h4> \
								<ul id="dsq-popup-profile-moderated-' + user_key + '"> \
									<li>Loading...</li> \
								</ul> \
							</div> \
						</td> \
					</tr> \
				</table> \
			</div> \
			';

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.popupReblog = function() {
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		headerHtml = ' \
			<cite><span>Reblog this comment</span></cite> \
		';

		bodyHtml = ' \
			<div id="dsq-reblog-form" class="dsq-reblog-form"> \
			</div> \
		';

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.popupModal = function(title, message) {
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		headerHtml = ' \
			<h3>' + title + '</h3> \
		';

		bodyHtml = message;

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.alertContent = function(name, post_id) {
		var alert = {
			'post_not_approved': {
				'title': 'Comment awaiting approval by a moderator',
				'message': 'Thanks for posting. Your comment must be approved by a moderator before appearing here.'
			},
			'post_has_profile': {
				'title': 'Use your existing commenter profile',
				'message': 'You have just posted your commment as a <span class="dsq-badge dsq-badge-guest">Guest</span>, but you may already have a <span class="dsq-badge dsq-badge-registered">Registered</span> commenter profile.<br /><br /><a href="http://disqus.com/claim">Log in and claim this comment!</a>'
			}
		};
		return alert[name] || false;
	};

	//
	// Actions
	//

	this.voted = function(post_id, points, vote) {
		// Update number of points
		Dsq.$('dsq-points-' + post_id).innerHTML = points + Dsq.Utils.pluralize(points, ' person', ' people') + ' liked this comment.';

		// Update link text
		if(vote) {
			Dsq.$('dsq-rate-cont-' + post_id).innerHTML = 'You liked this.';
		}
	};

	this.subscribed = function(status) {
		var title, message;

		if(status) {
			title = 'Subscribed!';
			message = 'You have subscribed to this comment thread. New comments will be sent directly to your email inbox, where you may read and respond by email.';
			Dsq.$('dsq-subscribe').innerHTML = ' \
				<a href="#" onclick="Dsq.Thread.subscribe(0); return false">Unsubscribe</a> \
			';
		} else {
			title = 'Unsubscribed';
			message = 'You have unsubscribed to this comment thread. New comments will no longer be sent to your email inbox.';
			Dsq.$('dsq-subscribe').innerHTML = ' \
				<a href="#" onclick="Dsq.Thread.subscribe(1); return false">Subscribe by email</a> \
			';
		}

		Dsq.Popup.popModal(message, title);

	};
	
	this.highlighted = function() {
		Dsq.Popup.popModal('This comment has been highlighted.', 'Highlighted comment');
	};

	//
	// Media
	//

	this.mediaSeesmic = function(id, thumb) {
		return ' \
			<div id="dsq-seesmic-' + id + '_preview" class="dsq-seesmic-preview"><a href="http://www.seesmic.com/video/' + id + '" target="_blank" class="see_link">&nbsp;</a> \
				<div style="display:block;width:160px; height:120px; border:none; background-image:url(http://t.seesmic.com/thumbnail/' + thumb + ')"> \
					<div id="dsq-seesmic-' + id + '_hide" class="seePlayOverlay" style="display:none;"><img onclick="see_play_video(\'' + id + '\',false)" src="http://media.disqus.com/images/seesmic/stopOverlay.png" width="50" height="50" style="cursor:pointer; cursor:hand; padding-top: 30px; padding-left: 50px" alt="" /></div> \
					<div id="dsq-seesmic-' + id + '_show" class="seePlayOverlay"><img onclick="see_play_video(\'' + id + '\',true)" src="http://media.disqus.com/images/seesmic/playOverlay.png" width="50" height="50" style="cursor:pointer; cursor:hand; border:none; padding-top: 30px; padding-left: 50px" alt="" /></div> \
				</div> \
			</div> \
			<div id="' + id + '_content" style="display:block; width:100%; padding-top:5px"></div> \
		';
	};

	//
	// Callbacks
	//

	this.postComment_onSuccess = function(parent_post_id) {
		// Increment post count
		var num_posts = Dsq.$('dsq-num-posts');
		var total_posts = Dsq.$('dsq-total-posts');
		
		if (num_posts) { 
			num_posts.innerHTML = parseInt(num_posts.innerHTML) + 1;
		}
		if (total_posts) { 
			total_posts.innerHTML = parseInt(total_posts.innerHTML) + 1;
		}
	};
};
// Dsq.Templates


/**
 * Dsq.Post
 */
Dsq.Post = new function() {
	this.openedMenu = {};
	this.menuEventListener = null;
	this.stateReplyToggled = {};
	this.stateEditToggled = {};
	this.stateRecordLink = {};

	/**
	 * Inserts a new post into the document.
	 *
	 * @param after_id {Number}	Insert a post before specified id.  If after_id
	 *							evaluates to false, then post in the front.  If
	 *							after_id is -1, post at the end.
	 */
	this.insert = function(after_id, id, message, author) {
		// Skeleton template from thread_posts.html.
		var skeleton = ' \
			<li id="dsq-comment-%(id)s"> \
				<div id="dsq-comment-header-%(id)s" class="dsq-comment-header"> \
					<cite id="dsq-cite-%(id)s" class="dsq-comment-cite"> \
						<a id="dsq-author-user-%(id)s" href="%(author_url)s" target="_blank" rel="nofollow">%(author_name)s</a> \
					</cite> \
				</div> \
				<div id="dsq-comment-body-%(id)s" class="dsq-comment-body"> \
					<div id="dsq-comment-message-%(id)s" class="dsq-comment-message">%(message)s</div> \
				</div> \
			</li> \
		';
		var _meta = Dsq.jsonData.posts[id];
		var _user_meta = Dsq.jsonData.users[_meta.user_key];
		var markup = Dsq.Utils.interpolate(skeleton, {
			id: id,
			message: message,
			author_url: _user_meta.blog,
			author_name: _user_meta.display_name
		});
		var div = document.createElement('div');
		markup = markup.replace(Dsq.COMMENTS_RE, Dsq.CommentsHandler);
		div.innerHTML = markup;

		if (after_id === -1) {
			Dsq.$('dsq-comments').appendChild(div);
		} else if (!after_id) {
			Dsq.$('dsq-comments').insertBefore(div, Dsq.$('dsq-comments').firstChild);
		} else if (Dsq.$('dsq-comment-' + after_id)) {
			// Get next node after "after_id", so we can insert before it.
			// If "after_id" is the last comment, the target node is the
			// last node.
			
			// var append_post_id = Dsq.Templates.appendPost(after_id).replace('<div id="','').replace('"></div>', '');
			var append_post_id = 'dsq-append-post-' + after_id;
			var node = Dsq.$(append_post_id);
			while (node = node.nextSibling) {
				if (!node || node.nodeType == 1) { // 1 == Node.ELEMENT_NODE
					break;
				}
			}
			if (!node) {
				node = Dsq.$(append_post_id);
			}
			node.parentNode.insertBefore(div, node);
		}
	};

	this.incrementPostCount = function() {
		
		var num_posts = Dsq.$('dsq-num-posts');
		var total_posts = Dsq.$('dsq-total-posts');

		if (num_posts) {
			num_posts.innerHTML = parseInt(num_posts.innerHTML, 10) + 1;
		}
		if (total_posts) {
			total_posts.innerHTML = parseInt(total_posts.innerHTML, 10) + 1;
		}
	}
	
	this.outlineComment = function(post_id) {
		Dsq.$('dsq-comment-' + post_id).className += ' dsq-comment-outline';
		setTimeout("(function () { Dsq.Post.clearOutlineComment(" + post_id + ") })()", 3000);
	};
	
	this.clearOutlineComment = function(post_id) {
		Dsq.$('dsq-comment-' + post_id).className = Dsq.$('dsq-comment-' + post_id).className.replace('dsq-comment-outline', '');
	};

	this.showMenu = function(el, id, name) {
		var anchorPos = Dsq.Utils.findPos(el);
		var menu = document.createElement('ul');

		if(this.openedMenu) {
			if(this.openedMenu.linkClicked) {
				this.openedMenu.linkClicked = false;
				return;
			}
		}

		switch(name) {
			case 'more':
				menu.innerHTML = Dsq.Templates.menuMore(id);
				break;
			case 'media':
				menu.innerHTML = Dsq.Templates.menuMedia(id);
				break;
			default:
				break;
		}

		// Add menu to document body
		menu.id = 'dsq-menu-' + id;
		menu.className = 'dsq-menu';
		Dsq.$b.appendChild(menu);

		// Position and show
		anchorPos[1] += 15;
		menu.style.left = anchorPos[0] + 'px';
		menu.style.top = anchorPos[1] + 'px';
		menu.style.display = 'block';

		// Set global reference
		this.openedMenu = {
			'el' : menu,
			'id' : id,
			'name' : name,
			'linkClicked' : false
		};

		// Set listener
		this.menuEventListener = Dsq.Utils.addEventListener(document, 'mouseup', this._hideMenu);
	};

	this._hideMenu = function(e) {
		var el = e.target || e.srcElement;
		var openedMenu = Dsq.Post.openedMenu.el;
		var id = Dsq.Post.openedMenu.id;

		if(!id) {
			var link = 'dsq-' + Dsq.Post.openedMenu.name + '-link';
		} else {
			var link = 'dsq-' + Dsq.Post.openedMenu.name + '-link-' + id;
		}

		if(!openedMenu) {
			return;
		}

		if(!Dsq.Popup.isClicked(e, openedMenu.id)) {
			openedMenu.style.display = 'none';
			Dsq.Utils.removeEventListener(Dsq.Post.menuEventListener);
			Dsq.Utils.deleteNode(openedMenu);

		} else {
			// Hide the menu if a link was clicked inside the menu.  We can't
			// completely remove the menu until the onclick event on the link
			// fires, but the menuEventListener will prevent multiple menus
			// from polluting the DOM.
			if(el && typeof el.href != 'undefined') {
				openedMenu.style.display = 'none';
				Dsq.Post.openedMenu.el = null;
			}
		}

		if(Dsq.Popup.isClicked(e, link)) {
 			Dsq.Post.openedMenu.linkClicked = true;
		}
	};


	this.getUserServices = function(user_key, id) {
		if(!user_key && id) {
			var _meta = Dsq.jsonData.posts[id];
			user_key = _meta.user_key;
		}
		var userData = Dsq.jsonData['users'][user_key];
		var userServices = [];

		// Keep a full list of supported services. This is the order they will display in the drop-profile.
		// Each service must have a corresponding case in _buildServiceUrl()
		var supportedServices = ['blog', 'twitter', 'facebook', 'tumblr'];

		function _buildServiceUrl(serviceName) {
			var data = userData[serviceName];
			var services = {
				blog:		function(d) { return d; },
				twitter:	function(d) { return d; },
				facebook:	function(d) { return d; },
				tumblr:		function(d) { return 'http://' + d + '.tumblr.com'; }
			};
			return services[serviceName](data);
		}

		for(var i = 0; i < supportedServices.length; i++) {
			if(userData[supportedServices[i]]) {
				var serviceUrl = _buildServiceUrl(supportedServices[i]);
				userServices.push({'name' : supportedServices[i], 'url' : serviceUrl});
			}
		}
		return userServices;
	}

	this.dropProfile = function(id) {
		var dp = Dsq.$('dsq-drop-profile-' + id);

		// IE6 needs JS to display/hide. All other browsers use CSS.
		if(dp) {
			if(Dsq.Utils.ie6) dp.style.display = (dp.style.display == 'inline') ? 'none' : 'inline';
			return false;
		} else {
			dp = document.createElement('ul');
		}

		dp.id = 'dsq-drop-profile-' + id;
		dp.className = 'dsq-drop-profile';

		if(Dsq.Utils.ie6) { dp.style.display = 'inline'; }

		var container = Dsq.$('dsq-header-avatar-' + id);
		dp.innerHTML = Dsq.Templates.dropProfile(id);
		container.appendChild(dp);
	};

	this.dropProfileMore = function(el, id) {
		var hiddenItems = Dsq.$('dsq-drop-hidden-' + id);

		hiddenItems.style.display = 'inline';
		el.parentNode.style.display = 'none';
	};

	this._updateReplyLinks = function(el, id) {
		// Update "reply / cancel" links based on state.
		var displayDict = {};

		if(id) {
			if(this.stateReplyToggled[id]) {
				el.innerHTML = 'Cancel';
				displayDict['media'] = 'inline';
				displayDict['edit'] = 'none';
			} else {
				el.innerHTML = 'Reply';
				displayDict['media'] = 'none';
				displayDict['edit'] = 'inline';
			}
		}

		for(var key in displayDict) {
			if(displayDict.hasOwnProperty(key)) {
				var	linkEl = Dsq.$('dsq-' + key + '-el-' + id),
					spacer = Dsq.$('dsq-' + key + '-spacer-' + id);

				if(linkEl) {
					linkEl.style.display = displayDict[key];
					if(spacer) spacer.style.display = displayDict[key];
				}
			}
		}
	};

	this._updateMediaLinks = function(el, id) {
		// Update "use media / cancel" links based on state.
		var appendId = (id) ? ('-' + id) : '';
		var link = Dsq.$('dsq-media-link' + appendId);

		if(this.stateRecordLink[id]) {
			link.innerHTML = 'Cancel Media';
			link.onclick = function() { Dsq.Post.toggleMediaReply(link, id); return false; };
		} else {
			link.innerHTML = 'Use Media <small>&#9660;</small>';
			link.onclick = function() { Dsq.Post.showMenu(link, id, 'media'); return false; };
		}
	};

	this.toggleReply = function(el, id) {
		// Create reply IFrame
		if (window.disqus_use_postmessage) {
			if (!this.stateReplyToggled[id]) {
				Dsq.$('dsq-reply-' + id).style.display = 'block';
				Dsq.$('dsq-reply-bar-' + id).style.display = 'block';
				// Create IFrame if it doesn't exist.
				if (!Dsq.frames['reply_' + id]) {
					var _meta = Dsq.jsonData.posts[id];
					Dsq.frames['reply_' + id] = new Dsq.ReplyFrame(Dsq.$('dsq-reply-frame-' + id), id);
					Dsq.frames['reply_' + id].init();
					Dsq.frames['reply_' + id].setState(id, _meta.depth);
				}
			} else {
				Dsq.$('dsq-reply-' + id).style.display = 'none';
				Dsq.$('dsq-reply-bar-' + id).style.display = 'none';
			}
		} else {
			// DEPRECATED
			if(!this.stateReplyToggled[id]) {
				// Reply toolbar
				Dsq.$('dsq-reply-bar-' + id).style.display = 'block';
				Dsq.Iframes.showReplyIframeInContainerIfAllowed(Dsq.$('dsq-reply-' + id), id);
			} else {
				Dsq.$('dsq-reply-bar-' + id).style.display = 'none';
				Dsq.Iframes.hideAllInContainer(Dsq.$('dsq-reply-' + id));
				if(this.stateRecordLink[id]) {
					// HACK: Cancel media before canceling self.
					this.toggleMediaReply(Dsq.$('dsq-media-link-' + id), id);
				}
			}
		}

		this.stateReplyToggled[id] = !this.stateReplyToggled[id];
		this._updateReplyLinks(el, id);

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE('dsq-reply-' + id); }

		Dsq.Events.fire(Dsq.Events.REPLY_IFRAME_TOGGLED, {
			postId: id,
			opened: this.stateReplyToggled[id]
		});
	};

	this.toggleMediaReply = function(el, id, xtype) {
		id = id || 0;
		if(id) {
			var container = Dsq.$('dsq-reply-' + id);
		} else {
			var container = Dsq.$('dsq-post-add');
		}

		if(!this.stateRecordLink[id]) {
			Dsq.Iframes.showReplyIframeInContainer(container, id, {xtype:xtype}, 'dsq-post-video');
		} else {
			Dsq.Iframes.showReplyIframeInContainer(container, id);
		}
		this.stateRecordLink[id] = !this.stateRecordLink[id];
		this._updateMediaLinks(el, id);

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
	};

	this.edit = function(el, id) {
		Dsq.$('dsq-comment-message-' + id).innerHTML = Dsq.Templates.frameEdit(id);
		el.parentNode.style.display = 'none';
		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE('dsq-comment-message-' + id); }
	};

    this.rate = function(el, id, vote) {
		if(Dsq.jsonData.request.is_authenticated || Dsq.jsonData.forum.allow_anon_votes) {
			if(vote == 1) {
                Dsq.$('dsq-rate-cont-' + id).innerHTML = '<img src="http://media.disqus.com/images/loading-small.gif">';
            }

            Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/vote.js'
                + '?post_id='    + id
                + '&vote='        + vote);

		} else {
			Dsq.Popup.login(Dsq.Strings.TO_RATE_PLEASE_LOG_IN);
		}
    };

	this.report = function(id, confirmed) {
		if(confirmed) {
			Dsq.Utils.postToUrl('http://disqus.com/forums/scobleizer/the_you_don8217t_need_more_friends_lobby/post_report/', {'post_id': id});
			Dsq.Popup.popModal('Thank you. This comment has been flagged for moderator attention.', 'Successfully flagged');
			Dsq.Utils.deleteNode(Dsq.$('dsq-post-report-' + id));
		} else {
			var title = Dsq.Strings.FLAG_INAPPROPRIATE_COMMENT;
			var message = Dsq.Strings.ARE_YOU_SURE_YOU_WOULD_LIKE_TO_REPORT_THIS_COMMENT_TO_A_MODERATOR + '? \
			<br /><br /> \
			<button type="button" onclick="Dsq.Popup._closePopup(null, true)"><strong>' + Dsq.Strings.NO + '</strong>, ' + Dsq.Strings.NEVER_MIND + '</button>&nbsp;&nbsp;&nbsp;<button type="button" onclick="Dsq.Post.report(' + id + ', true);"><strong>' + Dsq.Strings.YES + '</strong>, ' + Dsq.Strings.FLAG_INAPPROPRIATE_COMMENT + '</button><br /><br />'
			+ Dsq.Strings.THIS_WILL_FLAG_COMMENTS_FOR_MODERATORS_TO_TAKE_ACTION + '. \
			';

			Dsq.Popup.popModal(message, title, id);
		}
	};



	this.showAlert = function(id, msg) {
		var msgEl = Dsq.$('dsq-comment-message-' + id);
		var alert = '<div class="dsq-comment-alert">' + msg + '</div>';

		msgEl.innerHTML = alert + msgEl.innerHTML;
	};

};
// Dsq.Post


/**
 * Dsq.Thread
 */
Dsq.Thread = new function() {
	this.fc = null;
	this.ff = null;
	this.ac = null;

	
	this.adminIsOn = false;

	
	
	

	this.hlComment = null;
	this.hlCommentClass = null;

	this.getNextComment = function(el) {
		var start_id = el.id;
		while(el = el.nextSibling) {
			if(el.id && el.id.indexOf('dsq-comment-') != -1 && el.id != start_id) {
				return el;
			}
		}
		return null;
	};

	this.getActiveCommentId = function() {
		if (document.URL.indexOf('#comment-') >= 0) {
			var anchor = document.URL.slice(document.URL.indexOf('#') + 1);
			return anchor.replace('comment-', '');
		}
		return null;
	};

	this.highlightAnchor = function() {
		var i = this.getActiveCommentId();
		if (i == null) return false;
		var id = 'dsq-comment-' + i;
		var hash = window.location.hash;

		// Toggle the hash incase the comment isn't available when the page loads
		// for WebKit-based browsers.
		if (Dsq.Utils.webkit) {
			window.location.hash = '';
			window.location.hash = hash;
		}

		this.hlComment = Dsq.$(id);
		// Adding this conditional guard pending #289
		if (!this.hlComment) {
			return;
		}
		this.hlCommentClass = this.hlComment.className;
		this.hlComment.className += ' dsq-hl-anchor';

		setTimeout("Dsq.Thread.highlightClear()", 3000);
	};

	this.highlightClear = function() {
		if (!this.hlComment) {
			return;
		}
		this.hlComment.className = this.hlCommentClass;
	};

	this.login = function(toggle) {
		// toggle id is #dsq-reply-login-[id]
		var postId;
		if(toggle.id.indexOf('dsq-reply-login') != -1) {
			postId = toggle.id.slice(16);
			var container = Dsq.$('dsq-reply-' + postId);
		} else {
			var container = Dsq.$('dsq-post-add');
		}

		if(toggle) {
			if(toggle.className == 'dsq-login-active') {
				Dsq.Iframes.showReplyIframeInContainerIfAllowed(container, postId);
				toggle.className = '';
			} else {
				Dsq.Iframes.showLoginIframeInContainer(container, postId);
				toggle.className = 'dsq-login-active';
			}
		} else {
			Dsq.Iframes.showLoginIframeInContainer(container, postId);
		}

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
	};


	this.paginate = function(page, el_clicked, per_page) {
		// Use extra_params to pass any override parameters that we need to persist.
		var extra_params = '';

		// "Per page" can either be overriden by providing it as an argument
		// (per-call) or setting the disqus_per_page override variable (global).
		if(typeof per_page == 'undefined') {
			per_page = null;
		}
		if(typeof disqus_per_page != 'undefined' && per_page === null) {
			per_page = disqus_per_page;
		}

		if(typeof disqus_sort != 'undefined') {
			extra_params += '&sort=' + disqus_sort;
		}
		if(per_page !== null) {
			extra_params += '&per_page=' + per_page;
		}

		Dsq.$('dsq-pagination').innerHTML += '<img src="http://media.disqus.com/images/loading-small.gif">';
		
		if(el_clicked) {
			el_clicked.style.display = 'none';
		}
		
		Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/thread.js'
			+ '?slug='	+ 'the_you_don8217t_need_more_friends_lobby'
			+ '&p='		+ page
			+ extra_params);
	};

	this.sortBy = function(sort) {
		var disqus_script = document.createElement('script');
		var disqus_date = new Date();

		if (location.hash != '') {
			location.hash = '#disqus_thread';
		}

		if(typeof(disqus_url) == 'undefined') {
			disqus_url = disqus_href;
		}
		disqus_script.type = 'text/javascript';
		disqus_script.src = 'http://disqus.com/forums/scobleizer/thread.js'
			+ '?slug='	+ 'the_you_don8217t_need_more_friends_lobby'
			+ '&sort='	+ sort
			+ '&title='
			+ '&'		+ disqus_date.getTime();

		Dsq.$('dsq-comments').innerHTML = '<img src="http://media.disqus.com/images/loading.gif">';
		Dsq.container.appendChild(disqus_script);
	};

	this.subscribe = function(status, email) {
		// `status` is an int -- 1 to subscribe, 0 to unsubscribe
		if(Dsq.jsonData.request.is_authenticated || email) {
			// If authenticated user OR anonymous email provided

			if(email) {
				Dsq.Popup._closePopup(null, true);
			}

			Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/subscribe.js'
				+'?status=' 	+ status
				+ '&slug='		+ 'the_you_don8217t_need_more_friends_lobby'
				+ '&email=' 	+ encodeURIComponent(email));

		} else if(!email) {
			// If anonymous user and no email has been provided yet, prompt for email

			var title = 'Subscribe to this comment thread';
			var message = ' \
				New comments will be sent directly to your email inbox! \
				<div class="dsq-subscribe-submit"> \
					<p><strong>Enter your email address below.</strong></p> \
					<input type="text" id="dsq-subscribe-email"> \
					<button type="button" onclick="Dsq.Thread.subscribe(1, Dsq.$(\'dsq-subscribe-email\').value)">Subscribe</button> \
				</div> \
			';

			Dsq.Popup.popModal(message, title);
		}
	};

	this.showSettings = function() {
		if (!Dsq.jsonData.request.is_moderator) {
			return;
		}

		/* The form has to be re-designed when more options will come out. */
		var html = 'Automatically close comments after <input size="3" id="dsq-thread-days-alive" value="' + Dsq.jsonData.thread.days_alive + '" type="text" /> days. Existing comments will still be displayed.<br /><br />(Using 0 days will disable this feature)<br /><br />'
								 + '<button type="button" onclick="Dsq.Thread.updateDaysAlive();" class="dsq-button-small"><span>Save</span></button>'
								 + '<span id="dsq-thread-settings-status" class="dsq-options-status"></span>';

		Dsq.Popup.popModal(html, 'Settings');
	};

  this.showModeratorActions = function() {
      if (!Dsq.jsonData.request.is_moderator) {
          return;
      }

      var html = '<div class="dsq-moderate-options"><table><tr>' +
                 '<td>' + Dsq.Strings.ACTIONS + '</td><td><ul>';
      html += '<li><a href="#" onclick="Dsq.Thread.toggleClosed(); return false;">' +
              (Dsq.jsonData.thread.closed ? Dsq.Strings.OPEN_THREAD : Dsq.Strings.CLOSE_THREAD) +
              '</a></li>';
      html += '<li><a href="#" onclick="Dsq.Thread.toggleKilled(); return false;">' +
              (Dsq.jsonData.thread.killed ? Dsq.Strings.RESTORE_THREAD : Dsq.Strings.REMOVE_THREAD) +
              '</a></li>';
      html += '</ul></td></tr></table></div>' +
              '<p>Go to the full <a href="http://disqus.com/comments/moderate-threads/" target="_blank">moderate panel</a> for more options.</p>';
      Dsq.Popup.popModal(html, Dsq.Strings.MODERATE_OPTIONS);
  };

	this.updateDaysAlive = function() {
		  var days = Dsq.$('dsq-thread-days-alive').value;
		  var status = Dsq.$('dsq-thread-settings-status');
		  Dsq.Utils.postToUrl('http://disqus.com/forums/scobleizer/update_days_alive.js', {days:days,thread:Dsq.jsonData.thread.id});
		  status.innerHTML = 'Saved!';
		  window.setTimeout(function() { status.innerHTML = ''; }, 1000);
	};

  this.toggleClosed = function() {
      Dsq.Utils.postToUrl('http://disqus.com/forums/scobleizer/toggle_thread_closed.js', {thread:Dsq.jsonData.thread.id});
      window.setTimeout(function() { window.location.reload(); }, 500);
  };

  this.toggleKilled = function() {
      Dsq.Utils.postToUrl('http://disqus.com/forums/scobleizer/toggle_thread_killed.js', {thread:Dsq.jsonData.thread.id});
      window.setTimeout(function() { window.location.reload(); }, 500);
  };
};
// Dsq.Thread

Dsq.Events = function() {
	var obj = {};

	// Private
	var handlers = {};
	var getHandlers = function(event) {
		if (handlers[event] === undefined) {
			handlers[event] = [];
		}
		return handlers[event];
	};

	// Public
	// Value keys : postId, node, xtype
	obj.REPLY_IFRAME_CREATED = 1;
	// Value keys : postId, opened
	obj.REPLY_IFRAME_TOGGLED = 2;
	obj.fire = function(event, opt_value) {
		if (!event) {
			throw new Error('Unknown event');
		}
		var value = opt_value || {};
		for (var i=0; i<getHandlers(event).length; i++) {
			getHandlers(event)[i](value);
		}
	};
	obj.addHandler = function(event, callback) {
		getHandlers(event).push(callback);
	};

	return obj;
}();

/**
 * Dsq.Realtime
 */
Dsq.Realtime = new function() {
	var initialized = false;
	var interval = null;
	var last_checked = Dsq.jsonData.request.timestamp;
	var new_posts = [];
	var ongoing_request = false;
	var prev_script = null;

	function updateNewPostCount() {
		Dsq.$('dsq-realtime-alert').style.display = new_posts.length ? 'block' : 'none';

		Dsq.$('dsq-realtime-queued').innerHTML = new_posts.length
		+ ' new '
		+ Dsq.Utils.pluralize(new_posts.length, 'comment', 'comments')
		+ Dsq.Utils.pluralize(new_posts.length, ' was', ' were')
		+ ' just posted.';

		Dsq.$('dsq-realtime-show').innerHTML = '(' + Dsq.Strings.SHOW + ')';
	}

	function insertNewPosts() {
		var post_id = null;
		var after_id = Dsq.$('dsq-sort-select').value === 'oldest' ? -1 : null;

		for (var i=0; i<new_posts.length; i++) {
			post_id = new_posts[i];
			Dsq.Post.insert(after_id, post_id, Dsq.jsonData.posts[post_id].message);
			Dsq.Post.incrementPostCount();
			Dsq.Post.outlineComment(post_id);
		}
		new_posts = [];
	}

	this.enableInterval = function() {
		interval = setInterval(Dsq.Realtime.check, Dsq.jsonData.context.realtime_speed);
		Dsq.$('dsq-realtime-status').innerHTML = Dsq.Strings.ENABLED;
		Dsq.$('dsq-realtime-toggle').innerHTML = '(' + Dsq.Strings.PAUSE + ')';
	}

	this.disableInterval = function() {
		if (interval) {
			clearInterval(interval);
			interval = null;
		}
		Dsq.$('dsq-realtime-status').innerHTML = Dsq.Strings.PAUSED;
		Dsq.$('dsq-realtime-toggle').innerHTML = '(' + Dsq.Strings.RESUME + ')';
	}

	this.toggleInterval = function() {
		if (!interval) {
			Dsq.Realtime.enableInterval();
		} else {
			Dsq.Realtime.disableInterval();
		}
		return false;
	}

	this.initialize = function() {
		if (!initialized) {
			initialized = true;
			Dsq.$('dsq-realtime-toggle').onclick = this.toggleInterval;
			if (!Dsq.jsonData.forum.streaming_realtime) {
				Dsq.$('dsq-realtime-show').onclick = this.show;
				updateNewPostCount();
			}
			if (Dsq.jsonData.thread.realtime_paused) {
				Dsq.Realtime.disableInterval();
			} else {
				Dsq.Realtime.enableInterval();
			}
		}
	}

	this.show = function() {
		insertNewPosts();
		updateNewPostCount();
		return false;
	}

	this.check = function() {
		if (!ongoing_request && Dsq.jsonData.realtime_enabled) {
			if (prev_script) {
				prev_script.parentNode.removeChild(prev_script);
			}
			ongoing_request = true;
			prev_script = Dsq.Utils.execScript('http://disqus.com/forums/18349583/realtime.js?timestamp=' + last_checked);
		}
	};

	this.update = function(timestamp, posts, users) {
		ongoing_request = false;
		last_checked = timestamp;

		if (users) {
			for (var user_id in users) {
				if (users.hasOwnProperty(user_id)) {
					if (!Dsq.jsonData.users[user_id]) {
						Dsq.jsonData.users[user_id] = users[user_id];
					}
				}
			}
		}

		if (posts) {
			for (var post_id in posts) {
				if (posts.hasOwnProperty(post_id)) {
					if (!Dsq.jsonData.posts[post_id]) {
						Dsq.jsonData.posts[post_id] = posts[post_id];
						new_posts.push(post_id);
					}
				}
			}

			if (Dsq.jsonData.forum.streaming_realtime) {
				insertNewPosts();
			} else {
				updateNewPostCount();
			}
		}
	};

}();

// DEPRECATED
Dsq.Iframes = function() {
	// Different style of object from the above. Hoping to switch to this for some reason.
	var obj = {};

	// Private
	var showIframeInContainer = function(container, id, markup) {
		// Look through container for iframes, hiding them, except show one that matches id
		// If none of them matched id, create a new iframe using markup and insert it.
		// Returns the iframe node if and only if it was newly created.
		var found = false;
		for (var i=0; i<container.childNodes.length; i++) {
			var child = container.childNodes[i];
			if (child.nodeName == 'IFRAME') {
				if (child.id == id) {
					child.style.display = 'block';
					found = true;
				} else {
					child.style.display = 'none';
				}
			}
		}
		if (found) {
			return;
		}
		// The iframe wasn't found, so construct it and add it to the container.
		// Don't use innerHTML because it might reload iframes
		var div = document.createElement('div');
		div.innerHTML = markup;
		var iframe = div.childNodes[0];
		div.removeChild(iframe);
		container.appendChild(iframe);
		return iframe;
	};

	// Public
	obj.makeReplyIframeId = function(opt_postId, opt_xtype) {
		var id = 'dsq-post-add-iframe';
		if (opt_xtype) {
			id += '-' + opt_xtype;
		}
		if (opt_postId) {
			id += '-' + opt_postId;
		}
		return id;
	};
	obj.makeLoginIframeId = function(opt_postId) {
		if (!opt_postId) {
			return 'dsq-login-iframe';
		}
		return 'dsq-login-iframe-' + opt_postId;
	};
	obj.makeReplyIframeName = function(opt_postId, opt_xtype) {
		var name = 'dsq-reply-frame';
		if (opt_xtype) {
			name += '-' + opt_xtype;
		}
		if (opt_postId) {
			name += '-' + opt_postId;
		}
		return name;
	};
	obj.showReplyIframeInContainer = function(container, opt_postId, opt_extraParams, opt_className) {
		// Construct the id so we can check if it's already present.
		// Hide any other iframes we find, and show this one if it's found.
		var params = opt_extraParams || {};
		// use xtype in the id and name so we can distinguish media replies from text replies:
		var id = Dsq.Iframes.makeReplyIframeId(opt_postId, params.xtype);
		var name = Dsq.Iframes.makeReplyIframeName(opt_postId, params.xtype);
		var attributes = {
			'id': id,
			'name': name,
			'class': opt_className || 'dsq-post-reply'
			};
		var markup = Dsq.Templates.frameReply(opt_postId, opt_extraParams, attributes);
		var iframe = showIframeInContainer(container, id, markup);
		// It was newly created
		if (iframe) {
			Dsq.Events.fire(Dsq.Events.REPLY_IFRAME_CREATED, {
				postId: opt_postId,
				node: iframe,
				xtype: params.xtype
			});
		}
	};
	obj.showLoginIframeInContainer = function(container, opt_postId) {
		var id = Dsq.Iframes.makeLoginIframeId(opt_postId);
		var markup = Dsq.Templates.frameLogin({id: id});
		showIframeInContainer(container, id, markup);
	};
	obj.showReplyIframeInContainerIfAllowed = function(container, opt_postId) {
		if (Dsq.jsonData.context.show_reply) {
			obj.showReplyIframeInContainer(container, opt_postId);
		} else {
			obj.hideAllInContainer(container);
		}
	};
	obj.hideAllInContainer = function(container) {
		for (var i=0; i<container.childNodes.length; i++) {
			var child = container.childNodes[i];
			if (child.nodeName == 'IFRAME') {
				child.style.display = 'none';
			}
		}
	};

	return obj;
}();

Dsq.Twitter = new function() {
	var that = this;

	this.startTwitterConnect = function() {
		var popupParams = 'location=0,status=0,width=800,height=400';
		that._twitterWindow = window.open(Dsq.jsonData.settings.disqus_url + '/_ax/twitter/begin/', 'twitterWindow', popupParams);
		that._twitterInterval = window.setInterval(that.completeTwitterConnect, 1000);
	};

	this.completeTwitterConnect = function() {
		if (that._twitterWindow.closed) {
			window.clearInterval(that._twitterInterval);
			window.location.reload();
		}
	};
};

Dsq.Yahoo = new function() {
	var that = this;

	this.startYahooConnect = function() {
		var popupParams = 'location=0,status=0,width=800,height=400';
		that._yahooWindow = window.open(Dsq.jsonData.settings.disqus_url + '/_ax/yahoo/begin/', 'yahooWindow', popupParams);
		that._yahooInterval = window.setInterval(that.completeYahooConnect, 1000);
	};

	this.completeYahooConnect = function() {
		if (that._yahooWindow.closed) {
			window.clearInterval(that._yahooInterval);
			window.location.reload();
		}
	};
};

Dsq.OpenID = new function() {
	var that = this;

	this.requestURL = function() {
		var message = '<table class="dsq-openid-form"><tr><td style="vertical-align:top;" rowspan="2"><img src="' + Dsq.jsonData.settings.media_url + '/images/openid-icon-100x100.png" /></td>';
		message += '<td><label for="dsq-openid-url">OpenID URL:</label></td><td><input type="text" id="dsq-openid-url" /></td></tr>';
		message += '<tr><td><label for="dsq-openid-username">Display name:</label></td><td><input type="text" id="dsq-openid-username" /></td></tr>';
		message += '<tr><td class="dsq-openid-submit" colspan="3"><input type="button" value="Sign in" onclick="Dsq.OpenID.startConnect();" /></td></tr>';
		message += "</table>";

		Dsq.Popup.popModal(message, 'Sign in using OpenID');
	};

	this.startConnect = function() {
		var isblank = function(str) {
			return /^\s*$/.test(str);
		};

		var openid_url = Dsq.$('dsq-openid-url').value;
		var username = Dsq.$('dsq-openid-username').value;

		if (isblank(openid_url)) {
			return;
		}

		var popupParams = 'location=0,status=0,width=800,height=500';
		var url = Dsq.jsonData.settings.disqus_url + '/_ax/openid/begin/' + '?url=' + encodeURIComponent(openid_url) + '&username=' + encodeURIComponent(username);
		that._openidWindow = window.open(url, 'openidWindow', popupParams);
		that._openidInterval = window.setInterval(that.completeConnect, 1000);
	};

	this.completeConnect = function() {
		if (that._openidWindow.closed) {
			window.clearInterval(that._openidInterval);
			window.location.reload();
		}
	};
};

Dsq.Reaction = new function() {
	var that = this;

	this.hide = function(id) {
		Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/hidereaction.js?' + 'reaction_id=' + id);
	};

	this.reportMissingReactions = function() {
		if (!Dsq.jsonData.request.is_moderator || !Dsq.jsonData.forum.reactions_enabled) {
			return;
		}

		if (Dsq.jsonData.thread.queued) {
			Dsq.Popup.popModal('Your report has been received. The system will automatically search for new reactions; if any are found, they will be displayed on this comment thread.<br/><br/>Thank&nbsp;you.',
												 'Reported missing reactions');
			return;
		}

		Dsq.Utils.execScript(Dsq.jsonData.settings.disqus_url + '/forums/scobleizer/queueurl.js');
	};
};

Dsq.CNN = function() {
	var obj = {};

	obj.authenticate = function() {
		var url = Dsq.jsonData.settings.disqus_url + "/saml/cnn/try/";
		Dsq.Utils.postToUrl(url, {'target': document.location}, true);
	};

	return obj;
}();


if(Dsq.Utils.ie6) {
	(function() {
		DSQ_HEADER_AVATAR_RE = /<div class="dsq-header-avatar"(.*?)>/gim;
		Dsq.Templates.registerFilter('postPrependHeader', function(html, post_id) {
			// Add "onmouseout" for dsq-header-avatar for dropProfile
			// functionality since IE6 cannot use :hover.
			function _headerAvatarReplace(content, inner, _unused, html) {
				return '<div class="dsq-header-avatar" '
					+ inner
					+ ' onmouseout="Dsq.Post.dropProfile(' + post_id + ')">';
			}
			html = html.replace(DSQ_HEADER_AVATAR_RE, _headerAvatarReplace);
			return html;
		});
	})();
}





	// TODO: Move Seesmic code outside of the main script.  Don't let this script clobber the global namespace.
	if(typeof seesmic == 'undefined') { var seesmic = {}; }
	seesmic.widget = new function () {
		this.callback = function (data) {
			playerVersion = data.disqusplayer;
		};
	};

	
	var scriptEl = document.createElement('script');
	scriptEl.setAttribute('type', 'text/javascript');
	scriptEl.setAttribute('src', 'http://seesmic.com/version.js?callback=seesmic.widget.callback');
	document.getElementsByTagName('head')[0].appendChild(scriptEl);

	
	var scriptEl = document.createElement('script');
	scriptEl.setAttribute('type', 'text/javascript');
	scriptEl.setAttribute('src', 'http://media.disqus.com/javascript/library/swfobject.js');
	document.getElementsByTagName('head')[0].appendChild(scriptEl);

	function see_play_video(_videoUri, _add) {
		var swf = !!playerVersion ? playerVersion : 'http://seesmic.com/embeds/StandalonePlayer.swf';

		flashcontentDiv = Dsq.$(_videoUri + '_content');
		previewDiv = Dsq.$('dsq-seesmic-' + _videoUri + '_preview');
		hideDiv = Dsq.$('dsq-seesmic-' + _videoUri + '_hide');
		showDiv = Dsq.$('dsq-seesmic-' + _videoUri + '_show');
		if(_add) {
			// push flash widget
			var so = new SWFObject(swf, 'sotester', '300', '270', '9', '#000000');
			so.addVariable('video', _videoUri);
			so.addParam('allowFullScreen', 'true');
			so.addParam('allowScriptAccess','always');
			so.useExpressInstall('swfobject/expressinstall.swf');
			so.write(_videoUri + '_content');

			previewDiv.style.display = 'none';
			hideDiv.style.display = 'block';
			showDiv.style.display = 'none';
		}
		else {
			flashcontentDiv.innerHTML = '';
			previewDiv.style.display = 'block';
			hideDiv.style.display = 'none';
			showDiv.style.display = 'block';
		}
	};





(function() {
	//
	// Load theme.  This overrides the base templates with template functions
	// from the respective themes.
	//
	if (Dsq.jsonData.integration.theme == 4) {
		var theme = 'narcissus';
		// HACK: Set variable on window to use post message.
		window.disqus_use_postmessage = true;

		
		for(var prop in Dsq.Themes[theme]) {
			if(Dsq.Themes[theme] && Dsq.Themes[theme].hasOwnProperty(prop)) {
				Dsq.Templates[prop] = Dsq.Themes[theme][prop];
			}
		}
		
		for(var prop in Dsq.Post) {
			if(Dsq.Themes[theme] && Dsq.Themes[theme].hasOwnProperty(prop)) {
				Dsq.Post[prop] = Dsq.Themes[theme][prop];
			}
		}
	}

	//
	// Register templates.  This must be done after all themes are loaded.
	//
	Dsq.Templates.registerTemplate('authPost', Dsq.Templates.authPost);
	Dsq.Templates.registerTemplate('header', Dsq.Templates.header);
	Dsq.Templates.registerTemplate('footer', Dsq.Templates.footer);
	Dsq.Templates.registerTemplate('trackbacks', Dsq.Templates.trackbacks);
	Dsq.Templates.registerTemplate('reactions', Dsq.Templates.reactions);
	Dsq.Templates.registerTemplate('prependPost', Dsq.Templates.prependPost);
	Dsq.Templates.registerTemplate('appendPost', Dsq.Templates.appendPost);
	Dsq.Templates.registerTemplate('postPrependHeader', Dsq.Templates.postPrependHeader);
	Dsq.Templates.registerTemplate('postAppendHeader', Dsq.Templates.postAppendHeader);
	Dsq.Templates.registerTemplate('preBody', Dsq.Templates.preBody);
	Dsq.Templates.registerTemplate('postBody', Dsq.Templates.postBody);
	Dsq.Templates.registerTemplate('postFooter', Dsq.Templates.postFooter);
	Dsq.Templates.registerTemplate('_popupGeneric', Dsq.Templates._popupGeneric);
	Dsq.Templates.registerTemplate('voted', Dsq.Templates.voted);
	Dsq.Templates.registerTemplate('popupProfile', Dsq.Templates.popupProfile);
	Dsq.Templates.registerTemplate('postBox', Dsq.Templates.postBox);
	Dsq.Templates.registerTemplate('pagination', Dsq.Templates.pagination);
	Dsq.Templates.registerTemplate('postComment_onSuccess', Dsq.Templates.postComment_onSuccess);

})();

Dsq.container.className = "clearfix";
Dsq.container.innerHTML = ' \
<ul id="dsq-comments">\
	 <li id="dsq-comment-9692067">\
	 <div id="dsq-comment-header-9692067" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692067" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692067" href="http://nevali.net/" target="_blank" rel="nofollow">nevali</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692067" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692067" class="dsq-comment-message">All of this points to the wider (but unnoticed by many) problem with a lot of social networks: they aim to supplant third-party services which are often far BETTER than the ones they provide. Is Flickr as an all-round photo sharing service better than Facebook\'s photo sharing? Absolutely! It\'s what it\'s FOR, after all.<br><br>Social networks are eventually going to have to stop trying to provide every service under the sun as their own and form partnerships and perform good integration jobs instead. Facebook\'s apps are a big step in this direction: I don\'t actually touch Facebook\'s photo sharing unless I\'m looking at somebody else\'s pictures, and just publish all of mine via Flickr (and I use one of the several Flickr-Facebook apps so that people browsing to my profile know that they\'re there). It works, but it doesn\'t work THAT well because the integration is limited. Facebook (in this example) is in no position to dictate that I must share all of my photos through it and not the service I already have and pay for, and so IT (rather than me) should be doing the hoop-jumping to make the integration work seamlessly. The same applies to YouTube, Upcoming, del.icio.us, Twitter, and so forth.<br><br>Ultimately, I can\'t help but wonder if eventually social networks as they stand will die off, replaced with people and their blogs/homepages with something like an OpenID-based service for access control (public/friends/family access lists) and embedded metadata (e.g., FOAF) to actually describe the “network”. The existing networks, of course, could participate in this, but they don\'t because they either don\'t see the value, or they see it as a threat (which it is, really). I suspect it may well be where the future lies, though.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692012">\
	 <div id="dsq-comment-header-9692012" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692012" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692012" href="http://theobstructionist.com/" target="_blank" rel="nofollow">Seth E</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692012" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692012" class="dsq-comment-message">I know you\'ve interviewed the Facebook folks before, somehow I always thought you could just, well, "ask" them to increase your limit. But, then again, I also assumed you were the only one to ever reach it, which, as you point out, isn\'t the case. I guess the answer, like the answer to Twitter\'s "upgrading", is for these services to get bought by someone big, evil, and competent (like, uh, Microsoft).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692013">\
	 <div id="dsq-comment-header-9692013" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692013" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692013" href="http://ari.typepad.com/" target="_blank" rel="nofollow">Steve Rhodes</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692013" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692013" class="dsq-comment-message">Actually flickr did cap the number of contacts earlier this year.  I forget if it was 2000 or 3000.<br><br>  The reason was to try and prevent contact spam.  You get that on twitter now too with people (or some cases websites) following thousands of people hoping some of them will follow them back out of politeness).<br><br>A lot of people complained and they took the suggestion of one member to make the limit 3000 non-reciprocal contacts.<br><br> But I do agree that Facebook needs to raise the limit (even though I only currently have 132 friends) &amp; realize (like almost every internet site) people are using it for different purposes than they ever imagined.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692014">\
	 <div id="dsq-comment-header-9692014" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692014" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692014" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692014" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692014" class="dsq-comment-message">Seth: I\'ve always asked about that off camera. They admit it\'s an engineering problem. They call people who reach the limit "whales," by the way.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692015">\
	 <div id="dsq-comment-header-9692015" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692015" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692015" href="http://theobstructionist.com/" target="_blank" rel="nofollow">Seth E</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692015" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692015" class="dsq-comment-message">Also, couldn\'t you just start a "Scoble University" Network, so those of us in your queue could at-least access your page?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692016">\
	 <div id="dsq-comment-header-9692016" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692016" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692016" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692016" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692016" class="dsq-comment-message">Steve: yeah, but Flickr lets me share my stuff with a public audience. I have 600 people who want to see my stuff that I can\'t show it to them.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692020">\
	 <div id="dsq-comment-header-9692020" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692020" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692020" href="http://www.technovia.co.uk/" target="_blank" rel="nofollow">Ian Betteridge</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692020" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692020" class="dsq-comment-message">Nevali: that\'s why a service which integrates other services, rather than trying to reinvent the wheel, will ultimately win out. And, I suspect, that service will be based around RSS coupled with a strong address book component.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692064">\
	 <div id="dsq-comment-header-9692064" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692064" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692064" href="http://wilywordsmith.blogspot.com/" target="_blank" rel="nofollow">Thomas Aquinas</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692064" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692064" class="dsq-comment-message">Whew, I finally know the answer.  Only 5,000 FB friends can dance on the point of a needle!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692065">\
	 <div id="dsq-comment-header-9692065" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692065" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692065">Scott</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692065" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692065" class="dsq-comment-message">just because YOU want use a system in a hard-core way doesn’t mean that it should be designed for YOU.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692011">\
	 <div id="dsq-comment-header-9692011" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692011" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692011">Chris</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692011" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692011" class="dsq-comment-message">"Fifth, just because YOU don’t use a system in a hard-core way doesn’t mean that it should be designed for YOU."<br><br>Just because you\'re a hard-core user doesn\'t mean the system should be designed for you either.  In fact, since you\'re almost certainly an extreme case, it probably shouldn\'t be designed for you.  A system should be designed in a way that is going to best serve its users and make its owners the most money.  If Facebook puts their resources (money, hardware, developer time) into improved scaling, so you and a few others can put more than 5000 people on their contact list, they won\'t be putting those resources into something else that would benefit more of their customer base.  Fixing the 5000 friend limit only really makes sense if there are more than a few people who are bumping up against it (and a lot more people who can\'t be friends with a \'whale\' because of the limit).<br><br>Now, because you\'ve got a big audience and are quite vocal about this issue, they may want to do it just so you\'ll stop complaining about it.  However, I still think their users would be better off if they put their resources into improvements that would benefit a broader cross section of their users.  A service that tries to be all things to all people isn\'t going to be very good at any of them.  It\'s hard, but sometimes a business just has to say to a customer, "I\'m sorry, the product we\'re making isn\'t the product you want to buy.  We\'re focused on a different market."  I think that may be the case with you and Facebook.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692069">\
	 <div id="dsq-comment-header-9692069" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692069" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692069" href="http://dawnkey.wordpress.com/" target="_blank" rel="nofollow">Dawn D.</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692069" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692069" class="dsq-comment-message">Robert, if it\'s an engineering problem then does that mean it\'s insurmountable or that they CAN fix it, but WON\'T???<br><br>I mean, is Facebook the pig who wished they had used bricks instead of straw but now it\'s too late unless they start over, or are they the pig who did build a brick house on a strong foundation but they\'re choosing not to make it any taller??</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692017">\
	 <div id="dsq-comment-header-9692017" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692017" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692017">Vit Fargas</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692017" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692017" class="dsq-comment-message">Some reality check for Scoble: imagine 1000 people who are connected to 5000 other people. How more efficient hardware you need to make 1000 people connect to 10 000 people?<br><br>Well math is simple.. number of connections are in first case 1000 ^ 5000 which is 1 followed by 15 000 zeros (million is 1 followed by 6 zeros, billion 1 followed by 9 zeros... to get an idea...). In second case its 1000 ^ 10 000 what is 1 followed by 30 000 zeros). So if your system runs fine with 5000 connection and you get billion times better hardware, you can make how many connection? Well 5009. Yes that\'s right. And not 10 000. To get to 10 000 you need to 1000 times upgrade your hardware everytime boosting billion times performance.<br><br>The problem is simply not scalable. Surely not with centered architecture. Yeah, if you want it scalable write down distributed architecture, where everyone is running server on own computer and your computer  will make 10000 connections to your friends... I\'m not sure if your comp or ISP could handle it, but problem would be scalable. To get 20000 connection you would need only 2x better internet connection or hardware...<br><br>I hope facebook developers aren\'t so shortsighted and know why are limits and won\'t give in.  Because milions of people with hundreds contact will suffer because of few hundred with thousand of them.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692019">\
	 <div id="dsq-comment-header-9692019" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692019" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692019">Andrew</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692019" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692019" class="dsq-comment-message">Chris - well said. I\'m glad I wasn\'t the only who saw the hilarious irony there.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692018">\
	 <div id="dsq-comment-header-9692018" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692018" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692018">NewOrkut</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692018" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692018" class="dsq-comment-message">Hey Rob, if google realy wants to eat facebook\'s part of the cake, they should hire you right now to promote their new social arena next november 5th.<br><br>Google, you reading?<br><br>Both win big.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692068">\
	 <div id="dsq-comment-header-9692068" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692068" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692068" href="http://siddharthatwork.livejournal.com/" target="_blank" rel="nofollow">Siddharth Thakkar</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692068" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692068" class="dsq-comment-message">Now this is some discussion!<br><br>While it may *not* be as simple a calculation about hardware as Vit Fargas has mentioned, there is still a flaw in the argument. It is utilization of available space. Now, it\'s not that everyone who *can* add 10,000 friends *will*. Infact, most users will not cross that limit even if they were to start friend-spamming (if there was such a term) others. Recently Gmail upped their storage space counters and increased it\'s speed. Does not mean it WILL be maxed out by each user. Infact most would use it for less than 10% space (I get more than 300 mails daily and I am still at 6%).<br><br>Hence, I guess facebook could do away with the limits. Especially for critics that are as vocal, visible and followed as Robert.<br><br>Cheers!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692021">\
	 <div id="dsq-comment-header-9692021" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692021" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692021" href="http://inphotos.org/" target="_blank" rel="nofollow">Donncha</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692021" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692021" class="dsq-comment-message">Robert - watch out, one of these days I\'ll add you as a friend on Facebook and come visit your home town :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692066">\
	 <div id="dsq-comment-header-9692066" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692066" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692066" href="http://blogan.net" target="_blank" rel="nofollow">Brent Logan</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692066" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692066" class="dsq-comment-message">Seems to me that political campaigns would want a *lot* more than 5,000 friends.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692063">\
	 <div id="dsq-comment-header-9692063" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692063" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692063">Chris</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692063" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692063" class="dsq-comment-message">Siddharth: I can\'t be sure, but from the way Robert described it, it seems unlikely to be a problem that can be solved by throwing more hardware at it (if it were, they probably would have done it by now, if just to keep him from complaining about it).  Lack of scalability is generally asoftware architecture problem.  Like most software problems, a fix will probably scale very well for large numbers of customers(if they fix it for one person, there\'s no additional cost to fix it for everyone) but software economics suck for small numbers of customers (a software problem costs the same amount to fix whether it affects one person or 100,000 people).  Hence the question: are enough people running up against this limit to make it worthwhile for Facebook to rearchitect their software to fix it?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692061">\
	 <div id="dsq-comment-header-9692061" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692061" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692061">Ron</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692061" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692061" class="dsq-comment-message">Scoble, you prove your own point when you say just because You want to use a product a certain way means it should be designed that way. You are a corner case. No software company builds its products to appeal to corner usage cases.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692062">\
	 <div id="dsq-comment-header-9692062" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692062" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692062" href="http://blog.frivolousmotion.com/" target="_blank" rel="nofollow">Kevin</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692062" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692062" class="dsq-comment-message">What I don\'t understand is how MySpace allows you to have literally millions of friends, yet Facebook is stuck with an engineering problem that limits them to 5000. Could it be that the nearly universally-agreed-upon-as-crappy site is actually a much stronger platform than the poster-child of good social networking? What\'s going on here?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692060">\
	 <div id="dsq-comment-header-9692060" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692060" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692060">Vit Fargas</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692060" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692060" class="dsq-comment-message">I made an error, it\'s not so dramatical - the number of connections is just number of users times number of connections. Still taking in account that that it\'s centralized solution, if everyone would use facebook  to add everyone he knows, this could get quickly very messy...<br><br>sorry</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692055">\
	 <div id="dsq-comment-header-9692055" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692055" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692055" href="http://robert.accettura.com/" target="_blank" rel="nofollow">robertaccettura</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692055" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692055" class="dsq-comment-message">I don\'t think it\'s practical to build applications to meet every persons needs.  You build towards your target audience.  Your clearly not Facebook\'s target.<br><br>One could say they should just get rid of the "Friend" concept and make it just 1 large community.<br><br>That said, one could *very easily* say Facebook is inept because it won\'t let me bulk comment on everyone\'s wall.  One may need this for commercial purposes.  Of course Facebook doesn\'t want this.  But there are easily hundreds of thousands on Facebook who want to be able to leave "commercial offers/advertisements" on everyone\'s profile page.<br><br>5000 is a pretty nice # because it limits the amount of damage anyone can do.  Even the worst type of social exploits can only go so far to damage their global community.  MySpace didn\'t have this.  MySpace, Facebook, Flickr constantly wage a war against spammers/child molesters/porn, etc. etc.  Facebook has been able to avoid most of this because everyone is essentially sandboxed.  You can only go so far without having enough friends.  A cap on friends means you still have a limited reach.<br><br>I\'d say it\'s a brilliant design.  The biggest problems that face their competitors are much smaller issues for them.  I\'m pretty sure every company would like to be able say that.  Especially in tech, normally your competitors biggest problem is yours.  The winner is the one who can handle it the best and still edge out the others.  Facebook can focus purely on the fight.<br><br>Also rather well done is LinkedIn, they cured the problem by avoiding the true "social" aspect instead going for "business".  Combined with a "pro" or "paid" whatever you want to call it model.  That\'s left them with a fairly beneficial networking model, but their niche targeting hasn\'t allowed them to bring in as much traffic.<br><br>Nobody has solved the problems thus far as well as Facebook.  Not even Google managed to pull off a community as well.  Orkut\'s drove Americans away by being spam filled when alternatives were open and spam free.  Now it\'s mainly for Latin America.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692010">\
	 <div id="dsq-comment-header-9692010" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692010" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692010">Michael</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692010" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692010" class="dsq-comment-message">I believe the 5000-"friend" limit is a good thing - for the reason that it DOES limit people like Scoble.<br><br>It really IS supposed to be for friends - or at least weak acquaintances whom you\'ve at least vetted in some real way - and not a public (or worse, commercial) broadcast medium.<br><br>If the site were wide open to those who "befriend" anyone because they believe popularity is what\'s important it would quickly break down. In fact, MySpace is becoming a case in point. It\'s now a commercial medium, driving the individuals to...Facebook.<br><br>So Facebook, having learned that lesson, sacrifices the few Scobles to protect the many, um, Michaels. I like that. Don\'t potentially mess me over so that Scoble can use the site to broadcast.<br><br>One final thing - since when did people HAVE to be your friends to see your photos? And even if they did, isn\'t it insanely inefficient to have to "befriend" them by the thousands?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692059">\
	 <div id="dsq-comment-header-9692059" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692059" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692059" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692059" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692059" class="dsq-comment-message">Michael: how can I let everyone see my videos on Facebook? I\'d love to know that.<br><br>I have more than 4,500 business cards collected in face-to-face meetings over the past seven years. Are you saying those aren\'t "weak acquaintances?"</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692058">\
	 <div id="dsq-comment-header-9692058" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692058" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692058" href="http://dawnkey.wordpress.com/" target="_blank" rel="nofollow">Dawn D.</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692058" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692058" class="dsq-comment-message">"To get to 10 000 you need to 1000 times upgrade your hardware everytime boosting billion times performance."<br><br>Okay, I\'m not an engineer, but this sounds absurd to me.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692057">\
	 <div id="dsq-comment-header-9692057" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692057" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692057" href="http://dawnkey.wordpress.com/" target="_blank" rel="nofollow">Dawn D.</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692057" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692057" class="dsq-comment-message">Okay, Vit retracted his remarks.<br><br>I agree that no site can be all things to all people, but smart companies listen to customer needs.  If Facebook can\'t or won\'t increase the 5,000, then somebody else will come along.  That\'s the beauty of a free market.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692054">\
	 <div id="dsq-comment-header-9692054" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692054" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692054" href="http://www.facebook.com/profile.php?id=624241806" target="_blank" rel="nofollow">catena</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692054" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692054" class="dsq-comment-message">Robert said: "The hell with the lobby."<br><br>If you would take a few moments to unfriend those who disagree with you on a subject you care so passionately about, perhaps you would have room in your friend list for people who better support your positions.<br><br>When you grow past a certain point, it\'s better to use churn to improve quality.  For example, once I grew to adulthood, I\'d rather have a fixed amount of healthy cells, than fast-growing cancer or fat.<br><br>What value are you getting from most of your "friends"?  How can you take advantage of a network that large and shallow?  I\'ll bet that whatever you answer to that is, it\'s not in Facebook\'s mission statement.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692056">\
	 <div id="dsq-comment-header-9692056" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692056" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692056">Chris</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692056" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692056" class="dsq-comment-message">While I love free markets, I don\'t know if someone else coming along is going to be a solution in this case.  Let\'s say a new social networking site comes along advertising that they allow an infinite number of friends.  On the face of it, it seems like that would be appealing to people like Robert who want a lot of friends.  However, it\'s not really going to appeal to his 5,000+ friends, since most of them have much smaller social networks.  The only reason for them to switch to another network is if Robert moves and they like him enough to give up their own networks and follow him.  So a social networking site without Facebook\'s limitations is only going to appeal to a relatively small number of people (the \'few thousand\' that have run up against the limit in Facebook).  If only a small number of people switch, that would really defeats the purpose of moving to a network without limits in the first place.<br><br>IIRC Robert\'s already said that he\'s not going to move away from Facebook despite this limitation because it\'s where all his existing friends are.  The combination of the network lock-in effect and the fact that "people with more than 5000 online friends" are such a niche market is probably going to keep a competitor who makes that their selling point from succeeding.<br><br>The only real hope I see here (aside from enough people running up against this barrier to make it worthwhile for Facebook to rearchitect) is for a competing social networking site to arise that has enough improvements and cool features to get lots of people to switch AND just happens to scale for large numbers of friends much better than Facebook does.  The obvious candidate to fill this role is Google.  They have experience creating products that are able to take market share away from established competitors (even in fields with lock-in effects) and they\'re better than anyone else in the world at building software that\'s massively scalable.<br><br>I\'ll just add that while I think that not addressing the 5000 user limit makes sense for Facebook from a business point of view, this is really something they should have seen coming.  Online relationships have long been known to display "small world" characteristics, and one of those characteristics is the presence of hubs, individuals with huge numbers of connections.  Even before social networking sites existed, it was quite easy for someone with knowlege of small-world networks to predict that there would be some people would end up with a lot of online friends.  If Facebook had done a little research they could have recognized this from the beginning and built their software to accommodate it much more easily than trying to go back and retrofit it now.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692052">\
	 <div id="dsq-comment-header-9692052" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692052" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692052" href="http://www.mofata.com/" target="_blank" rel="nofollow">Ryan</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692052" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692052" class="dsq-comment-message">Scob- You know it\'s an engineer problem, c\'mon. 5K friends is an edge case. Not many people probably have 5K friends. So if I\'m a PM at FB I\'m ranking this feature against more highly used or competitive features. Sorry man, it\'s the price you pay for being popular :)<br><br>Ryan</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692051">\
	 <div id="dsq-comment-header-9692051" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692051" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692051" href="http://thesmallwave.com/" target="_blank" rel="nofollow">Tom</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692051" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692051" class="dsq-comment-message">Are you insane? I couldn\'t care less how many "friends" you have, but you\'re asking Facebook to support what you and "thousands" have when their service has MILLIONS of users. They\'d be NUTS to cater to such a tiny percentage of their base no matter how whiney those users become. And, believe me, you\'re being pretty whiney.<br><br>While they\'re busy building a site that scales for you and a few thousand others, Google or somebody else will offer a site with added features for the millions of users who will desert Facebook for it. Features Facebook would have had if they weren\'t wasting their time trying to keep you happy.<br><br>Facebook still hasn\'t figured out how to make money, but I can guarantee them that wasting resources on such a small fraction of their base in not it. Unless they charged for the "Facebook Pro" you want them to build.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692050">\
	 <div id="dsq-comment-header-9692050" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692050" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692050" href="http://www.zoliblog.com" target="_blank" rel="nofollow">Zoli Erdos</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692050" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692050" class="dsq-comment-message">Deja vu. We had this debate 2-3 years ago on LinkedIn, between those who amassed 5k-7k (in one <a href="http://www.zoliblog.com/2006/05/07/why-i-cleaned-house-on-linkedin-when-less-is-more/" rel="nofollow">famous case</a> 16K) and those who thought your online network  should be as reflection of your real-life one, typically maxing out at a few hundred - the latter appeared to be the majority opinion.<br><br>Now we have a new platform, and here we start again not having learned anything...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692048">\
	 <div id="dsq-comment-header-9692048" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692048" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692048" href="http://www.lit-fuse.net/blog" target="_blank" rel="nofollow">Caryn</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692048" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692048" class="dsq-comment-message">Now you\'ve made me think about the approaches to what "friends" are to different people. I lean toward only adding people I\'ve actually met and known for a bit -- or those I\'ve known and would invite for dinner. But that\'s just my personal preference and I wholly agree that your approach is certainly valid and probably very useful. Really, you should be able to have 50,000 social network contacts if you wanted to. Although I wonder how many vampires invititions you would receive per day then?<br><br>It seems that FB was willing to open the doors to the rest of us, without fully considering the multitude of uses their new customers might need. Or perhaps they did and weren\'t able or willing to accomodate it? Maybe this opens the door for ScoBook?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692049">\
	 <div id="dsq-comment-header-9692049" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692049" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692049">Anatoly</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692049" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692049" class="dsq-comment-message">Yeah, Robert - Facebook should cater to the minority that wants to have more than 5000 friends.<br><br>In fact, they should make this a bigger priority than anything else they may have on their plate. I recommend you petition your 5000 friends to make a big hue and cry about this.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692043">\
	 <div id="dsq-comment-header-9692043" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692043" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692043" href="http://www.newmodernscience.com/" target="_blank" rel="nofollow">Chris Hahn</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692043" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692043" class="dsq-comment-message">They really need to put the resources into fixing it. Imagine if they wanted to start to take some of MySpace\'s market in letting say, music artists set up profile pages. I guarantee, some artists would probably hit 5K in a matter of hours. Not to mention all of the other reasons that have been given.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692044">\
	 <div id="dsq-comment-header-9692044" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692044" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692044">Joel</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692044" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692044" class="dsq-comment-message">@24 "Michael: how can I let everyone see my videos on Facebook? I’d love to know that."<br><br>Uhhhhh...doesn\'t everyone that has access to facebook have access to the internet? Thus, can\'t they get to your videos via your blog, PodTech, etc?  Why does Facebook have to be the vehicle to serve them up?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692032">\
	 <div id="dsq-comment-header-9692032" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692032" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692032" href="http://ericrice.com/" target="_blank" rel="nofollow">Eric Rice</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692032" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692032" class="dsq-comment-message">Great, my epic comment eaten by akismet.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692047">\
	 <div id="dsq-comment-header-9692047" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692047" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692047" href="http://mndoci.com/" target="_blank" rel="nofollow">Deepak</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692047" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692047" class="dsq-comment-message">Robert, much as I appreciate your work, I have some disagreement with you on this.  First of all, Flickr is not the best example.  To upload more than a certain number of pictures a month you have to pay. This rules it out for quite a few people, or they end up improvising of paying.<br><br>Second, while it is true there could be scaling issues, you develop software for a market, not a customer.  So unless the Facebook market moves towards users with 1000\'s of contacts, then the limit might not be a bad idea.<br><br>That said, if it is a scaling issue, they need to address it, since markets do change.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692046">\
	 <div id="dsq-comment-header-9692046" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692046" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692046">anon</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692046" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692046" class="dsq-comment-message">I think the 5000 friend limit is fine. For most, Facebook is meant to be for a network of real friends.<br><br>You\'re an outlier and I respect that you can voice your opinion, but I\'m certain Facebook has their priorities and the guts to forego pleasing those with the loudest voices. Frankly, I don\'t think this is a pressing issue for Facebook\'s core audience.<br><br>But of course, you\'re entitled to complain and gloat about having 5000 friends :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692045">\
	 <div id="dsq-comment-header-9692045" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692045" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692045">anon</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692045" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692045" class="dsq-comment-message">Scoble - get a team together and build a social network for non-real friends with no limits.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692042">\
	 <div id="dsq-comment-header-9692042" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692042" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692042" href="http://joeduck.wordpress.com/" target="_blank" rel="nofollow">Joseph Hunkins</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692042" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692042" class="dsq-comment-message">Robert you have a neat way to define "friend" but you are wrong about the 5k limit, which is perfectly reasonable.  Obviously this affects you greatly, but you are a very extraordinary social networker and therefore exception to even "super duper heavy users".  I\'d guess that less than 1 in 1000 FB users will ever have a problem with the 5000 limit.  Scaling the system to meet that need a this time is not a reasonable request for the reasons others mention above.<br><br>Why can\'t you just get them to allow you two profiles?   This would mean more management for you but it would allow you to fit in all your peeps...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692041">\
	 <div id="dsq-comment-header-9692041" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692041" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692041">Alexander van Elsas</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692041" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692041" class="dsq-comment-message">I\'m much more concerned about the fact that Facebook decides what I can do with my frends network, than the technical limit of 5000. While the user does all the work building these networks, Facebook puts up this walled garden to ensure they can monetize that. But hey, did I really ask for that? Can\'t even export my network or my data. This, and nine more wishes for improvements on web 2.0 from a user\'s perspective are written in my post here:<br><a href="http://vanelsas.wordpress.com/2007/10/11/10-ways-to-improve-web-20-and-move-into-an-era-of-true-interaction/" rel="nofollow">http://vanelsas.wordpress.com/2007/10/11/10-way...</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692040">\
	 <div id="dsq-comment-header-9692040" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692040" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692040" href="http://christianburns.wordpress.com/" target="_blank" rel="nofollow">Christian Burns</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692040" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692040" class="dsq-comment-message">It would be interesting to have a social app that limited you to 150 friends and then allowed you to still read and join conversations of all but still mapped out your social graph. So everyone can only follow 150 people but could be followed by as many as follow them. I would like to see that graph.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692023">\
	 <div id="dsq-comment-header-9692023" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692023" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692023">Michael</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692023" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692023" class="dsq-comment-message">Robert:<br><br>Click Photos on your profile; create photo album; set it to be visible to everyone.<br><br>Presto.<br><br>I can\'t believe you couldn\'t find that.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692037">\
	 <div id="dsq-comment-header-9692037" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692037" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692037">Michael</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692037" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692037" class="dsq-comment-message">Not sure how you\'re even adding videos, except through a widget.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692038">\
	 <div id="dsq-comment-header-9692038" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692038" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692038" href="http://www.bladam.com/" target="_blank" rel="nofollow">Adam</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692038" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692038" class="dsq-comment-message">Sorry, Robert, I have to disagree with you here.<br><br>If my understanding is correct, you add anyone as a friend who has asked you to be their "friend" on Facebook.  Meaning... you\'re willing to add someone whom you\'ve never met, never chatted with, probably never even exchanged an e-mail with.<br><br>If everyone did that on Facebook, the social graph would become meaningless.  Everyone would be "friends" with everyone, and thus browsing through friends-of-friends or doing other stuff through (theoretically) trusted network links would end up completely foobar\'d.<br><br>So, frankly, I\'m glad that Facebook has a 5K friend limit.  Perhaps even 2K would be more reasonable.  As others have noted, I\'d rather Facebook spend their time and resources on more interesting, more broadly useful projects and expansions.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692039">\
	 <div id="dsq-comment-header-9692039" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692039" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692039">Michael</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692039" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692039" class="dsq-comment-message">And since I\'m doing multireplies, a business card often isn\'t even a weak acquaintance - it\'s a random guy who handed me a business card. Maybe you only accept them from people whom you\'ve had at least pleasurable conversation with, but that would be outside the norm.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692022">\
	 <div id="dsq-comment-header-9692022" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692022" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692022" href="http://zinzi.us/" target="_blank" rel="nofollow">chain</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692022" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692022" class="dsq-comment-message">They should allow you to have as many friends as you like. But doesn\'t there have to limit.I mean how many friends can you have before Facebook crashes. I sorta wonder what happens when you get more than a million friends. Which probably would not be out of the question for the popular folks. Whats the "Physical limit"?..Is there one?.And at some point you would have to think about managing that many friends. I mean say u  messaged them all. You know ppl would abuse the hell outta that.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692053">\
	 <div id="dsq-comment-header-9692053" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692053" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692053" href="http://9rules.com/" target="_blank" rel="nofollow">Scrivs</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692053" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692053" class="dsq-comment-message">You could just setup a <a href="http://9rules.com/my/" rel="nofollow">my.9r account</a> and have everything aggregated to one page to let the world see it. You have to figure though people like you will never be satisfied because if you get a raise in the limit you will reach that and then just go around looking for another raise. The cycle never stops. Honestly nothing really different than just typing on this blog or another one what you are doing.<br><br>- Blog<br>- Twitter/Jaiku<br>- Flickr<br>- YouTube<br><br>And yet we are still wanting Facebook to be the end all solution? Not gonna happen.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692035">\
	 <div id="dsq-comment-header-9692035" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692035" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692035">Tim Dawson</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692035" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692035" class="dsq-comment-message">I really hope Facebook ignore your whining. You\'re an edge case, and you know it - albeit a vocal one. You know you have a large soapbox to shout from, so behave responsibly about it. Facebook is a great service for millions of users. And it\'s a not-so-great service for the (generously) hundreds of users who want to collect thousands of "friends" to boost their egos. They\'d be fools to listen to you. I hope they reduce the cap to 1000.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692036">\
	 <div id="dsq-comment-header-9692036" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692036" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692036" href="http://ericrice.com/" target="_blank" rel="nofollow">Eric Rice</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692036" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692036" class="dsq-comment-message">Well, it\'s also kinda diva-ish.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692034">\
	 <div id="dsq-comment-header-9692034" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692034" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692034" href="http://www.ekampf.com/" target="_blank" rel="nofollow">Eran Kampf</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692034" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692034" class="dsq-comment-message">Note that probably most of these "people" who have thousands of contacts on Facebook are spammers who use it to promote all kinds of "money making" schemes</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692031">\
	 <div id="dsq-comment-header-9692031" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692031" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692031" href="http://nonedesign.net/" target="_blank" rel="nofollow">Christopher</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692031" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692031" class="dsq-comment-message">One of the reasons I DON\'T use MySpace is the fact that it\'s a repository for these huge marketing pushes. I want something that is smaller and more personal. That connects me with just the people that I have in my network and isn\'t inundated with spam. I have stuck with Friendster for so long because my network has remained small -- although I was getting too much spammy friend contacts there for awhile.<br><br>And anyone that collects 5,000 business cards at a face-to-face meeting either isn\'t remembering your face. Or isn\'t someone that I want to know or do business with. Who actually likes a networker. Networker=tool.<br><br>Social groups are meant to be small. It\'s not a contest to see how many contacts you can amass. It\'s actually quite the opposite. It\'s about quality over quantity.<br><br>At least it is with me. I want to know that when I\'m making contact with someone that I\'m one of a handful. Not one of thousands. I value the contact more and I value the implied judgement of worthiness that comes with it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692033">\
	 <div id="dsq-comment-header-9692033" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692033" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692033" href="http://www.teradome.com/" target="_blank" rel="nofollow">Noah Mittman</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692033" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692033" class="dsq-comment-message">Limits are good.<br><br>There are millions of places to be public on the internet and build relationships. Your own blog is one.<br><br>Facebook isn\'t an address book -- its design is to pipe "friend" activity back to you in a very active way. If you\'re pushing 10,000 contact as you claim some do, I highly doubt those people are seeking pushed information back to them about those 10,000 at the micro level Facebook is designed to facilitate.<br><br>Yes, "friends" are not only friends, but they\'re more than social bookmarks, too. And Facebook is more than just a place to promote yourself and your other blogs.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692028">\
	 <div id="dsq-comment-header-9692028" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692028" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692028" href="http://www.netliving.es/" target="_blank" rel="nofollow">Netliving</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692028" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692028" class="dsq-comment-message">The Hell with the lobby Man!! I want to be your friend in Facebook (Javier Duro).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692026">\
	 <div id="dsq-comment-header-9692026" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692026" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692026">michael j pastor</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692026" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692026" class="dsq-comment-message">The main problem is that we\'re trying to manage our contacts lists *online*  None of these services require us to be using a client/server model via webpages.  Last I checked, I had plenty of of CPU capability to handle much more than 5000 contacts.<br><br>The other side effect of this phenomenon is the outright extravertedly public way it all happens.  My friends are none of your business, even if you are my friend.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692009">\
	 <div id="dsq-comment-header-9692009" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692009" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692009">sapana gad</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692009" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692009" class="dsq-comment-message">is this about don\'t need friend or something else</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692005">\
	 <div id="dsq-comment-header-9692005" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692005" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692005">sapna</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692005" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692005" class="dsq-comment-message">is this about nonfiction or dont need friends book please tell me that or I \'ll find out please thank you I like this book is it fiction i hate fiction I like non fiction dont give me books are fiction thank you my name is sapana  I will save this page thank you for me conct me please and thank you I have a book that is owen &amp;mzee i\'m doing a project about at home today is tued=sday 27 2007 please contct me  i will come tommorww too see you at tommorw wednesday 28 thank you contact me sapana bye see you later sapanaa <a href="mailto:fadg334@hotmail.com" rel="nofollow">fadg334@hotmail.com</a> bye sappana</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692006">\
	 <div id="dsq-comment-header-9692006" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692006" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692006">sapna</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692006" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692006" class="dsq-comment-message">facebok talking isvery fun thank you</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692007">\
	 <div id="dsq-comment-header-9692007" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692007" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692007">joe</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692007" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692007" class="dsq-comment-message">hi</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692008">\
	 <div id="dsq-comment-header-9692008" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692008" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692008">joe</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692008" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692008" class="dsq-comment-message">i was talking about owen &amp; mzee<br>thank you by joe<br>today is my friend\'s birthday 67<br>bn facebook<br>everything girl<br><a href="http://facebook.com" rel="nofollow">facebook.com</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692071">\
	 <div id="dsq-comment-header-9692071" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692071" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692071">joe</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692071" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692071" class="dsq-comment-message">owen is a great book</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692072">\
	 <div id="dsq-comment-header-9692072" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692072" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692072">joe</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692072" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692072" class="dsq-comment-message">because it is about friendship</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692029">\
	 <div id="dsq-comment-header-9692029" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692029" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692029">nebblak</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692029" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692029" class="dsq-comment-message">n/a my favourite book is n/a chirsamas my faourite seson is summer</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692030">\
	 <div id="dsq-comment-header-9692030" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692030" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692030">nebblak</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692030" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692030" class="dsq-comment-message">owen and mzee is a great book</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692074">\
	 <div id="dsq-comment-header-9692074" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692074" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692074">frank</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692074" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692074" class="dsq-comment-message">hi IYes, “friends” are not only friends, but they’re more than social bookmarks, too. And Facebook is more than just a place to promote yourself and your other blogs[…] I saw Robert Scoble post about Facebook ad noseum.  I think he has to get a commission or something from Facebook or maybe he got a finder’s fee for Microsoft’s recent investment, which probably made him very happy.  I tried to add him as a friend but I got a notice saying he has too many friends […]<br>[…] recently read a post on Scobleizer ranting about Facebook’s 5,000 friends limit and it had the following quote: First, a […]<br><br>Pingback by <a href="http://FacebookTalk.com" rel="nofollow">FacebookTalk.com</a> - Facebook Hacks, Tricks, Tips, ASCII, and Apps - All in one blog! — October 15, 2007 @ 2:27 pm<br><br>[…] constantly harping on Facebook for not giving you the ability to add more than 5,000 friends. Every day, you’ve got at least one post complaining about Facebook capping your friend limit. […]<br><br>Pingback by Dear Robert Scoble « the j. botter weblog — October 15, 2007 @ 2:58 pm<br><br>[…] everything above) famously hit Facebook’s 5000 friend limit and has recently revealed that he is not alone in this milestone, that thousands have hit the limit (now, can you see why Facebook is worth $15 […]<br><br>Pingback by Life &amp; Scalability — October 15, 2007 @ 6<br><br>Pingback by entrepreMusings » Why I Finally</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692073">\
	 <div id="dsq-comment-header-9692073" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692073" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692073">nebblak</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692073" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692073" class="dsq-comment-message">owen &amp; mzee is great it is about friendship I dont like dont need friens because the rat is mean</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692027">\
	 <div id="dsq-comment-header-9692027" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692027" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692027">jojo</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692027" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692027" class="dsq-comment-message">hi IYes, “friends” are not only friends, but they’re more than social bookmarks, too. And Facebook is more than just a place to promote yourself and your other blogs[…] I saw Robert Scoble post about Facebook ad noseum. I think he has to get a commission or something from Facebook or maybe he got a finder’s fee for Microsoft’s recent investment, which probably made him very happy. I tried to add him as a friend but I got a notice saying he has too many friends […]<br>[…] recently read a post on Scobleizer ranting about Facebook’s 5,000 friends limit and it had the following quote: First, a […]<br><br>im the folling one lol loohflgkg<br>gjopjoj wrong time it is 5;46 pm caall me later loser lololollll please talk to me lol 5;47 lol kk bye i hate my bro kkkkkklklkklllkllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692024">\
	 <div id="dsq-comment-header-9692024" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692024" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692024">jojo</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692024" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692024" class="dsq-comment-message">h imy brother want\'s to talk<br>hello my bro is shy</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692075">\
	 <div id="dsq-comment-header-9692075" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692075" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692075">anon</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692075" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692075" class="dsq-comment-message">wilt chamberlain slept with over 20,000 women. if he wanted to use facebook to keep track of his friends, he would have been screwed (literally)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692070">\
	 <div id="dsq-comment-header-9692070" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692070" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692070">Rev. Scott</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692070" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692070" class="dsq-comment-message">First time my profile was deleted,which was sometime last year, it was because of too many friend request.<br><br>Recently, it has been deleted due to sending/recieving too many messages.<br><br>Unfortunately, neither of which has been reinstated.<br><br>Should I just create a new page and start all over again? Or fight to have my profiles operative once again?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692025">\
	 <div id="dsq-comment-header-9692025" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692025" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692025" href="http://www.facebook.com/profile.php?id=647949714" target="_blank" rel="nofollow">Tim Baxter</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692025" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692025" class="dsq-comment-message">I don\'t know why people get so hung up over this. If you want 5000 friends, so what? If you want to \'keep it real\' with people you really know, then that\'s fine too.<br><br>Personally I\'m looking for Whale status so I can make new friends that I wouldn\'t have the opportunity to do without the web, so friend me now!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692076">\
	 <div id="dsq-comment-header-9692076" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692076" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692076">Trevor Weir</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692076" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692076" class="dsq-comment-message">I have almost 1,700 friends already and have a dozen groups with about 20,000 more friends ( not all unique )<br><br>Scoble is not alone here, I have a dozen group creators and other **friends** whom are nearly at 3500 friends.<br><br>The fact that Scoble has/had 5000 and was one of about a thousand users at the limit, doesn\'t mean that there aren\'t 20-50,000 of us clawing up the same ladder at our own pace.<br><br>I stopped personally adding friends that I didn\'t know directly in life, when I had about 260, since then people have added me for their own myriad reasons.<br><br>I expect my 1700 to grow to about 3-4,000 in a few months.<br><br>The more profound and interesting things you write, is the more likely that certain types/groups of people will be attracted to your way of thinking and simply add you as a friend.<br><br>If 10-15,000 people think they would like to add me as a friend, why shouldn\'t they be allowed to do so?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692077">\
	 <div id="dsq-comment-header-9692077" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692077" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692077" href="http://alienmode.com/" target="_blank" rel="nofollow">alienmode</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692077" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692077" class="dsq-comment-message">the point about facebook being a competitor for flickr and youtube is right on</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692079">\
	 <div id="dsq-comment-header-9692079" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692079" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692079" href="http://www.rabbitbites.com/" target="_blank" rel="nofollow">Nicholas Quixote</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692079" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692079" class="dsq-comment-message">Late to commenting on this Robert, but I came across this post of your while looking for information on this subject ( as usual).  Turns out that some of the celebrities we have worked with on Rabbit Bites are unable to "friend" anyone. Most of them get too many requests and the accounts lock up. It\'s dumb.<br><br>Buzz is awesome btw and we\'ll be doing a post soon about Activewords. Activewords blows away it\'s competition in many ways.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692080">\
	 <div id="dsq-comment-header-9692080" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692080" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692080" href="http://www.phraseexpress.com/" target="_blank" rel="nofollow">Jeffrey</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692080" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692080" class="dsq-comment-message">Nicholas, have already you tride the freeware PhraseExpress?<br><br><a href="http://www.phraseexpress.com" rel="nofollow">http://www.phraseexpress.com</a><br><br><br>&gt; blows away it’s competition in many ways.<br><br>I would wonder how it is better than above util.<br><br>Jeffrey</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692078">\
	 <div id="dsq-comment-header-9692078" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692078" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692078">mac d</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692078" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692078" class="dsq-comment-message">i have also noticed facebook slowing down when i hit 3000 friends, its so slow its near impossible to invite people to an event</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692082">\
	 <div id="dsq-comment-header-9692082" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692082" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692082" href="http://www.trevorweir.com/" target="_blank" rel="nofollow">trevor weir</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692082" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692082" class="dsq-comment-message">Ahh mac d, so you\'re the one doing all the inviting, ha ha, just kidding.<br>Haven\'t been here in a while, but I am just a few hundred short of 5,000 myself and the big disadvantage is that many facebook applications that are using the sample facebook php code won\'t let me in to interact or play.<br><br>Its because I have to many friends, and when the php code that facebook gave everyone to use, goes out to my friends list, the size of the list causes the arrays to bomb hence very few applications allow me to play.<br><br>Facebook themselves must have seen this and fixed it in a few areas, but the faulty array code is still sitting in the sample code that they gave everyone else to use.<br><br>I have seen the code and seen it throw errors on apache/php irrespective of how much memory you reasonably give each php processes.<br><br>So, currently and for the past 10 months or more, there are technical limitations when one starts to approach even 4000 friends.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692084">\
	 <div id="dsq-comment-header-9692084" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692084" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9692084">Alison</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692084" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692084" class="dsq-comment-message">Facebook was never supposed to be used as a business tool.  You compare it to the phonebook and business cards which is ignorant.  Facebook started out as an easy way for students to keep in contact with one another.  It was never meant to be abused for spamming or as a way to stroke anyone\'s GIANT ego by seeing if one could con 5000 (mostly total strangers) to add to your "friend" list.  As for me, I would NEVER request to be added to a person\'s friend list if I didn\'t have some sort of connection to that person.  Sorry Ms. 5000 but you don\'t get any sympathy from me.  Sounds like you need another hobby!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692083">\
	 <div id="dsq-comment-header-9692083" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692083" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692083" href="http://www.facebook.com/" target="_blank" rel="nofollow">princedream</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692083" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692083" class="dsq-comment-message">how can i solve the proplem of this message :  You are blocked from adding friends due to continued misuse of this feature.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9692081">\
	 <div id="dsq-comment-header-9692081" class="dsq-comment-header">\
	 <cite id="dsq-cite-9692081" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9692081" href="http://atrix.or.id/" target="_blank" rel="nofollow">atrix</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9692081" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9692081" class="dsq-comment-message">actually website such facebook and flickr which has implemented web 2.0 hierarchy int their scripting are well more easy to use and attract for new user in the social network service (sns)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-11932940">\
	 <div id="dsq-comment-header-11932940" class="dsq-comment-header">\
	 <cite id="dsq-cite-11932940" class="dsq-comment-cite">\
	 <a id="dsq-author-user-11932940" href="http://facebook.com/touchmyvonni" target="_blank" rel="nofollow">Javonni Brustow - Media Mogul</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-11932940" class="dsq-comment-body">\
	 <div id="dsq-comment-message-11932940" class="dsq-comment-message">lol "the hell with the lobby" ha! I like your style of writing man! It\'s pretty dumb..this limit because I;m networking heavy as I\'m restarting my career as an entertainment writer after a 3 yr break. Things have  changed a lot in those few years and now I see networking limits? The hell?! What gives!</div>\
	 </div>\
	 </li>\
	 </ul>\
';

(function() {
	
	





Dsq.Debug.profile(function() {
	if(Dsq.jsonData.request.page == 1 && Dsq.jsonData.request.is_initial_load) {
		Dsq.container.innerHTML = Dsq.Templates.header() + Dsq.container.innerHTML + Dsq.Templates.footer();
	}
	Dsq.$(Dsq.curPageId).innerHTML = Dsq.$(Dsq.curPageId).innerHTML.replace(Dsq.COMMENTS_RE, Dsq.CommentsHandler);
}); // Dsq.Debug.Profile

// HACK: Resetting cache because we're done with.
Dsq.Utils.gebiFromElementCollectionCache = null;


	
	
	var dsq_styleEl = document.getElementById(disqus_container_id);
	var dsq_anchorEl = document.getElementsByTagName('a')[0];
	
	Dsq.Thread.fc = Dsq.Utils.getStyle(dsq_styleEl, 'color');
	if(dsq_anchorEl) { Dsq.Thread.ac = Dsq.Utils.getStyle(dsq_anchorEl, 'color'); }
	Dsq.Thread.ff = Dsq.Utils.getStyle(dsq_styleEl, (Dsq.Utils.ie || window.opera ? 'fontFamily' : 'font-family'));
	// For Safari / Opera: strip quotes.
	Dsq.Thread.ff = Dsq.Thread.ff.replace(/['"]/g, '');
	Dsq.Thread.fc = encodeURIComponent(Dsq.Thread.fc);
	Dsq.Thread.ac = encodeURIComponent(Dsq.Thread.ac);
	Dsq.Thread.ff = encodeURIComponent(Dsq.Thread.ff);

	
	
	
	if(Dsq.$(Dsq.Templates.addPostContainer)) {
		// TODO: Check to see if theme uses postmessage.
		if (window.disqus_use_postmessage) {
			Dsq.frames['reply_0'] = new Dsq.ReplyFrame(Dsq.$(Dsq.Templates.textareaContainer));
			Dsq.frames['reply_0'].init(function() {
				// Use fallback iframe
				Dsq.$(Dsq.Templates.addPostContainer).innerHTML = '';
				var theme = (typeof disqus_frame_theme == 'undefined') ? 'default' : disqus_frame_theme;
				Dsq.Iframes.showReplyIframeInContainer(Dsq.$(Dsq.Templates.addPostContainer), null, {theme: theme});
				// if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
			});
		} else {
			// DEPRECATED
			Dsq.Iframes.showReplyIframeInContainer(Dsq.$('dsq-post-add'));
		}
	}

	
	

	
	if(document.location.hash != '') {
		document.location.hash = document.location.hash.substring(1);
	}

	Dsq.Popup.showCookieMsgs();

	
	if(document.location.search != '' && location.hash != '#disqus_thread') {
		var reply_id = Dsq.Utils.getRequestParams().dsq;
		if(reply_id) { document.location.hash = 'comment-' + reply_id; }
	}

	
	if((typeof OB_Script != 'undefined') && (typeof OB_versionNum != 'undefined')) {
		if(navigator.userAgent.indexOf("Firefox") != -1) {
			if(window.frames['dsq-reply-frame']) {
				window.frames['dsq-reply-frame'].location = Dsq.Urls.REPLY + (new Date()).getTime() + '&f=scobleizer&t=the_you_don8217t_need_more_friends_lobby&to_redirect=' + encodeURIComponent(window.location) + '&ifrs=' + encodeURIComponent(disqus_iframe_css);
			}
		}
	}

	if (Dsq.jsonData.integration.theme == 4) {
		if (Dsq.jsonData.realtime_enabled) {
			Dsq.Realtime.initialize();
		}
	}

	



	window.ExecuteWhen = (function () {
	var obj = {}
	
	// Private
	var running = false;
	var timer = null;
	var pending = [];
	var startTimer = function() {
		running = true;
		timer = setInterval(obj.heartBeat, 100);
	};
	var stopTimer = function() {
		running = false;
		clearInterval(timer);
	};
	
	// Public
	obj.add = function (condition, code) {
		pending.push([condition,code]);
		this.heartBeat(); //!
		if (!running) {
			startTimer();
		}
	};
	obj.heartBeat = function() {
		if (!pending.length) {
			stopTimer();
		}
		var newPending = [];
		for (var i=0; i<pending.length; i++) {
			var cond = pending[i][0];
			var code = pending[i][1];
			// FIXME: if cond or code throw an error, they never get removed from pending
			if (cond()){
				code();
			}
			else {
				newPending.push([cond, code]);
			}
		}
		pending = newPending;
	};
	return obj;
})();

// also used in embed_thread.js:
window.fbIsReady = function () {return window.FB && FB.init;};
// NOTE: This script gets executed again without threadEl
//       set when we are loaded again as the fbc_receiver.
//       In this case, we don't need the hidden container.

if(!window.FB || !FB.init) {
	if(window.Dsq && Dsq.container) {
		// container is not present when init.js is loaded from an xd-receiver iframe; in this case,
		// we don't need the FB_HiddenContainer anyway.
		var fbDiv = document.createElement('div');
		fbDiv.id = "FB_HiddenContainer";	// Required or else FeatureLoader will execute a document.write.
		fbDiv.style.position = 'absolute';	// This is intentionally not setting display to none as this breaks
		fbDiv.style.top = '-10000px';		// Flash in Safari.
		fbDiv.style.left = '-10000px';
		fbDiv.style.width = '0px';
		fbDiv.style.height = '0px';
		Dsq.container.appendChild(fbDiv);
	}
	var fbJS = document.createElement('script');
	fbJS.type = "text/javascript";
	fbJS.src = "http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php";
	document.getElementsByTagName('head')[0].appendChild(fbJS);

	ExecuteWhen.add(window.fbIsReady,
		function () {
			// HACK: This is a workaround FBC's single domain limitation by
			//		 allowing sites to create multiple forums with different
			//		 Facebook API keys.  This must be used in conjunction with
			//		 disqus_facebook_forum (see authenticateFacebook).
			var facebook_api_key = 'faaf467d0f47abde553c3b8e0e1b3570';
			if (typeof disqus_facebook_api_key != 'undefined') {
				facebook_api_key = disqus_facebook_api_key;
			}

			FB.init(facebook_api_key, window.facebookXdReceiverPath || null,
				{fetchSignedPublicSessionData: true});
		});
}


	


if(typeof(disqus_callback) == 'function') {
	var callback_params = Dsq.Utils.getRequestParams()['dsq_cbp'] || null;

	// We don't care about any errors in third-party code
	try {
		disqus_callback(callback_params);
	} catch (x) {
		if (typeof(console) != 'undefined' && typeof(console.log) == 'function') {
			// But it would be nice to let developers know about them
			console.log(x);
		}
		// pass
	}

	// HACK: We don't know if the callback wraps our container, which may
	// possibly result in a new DOM element.
	Dsq.container = document.getElementById('dsq-content');
}

// Global event handler for narcissus.
if (Dsq.jsonData.integration.theme == 4) {
	var g = Dsq.Utils.ie ? document : window;
	Dsq.Utils.addEventListener(g, 'keydown', function(event) {
		// Handle "enter" key on input for post box.
		if ((event.keyCode || event.which) == 13) {
			var target = Dsq.Utils.ie ? event.srcElement : event.target;
			// For Safari bug, detect text node.
			if (target.nodeType == 3) {
				target = target.parentNode;
			}

			if (target.nodeName == 'INPUT' &&
				target.parentNode.className == 'dsq-input-wrapper') {
				var postId = Dsq.Utils.extractId(target);
				Dsq.Templates.postComment(postId, this, false);
			}
		}
	});
}

})();




