




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": "No more direct tweet :P\nhttp://scobleizer.com/2008/12/06/10-reasons-why-twitter-direct-messages-suck-and-so-do-facebooks/", "author_name": "Maiwagun", "source_url": "http://www.ubervu.com/conversations/scobleizer.com/2008/12/06/10-reasons-why-twitter-direct-messages-suck-and-so-do-facebooks/", "id": 15713855, "get_service_url": "http://twitter.com/", "title": "No more direct tweet :P\nhttp://scobleizer.com/2008/12/06/10-reasons-why-twitter-direct-messages-suck-and-so-do-facebooks/", "url": "http://twitter.com/Maiwagun/status/5788367616", "source": "ubervu", "get_service_name": "twitter", "avatar_url": "http://s.twimg.com/a/1258420634/images/default_profile_0_normal.png", "author_url": "", "date_created": "1 month ago", "retweets": []}, {"body": "@mcallan sobre el tema de DMs http://bit.ly/LFetL", "author_name": "maitrella", "source_url": "http://www.ubervu.com/conversations/scobleizer.com/2008/12/06/10-reasons-why-twitter-direct-messages-suck-and-so-do-facebooks/", "id": 15713853, "get_service_url": "http://twitter.com/", "title": "@mcallan sobre el tema de DMs http://bit.ly/LFetL", "url": "http://twitter.com/maitrella/status/4911422130", "source": "ubervu", "get_service_name": "twitter", "avatar_url": "http://a1.twimg.com/profile_images/439531428/q562209709_1238_normal.jpg", "author_url": "", "date_created": "2 months ago", "retweets": []}, {"body": "RT @Oberhauser: 10 reasons why #Twitter #Direct #Messages suck (and so do Facebook\u2019s) [blogpost] &gt; http://htxt.it/s6GP oh Yes!!!!", "author_name": "wernerauswien", "source_url": "http://www.ubervu.com/conversations/scobleizer.com/2008/12/06/10-reasons-why-twitter-direct-messages-suck-and-so-do-facebooks/", "id": 15713852, "get_service_url": "http://twitter.com/", "title": "RT @Oberhauser: 10 reasons why #Twitter #Direct #Messages suck (and so do Facebook\u2019s) [blogpost] &gt; http://htxt.it/s6GP oh Yes!!!!", "url": "http://twitter.com/wernerauswien/status/4452432613", "source": "ubervu", "get_service_name": "twitter", "avatar_url": "http://a3.twimg.com/profile_images/436308839/DSC_0994_3_normal.JPG", "author_url": "", "date_created": "2 months ago", "retweets": []}, {"body": "10 reasons why #Twitter #Direct #Messages suck (and so do Facebook\u2019s) [blogpost] &gt; http://htxt.it/s6GP via @notsecretscoble", "author_name": "Oberhauser", "source_url": "http://www.ubervu.com/conversations/scobleizer.com/2008/12/06/10-reasons-why-twitter-direct-messages-suck-and-so-do-facebooks/", "id": 15713851, "get_service_url": "http://twitter.com/", "title": "10 reasons why #Twitter #Direct #Messages suck (and so do Facebook\u2019s) [blogpost] &gt; http://htxt.it/s6GP via @notsecretscoble", "url": "http://twitter.com/Oberhauser/status/4452131649", "source": "ubervu", "get_service_name": "twitter", "avatar_url": "http://a3.twimg.com/profile_images/82642455/Ortwin_Oberhauser_normal.jpg", "author_url": "", "date_created": "2 months ago", "retweets": []}, {"body": "@R_oH http://bit.ly/LFetL\n Read point no.7 :)", "author_name": "adevilsmouth", "source_url": "http://www.ubervu.com/conversations/scobleizer.com/2008/12/06/10-reasons-why-twitter-direct-messages-suck-and-so-do-facebooks/", "id": 15713854, "get_service_url": "http://twitter.com/", "title": "@R_oH http://bit.ly/LFetL\n Read point no.7 :)", "url": "http://twitter.com/adevilsmouth/status/3631568860", "source": "ubervu", "get_service_name": "twitter", "avatar_url": "http://a1.twimg.com/profile_images/298658112/profil_normal.jpg", "author_url": "", "date_created": "3 months ago", "retweets": []}, {"body": "http://bit.ly/eWxGE 10 reasons why Twitter Direct Messages suck (and so do Facebook's) http://ff.im/-69VW7", "author_name": "kingkevin34", "source_url": "http://www.backtype.com/search?q=http%3A//scobleizer.com/2008/12/06/10-reasons-why-twitter-direct-messages-suck-and-so-do-facebooks/", "id": 2589326, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/kingkevin34/statuses/3127072832", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://s3.amazonaws.com/twitter_production/profile_images/203107302/walters_normal.jpg", "author_url": "", "date_created": "4 months ago", "retweets": [{"url": "http://twitter.com/kingkevin34/status/3127072832", "author_name": "kingkevin34"}]}, {"body": "10 reasons why Twitter Direct Messages suck (and so do Facebook?s): Sin Descripci\u00f3n http://bit.ly/fJgfW", "author_name": "twittes1", "source_url": "http://www.backtype.com/search?q=http%3A//scobleizer.com/2008/12/06/10-reasons-why-twitter-direct-messages-suck-and-so-do-facebooks/", "id": 2589327, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/twittes1/statuses/2871821752", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://static.twitter.com/images/default_profile_normal.png", "author_url": "", "date_created": "4 months ago", "retweets": [{"url": "http://twitter.com/twittes/status/2872042458", "author_name": "twittes"}, {"url": "http://twitter.com/twittes1/status/2871821752", "author_name": "twittes1"}]}], "has_more_reactions": true, "users": {"dariosalvelli": {"username": "dariosalvelli", "tumblr": "", "display_name": "Dario Salvelli", "url": "http://disqus.com/dariosalvelli/", "registered": true, "linkedin": "", "blog": "http://www.dariosalvelli.com", "remote_domain": null, "points": 1, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "1d4599402c773de3f13e7c25a119e224": {"username": "chupchap", "tumblr": "", "display_name": "chupchap", "url": "http://disqus.com/guest/1d4599402c773de3f13e7c25a119e224/", "registered": false, "linkedin": "", "blog": "http://chupchap.twitter.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/69/1510/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "7a6efd03c263ab881e970d27e4375626": {"username": "Phil", "tumblr": "", "display_name": "Phil", "url": "http://disqus.com/guest/7a6efd03c263ab881e970d27e4375626/", "registered": false, "linkedin": "", "blog": "http://www.usetrackthis.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": ""}, "c18f2f3ec727560edb8fade8cdaf6edc": {"username": "Joshua Needham", "tumblr": "", "display_name": "Joshua Needham", "url": "http://disqus.com/guest/c18f2f3ec727560edb8fade8cdaf6edc/", "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": ""}, "39c812c3a4c91af718ca68bf5e3eb258": {"username": "Adam", "tumblr": "", "display_name": "Adam", "url": "http://disqus.com/guest/39c812c3a4c91af718ca68bf5e3eb258/", "registered": false, "linkedin": "", "blog": "http://www.chernow.org/blog", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/11081/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "9b646ff3eeda1f01cc2b1cb86d1634f9": {"username": "paul", "tumblr": "", "display_name": "paul", "url": "http://disqus.com/guest/9b646ff3eeda1f01cc2b1cb86d1634f9/", "registered": false, "linkedin": "", "blog": "http://neuronspark.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": ""}, "704eb78a1937b2a8920957c2c2df413d": {"username": "Jay Cuthrell", "tumblr": "", "display_name": "Jay Cuthrell", "url": "http://disqus.com/guest/704eb78a1937b2a8920957c2c2df413d/", "registered": false, "linkedin": "", "blog": "http://fudge.org/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/121/8698/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "497e0139925ec016b5a51d84ceb01ac2": {"username": "hansveld", "tumblr": "", "display_name": "hansveld", "url": "http://disqus.com/guest/497e0139925ec016b5a51d84ceb01ac2/", "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": ""}, "a7b795680bb13e98873eb6364c6e3c59": {"username": "Danny Gabriner", "tumblr": "", "display_name": "Danny Gabriner", "url": "http://disqus.com/guest/a7b795680bb13e98873eb6364c6e3c59/", "registered": false, "linkedin": "", "blog": "http://twitter.com/dgabriner", "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": ""}, "48fa57c6794e3f8287e1e0c3d4d166dc": {"username": "Christopher Wellbelove", "tumblr": "", "display_name": "Christopher Wellbelove", "url": "http://disqus.com/guest/48fa57c6794e3f8287e1e0c3d4d166dc/", "registered": false, "linkedin": "", "blog": "http://www.wellbelove.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": ""}, "e8c1a6f3a9d0d3c80583d543bc5a82c8": {"username": "Vidar Andersen", "tumblr": "", "display_name": "Vidar Andersen", "url": "http://disqus.com/guest/e8c1a6f3a9d0d3c80583d543bc5a82c8/", "registered": false, "linkedin": "", "blog": "http://stopmebeforeiblogagain.com/a-cam-dii-world-premiere/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/2890/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "1793c5f254549333d738bb4ff4e6edd6": {"username": "Rafael Marquez", "tumblr": "", "display_name": "Rafael Marquez", "url": "http://disqus.com/guest/1793c5f254549333d738bb4ff4e6edd6/", "registered": false, "linkedin": "", "blog": "http://www.bigsexymedia.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/85/3127/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "0871275d07dd10b7a844e4b67783f26d": {"username": "Sarah", "tumblr": "", "display_name": "Sarah", "url": "http://disqus.com/guest/0871275d07dd10b7a844e4b67783f26d/", "registered": false, "linkedin": "", "blog": "http://velvet.id.au/", "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": ""}, "4b599d91a870989c4bb6fbefcdaa8515": {"username": "Scott Beale", "tumblr": "", "display_name": "Scott Beale", "url": "http://disqus.com/guest/4b599d91a870989c4bb6fbefcdaa8515/", "registered": false, "linkedin": "", "blog": "http://laughingsquid.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/28/653/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "5e6a29d1032b4394ce51e13f438cb320": {"username": "Colin", "tumblr": "", "display_name": "Colin", "url": "http://disqus.com/guest/5e6a29d1032b4394ce51e13f438cb320/", "registered": false, "linkedin": "", "blog": "http://catcubed.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": ""}, "6d3224b38ad74abf424fb4cabbebc221": {"username": "Jason", "tumblr": "", "display_name": "Jason", "url": "http://disqus.com/guest/6d3224b38ad74abf424fb4cabbebc221/", "registered": false, "linkedin": "", "blog": "http://techlang.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": ""}, "6841d809b20403acf6a979420fd5a896": {"username": "Bwana", "tumblr": "", "display_name": "Bwana", "url": "http://disqus.com/guest/6841d809b20403acf6a979420fd5a896/", "registered": false, "linkedin": "", "blog": "http://bwana.org/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/62/758/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "e57d6c9d2ecb55676401413bbc466c9e": {"username": "David Griggs", "tumblr": "", "display_name": "David Griggs", "url": "http://disqus.com/guest/e57d6c9d2ecb55676401413bbc466c9e/", "registered": false, "linkedin": "", "blog": "http://gaiafilm.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": ""}, "3f6a09b24bf99fd8a87d602bf36bdf42": {"username": "catepol", "tumblr": "", "display_name": "catepol", "url": "http://disqus.com/guest/3f6a09b24bf99fd8a87d602bf36bdf42/", "registered": false, "linkedin": "", "blog": "http://www.catepol.net/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "f3bb4111ccd787b525054e52194a76c2": {"username": "voice of reason", "tumblr": "", "display_name": "voice of reason", "url": "http://disqus.com/guest/f3bb4111ccd787b525054e52194a76c2/", "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": ""}, "spleeness": {"username": "spleeness", "tumblr": "", "display_name": "spleeness", "url": "http://disqus.com/spleeness/", "registered": true, "linkedin": "", "blog": "http://www.spleeness.com", "remote_domain": null, "points": 1, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "b1803dda73b757e3ad6fb4417accf795": {"username": "Max", "tumblr": "", "display_name": "Max", "url": "http://disqus.com/guest/b1803dda73b757e3ad6fb4417accf795/", "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": ""}, "78dc0621fc539ade0c0e72bb7e739543": {"username": "Leandro Cianconi", "tumblr": "", "display_name": "Leandro Cianconi", "url": "http://disqus.com/guest/78dc0621fc539ade0c0e72bb7e739543/", "registered": false, "linkedin": "", "blog": "http://cianconi.com/leandro", "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": ""}, "f7e0c085c9a9932c2d530219f9129f9f": {"username": "phefland", "tumblr": "", "display_name": "phefland", "url": "http://disqus.com/guest/f7e0c085c9a9932c2d530219f9129f9f/", "registered": false, "linkedin": "", "blog": "http://backtype.com/phefland", "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": ""}, "personxx": {"username": "personxx", "tumblr": "", "display_name": "personxx", "url": "http://disqus.com/personxx/", "registered": true, "linkedin": "", "blog": "", "remote_domain": null, "points": 1, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "cda4dec9349476012a9ebdd2f2f36e89": {"username": "Tim Windsor", "tumblr": "", "display_name": "Tim Windsor", "url": "http://disqus.com/guest/cda4dec9349476012a9ebdd2f2f36e89/", "registered": false, "linkedin": "", "blog": "http://timwindsor.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/112/6662/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "ea5ae47db54d1993df4f63a3abc2d2eb": {"username": "Nicole Simon", "tumblr": "", "display_name": "Nicole Simon", "url": "http://disqus.com/guest/ea5ae47db54d1993df4f63a3abc2d2eb/", "registered": false, "linkedin": "", "blog": "http://crueltobekind.org/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/22/9523/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "af8f5c2191526bdc38370c24d37a9f15": {"username": "Chris Bird", "tumblr": "", "display_name": "Chris Bird", "url": "http://disqus.com/guest/af8f5c2191526bdc38370c24d37a9f15/", "registered": false, "linkedin": "", "blog": "http://seabirdskitchen.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": ""}, "4b894ec0e466f15ffc81f1edcf7022ef": {"username": "LEADSExplorer", "tumblr": "", "display_name": "LEADSExplorer", "url": "http://disqus.com/guest/4b894ec0e466f15ffc81f1edcf7022ef/", "registered": false, "linkedin": "", "blog": "http://www.leadsexplorer.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": ""}, "robblatt": {"username": "robblatt", "tumblr": "", "display_name": "Rob Blatt", "url": "http://disqus.com/robblatt/", "registered": true, "linkedin": "", "blog": "http://robblatt.com", "remote_domain": null, "points": 6, "facebook": "http://www.facebook.com/profile.php?id=500084993", "avatar": "http://media.disqus.com/uploads/users/3/9661/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "http://twitter.com/robblatt", "remote_domain_name": ""}, "guiambros": {"username": "guiambros", "tumblr": "", "display_name": "guiambros", "url": "http://disqus.com/guiambros/", "registered": true, "linkedin": "in/guiambros", "blog": "http://www.twitter.com/guiambros", "remote_domain": null, "points": 2, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/13/6312/avatar92.jpg", "delicious": "gancho", "is_remote": false, "verified": true, "flickr": "guilhermeambros", "twitter": "", "remote_domain_name": ""}, "840d989be08dec812580418145ea2337": {"username": "adityavm", "tumblr": "", "display_name": "adityavm", "url": "http://disqus.com/guest/840d989be08dec812580418145ea2337/", "registered": false, "linkedin": "", "blog": "http://adityamukherjee.com/geekaholic", "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": ""}, "03d01267208a48aa5f4133fe64c47938": {"username": "Keke", "tumblr": "", "display_name": "Keke", "url": "http://disqus.com/guest/03d01267208a48aa5f4133fe64c47938/", "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": ""}, "2d42994a6bdda469fded683500b65a6c": {"username": "Jordan Frank", "tumblr": "", "display_name": "Jordan Frank", "url": "http://disqus.com/guest/2d42994a6bdda469fded683500b65a6c/", "registered": false, "linkedin": "", "blog": "http://www.tractionsoftware.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": ""}, "432dfea4bfe772bbee994a23b00bcc41": {"username": "Narayanan Hariharan", "tumblr": "", "display_name": "Narayanan Hariharan", "url": "http://disqus.com/guest/432dfea4bfe772bbee994a23b00bcc41/", "registered": false, "linkedin": "", "blog": "http://www.techspikes.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": ""}, "JamesGecko": {"username": "JamesGecko", "tumblr": "", "display_name": "JamesGecko", "url": "http://disqus.com/JamesGecko/", "registered": true, "linkedin": "", "blog": "http://frem.wordpress.com/", "remote_domain": null, "points": 5, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/33/3325/avatar92.jpg", "delicious": "frem", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "4eacee3eac6699a3050af074bc5d90ed": {"username": "Daniel W. Crompton", "tumblr": "", "display_name": "Daniel W. Crompton", "url": "http://disqus.com/guest/4eacee3eac6699a3050af074bc5d90ed/", "registered": false, "linkedin": "", "blog": "http://webhat.wordpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/124/339/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "895a112c66d93cefcd06d2cf371219e6": {"username": "Prolific Programmer", "tumblr": "", "display_name": "Prolific Programmer", "url": "http://disqus.com/guest/895a112c66d93cefcd06d2cf371219e6/", "registered": false, "linkedin": "", "blog": "http://blog.prolificprogrammer.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": ""}, "9d5d6abc8894300f88f82b2df42a5faf": {"username": "Jason Penney", "tumblr": "", "display_name": "Jason Penney", "url": "http://disqus.com/guest/9d5d6abc8894300f88f82b2df42a5faf/", "registered": false, "linkedin": "", "blog": "http://jasonpenney.net/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "542dbe5795ef81b93611d4d6dec57712": {"username": "Peter Clayton", "tumblr": "", "display_name": "Peter Clayton", "url": "http://disqus.com/guest/542dbe5795ef81b93611d4d6dec57712/", "registered": false, "linkedin": "", "blog": "http://www.totalpicture.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": ""}, "c423a5257d4760e92edd39f8a37f2a14": {"username": "Dan", "tumblr": "", "display_name": "Dan", "url": "http://disqus.com/guest/c423a5257d4760e92edd39f8a37f2a14/", "registered": false, "linkedin": "", "blog": "http://xark.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": ""}, "TimWalker": {"username": "TimWalker", "tumblr": "", "display_name": "TimWalker", "url": "http://disqus.com/TimWalker/", "registered": true, "linkedin": "", "blog": "http://www.hooversbiz.com/", "remote_domain": null, "points": 15, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/445/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "f34c252e5f1754933f6cf4aec00ba7e8": {"username": "BarbaraKB", "tumblr": "", "display_name": "BarbaraKB", "url": "http://disqus.com/guest/f34c252e5f1754933f6cf4aec00ba7e8/", "registered": false, "linkedin": "", "blog": "http://www.KolbeMarket.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/74/8388/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "49e91056734d356635059451bf89e058": {"username": "eolai", "tumblr": "", "display_name": "eolai", "url": "http://disqus.com/guest/49e91056734d356635059451bf89e058/", "registered": false, "linkedin": "", "blog": "http://irishkc.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": ""}, "fae51c726019cdd3ef7402567f7adc5d": {"username": "ezg", "tumblr": "", "display_name": "ezg", "url": "http://disqus.com/guest/fae51c726019cdd3ef7402567f7adc5d/", "registered": false, "linkedin": "", "blog": "http://www.webpadange.lt/", "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": ""}, "664983a1d77c6487d3df9a511c5db506": {"username": "Henrik", "tumblr": "", "display_name": "Henrik", "url": "http://disqus.com/guest/664983a1d77c6487d3df9a511c5db506/", "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": ""}, "e5d9595d82c63c71838c6b7ff838e311": {"username": "vishalmanohar", "tumblr": "", "display_name": "vishalmanohar", "url": "http://disqus.com/guest/e5d9595d82c63c71838c6b7ff838e311/", "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": ""}, "4f63f368261290a34e8a4f3aac6427c8": {"username": "Chris", "tumblr": "", "display_name": "Chris", "url": "http://disqus.com/guest/4f63f368261290a34e8a4f3aac6427c8/", "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": ""}, "wesny": {"username": "wesny", "tumblr": "", "display_name": "wesny", "url": "http://disqus.com/wesny/", "registered": true, "linkedin": "", "blog": "http://twitter.com/sweyn", "remote_domain": null, "points": 1, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/16/8676/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "d8bb4623895a9ba01a125d3d7800bead": {"username": "JoeDuck", "tumblr": "", "display_name": "JoeDuck", "url": "http://disqus.com/guest/d8bb4623895a9ba01a125d3d7800bead/", "registered": false, "linkedin": "", "blog": "http://joeduck.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": ""}, "d33c72800635bdc4004136ed30bf1f85": {"username": "Karrine McFarlane", "tumblr": "", "display_name": "Karrine McFarlane", "url": "http://disqus.com/guest/d33c72800635bdc4004136ed30bf1f85/", "registered": false, "linkedin": "", "blog": "http://www.her-media.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": ""}, "7f6291e8344b594235e57b843fc05d9b": {"username": "Christopher Coulter", "tumblr": "", "display_name": "Christopher Coulter", "url": "http://disqus.com/guest/7f6291e8344b594235e57b843fc05d9b/", "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": ""}, "56067fd82288b469538338d71f9d5664": {"username": "Mike Chapman", "tumblr": "", "display_name": "Mike Chapman", "url": "http://disqus.com/guest/56067fd82288b469538338d71f9d5664/", "registered": false, "linkedin": "", "blog": "http://www.fg2.com/clearspace/blogs/squared_root/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/26/3061/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "ff78564850120fd2c8203667622fea31": {"username": "Jonathan Munk", "tumblr": "", "display_name": "Jonathan Munk", "url": "http://disqus.com/guest/ff78564850120fd2c8203667622fea31/", "registered": false, "linkedin": "", "blog": "http://manizesto.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": ""}, "0510d88cc9c42fd729b2d61a173d9c44": {"username": "Brandon Paddock", "tumblr": "", "display_name": "Brandon Paddock", "url": "http://disqus.com/guest/0510d88cc9c42fd729b2d61a173d9c44/", "registered": false, "linkedin": "", "blog": "http://brandonlive.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": ""}, "eb8b1b6abee3c34899e489cd17f00ef6": {"username": "danica radovanovic", "tumblr": "", "display_name": "danica radovanovic", "url": "http://disqus.com/guest/eb8b1b6abee3c34899e489cd17f00ef6/", "registered": false, "linkedin": "", "blog": "http://danicar.org/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/71/1463/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "334e5fb03d742f9648bd3e78284b4aec": {"username": "Leslie Bradshaw", "tumblr": "", "display_name": "Leslie Bradshaw", "url": "http://disqus.com/guest/334e5fb03d742f9648bd3e78284b4aec/", "registered": false, "linkedin": "", "blog": "http://lesliebradshaw.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/85/7447/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "ptamaro": {"username": "ptamaro", "tumblr": "", "display_name": "ptamaro", "url": "http://disqus.com/ptamaro/", "registered": true, "linkedin": "", "blog": "http://blog.TamaroDesign.com", "remote_domain": null, "points": 2, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/71/3047/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3a5eb533ff881498e95d7ab4a5963c5d": {"username": "jbame", "tumblr": "", "display_name": "jbame", "url": "http://disqus.com/guest/3a5eb533ff881498e95d7ab4a5963c5d/", "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": ""}, "lindsaydavies": {"username": "lindsaydavies", "tumblr": "", "display_name": "Lindsay Davies", "url": "http://disqus.com/lindsaydavies/", "registered": true, "linkedin": "", "blog": "http://www.twitter.com/lindsaydavies", "remote_domain": null, "points": 1, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/19/4888/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "http://twitter.com/lindsaydavies", "remote_domain_name": ""}, "a1ccc04389321ff1c6a82093c0616d3e": {"username": "Joe Phrackr", "tumblr": "", "display_name": "Joe Phrackr", "url": "http://disqus.com/guest/a1ccc04389321ff1c6a82093c0616d3e/", "registered": false, "linkedin": "", "blog": "http://phrackr.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": ""}, "f5a7f0eb245b77db8517a7f218a854a6": {"username": "ablackanimal", "tumblr": "", "display_name": "ablackanimal", "url": "http://disqus.com/guest/f5a7f0eb245b77db8517a7f218a854a6/", "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": ""}, "b84daa7b704c9ea052838263bd54967f": {"username": "Jannifer Stoddard", "tumblr": "", "display_name": "Jannifer Stoddard", "url": "http://disqus.com/guest/b84daa7b704c9ea052838263bd54967f/", "registered": false, "linkedin": "", "blog": "http://jes.uppercaseliving.net/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "581bf5230c9ab2de43bd595736277ac4": {"username": "Sumaiya", "tumblr": "", "display_name": "Sumaiya", "url": "http://disqus.com/guest/581bf5230c9ab2de43bd595736277ac4/", "registered": false, "linkedin": "", "blog": "http://www.gadgetwatcher.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": ""}, "832b0ed59528bcf2e1f11cb76cac7726": {"username": "artbyskym", "tumblr": "", "display_name": "artbyskym", "url": "http://disqus.com/guest/832b0ed59528bcf2e1f11cb76cac7726/", "registered": false, "linkedin": "", "blog": "http://popculturemama.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": ""}, "ariherzog": {"username": "ariherzog", "tumblr": "", "display_name": "Ari Herzog", "url": "http://disqus.com/ariherzog/", "registered": true, "linkedin": "in/ariherzog", "blog": "http://ariherzog.com", "remote_domain": null, "points": 21, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/30722/avatar92.jpg", "delicious": "ariherzog", "is_remote": false, "verified": true, "flickr": "", "twitter": "http://twitter.com/ariherzog", "remote_domain_name": ""}, "8b1b62f637a5b8cad8afa97c9b51ab02": {"username": "Alan Wolk", "tumblr": "", "display_name": "Alan Wolk", "url": "http://disqus.com/guest/8b1b62f637a5b8cad8afa97c9b51ab02/", "registered": false, "linkedin": "", "blog": "http://www.toadstoolblog.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": ""}, "46233777e47bc70748ef05403214757c": {"username": "Elana Centor", "tumblr": "", "display_name": "Elana Centor", "url": "http://disqus.com/guest/46233777e47bc70748ef05403214757c/", "registered": false, "linkedin": "", "blog": "http://funnybusiness.typepad.com/funnybusiness/2008/09/new-way-to-get.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": ""}, "31f4f5cb71807adafe67576507c18178": {"username": "Guillaume Foutry", "tumblr": "", "display_name": "Guillaume Foutry", "url": "http://disqus.com/guest/31f4f5cb71807adafe67576507c18178/", "registered": false, "linkedin": "", "blog": "http://ecotourismleavingfootprints.blogspot.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/82/3308/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "robdiana": {"username": "robdiana", "tumblr": "", "display_name": "robdiana", "url": "http://disqus.com/robdiana/", "registered": true, "linkedin": "", "blog": "http://regulargeek.com/", "remote_domain": null, "points": 11, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/22839/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "5ed823fb98d2ffc802b7f5788b43c581": {"username": "Soultravelers3", "tumblr": "", "display_name": "Soultravelers3", "url": "http://disqus.com/guest/5ed823fb98d2ffc802b7f5788b43c581/", "registered": false, "linkedin": "", "blog": "http://www.soultravelers3.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": ""}, "8ef5aeebab0e46ab9eb3cbd052a1efe0": {"username": "Internet Strategist", "tumblr": "", "display_name": "Internet Strategist", "url": "http://disqus.com/guest/8ef5aeebab0e46ab9eb3cbd052a1efe0/", "registered": false, "linkedin": "", "blog": "http://www.growmap.com/how-to-contact-twitter-users-who-are-not-already-following-you/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/111/2418/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "facebook-1415477035": {"username": "facebook-1415477035", "tumblr": "", "display_name": "Alaa Ali", "url": "http://disqus.com/facebook-1415477035/", "registered": true, "linkedin": "", "blog": "http://www.facebook.com/people/Alaa-Ali/1415477035", "remote_domain": 1, "points": 1, "facebook": "http://www.facebook.com/people/Alaa-Ali/1415477035", "avatar": "http://media.disqus.com/uploads/users/59/4620/avatar92.jpg", "delicious": "", "is_remote": true, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": "Facebook"}, "fb0e68261e6e5d60e3c7e2b1b07bd884": {"username": "Erich", "tumblr": "", "display_name": "Erich", "url": "http://disqus.com/guest/fb0e68261e6e5d60e3c7e2b1b07bd884/", "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": ""}, "51a0313201d038e5930a297e60fcfb9b": {"username": "Mark", "tumblr": "", "display_name": "Mark", "url": "http://disqus.com/guest/51a0313201d038e5930a297e60fcfb9b/", "registered": false, "linkedin": "", "blog": "http://keenpath.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": ""}, "chrisbaskind": {"username": "chrisbaskind", "tumblr": "", "display_name": "Chris Baskind", "url": "http://disqus.com/chrisbaskind/", "registered": true, "linkedin": "", "blog": "http://ChrisBaskind.com", "remote_domain": null, "points": 19, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/3/6914/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "chrisbaskind", "twitter": "", "remote_domain_name": ""}, "28d5225c6a797056d37f80f38ad7d491": {"username": "Sandeep Bali", "tumblr": "", "display_name": "Sandeep Bali", "url": "http://disqus.com/guest/28d5225c6a797056d37f80f38ad7d491/", "registered": false, "linkedin": "", "blog": "http://www.sandeepbali.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": ""}, "7060450b5911e07d6d4b13c873a570b0": {"username": "Jimmy Howe", "tumblr": "", "display_name": "Jimmy Howe", "url": "http://disqus.com/guest/7060450b5911e07d6d4b13c873a570b0/", "registered": false, "linkedin": "", "blog": "http://ni.desakota.net/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "9b004a313050e8caca059d46e6f36e31": {"username": "Micah Foster", "tumblr": "", "display_name": "Micah Foster", "url": "http://disqus.com/guest/9b004a313050e8caca059d46e6f36e31/", "registered": false, "linkedin": "", "blog": "http://micahanderica.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": ""}, "596763eaa84e72d368baf0f0b32c48ae": {"username": "chucklasker", "tumblr": "", "display_name": "chucklasker", "url": "http://disqus.com/guest/596763eaa84e72d368baf0f0b32c48ae/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/18/6796/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6612e0b610becc059d8dd0947c50059d": {"username": "iGoByDoc", "tumblr": "", "display_name": "iGoByDoc", "url": "http://disqus.com/guest/6612e0b610becc059d8dd0947c50059d/", "registered": false, "linkedin": "", "blog": "http://www.igobydoc.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": ""}, "d881753042a8bbff52ed4b78f1e7bec5": {"username": "Jesse Stay", "tumblr": "", "display_name": "Jesse Stay", "url": "http://disqus.com/guest/d881753042a8bbff52ed4b78f1e7bec5/", "registered": false, "linkedin": "", "blog": "http://staynalive.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/19/4201/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "fa5ba154a30485e10fd8467e65f2375a": {"username": "Nando", "tumblr": "", "display_name": "Nando", "url": "http://disqus.com/guest/fa5ba154a30485e10fd8467e65f2375a/", "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": ""}, "HollyJahangiri": {"username": "HollyJahangiri", "tumblr": "", "display_name": "Holly Jahangiri", "url": "http://disqus.com/HollyJahangiri/", "registered": true, "linkedin": "", "blog": "http://jahangiri.us/news", "remote_domain": null, "points": 38, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/27/9872/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "7a952254761c114056af5c42eed4e9aa": {"username": "Johnny", "tumblr": "", "display_name": "Johnny", "url": "http://disqus.com/guest/7a952254761c114056af5c42eed4e9aa/", "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": ""}, "8769593955325cf2f9b9ae9244a9fc24": {"username": "rick", "tumblr": "", "display_name": "rick", "url": "http://disqus.com/guest/8769593955325cf2f9b9ae9244a9fc24/", "registered": false, "linkedin": "", "blog": "http://twitter.com/rickmans", "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": ""}, "55a1fc68ce641a214490cb18a17dd7cd": {"username": "Laurie Ashton Farook", "tumblr": "", "display_name": "Laurie Ashton Farook", "url": "http://disqus.com/guest/55a1fc68ce641a214490cb18a17dd7cd/", "registered": false, "linkedin": "", "blog": "http://lmashton.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/190/7433/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "4fa589c51a45fc6eb36fdcbf28c3bc75": {"username": "Steve A Furman", "tumblr": "", "display_name": "Steve A Furman", "url": "http://disqus.com/guest/4fa589c51a45fc6eb36fdcbf28c3bc75/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/170/147/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "9606fa8a58d05110c423fb91c1bf46d2": {"username": "MudslideMama", "tumblr": "", "display_name": "MudslideMama", "url": "http://disqus.com/guest/9606fa8a58d05110c423fb91c1bf46d2/", "registered": false, "linkedin": "", "blog": "http://travelingmamas.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": ""}, "6dcd94f35131f9de6ae425ba641cc911": {"username": "Ching", "tumblr": "", "display_name": "Ching", "url": "http://disqus.com/guest/6dcd94f35131f9de6ae425ba641cc911/", "registered": false, "linkedin": "", "blog": "http://www.brubakers.us/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3d2f793860bf8e45eca2c65e1fc5e910": {"username": "PJ Brunet", "tumblr": "", "display_name": "PJ Brunet", "url": "http://disqus.com/guest/3d2f793860bf8e45eca2c65e1fc5e910/", "registered": false, "linkedin": "", "blog": "http://www.pjbrunet.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/70/3850/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "2bf25fd1da5ac49e094678a8c251a62f": {"username": "Damon", "tumblr": "", "display_name": "Damon", "url": "http://disqus.com/guest/2bf25fd1da5ac49e094678a8c251a62f/", "registered": false, "linkedin": "", "blog": "http://dcortesi.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/7/4797/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "4c2bdeebe56c3d8cfe046d1531534d75": {"username": "Debbie", "tumblr": "", "display_name": "Debbie", "url": "http://disqus.com/guest/4c2bdeebe56c3d8cfe046d1531534d75/", "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": ""}, "2b25701c173062e756dbe108c0676adb": {"username": "Grant D Griffiths", "tumblr": "", "display_name": "Grant D Griffiths", "url": "http://disqus.com/guest/2b25701c173062e756dbe108c0676adb/", "registered": false, "linkedin": "", "blog": "http://blogforprofit.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/8/2717/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "61c98214955b80047aaa7b81583dd573": {"username": "David", "tumblr": "", "display_name": "David", "url": "http://disqus.com/guest/61c98214955b80047aaa7b81583dd573/", "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": ""}, "eacdc1483362a0a660a1f4e6b639028a": {"username": "Steve Sloan", "tumblr": "", "display_name": "Steve Sloan", "url": "http://disqus.com/guest/eacdc1483362a0a660a1f4e6b639028a/", "registered": false, "linkedin": "", "blog": "http://sloantech.blogspot.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/189/452/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "d93a6fd82efdb062c290ccdb76a64ffa": {"username": "Jennifer", "tumblr": "", "display_name": "Jennifer", "url": "http://disqus.com/guest/d93a6fd82efdb062c290ccdb76a64ffa/", "registered": false, "linkedin": "", "blog": "http://www.twitter.com/itsjenjen", "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": ""}, "cdd302d9fd4cac10b81b0ed05ff78981": {"username": "Amanda Mooney", "tumblr": "", "display_name": "Amanda Mooney", "url": "http://disqus.com/guest/cdd302d9fd4cac10b81b0ed05ff78981/", "registered": false, "linkedin": "", "blog": "http://americanshelflife.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/6/1320/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "0e9b0ad00d80f020df2d76f5b4ec5e24": {"username": "Richard Weiser", "tumblr": "", "display_name": "Richard Weiser", "url": "http://disqus.com/guest/0e9b0ad00d80f020df2d76f5b4ec5e24/", "registered": false, "linkedin": "", "blog": "http://richardweiser.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": ""}, "markupdude": {"username": "markupdude", "tumblr": "", "display_name": "deb", "url": "http://disqus.com/markupdude/", "registered": true, "linkedin": "", "blog": "http://markupdude.com", "remote_domain": null, "points": 1, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}}, "forum": {"use_media": true, "name": "Scobleizer", "streaming_realtime": true, "url": "scobleizer", "allow_anon_post": true, "reactions_enabled": true, "reply_position": 1, "show_avatar": true, "allow_anon_votes": false, "disqus_auth_disabled": false}, "realtime_enabled": true, "request": {"username": "", "is_global_moderator": false, "sharing": {}, "sort": 4, "forum": "scobleizer", "is_initial_load": true, "is_authenticated": false, "timestamp": "2009-12-17_07:57:15", "remote_domain": "", "page": 1, "is_moderator": false, "display_username": "", "points": null, "subscribe_on_post": 2, "moderator_can_edit": false, "is_remote": false, "is_verified": false, "missing_perm": "locked"}, "realtime_paused": false, "posts": {"10209794": {"up_voted": false, "ip": "", "has_replies": false, "message": "If you are tired of facebook but want a way to connect with artists and musicians <br>then you should check out <a href=\"http://www.putiton.com\" rel=\"nofollow\">www.putiton.com</a><br>If you are tired of facebook but still want to connect with your friends then pick up the phone...", "is_last_child": true, "can_reply": false, "down_voted": false, "real_date": "2009-05-28_20:04:27", "killed": false, "user_key": "f5a7f0eb245b77db8517a7f218a854a6", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 9712315, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712250": {"up_voted": false, "ip": "", "has_replies": false, "message": "Yes! I may not have *quite* the number of DMs as you (17, including some archived), but everything you write is accurate and incredibly vexing. ESPECIALLY the inability to respond to someone who's just DMed, but who does not follow.<br><br>I'd add 1a. Sometimes the ability to even delete messages one-by-one simply disappears for a few day.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:32:51", "killed": false, "user_key": "cda4dec9349476012a9ebdd2f2f36e89", "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}, "9712251": {"up_voted": false, "ip": "", "has_replies": false, "message": "I hate them as much as you do.  \"Send me a DM.  No, wait, I'll follow you then you follow me then send me the DM and I will send one back then we will both unfollow each other again.\" It's not worth it.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:33:11", "killed": false, "user_key": "wesny", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "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}, "9712252": {"up_voted": false, "ip": "", "has_replies": false, "message": "Nice rant! Though it can probably be summed up as, \"email is better\". I am not sure why we can't use email as the real delivery mechanism. We can even have an \"email user\" link on the site itself. Why is this so hard?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:35:01", "killed": false, "user_key": "robdiana", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "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}, "9712253": {"up_voted": false, "ip": "", "has_replies": false, "message": "My sentiments exactly. +1", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:35:28", "killed": false, "user_key": "e8c1a6f3a9d0d3c80583d543bc5a82c8", "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}, "9712254": {"up_voted": false, "ip": "", "has_replies": false, "message": "It frustrates us little people too!  There's got to be a way around it.  I'm trying to grow my business and reach the right people.  I don't have any time to waste on inefficient things.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:40:20", "killed": false, "user_key": "b84daa7b704c9ea052838263bd54967f", "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}, "9712255": {"up_voted": false, "ip": "", "has_replies": false, "message": "You are comparing two services (mail and twitter) that cannot be compared since both are so different. Both have a set of generic features, although they both have a set of specific  features that will make any comparison very difficult or even impossible. Perhaps DM on Twitter is just not the medium that suits your needs ;).", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:41:12", "killed": false, "user_key": "8769593955325cf2f9b9ae9244a9fc24", "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}, "9712256": {"up_voted": false, "ip": "", "has_replies": false, "message": "It\u00b4s kill all benefits of an open conversation. It\u00b4s same the<br>reinvention of email, but without a lot of features.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:41:27", "killed": false, "user_key": "78dc0621fc539ade0c0e72bb7e739543", "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}, "9712257": {"up_voted": false, "ip": "", "has_replies": false, "message": "I agree with you to a point. I only use DM with people who are following me (usually those I know f-f so in that context its really like an instant txt message), and find if I try to DM those that I follow I can't so, @ seems to be the best. However, DM can be useful if you want to literally use it as just that, messaging that you don't want the public channel to see. I guess its useful more for newbies (like me) who still find the twitter thing a bit daunting!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:41:34", "killed": false, "user_key": "e57d6c9d2ecb55676401413bbc466c9e", "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}, "9712258": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ahhhh, now I understand why you did not answer my DM's! lol Thanks so much for this post which really makes a lot of sense. Truthfully, I never thought much about these points because I don't get the massive kind of DM's that you get. ( I only have 1207 followers and most of my conversation is through @ 's ).", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:42:46", "killed": false, "user_key": "5ed823fb98d2ffc802b7f5788b43c581", "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}, "9712259": {"up_voted": false, "ip": "", "has_replies": false, "message": "DM in Twitter is a convenience not a business application", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:42:51", "killed": false, "user_key": "9b646ff3eeda1f01cc2b1cb86d1634f9", "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}, "9712260": {"up_voted": false, "ip": "", "has_replies": false, "message": "I prefer Facebook messages to email for most informal personal correspondence and because FB has inbox search, that makes the process pretty easy for me. But I 100% agree with you on DMs. I have 1,600 DMs and NONE of them are searchable so if I don't catch them and respond early, it's a black hole. Thanks for trying to get this feature improved.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:43:46", "killed": false, "user_key": "cdd302d9fd4cac10b81b0ed05ff78981", "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}, "9712261": {"up_voted": false, "ip": "", "has_replies": false, "message": "Scoble,<br>Thanks for your thoughts on this. I had started using DM as an IM client (I use Twhirl when on my computer - which feels, in many ways, like an IM app). Now I see for Twitter connections with a very large following this can be stupid and annoying.<br>I think in some cases DM still has value, but I'm going to be far more selective in the future.<br>Peter", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:44:23", "killed": false, "user_key": "542dbe5795ef81b93611d4d6dec57712", "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}, "9712262": {"up_voted": false, "ip": "", "has_replies": false, "message": "I generally agree with all of these. No point re-inventing the wheel: if Twitter would simply integrate its messaging system with email, users could apply their existing workflows to manage Twitter communications. Just give us some auto-reply options and the ability to classify what gets forwarded. We'll do the rest.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:44:28", "killed": false, "user_key": "chrisbaskind", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "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}, "9712263": {"up_voted": false, "ip": "", "has_replies": false, "message": "Actually, I disagree.  There is nothing wrong with DM's if they are used for just that.  If it requires more then 140 characters, then send an email.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:45:10", "killed": false, "user_key": "2b25701c173062e756dbe108c0676adb", "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}, "9712264": {"up_voted": false, "ip": "", "has_replies": false, "message": "I don't hate DMs. There should however be one (easy to implement feature) which is the ability to select people you want to have \"DM releationship\" with. Your real buddys. That's all...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:45:21", "killed": false, "user_key": "497e0139925ec016b5a51d84ceb01ac2", "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}, "9712265": {"up_voted": false, "ip": "", "has_replies": false, "message": "I don't hate them, I just use them differently and rarely. Me and a buddy work on video projects and DMs are a good way for us to stay in commo with short messages on phone or computer (increasing chance of success). They also come in handy when I need to contact a Twitter friend who isn't on my phone address book.<br><br>DMs and SMS work best as a way to set up longer communication (\"Call me ASAP\"), so making them larger just encourages people to use them in more annoying ways. My .02.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:45:44", "killed": false, "user_key": "c423a5257d4760e92edd39f8a37f2a14", "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}, "9712266": {"up_voted": false, "ip": "", "has_replies": false, "message": "I did not know even Scoble has a boss!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:47:05", "killed": false, "user_key": "markupdude", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "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}, "9712267": {"up_voted": false, "ip": "", "has_replies": false, "message": "But if you use TweetDeck or People Browser is it not possible to delete and sort out your tweets??", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:49:02", "killed": false, "user_key": "31f4f5cb71807adafe67576507c18178", "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}, "9712268": {"up_voted": false, "ip": "", "has_replies": false, "message": "Now that you put it that way--what were they thinking?  I think they were thinking that people wouldn't be using the feature as regular email but more a personal shout out related to a Tweet or Facebook message.<br><br>Also I know that my daughter and her cohorts don't use traditional email so its txt, Facebook or twitter for them.<br><br>Perhaps the good folks at Twitter/ could create a way that your DM's are forwarded to your gmail account or they could give people the option to block DMs.<br><br>For me, I certainly have a limited number of DMs and with my TweetDeck it's easy to take a look. But if I were popular.....<br><br>Since I do not have a huge following", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:49:43", "killed": false, "user_key": "46233777e47bc70748ef05403214757c", "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}, "9712269": {"up_voted": false, "ip": "", "has_replies": false, "message": "email is better, sure! But I use always Twitter DM for rapid conversations (like chat but private) with many of my friends. I love them. Sure for work or longer answers, mail is better. But DM notifications also arrive in my gmail, and I have mail addresses of friends who DM me...so if I want I can mail them or DM...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:50:09", "killed": false, "user_key": "3f6a09b24bf99fd8a87d602bf36bdf42", "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}, "9712270": {"up_voted": false, "ip": "", "has_replies": false, "message": "Not being obscenely popular, yet, I haven't quite come to HATE DMs with a purple passion, but you've made your reasons clear and I agree with some of them.<br><br>I like robdiana's suggestion: an \"email user\" link would be much more useful.<br><br>There are times when a private message is needed; sometimes, I have no other contact info for a person. And I certainly wouldn't want to just blurt my phone number out to Twitter and, by extension, Google (@Pistachio, that was a classic).<br><br>A select multiple and/or mass delete feature would address many of your complaints, and I've seen a number of people suggest that. I don't know why it's not an option. My solution? I just don't bother cleaning out the inbox. If Twitter servers are overloaded as a result, maybe they'll fix that problem one day, eh?<br><br>DMs are a useful way to see if someone's following you back. (@Scobelizer, I guess you don't have to worry about DMs from me! :) But it would be just as useful to have a \"Following back? Yes!\" message displayed on a user's profile when you land there.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:51:34", "killed": false, "user_key": "HollyJahangiri", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "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}, "9712271": {"up_voted": false, "ip": "", "has_replies": false, "message": "6. You ask me a question that requires a 500 word response but you ask it in a place that limits me to 140 characters. Thanks for frustrating me.<br><br>And that makes DMs or Twitter bad? If someone sends you a DM when they really should call around to your home, is that another reason DMs suck?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:53:18", "killed": false, "user_key": "49e91056734d356635059451bf89e058", "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}, "9712272": {"up_voted": false, "ip": "", "has_replies": false, "message": "Reason # 1 why I have gmail account in my Twitter profile: please contact me thru gmail! Really, many folks luv DM as a \"back channel\" for open @ convos @ Twitter.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:55:30", "killed": false, "user_key": "f34c252e5f1754933f6cf4aec00ba7e8", "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}, "9712273": {"up_voted": false, "ip": "", "has_replies": false, "message": "I don't hate DMs because there are just certain things you don't want to share with 80 bazillion people. I just would like my recycle bin back and a better way to clear them (perhaps a select all/delete button) Someone mentioned the other day about how when they are deleted, it deletes the receiving party's also...yeah that needs cleared up too.<br>All in all, I'm for them :)<br>Peace", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:56:54", "killed": false, "user_key": "832b0ed59528bcf2e1f11cb76cac7726", "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}, "9712274": {"up_voted": false, "ip": "", "has_replies": false, "message": "Yup, I don't have as many DMs as you, either - 60something. BUT I am completely with you for pretty much every reason you gave.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:57:17", "killed": false, "user_key": "55a1fc68ce641a214490cb18a17dd7cd", "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}, "9712275": {"up_voted": false, "ip": "", "has_replies": false, "message": "DM is spam 2.0, @ev should look into this", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:58:01", "killed": false, "user_key": "6d3224b38ad74abf424fb4cabbebc221", "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}, "9712276": {"up_voted": false, "ip": "", "has_replies": false, "message": "It seems almost too obvious to say this, but like your use of Facebook Mr. Scoble, you are certainly the uber user who bumps up against constraints that the rest of us may never encounter.  That being said, I think it is admirable on some level that you challenge the limits to the point of even breaking the system.  Not only that, but you also offer helpful solutions.  Rock on.<br><br>In terms of my use of DMs, I talk to a lot of bloggers and friends this way and find it to be a good way to get in touch with folks (1) quickly and/or (2) for whom I do not have an email address.<br><br>I also appreciate you posting about this so my feelings are no longer hurt that you have never returned any DMs I have sent :P  Saw you were in DC a few weeks back and I suggested some coffee or sumthin.  Now I know, DM is not the way to go with you! ~ L.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_09:58:07", "killed": false, "user_key": "334e5fb03d742f9648bd3e78284b4aec", "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}, "9712277": {"up_voted": false, "ip": "", "has_replies": false, "message": "I only find DM's useful for quick messages outside of the public's eye, like to exchange e-mail addresses for lengthier correspondence. I wasn't aware so many people used DM's for serious interactions. That would get annoying very fast.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_10:01:37", "killed": false, "user_key": "d93a6fd82efdb062c290ccdb76a64ffa", "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}, "9712278": {"up_voted": false, "ip": "", "has_replies": false, "message": "Your social media celebrity status puts you in an entirely different league. Most of us don't have those volume problems. Agree with all your reasons why it's sub-optimal. I do find them valuable for communicating with my vendor partners in a quick message. I can be sitting in a meeting and tap out a DM to get the conversation started. Helpful in that way. Cheers.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_10:02:19", "killed": false, "user_key": "4fa589c51a45fc6eb36fdcbf28c3bc75", "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}, "9712279": {"up_voted": false, "ip": "", "has_replies": false, "message": "Twitter DMs also have the annoying behaviour that if the person who sent them to you deletes them out of their sent messages page, they're removed from *your* inbox as well. (I'm not sure, but I think the reverse also used to be true, where if you delete a received DM it was removed from the person's sent box too. Maybe this might be why you can no longer delete the DMs received).", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_10:06:43", "killed": false, "user_key": "0871275d07dd10b7a844e4b67783f26d", "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}, "9712280": {"up_voted": false, "ip": "", "has_replies": false, "message": "No, I like them. They're a handy way of responding to somebody I barely know and whose email I do not have. They help the personal flow of Twitter for me and are often more appropriate than @replies. If I start to make further contact with someone, *then* I may get their email and use that instead.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_10:13:41", "killed": false, "user_key": "4c2bdeebe56c3d8cfe046d1531534d75", "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}, "9712281": {"up_voted": false, "ip": "", "has_replies": false, "message": "While I'm very much with you overall on the problems with DM, I'm a bit confused as to your points 4 &amp; 10.<br><br>My DMs come straight to my Gmail inbox where I can forward, sort, etc. at will.<br><br>What I can't do is <i>respond</i> to them from my email (my workaround is to remove the Twitter address and replace it with the sender's actual email address, which is kind of a pain)<br><br>If I want to respond via DM, I have to log back into Twitter and do it that way which is time consuming and often defeats the reason I've turned off Twitter in the first place (concentrating on cleaning up my email inbox)<br><br>But if Twitter DMs would act like regular email-- show up in my Gmail inbox with the ability to respond directly from email, that would be a start. Though, to your point #6, not a full-on solution.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_10:16:10", "killed": false, "user_key": "8b1b62f637a5b8cad8afa97c9b51ab02", "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}, "9712282": {"up_voted": false, "ip": "", "has_replies": false, "message": "I hate DM's too and here's why. I've had the following experience with two different people.<br><br>- I'm following X but X doesn't follow me.<br>- X tweets about some topic to which I reply @X<br>- X sends a DM asking for more details<br>- I try DMing back to X but that is not possible (he's not following me, remember?) so I reply @X asking him to follow me so that I can reply via DM (that info was confidential n couldn't pass that on the public timeline.)<br>- I get another DM in return which has a smiley! Doesn't bother to follow me!<br><br>I've had not one but two such experiences from two different people. Why even send a DM asking for information when you don't want to follow that person?<br><br>It's because of this breed of Tweeps that I hate the DM feature of Twitter.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_10:18:35", "killed": false, "user_key": "432dfea4bfe772bbee994a23b00bcc41", "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}, "9712283": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi Robert. Yes, email is better! I send you a DM on Twitter some days ago because i know that you always control Twitter but your list is true! :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_10:18:40", "killed": false, "user_key": "dariosalvelli", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "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}, "9712284": {"up_voted": false, "ip": "", "has_replies": false, "message": "I tend to send DM to people but only if I know they read them and if I dont know them, I do inlcude my email address. If I do not get an reaction I'll try to get out the mail address of that person, which btw is often hard to do.<br><br>Personally I do receive and read ALL of my DM and FB message in my mail inbox as they are forwarded. Depending on the content of the message I do invest more or less time to find out how to answer.<br><br>not being able to reply in DM is a reason not to reply at all, etc.<br><br><br>btw @amanda - every single good email client has a decent search feature. if you rely on fb for having search, you have a whole lot of other issues.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_10:20:46", "killed": false, "user_key": "ea5ae47db54d1993df4f63a3abc2d2eb", "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}, "9712285": {"up_voted": false, "ip": "", "has_replies": false, "message": "Kinda serves you right for not telling people strongly enough to mail you for 'important' things. Not to mention the fact that you follow 21k+ people. I like DMs, because they're a good substitute when I don't want to mail someone for a really small thing, or to reach them quickly (DMs notifications go out as SMS' here) no matter where they are.<br><br>Getting rid of DMs is not the solution. Fixing 'your' way of using DMs is. A good way to start will be to set Twitter to mail you when you get a DM. That way you can file them and read them at your own leisure. You could maybe set up a bot that could send a DM back to a user telling them to mail you instead. There are various ways to deal with it. Getting rid of the feature will mess things up for people who're use to it *and* use it sensibly.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_10:34:49", "killed": false, "user_key": "840d989be08dec812580418145ea2337", "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}, "9712286": {"up_voted": false, "ip": "", "has_replies": false, "message": "What the hell is DM...call me if you have time scoble...LOL", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_10:40:26", "killed": false, "user_key": "7060450b5911e07d6d4b13c873a570b0", "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}, "9712287": {"up_voted": false, "ip": "", "has_replies": false, "message": "It's like blog comments!! Oh wait, you're using blog comments!  ;)<br><br>Add to your list - auto-DMs. Follow someone and get a \"thanks for following me. I like you. Here's my sales pitch\" DM. Sigh.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_10:42:51", "killed": false, "user_key": "596763eaa84e72d368baf0f0b32c48ae", "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}, "9712288": {"up_voted": false, "ip": "", "has_replies": false, "message": "I think of Twitter like a group of people sitting in a cafe/restaurant/pub and talking to one another.<br><br>In the 3D world, when someone goes to the toilet he misses out on the conversation that takes place while he/she is away. With twitter you have a standing record of what went on, and you can catch up.<br><br>And you don't need a piece of paper with you to write down the details of that link to a good story, or whatever.<br><br>But not everything should be said out loud to the group, particularly when there is a throng of people who are just passing by, all listening to the conversation.<br><br>So I see a use for direct messages. I don't want to say everything in public -  and some things, such as \"All the links on your website are old and dead - you need to look at them\", are nicer said in private, so as not to embarrass someone by broadcasting them.<br><br>But the biggest reason for direct messages is that without them I haven't a hope of seeing messages intended for me unless I happen to chance upon them.<br><br>And as not everyone is in my time zone, and as I am not on twitter all the time, I am going to miss certain public messages unless I go hunting, and while I do look back over the previous hours' messages - I might easily miss a message.<br><br>One thing I would like is for Twitter to email me when someone replies to one of my direct messages, in the same way that it emails me when I receive a direct message.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_10:44:14", "killed": false, "user_key": "61c98214955b80047aaa7b81583dd573", "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}, "9712289": {"up_voted": false, "ip": "", "has_replies": false, "message": "Another one who agrees here. Even the notifications for DMs, whether it's the default web interface, or a specific client like Tweetdeck, generally suck or are nonexistent. 140 characters for public bulletins is interesting, occasionally useful, and frequently humorous, but for private messaging it becomes comical and absurd.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_10:45:32", "killed": false, "user_key": "b1803dda73b757e3ad6fb4417accf795", "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}, "9712290": {"up_voted": false, "ip": "", "has_replies": false, "message": "These are some great feature requests, but twitter isn't email.<br><br>I certainly see the value in everything that you're asking for, but since I don't get that many DMs this isn't a problem for me.<br><br>What should happen, is that someone should make a twitter tool that lets you do all these things and more with your DMs. Maybe a tweet deck add-on that whenever you get a DM it auto-responds that the sender should email you instead. I say \"someone should\" because I'm not a programmer and have no clue if such a tool is even technically possible.<br><br>Cheers!<br>@rafaelmarquez", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_10:52:11", "killed": false, "user_key": "1793c5f254549333d738bb4ff4e6edd6", "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}, "9712291": {"up_voted": false, "ip": "", "has_replies": false, "message": "Here is a suggestion to organizing your direct messages from Twitter using any mail client that allows for the creation of folders and rules like Apples Mail.app which I use regularly for not only email but RSS feeds as well.<br><br>First with Mail you have the ability to create multiple folders and attach rules for any email message including but not limited to who it is from, subject of email, text within the content, who it's from, and pretty much any other defining aspect of any particulars in any email message.<br><br>Second, is the ability of creating rules for folders which indicated above can be a slew of variables to direct any message to any folder based on pretty much any predetermined variable or variables which allows you to segment your email messages down to a single keyword or phrase.<br><br>I have personally created 2 rules for Twitter emails  which are as follows:<br><br>1)New followers-This rule moves all messages received that contain \"is now following\" in the subject line of the email. I have a couple Twitter accounts so I have also added account specifics to the rule which directs the messages to their respective folder based on which account has a new follower.<br><br>2) Direct messages- This rules segments direct messages to their respective account folders I've created which allows me easy access to every direct message I've ever received.<br><br>Using this process you can do pretty much anything you would do with any other email message received.<br><br>Hope this helps take the burden away from the featureless DM section on Twitter.<br><br>Sincerely,<br>Joshua Needham<br><a href=\"http://Twitter.com/iphonedevforum\" rel=\"nofollow\">http://Twitter.com/iphonedevforum</a><br><br><br>2)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_10:55:40", "killed": false, "user_key": "c18f2f3ec727560edb8fade8cdaf6edc", "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}, "9712292": {"up_voted": false, "ip": "", "has_replies": false, "message": "really cool post... check my one :D", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_11:01:17", "killed": false, "user_key": "581bf5230c9ab2de43bd595736277ac4", "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}, "9712293": {"up_voted": false, "ip": "", "has_replies": false, "message": "I use the DM to thank people for following me and have any DMs I receive forwarded to my gmail account. This hasn't been a big issue for me but I certainly see your point given the volume you're dealing with.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_11:06:09", "killed": false, "user_key": "56067fd82288b469538338d71f9d5664", "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}, "9712294": {"up_voted": false, "ip": "", "has_replies": false, "message": "I like them. I use it in preference to e-mail, like a text message, but platform agnostic. That said, I have dozends of followers, not hundreds. May I humbly suggest you pay attention enough to block the pests so you can pay attention to the pearls?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_11:15:17", "killed": false, "user_key": "0e9b0ad00d80f020df2d76f5b4ec5e24", "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}, "9712295": {"up_voted": false, "ip": "", "has_replies": false, "message": "I don't get a large volume of DMs, but I have missed them, even with the email alerts turned on.  But at least twitter's DM email alerts contain the content of the message (unlike other sites who just send the email telling you there is a message for you without actually sending you the message).<br><br>Now if only I could reply to that DM notification email with a &lt; 140 character email and have it show up as a DM to the originator, letting us each use the tool that works best for us.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_11:21:39", "killed": false, "user_key": "9d5d6abc8894300f88f82b2df42a5faf", "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}, "9712296": {"up_voted": false, "ip": "", "has_replies": false, "message": "I don't get a large volume of DMs, but I have missed them, even with the email alerts turned on. But at least twitter's DM email alerts contain the content of the message (unlike other sites who just send the email telling you there is a message for you without actually sending you the message).<br><br>Now if only I could reply to that DM notification email with a &lt; 140 character email and have it show up as a DM to the originator, letting us each use the tool that works best for us.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_11:28:15", "killed": false, "user_key": "9d5d6abc8894300f88f82b2df42a5faf", "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}, "9712297": {"up_voted": false, "ip": "", "has_replies": false, "message": "Not sure I can agree with you here 100%. DM's are a different monster all together. Rather than hating the DM, maybe throw some vile at the folks who send the DM that requires more than 120 characters.<br><br>I am not so sure it is the system (DM) that is at fault here. I think it is more about how everyone and thier dog is trying to use twitter for so many different purposes.<br><br>All the points you make however are very agreeable and on point... but for the average user of Twitter with no where near as many followers as you DM's are a great little tool.<br><br>With so many services (facebook, friendfeed, twitter etc) that you, myself and others are subscribed to, follow and are followed at, it has almost become impossible to maintain all of these different social networks and respond to everyone. Maybe there just needs to be a better way.. do not know what it is, but there has to be one right?<br><br>Maybe one way to curve the issue is do like @garyvee does... put in your profile how to contact you and explain you will never get to DM's.<br><br>Anyway... that is my take.<br><br>- Doc", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_11:28:33", "killed": false, "user_key": "6612e0b610becc059d8dd0947c50059d", "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}, "9712298": {"up_voted": false, "ip": "", "has_replies": false, "message": "Essentially you're saying that twitter's DM should become yet-another email service, which would be pointless. We DO HAVE email already, and it's a major fail. Too many email marketing messages, newsletter, spams, work emails, etc<br><br>How can @ev fix DM messages?<br><br>1) EMAIL ALERTS.  Anytime you receive a DM, twitter sends a copy to your email. There you can click and respond through twitter, or just hit reply and continue the conversation by email. Best of both worlds, and address all your points above...<br><br>2) DM ANYONE.  Let anyone DM any other user, regardless their follow status.  Twitter was one of the first platforms to break the concept of \"friend\", allowing asynchronous social communications between peers; why on earth DM should require synchronous connection between the two?  The recipient still have the option to just ignore the message or to block the person entirely...<br><br><br>Also, taking the opportunity we're discussing twitter improvements, REPLIES are also broken!<br><br>3) REPLIES ANYWHERE ON TWEETS: the \"@user\" should be recognized as a reply anywhere on the tweet, regardless if it's on the beginning or not.<br>(it was like this before, but I suspect they changed to make it easier/faster to optimize the SQL queries, using standard indexing instead of full-text index)<br><br>my 2 cents.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_11:33:17", "killed": false, "user_key": "guiambros", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "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}, "9712299": {"up_voted": false, "ip": "", "has_replies": false, "message": "These are a lot of valid point - and the post is a great rant - but for those of us with significantly fewer followers, it's less relevant. Twitterers who choose to only follow people they virtually \"know\" enjoy DMs because they're not for business, or for public consumption. Just informal asides to the larger group conversation.<br><br>I suppose it all boils down to the different ways people use Twitter in the first place.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_11:38:48", "killed": false, "user_key": "9606fa8a58d05110c423fb91c1bf46d2", "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}, "9712300": {"up_voted": false, "ip": "", "has_replies": false, "message": "hey scoble, great article, just a question: how do you get hotmail to forward to gmail? Thanks!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_11:51:47", "killed": false, "user_key": "3a5eb533ff881498e95d7ab4a5963c5d", "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}, "9712301": {"up_voted": false, "ip": "", "has_replies": false, "message": "You, sir Scoble, are a power user with 1000s of followers so I can understand why the existing features are not capable of meeting your needs.<br><br>I think that for most users the current DM feature is sufficient, but I'm sure we'll see some of the features requested above incorporated in the next year.<br><br>@cbell619", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_12:06:56", "killed": false, "user_key": "4f63f368261290a34e8a4f3aac6427c8", "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}, "9712302": {"up_voted": false, "ip": "", "has_replies": false, "message": "You should rename this to \"The top 10 reasons why Twitter should convert DMs to email addresses\". That's essentially what this article is saying. While we're at it, get rid of instant messaging systems too. They have a lot of the same problems you listed here. Drop everything and revert to email. Right?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_12:28:43", "killed": false, "user_key": "6841d809b20403acf6a979420fd5a896", "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}, "9712303": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert -- Your enumerated points are an excellent reminder that the granddaddy (and still heavyweight champion) of the online social media is . . . e-mail.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_12:43:52", "killed": false, "user_key": "TimWalker", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "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}, "9712304": {"up_voted": false, "ip": "", "has_replies": false, "message": "You're asking for full email features in Twitter? You know it's designed the way it is due to the limitations of GSM SMS messages, right?<br><br>6, 7, and 9 don't apply to Facebook.<br>5. Doesn't even make sense given the 140 character limit of Twitter. Use email for that.<br><br>If you're talking about Facebook, you have some valid complaints. You're trying to use Twitter for things it was not designed for, though.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_13:16:47", "killed": false, "user_key": "JamesGecko", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "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}, "9712305": {"up_voted": false, "ip": "", "has_replies": false, "message": "Why don't you try to offer up some sort of a solution?  Do you want all of these problems fixed?  That's probably a good lot of work.  Do you want all DMs fully disabled?  That's might piss off a few people who use the feature.  Do you want the ability to set your preferences to disable DM?<br><br>If you truly want change, it seems like the best way to get it is to offer a few solutions.  I'm not sure what the best answer is here.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_13:33:41", "killed": false, "user_key": "a7b795680bb13e98873eb6364c6e3c59", "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}, "9712306": {"up_voted": false, "ip": "", "has_replies": false, "message": "If one is popular or has power of any kind: one gets direct messages and complain. (We understand)<br>If one is a nobody and no power at all: one gets no direct messages and complain for the lack of interest.<br><br>We are nobody: @LEADSExplorer", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_13:43:14", "killed": false, "user_key": "4b894ec0e466f15ffc81f1edcf7022ef", "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}, "9712307": {"up_voted": false, "ip": "", "has_replies": false, "message": "Good luck getting either @ev OR Facebook to respond on this.  The only thing Twitter ever responds to is if you call them out publicly for blaming their outages on you. ;-)  They say they listen, but they don't.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_14:48:05", "killed": false, "user_key": "d881753042a8bbff52ed4b78f1e7bec5", "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}, "9712308": {"up_voted": false, "ip": "", "has_replies": false, "message": "Scoble, if I were to design a system to add tagging to twitter messages, would you use it? Let me know through twitter @hdiwan", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_14:55:55", "killed": false, "user_key": "895a112c66d93cefcd06d2cf371219e6", "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}, "9712309": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert,<br><br>AS I read your post I thought, why couldn't Twitter allow you to get direct messages wherever you want them. Forwarded to your email, or printed out and sent via carrier pigeon, if that is what you want.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_15:02:34", "killed": false, "user_key": "664983a1d77c6487d3df9a511c5db506", "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}, "9712310": {"up_voted": false, "ip": "", "has_replies": false, "message": "I wrote a small bookmarklet to help with the mass deleting of DMs. You can find it on my site, here: <a href=\"http://dcortesi.com/tools/dm_deleter/\" rel=\"nofollow\">http://dcortesi.com/tools/dm_deleter/</a><br><br>One of the challenges, though, is keeping up with Twitter. I've had to update it once a month or so. Not to mention the times (like right now) where the delete functionality is disabled on DMs, which also affects the bookmarklet.<br><br>It's a hack, but it works quite well and I know several people whack a few thousand at a time much to the demise of the Twitter database...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_15:12:25", "killed": false, "user_key": "2bf25fd1da5ac49e094678a8c251a62f", "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}, "9712311": {"up_voted": false, "ip": "", "has_replies": false, "message": "True, so DM's suck. But again, I think a lot of Twitters popularity, is its extreme simplicity. There are 140 characters and not a lot of bells and whistles. Twitter is no doubt as a communication tool. I guess what I mean is that its not the DM as such that is really bad, its the way people chose to use it for things they should use email for.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_16:07:49", "killed": false, "user_key": "f7e0c085c9a9932c2d530219f9129f9f", "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}, "9712312": {"up_voted": false, "ip": "", "has_replies": false, "message": "I hate DMs.  I get DMs from people and then I end up forgetting where information is because it's not in my e-mail!!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_16:12:57", "killed": false, "user_key": "39c812c3a4c91af718ca68bf5e3eb258", "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}, "9712313": {"up_voted": false, "ip": "", "has_replies": false, "message": "Twitter totally flunked the usability test on this DM issue. One of the first people I followed there sent me an automated DM message which of course I could not respond to leading me to (incorrectly) believe that I could not message anyone who wasn't following me. I even wrote a blog post on it.<br><br>The way it flips between sent and inbox is confusing too. And what ARE they thinking not allowing us to EASILY delete messages? That means options to delete one, many or all at once.<br><br>We also need a way to mark messages we want to answer later because the time will come when you can't answer all of them right away and then they'll fall through the cracks leading people to believe you're ignoring them.<br><br>Every system that exists would greatly benefit by recruiting power users with experience beta testing to improve their usability - ideally when they first start so they notice these \"little\" things that lose new users.<br><br>I am not the only one with a background in diagnosing computer issues and usability and we are not all that difficult to find. I volunteer to test any system willing to actually listen to and act on valid feedback.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_16:28:16", "killed": false, "user_key": "8ef5aeebab0e46ab9eb3cbd052a1efe0", "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}, "9712314": {"up_voted": false, "ip": "", "has_replies": false, "message": "Bravo Robert! I agree with you 100% and hate direct messages with a passion.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_18:53:43", "killed": false, "user_key": "4b599d91a870989c4bb6fbefcdaa8515", "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}, "9712315": {"up_voted": false, "ip": "", "has_replies": true, "message": "I can understand your frustration, though I still like the DM feature. If someone DMs me and I need more space, I simply say hey shoot me an email.<br><br>My thoughts:<br>1) We should be able to bulk delete.<br>2) If I put them in folders then I would never get to them ;) So please no folders.<br>3) Re sort is a GOOD idea- by user by date. GREAT IDEA !<br>7) If someone DM's me I should be able to reply whether they follow me or not.<br><br>But DM is not email so I really wouldn't want Twitter DM to have email features.<br><br>\"I can\u2019t CC, or copy other people, or send a message to a group. Things that email has been able to do for years\"<br><br>Isn't the idea of twitter simple fast communication in 140 characters or less ?<br><br>I agree if the reply needs 140 characters or more - people really don't use DM use an email. I think its an issue with the people DM'ing you though not Twitter.<br><br>Which leads me to my favorite rant - Hey PEOPLE if you want to work online in this industry list your email on your blog or website. OK rant over :)<br><br>Twitter is for simple DMs Email is for email.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_19:10:08", "killed": false, "user_key": "d33c72800635bdc4004136ed30bf1f85", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712316": {"up_voted": false, "ip": "", "has_replies": false, "message": "1. Best policy to ignore on the system and let Gmail or your email filters do the rest.<br><br>2. Actually, I do just that very thing with Gmail.  I apply tags.  You'll simply need to key off the content and header of the message.  Please see below for a light tutorial on the items you can key off in your own filtering strategy with either server side or desktop approaches:<br><br>From envelope is of the form<br><br><a href=\"mailto:twitter-dm-USERNAME=DOMAIN@postmaster.twitter.com\" rel=\"nofollow\">twitter-dm-USERNAME=DOMAIN@postmaster.twitter.com</a><br><br>Where USERNAME@DOMAIN is your registered email address<br><br>Note that the \"twitter-dm\" is consistent with all DM's sent since the most recent changes to the email envelope.<br><br>Subject is of the form<br><br>Direct message from TWITTERNAME<br><br>Also, and more importantly, there are a significant number of X headers included of the form<br><br>X-Twitter*<br><br>Example:<br>X-Twittercreatedat: Fri Dec 05 16:28:15 +0000 2008<br>X-Twitterrecipientscreenname: [TWITTERNAME]<br>X-Twitterrecipientid: [NUMERICVALUE]<br>X-Twitteremailtype: direct_message<br>X-Twitterdirectmessageid:  [NUMERICVALUE]<br>X-Twittersenderid:  [NUMERICVALUE]<br>X-Twittersendername: [TWITTERNAME]<br>X-Twittersenderscreenname: [TWITTERNAME]<br>X-Twitterrecipientname: [TWITTERNAME]<br><br>Where [value] represents the specific item as the name implies.<br><br>Please review your headers to see what I mean.<br><br>3-10. See point 2.<br>11. Please don't do that.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_19:28:51", "killed": false, "user_key": "704eb78a1937b2a8920957c2c2df413d", "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}, "9712317": {"up_voted": false, "ip": "", "has_replies": false, "message": "Oh, and to clarify -- it is apparent that Facebook is just not as adept or as invested as the Twitter team in their use of items to key off in their email service.<br><br>I'll reserve calling Facebook email a steaming bucket of fail because I'm sure<br><br>a) they can fix it pretty quickly and extend upon Twitter's ideas and approach<br><br>and/or/but<br><br>b) they don't really care about the feature at all outside of its use in the Facebook silo... yet?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_20:06:33", "killed": false, "user_key": "704eb78a1937b2a8920957c2c2df413d", "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}, "9712318": {"up_voted": false, "ip": "", "has_replies": false, "message": "DM does have a use case with web services built around Twitter. For e.g. Buxfer has a service where you can manage your financial transactions just by sending DM to buxfer.<br><br>But you are right that the design is a little flawed that you cannot control DM in anyway.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_22:16:27", "killed": false, "user_key": "e5d9595d82c63c71838c6b7ff838e311", "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}, "9712319": {"up_voted": false, "ip": "", "has_replies": false, "message": "I don't understand the problem - I get an email every time I get a DM", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-06_22:45:28", "killed": false, "user_key": "fb0e68261e6e5d60e3c7e2b1b07bd884", "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}, "9712320": {"up_voted": false, "ip": "", "has_replies": false, "message": "My numero uno beef with the DM system is the lack of search functionality.<br><br>Your #7 about DMs and following is less frustrating but equally annoying.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-07_05:05:29", "killed": false, "user_key": "ariherzog", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "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}, "9712321": {"up_voted": false, "ip": "", "has_replies": false, "message": "I think that DM sucks only for busy or popular people, because they don't have much time and they are getting many messages. For small twitter users like me DM don't me anything, because i get only 1-5 messages per week and there is no problem to answer it..", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-07_05:41:22", "killed": false, "user_key": "fae51c726019cdd3ef7402567f7adc5d", "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}, "9712322": {"up_voted": false, "ip": "", "has_replies": false, "message": "I agree with you completely, why implement something to superceed an existing product, like email, which, for all it's faults, works the way I want and expect it to. With correct integration between messaging systems I should never need to copy-paste, fullstop.<br><br>This is the reason that a few friends and I build a Unified Messaging Platform which makes it possible for people to access their messages/data with the interface they want, rather than being locked into mail/usenet/web/ftp/twitter/chat/etc... Sadly VCs didn't think it was so innovative in 2000 so we gave up and suffer like everybody else. Although we suffer slightly less... :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-07_08:45:14", "killed": false, "user_key": "4eacee3eac6699a3050af074bc5d90ed", "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}, "9712323": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have a solution for two of the problem you are facing. I wanted to say this yesterday itself. (before 70 odd people commented =D )<br>The problems you face: No way to sort DM's<br>                                      Not easy to search<br><br>Well I don't have many mails 25 odd may be. Mopst of them are not in my twitter profile as I deleted them. So where are these mails? IN my inbox of course. I get an alert everytime someone DMs me and the message is delivered to my inbox, where I tag it and archive it (gmail). When I have to search for info within those mails well gmail search's ability to search within particular tags comes handy!<br><br>Now the problem you face now is similar to the problem I have with an old email id of mine. I get only spam mails there now and they are so many in number that I get tired deleting them. What you can do ignore all the past DMs and start reading all new Dms now on. Cos I find DMs helpful. Certain things are better kept betw 2 individuals than blurted out to the whole world!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-07_09:01:44", "killed": false, "user_key": "1d4599402c773de3f13e7c25a119e224", "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}, "9712324": {"up_voted": false, "ip": "", "has_replies": false, "message": "Oh yes talking abt mailing instead of DM, that is not practical in all cases. In your case your email id on your blog, it is convenient for anyone to mail you. But what about the rest? I don't want many people to know my personal id, I am more comfortable if they would simply DM me or reply @chupchap.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-07_09:04:35", "killed": false, "user_key": "1d4599402c773de3f13e7c25a119e224", "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}, "9712325": {"up_voted": false, "ip": "", "has_replies": false, "message": "CORRECTION: I screwed up the links in the earlier comments", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-07_09:06:41", "killed": false, "user_key": "1d4599402c773de3f13e7c25a119e224", "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}, "9712326": {"up_voted": false, "ip": "", "has_replies": false, "message": "Great points indeed. I'm glad I'm not that popular, so my DM frustration has been minimal. If I complain it would go unheard perhaps, but you can help improve things...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-07_12:42:26", "killed": false, "user_key": "ptamaro", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "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}, "9712327": {"up_voted": false, "ip": "", "has_replies": false, "message": "Personally I think you are looking at DMs all wrong. They are more like SMS than email. I have my DMs go straight to SMS. If it's something I need to answer, I usually do so by email or phone or normal sms.<br><br>Of course you are right in that people who use them for long drawn out back and forth conversation should be shot.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-07_14:19:30", "killed": false, "user_key": "5e6a29d1032b4394ce51e13f438cb320", "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}, "9712328": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert as usual nice points that prove once again you are *the man* in social networking.   The transparency of the social space is a large part of the appeal and there's little need at Twitter for \"privacy\" - that is missing the point.   Do we ever need privacy?   Sure, but we have many private venues already - the important changes are in the social space.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-07_14:42:43", "killed": false, "user_key": "d8bb4623895a9ba01a125d3d7800bead", "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}, "9712329": {"up_voted": false, "ip": "", "has_replies": false, "message": "Completely agree about Twitter's useless DM feature.<br><br>But Facebook's I actually use, generally for quick personal correspondence that I don't care about archiving or finding later.<br><br>I think Facebook's works better for me for several reasons:<br>1) I don't approve any Facebook requests from people I don't actually know, and I try to keep my Facebook circle of friends fairly small (I have \"only\" 306).<br><br>2) Facebook messages come to my cell phone via SMS.  Basically nothing else does except a direct SMS or tweets from a select few people I used to work with.<br><br>3) There are lots of people for whom the only e-mail address I have is a work one, and I generally prefer to send them an FB message (that until recently at least would tend to show up in their personal e-mail) instead of an actual e-mail.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-07_15:10:53", "killed": false, "user_key": "0510d88cc9c42fd729b2d61a173d9c44", "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}, "9712330": {"up_voted": false, "ip": "", "has_replies": false, "message": "Without direct messages apps like @trackthis would be less useful", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-07_15:31:04", "killed": false, "user_key": "7a6efd03c263ab881e970d27e4375626", "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}, "9712331": {"up_voted": false, "ip": "", "has_replies": false, "message": "Twitter as a whole is useless.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-07_16:08:33", "killed": false, "user_key": "7a952254761c114056af5c42eed4e9aa", "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}, "9712332": {"up_voted": false, "ip": "", "has_replies": false, "message": "Wow. A completely free service that a ton of people seem to enjoy, use, and find value in;  a free platform that has enabled scobleizer to interact, advertise, and extend its reach to consumers it might otherwise have no connection to.  Blogging about this inferior service has given you prime real estate on the home page of techmeme (probably not for the first time), which I clicked to get here. The post has 77 comments so far, plus more have obviously viewed, yet somehow, twitter has made your life hell.   Methinks if anything, twitter's existence has increased your relevance ranking on the internets.  Without them, your voice would be muted.   Twitter provides both megaphone and hearing aid, and for one who's business is pretty much talking, I see twitter as an awesome utility for aspiring scobles everywhere. Peace out!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-07_16:43:35", "killed": false, "user_key": "f3bb4111ccd787b525054e52194a76c2", "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}, "9712333": {"up_voted": false, "ip": "", "has_replies": false, "message": "Twitter is a simple service. Direct messages are meant as a way to send SMS to someone without having to know their phone number. It's not email. If you think someone asks you a question that requires an email, then ask for an email address.<br><br>Twitter is not a GTD application, it's not email, it's not complex in any way shape or form. It's a broadcast platform for 140 character text that has a point to point backchannel, however, it is a text broadcast platform first.<br><br>Adding a layer of complexity means adding another reason that my mother won't use it.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-07_17:28:04", "killed": false, "user_key": "robblatt", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "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}, "9712334": {"up_voted": false, "ip": "", "has_replies": false, "message": "Solution is simple, delete your Twitter like I did.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-07_18:49:16", "killed": false, "user_key": "3d2f793860bf8e45eca2c65e1fc5e910", "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}, "9712335": {"up_voted": false, "ip": "", "has_replies": false, "message": "I guess that ancient non-hip-Web 2.0-thing called \"email\" still has it's uses. But see, any tech fails at your noise volume level -- IM, DM, Tweets, what have you. Nothing will work, no matter how many David Allens you worship.<br><br>Just get the broadcasting tools (shaky cell phone cams, FriendFeed and etcc. spewers), all the essential evangelist tools needed to spread the messages, whilst never having to listen (or bother with) the actual flocks.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-07_18:57:39", "killed": false, "user_key": "7f6291e8344b594235e57b843fc05d9b", "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}, "9712336": {"up_voted": false, "ip": "", "has_replies": false, "message": "I like Twitter DM. I can always reply with an e-mail, I do not HAVE to reply with DM. But, I get less than 3 DM's a day. Do you think getting over 4,000+ DM's is a typical case, or an edge case?<br><br>(Also, if I have a blog post that gets 3 replies that's a lot, so maybe I am just boring.)<br><br>My e-mail backs up way, WAY more that my Twitter DMs.<br><br>I like Twitter DM because I am always able to receive them as I am always plugged into Twitter on multiple devices and I can choose to reply in real time or later.<br><br>The people I get DM's from are almost always friends.<br><br>Steve Sloan", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-07_20:41:15", "killed": false, "user_key": "eacdc1483362a0a660a1f4e6b639028a", "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}, "9712337": {"up_voted": false, "ip": "", "has_replies": false, "message": "While I couldn't get through all of your reasons, as I read the first couple I thought of an idea.  Why don't Twitter, Facebook or whomever has this similar feature offer an auto-forward function to send the DM to your email.  Well wait, it sort of already does this. Include in reply-to the persons email address or a unique reply address that would transcribe your email reply back into the proprietary format of the social network. Eh?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-08_00:58:51", "killed": false, "user_key": "51a0313201d038e5930a297e60fcfb9b", "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}, "9712338": {"up_voted": false, "ip": "", "has_replies": false, "message": "You hate DM because you chose to ignore Twitter's spirit, which is simplicity and chronology, and want it to be more a kind of business email-like app full of features.<br><br>What I would like you to consider before flaming against DM and Twitter.<br><br>1. Why \"having the ability to delete them all\" has to do with read them or ignore them all? I really didn't understand this argument.<br><br>2. Folders is more for email. Twitter is not an Exchange plugin or a Blackberry feature. Plus: priority on Twitter is chronology, is WHAT IS HAPPENING NOW, so forget about twisting it or making another priority. The DM that just arrived is the priority.<br><br>3.  Just what I said: Twitter is not email. Stop trying to make them match in every feature.<br><br>4. Again, you're trying to make Twitter DM feature work for your business, but that's not the main purpose of it. Twitter is not for business or conference calls or business meetings. It's not a Project Manager software.<br><br>5. Copy your boss? You're joking, right?<br><br>6. Asking a question that needs a 500c response it's the questioner's problem. And you can tell that in less 140c. You choose to become frustrated because you want it to be so. Besides, you want to make those 10 reasons, so you just invented this one. I want to tweet a 150c tweet, oh, I'm so frustrated.<br><br>7. Actually I agree on this one.<br><br>8. Do you know you can choose to be notified by email when you receive a DM, and the DM message will go in it?<br><br>9. Again and again, Twitter is not email. Plus, group feature is missing on the whole Twitter and not only in DM feature. Twimc, particularly, I don't want group messaging, it's the kind of complexity that it would start killing what I think Twitter really is. Please, don't be ICQ, Twitter. Don't be Microsoft Project either.<br><br>10. Seriously? Email, again?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-08_06:55:31", "killed": false, "user_key": "fa5ba154a30485e10fd8467e65f2375a", "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}, "9712339": {"up_voted": false, "ip": "", "has_replies": false, "message": "I was actually about to start doing more of this until I read this post. As a new Twitterer, thank you for not allowing myself to turn into a personal spammer!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-09_16:07:28", "killed": false, "user_key": "ff78564850120fd2c8203667622fea31", "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}, "9712340": {"up_voted": false, "ip": "", "has_replies": false, "message": "The only good reason for DM in Twitter and Facebook is to protect you from showing your e-mail address -- or, as I have discovered, as a means to draw you into Twitter to get an account for the sole purpose of reaching out to someone who will only allow you to contact them via Twitter. So, the Twitter folk or the Twitter die-hards are using DM to perpetuate their social network, rather than to as a good design decision.<br><br>The right way to build the feature is simply to offer an option: DM to Twitter account or use a Twitter form to send an e-mail (including actual reply address) directly to your Gmail (or other preferred location)<br><br>Twitter is great for many things, but the benefits of short messages, follows and DMs run into a wall in many cases, like this. My twitter network is negligible and its already impossible to parse through the messages I get on my feed in any useful way.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-10_10:40:17", "killed": false, "user_key": "2d42994a6bdda469fded683500b65a6c", "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}, "9712341": {"up_voted": false, "ip": "", "has_replies": false, "message": "We have so many avenues of communication it is hard to know which to use when. For example if I see an event advertised on Twitter by someone whom I follow, then I am likely to DM him/her for details. Why? It's rude to @respond because no one else is interested, I don't have another way of contacting you, the context is reasonable, so it is another string to my communication bow.<br><br>DMs as replacement for IM are certainly messed up. We tend to be more selective about our IM buddies, so would expect to have richer conversations on IM. So no substitute there.<br><br>DMs as replacement for email - well sometimes the context is in the DM thread so the communication should be there.<br><br>But in general DM (and the whole of Twitter) is a very weak 2-way medium. It is actually a pretty weak one-way medium since the communication space is flat. It depends on the level of intimacy one has with the tweeter (twitterer). It's like getting the Christmas letter that goes to everyone. I don't care about Uncle Albert's gout, but someone on the recipient list probably does.....", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-10_15:25:51", "killed": false, "user_key": "af8f5c2191526bdc38370c24d37a9f15", "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}, "9712342": {"up_voted": false, "ip": "", "has_replies": false, "message": "Sounds like enhancements are needed.  Twitter?  Facebook?  Are you listening?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-12_08:34:30", "killed": false, "user_key": "6dcd94f35131f9de6ae425ba641cc911", "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}, "9712343": {"up_voted": false, "ip": "", "has_replies": false, "message": "Not only that I don't like Twitter's DM's and Facebook mssgs for the all technical annoyances mentioned above, but the major factor I found here /chez moi/ is non-technical.<br>I find very rude and indecent (call it netiquette) if someone on Facebook sends me a message (and I have lot of them unread) and on my web site on several places there is 'contact' page with email. Academic people usually send email directly, the others send messages - I wonder if people read 'contact', or notifications for sending email, or they are just idle and it's easier to spam you on FB?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-12_08:47:43", "killed": false, "user_key": "eb8b1b6abee3c34899e489cd17f00ef6", "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}, "9712344": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have been using <a href=\"http://peekamo.com\" rel=\"nofollow\">peekamo.com</a>.  Its mobile based but find that its much easier to use than DM and have been in conversation with the guys there and they tell me all the features you are talking about will be implement there within the next few weeks.<br><br>If anyone is interested checked it out.  It's <a href=\"http://peekamo.com\" rel=\"nofollow\">http://peekamo.com</a>, and they always appreciate feedback and actually listen.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-12_16:33:24", "killed": false, "user_key": "a1ccc04389321ff1c6a82093c0616d3e", "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}, "9712345": {"up_voted": false, "ip": "", "has_replies": false, "message": "I agree with a lot of the comments above that different technologies should be used for different things - email, facebook and twitter.<br><br>But also that the use or misuse of DM is annoying for people with a lot of followers.  As such can appreciate some of your points and reason for request for email or open tweets. Perhaps also request a polite 'No DMs' in your bio so that new followers get the message or get reminded of this post and don't DM?<br><br>So... the No Direct Mail notices make their way from the letterbox to social media channels. DM really has had a bad rap over the years!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-18_07:44:29", "killed": false, "user_key": "lindsaydavies", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "12 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712346": {"up_voted": false, "ip": "", "has_replies": false, "message": "I often find direct messages ages after they were sent. I don't mind messages on Facebook though as I find this easier to manage than my email in boxes - mainly because of the volume is currently more manageable.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-29_15:49:26", "killed": false, "user_key": "48fa57c6794e3f8287e1e0c3d4d166dc", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "11 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712347": {"up_voted": false, "ip": "", "has_replies": false, "message": "I like it. But then again, I only DM with people that I would txt, so it's virtually the same thing, just with a 140 limit.<br><br>If I were in your shoes, I probably wouldn't like it so much.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-02-02_17:50:53", "killed": false, "user_key": "9b004a313050e8caca059d46e6f36e31", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "10 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "10908434": {"up_voted": false, "ip": "", "has_replies": false, "message": "Look at this site.. who says you can't make a GREAT site with a simple layout... :P ....Kudos", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-06-15_00:05:12", "killed": false, "user_key": "28d5225c6a797056d37f80f38ad7d491", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "11068037": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hells Yeah!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-06-17_20:02:46", "killed": false, "user_key": "03d01267208a48aa5f4133fe64c47938", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "13872932": {"up_voted": false, "ip": "", "has_replies": false, "message": "nice one", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-08-04_05:39:58", "killed": false, "user_key": "facebook-1415477035", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "4 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "14863556": {"up_voted": false, "ip": "", "has_replies": false, "message": "YES! Finally someone said what I've been thinking all along. Thank you!!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-08-14_21:17:48", "killed": false, "user_key": "spleeness", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "4 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "15128942": {"up_voted": false, "ip": "", "has_replies": false, "message": "Some people will just bitch and moan about everything... The solution is quite simple don't use twitter don't use facebook if it irritates you so much that you have to write a web article about it... Use your email then...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-08-20_10:11:46", "killed": false, "user_key": "personxx", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "3 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}}, "integration": {"receiver_url": "", "theme": 4, "reply_position": true, "disqus_logo": false}, "timer": {"timer_url": "http://localhost:8005", "thread_id": "18359141", "user_id": "anonymous", "forum_id": "125200", "hash": 1277760578443170515}, "thread": {"total_posts": 0, "paginate": false, "per_page": 0, "slug": "10_reasons_why_twitter_direct_messages_suck_and_so_do_facebook8217s", "num_pages": 1, "days_alive": 0, "realtime_paused": true, "id": 18359141, "num_posts": 104, "closed": true, "queued": false, "killed": false}, "reactions_limit": 10, "context": {"show_reply": false, "use_fb_connect": true, "forum_facebook_key": "faaf467d0f47abde553c3b8e0e1b3570", "use_yahoo": false, "subscribed": false, "use_twitter_signin": true, "use_openid": false, "realtime_speed": 5000}, "reactions_start": 0, "settings": {"debug": false, "disqus_url": "http://disqus.com", "media_url": "http://media.disqus.com"}, "media_url": "http://media.disqus.com"};
	/* */ this.jsonData.cookie_messages = {"user_created": null, "post_has_profile": null, "post_twitter": null, "post_not_approved": null}; this.jsonData.session = {"url": null, "name": null, "email": null}; /* */

	
	this.curPageId = 'dsq-comments';

	this.frames = {};
};

var disqus_popup_reference = null;

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



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

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

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

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

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

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

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

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

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





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



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

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

	this._lastHash = null;

	this._accumMsg = '';

	this._lastSeqno = 0;

	this.MAX_DATA_LEN	= 1024;

	this.WAIT_TIME		= 10;

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

};

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

FragmentPacket.prototype.log = function(msg) {



};

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

		hash = this.reader.name;
	} else {

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

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

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

		this._lastSeqno = seqno;

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

				this._accumMsg = '';

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

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

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

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

};

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

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

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

	if (packetNum === 0) {

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

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

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

	if (num_packets === packetNum) {

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

	this._lastSeqno++;

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

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

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

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

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

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


	this.receiverId = receiverId;
};

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

	var listener = function(e) {

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


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

		that.receiveCallback(data);
	};

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

PostMessagePacket.prototype.send = function(msg) {



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


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

	var packet;
	if (!msg) {

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

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

var JsonRpc = function() {

	this.ids = {};

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

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

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

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

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

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

				json = 'null';
				break;
		}

		return json;
	};

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

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

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

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

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

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

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

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

		send_func(this.objectToJSON(request));

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

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


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



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


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


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

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

	this.packetHandler = null;


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


	var _createReceiverForFragmentPacket = function() {

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

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

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

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

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

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

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

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

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

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

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

			that._ready = true;
		};

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

		that.receiver.onload = receiver_onload;







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

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

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

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


	var _createReceiverForPostMessage = function() {

		var receiver_onload = function() {

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

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


		ParentMessenger['_receiver_onload_' + receiverId] = receiver_onload;

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

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

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

};

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

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

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

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

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

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

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

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

	var sendFunc = function(msg) {

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


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


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

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

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

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

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

		if (msg.username) {

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	var handleSessionData = function(session) {

		var forum_url = Dsq.jsonData.forum.url;




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

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

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


	






Dsq.Themes = {};

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



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

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

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

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

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

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

		
		

		return html;

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

		html += Dsq.Templates.pagination();

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

		html += Dsq.Templates.reactions();

		
			html += Dsq.Templates.trackbacks();
		


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

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

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

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

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

		return html;
	};

	this.postBox = function(post_id, use_fallback_iframe) {


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

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


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

		var _requestUserInfo = function() {
			var html;



			var user_has_email = false;

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

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

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


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



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

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




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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



	
	this.chooseSubscribe = function(post_id) {

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

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

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

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

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

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

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

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

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

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

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

		d = auth_data;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

				body.appendChild(edit_area);

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

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

		Dsq.Templates.toggleEdit(post_id);
	};

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

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

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

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

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

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

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

		}

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

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

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

		var extra_params = '';

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

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


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

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

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

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




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

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

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

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

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

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

		Dsq.Templates.setLoadingButton(false);
	};

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

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




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

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

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

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

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

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


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


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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

		return [windowWidth, windowHeight];
	}

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

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

		return [scrollWidth, scrollTop];
	}

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

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

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

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

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

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

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

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

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

				form.appendChild(input);
			}
		}

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

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

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

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

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

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

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

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

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

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

		return params;
	};

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

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

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

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

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

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

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

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

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

	};

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

};
// Dsq.Utils

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

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

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

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

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

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

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

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

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

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

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

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

	};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

		Dsq.Popup._closePopup(null, true);

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

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

		header = title;
		body = message;

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

	this.popAlert = this.popModal;

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

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

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

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

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

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

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

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

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

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

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

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

	};

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

		popup.style.display = 'block';

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

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

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

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

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

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

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

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

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

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

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

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

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

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

			return ret;
		};
	};

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

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

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

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


			//

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

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

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

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

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

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

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

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


	this.header = function() {

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

		

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

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

		
			html += Dsq.Templates.authPost();
		

		html += Dsq.Templates.reactions();

		
			html += Dsq.Templates.trackbacks();
		

		return html;
	};

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

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

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

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

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

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

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

		return html;
	}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	//
	// Post
	//

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

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

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

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

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

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

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

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

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

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

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

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

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

	//
	// Iframes
	//

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

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

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

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

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

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

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

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

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

	//
	// Menus
	//

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

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

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

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

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

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


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

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

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

	//
	// Popups
	//

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

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

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

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

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

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

		return this._popupGeneric(content);
	};

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

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

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

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

		return this._popupGeneric(content);
	};

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

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

		bodyHtml = message;

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

		return this._popupGeneric(content);
	};

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

	//
	// Actions
	//

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

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

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

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

		Dsq.Popup.popModal(message, title);

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

	//
	// Media
	//

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

	//
	// Callbacks
	//

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

		if(!openedMenu) {
			return;
		}

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

};
// Dsq.Post


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

	
	this.adminIsOn = false;

	
	
	

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	return obj;
}();

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

}();

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

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

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

	return obj;
}();

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

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

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

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

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

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

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

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

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

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

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

		if (isblank(openid_url)) {
			return;
		}

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

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

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

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

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

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

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

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

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

	return obj;
}();


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





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

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

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

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

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

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





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

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

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

})();

Dsq.container.className = "clearfix";
Dsq.container.innerHTML = ' \
<ul id="dsq-comments">\
	 <li id="dsq-comment-9712250">\
	 <div id="dsq-comment-header-9712250" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712250" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712250" href="http://timwindsor.com/" target="_blank" rel="nofollow">Tim Windsor</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712250" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712250" class="dsq-comment-message">Yes! I may not have *quite* the number of DMs as you (17, including some archived), but everything you write is accurate and incredibly vexing. ESPECIALLY the inability to respond to someone who\'s just DMed, but who does not follow.<br><br>I\'d add 1a. Sometimes the ability to even delete messages one-by-one simply disappears for a few day.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712251">\
	 <div id="dsq-comment-header-9712251" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712251" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712251">wesny</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712251" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712251" class="dsq-comment-message">I hate them as much as you do.  "Send me a DM.  No, wait, I\'ll follow you then you follow me then send me the DM and I will send one back then we will both unfollow each other again." It\'s not worth it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712252">\
	 <div id="dsq-comment-header-9712252" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712252" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712252" href="http://regulargeek.com/" target="_blank" rel="nofollow">robdiana</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712252" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712252" class="dsq-comment-message">Nice rant! Though it can probably be summed up as, "email is better". I am not sure why we can\'t use email as the real delivery mechanism. We can even have an "email user" link on the site itself. Why is this so hard?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712253">\
	 <div id="dsq-comment-header-9712253" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712253" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712253" href="http://stopmebeforeiblogagain.com/a-cam-dii-world-premiere/" target="_blank" rel="nofollow">Vidar Andersen</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712253" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712253" class="dsq-comment-message">My sentiments exactly. +1</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712254">\
	 <div id="dsq-comment-header-9712254" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712254" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712254" href="http://jes.uppercaseliving.net/" target="_blank" rel="nofollow">Jannifer Stoddard</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712254" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712254" class="dsq-comment-message">It frustrates us little people too!  There\'s got to be a way around it.  I\'m trying to grow my business and reach the right people.  I don\'t have any time to waste on inefficient things.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712255">\
	 <div id="dsq-comment-header-9712255" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712255" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712255" href="http://twitter.com/rickmans" target="_blank" rel="nofollow">rick</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712255" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712255" class="dsq-comment-message">You are comparing two services (mail and twitter) that cannot be compared since both are so different. Both have a set of generic features, although they both have a set of specific  features that will make any comparison very difficult or even impossible. Perhaps DM on Twitter is just not the medium that suits your needs ;).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712256">\
	 <div id="dsq-comment-header-9712256" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712256" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712256" href="http://cianconi.com/leandro" target="_blank" rel="nofollow">Leandro Cianconi</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712256" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712256" class="dsq-comment-message">It´s kill all benefits of an open conversation. It´s same the<br>reinvention of email, but without a lot of features.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712257">\
	 <div id="dsq-comment-header-9712257" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712257" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712257" href="http://gaiafilm.info/" target="_blank" rel="nofollow">David Griggs</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712257" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712257" class="dsq-comment-message">I agree with you to a point. I only use DM with people who are following me (usually those I know f-f so in that context its really like an instant txt message), and find if I try to DM those that I follow I can\'t so, @ seems to be the best. However, DM can be useful if you want to literally use it as just that, messaging that you don\'t want the public channel to see. I guess its useful more for newbies (like me) who still find the twitter thing a bit daunting!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712258">\
	 <div id="dsq-comment-header-9712258" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712258" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712258" href="http://www.soultravelers3.com/" target="_blank" rel="nofollow">Soultravelers3</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712258" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712258" class="dsq-comment-message">Ahhhh, now I understand why you did not answer my DM\'s! lol Thanks so much for this post which really makes a lot of sense. Truthfully, I never thought much about these points because I don\'t get the massive kind of DM\'s that you get. ( I only have 1207 followers and most of my conversation is through @ \'s ).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712259">\
	 <div id="dsq-comment-header-9712259" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712259" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712259" href="http://neuronspark.com/" target="_blank" rel="nofollow">paul</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712259" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712259" class="dsq-comment-message">DM in Twitter is a convenience not a business application</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712260">\
	 <div id="dsq-comment-header-9712260" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712260" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712260" href="http://americanshelflife.com/" target="_blank" rel="nofollow">Amanda Mooney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712260" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712260" class="dsq-comment-message">I prefer Facebook messages to email for most informal personal correspondence and because FB has inbox search, that makes the process pretty easy for me. But I 100% agree with you on DMs. I have 1,600 DMs and NONE of them are searchable so if I don\'t catch them and respond early, it\'s a black hole. Thanks for trying to get this feature improved.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712261">\
	 <div id="dsq-comment-header-9712261" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712261" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712261" href="http://www.totalpicture.com/" target="_blank" rel="nofollow">Peter Clayton</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712261" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712261" class="dsq-comment-message">Scoble,<br>Thanks for your thoughts on this. I had started using DM as an IM client (I use Twhirl when on my computer - which feels, in many ways, like an IM app). Now I see for Twitter connections with a very large following this can be stupid and annoying.<br>I think in some cases DM still has value, but I\'m going to be far more selective in the future.<br>Peter</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712262">\
	 <div id="dsq-comment-header-9712262" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712262" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712262" href="http://ChrisBaskind.com" target="_blank" rel="nofollow">Chris Baskind</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712262" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712262" class="dsq-comment-message">I generally agree with all of these. No point re-inventing the wheel: if Twitter would simply integrate its messaging system with email, users could apply their existing workflows to manage Twitter communications. Just give us some auto-reply options and the ability to classify what gets forwarded. We\'ll do the rest.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712263">\
	 <div id="dsq-comment-header-9712263" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712263" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712263" href="http://blogforprofit.com/" target="_blank" rel="nofollow">Grant D Griffiths</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712263" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712263" class="dsq-comment-message">Actually, I disagree.  There is nothing wrong with DM\'s if they are used for just that.  If it requires more then 140 characters, then send an email.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712264">\
	 <div id="dsq-comment-header-9712264" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712264" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712264">hansveld</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712264" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712264" class="dsq-comment-message">I don\'t hate DMs. There should however be one (easy to implement feature) which is the ability to select people you want to have "DM releationship" with. Your real buddys. That\'s all...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712265">\
	 <div id="dsq-comment-header-9712265" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712265" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712265" href="http://xark.typepad.com/" target="_blank" rel="nofollow">Dan</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712265" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712265" class="dsq-comment-message">I don\'t hate them, I just use them differently and rarely. Me and a buddy work on video projects and DMs are a good way for us to stay in commo with short messages on phone or computer (increasing chance of success). They also come in handy when I need to contact a Twitter friend who isn\'t on my phone address book.<br><br>DMs and SMS work best as a way to set up longer communication ("Call me ASAP"), so making them larger just encourages people to use them in more annoying ways. My .02.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712266">\
	 <div id="dsq-comment-header-9712266" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712266" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712266" href="http://markupdude.com" target="_blank" rel="nofollow">deb</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712266" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712266" class="dsq-comment-message">I did not know even Scoble has a boss!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712267">\
	 <div id="dsq-comment-header-9712267" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712267" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712267" href="http://ecotourismleavingfootprints.blogspot.com/" target="_blank" rel="nofollow">Guillaume Foutry</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712267" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712267" class="dsq-comment-message">But if you use TweetDeck or People Browser is it not possible to delete and sort out your tweets??</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712268">\
	 <div id="dsq-comment-header-9712268" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712268" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712268" href="http://funnybusiness.typepad.com/funnybusiness/2008/09/new-way-to-get.html" target="_blank" rel="nofollow">Elana Centor</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712268" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712268" class="dsq-comment-message">Now that you put it that way--what were they thinking?  I think they were thinking that people wouldn\'t be using the feature as regular email but more a personal shout out related to a Tweet or Facebook message.<br><br>Also I know that my daughter and her cohorts don\'t use traditional email so its txt, Facebook or twitter for them.<br><br>Perhaps the good folks at Twitter/ could create a way that your DM\'s are forwarded to your gmail account or they could give people the option to block DMs.<br><br>For me, I certainly have a limited number of DMs and with my TweetDeck it\'s easy to take a look. But if I were popular.....<br><br>Since I do not have a huge following</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712269">\
	 <div id="dsq-comment-header-9712269" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712269" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712269" href="http://www.catepol.net/" target="_blank" rel="nofollow">catepol</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712269" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712269" class="dsq-comment-message">email is better, sure! But I use always Twitter DM for rapid conversations (like chat but private) with many of my friends. I love them. Sure for work or longer answers, mail is better. But DM notifications also arrive in my gmail, and I have mail addresses of friends who DM me...so if I want I can mail them or DM...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712270">\
	 <div id="dsq-comment-header-9712270" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712270" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712270" href="http://jahangiri.us/news" target="_blank" rel="nofollow">Holly Jahangiri</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712270" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712270" class="dsq-comment-message">Not being obscenely popular, yet, I haven\'t quite come to HATE DMs with a purple passion, but you\'ve made your reasons clear and I agree with some of them.<br><br>I like robdiana\'s suggestion: an "email user" link would be much more useful.<br><br>There are times when a private message is needed; sometimes, I have no other contact info for a person. And I certainly wouldn\'t want to just blurt my phone number out to Twitter and, by extension, Google (@Pistachio, that was a classic).<br><br>A select multiple and/or mass delete feature would address many of your complaints, and I\'ve seen a number of people suggest that. I don\'t know why it\'s not an option. My solution? I just don\'t bother cleaning out the inbox. If Twitter servers are overloaded as a result, maybe they\'ll fix that problem one day, eh?<br><br>DMs are a useful way to see if someone\'s following you back. (@Scobelizer, I guess you don\'t have to worry about DMs from me! :) But it would be just as useful to have a "Following back? Yes!" message displayed on a user\'s profile when you land there.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712271">\
	 <div id="dsq-comment-header-9712271" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712271" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712271" href="http://irishkc.com/" target="_blank" rel="nofollow">eolai</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712271" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712271" class="dsq-comment-message">6. You ask me a question that requires a 500 word response but you ask it in a place that limits me to 140 characters. Thanks for frustrating me.<br><br>And that makes DMs or Twitter bad? If someone sends you a DM when they really should call around to your home, is that another reason DMs suck?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712272">\
	 <div id="dsq-comment-header-9712272" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712272" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712272" href="http://www.KolbeMarket.com/" target="_blank" rel="nofollow">BarbaraKB</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712272" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712272" class="dsq-comment-message">Reason # 1 why I have gmail account in my Twitter profile: please contact me thru gmail! Really, many folks luv DM as a "back channel" for open @ convos @ Twitter.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712273">\
	 <div id="dsq-comment-header-9712273" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712273" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712273" href="http://popculturemama.blogspot.com/" target="_blank" rel="nofollow">artbyskym</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712273" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712273" class="dsq-comment-message">I don\'t hate DMs because there are just certain things you don\'t want to share with 80 bazillion people. I just would like my recycle bin back and a better way to clear them (perhaps a select all/delete button) Someone mentioned the other day about how when they are deleted, it deletes the receiving party\'s also...yeah that needs cleared up too.<br>All in all, I\'m for them :)<br>Peace</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712274">\
	 <div id="dsq-comment-header-9712274" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712274" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712274" href="http://lmashton.com/" target="_blank" rel="nofollow">Laurie Ashton Farook</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712274" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712274" class="dsq-comment-message">Yup, I don\'t have as many DMs as you, either - 60something. BUT I am completely with you for pretty much every reason you gave.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712275">\
	 <div id="dsq-comment-header-9712275" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712275" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712275" href="http://techlang.com/" target="_blank" rel="nofollow">Jason</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712275" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712275" class="dsq-comment-message">DM is spam 2.0, @ev should look into this</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712276">\
	 <div id="dsq-comment-header-9712276" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712276" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712276" href="http://lesliebradshaw.com/" target="_blank" rel="nofollow">Leslie Bradshaw</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712276" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712276" class="dsq-comment-message">It seems almost too obvious to say this, but like your use of Facebook Mr. Scoble, you are certainly the uber user who bumps up against constraints that the rest of us may never encounter.  That being said, I think it is admirable on some level that you challenge the limits to the point of even breaking the system.  Not only that, but you also offer helpful solutions.  Rock on.<br><br>In terms of my use of DMs, I talk to a lot of bloggers and friends this way and find it to be a good way to get in touch with folks (1) quickly and/or (2) for whom I do not have an email address.<br><br>I also appreciate you posting about this so my feelings are no longer hurt that you have never returned any DMs I have sent :P  Saw you were in DC a few weeks back and I suggested some coffee or sumthin.  Now I know, DM is not the way to go with you! ~ L.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712277">\
	 <div id="dsq-comment-header-9712277" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712277" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712277" href="http://www.twitter.com/itsjenjen" target="_blank" rel="nofollow">Jennifer</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712277" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712277" class="dsq-comment-message">I only find DM\'s useful for quick messages outside of the public\'s eye, like to exchange e-mail addresses for lengthier correspondence. I wasn\'t aware so many people used DM\'s for serious interactions. That would get annoying very fast.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712278">\
	 <div id="dsq-comment-header-9712278" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712278" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712278">Steve A Furman</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712278" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712278" class="dsq-comment-message">Your social media celebrity status puts you in an entirely different league. Most of us don\'t have those volume problems. Agree with all your reasons why it\'s sub-optimal. I do find them valuable for communicating with my vendor partners in a quick message. I can be sitting in a meeting and tap out a DM to get the conversation started. Helpful in that way. Cheers.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712279">\
	 <div id="dsq-comment-header-9712279" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712279" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712279" href="http://velvet.id.au/" target="_blank" rel="nofollow">Sarah</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712279" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712279" class="dsq-comment-message">Twitter DMs also have the annoying behaviour that if the person who sent them to you deletes them out of their sent messages page, they\'re removed from *your* inbox as well. (I\'m not sure, but I think the reverse also used to be true, where if you delete a received DM it was removed from the person\'s sent box too. Maybe this might be why you can no longer delete the DMs received).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712280">\
	 <div id="dsq-comment-header-9712280" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712280" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712280">Debbie</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712280" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712280" class="dsq-comment-message">No, I like them. They\'re a handy way of responding to somebody I barely know and whose email I do not have. They help the personal flow of Twitter for me and are often more appropriate than @replies. If I start to make further contact with someone, *then* I may get their email and use that instead.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712281">\
	 <div id="dsq-comment-header-9712281" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712281" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712281" href="http://www.toadstoolblog.com/" target="_blank" rel="nofollow">Alan Wolk</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712281" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712281" class="dsq-comment-message">While I\'m very much with you overall on the problems with DM, I\'m a bit confused as to your points 4 &amp; 10.<br><br>My DMs come straight to my Gmail inbox where I can forward, sort, etc. at will.<br><br>What I can\'t do is <i>respond</i> to them from my email (my workaround is to remove the Twitter address and replace it with the sender\'s actual email address, which is kind of a pain)<br><br>If I want to respond via DM, I have to log back into Twitter and do it that way which is time consuming and often defeats the reason I\'ve turned off Twitter in the first place (concentrating on cleaning up my email inbox)<br><br>But if Twitter DMs would act like regular email-- show up in my Gmail inbox with the ability to respond directly from email, that would be a start. Though, to your point #6, not a full-on solution.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712282">\
	 <div id="dsq-comment-header-9712282" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712282" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712282" href="http://www.techspikes.com/" target="_blank" rel="nofollow">Narayanan Hariharan</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712282" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712282" class="dsq-comment-message">I hate DM\'s too and here\'s why. I\'ve had the following experience with two different people.<br><br>- I\'m following X but X doesn\'t follow me.<br>- X tweets about some topic to which I reply @X<br>- X sends a DM asking for more details<br>- I try DMing back to X but that is not possible (he\'s not following me, remember?) so I reply @X asking him to follow me so that I can reply via DM (that info was confidential n couldn\'t pass that on the public timeline.)<br>- I get another DM in return which has a smiley! Doesn\'t bother to follow me!<br><br>I\'ve had not one but two such experiences from two different people. Why even send a DM asking for information when you don\'t want to follow that person?<br><br>It\'s because of this breed of Tweeps that I hate the DM feature of Twitter.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712283">\
	 <div id="dsq-comment-header-9712283" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712283" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712283" href="http://www.dariosalvelli.com" target="_blank" rel="nofollow">Dario Salvelli</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712283" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712283" class="dsq-comment-message">Hi Robert. Yes, email is better! I send you a DM on Twitter some days ago because i know that you always control Twitter but your list is true! :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712284">\
	 <div id="dsq-comment-header-9712284" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712284" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712284" href="http://crueltobekind.org/" target="_blank" rel="nofollow">Nicole Simon</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712284" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712284" class="dsq-comment-message">I tend to send DM to people but only if I know they read them and if I dont know them, I do inlcude my email address. If I do not get an reaction I\'ll try to get out the mail address of that person, which btw is often hard to do.<br><br>Personally I do receive and read ALL of my DM and FB message in my mail inbox as they are forwarded. Depending on the content of the message I do invest more or less time to find out how to answer.<br><br>not being able to reply in DM is a reason not to reply at all, etc.<br><br><br>btw @amanda - every single good email client has a decent search feature. if you rely on fb for having search, you have a whole lot of other issues.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712285">\
	 <div id="dsq-comment-header-9712285" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712285" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712285" href="http://adityamukherjee.com/geekaholic" target="_blank" rel="nofollow">adityavm</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712285" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712285" class="dsq-comment-message">Kinda serves you right for not telling people strongly enough to mail you for \'important\' things. Not to mention the fact that you follow 21k+ people. I like DMs, because they\'re a good substitute when I don\'t want to mail someone for a really small thing, or to reach them quickly (DMs notifications go out as SMS\' here) no matter where they are.<br><br>Getting rid of DMs is not the solution. Fixing \'your\' way of using DMs is. A good way to start will be to set Twitter to mail you when you get a DM. That way you can file them and read them at your own leisure. You could maybe set up a bot that could send a DM back to a user telling them to mail you instead. There are various ways to deal with it. Getting rid of the feature will mess things up for people who\'re use to it *and* use it sensibly.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712286">\
	 <div id="dsq-comment-header-9712286" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712286" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712286" href="http://ni.desakota.net/" target="_blank" rel="nofollow">Jimmy Howe</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712286" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712286" class="dsq-comment-message">What the hell is DM...call me if you have time scoble...LOL</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712287">\
	 <div id="dsq-comment-header-9712287" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712287" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712287">chucklasker</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712287" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712287" class="dsq-comment-message">It\'s like blog comments!! Oh wait, you\'re using blog comments!  ;)<br><br>Add to your list - auto-DMs. Follow someone and get a "thanks for following me. I like you. Here\'s my sales pitch" DM. Sigh.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712288">\
	 <div id="dsq-comment-header-9712288" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712288" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712288">David</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712288" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712288" class="dsq-comment-message">I think of Twitter like a group of people sitting in a cafe/restaurant/pub and talking to one another.<br><br>In the 3D world, when someone goes to the toilet he misses out on the conversation that takes place while he/she is away. With twitter you have a standing record of what went on, and you can catch up.<br><br>And you don\'t need a piece of paper with you to write down the details of that link to a good story, or whatever.<br><br>But not everything should be said out loud to the group, particularly when there is a throng of people who are just passing by, all listening to the conversation.<br><br>So I see a use for direct messages. I don\'t want to say everything in public -  and some things, such as "All the links on your website are old and dead - you need to look at them", are nicer said in private, so as not to embarrass someone by broadcasting them.<br><br>But the biggest reason for direct messages is that without them I haven\'t a hope of seeing messages intended for me unless I happen to chance upon them.<br><br>And as not everyone is in my time zone, and as I am not on twitter all the time, I am going to miss certain public messages unless I go hunting, and while I do look back over the previous hours\' messages - I might easily miss a message.<br><br>One thing I would like is for Twitter to email me when someone replies to one of my direct messages, in the same way that it emails me when I receive a direct message.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712289">\
	 <div id="dsq-comment-header-9712289" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712289" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712289">Max</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712289" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712289" class="dsq-comment-message">Another one who agrees here. Even the notifications for DMs, whether it\'s the default web interface, or a specific client like Tweetdeck, generally suck or are nonexistent. 140 characters for public bulletins is interesting, occasionally useful, and frequently humorous, but for private messaging it becomes comical and absurd.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712290">\
	 <div id="dsq-comment-header-9712290" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712290" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712290" href="http://www.bigsexymedia.com/" target="_blank" rel="nofollow">Rafael Marquez</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712290" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712290" class="dsq-comment-message">These are some great feature requests, but twitter isn\'t email.<br><br>I certainly see the value in everything that you\'re asking for, but since I don\'t get that many DMs this isn\'t a problem for me.<br><br>What should happen, is that someone should make a twitter tool that lets you do all these things and more with your DMs. Maybe a tweet deck add-on that whenever you get a DM it auto-responds that the sender should email you instead. I say "someone should" because I\'m not a programmer and have no clue if such a tool is even technically possible.<br><br>Cheers!<br>@rafaelmarquez</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712291">\
	 <div id="dsq-comment-header-9712291" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712291" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712291">Joshua Needham</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712291" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712291" class="dsq-comment-message">Here is a suggestion to organizing your direct messages from Twitter using any mail client that allows for the creation of folders and rules like Apples Mail.app which I use regularly for not only email but RSS feeds as well.<br><br>First with Mail you have the ability to create multiple folders and attach rules for any email message including but not limited to who it is from, subject of email, text within the content, who it\'s from, and pretty much any other defining aspect of any particulars in any email message.<br><br>Second, is the ability of creating rules for folders which indicated above can be a slew of variables to direct any message to any folder based on pretty much any predetermined variable or variables which allows you to segment your email messages down to a single keyword or phrase.<br><br>I have personally created 2 rules for Twitter emails  which are as follows:<br><br>1)New followers-This rule moves all messages received that contain "is now following" in the subject line of the email. I have a couple Twitter accounts so I have also added account specifics to the rule which directs the messages to their respective folder based on which account has a new follower.<br><br>2) Direct messages- This rules segments direct messages to their respective account folders I\'ve created which allows me easy access to every direct message I\'ve ever received.<br><br>Using this process you can do pretty much anything you would do with any other email message received.<br><br>Hope this helps take the burden away from the featureless DM section on Twitter.<br><br>Sincerely,<br>Joshua Needham<br><a href="http://Twitter.com/iphonedevforum" rel="nofollow">http://Twitter.com/iphonedevforum</a><br><br><br>2)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712292">\
	 <div id="dsq-comment-header-9712292" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712292" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712292" href="http://www.gadgetwatcher.blogspot.com/" target="_blank" rel="nofollow">Sumaiya</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712292" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712292" class="dsq-comment-message">really cool post... check my one :D</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712293">\
	 <div id="dsq-comment-header-9712293" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712293" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712293" href="http://www.fg2.com/clearspace/blogs/squared_root/" target="_blank" rel="nofollow">Mike Chapman</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712293" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712293" class="dsq-comment-message">I use the DM to thank people for following me and have any DMs I receive forwarded to my gmail account. This hasn\'t been a big issue for me but I certainly see your point given the volume you\'re dealing with.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712294">\
	 <div id="dsq-comment-header-9712294" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712294" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712294" href="http://richardweiser.com/" target="_blank" rel="nofollow">Richard Weiser</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712294" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712294" class="dsq-comment-message">I like them. I use it in preference to e-mail, like a text message, but platform agnostic. That said, I have dozends of followers, not hundreds. May I humbly suggest you pay attention enough to block the pests so you can pay attention to the pearls?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712295">\
	 <div id="dsq-comment-header-9712295" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712295" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712295" href="http://jasonpenney.net/" target="_blank" rel="nofollow">Jason Penney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712295" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712295" class="dsq-comment-message">I don\'t get a large volume of DMs, but I have missed them, even with the email alerts turned on.  But at least twitter\'s DM email alerts contain the content of the message (unlike other sites who just send the email telling you there is a message for you without actually sending you the message).<br><br>Now if only I could reply to that DM notification email with a &lt; 140 character email and have it show up as a DM to the originator, letting us each use the tool that works best for us.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712296">\
	 <div id="dsq-comment-header-9712296" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712296" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712296" href="http://jasonpenney.net/" target="_blank" rel="nofollow">Jason Penney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712296" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712296" class="dsq-comment-message">I don\'t get a large volume of DMs, but I have missed them, even with the email alerts turned on. But at least twitter\'s DM email alerts contain the content of the message (unlike other sites who just send the email telling you there is a message for you without actually sending you the message).<br><br>Now if only I could reply to that DM notification email with a &lt; 140 character email and have it show up as a DM to the originator, letting us each use the tool that works best for us.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712297">\
	 <div id="dsq-comment-header-9712297" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712297" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712297" href="http://www.igobydoc.com/" target="_blank" rel="nofollow">iGoByDoc</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712297" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712297" class="dsq-comment-message">Not sure I can agree with you here 100%. DM\'s are a different monster all together. Rather than hating the DM, maybe throw some vile at the folks who send the DM that requires more than 120 characters.<br><br>I am not so sure it is the system (DM) that is at fault here. I think it is more about how everyone and thier dog is trying to use twitter for so many different purposes.<br><br>All the points you make however are very agreeable and on point... but for the average user of Twitter with no where near as many followers as you DM\'s are a great little tool.<br><br>With so many services (facebook, friendfeed, twitter etc) that you, myself and others are subscribed to, follow and are followed at, it has almost become impossible to maintain all of these different social networks and respond to everyone. Maybe there just needs to be a better way.. do not know what it is, but there has to be one right?<br><br>Maybe one way to curve the issue is do like @garyvee does... put in your profile how to contact you and explain you will never get to DM\'s.<br><br>Anyway... that is my take.<br><br>- Doc</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712298">\
	 <div id="dsq-comment-header-9712298" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712298" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712298" href="http://www.twitter.com/guiambros" target="_blank" rel="nofollow">guiambros</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712298" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712298" class="dsq-comment-message">Essentially you\'re saying that twitter\'s DM should become yet-another email service, which would be pointless. We DO HAVE email already, and it\'s a major fail. Too many email marketing messages, newsletter, spams, work emails, etc<br><br>How can @ev fix DM messages?<br><br>1) EMAIL ALERTS.  Anytime you receive a DM, twitter sends a copy to your email. There you can click and respond through twitter, or just hit reply and continue the conversation by email. Best of both worlds, and address all your points above...<br><br>2) DM ANYONE.  Let anyone DM any other user, regardless their follow status.  Twitter was one of the first platforms to break the concept of "friend", allowing asynchronous social communications between peers; why on earth DM should require synchronous connection between the two?  The recipient still have the option to just ignore the message or to block the person entirely...<br><br><br>Also, taking the opportunity we\'re discussing twitter improvements, REPLIES are also broken!<br><br>3) REPLIES ANYWHERE ON TWEETS: the "@user" should be recognized as a reply anywhere on the tweet, regardless if it\'s on the beginning or not.<br>(it was like this before, but I suspect they changed to make it easier/faster to optimize the SQL queries, using standard indexing instead of full-text index)<br><br>my 2 cents.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712299">\
	 <div id="dsq-comment-header-9712299" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712299" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712299" href="http://travelingmamas.com/" target="_blank" rel="nofollow">MudslideMama</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712299" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712299" class="dsq-comment-message">These are a lot of valid point - and the post is a great rant - but for those of us with significantly fewer followers, it\'s less relevant. Twitterers who choose to only follow people they virtually "know" enjoy DMs because they\'re not for business, or for public consumption. Just informal asides to the larger group conversation.<br><br>I suppose it all boils down to the different ways people use Twitter in the first place.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712300">\
	 <div id="dsq-comment-header-9712300" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712300" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712300">jbame</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712300" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712300" class="dsq-comment-message">hey scoble, great article, just a question: how do you get hotmail to forward to gmail? Thanks!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712301">\
	 <div id="dsq-comment-header-9712301" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712301" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712301">Chris</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712301" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712301" class="dsq-comment-message">You, sir Scoble, are a power user with 1000s of followers so I can understand why the existing features are not capable of meeting your needs.<br><br>I think that for most users the current DM feature is sufficient, but I\'m sure we\'ll see some of the features requested above incorporated in the next year.<br><br>@cbell619</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712302">\
	 <div id="dsq-comment-header-9712302" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712302" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712302" href="http://bwana.org/" target="_blank" rel="nofollow">Bwana</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712302" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712302" class="dsq-comment-message">You should rename this to "The top 10 reasons why Twitter should convert DMs to email addresses". That\'s essentially what this article is saying. While we\'re at it, get rid of instant messaging systems too. They have a lot of the same problems you listed here. Drop everything and revert to email. Right?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712303">\
	 <div id="dsq-comment-header-9712303" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712303" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712303" href="http://www.hooversbiz.com/" target="_blank" rel="nofollow">TimWalker</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712303" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712303" class="dsq-comment-message">Robert -- Your enumerated points are an excellent reminder that the granddaddy (and still heavyweight champion) of the online social media is . . . e-mail.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712304">\
	 <div id="dsq-comment-header-9712304" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712304" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712304">JamesGecko</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712304" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712304" class="dsq-comment-message">You\'re asking for full email features in Twitter? You know it\'s designed the way it is due to the limitations of GSM SMS messages, right?<br><br>6, 7, and 9 don\'t apply to Facebook.<br>5. Doesn\'t even make sense given the 140 character limit of Twitter. Use email for that.<br><br>If you\'re talking about Facebook, you have some valid complaints. You\'re trying to use Twitter for things it was not designed for, though.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712305">\
	 <div id="dsq-comment-header-9712305" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712305" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712305" href="http://twitter.com/dgabriner" target="_blank" rel="nofollow">Danny Gabriner</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712305" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712305" class="dsq-comment-message">Why don\'t you try to offer up some sort of a solution?  Do you want all of these problems fixed?  That\'s probably a good lot of work.  Do you want all DMs fully disabled?  That\'s might piss off a few people who use the feature.  Do you want the ability to set your preferences to disable DM?<br><br>If you truly want change, it seems like the best way to get it is to offer a few solutions.  I\'m not sure what the best answer is here.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712306">\
	 <div id="dsq-comment-header-9712306" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712306" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712306" href="http://www.leadsexplorer.com/" target="_blank" rel="nofollow">LEADSExplorer</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712306" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712306" class="dsq-comment-message">If one is popular or has power of any kind: one gets direct messages and complain. (We understand)<br>If one is a nobody and no power at all: one gets no direct messages and complain for the lack of interest.<br><br>We are nobody: @LEADSExplorer</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712307">\
	 <div id="dsq-comment-header-9712307" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712307" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712307" href="http://staynalive.com/" target="_blank" rel="nofollow">Jesse Stay</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712307" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712307" class="dsq-comment-message">Good luck getting either @ev OR Facebook to respond on this.  The only thing Twitter ever responds to is if you call them out publicly for blaming their outages on you. ;-)  They say they listen, but they don\'t.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712308">\
	 <div id="dsq-comment-header-9712308" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712308" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712308" href="http://blog.prolificprogrammer.com/" target="_blank" rel="nofollow">Prolific Programmer</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712308" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712308" class="dsq-comment-message">Scoble, if I were to design a system to add tagging to twitter messages, would you use it? Let me know through twitter @hdiwan</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712309">\
	 <div id="dsq-comment-header-9712309" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712309" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712309">Henrik</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712309" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712309" class="dsq-comment-message">Robert,<br><br>AS I read your post I thought, why couldn\'t Twitter allow you to get direct messages wherever you want them. Forwarded to your email, or printed out and sent via carrier pigeon, if that is what you want.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712310">\
	 <div id="dsq-comment-header-9712310" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712310" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712310" href="http://dcortesi.com/" target="_blank" rel="nofollow">Damon</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712310" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712310" class="dsq-comment-message">I wrote a small bookmarklet to help with the mass deleting of DMs. You can find it on my site, here: <a href="http://dcortesi.com/tools/dm_deleter/" rel="nofollow">http://dcortesi.com/tools/dm_deleter/</a><br><br>One of the challenges, though, is keeping up with Twitter. I\'ve had to update it once a month or so. Not to mention the times (like right now) where the delete functionality is disabled on DMs, which also affects the bookmarklet.<br><br>It\'s a hack, but it works quite well and I know several people whack a few thousand at a time much to the demise of the Twitter database...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712311">\
	 <div id="dsq-comment-header-9712311" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712311" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712311" href="http://backtype.com/phefland" target="_blank" rel="nofollow">phefland</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712311" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712311" class="dsq-comment-message">True, so DM\'s suck. But again, I think a lot of Twitters popularity, is its extreme simplicity. There are 140 characters and not a lot of bells and whistles. Twitter is no doubt as a communication tool. I guess what I mean is that its not the DM as such that is really bad, its the way people chose to use it for things they should use email for.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712312">\
	 <div id="dsq-comment-header-9712312" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712312" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712312" href="http://www.chernow.org/blog" target="_blank" rel="nofollow">Adam</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712312" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712312" class="dsq-comment-message">I hate DMs.  I get DMs from people and then I end up forgetting where information is because it\'s not in my e-mail!!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712313">\
	 <div id="dsq-comment-header-9712313" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712313" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712313" href="http://www.growmap.com/how-to-contact-twitter-users-who-are-not-already-following-you/" target="_blank" rel="nofollow">Internet Strategist</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712313" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712313" class="dsq-comment-message">Twitter totally flunked the usability test on this DM issue. One of the first people I followed there sent me an automated DM message which of course I could not respond to leading me to (incorrectly) believe that I could not message anyone who wasn\'t following me. I even wrote a blog post on it.<br><br>The way it flips between sent and inbox is confusing too. And what ARE they thinking not allowing us to EASILY delete messages? That means options to delete one, many or all at once.<br><br>We also need a way to mark messages we want to answer later because the time will come when you can\'t answer all of them right away and then they\'ll fall through the cracks leading people to believe you\'re ignoring them.<br><br>Every system that exists would greatly benefit by recruiting power users with experience beta testing to improve their usability - ideally when they first start so they notice these "little" things that lose new users.<br><br>I am not the only one with a background in diagnosing computer issues and usability and we are not all that difficult to find. I volunteer to test any system willing to actually listen to and act on valid feedback.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712314">\
	 <div id="dsq-comment-header-9712314" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712314" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712314" href="http://laughingsquid.com/" target="_blank" rel="nofollow">Scott Beale</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712314" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712314" class="dsq-comment-message">Bravo Robert! I agree with you 100% and hate direct messages with a passion.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712315">\
	 <div id="dsq-comment-header-9712315" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712315" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712315" href="http://www.her-media.com/" target="_blank" rel="nofollow">Karrine McFarlane</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712315" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712315" class="dsq-comment-message">I can understand your frustration, though I still like the DM feature. If someone DMs me and I need more space, I simply say hey shoot me an email.<br><br>My thoughts:<br>1) We should be able to bulk delete.<br>2) If I put them in folders then I would never get to them ;) So please no folders.<br>3) Re sort is a GOOD idea- by user by date. GREAT IDEA !<br>7) If someone DM\'s me I should be able to reply whether they follow me or not.<br><br>But DM is not email so I really wouldn\'t want Twitter DM to have email features.<br><br>"I can’t CC, or copy other people, or send a message to a group. Things that email has been able to do for years"<br><br>Isn\'t the idea of twitter simple fast communication in 140 characters or less ?<br><br>I agree if the reply needs 140 characters or more - people really don\'t use DM use an email. I think its an issue with the people DM\'ing you though not Twitter.<br><br>Which leads me to my favorite rant - Hey PEOPLE if you want to work online in this industry list your email on your blog or website. OK rant over :)<br><br>Twitter is for simple DMs Email is for email.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-10209794">\
	 <div id="dsq-comment-header-10209794" class="dsq-comment-header">\
	 <cite id="dsq-cite-10209794" class="dsq-comment-cite">\
	 <span id="dsq-author-user-10209794">ablackanimal</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-10209794" class="dsq-comment-body">\
	 <div id="dsq-comment-message-10209794" class="dsq-comment-message">If you are tired of facebook but want a way to connect with artists and musicians <br>then you should check out <a href="http://www.putiton.com" rel="nofollow">www.putiton.com</a><br>If you are tired of facebook but still want to connect with your friends then pick up the phone...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712316">\
	 <div id="dsq-comment-header-9712316" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712316" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712316" href="http://fudge.org/" target="_blank" rel="nofollow">Jay Cuthrell</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712316" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712316" class="dsq-comment-message">1. Best policy to ignore on the system and let Gmail or your email filters do the rest.<br><br>2. Actually, I do just that very thing with Gmail.  I apply tags.  You\'ll simply need to key off the content and header of the message.  Please see below for a light tutorial on the items you can key off in your own filtering strategy with either server side or desktop approaches:<br><br>From envelope is of the form<br><br><a href="mailto:twitter-dm-USERNAME=DOMAIN@postmaster.twitter.com" rel="nofollow">twitter-dm-USERNAME=DOMAIN@postmaster.twitter.com</a><br><br>Where USERNAME@DOMAIN is your registered email address<br><br>Note that the "twitter-dm" is consistent with all DM\'s sent since the most recent changes to the email envelope.<br><br>Subject is of the form<br><br>Direct message from TWITTERNAME<br><br>Also, and more importantly, there are a significant number of X headers included of the form<br><br>X-Twitter*<br><br>Example:<br>X-Twittercreatedat: Fri Dec 05 16:28:15 +0000 2008<br>X-Twitterrecipientscreenname: [TWITTERNAME]<br>X-Twitterrecipientid: [NUMERICVALUE]<br>X-Twitteremailtype: direct_message<br>X-Twitterdirectmessageid:  [NUMERICVALUE]<br>X-Twittersenderid:  [NUMERICVALUE]<br>X-Twittersendername: [TWITTERNAME]<br>X-Twittersenderscreenname: [TWITTERNAME]<br>X-Twitterrecipientname: [TWITTERNAME]<br><br>Where [value] represents the specific item as the name implies.<br><br>Please review your headers to see what I mean.<br><br>3-10. See point 2.<br>11. Please don\'t do that.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712317">\
	 <div id="dsq-comment-header-9712317" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712317" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712317" href="http://fudge.org/" target="_blank" rel="nofollow">Jay Cuthrell</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712317" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712317" class="dsq-comment-message">Oh, and to clarify -- it is apparent that Facebook is just not as adept or as invested as the Twitter team in their use of items to key off in their email service.<br><br>I\'ll reserve calling Facebook email a steaming bucket of fail because I\'m sure<br><br>a) they can fix it pretty quickly and extend upon Twitter\'s ideas and approach<br><br>and/or/but<br><br>b) they don\'t really care about the feature at all outside of its use in the Facebook silo... yet?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712318">\
	 <div id="dsq-comment-header-9712318" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712318" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712318">vishalmanohar</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712318" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712318" class="dsq-comment-message">DM does have a use case with web services built around Twitter. For e.g. Buxfer has a service where you can manage your financial transactions just by sending DM to buxfer.<br><br>But you are right that the design is a little flawed that you cannot control DM in anyway.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712319">\
	 <div id="dsq-comment-header-9712319" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712319" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712319">Erich</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712319" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712319" class="dsq-comment-message">I don\'t understand the problem - I get an email every time I get a DM</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712320">\
	 <div id="dsq-comment-header-9712320" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712320" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712320" href="http://ariherzog.com" target="_blank" rel="nofollow">Ari Herzog</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712320" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712320" class="dsq-comment-message">My numero uno beef with the DM system is the lack of search functionality.<br><br>Your #7 about DMs and following is less frustrating but equally annoying.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712321">\
	 <div id="dsq-comment-header-9712321" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712321" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712321" href="http://www.webpadange.lt/" target="_blank" rel="nofollow">ezg</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712321" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712321" class="dsq-comment-message">I think that DM sucks only for busy or popular people, because they don\'t have much time and they are getting many messages. For small twitter users like me DM don\'t me anything, because i get only 1-5 messages per week and there is no problem to answer it..</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712322">\
	 <div id="dsq-comment-header-9712322" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712322" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712322" href="http://webhat.wordpress.com/" target="_blank" rel="nofollow">Daniel W. Crompton</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712322" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712322" class="dsq-comment-message">I agree with you completely, why implement something to superceed an existing product, like email, which, for all it\'s faults, works the way I want and expect it to. With correct integration between messaging systems I should never need to copy-paste, fullstop.<br><br>This is the reason that a few friends and I build a Unified Messaging Platform which makes it possible for people to access their messages/data with the interface they want, rather than being locked into mail/usenet/web/ftp/twitter/chat/etc... Sadly VCs didn\'t think it was so innovative in 2000 so we gave up and suffer like everybody else. Although we suffer slightly less... :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712323">\
	 <div id="dsq-comment-header-9712323" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712323" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712323" href="http://chupchap.twitter.com/" target="_blank" rel="nofollow">chupchap</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712323" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712323" class="dsq-comment-message">I have a solution for two of the problem you are facing. I wanted to say this yesterday itself. (before 70 odd people commented =D )<br>The problems you face: No way to sort DM\'s<br>                                      Not easy to search<br><br>Well I don\'t have many mails 25 odd may be. Mopst of them are not in my twitter profile as I deleted them. So where are these mails? IN my inbox of course. I get an alert everytime someone DMs me and the message is delivered to my inbox, where I tag it and archive it (gmail). When I have to search for info within those mails well gmail search\'s ability to search within particular tags comes handy!<br><br>Now the problem you face now is similar to the problem I have with an old email id of mine. I get only spam mails there now and they are so many in number that I get tired deleting them. What you can do ignore all the past DMs and start reading all new Dms now on. Cos I find DMs helpful. Certain things are better kept betw 2 individuals than blurted out to the whole world!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712324">\
	 <div id="dsq-comment-header-9712324" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712324" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712324" href="http://chupchap.twitter.com/" target="_blank" rel="nofollow">chupchap</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712324" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712324" class="dsq-comment-message">Oh yes talking abt mailing instead of DM, that is not practical in all cases. In your case your email id on your blog, it is convenient for anyone to mail you. But what about the rest? I don\'t want many people to know my personal id, I am more comfortable if they would simply DM me or reply @chupchap.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712325">\
	 <div id="dsq-comment-header-9712325" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712325" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712325" href="http://twitter.com/chupchap" target="_blank" rel="nofollow">chupchap</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712325" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712325" class="dsq-comment-message">CORRECTION: I screwed up the links in the earlier comments</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712326">\
	 <div id="dsq-comment-header-9712326" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712326" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712326" href="http://blog.TamaroDesign.com" target="_blank" rel="nofollow">ptamaro</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712326" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712326" class="dsq-comment-message">Great points indeed. I\'m glad I\'m not that popular, so my DM frustration has been minimal. If I complain it would go unheard perhaps, but you can help improve things...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712327">\
	 <div id="dsq-comment-header-9712327" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712327" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712327" href="http://catcubed.com/" target="_blank" rel="nofollow">Colin</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712327" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712327" class="dsq-comment-message">Personally I think you are looking at DMs all wrong. They are more like SMS than email. I have my DMs go straight to SMS. If it\'s something I need to answer, I usually do so by email or phone or normal sms.<br><br>Of course you are right in that people who use them for long drawn out back and forth conversation should be shot.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712328">\
	 <div id="dsq-comment-header-9712328" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712328" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712328" href="http://joeduck.com/" target="_blank" rel="nofollow">JoeDuck</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712328" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712328" class="dsq-comment-message">Robert as usual nice points that prove once again you are *the man* in social networking.   The transparency of the social space is a large part of the appeal and there\'s little need at Twitter for "privacy" - that is missing the point.   Do we ever need privacy?   Sure, but we have many private venues already - the important changes are in the social space.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712329">\
	 <div id="dsq-comment-header-9712329" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712329" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712329" href="http://brandonlive.com/" target="_blank" rel="nofollow">Brandon Paddock</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712329" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712329" class="dsq-comment-message">Completely agree about Twitter\'s useless DM feature.<br><br>But Facebook\'s I actually use, generally for quick personal correspondence that I don\'t care about archiving or finding later.<br><br>I think Facebook\'s works better for me for several reasons:<br>1) I don\'t approve any Facebook requests from people I don\'t actually know, and I try to keep my Facebook circle of friends fairly small (I have "only" 306).<br><br>2) Facebook messages come to my cell phone via SMS.  Basically nothing else does except a direct SMS or tweets from a select few people I used to work with.<br><br>3) There are lots of people for whom the only e-mail address I have is a work one, and I generally prefer to send them an FB message (that until recently at least would tend to show up in their personal e-mail) instead of an actual e-mail.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712330">\
	 <div id="dsq-comment-header-9712330" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712330" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712330" href="http://www.usetrackthis.com/" target="_blank" rel="nofollow">Phil</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712330" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712330" class="dsq-comment-message">Without direct messages apps like @trackthis would be less useful</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712331">\
	 <div id="dsq-comment-header-9712331" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712331" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712331">Johnny</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712331" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712331" class="dsq-comment-message">Twitter as a whole is useless.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712332">\
	 <div id="dsq-comment-header-9712332" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712332" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712332">voice of reason</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712332" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712332" class="dsq-comment-message">Wow. A completely free service that a ton of people seem to enjoy, use, and find value in;  a free platform that has enabled scobleizer to interact, advertise, and extend its reach to consumers it might otherwise have no connection to.  Blogging about this inferior service has given you prime real estate on the home page of techmeme (probably not for the first time), which I clicked to get here. The post has 77 comments so far, plus more have obviously viewed, yet somehow, twitter has made your life hell.   Methinks if anything, twitter\'s existence has increased your relevance ranking on the internets.  Without them, your voice would be muted.   Twitter provides both megaphone and hearing aid, and for one who\'s business is pretty much talking, I see twitter as an awesome utility for aspiring scobles everywhere. Peace out!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712333">\
	 <div id="dsq-comment-header-9712333" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712333" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712333" href="http://robblatt.com" target="_blank" rel="nofollow">Rob Blatt</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712333" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712333" class="dsq-comment-message">Twitter is a simple service. Direct messages are meant as a way to send SMS to someone without having to know their phone number. It\'s not email. If you think someone asks you a question that requires an email, then ask for an email address.<br><br>Twitter is not a GTD application, it\'s not email, it\'s not complex in any way shape or form. It\'s a broadcast platform for 140 character text that has a point to point backchannel, however, it is a text broadcast platform first.<br><br>Adding a layer of complexity means adding another reason that my mother won\'t use it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712334">\
	 <div id="dsq-comment-header-9712334" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712334" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712334" href="http://www.pjbrunet.com/" target="_blank" rel="nofollow">PJ Brunet</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712334" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712334" class="dsq-comment-message">Solution is simple, delete your Twitter like I did.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712335">\
	 <div id="dsq-comment-header-9712335" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712335" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712335">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712335" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712335" class="dsq-comment-message">I guess that ancient non-hip-Web 2.0-thing called "email" still has it\'s uses. But see, any tech fails at your noise volume level -- IM, DM, Tweets, what have you. Nothing will work, no matter how many David Allens you worship.<br><br>Just get the broadcasting tools (shaky cell phone cams, FriendFeed and etcc. spewers), all the essential evangelist tools needed to spread the messages, whilst never having to listen (or bother with) the actual flocks.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712336">\
	 <div id="dsq-comment-header-9712336" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712336" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712336" href="http://sloantech.blogspot.com/" target="_blank" rel="nofollow">Steve Sloan</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712336" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712336" class="dsq-comment-message">I like Twitter DM. I can always reply with an e-mail, I do not HAVE to reply with DM. But, I get less than 3 DM\'s a day. Do you think getting over 4,000+ DM\'s is a typical case, or an edge case?<br><br>(Also, if I have a blog post that gets 3 replies that\'s a lot, so maybe I am just boring.)<br><br>My e-mail backs up way, WAY more that my Twitter DMs.<br><br>I like Twitter DM because I am always able to receive them as I am always plugged into Twitter on multiple devices and I can choose to reply in real time or later.<br><br>The people I get DM\'s from are almost always friends.<br><br>Steve Sloan</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712337">\
	 <div id="dsq-comment-header-9712337" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712337" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712337" href="http://keenpath.com/" target="_blank" rel="nofollow">Mark</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712337" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712337" class="dsq-comment-message">While I couldn\'t get through all of your reasons, as I read the first couple I thought of an idea.  Why don\'t Twitter, Facebook or whomever has this similar feature offer an auto-forward function to send the DM to your email.  Well wait, it sort of already does this. Include in reply-to the persons email address or a unique reply address that would transcribe your email reply back into the proprietary format of the social network. Eh?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712338">\
	 <div id="dsq-comment-header-9712338" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712338" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712338">Nando</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712338" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712338" class="dsq-comment-message">You hate DM because you chose to ignore Twitter\'s spirit, which is simplicity and chronology, and want it to be more a kind of business email-like app full of features.<br><br>What I would like you to consider before flaming against DM and Twitter.<br><br>1. Why "having the ability to delete them all" has to do with read them or ignore them all? I really didn\'t understand this argument.<br><br>2. Folders is more for email. Twitter is not an Exchange plugin or a Blackberry feature. Plus: priority on Twitter is chronology, is WHAT IS HAPPENING NOW, so forget about twisting it or making another priority. The DM that just arrived is the priority.<br><br>3.  Just what I said: Twitter is not email. Stop trying to make them match in every feature.<br><br>4. Again, you\'re trying to make Twitter DM feature work for your business, but that\'s not the main purpose of it. Twitter is not for business or conference calls or business meetings. It\'s not a Project Manager software.<br><br>5. Copy your boss? You\'re joking, right?<br><br>6. Asking a question that needs a 500c response it\'s the questioner\'s problem. And you can tell that in less 140c. You choose to become frustrated because you want it to be so. Besides, you want to make those 10 reasons, so you just invented this one. I want to tweet a 150c tweet, oh, I\'m so frustrated.<br><br>7. Actually I agree on this one.<br><br>8. Do you know you can choose to be notified by email when you receive a DM, and the DM message will go in it?<br><br>9. Again and again, Twitter is not email. Plus, group feature is missing on the whole Twitter and not only in DM feature. Twimc, particularly, I don\'t want group messaging, it\'s the kind of complexity that it would start killing what I think Twitter really is. Please, don\'t be ICQ, Twitter. Don\'t be Microsoft Project either.<br><br>10. Seriously? Email, again?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712339">\
	 <div id="dsq-comment-header-9712339" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712339" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712339" href="http://manizesto.com/" target="_blank" rel="nofollow">Jonathan Munk</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712339" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712339" class="dsq-comment-message">I was actually about to start doing more of this until I read this post. As a new Twitterer, thank you for not allowing myself to turn into a personal spammer!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712340">\
	 <div id="dsq-comment-header-9712340" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712340" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712340" href="http://www.tractionsoftware.com/" target="_blank" rel="nofollow">Jordan Frank</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712340" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712340" class="dsq-comment-message">The only good reason for DM in Twitter and Facebook is to protect you from showing your e-mail address -- or, as I have discovered, as a means to draw you into Twitter to get an account for the sole purpose of reaching out to someone who will only allow you to contact them via Twitter. So, the Twitter folk or the Twitter die-hards are using DM to perpetuate their social network, rather than to as a good design decision.<br><br>The right way to build the feature is simply to offer an option: DM to Twitter account or use a Twitter form to send an e-mail (including actual reply address) directly to your Gmail (or other preferred location)<br><br>Twitter is great for many things, but the benefits of short messages, follows and DMs run into a wall in many cases, like this. My twitter network is negligible and its already impossible to parse through the messages I get on my feed in any useful way.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712341">\
	 <div id="dsq-comment-header-9712341" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712341" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712341" href="http://seabirdskitchen.blogspot.com/" target="_blank" rel="nofollow">Chris Bird</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712341" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712341" class="dsq-comment-message">We have so many avenues of communication it is hard to know which to use when. For example if I see an event advertised on Twitter by someone whom I follow, then I am likely to DM him/her for details. Why? It\'s rude to @respond because no one else is interested, I don\'t have another way of contacting you, the context is reasonable, so it is another string to my communication bow.<br><br>DMs as replacement for IM are certainly messed up. We tend to be more selective about our IM buddies, so would expect to have richer conversations on IM. So no substitute there.<br><br>DMs as replacement for email - well sometimes the context is in the DM thread so the communication should be there.<br><br>But in general DM (and the whole of Twitter) is a very weak 2-way medium. It is actually a pretty weak one-way medium since the communication space is flat. It depends on the level of intimacy one has with the tweeter (twitterer). It\'s like getting the Christmas letter that goes to everyone. I don\'t care about Uncle Albert\'s gout, but someone on the recipient list probably does.....</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712342">\
	 <div id="dsq-comment-header-9712342" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712342" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712342" href="http://www.brubakers.us/" target="_blank" rel="nofollow">Ching</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712342" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712342" class="dsq-comment-message">Sounds like enhancements are needed.  Twitter?  Facebook?  Are you listening?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712343">\
	 <div id="dsq-comment-header-9712343" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712343" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712343" href="http://danicar.org/" target="_blank" rel="nofollow">danica radovanovic</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712343" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712343" class="dsq-comment-message">Not only that I don\'t like Twitter\'s DM\'s and Facebook mssgs for the all technical annoyances mentioned above, but the major factor I found here /chez moi/ is non-technical.<br>I find very rude and indecent (call it netiquette) if someone on Facebook sends me a message (and I have lot of them unread) and on my web site on several places there is \'contact\' page with email. Academic people usually send email directly, the others send messages - I wonder if people read \'contact\', or notifications for sending email, or they are just idle and it\'s easier to spam you on FB?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712344">\
	 <div id="dsq-comment-header-9712344" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712344" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712344" href="http://phrackr.com/" target="_blank" rel="nofollow">Joe Phrackr</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712344" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712344" class="dsq-comment-message">I have been using <a href="http://peekamo.com" rel="nofollow">peekamo.com</a>.  Its mobile based but find that its much easier to use than DM and have been in conversation with the guys there and they tell me all the features you are talking about will be implement there within the next few weeks.<br><br>If anyone is interested checked it out.  It\'s <a href="http://peekamo.com" rel="nofollow">http://peekamo.com</a>, and they always appreciate feedback and actually listen.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712345">\
	 <div id="dsq-comment-header-9712345" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712345" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712345" href="http://www.twitter.com/lindsaydavies" target="_blank" rel="nofollow">Lindsay Davies</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712345" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712345" class="dsq-comment-message">I agree with a lot of the comments above that different technologies should be used for different things - email, facebook and twitter.<br><br>But also that the use or misuse of DM is annoying for people with a lot of followers.  As such can appreciate some of your points and reason for request for email or open tweets. Perhaps also request a polite \'No DMs\' in your bio so that new followers get the message or get reminded of this post and don\'t DM?<br><br>So... the No Direct Mail notices make their way from the letterbox to social media channels. DM really has had a bad rap over the years!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712346">\
	 <div id="dsq-comment-header-9712346" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712346" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712346" href="http://www.wellbelove.com/" target="_blank" rel="nofollow">Christopher Wellbelove</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712346" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712346" class="dsq-comment-message">I often find direct messages ages after they were sent. I don\'t mind messages on Facebook though as I find this easier to manage than my email in boxes - mainly because of the volume is currently more manageable.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712347">\
	 <div id="dsq-comment-header-9712347" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712347" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712347" href="http://micahanderica.blogspot.com/" target="_blank" rel="nofollow">Micah Foster</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712347" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712347" class="dsq-comment-message">I like it. But then again, I only DM with people that I would txt, so it\'s virtually the same thing, just with a 140 limit.<br><br>If I were in your shoes, I probably wouldn\'t like it so much.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-10908434">\
	 <div id="dsq-comment-header-10908434" class="dsq-comment-header">\
	 <cite id="dsq-cite-10908434" class="dsq-comment-cite">\
	 <a id="dsq-author-user-10908434" href="http://www.sandeepbali.com/" target="_blank" rel="nofollow">Sandeep Bali</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-10908434" class="dsq-comment-body">\
	 <div id="dsq-comment-message-10908434" class="dsq-comment-message">Look at this site.. who says you can\'t make a GREAT site with a simple layout... :P ....Kudos</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-11068037">\
	 <div id="dsq-comment-header-11068037" class="dsq-comment-header">\
	 <cite id="dsq-cite-11068037" class="dsq-comment-cite">\
	 <span id="dsq-author-user-11068037">Keke</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-11068037" class="dsq-comment-body">\
	 <div id="dsq-comment-message-11068037" class="dsq-comment-message">Hells Yeah!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-13872932">\
	 <div id="dsq-comment-header-13872932" class="dsq-comment-header">\
	 <cite id="dsq-cite-13872932" class="dsq-comment-cite">\
	 <a id="dsq-author-user-13872932" href="http://www.facebook.com/people/Alaa-Ali/1415477035" target="_blank" rel="nofollow">Alaa Ali</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-13872932" class="dsq-comment-body">\
	 <div id="dsq-comment-message-13872932" class="dsq-comment-message">nice one</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-14863556">\
	 <div id="dsq-comment-header-14863556" class="dsq-comment-header">\
	 <cite id="dsq-cite-14863556" class="dsq-comment-cite">\
	 <a id="dsq-author-user-14863556" href="http://www.spleeness.com" target="_blank" rel="nofollow">spleeness</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-14863556" class="dsq-comment-body">\
	 <div id="dsq-comment-message-14863556" class="dsq-comment-message">YES! Finally someone said what I\'ve been thinking all along. Thank you!!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-15128942">\
	 <div id="dsq-comment-header-15128942" class="dsq-comment-header">\
	 <cite id="dsq-cite-15128942" class="dsq-comment-cite">\
	 <span id="dsq-author-user-15128942">personxx</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-15128942" class="dsq-comment-body">\
	 <div id="dsq-comment-message-15128942" class="dsq-comment-message">Some people will just bitch and moan about everything... The solution is quite simple don\'t use twitter don\'t use facebook if it irritates you so much that you have to write a web article about it... Use your email then...</div>\
	 </div>\
	 </li>\
	 </ul>\
';

(function() {
	
	





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

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


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

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

	
	

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

	Dsq.Popup.showCookieMsgs();

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

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

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

	



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

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

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

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

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


	


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

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

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

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

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

})();




