




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": "\"Evite was the coolest site\u00e2\u20ac\u00a6in 1999. I remember when co-founder John Bracken first showed me Evite. I was floored, impressed, and just blown-away. Now I just get bored, stressed, and have grown astray. Evite today is almost exactly like it was in 1999\u00e2\u20ac\u00a6except it is slower. And this was early 1999 so that\u2019s almost 8 years ago. For those of you not affected by time dilation, that is a really LONG time. That\u2019s so long ago, it is before I ever had RSS, SMS, or PMS (8 years of decrepit user experi...", "author_name": "Adewale Oshineye", "source_url": "http://www.ubervu.com/conversations/venturebeat.com/2006/09/19/why-i-hate-evite/", "id": 1816418, "get_service_url": "http://friendfeed.com/", "title": "", "url": "http://friendfeed.com/e/3adf0fa7-c191-1c64-0318-55920dfaccee#2deefbe2-ae81-43ff-bb22-b2b0debe6b75", "source": "ubervu", "get_service_name": "friendfeed", "avatar_url": "http://friendfeed.com/ade/picture?size=large", "author_url": "", "date_created": "11 months ago", "retweets": []}], "has_more_reactions": false, "users": {"ed4c58081885a2a338e7551903df277d": {"username": "Nancy", "tumblr": "", "display_name": "Nancy", "url": "http://disqus.com/guest/ed4c58081885a2a338e7551903df277d/", "registered": false, "linkedin": "", "blog": "http://www.resqteknowledgies.com/bblog", "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": ""}, "266984437efa7cf7c7e5cffa816e7a61": {"username": "Vivek Sodera", "tumblr": "", "display_name": "Vivek Sodera", "url": "http://disqus.com/guest/266984437efa7cf7c7e5cffa816e7a61/", "registered": false, "linkedin": "", "blog": "http://vsodera.blogspot.com/2006/09/people-seriously-need-to-calm-f.html", "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": ""}, "e892e9cad44aade10921d171a1b81cf4": {"username": "Chief Apricot", "tumblr": "", "display_name": "Chief Apricot", "url": "http://disqus.com/guest/e892e9cad44aade10921d171a1b81cf4/", "registered": false, "linkedin": "", "blog": "http://www.WildApricot.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": ""}, "db9220ff45343cb236c9e03b144d473f": {"username": "Sweet Leon", "tumblr": "", "display_name": "Sweet Leon", "url": "http://disqus.com/guest/db9220ff45343cb236c9e03b144d473f/", "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": ""}, "bc37252e6c654199a9c97d139a22b545": {"username": "Bob", "tumblr": "", "display_name": "Bob", "url": "http://disqus.com/guest/bc37252e6c654199a9c97d139a22b545/", "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": ""}, "9035d2e771a0c16381fdae5c93f75132": {"username": "Todd Zeigler", "tumblr": "", "display_name": "Todd Zeigler", "url": "http://disqus.com/guest/9035d2e771a0c16381fdae5c93f75132/", "registered": false, "linkedin": "", "blog": "http://www.bivingsreport.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": ""}, "97f677b2bace01c899550aac4cef16bf": {"username": "Mitchel H.", "tumblr": "", "display_name": "Mitchel H.", "url": "http://disqus.com/guest/97f677b2bace01c899550aac4cef16bf/", "registered": false, "linkedin": "", "blog": "http://www.1031exchangefacts.info/", "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": ""}, "7b94ec83cd557689aa1812d852cae22b": {"username": "somaking", "tumblr": "", "display_name": "somaking", "url": "http://disqus.com/guest/7b94ec83cd557689aa1812d852cae22b/", "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": ""}, "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": ""}, "13bc2516e9b696ffa48af50b9cbec3bc": {"username": "evbart", "tumblr": "", "display_name": "evbart", "url": "http://disqus.com/guest/13bc2516e9b696ffa48af50b9cbec3bc/", "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": ""}, "954cbcfd506f4c32ecb7ea88565fe758": {"username": "Nita Fautier", "tumblr": "", "display_name": "Nita Fautier", "url": "http://disqus.com/guest/954cbcfd506f4c32ecb7ea88565fe758/", "registered": false, "linkedin": "", "blog": "http://www.xebec2.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": ""}, "027da49ab3406a49fe692d8c6bb40042": {"username": "Denali", "tumblr": "", "display_name": "Denali", "url": "http://disqus.com/guest/027da49ab3406a49fe692d8c6bb40042/", "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": ""}, "ade764ebeea4b48b34ef63f881cd98f2": {"username": "BS", "tumblr": "", "display_name": "BS", "url": "http://disqus.com/guest/ade764ebeea4b48b34ef63f881cd98f2/", "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": ""}, "fa09427040ac3ab913214f25262a202a": {"username": "Kris", "tumblr": "", "display_name": "Kris", "url": "http://disqus.com/guest/fa09427040ac3ab913214f25262a202a/", "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": ""}, "31d11ed9670ff348b4df8f13236f7153": {"username": "Jackie", "tumblr": "", "display_name": "Jackie", "url": "http://disqus.com/guest/31d11ed9670ff348b4df8f13236f7153/", "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": ""}, "fec7d17e6971deb4c11e71c0b94ef983": {"username": "Born in 1988...", "tumblr": "", "display_name": "Born in 1988...", "url": "http://disqus.com/guest/fec7d17e6971deb4c11e71c0b94ef983/", "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": ""}, "622489e935f238b6c9038de90890c8f7": {"username": "PJ", "tumblr": "", "display_name": "PJ", "url": "http://disqus.com/guest/622489e935f238b6c9038de90890c8f7/", "registered": false, "linkedin": "", "blog": "http://ferodynamics.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/5/523/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "f52c6c8bf3832ff3fbc7916e3ae91993": {"username": "SFGary", "tumblr": "", "display_name": "SFGary", "url": "http://disqus.com/guest/f52c6c8bf3832ff3fbc7916e3ae91993/", "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": ""}, "dc1b4714364620088489e23b80e5ebb5": {"username": "Knox", "tumblr": "", "display_name": "Knox", "url": "http://disqus.com/guest/dc1b4714364620088489e23b80e5ebb5/", "registered": false, "linkedin": "", "blog": "http://www.opensearchlist.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": ""}, "9e45bfc4cd8eb125f13b4d2bd8c30773": {"username": "MadRapper", "tumblr": "", "display_name": "MadRapper", "url": "http://disqus.com/guest/9e45bfc4cd8eb125f13b4d2bd8c30773/", "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": ""}, "bd6b9f5c7ef91409be0003e05bd92294": {"username": "chgxfdg", "tumblr": "", "display_name": "chgxfdg", "url": "http://disqus.com/guest/bd6b9f5c7ef91409be0003e05bd92294/", "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": ""}, "5c8328a8a72fef8e27bcf9a9ac56a56a": {"username": "David Evans", "tumblr": "", "display_name": "David Evans", "url": "http://disqus.com/guest/5c8328a8a72fef8e27bcf9a9ac56a56a/", "registered": false, "linkedin": "", "blog": "http://theprogressbar.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/36/9352/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "4da7fc00fbb2ae0640420e32f927498f": {"username": "Ben Casnocha", "tumblr": "", "display_name": "Ben Casnocha", "url": "http://disqus.com/guest/4da7fc00fbb2ae0640420e32f927498f/", "registered": false, "linkedin": "", "blog": "http://ben.casnocha.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": ""}, "70cbb8aeb6c4b1cc944250e421c6cd79": {"username": "pireland", "tumblr": "", "display_name": "pireland", "url": "http://disqus.com/guest/70cbb8aeb6c4b1cc944250e421c6cd79/", "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": ""}, "2fabe1e364b7de7f8244d024cdaffe9e": {"username": "Kazelvhn", "tumblr": "", "display_name": "Kazelvhn", "url": "http://disqus.com/guest/2fabe1e364b7de7f8244d024cdaffe9e/", "registered": false, "linkedin": "", "blog": "http://vkhhsfzj.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": ""}, "be71fa3c3cb504b76afdab5c53a2af10": {"username": "Andrew Fife", "tumblr": "", "display_name": "Andrew Fife", "url": "http://disqus.com/guest/be71fa3c3cb504b76afdab5c53a2af10/", "registered": false, "linkedin": "", "blog": "http://andrewbfife.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": ""}, "5deed1136d11094cfd699795ac283554": {"username": "John Walker", "tumblr": "", "display_name": "John Walker", "url": "http://disqus.com/guest/5deed1136d11094cfd699795ac283554/", "registered": false, "linkedin": "", "blog": "http://www.jwalkerlive.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/46/1186/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6eaf57b18ba9a3869f85e7393e2a0229": {"username": "steve_ray", "tumblr": "", "display_name": "steve_ray", "url": "http://disqus.com/guest/6eaf57b18ba9a3869f85e7393e2a0229/", "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": ""}, "b8017b751e945e6840221fce9aade16f": {"username": "Regis", "tumblr": "", "display_name": "Regis", "url": "http://disqus.com/guest/b8017b751e945e6840221fce9aade16f/", "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": ""}, "e69934297fd0d011255e5cb55ac66422": {"username": "Matt", "tumblr": "", "display_name": "Matt", "url": "http://disqus.com/guest/e69934297fd0d011255e5cb55ac66422/", "registered": false, "linkedin": "", "blog": "http://www.mypunchbowl.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": ""}, "03b56d45211b6e40d54ddbdddd56f970": {"username": "Matt Marshall", "tumblr": "", "display_name": "Matt Marshall", "url": "http://disqus.com/guest/03b56d45211b6e40d54ddbdddd56f970/", "registered": false, "linkedin": "", "blog": "http://www.VentureBeat.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": ""}, "a8b0ad34af6261dd56fe2c03c92ed834": {"username": "Nick", "tumblr": "", "display_name": "Nick", "url": "http://disqus.com/guest/a8b0ad34af6261dd56fe2c03c92ed834/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/7406/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "1e740b29cfd4d2f297ddbed829da541f": {"username": "Kazeldhf", "tumblr": "", "display_name": "Kazeldhf", "url": "http://disqus.com/guest/1e740b29cfd4d2f297ddbed829da541f/", "registered": false, "linkedin": "", "blog": "http://dvvzcklq.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": ""}, "0ab707f6d77da4a81cef5df2bda2c986": {"username": "niti bhan", "tumblr": "", "display_name": "niti bhan", "url": "http://disqus.com/guest/0ab707f6d77da4a81cef5df2bda2c986/", "registered": false, "linkedin": "", "blog": "http://www.nitibhan.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": ""}, "890bd2dc0852d3dc7b643212745aaee5": {"username": "Rishi Khaitan", "tumblr": "", "display_name": "Rishi Khaitan", "url": "http://disqus.com/guest/890bd2dc0852d3dc7b643212745aaee5/", "registered": false, "linkedin": "", "blog": "http://www.itsrishi.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": ""}, "cd6aa140153a12cf40a7faa1f2b570e1": {"username": "John D", "tumblr": "", "display_name": "John D", "url": "http://disqus.com/guest/cd6aa140153a12cf40a7faa1f2b570e1/", "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": ""}, "bb65dd7718bbfc1a0eb3ca17de87f731": {"username": "Mike", "tumblr": "", "display_name": "Mike", "url": "http://disqus.com/guest/bb65dd7718bbfc1a0eb3ca17de87f731/", "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": ""}, "94aac1c424905cc579d637dd3092bf81": {"username": "will", "tumblr": "", "display_name": "will", "url": "http://disqus.com/guest/94aac1c424905cc579d637dd3092bf81/", "registered": false, "linkedin": "", "blog": "http://hitchhiker.blogsome.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": ""}, "3413333895300416e392b06e9bf82d54": {"username": "vmlumthbya", "tumblr": "", "display_name": "vmlumthbya", "url": "http://disqus.com/guest/3413333895300416e392b06e9bf82d54/", "registered": false, "linkedin": "", "blog": "http://cicxyetf.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": ""}, "f55b866c6a9e608111b706fda77e3de8": {"username": "Mathew Ingram", "tumblr": "", "display_name": "Mathew Ingram", "url": "http://disqus.com/guest/f55b866c6a9e608111b706fda77e3de8/", "registered": false, "linkedin": "", "blog": "http://www.mathewingram.com/work", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/1787/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "baa21d7b0b7744c1c0d5037f2661545e": {"username": "John", "tumblr": "", "display_name": "John", "url": "http://disqus.com/guest/baa21d7b0b7744c1c0d5037f2661545e/", "registered": false, "linkedin": "", "blog": "http://www.triphub.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": ""}, "29143372187e59f5c6c6c9ea740ec588": {"username": "David Ulevitch", "tumblr": "", "display_name": "David Ulevitch", "url": "http://disqus.com/guest/29143372187e59f5c6c6c9ea740ec588/", "registered": false, "linkedin": "", "blog": "http://david.ulevitch.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/654/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "253929f676ef9529423751f602945b76": {"username": "TD", "tumblr": "", "display_name": "TD", "url": "http://disqus.com/guest/253929f676ef9529423751f602945b76/", "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": ""}, "94d6b674edc465fdc937a34d7b33a672": {"username": "Dave McClure", "tumblr": "", "display_name": "Dave McClure", "url": "http://disqus.com/guest/94d6b674edc465fdc937a34d7b33a672/", "registered": false, "linkedin": "", "blog": "http://500hats.typepad.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/101/3038/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "9b62e7bb3ffa48871afeac7fadf204d3": {"username": "ThisisGarbage", "tumblr": "", "display_name": "ThisisGarbage", "url": "http://disqus.com/guest/9b62e7bb3ffa48871afeac7fadf204d3/", "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": ""}, "88d69476727d79e0cdcfd795d7bb8845": {"username": "mike", "tumblr": "", "display_name": "mike", "url": "http://disqus.com/guest/88d69476727d79e0cdcfd795d7bb8845/", "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": ""}, "aed53ce6f50809254231873bb8bb5b07": {"username": "toscana", "tumblr": "", "display_name": "toscana", "url": "http://disqus.com/guest/aed53ce6f50809254231873bb8bb5b07/", "registered": false, "linkedin": "", "blog": "http://www.marshawj.org/toscana", "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": ""}, "7e87853c1adc28369294ffcd111772c8": {"username": "Auren Hoffman", "tumblr": "", "display_name": "Auren Hoffman", "url": "http://disqus.com/guest/7e87853c1adc28369294ffcd111772c8/", "registered": false, "linkedin": "", "blog": "http://summation.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": ""}, "dff5c079ca0b55709f1f3077679d5890": {"username": "Aleksey Linetskiy", "tumblr": "", "display_name": "Aleksey Linetskiy", "url": "http://disqus.com/guest/dff5c079ca0b55709f1f3077679d5890/", "registered": false, "linkedin": "", "blog": "http://grumpytech.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": ""}, "11e73da35ffd10eab8fcb120b2c3ca87": {"username": "Peter Armstrong", "tumblr": "", "display_name": "Peter Armstrong", "url": "http://disqus.com/guest/11e73da35ffd10eab8fcb120b2c3ca87/", "registered": false, "linkedin": "", "blog": "http://peterarmstrong.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": ""}, "0f8703ce7e21c2904c645697c3547e85": {"username": "Brad Tayan", "tumblr": "", "display_name": "Brad Tayan", "url": "http://disqus.com/guest/0f8703ce7e21c2904c645697c3547e85/", "registered": false, "linkedin": "", "blog": "http://www.bradvite.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": ""}, "868bf02ca2d31271ab818bcf2fbd9943": {"username": "Stu Rampage", "tumblr": "", "display_name": "Stu Rampage", "url": "http://disqus.com/guest/868bf02ca2d31271ab818bcf2fbd9943/", "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": ""}, "8b8a704ef48930e3102d359b2c3695a5": {"username": "Steve Poland", "tumblr": "", "display_name": "Steve Poland", "url": "http://disqus.com/guest/8b8a704ef48930e3102d359b2c3695a5/", "registered": false, "linkedin": "", "blog": "http://www.vestedventures.com/blog/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/3/6929/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6d9580157cc41c00df7556ff194c5eb9": {"username": "PG", "tumblr": "", "display_name": "PG", "url": "http://disqus.com/guest/6d9580157cc41c00df7556ff194c5eb9/", "registered": false, "linkedin": "", "blog": "http://www.inviteforgood.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": ""}, "52ce2f82f3362314efb5e2b9a5edcff8": {"username": "PxuQDB8IJp", "tumblr": "", "display_name": "PxuQDB8IJp", "url": "http://disqus.com/guest/52ce2f82f3362314efb5e2b9a5edcff8/", "registered": false, "linkedin": "", "blog": "http://PxuQDB8IJp.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": ""}}, "forum": {"use_media": true, "name": "VentureBeat", "streaming_realtime": false, "url": "venturebeat", "allow_anon_post": true, "reactions_enabled": true, "reply_position": 1, "show_avatar": true, "allow_anon_votes": false, "disqus_auth_disabled": false}, "realtime_enabled": false, "request": {"username": "", "is_global_moderator": false, "sharing": {}, "sort": 4, "forum": "venturebeat", "is_initial_load": true, "is_authenticated": false, "timestamp": "2009-12-01_06:32:05", "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": null}, "realtime_paused": false, "posts": {"14667675": {"up_voted": false, "ip": "", "has_replies": false, "message": "Matt - this is one of the most shameless, basest examples of self-promotion I have ever seen. Why would you ever let this guy publish his rant on Evite with such a clear agenda on his hands? This kind of stuff really makes me sick, I understand he's an investor, but there's no reason to bash eVite to get attention, that's just desparate. Maybe he's responding the collective yawn that Socializr got when it launched?<br><br><a href=\"http://www.techcrunch.com/2006/09/13/socializr-in-private-beta-zzzzzzzz/\" rel=\"nofollow\">http://www.techcrunch.com/2006/09/13/socializr-...</a><br><br><a href=\"http://software.gigaom.com/2006/09/14/whats-new-today-meebo-socializr-revver/\" rel=\"nofollow\">http://software.gigaom.com/2006/09/14/whats-new...</a>", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-19_18:24:00", "killed": false, "user_key": "9b62e7bb3ffa48871afeac7fadf204d3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667676": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hey Auren--<br><br>Nice writeup.  I agree with your insights and have thrown my hand ups in evite frustration myself.  It really is amazing that the site hasn't perceptively changed since it launched!  Don't know if socializr is the cure, but there definitely seems to be some opportunity here.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-19_19:28:13", "killed": false, "user_key": "97f677b2bace01c899550aac4cef16bf", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667677": {"up_voted": false, "ip": "", "has_replies": false, "message": "I don't mind open criticism of a product, but it's usually more believable when the arguments are less trivial, transparent, and desperate sounding.  This came down to: evite is slow, evite profiles aren't used, so use socializr (oh, yeah I'm an investor).<br><br>Why does someone need to use evite profiles?  The purpose of evite is to invite your friends to events.  All in all, it's fine to launch a competing service, but not because of the reasons listed, and I really doubt that there's much stress involved in getting an evite invitation.  So while socializr may have its merits, this wasn't a great show of what they will be...  I guess it will be faster and have better profiles that I'll want to use.  Cool, but not sure you solved the event problem I was having :)<br><br>And @thisisgarbage: I actually really like the new venturebeat spin - running opeds, etc.  It's great that Matt is opening up these channels for investors/founders, etc.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-19_20:14:53", "killed": false, "user_key": "6eaf57b18ba9a3869f85e7393e2a0229", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667679": {"up_voted": false, "ip": "", "has_replies": false, "message": "This is yellow journalism at its finest.  For shame.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-19_20:17:23", "killed": false, "user_key": "b8017b751e945e6840221fce9aade16f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667680": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hard to believe this ran. Paid advert/post? This was not an op-ed by any means, expecting better from you guys. Can I trash my competition here as well?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-19_20:51:44", "killed": false, "user_key": "5c8328a8a72fef8e27bcf9a9ac56a56a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667681": {"up_voted": false, "ip": "", "has_replies": false, "message": "eVite 1999: \"I was floored, impressed, and just blown-away.\"<br><br>With all the really interesting things going on in 1999, eVite floored this guy?<br><br>He must have been eleven.<br><br>Give me a break.  Not sure I'd ever admit to being so parochial.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-19_22:01:56", "killed": false, "user_key": "fec7d17e6971deb4c11e71c0b94ef983", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667683": {"up_voted": false, "ip": "", "has_replies": false, "message": "One more post like this and I'm out of here. Sure, I'm just one reader, why would you care?<br><br>\"Slow...slower...no good alternative.. wait there's one (and I'm totally biased btw). \" <br><br>Now I can post about \"why I hate Socializr\". At least one of its investors thinks we're stupid.<br><br>Good job polarizing, though. No wonder you pray they kill evite. Well, I'd rather see evite evolving than dead, which is what you'd have wished if you didn't have an investment on oh, the alternative. Right?<br><br>And as you say, there are plenty of sites like evite - maybe you've got invites fro Socialzr because you're part of that game, after all.<br><br>Like I said, one more self promotion post like this and I'm out.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-19_23:33:37", "killed": false, "user_key": "a8b0ad34af6261dd56fe2c03c92ed834", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667684": {"up_voted": false, "ip": "", "has_replies": false, "message": "I don't get all the bad reactions to this post.  Evite is the classic \"totally fail to capitalize\" website.  <br><br>Think about this -- how come Evite decides the relationship ends after the event.  Why can't it mashup with Flickr?  Why can't I buy tickets ahead of time?  They should be integrating tools like Flickr, Mollyguard, etc into Evite.<br><br>It's a shame they have IAC behind them because they can't compete with ticketmaster and most of the other IAC properties.  <br><br>The reality is though that Evite stinks.<br><br>This doesn't read like a paid promotion, it's one man's opinion and since when do we get pissed about people being upfront about what conflicts they have?  <br><br>Welcome to the Internets...", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_02:18:34", "killed": false, "user_key": "bb65dd7718bbfc1a0eb3ca17de87f731", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667685": {"up_voted": false, "ip": "", "has_replies": false, "message": "careful what you say about kazakhstan -- borat's got 'em angry enough already ...", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_02:55:39", "killed": false, "user_key": "88d69476727d79e0cdcfd795d7bb8845", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667686": {"up_voted": false, "ip": "", "has_replies": false, "message": "I am VP Marketing for <a href=\"http://TripHub.com\" rel=\"nofollow\">TripHub.com</a>.  We have \"evite like\" invitation and RSVP management.  Our service is vertically focused on gatherings that involve travel. I am fascinated by this discussion and very surprised that there haven't been more vertically focused sites leveraging invite functionality.  Evite has consistently failed to capitalize there.  There is soooo much to do before, with, after the event!  Mike - while we haven't added post trip memory sharing (Flikr etc.), that is a logical next step.  I'm just glad that our invitations sit at the center of a large economic event vs the typical $50 BBQ or birthday party seen on evite and.... ahem... socializr??", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_03:40:12", "killed": false, "user_key": "baa21d7b0b7744c1c0d5037f2661545e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667687": {"up_voted": false, "ip": "", "has_replies": false, "message": "Mike, there's nothing wrong with someone expressing their opinion or argument (albeit biased, and unconvincing).  Not to mention this post had nothing to do with evite not capitalizing, it states \"why I hate evite.\" - nice attention getter, btw.<br><br>After thinking more about what was actually frustrating about this read, I think I've figured it out.  It's that most readers didn't know that Auren was an investor in Socializr.  I was led to believe that this was just a passionate message about wanting to make evite better.  Then you get hit on the head it was all a trick.  <br><br>Watch the movie \"Wild Things\" and you'll experience the same discomfort.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_05:15:31", "killed": false, "user_key": "6eaf57b18ba9a3869f85e7393e2a0229", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667688": {"up_voted": false, "ip": "", "has_replies": false, "message": "Possibly the lamest article I've ever bothered to respond to.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_05:43:32", "killed": false, "user_key": "dc1b4714364620088489e23b80e5ebb5", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667689": {"up_voted": false, "ip": "", "has_replies": false, "message": "<a href=\"http://www.vestedventures.com/blog/2006/09/why-friendster-and-evite-iac.html\" rel=\"nofollow\">I wrote an opinion piece</a> about why Evite (IAC) and Friendster need each other. It's regarding the potential threat of Socializr to Evite, why a purchase of Friendster by IAC (Evite) would breathe new life into Friendster and help Evite defend their domination of event planning (thus destroying any chance of Socializr succeeding).", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_09:57:16", "killed": false, "user_key": "8b8a704ef48930e3102d359b2c3695a5", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667690": {"up_voted": false, "ip": "", "has_replies": false, "message": "At least he disclosed his interests.  If you're unconvinced by the rant, then just keep on using Evites, and now harm done.<br><br>I've personally used:<br><br>just very simple and easy to use invites<br>- <a href=\"http://www.goovite.com/\" rel=\"nofollow\">http://www.goovite.com/</a><br><br>a very slick app that helps you choose meeting times<br>- <a href=\"http://www.meetwithapproval.com/\" rel=\"nofollow\">http://www.meetwithapproval.com/</a><br><br>more of a social network<br>- <a href=\"http://www.skobee.com/\" rel=\"nofollow\">http://www.skobee.com/</a><br><br><br>other options or \"alternatives\" include:<br>- <a href=\"http://renkoo.com/login.php\" rel=\"nofollow\">http://renkoo.com/login.php</a><br>- <a href=\"http://www.doodle.ch/\" rel=\"nofollow\">http://www.doodle.ch/</a><br><br>And in the name of shameless self promotion I do some ranting and raving over at <a href=\"http://www.lifeinlists.com\" rel=\"nofollow\">http://www.lifeinlists.com</a>", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_10:40:22", "killed": false, "user_key": "13bc2516e9b696ffa48af50b9cbec3bc", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667691": {"up_voted": false, "ip": "", "has_replies": false, "message": "yes, i did think twice about Auren's promotion of socializr before running this. but this is an opinion space, and i intend to give to equal play to others. <br><br>i think the piece resonates with me because evite doesn't do the trick, and it is hard to believe i haven't gotten a single invitation from any of these web 2.0 invitation/event companies -- may say something about me, though! -- and no, i'm not sure socializr is the answer either.<br><br>note that VentureBeat was the first to link to Poland's piece outing Socializr and that Polands piece isn't very friendly to Socializr.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_12:02:28", "killed": false, "user_key": "03b56d45211b6e40d54ddbdddd56f970", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667692": {"up_voted": false, "ip": "", "has_replies": false, "message": "Will you let an investor in Evite write an editorial criticizing Socializr?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_12:24:57", "killed": false, "user_key": "bc37252e6c654199a9c97d139a22b545", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667693": {"up_voted": false, "ip": "", "has_replies": false, "message": "Matt:<br>it would be interesting to know what you relationship with Auren is.  <br>-Andrew", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_12:47:53", "killed": false, "user_key": "be71fa3c3cb504b76afdab5c53a2af10", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667694": {"up_voted": false, "ip": "", "has_replies": false, "message": "Matt:<br><br>Maybe a disclaimer about Auren's relationship with Socializr should be a little higher up?  Just a thought.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_12:55:43", "killed": false, "user_key": "f55b866c6a9e608111b706fda77e3de8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667695": {"up_voted": false, "ip": "", "has_replies": false, "message": "Andrew,<br><br>Scandalous, I'm sure of it!  Auren writing a piece about being frustrated with Evite, saying what we all think about them but don't write, and moreover, disclosing his involvement with a competitor is truly shocking and deplorable.<br><br>Auren, you are on notice! :-)", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_13:10:03", "killed": false, "user_key": "29143372187e59f5c6c6c9ea740ec588", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667696": {"up_voted": false, "ip": "", "has_replies": false, "message": "+1.  That kind of disclaimer should be in bold italics right at the top.<br><br>Besides, this guest article trend on people's blogs in a bit annoying--I didn't subscribe to your feed to read an infomercial.  I like your writing enough to subscribe to it, not random third-party stuff.  If he had written a good blog post on his blog and you had linked to it, the infomercial nature of it would have been less obnoxious...", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_13:19:15", "killed": false, "user_key": "11e73da35ffd10eab8fcb120b2c3ca87", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667697": {"up_voted": false, "ip": "", "has_replies": false, "message": "hideous , truly hideous . . . if this is opinion , it should be labelled as opinion with disclosure at top, otherwise this is pure bs", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_13:37:49", "killed": false, "user_key": "bd6b9f5c7ef91409be0003e05bd92294", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667698": {"up_voted": false, "ip": "", "has_replies": false, "message": "Auren,<br><br>A great article - and it resonates with me. I also hate eVite - though for slightly different reasons. Funny thing, quite recently I've wrote a post in my blog on the same topic and with almost the same title:<br><br><a href=\"http://grumpytech.blogspot.com/2006/08/i-hate-evite.html\" rel=\"nofollow\">http://grumpytech.blogspot.com/2006/08/i-hate-e...</a>", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_13:54:47", "killed": false, "user_key": "dff5c079ca0b55709f1f3077679d5890", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667699": {"up_voted": false, "ip": "", "has_replies": false, "message": "Matt,<br><br>I am really disappointed.  This isn't what I expected of VentureBeat.  The reason I liked reading your blog is because of its journalistic integrity. <br><br>Regardless of the message about the quality (of lack thereof) of Evite, it is tainted by transparent self-promotion.  The fact that it is in an \"Op-Ed section\" should not give free license to allow folks to post trash a service while at the same time promote themselves or the companies that they are invested in.  I don't have a problem with VentureBeat doing guest posts where someone talks about their company if it is relevant and interesting, but this is ridiculous.<br><br>So long as you make the editorial decisions about who gets to post on the column, it is, in my view, your responsibility to manage this.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_13:59:00", "killed": false, "user_key": "253929f676ef9529423751f602945b76", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667700": {"up_voted": false, "ip": "", "has_replies": false, "message": "Shameful. I'm glad the commentors are calling you out on it.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_14:07:54", "killed": false, "user_key": "db9220ff45343cb236c9e03b144d473f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667701": {"up_voted": false, "ip": "", "has_replies": false, "message": "You guys need to be careful about these silly references - \"Are they all sites from Kazakhstan?\"<br><br>Get your head out of your.... and smell the new world.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_14:45:40", "killed": false, "user_key": "ade764ebeea4b48b34ef63f881cd98f2", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667702": {"up_voted": false, "ip": "", "has_replies": false, "message": "I agree.  It's slow.  It's boring.  And the ads interfere with the interface.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_14:51:50", "killed": false, "user_key": "622489e935f238b6c9038de90890c8f7", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667703": {"up_voted": false, "ip": "", "has_replies": false, "message": "These are awesome comments.   My mom read this and called me to make fun of me.   she was laughing for hours ... just like old times.   <br><br>a couple of comments:<br><br>1. I would like to offer my sincere apologies to the people of Kazakhstan.   Kazaks are wonderfully fun-loving people who are very peaceful (and sit on a lot of oil).  And Borat comes from there.<br><br>2. I hate Evite.   sorry.   i just hate them.    I also hate Windows Explorer.   and i hate olives too.   i just don't like olives ... i'm not apologizing for that.    (see my upcoming rant on VegatableBeat).<br><br>3. i don't hate Evite because i invested on Socializr.   i investor in Socializr because i hate Evite.   and yes, i actually prominently disclosed that i am an investor.   and it was at the bottom of the piece.   but you all got there and read it.<br><br>4. i still hate olives.   you haven't convinced me about that yet.   and i am invested in pickles hoping for the demise of all olives.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_15:07:17", "killed": false, "user_key": "7e87853c1adc28369294ffcd111772c8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667704": {"up_voted": false, "ip": "", "has_replies": false, "message": "Auren:<br>lets talk, I've got a great new pickle 2.0 startup.<br>-Andrew", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_15:09:52", "killed": false, "user_key": "be71fa3c3cb504b76afdab5c53a2af10", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667705": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thanks EVBART for pointing out the other great alternatives to eVite.  This author has no reason to claim there are no alternatives.<br><br>I do not understand how getting too many eVites makes the system bad.  Are you suggesting this new service you are promoting will filter things out for you?<br><br>These days I just send invites to people through Google's invite system that is hooked to its calendar.  Much simplier than creating a completely seperate page and its easier for all my other google-infected friends.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_15:17:10", "killed": false, "user_key": "70cbb8aeb6c4b1cc944250e421c6cd79", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667706": {"up_voted": false, "ip": "", "has_replies": false, "message": "Aurens a pretty funny guy - wonder how funny he'll be when his investment goes belly up. At least he'll have a lot of sarcastic, nerdy jokes to make about it.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_15:32:43", "killed": false, "user_key": "9b62e7bb3ffa48871afeac7fadf204d3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667707": {"up_voted": false, "ip": "", "has_replies": false, "message": "Auren, I think it's stretching things a bit to say you \"prominently\" disclosed your relationship, when it's in the second-last paragraph and is in parentheses. In J-school, that's called \"burying the lede.\"", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_15:35:29", "killed": false, "user_key": "f55b866c6a9e608111b706fda77e3de8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667709": {"up_voted": false, "ip": "", "has_replies": false, "message": "This post is not only horribly skewed in favor of the author's own interests, but also provides misleading information.  While desperately looking for something bad to say about Evite, Auren first cites Alexa's rating of Evite as \"Slow\".  However, nearly every popular site on the net as either a \"Slow\" or \"Very Slow\" rating on Alexa.  eBay, Amazon, etc.  Of course, Auren's own RapLeaf is \"Very Fast\" but it's pretty easy to keep your response times lightning fast when you have no server load.  Moreover, MySpace is notorious for being woefully slow but it's rampant growth further proves that users are accepting of slow pageloads if the service is valuable to them.<br><br>I'm not suggesting that Evite is the holy grail of event systems but it is popular for a reason and the features Auren suggested - if users really want it - could be implemented by Evite in a week.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_15:48:44", "killed": false, "user_key": "890bd2dc0852d3dc7b643212745aaee5", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667710": {"up_voted": false, "ip": "", "has_replies": false, "message": "Auren - Amazing job with all the controvery you stirred up.  You got 34 comments with this one vs. 5 on your last op-ed.  As a super-optimistic entrepreneur, I project 239,348 comments on your next piece.<br><br>Seriously though - I just think people need to relax a little, take a step back, and laugh at your op-ed piece.  And then slap themselves for getting all riled up.<br><br>By the way, I hate olives too.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_16:22:18", "killed": false, "user_key": "266984437efa7cf7c7e5cffa816e7a61", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667711": {"up_voted": false, "ip": "", "has_replies": false, "message": "Auren Hoffman is a self-promoting douche-bag.  \"Investor\" in Socializr?  Do they accept roles of quarters/pennies?  Who writes this guy's bio?  <br><br>Let me reiterate: DOUCHE-BAG.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_16:58:57", "killed": false, "user_key": "868bf02ca2d31271ab818bcf2fbd9943", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667712": {"up_voted": false, "ip": "", "has_replies": false, "message": "Stu:<br>come on man, your comments are totally uncalled for.  As much as I disaprove of this post, Auren doesn't deserve that kind of mud slinging.  Furthermore, if I were currently working on a startup I would want my investors doing anything they could to get me publicity.  I don't like the fact that this was posted on VentureBeat, but it was smart on Auren's part and has probably driven a lot of traffic to Socializr.<br>-Andrew", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_17:22:37", "killed": false, "user_key": "be71fa3c3cb504b76afdab5c53a2af10", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667713": {"up_voted": false, "ip": "", "has_replies": false, "message": "i trust Auren's opinion &amp; perspective on eVite, however the disclaimer that he's an investor in Socializr should go right at the top.  <br><br>(makes a big difference whether that information is available to readers *before* the endorsement vs after)<br><br>note: there are also several other evite competitor sites with products in alpha or beta. while i agree with Auren that eVite hasn't been innovating much, i don't think Socializr will be the only available option.  <br><br>- dave mcclure", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_17:27:07", "killed": false, "user_key": "94d6b674edc465fdc937a34d7b33a672", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667714": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hilarious.<br><br>I think evite must have hired people to leave comments on this post....", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_17:31:01", "killed": false, "user_key": "4da7fc00fbb2ae0640420e32f927498f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667715": {"up_voted": false, "ip": "", "has_replies": false, "message": "Matt, Matt, Matt....please delete this guest post and we'll forget it ever happened. The most charitable thing I can say is that he at least admitted that he was an invester in...what was that company again? Can one be tough on a free service? Even if the answer is yes, this was way over the top.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_18:28:15", "killed": false, "user_key": "f52c6c8bf3832ff3fbc7916e3ae91993", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667716": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ok, I'm going to consider changing the title of this column, to OP-ED, for one. But I'm hearing you guys, that there wasn't enough disclosure on this at the outset. I'm fixing the the editor's note at the top.<br><br>To be clear: I have no financial or business relationship with Auren whatsoever. I'm ready to run any contributors item that comes in well-written, and helps to spark debate -- and that includes one from Evite.<br><br>Note that we've just run an opinion piece from Joyce Park, who works for a competitor to Socializr.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_19:09:31", "killed": false, "user_key": "03b56d45211b6e40d54ddbdddd56f970", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667717": {"up_voted": false, "ip": "", "has_replies": false, "message": "Got here from <a href=\"http://techmeme.com\" rel=\"nofollow\">techmeme.com</a>.  Reading the article to the end made me feel played like a con victim.  <br><br>Shameless self-promotion does not make interesting or informative content.  It's gratuitous and repulsive. <br><br>Treat your readers better.  And Auren, don't quit your day job, cause you suck at op-eds.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_19:34:29", "killed": false, "user_key": "7b94ec83cd557689aa1812d852cae22b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667718": {"up_voted": false, "ip": "", "has_replies": false, "message": "I'm with the others in feeling it's inappropriate to have an investor in the competition featured as the rant of the day.   Comments may be true but credibility gap is simply too high.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_21:22:37", "killed": false, "user_key": "d8bb4623895a9ba01a125d3d7800bead", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667719": {"up_voted": false, "ip": "", "has_replies": false, "message": "Glad you made the change, Matt.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-20_22:07:08", "killed": false, "user_key": "f55b866c6a9e608111b706fda77e3de8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667720": {"up_voted": false, "ip": "", "has_replies": false, "message": "Did anybody notice this line:<br><br>\"I was floored, impressed, and just blown-away. Now I just get bored, stressed, and have grown astray.\"<br><br>That's a pretty clever rhyme...talented.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-21_00:26:46", "killed": false, "user_key": "9e45bfc4cd8eb125f13b4d2bd8c30773", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667722": {"up_voted": false, "ip": "", "has_replies": false, "message": "disclosure is the only issue here, his opinion is his investment thesis . .  any entrepreneur should have the gusto to do this, but any journalist should have the foresight to not allow this op-ed. <br><br>Lastly anyone notice the side swipe at eBay? which is also self motivated?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-21_01:32:32", "killed": false, "user_key": "94aac1c424905cc579d637dd3092bf81", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667723": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ok, so I bit and took a look at <a href=\"http://Socializr.com\" rel=\"nofollow\">Socializr.com</a>. About 5 seconds in they lost my attention. No screen-shots, no demo, no real compelling information. The UI is horrible...looks like something I built in 2001. <br><br>Cute verbiage here and there about being founded in 1848 during the California Gold Rush, but not very much Web 2.0 going on there.<br><br>Maybe their hiding all the good stuff behind the Login curtain, but I would never know. I'm not giving up my creds just to have a look-see.<br><br>PS: Always disclose your personal interests in a clear or pronounced way at the top or bottom of your piece. Otherwise, in the blogosphere, you'll get slammed like this.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-21_04:23:46", "killed": false, "user_key": "5deed1136d11094cfd699795ac283554", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667724": {"up_voted": false, "ip": "", "has_replies": false, "message": "As long as I can import my past evites into a BETTER solution, I'm all for it. Hey! Maybe I should write one! What a great idea!!! /cheer", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-22_10:53:13", "killed": false, "user_key": "ed4c58081885a2a338e7551903df277d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667725": {"up_voted": false, "ip": "", "has_replies": false, "message": "I agree that the load times are slow and the site is dated.  It's not a good user experience.<br><br>But that's not really it for me.  For me I hate it because Evite is about the organizer and not about the guests.  I have no problem with people using Evite for formal events where you need a head count.  But it seems to me that a lot of Type A personalities use the service to force structure on social interactions that don't need or require it.  It is overused.  It makes me RSVP to a happy hour like I would to board meeting.  It's just too top down for my tastes.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-22_23:19:10", "killed": false, "user_key": "9035d2e771a0c16381fdae5c93f75132", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667727": {"up_voted": false, "ip": "", "has_replies": false, "message": "I hope he paid for that ad space.  I love Evite and because of this blatant bashing I will NEVER EVER use Socializr.  I think Auren should stick to business because he clearly lacks any journalistic integrity.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-25_14:28:20", "killed": false, "user_key": "31d11ed9670ff348b4df8f13236f7153", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667728": {"up_voted": false, "ip": "", "has_replies": false, "message": "Did not realize that investors are not allowed to have strong opinions. The responses seem very hostile and not taclking the issues like Auren brought up with Evite, rather slamming him and his opinions. Not sure blogs have to have same journalistic rules as newspapers. Blogs were designed to have free information flow without editorial interference. If you all need edited content wall street journal is still in business ;-))", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-25_19:49:49", "killed": false, "user_key": "954cbcfd506f4c32ecb7ea88565fe758", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667729": {"up_voted": false, "ip": "", "has_replies": false, "message": "The Evite website went DOWN today, a Friday, at 2 p.m. and is still down hours later  And I have a fundraiser tomorrow!  ARRHHHGGG.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-10-06_16:16:27", "killed": false, "user_key": "fa09427040ac3ab913214f25262a202a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667730": {"up_voted": false, "ip": "", "has_replies": false, "message": "Evite, doesn't that mean \"Avoid\" in Spanish? I wonder who named it?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-10-07_00:19:53", "killed": false, "user_key": "0ab707f6d77da4a81cef5df2bda2c986", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667731": {"up_voted": false, "ip": "", "has_replies": false, "message": "It does not look like Auren has done his research. There are dozens of event management and event registration websites out there. And they are getting better and better. <br>EventBrite (formerly MollyGuard) is a a very decent generic service and our own product Wild Apricot (<a href=\"http://WildApricot.com\" rel=\"nofollow\">WildApricot.com</a>) is an example of a vertically focused one (we handle event registrations as one of the aspects of non-profit and grassroot groups management).", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-10-22_10:33:22", "killed": false, "user_key": "e892e9cad44aade10921d171a1b81cf4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667732": {"up_voted": false, "ip": "", "has_replies": false, "message": "Socialzr sucks. Even from the layout, you can tell it badly wants to be myspace. lol. Go Joyce, go Renkoo!!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-10-26_23:58:13", "killed": false, "user_key": "027da49ab3406a49fe692d8c6bb40042", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 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}, "14667734": {"up_voted": false, "ip": "", "has_replies": false, "message": "Here is a new kid on the block, with some nice intend. It allows to link social events to non-profit organizations.<br><a href=\"http://www.inviteforgood.com\" rel=\"nofollow\">www.inviteforgood.com</a>", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-01-10_14:29:29", "killed": false, "user_key": "6d9580157cc41c00df7556ff194c5eb9", "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}, "14667735": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi! Very nice site! Thanks you very much! lDt9uJ4Qgm", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-01-13_02:09:09", "killed": false, "user_key": "52ce2f82f3362314efb5e2b9a5edcff8", "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}, "14667736": {"up_voted": false, "ip": "", "has_replies": false, "message": "In case you missed it:<br><br><a href=\"http://venturebeat.com/2007/01/15/mypunchbowl-joins-growing-list-of-evite-rivals/\" rel=\"nofollow\">http://venturebeat.com/2007/01/15/mypunchbowl-j...</a>", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-01-17_23:59:14", "killed": false, "user_key": "e69934297fd0d011255e5cb55ac66422", "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}, "14667737": {"up_voted": false, "ip": "", "has_replies": false, "message": "<a href=\"http://iivxnbtxro.com\" rel=\"nofollow\">marsnt</a>", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-01-31_16:25:01", "killed": false, "user_key": "3413333895300416e392b06e9bf82d54", "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}, "14667738": {"up_voted": false, "ip": "", "has_replies": false, "message": "E grande io ha trovato il vostro luogo! Le info importanti ottenute! ))", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-04-16_00:51:46", "killed": false, "user_key": "aed53ce6f50809254231873bb8bb5b07", "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}, "14667740": {"up_voted": false, "ip": "", "has_replies": false, "message": "azvd! <a href=\"http://qpjclxsx.com\" rel=\"nofollow\">http://qpjclxsx.com</a> qrwng oyrrx <a href=\"http://nkeaqvks.com\" rel=\"nofollow\">http://nkeaqvks.com</a> fmwlb kfqns", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-01-09_13:04:13", "killed": false, "user_key": "2fabe1e364b7de7f8244d024cdaffe9e", "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}, "14667741": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi webmaster!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-01-09_13:05:46", "killed": false, "user_key": "1e740b29cfd4d2f297ddbed829da541f", "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}, "14667743": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have a feeling there will be a lot of competing sites launched in the next few years, as the technology progresses. I just launched my own site:<br><br><a href=\"http://www.bradvite.com\" rel=\"nofollow\">http://www.bradvite.com</a>", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-08-03_15:46:54", "killed": false, "user_key": "0f8703ce7e21c2904c645697c3547e85", "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}, "14667744": {"up_voted": false, "ip": "", "has_replies": false, "message": "Nothing beats the simplicity of <a href=\"http://yarp.com\" rel=\"nofollow\">http://yarp.com</a><br><br>It gets the job done in a very small fraction of the time.  Send invites in seconds and have responses in minutes.  No logins, no email harvesting, no maybes.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-09-20_20:09:49", "killed": false, "user_key": "cd6aa140153a12cf40a7faa1f2b570e1", "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}}, "integration": {"receiver_url": "", "theme": 4, "reply_position": true, "disqus_logo": true}, "timer": {"timer_url": "http://localhost:8005", "thread_id": "19689421", "user_id": "anonymous", "forum_id": "7041", "hash": -662111321470512419}, "thread": {"days_alive": 0, "slug": "why_i_hate_evite", "paginate": false, "num_pages": 1, "num_posts": 62, "per_page": 0, "total_posts": 0, "realtime_paused": true, "id": 19689421, "queued": false}, "reactions_limit": 10, "context": {"show_reply": true, "use_fb_connect": true, "forum_facebook_key": "547225e2dda46ccfdec279a9a44a0074", "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: ";
};
// 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 = '4f0bfca82e06c976a1efdd7c783a5fd0';
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=venturebeat' +
		'&t=why_i_hate_evite' +
		'&ff=' + Dsq.Thread.ff +
		'&default_text=' + 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://disqus.com/forums/venturebeat/why_i_hate_evite/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>';
		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>'))
							+ ' <a href="' + Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE + '">' + Dsq.jsonData.request.display_username + '</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"> \
				<form action="." method="GET" onsubmit="Dsq.Templates.postComment(' + post_id + ', this, false); return false;"> \
				<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">Subscribe to all comments by email</a></li> \
									<li><a href="#" onclick="Dsq.Templates.setSubscribe(0, this, ' + post_id + '); return false">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> \
				</form> \
			</div>'
			: '')
			+ '<div class="dsq-post-footer"> \
				<div class="dsq-sharing-options" ' + (!display_sharing_options ? 'style="display:none;"' : '') + '> \
					<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 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 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 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 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 class="dsq-button-small">' + Dsq.Strings.REPLY + '</button> \
						<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 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 ' + (reaction.source == 'backtype' ? '<a href="http://backtype.com/">BackType</a>' : '<a href="' + reaction.source_url + '">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 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 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 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 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 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 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 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="" /> 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 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/venturebeat/thread.js'
			+ '?slug='	+ 'why_i_hate_evite'
			+ '&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/venturebeat/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://disqus.com/forums/venturebeat/why_i_hate_evite/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 {
			return parseInt(chunks[chunks.length-1]);
		}
	};

	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 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/venturebeat/_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">62</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://disqus.com/forums/venturebeat/why_i_hate_evite/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://disqus.com/forums/venturebeat/why_i_hate_evite/">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">\
	 </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 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://disqus.com/forums/venturebeat/why_i_hate_evite/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 ' + (reaction.source == 'backtype' ? '<a href="http://backtype.com/">BackType</a>' : '<a href="' + reaction.source_url + '">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 '';
	};

	//
	// 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 VentureBeat" 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:19689421" 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'				: 'venturebeat',
			't'				: 'why_i_hate_evite',
			// 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/venturebeat/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/venturebeat/why_i_hate_evite/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 onclick="Dsq.Popup._closePopup(null, true)"><strong>' + Dsq.Strings.NO + '</strong>, ' + Dsq.Strings.NEVER_MIND + '</button>&nbsp;&nbsp;&nbsp;<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/venturebeat/thread.js'
			+ '?slug='	+ 'why_i_hate_evite'
			+ '&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/venturebeat/thread.js'
			+ '?slug='	+ 'why_i_hate_evite'
			+ '&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/venturebeat/subscribe.js'
				+'?status=' 	+ status
				+ '&slug='		+ 'why_i_hate_evite'
				+ '&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 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 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.updateDaysAlive = function() {
		var days = Dsq.$('dsq-thread-days-alive').value;
		var status = Dsq.$('dsq-thread-settings-status');
		Dsq.Utils.postToUrl('http://disqus.com/forums/venturebeat/update_days_alive.js', {days:days,thread:Dsq.jsonData.thread.id});
		status.innerHTML = 'Saved!';
		window.setTimeout(function() { status.innerHTML = ''; }, 1000);
	};
};
// 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/19689421/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/venturebeat/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/venturebeat/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-14667675">\
	 <div id="dsq-comment-header-14667675" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667675" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667675">ThisisGarbage</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667675" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667675" class="dsq-comment-message">Matt - this is one of the most shameless, basest examples of self-promotion I have ever seen. Why would you ever let this guy publish his rant on Evite with such a clear agenda on his hands? This kind of stuff really makes me sick, I understand he\'s an investor, but there\'s no reason to bash eVite to get attention, that\'s just desparate. Maybe he\'s responding the collective yawn that Socializr got when it launched?<br><br><a href="http://www.techcrunch.com/2006/09/13/socializr-in-private-beta-zzzzzzzz/" rel="nofollow">http://www.techcrunch.com/2006/09/13/socializr-...</a><br><br><a href="http://software.gigaom.com/2006/09/14/whats-new-today-meebo-socializr-revver/" rel="nofollow">http://software.gigaom.com/2006/09/14/whats-new...</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667676">\
	 <div id="dsq-comment-header-14667676" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667676" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667676" href="http://www.1031exchangefacts.info/" target="_blank" rel="nofollow">Mitchel H.</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667676" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667676" class="dsq-comment-message">Hey Auren--<br><br>Nice writeup.  I agree with your insights and have thrown my hand ups in evite frustration myself.  It really is amazing that the site hasn\'t perceptively changed since it launched!  Don\'t know if socializr is the cure, but there definitely seems to be some opportunity here.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667677">\
	 <div id="dsq-comment-header-14667677" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667677" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667677">steve_ray</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667677" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667677" class="dsq-comment-message">I don\'t mind open criticism of a product, but it\'s usually more believable when the arguments are less trivial, transparent, and desperate sounding.  This came down to: evite is slow, evite profiles aren\'t used, so use socializr (oh, yeah I\'m an investor).<br><br>Why does someone need to use evite profiles?  The purpose of evite is to invite your friends to events.  All in all, it\'s fine to launch a competing service, but not because of the reasons listed, and I really doubt that there\'s much stress involved in getting an evite invitation.  So while socializr may have its merits, this wasn\'t a great show of what they will be...  I guess it will be faster and have better profiles that I\'ll want to use.  Cool, but not sure you solved the event problem I was having :)<br><br>And @thisisgarbage: I actually really like the new venturebeat spin - running opeds, etc.  It\'s great that Matt is opening up these channels for investors/founders, etc.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667679">\
	 <div id="dsq-comment-header-14667679" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667679" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667679">Regis</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667679" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667679" class="dsq-comment-message">This is yellow journalism at its finest.  For shame.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667680">\
	 <div id="dsq-comment-header-14667680" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667680" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667680" href="http://theprogressbar.com/" target="_blank" rel="nofollow">David Evans</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667680" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667680" class="dsq-comment-message">Hard to believe this ran. Paid advert/post? This was not an op-ed by any means, expecting better from you guys. Can I trash my competition here as well?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667681">\
	 <div id="dsq-comment-header-14667681" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667681" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667681">Born in 1988...</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667681" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667681" class="dsq-comment-message">eVite 1999: "I was floored, impressed, and just blown-away."<br><br>With all the really interesting things going on in 1999, eVite floored this guy?<br><br>He must have been eleven.<br><br>Give me a break.  Not sure I\'d ever admit to being so parochial.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667683">\
	 <div id="dsq-comment-header-14667683" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667683" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667683">Nick</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667683" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667683" class="dsq-comment-message">One more post like this and I\'m out of here. Sure, I\'m just one reader, why would you care?<br><br>"Slow...slower...no good alternative.. wait there\'s one (and I\'m totally biased btw). " <br><br>Now I can post about "why I hate Socializr". At least one of its investors thinks we\'re stupid.<br><br>Good job polarizing, though. No wonder you pray they kill evite. Well, I\'d rather see evite evolving than dead, which is what you\'d have wished if you didn\'t have an investment on oh, the alternative. Right?<br><br>And as you say, there are plenty of sites like evite - maybe you\'ve got invites fro Socialzr because you\'re part of that game, after all.<br><br>Like I said, one more self promotion post like this and I\'m out.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667684">\
	 <div id="dsq-comment-header-14667684" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667684" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667684">Mike</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667684" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667684" class="dsq-comment-message">I don\'t get all the bad reactions to this post.  Evite is the classic "totally fail to capitalize" website.  <br><br>Think about this -- how come Evite decides the relationship ends after the event.  Why can\'t it mashup with Flickr?  Why can\'t I buy tickets ahead of time?  They should be integrating tools like Flickr, Mollyguard, etc into Evite.<br><br>It\'s a shame they have IAC behind them because they can\'t compete with ticketmaster and most of the other IAC properties.  <br><br>The reality is though that Evite stinks.<br><br>This doesn\'t read like a paid promotion, it\'s one man\'s opinion and since when do we get pissed about people being upfront about what conflicts they have?  <br><br>Welcome to the Internets...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667685">\
	 <div id="dsq-comment-header-14667685" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667685" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667685">mike</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667685" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667685" class="dsq-comment-message">careful what you say about kazakhstan -- borat\'s got \'em angry enough already ...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667686">\
	 <div id="dsq-comment-header-14667686" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667686" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667686" href="http://www.triphub.com/" target="_blank" rel="nofollow">John</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667686" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667686" class="dsq-comment-message">I am VP Marketing for <a href="http://TripHub.com" rel="nofollow">TripHub.com</a>.  We have "evite like" invitation and RSVP management.  Our service is vertically focused on gatherings that involve travel. I am fascinated by this discussion and very surprised that there haven\'t been more vertically focused sites leveraging invite functionality.  Evite has consistently failed to capitalize there.  There is soooo much to do before, with, after the event!  Mike - while we haven\'t added post trip memory sharing (Flikr etc.), that is a logical next step.  I\'m just glad that our invitations sit at the center of a large economic event vs the typical $50 BBQ or birthday party seen on evite and.... ahem... socializr??</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667687">\
	 <div id="dsq-comment-header-14667687" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667687" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667687">steve_ray</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667687" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667687" class="dsq-comment-message">Mike, there\'s nothing wrong with someone expressing their opinion or argument (albeit biased, and unconvincing).  Not to mention this post had nothing to do with evite not capitalizing, it states "why I hate evite." - nice attention getter, btw.<br><br>After thinking more about what was actually frustrating about this read, I think I\'ve figured it out.  It\'s that most readers didn\'t know that Auren was an investor in Socializr.  I was led to believe that this was just a passionate message about wanting to make evite better.  Then you get hit on the head it was all a trick.  <br><br>Watch the movie "Wild Things" and you\'ll experience the same discomfort.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667688">\
	 <div id="dsq-comment-header-14667688" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667688" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667688" href="http://www.opensearchlist.com/" target="_blank" rel="nofollow">Knox</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667688" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667688" class="dsq-comment-message">Possibly the lamest article I\'ve ever bothered to respond to.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667689">\
	 <div id="dsq-comment-header-14667689" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667689" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667689" href="http://www.vestedventures.com/blog/" target="_blank" rel="nofollow">Steve Poland</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667689" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667689" class="dsq-comment-message"><a href="http://www.vestedventures.com/blog/2006/09/why-friendster-and-evite-iac.html" rel="nofollow">I wrote an opinion piece</a> about why Evite (IAC) and Friendster need each other. It\'s regarding the potential threat of Socializr to Evite, why a purchase of Friendster by IAC (Evite) would breathe new life into Friendster and help Evite defend their domination of event planning (thus destroying any chance of Socializr succeeding).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667690">\
	 <div id="dsq-comment-header-14667690" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667690" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667690">evbart</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667690" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667690" class="dsq-comment-message">At least he disclosed his interests.  If you\'re unconvinced by the rant, then just keep on using Evites, and now harm done.<br><br>I\'ve personally used:<br><br>just very simple and easy to use invites<br>- <a href="http://www.goovite.com/" rel="nofollow">http://www.goovite.com/</a><br><br>a very slick app that helps you choose meeting times<br>- <a href="http://www.meetwithapproval.com/" rel="nofollow">http://www.meetwithapproval.com/</a><br><br>more of a social network<br>- <a href="http://www.skobee.com/" rel="nofollow">http://www.skobee.com/</a><br><br><br>other options or "alternatives" include:<br>- <a href="http://renkoo.com/login.php" rel="nofollow">http://renkoo.com/login.php</a><br>- <a href="http://www.doodle.ch/" rel="nofollow">http://www.doodle.ch/</a><br><br>And in the name of shameless self promotion I do some ranting and raving over at <a href="http://www.lifeinlists.com" rel="nofollow">http://www.lifeinlists.com</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667691">\
	 <div id="dsq-comment-header-14667691" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667691" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667691" href="http://www.VentureBeat.com/" target="_blank" rel="nofollow">Matt Marshall</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667691" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667691" class="dsq-comment-message">yes, i did think twice about Auren\'s promotion of socializr before running this. but this is an opinion space, and i intend to give to equal play to others. <br><br>i think the piece resonates with me because evite doesn\'t do the trick, and it is hard to believe i haven\'t gotten a single invitation from any of these web 2.0 invitation/event companies -- may say something about me, though! -- and no, i\'m not sure socializr is the answer either.<br><br>note that VentureBeat was the first to link to Poland\'s piece outing Socializr and that Polands piece isn\'t very friendly to Socializr.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667692">\
	 <div id="dsq-comment-header-14667692" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667692" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667692">Bob</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667692" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667692" class="dsq-comment-message">Will you let an investor in Evite write an editorial criticizing Socializr?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667693">\
	 <div id="dsq-comment-header-14667693" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667693" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667693" href="http://andrewbfife.blogspot.com/" target="_blank" rel="nofollow">Andrew Fife</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667693" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667693" class="dsq-comment-message">Matt:<br>it would be interesting to know what you relationship with Auren is.  <br>-Andrew</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667694">\
	 <div id="dsq-comment-header-14667694" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667694" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667694" href="http://www.mathewingram.com/work" target="_blank" rel="nofollow">Mathew Ingram</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667694" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667694" class="dsq-comment-message">Matt:<br><br>Maybe a disclaimer about Auren\'s relationship with Socializr should be a little higher up?  Just a thought.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667695">\
	 <div id="dsq-comment-header-14667695" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667695" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667695" href="http://david.ulevitch.com/" target="_blank" rel="nofollow">David Ulevitch</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667695" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667695" class="dsq-comment-message">Andrew,<br><br>Scandalous, I\'m sure of it!  Auren writing a piece about being frustrated with Evite, saying what we all think about them but don\'t write, and moreover, disclosing his involvement with a competitor is truly shocking and deplorable.<br><br>Auren, you are on notice! :-)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667696">\
	 <div id="dsq-comment-header-14667696" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667696" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667696" href="http://peterarmstrong.com/" target="_blank" rel="nofollow">Peter Armstrong</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667696" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667696" class="dsq-comment-message">+1.  That kind of disclaimer should be in bold italics right at the top.<br><br>Besides, this guest article trend on people\'s blogs in a bit annoying--I didn\'t subscribe to your feed to read an infomercial.  I like your writing enough to subscribe to it, not random third-party stuff.  If he had written a good blog post on his blog and you had linked to it, the infomercial nature of it would have been less obnoxious...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667697">\
	 <div id="dsq-comment-header-14667697" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667697" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667697">chgxfdg</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667697" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667697" class="dsq-comment-message">hideous , truly hideous . . . if this is opinion , it should be labelled as opinion with disclosure at top, otherwise this is pure bs</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667698">\
	 <div id="dsq-comment-header-14667698" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667698" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667698" href="http://grumpytech.blogspot.com/" target="_blank" rel="nofollow">Aleksey Linetskiy</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667698" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667698" class="dsq-comment-message">Auren,<br><br>A great article - and it resonates with me. I also hate eVite - though for slightly different reasons. Funny thing, quite recently I\'ve wrote a post in my blog on the same topic and with almost the same title:<br><br><a href="http://grumpytech.blogspot.com/2006/08/i-hate-evite.html" rel="nofollow">http://grumpytech.blogspot.com/2006/08/i-hate-e...</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667699">\
	 <div id="dsq-comment-header-14667699" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667699" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667699">TD</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667699" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667699" class="dsq-comment-message">Matt,<br><br>I am really disappointed.  This isn\'t what I expected of VentureBeat.  The reason I liked reading your blog is because of its journalistic integrity. <br><br>Regardless of the message about the quality (of lack thereof) of Evite, it is tainted by transparent self-promotion.  The fact that it is in an "Op-Ed section" should not give free license to allow folks to post trash a service while at the same time promote themselves or the companies that they are invested in.  I don\'t have a problem with VentureBeat doing guest posts where someone talks about their company if it is relevant and interesting, but this is ridiculous.<br><br>So long as you make the editorial decisions about who gets to post on the column, it is, in my view, your responsibility to manage this.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667700">\
	 <div id="dsq-comment-header-14667700" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667700" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667700">Sweet Leon</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667700" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667700" class="dsq-comment-message">Shameful. I\'m glad the commentors are calling you out on it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667701">\
	 <div id="dsq-comment-header-14667701" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667701" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667701">BS</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667701" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667701" class="dsq-comment-message">You guys need to be careful about these silly references - "Are they all sites from Kazakhstan?"<br><br>Get your head out of your.... and smell the new world.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667702">\
	 <div id="dsq-comment-header-14667702" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667702" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667702" href="http://ferodynamics.com/" target="_blank" rel="nofollow">PJ</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667702" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667702" class="dsq-comment-message">I agree.  It\'s slow.  It\'s boring.  And the ads interfere with the interface.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667703">\
	 <div id="dsq-comment-header-14667703" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667703" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667703" href="http://summation.typepad.com/" target="_blank" rel="nofollow">Auren Hoffman</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667703" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667703" class="dsq-comment-message">These are awesome comments.   My mom read this and called me to make fun of me.   she was laughing for hours ... just like old times.   <br><br>a couple of comments:<br><br>1. I would like to offer my sincere apologies to the people of Kazakhstan.   Kazaks are wonderfully fun-loving people who are very peaceful (and sit on a lot of oil).  And Borat comes from there.<br><br>2. I hate Evite.   sorry.   i just hate them.    I also hate Windows Explorer.   and i hate olives too.   i just don\'t like olives ... i\'m not apologizing for that.    (see my upcoming rant on VegatableBeat).<br><br>3. i don\'t hate Evite because i invested on Socializr.   i investor in Socializr because i hate Evite.   and yes, i actually prominently disclosed that i am an investor.   and it was at the bottom of the piece.   but you all got there and read it.<br><br>4. i still hate olives.   you haven\'t convinced me about that yet.   and i am invested in pickles hoping for the demise of all olives.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667704">\
	 <div id="dsq-comment-header-14667704" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667704" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667704" href="http://andrewbfife.blogspot.com/" target="_blank" rel="nofollow">Andrew Fife</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667704" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667704" class="dsq-comment-message">Auren:<br>lets talk, I\'ve got a great new pickle 2.0 startup.<br>-Andrew</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667705">\
	 <div id="dsq-comment-header-14667705" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667705" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667705">pireland</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667705" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667705" class="dsq-comment-message">Thanks EVBART for pointing out the other great alternatives to eVite.  This author has no reason to claim there are no alternatives.<br><br>I do not understand how getting too many eVites makes the system bad.  Are you suggesting this new service you are promoting will filter things out for you?<br><br>These days I just send invites to people through Google\'s invite system that is hooked to its calendar.  Much simplier than creating a completely seperate page and its easier for all my other google-infected friends.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667706">\
	 <div id="dsq-comment-header-14667706" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667706" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667706">ThisisGarbage</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667706" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667706" class="dsq-comment-message">Aurens a pretty funny guy - wonder how funny he\'ll be when his investment goes belly up. At least he\'ll have a lot of sarcastic, nerdy jokes to make about it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667707">\
	 <div id="dsq-comment-header-14667707" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667707" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667707" href="http://www.mathewingram.com/work" target="_blank" rel="nofollow">Mathew Ingram</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667707" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667707" class="dsq-comment-message">Auren, I think it\'s stretching things a bit to say you "prominently" disclosed your relationship, when it\'s in the second-last paragraph and is in parentheses. In J-school, that\'s called "burying the lede."</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667709">\
	 <div id="dsq-comment-header-14667709" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667709" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667709" href="http://www.itsrishi.com/" target="_blank" rel="nofollow">Rishi Khaitan</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667709" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667709" class="dsq-comment-message">This post is not only horribly skewed in favor of the author\'s own interests, but also provides misleading information.  While desperately looking for something bad to say about Evite, Auren first cites Alexa\'s rating of Evite as "Slow".  However, nearly every popular site on the net as either a "Slow" or "Very Slow" rating on Alexa.  eBay, Amazon, etc.  Of course, Auren\'s own RapLeaf is "Very Fast" but it\'s pretty easy to keep your response times lightning fast when you have no server load.  Moreover, MySpace is notorious for being woefully slow but it\'s rampant growth further proves that users are accepting of slow pageloads if the service is valuable to them.<br><br>I\'m not suggesting that Evite is the holy grail of event systems but it is popular for a reason and the features Auren suggested - if users really want it - could be implemented by Evite in a week.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667710">\
	 <div id="dsq-comment-header-14667710" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667710" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667710" href="http://vsodera.blogspot.com/2006/09/people-seriously-need-to-calm-f.html" target="_blank" rel="nofollow">Vivek Sodera</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667710" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667710" class="dsq-comment-message">Auren - Amazing job with all the controvery you stirred up.  You got 34 comments with this one vs. 5 on your last op-ed.  As a super-optimistic entrepreneur, I project 239,348 comments on your next piece.<br><br>Seriously though - I just think people need to relax a little, take a step back, and laugh at your op-ed piece.  And then slap themselves for getting all riled up.<br><br>By the way, I hate olives too.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667711">\
	 <div id="dsq-comment-header-14667711" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667711" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667711">Stu Rampage</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667711" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667711" class="dsq-comment-message">Auren Hoffman is a self-promoting douche-bag.  "Investor" in Socializr?  Do they accept roles of quarters/pennies?  Who writes this guy\'s bio?  <br><br>Let me reiterate: DOUCHE-BAG.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667712">\
	 <div id="dsq-comment-header-14667712" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667712" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667712" href="http://andrewbfife.blogspot.com/" target="_blank" rel="nofollow">Andrew Fife</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667712" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667712" class="dsq-comment-message">Stu:<br>come on man, your comments are totally uncalled for.  As much as I disaprove of this post, Auren doesn\'t deserve that kind of mud slinging.  Furthermore, if I were currently working on a startup I would want my investors doing anything they could to get me publicity.  I don\'t like the fact that this was posted on VentureBeat, but it was smart on Auren\'s part and has probably driven a lot of traffic to Socializr.<br>-Andrew</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667713">\
	 <div id="dsq-comment-header-14667713" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667713" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667713" href="http://500hats.typepad.com/" target="_blank" rel="nofollow">Dave McClure</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667713" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667713" class="dsq-comment-message">i trust Auren\'s opinion &amp; perspective on eVite, however the disclaimer that he\'s an investor in Socializr should go right at the top.  <br><br>(makes a big difference whether that information is available to readers *before* the endorsement vs after)<br><br>note: there are also several other evite competitor sites with products in alpha or beta. while i agree with Auren that eVite hasn\'t been innovating much, i don\'t think Socializr will be the only available option.  <br><br>- dave mcclure</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667714">\
	 <div id="dsq-comment-header-14667714" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667714" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667714" href="http://ben.casnocha.com/" target="_blank" rel="nofollow">Ben Casnocha</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667714" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667714" class="dsq-comment-message">Hilarious.<br><br>I think evite must have hired people to leave comments on this post....</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667715">\
	 <div id="dsq-comment-header-14667715" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667715" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667715">SFGary</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667715" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667715" class="dsq-comment-message">Matt, Matt, Matt....please delete this guest post and we\'ll forget it ever happened. The most charitable thing I can say is that he at least admitted that he was an invester in...what was that company again? Can one be tough on a free service? Even if the answer is yes, this was way over the top.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667716">\
	 <div id="dsq-comment-header-14667716" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667716" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667716" href="http://www.venturebeat.com/" target="_blank" rel="nofollow">Matt Marshall</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667716" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667716" class="dsq-comment-message">Ok, I\'m going to consider changing the title of this column, to OP-ED, for one. But I\'m hearing you guys, that there wasn\'t enough disclosure on this at the outset. I\'m fixing the the editor\'s note at the top.<br><br>To be clear: I have no financial or business relationship with Auren whatsoever. I\'m ready to run any contributors item that comes in well-written, and helps to spark debate -- and that includes one from Evite.<br><br>Note that we\'ve just run an opinion piece from Joyce Park, who works for a competitor to Socializr.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667717">\
	 <div id="dsq-comment-header-14667717" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667717" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667717">somaking</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667717" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667717" class="dsq-comment-message">Got here from <a href="http://techmeme.com" rel="nofollow">techmeme.com</a>.  Reading the article to the end made me feel played like a con victim.  <br><br>Shameless self-promotion does not make interesting or informative content.  It\'s gratuitous and repulsive. <br><br>Treat your readers better.  And Auren, don\'t quit your day job, cause you suck at op-eds.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667718">\
	 <div id="dsq-comment-header-14667718" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667718" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667718" href="http://joeduck.wordpress.com/" target="_blank" rel="nofollow">Joseph Hunkins</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667718" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667718" class="dsq-comment-message">I\'m with the others in feeling it\'s inappropriate to have an investor in the competition featured as the rant of the day.   Comments may be true but credibility gap is simply too high.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667719">\
	 <div id="dsq-comment-header-14667719" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667719" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667719" href="http://www.mathewingram.com/work" target="_blank" rel="nofollow">Mathew Ingram</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667719" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667719" class="dsq-comment-message">Glad you made the change, Matt.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667720">\
	 <div id="dsq-comment-header-14667720" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667720" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667720">MadRapper</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667720" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667720" class="dsq-comment-message">Did anybody notice this line:<br><br>"I was floored, impressed, and just blown-away. Now I just get bored, stressed, and have grown astray."<br><br>That\'s a pretty clever rhyme...talented.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667722">\
	 <div id="dsq-comment-header-14667722" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667722" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667722" href="http://hitchhiker.blogsome.com/" target="_blank" rel="nofollow">will</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667722" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667722" class="dsq-comment-message">disclosure is the only issue here, his opinion is his investment thesis . .  any entrepreneur should have the gusto to do this, but any journalist should have the foresight to not allow this op-ed. <br><br>Lastly anyone notice the side swipe at eBay? which is also self motivated?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667723">\
	 <div id="dsq-comment-header-14667723" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667723" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667723" href="http://www.jwalkerlive.com/" target="_blank" rel="nofollow">John Walker</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667723" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667723" class="dsq-comment-message">Ok, so I bit and took a look at <a href="http://Socializr.com" rel="nofollow">Socializr.com</a>. About 5 seconds in they lost my attention. No screen-shots, no demo, no real compelling information. The UI is horrible...looks like something I built in 2001. <br><br>Cute verbiage here and there about being founded in 1848 during the California Gold Rush, but not very much Web 2.0 going on there.<br><br>Maybe their hiding all the good stuff behind the Login curtain, but I would never know. I\'m not giving up my creds just to have a look-see.<br><br>PS: Always disclose your personal interests in a clear or pronounced way at the top or bottom of your piece. Otherwise, in the blogosphere, you\'ll get slammed like this.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667724">\
	 <div id="dsq-comment-header-14667724" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667724" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667724" href="http://www.resqteknowledgies.com/bblog" target="_blank" rel="nofollow">Nancy</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667724" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667724" class="dsq-comment-message">As long as I can import my past evites into a BETTER solution, I\'m all for it. Hey! Maybe I should write one! What a great idea!!! /cheer</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667725">\
	 <div id="dsq-comment-header-14667725" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667725" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667725" href="http://www.bivingsreport.com/" target="_blank" rel="nofollow">Todd Zeigler</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667725" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667725" class="dsq-comment-message">I agree that the load times are slow and the site is dated.  It\'s not a good user experience.<br><br>But that\'s not really it for me.  For me I hate it because Evite is about the organizer and not about the guests.  I have no problem with people using Evite for formal events where you need a head count.  But it seems to me that a lot of Type A personalities use the service to force structure on social interactions that don\'t need or require it.  It is overused.  It makes me RSVP to a happy hour like I would to board meeting.  It\'s just too top down for my tastes.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667727">\
	 <div id="dsq-comment-header-14667727" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667727" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667727">Jackie</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667727" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667727" class="dsq-comment-message">I hope he paid for that ad space.  I love Evite and because of this blatant bashing I will NEVER EVER use Socializr.  I think Auren should stick to business because he clearly lacks any journalistic integrity.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667728">\
	 <div id="dsq-comment-header-14667728" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667728" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667728" href="http://www.xebec2.com/" target="_blank" rel="nofollow">Nita Fautier</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667728" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667728" class="dsq-comment-message">Did not realize that investors are not allowed to have strong opinions. The responses seem very hostile and not taclking the issues like Auren brought up with Evite, rather slamming him and his opinions. Not sure blogs have to have same journalistic rules as newspapers. Blogs were designed to have free information flow without editorial interference. If you all need edited content wall street journal is still in business ;-))</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667729">\
	 <div id="dsq-comment-header-14667729" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667729" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667729">Kris</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667729" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667729" class="dsq-comment-message">The Evite website went DOWN today, a Friday, at 2 p.m. and is still down hours later  And I have a fundraiser tomorrow!  ARRHHHGGG.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667730">\
	 <div id="dsq-comment-header-14667730" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667730" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667730" href="http://www.nitibhan.com/" target="_blank" rel="nofollow">niti bhan</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667730" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667730" class="dsq-comment-message">Evite, doesn\'t that mean "Avoid" in Spanish? I wonder who named it?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667731">\
	 <div id="dsq-comment-header-14667731" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667731" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667731" href="http://www.WildApricot.com/" target="_blank" rel="nofollow">Chief Apricot</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667731" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667731" class="dsq-comment-message">It does not look like Auren has done his research. There are dozens of event management and event registration websites out there. And they are getting better and better. <br>EventBrite (formerly MollyGuard) is a a very decent generic service and our own product Wild Apricot (<a href="http://WildApricot.com" rel="nofollow">WildApricot.com</a>) is an example of a vertically focused one (we handle event registrations as one of the aspects of non-profit and grassroot groups management).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667732">\
	 <div id="dsq-comment-header-14667732" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667732" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667732">Denali</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667732" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667732" class="dsq-comment-message">Socialzr sucks. Even from the layout, you can tell it badly wants to be myspace. lol. Go Joyce, go Renkoo!!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667734">\
	 <div id="dsq-comment-header-14667734" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667734" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667734" href="http://www.inviteforgood.com/" target="_blank" rel="nofollow">PG</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667734" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667734" class="dsq-comment-message">Here is a new kid on the block, with some nice intend. It allows to link social events to non-profit organizations.<br><a href="http://www.inviteforgood.com" rel="nofollow">www.inviteforgood.com</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667735">\
	 <div id="dsq-comment-header-14667735" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667735" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667735" href="http://PxuQDB8IJp.com/" target="_blank" rel="nofollow">PxuQDB8IJp</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667735" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667735" class="dsq-comment-message">Hi! Very nice site! Thanks you very much! lDt9uJ4Qgm</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667736">\
	 <div id="dsq-comment-header-14667736" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667736" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667736" href="http://www.mypunchbowl.com/" target="_blank" rel="nofollow">Matt</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667736" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667736" class="dsq-comment-message">In case you missed it:<br><br><a href="http://venturebeat.com/2007/01/15/mypunchbowl-joins-growing-list-of-evite-rivals/" rel="nofollow">http://venturebeat.com/2007/01/15/mypunchbowl-j...</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667737">\
	 <div id="dsq-comment-header-14667737" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667737" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667737" href="http://cicxyetf.com/" target="_blank" rel="nofollow">vmlumthbya</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667737" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667737" class="dsq-comment-message"><a href="http://iivxnbtxro.com" rel="nofollow">marsnt</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667738">\
	 <div id="dsq-comment-header-14667738" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667738" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667738" href="http://www.marshawj.org/toscana" target="_blank" rel="nofollow">toscana</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667738" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667738" class="dsq-comment-message">E grande io ha trovato il vostro luogo! Le info importanti ottenute! ))</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667740">\
	 <div id="dsq-comment-header-14667740" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667740" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667740" href="http://vkhhsfzj.com/" target="_blank" rel="nofollow">Kazelvhn</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667740" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667740" class="dsq-comment-message">azvd! <a href="http://qpjclxsx.com" rel="nofollow">http://qpjclxsx.com</a> qrwng oyrrx <a href="http://nkeaqvks.com" rel="nofollow">http://nkeaqvks.com</a> fmwlb kfqns</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667741">\
	 <div id="dsq-comment-header-14667741" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667741" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667741" href="http://dvvzcklq.com/" target="_blank" rel="nofollow">Kazeldhf</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667741" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667741" class="dsq-comment-message">Hi webmaster!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667743">\
	 <div id="dsq-comment-header-14667743" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667743" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14667743" href="http://www.bradvite.com/" target="_blank" rel="nofollow">Brad Tayan</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667743" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667743" class="dsq-comment-message">I have a feeling there will be a lot of competing sites launched in the next few years, as the technology progresses. I just launched my own site:<br><br><a href="http://www.bradvite.com" rel="nofollow">http://www.bradvite.com</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14667744">\
	 <div id="dsq-comment-header-14667744" class="dsq-comment-header">\
	 <cite id="dsq-cite-14667744" class="dsq-comment-cite">\
	 <span id="dsq-author-user-14667744">John D</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14667744" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14667744" class="dsq-comment-message">Nothing beats the simplicity of <a href="http://yarp.com" rel="nofollow">http://yarp.com</a><br><br>It gets the job done in a very small fraction of the time.  Send invites in seconds and have responses in minutes.  No logins, no email harvesting, no maybes.</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=venturebeat&t=why_i_hate_evite&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 = '547225e2dda46ccfdec279a9a44a0074';
			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');
}

})();




