




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": "RT @guyatcarphone: RT @xNikos: You don\u2019t need a social media strategy, here\u2019s what you do need: by Robert Scoble http://bit.ly/16h170", "author_name": "michellecarvill", "source_url": "http://www.backtype.com/search?q=http%3A//scobleizer.com/2009/03/31/my-web-20-expo-keynote-until-best-buy-adds-people-to-its-website-our-jobs-are-not-done/", "id": 1559016, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/michellecarvill/statuses/2270114935", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://s3.amazonaws.com/twitter_production/profile_images/107114303/mishbwsmall2_normal.jpg", "author_url": "", "date_created": "5 months ago", "retweets": [{"url": "http://twitter.com/michellecarvill/status/2270114935", "author_name": "michellecarvill"}]}, {"body": "RT @xNikos: You don\u2019t need a social media strategy, here\u2019s what you do need: by Robert Scoble http://bit.ly/16h170", "author_name": "guyatcarphone", "source_url": "http://www.backtype.com/search?q=http%3A//scobleizer.com/2009/03/31/my-web-20-expo-keynote-until-best-buy-adds-people-to-its-website-our-jobs-are-not-done/", "id": 1559017, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/guyatcarphone/statuses/2269185344", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://s3.amazonaws.com/twitter_production/profile_images/130411283/profilepic_01.01_bigger_normal.jpg", "author_url": "", "date_created": "5 months ago", "retweets": [{"url": "http://twitter.com/guyatcarphone/status/2269185344", "author_name": "guyatcarphone"}]}, {"body": "You don\u2019t need a social media strategy, here\u2019s what you do need: by Robert Scoble http://bit.ly/16h170", "author_name": "xNikos", "source_url": "http://www.backtype.com/search?q=http%3A//scobleizer.com/2009/03/31/my-web-20-expo-keynote-until-best-buy-adds-people-to-its-website-our-jobs-are-not-done/", "id": 1559018, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/xNikos/statuses/2265050902", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://s3.amazonaws.com/twitter_production/profile_images/229657849/twitterpic_normal.jpg", "author_url": "", "date_created": "5 months ago", "retweets": [{"url": "http://twitter.com/xNikos/status/2265050902", "author_name": "xNikos"}]}, {"body": "Via @georgedearing @Scobleizer cutting to the chase on social media strategy \"get people to promote you\" http://snurl.com/gvbo5", "author_name": "sagenet", "source_url": "http://www.backtype.com/search?q=http%3A//scobleizer.com/2009/03/31/my-web-20-expo-keynote-until-best-buy-adds-people-to-its-website-our-jobs-are-not-done/", "id": 1041793, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/sagenet/statuses/1633667051", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://s3.amazonaws.com/twitter_production/profile_images/55190708/Facebook_Hudson_photo_normal.jpg", "author_url": "", "date_created": "7 months ago", "retweets": []}, {"body": "@courtnee_chelle http://bit.ly/B3aSc web2.0 is about people and interaction with your customers (whatever or whoever that is)", "author_name": "jtyost2", "source_url": "http://www.backtype.com/search?q=http%3A//scobleizer.com/2009/03/31/my-web-20-expo-keynote-until-best-buy-adds-people-to-its-website-our-jobs-are-not-done/", "id": 1559019, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/jtyost2/statuses/1545101740", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://s3.amazonaws.com/twitter_production/profile_images/35593632/MePhoto_normal.JPG", "author_url": "", "date_created": "8 months ago", "retweets": []}, {"body": "Yet again... focus on people\nhttp://tiny.cc/omG0H", "author_name": "wratzat", "source_url": "http://www.backtype.com/search?q=http%3A//scobleizer.com/2009/03/31/my-web-20-expo-keynote-until-best-buy-adds-people-to-its-website-our-jobs-are-not-done/", "id": 1559020, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/wratzat/statuses/1476501845", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://s3.amazonaws.com/twitter_production/profile_images/89467357/Me_normal.jpg", "author_url": "", "date_created": "8 months ago", "retweets": []}, {"body": "Scoble is so right http://scobleizer.com/2009/03/31/my-web-20-expo-keynote-until-best-buy-adds-people-to-its-website-our-jobs-are-not-done/", "author_name": "graemea", "source_url": "http://www.backtype.com/search?q=http%3A//scobleizer.com/2009/03/31/my-web-20-expo-keynote-until-best-buy-adds-people-to-its-website-our-jobs-are-not-done/", "id": 1559021, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/graemea/statuses/1468478722", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://static.twitter.com/images/default_profile_normal.png", "author_url": "", "date_created": "8 months ago", "retweets": []}], "has_more_reactions": true, "users": {"605ae06413ee77e1ab5ca77492fbd102": {"username": "Tom", "tumblr": "", "display_name": "Tom", "url": "http://disqus.com/guest/605ae06413ee77e1ab5ca77492fbd102/", "registered": false, "linkedin": "", "blog": "http://www.krisgreenwood.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": ""}, "8e25ce83275debdbe2e4e1e40eb41bcb": {"username": "Kathy Sierra", "tumblr": "", "display_name": "Kathy Sierra", "url": "http://disqus.com/guest/8e25ce83275debdbe2e4e1e40eb41bcb/", "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": ""}, "c543b5fb59cb3fa904b304f137e18f8a": {"username": "Eric N.", "tumblr": "", "display_name": "Eric N.", "url": "http://disqus.com/guest/c543b5fb59cb3fa904b304f137e18f8a/", "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": ""}, "2c4d82f38dc103004513ad61422603da": {"username": "Darren Daz Cox", "tumblr": "", "display_name": "Darren Daz Cox", "url": "http://disqus.com/guest/2c4d82f38dc103004513ad61422603da/", "registered": false, "linkedin": "", "blog": "http://99daz.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": ""}, "60bea6b4af84ba052a5c5ed9cce1b978": {"username": "Jake Ludington", "tumblr": "", "display_name": "Jake Ludington", "url": "http://disqus.com/guest/60bea6b4af84ba052a5c5ed9cce1b978/", "registered": false, "linkedin": "", "blog": "http://www.jakeludington.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": ""}, "9fb7a831f43906bcadec6a796b6d861d": {"username": "keithburtis", "tumblr": "", "display_name": "keithburtis", "url": "http://disqus.com/guest/9fb7a831f43906bcadec6a796b6d861d/", "registered": false, "linkedin": "", "blog": "http://www.magicwoodworks.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/9/3917/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6f6c67f633a15cebc7e2680265cc166c": {"username": "Brandon J. Mendelson", "tumblr": "", "display_name": "Brandon J. Mendelson", "url": "http://disqus.com/guest/6f6c67f633a15cebc7e2680265cc166c/", "registered": false, "linkedin": "", "blog": "http://www.thebrandonshow.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": ""}, "70eef453fa0849958bfad4f397279ff6": {"username": "Lewis Green", "tumblr": "", "display_name": "Lewis Green", "url": "http://disqus.com/guest/70eef453fa0849958bfad4f397279ff6/", "registered": false, "linkedin": "", "blog": "http://lgbusinesssolutions.typepad.com/solutions_to_grow_your_bu/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3553f5e0db0fd1ec4e40a932a2d8f5b3": {"username": "Robert Scoble", "tumblr": "", "display_name": "Robert Scoble", "url": "http://disqus.com/guest/3553f5e0db0fd1ec4e40a932a2d8f5b3/", "registered": false, "linkedin": "", "blog": "http://scobleizer.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/4069/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "73136def2ecd07f2665bc6718b5cf862": {"username": "Ron Proctor", "tumblr": "", "display_name": "Ron Proctor", "url": "http://disqus.com/guest/73136def2ecd07f2665bc6718b5cf862/", "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": ""}, "fe2d209f1a563c25efbdb9c999286f4c": {"username": "dc", "tumblr": "", "display_name": "dc", "url": "http://disqus.com/guest/fe2d209f1a563c25efbdb9c999286f4c/", "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": ""}, "324e880d3eb0789bf551ab987bd0fa06": {"username": "Steve Borsch", "tumblr": "", "display_name": "Steve Borsch", "url": "http://disqus.com/guest/324e880d3eb0789bf551ab987bd0fa06/", "registered": false, "linkedin": "", "blog": "http://iconnectdots.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": ""}, "4825f27fc805aa9fca4c3695c02bfc8d": {"username": "Gary Koelling", "tumblr": "", "display_name": "Gary Koelling", "url": "http://disqus.com/guest/4825f27fc805aa9fca4c3695c02bfc8d/", "registered": false, "linkedin": "", "blog": "http://www.garykoelling.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": ""}, "18d1ab4fa6f2807d512a0aa6a64954c1": {"username": "Graeme Thickins", "tumblr": "", "display_name": "Graeme Thickins", "url": "http://disqus.com/guest/18d1ab4fa6f2807d512a0aa6a64954c1/", "registered": false, "linkedin": "", "blog": "http://www.Tech-Surf-Blog.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/147/8422/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "27afe428e8cbdab87ac853aba1ea8864": {"username": "Nick", "tumblr": "", "display_name": "Nick", "url": "http://disqus.com/guest/27afe428e8cbdab87ac853aba1ea8864/", "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": ""}, "c3f07f365b25e4976c2a3bf496592a26": {"username": "Andrew Pass", "tumblr": "", "display_name": "Andrew Pass", "url": "http://disqus.com/guest/c3f07f365b25e4976c2a3bf496592a26/", "registered": false, "linkedin": "", "blog": "http://www.lessontech.blogspot.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/50/9457/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "5d99a348ff4f89bacc29fb56ef83e6ea": {"username": "Sparky", "tumblr": "", "display_name": "Sparky", "url": "http://disqus.com/guest/5d99a348ff4f89bacc29fb56ef83e6ea/", "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": ""}, "8894ee4285aea59613f633722322b789": {"username": "Mark McGuire", "tumblr": "", "display_name": "Mark McGuire", "url": "http://disqus.com/guest/8894ee4285aea59613f633722322b789/", "registered": false, "linkedin": "", "blog": "http://www.alice.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": ""}, "d8a772537163c61676e2789b824b9cc8": {"username": "Andrew Willis", "tumblr": "", "display_name": "Andrew Willis", "url": "http://disqus.com/guest/d8a772537163c61676e2789b824b9cc8/", "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": ""}, "1cde6023a0e966cc6ab1d49ee81d8670": {"username": "Shane", "tumblr": "", "display_name": "Shane", "url": "http://disqus.com/guest/1cde6023a0e966cc6ab1d49ee81d8670/", "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": ""}, "eb577d5b5a0c4bbc163bf270208ceb67": {"username": "Blog Traffic Exchange", "tumblr": "", "display_name": "Blog Traffic Exchange", "url": "http://disqus.com/guest/eb577d5b5a0c4bbc163bf270208ceb67/", "registered": false, "linkedin": "", "blog": "http://www.blogtrafficexchange.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": ""}, "0fe44ee170da7c48bd067f8773c3f84d": {"username": "Curt Monash", "tumblr": "", "display_name": "Curt Monash", "url": "http://disqus.com/guest/0fe44ee170da7c48bd067f8773c3f84d/", "registered": false, "linkedin": "", "blog": "http://www.monash.com/curtbio.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": ""}, "da53d98c50bbe0d753f1586b04023dfe": {"username": "Rick Boretsky", "tumblr": "", "display_name": "Rick Boretsky", "url": "http://disqus.com/guest/da53d98c50bbe0d753f1586b04023dfe/", "registered": false, "linkedin": "", "blog": "http://www.rickboretsky.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": ""}, "7711f045c4f11b95b7796f0ac3932805": {"username": "jono", "tumblr": "", "display_name": "jono", "url": "http://disqus.com/guest/7711f045c4f11b95b7796f0ac3932805/", "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": ""}, "ebc34723d35bb4ba53560ff38a4d7abc": {"username": "Gina", "tumblr": "", "display_name": "Gina", "url": "http://disqus.com/guest/ebc34723d35bb4ba53560ff38a4d7abc/", "registered": false, "linkedin": "", "blog": "http://forums.bestbuy.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": ""}, "72caa11f89bbbcde631b12caebd4bb91": {"username": "Chris Howard", "tumblr": "", "display_name": "Chris Howard", "url": "http://disqus.com/guest/72caa11f89bbbcde631b12caebd4bb91/", "registered": false, "linkedin": "", "blog": "http://www.341design.com.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": ""}, "b44d33b36a27439355f8b8f18fd15301": {"username": "Eric Matas", "tumblr": "", "display_name": "Eric Matas", "url": "http://disqus.com/guest/b44d33b36a27439355f8b8f18fd15301/", "registered": false, "linkedin": "", "blog": "http://blahblahbleric.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": ""}, "empoprises": {"username": "empoprises", "tumblr": "", "display_name": "John E. Bredehoft (Empoprises)", "url": "http://disqus.com/empoprises/", "registered": true, "linkedin": "in/jbredehoft", "blog": "http://empoprise-bi.blogspot.com/", "remote_domain": null, "points": 22, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/30484/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "empoprises", "twitter": "", "remote_domain_name": ""}, "b7c1b4bbb0d88ba1d2a63d0bb55c576f": {"username": "Denrael", "tumblr": "", "display_name": "Denrael", "url": "http://disqus.com/guest/b7c1b4bbb0d88ba1d2a63d0bb55c576f/", "registered": false, "linkedin": "", "blog": "http://seat6d.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": ""}, "08c0041a44791ffa1fdad0803524a6b7": {"username": "Jason Goldberg", "tumblr": "", "display_name": "Jason Goldberg", "url": "http://disqus.com/guest/08c0041a44791ffa1fdad0803524a6b7/", "registered": false, "linkedin": "", "blog": "http://www.retailgeek.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": ""}, "3a088b735d051bca68c1f02e292b207e": {"username": "PXLated", "tumblr": "", "display_name": "PXLated", "url": "http://disqus.com/guest/3a088b735d051bca68c1f02e292b207e/", "registered": false, "linkedin": "", "blog": "http://www.geise.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": ""}, "98ca56ba211300d69cf1f3c18ebe7bec": {"username": "Ben Hedrington", "tumblr": "", "display_name": "Ben Hedrington", "url": "http://disqus.com/guest/98ca56ba211300d69cf1f3c18ebe7bec/", "registered": false, "linkedin": "", "blog": "http://www.buildcontext.com/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": ""}, "4cb73df63bdf73b05b37082b0fd6425c": {"username": "spoon pics or gtfo", "tumblr": "", "display_name": "spoon pics or gtfo", "url": "http://disqus.com/guest/4cb73df63bdf73b05b37082b0fd6425c/", "registered": false, "linkedin": "", "blog": "http://digg.com/u1AMF", "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": ""}, "90585b3edcee5371edb3876368f5a0cd": {"username": "Trevor Long", "tumblr": "", "display_name": "Trevor Long", "url": "http://disqus.com/guest/90585b3edcee5371edb3876368f5a0cd/", "registered": false, "linkedin": "", "blog": "http://trevorlandia.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": ""}, "df6591b7ce9c611045f44537efe8684b": {"username": "MRK", "tumblr": "", "display_name": "MRK", "url": "http://disqus.com/guest/df6591b7ce9c611045f44537efe8684b/", "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": ""}, "b89ab65517b34ef160b535cd4f0b1289": {"username": "Mike Maney", "tumblr": "", "display_name": "Mike Maney", "url": "http://disqus.com/guest/b89ab65517b34ef160b535cd4f0b1289/", "registered": false, "linkedin": "", "blog": "http://maneydigital.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": ""}, "cab1041ab2de14f71e070c15f8ae968e": {"username": "Christopher Coulter", "tumblr": "", "display_name": "Christopher Coulter", "url": "http://disqus.com/guest/cab1041ab2de14f71e070c15f8ae968e/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}}, "forum": {"use_media": true, "name": "Scobleizer", "streaming_realtime": true, "url": "scobleizer", "allow_anon_post": true, "reactions_enabled": true, "reply_position": 1, "show_avatar": true, "allow_anon_votes": false, "disqus_auth_disabled": false}, "realtime_enabled": true, "request": {"username": "", "is_global_moderator": false, "sharing": {}, "sort": 4, "forum": "scobleizer", "is_initial_load": true, "is_authenticated": false, "timestamp": "2009-12-17_04:28:19", "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": {"9715840": {"up_voted": false, "ip": "", "has_replies": false, "message": "Just so one isn't confused by the coloration (lack of BBY-Blue), back then, customers didn't identify BBY with blue, BBY was testing Concept-5 stores and planned on converting all stores to that concept, it didn't use blue. And, most brick/mortar chains were trying to differentiate their online operations from their offline stores (because of the Amazon valuations) and take them public at some point. The dot-com bust changed all that.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_13:05:12", "killed": false, "user_key": "3a088b735d051bca68c1f02e292b207e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715841": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thanks for helping out the US economy by picking up that Toyota. Make sure not to visit Detroit, douchebag.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_14:09:24", "killed": false, "user_key": "27afe428e8cbdab87ac853aba1ea8864", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715842": {"up_voted": false, "ip": "", "has_replies": false, "message": "Web 2.0 annoyance #1: 5 minute experts. It is semantically possible for people to dabble in social media/networking and become more informed than most; thus they are \"experts\" in comparison to others--like my 5-year old daughter, for instance. I suggest, then, that these experts give the keynote at their local area day care centers.<br><br>Imagine it! Pre-schoolers tweeting! Blogging about boogers!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_16:14:46", "killed": false, "user_key": "b44d33b36a27439355f8b8f18fd15301", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715843": {"up_voted": false, "ip": "", "has_replies": false, "message": "The spirit of what you've said here is spot on, but having people present doesn't mean you have solved the problem of creating a relationship with your customers. Best Buy has people in their stores, but they still don't have the traditional model (i.e. face-to-face) of customer relationships worked out. I have done a number of shopping expeditions to Best Buy stores to gain a better understanding of what people are experiencing when they buy computers. When asking about which notebook computer to choose at multiple Best Buy locations, the sales people always key in on selling me a product replacement plan and offer to charge me to remove trialware from the computer. Trying to get them to tell me why I might want the Toshiba or the HP notebook doesn't get me to the point of having an informed choice. If employees aren't being trained to provide this data effectively in person, how is Best Buy going to create that culture online?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_16:48:45", "killed": false, "user_key": "60bea6b4af84ba052a5c5ed9cce1b978", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715844": {"up_voted": false, "ip": "", "has_replies": false, "message": "Agree with Eric N.  BestBuy don't give a crap about their customers, and until they change that attitude, customers will find alternatives.  Personally, BestBuy is a place where I go if I need something urgently or just to browse before I buy online.<br><br>If I recall correctly, isn't this also the same company that showed different pricing on their website when browsed from within stores?  That's just hitting new lows to rip-off customers.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_17:58:41", "killed": false, "user_key": "df6591b7ce9c611045f44537efe8684b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715845": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, Thank you for your opinions. I am social media community manager for the Best Buy Remix project. Not sure how many people know, but Best Buy has opened up it's API of information to allow developers to create third party apps on Best Buy content. I don't want to reiterate the things that some of my coworkers have said, but one thing I am sure is that you will see improvements on the horizon.<br><br>As a company I know Best Buy has web 2.0, engagement, and change as top of mind.<br><br>Thank you for the suggestions.<br>Keith Burtis - @Bestbuyremix<br><a href=\"http://remix.bestbuy.com\" rel=\"nofollow\">http://remix.bestbuy.com</a><br><br>PS- It was nice to meet you at SXSW.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_17:59:59", "killed": false, "user_key": "9fb7a831f43906bcadec6a796b6d861d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715846": {"up_voted": false, "ip": "", "has_replies": false, "message": "Jake - I turned down the BBY gig three times. I was finally convinced to do it when Brad Anderson said he saw online as a way of providing superior service, speaking with a single voice, being manufacture/brand agnostic, etc. Getting you unbiased recommendations and the product that is right for you. He also said, blow the blockages, route around the party poopers and don't let the brick-n-mortar side get in your way. Coordinate where you can, route around where you have to.<br>In-store you have employees that don't do their homework (BBY has good training from what I saw if the employees would just do it), have their own personalities/agendas, extremely high turn over and some managers can be a little too aggressive because their salary/bonus depends on it. Online you have neither of those problems.<br>-----<br>I must say though, I've had pretty good in-store experiences the last year or so. Except for the prick who insisted I buy a Blackberry on the Verizon network. Could have been an easy sale but he wouldn't sell me what I wanted. Finally walked out on him. No matter what corporate does, you're going to end up with some emplyees like that.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_20:06:22", "killed": false, "user_key": "3a088b735d051bca68c1f02e292b207e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715847": {"up_voted": false, "ip": "", "has_replies": false, "message": "Common Sense Counterpoints<br><br>1. There is no such thing as social media. Media is not social. People are. Yet online, it's still all mainly fake friendships, not very social, demented raw narcissism, yes. Plus, it's faddish, hot thing today, cold tomorrow.<br><br>2. A personal touchy-feel approach means little, if the product is of poor<br>quality and not priced right for the market. And too personal is as annoying as too little. But if a bargain, yet you have to put up with rudeness, shrug, it's still a bargain. Master your emotions. Besides the ABSENCE of annoying Blue Shirt pimply-college kid twerps, saying whatever for a commission and all the extended warranty dirty tricks, is one of the benefits. You must be in some alternate reality zone, as I don't see mass love for big box 'people as cattle' approaches, ask Laptop Magazine about that. And personal touches, come with bigger price tags. Commodity cheap, personal touch, take out a loan.<br><br>3. Making purchasing decisions based on personal feelings is a direct highway to ruin; ignore the faux guilt trips.<br><br>4. Some people go through a research and case-study process, the smart ones, at least. Sales processes are for those who haven't done their homework.<br><br>5. Websites are not low cost. Overall ROI has to be factored in, and you need a support system to make it work, shipping, hosting, low margins, logistical supply-chain nightmares, can kill you. The whole <a href=\"http://dot.com\" rel=\"nofollow\">dot.com</a> bomb thing already happened, member? Click didn't replace brick. This stuff isn't as easy as having some San Fran hippie design firm fire up some artsy flash/html. MBA-level Supply-Chain Vendor-Management Pricing-Formula Logistical Leaps and Bounds, thats more the reality. The process is ever bit as vital as the actual site.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-01_04:08:43", "killed": false, "user_key": "cab1041ab2de14f71e070c15f8ae968e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715848": {"up_voted": false, "ip": "", "has_replies": false, "message": "With all due respect Robert, you're not only a \"Monday morning quarterback\", you're someone who has never even played football. That you are pontificating as a junior commentator on the social media equivalent of ESPN doesn't make you a former head coach or player coach whose played the game, won and lost, and known the triumphs, losses and what it takes to achieve.<br><br>Scanning through your Wikipedia page, it's clear that you've had some interesting low level jobs and, one could argue, even more intriguing new media ones at a modestly higher level. That, however, does NOT make you either an expert, qualified in any way to grok the complexity of an ecommerce site on the scale of a Best Buy, and thus you come across as hopefully naive in this post.<br><br>Having called on Dick Schulze and Brad Anderson when they had eight Sound of Music stores (I was with a manufacturer's rep firm out of college), I've been somewhat privy to how they went from that modest beginning to the consumer electronics behemoth they are today. They fought, clawed, and sold their way to greatness, taking HUGE risks in the previously untested and new \"big box retailer\" concept that is the Best Buy we know today.<br><br>*If* you'd done any due diligence (ahh....reporting?) you would've seen that they're taking more risks with 'net/web/social media initiatives than *any* organization their size. Yes, the <a href=\"http://BestBuy.com\" rel=\"nofollow\">BestBuy.com</a> site is still a transactional ecommerce one and sadly so, but again, if you had even a tiny trace of knowledge about enterprise information technology you'd be mortified to have written this post.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-01_11:41:47", "killed": false, "user_key": "324e880d3eb0789bf551ab987bd0fa06", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715849": {"up_voted": false, "ip": "", "has_replies": false, "message": "A little snarky there this morning Mr. Borsch :-)<br>Yes, BBY is doing a lot internally/externally with social media. But to Roberts point, the site doesn't really reflect that with a warm friendly face.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-01_12:54:31", "killed": false, "user_key": "3a088b735d051bca68c1f02e292b207e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715850": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hot dog...if this post and comments aren't becoming the essence of web 2.0, then I don't get it!<br><br>I am learning more from keeping tabs on these comments that I have in 5 months on Twitter. (Sorry, beginning to like to dig (not Digg) into Twitter.)<br><br>Although I had a hell of time reading Mr. Borsch's comment, I have to say that I didn't read any \"pontificating\" in Mr. Scoble's post. I saw quite the opposite: a keep it simple sentiment that is at the heart of social anything: human freaking beings. Can't live with 'em...but you can follow them, friend them, and comment on their blogs.<br><br>Thx Borsch, PXlated, Scoble and Coulter -- my week's better now.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-01_13:16:40", "killed": false, "user_key": "b44d33b36a27439355f8b8f18fd15301", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715851": {"up_voted": false, "ip": "", "has_replies": false, "message": "Steve Borsch: I've read through your info on the internet. It's very clear that you do not have the expertise to call me on the carpet. Come back when you do.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-01_13:24:41", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715852": {"up_voted": false, "ip": "", "has_replies": false, "message": "re: borsch.  Experience in an old model isn't what qualifies anyone to be insightful about a new model, in fact the old experience is often a detriment to objectivity.<br><br>re: the web 2.0 and best buy.  I generally agree with  most of the points regarding \"humanizing/socializing\" Best Buy's web presence, although it does seem that Best Buy has a number of initiatives in progress, and isn't exactly the poster child for \"not getting it.\"<br><br>I'm equally interested in applying some of the web 2.0's aggregation and filtering tools to deliver content to the physical store.  I'd like to read reviews about specific geek squad techs before I choose which store to take my PC to.  I'd like to be able to see reviews for the product I'm about to buy on impulse in the store.  I'd love to be able to subscribe to reviews from friends in my network and have them available in the store while I shop.  Obviously this is all starting to be available via our portable devices, but it could be a much richer experience it it were directly built into the physical infrastructure of the store.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-01_14:30:42", "killed": false, "user_key": "08c0041a44791ffa1fdad0803524a6b7", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715853": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, I'll vouch for PXLated. I worked side-by-side with him pre-launch in '99/'00 as interim content director. He's right, the original vision was a good one; Brad was a believer, and a great leader.  Lord knows a lot of water has gone over the dam since then for <a href=\"http://BestBuy.com\" rel=\"nofollow\">BestBuy.com</a> (and how many umpteen billions in sales, too).<br><br>Today, things would be hugely different. But I also know there are a lot of great folks in that company now with their hearts (and minds) in the right place re: social media. They get it, they know the online world has changed, and there are better ways to do retail online...and they're working hard to make things better there. I think it would be cool if you came here to Minneapolis and met with them. We would gladly host you for one of our Social Media Breakfasts! ....which Best Buy often hosts, God bless 'em.<br><br>Many of those Best Buy folks have already commented above or been mentioned; so, we know they're listening and participating. The best comment of all 'em, though, was from my buddy Gary Koelling: \"Thank you, sir. May I have another?\"  Laughed my ass off!<br><br>Hope you're having fun at Web 2.0 -- I can see you right there by the escalators.<br><br>cheers,<br>Graeme<br><a href=\"http://www.twitter.com/graemethickins\" rel=\"nofollow\">www.twitter.com/graemethickins</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-01_15:31:48", "killed": false, "user_key": "18d1ab4fa6f2807d512a0aa6a64954c1", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715854": {"up_voted": false, "ip": "", "has_replies": false, "message": "More on \"experts\" with a pic of a shirt perfect for it: <a href=\"http://moblogsmoproblems.blogspot.com/2009/03/will-real-social-media-expert-please.html\" rel=\"nofollow\">http://moblogsmoproblems.blogspot.com/2009/03/w...</a><br><br><a href=\"http://twitter.com/tweric\" rel=\"nofollow\">http://twitter.com/tweric</a>  (should be @irreverent or @loosescrews)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-01_15:51:52", "killed": false, "user_key": "b44d33b36a27439355f8b8f18fd15301", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715855": {"up_voted": false, "ip": "", "has_replies": false, "message": "Agreed, Robert. People are still trying to figure out social media et al. At the moment it's like trying to juggle porcupines.<br><br>I would suggest that to be of use to enterprise, Facebook and Twitter need to be integrated. So, instead of the reviews being part of the website owner's content, it's actually drawn from and/or posted using Facebook and Twitter.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-01_18:58:49", "killed": false, "user_key": "72caa11f89bbbcde631b12caebd4bb91", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715856": {"up_voted": false, "ip": "", "has_replies": false, "message": "Nothing changes except our tools.  The customer is king.  Customer service is a differentiator.  Always has been.  However, it's expensive.  Our new tools, including social media, open up new, cost effective, ways to provide it.  Would Best Buy take their, very few, customer service/sales people out of their stores.<br><br>I love this post - to me it says don't let go of everything you know to be a core truth.  Leverage the new ability to streamline process and improve service.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-01_19:46:00", "killed": false, "user_key": "d8a772537163c61676e2789b824b9cc8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715857": {"up_voted": false, "ip": "", "has_replies": false, "message": "Whoa! Lots of opinions on this one. I think you are bang on! It is becoming more obvious everyday (at least to me) that those brick &amp; mortar retailers that move towards an improved online social/interactive experience, fully connected with their physical buildings, will have the best chance of survival and growth. How else can one compete with Zappos, Amazon, Threadless? Take a look at what Whole Foods is doing with its interactive web-site and valued twitter account, and you will see where every retailer is heading. I don't know where Best Buy is at, but they will have to move in this direction.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-01_22:50:03", "killed": false, "user_key": "da53d98c50bbe0d753f1586b04023dfe", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715858": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"I want to know that there\u2019s real people behind a business.\"<br><br>You think there aren't?  Are you thinking that businesses that don't have \"people\" on their web site are run by robots? Space aliens?<br><br>Dunno about you, but when I walk into a BestBuy it would be hard to convince any rational person there were not \"people\" behind the business.<br><br>Do you have any quantifiable research data, --and I mean real research data, not the \"most people I talk to\" kind of research you throw out as authoritative--, that BestBuy's sales and bottom line is being dramatically impacted to the negative because they don't have \"real people\" on their web site with Twitter, MyFace, and BookSpace icons next to their names?  Or is this some epiphany you had while gazing at your navel (assuming you can find it)<br><br>\"It\u2019s a lot harder to chose to screw some business when you know someone there\"  Huh? I don't even know what the hell this means. Are you saying that when you want to patronize a business you initially set out to screw them until you find out they have some random employee \"blogging\" on their corporate web site, and spam Twitter with promos for their company? \"harder to screw businesses..\" ??? Seriously, what the hell was your point? Besides Microsoft, who the hell does business like that?<br><br>Hey! How 'bout that!  You \"know\" some random person from Ford because he uses Twitter so, in your world, he 'gets it'.  Well, while I haven't done any actual research (see! I can own up to up), I'm pretty confident that if I did, I would find that for every nerd like you that apparently (based on your writings) makes all their purchasing decisions based on how many people from that company are using Twitter and MyFace, there are 100,000 people out there who couldn't give a crap if a company has \"real people\" \"engaging\" in a \"conversation\" on their web site, but happily make purchases from Ford, Toyota, BestBuy and continue to do so...because the are happy with the PRODUCT that company sells. The ratio of people that couldn't give a crap if a company is using the latest social networking tools, to those that for some reason think a company's future and fate hinges on using the latest \"social networking\" tools to enable less REAL personal interaction with their customers, is probably 100K-to-1.<br><br>Oh, boo-hoo.!You don't get a wedgie..er, I mean, a \"warm\" feeling when you go to BestBuy's site. (If that's what you are looking for, I can point you to a number of sites that will make you feel \"warm\"..along with some other good feelings) Again, freely admit I don't have the data, but I would venture to guess that the majority of people that shop on the internet don't go to a company's ecommerce site expecting to get a \"warm\" feeling \". (excepting those I referred to above)  They likely go there to get a good price, find product that can't find at a retail outlet, and expect a hassle-free, secure check out experience. If they get that, it wouldn't matter if they felt they were at the Southpole in the middle of their winter.<br><br>If you would take even an hour out of your day to do some actual, real research, your would have discovered before bloviating that Best Buy has been on the leading edge of retail technology for years now.  Hell, if you ever managed to do more at Microsoft than shove a camera in people's faces and ask them \"who are you?\" you would have discovered that BestBuy and Microsoft have been developing cutting edge retail technology together for years.  The kind of systems that actually DIRECTLY contribute to their bottom line.  Moreover, your weak argument to attempt to discredit Mr. Borsch should find you embarrassed.  Mr. Borsch has probably forgotten more about BestBuy that you could ever learn.  And no, I don't work for Mr. Borsch.  And have only had the pleasure to speak with him 3 times.  But he left no doubt where his expertise lays. Seriously, do some real research before spouting off pretending to know what you are talking about. Yes, he was a bit snarky.  But his description of you was rather accurate.  Basically you are the nerd version of a jock-sniffer. If you only had credible data to support your positions you could be taken more seriously. But for some reason you can't bring yourself to do that.  And \"no\" your number of \"followers\" is not a credible measure. I mean, hell, Britney Spears has well over half-million followers. Makes me wonder about the quality of twitter users,<br><br>(Mr. Borsch, you may not remember the brief meeting we had on the 17th floor of a rather random high rise in Huntington Beach a few years ago.  But, it's nice to \"hear\" from you. In the long run you should consider that meeting to have been a success for you.  I'm sure you know to what I am referring  ;-)  )", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-02_04:29:45", "killed": false, "user_key": "1cde6023a0e966cc6ab1d49ee81d8670", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715859": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"Thanks for helping out the US economy by picking up that Toyota. Make sure not to visit Detroit, douchebag.\"<br><br>Talk about antiquated thinking. Don't know what Toyota model Scoble purchased, but given the fact that both German and Japanese auto companies have more plants in the US than Ford and Federal Motors, it's quite likely Scoble's  Toyota was built in the US, in a plant in a city in the US, by UAW workers and robots. So, what's not to like?<br><br>As far as visiting Detroit goes, with Federal Motors likely moving HQ to D.C., besides Ford what is there to visit", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-02_04:56:37", "killed": false, "user_key": "1cde6023a0e966cc6ab1d49ee81d8670", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715860": {"up_voted": false, "ip": "", "has_replies": false, "message": "Great challenge, but don't you think the real innovation with come first from a small company that can take more risks?  I'd love to see an eCommerce site, for example, with live chat an every page, but my guess is that no large organization will be crazy enough to try this first.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-02_07:36:01", "killed": false, "user_key": "8894ee4285aea59613f633722322b789", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715861": {"up_voted": false, "ip": "", "has_replies": false, "message": "Presumed typo alert: \"they think you\u2019re listening to you. \"", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-03_00:09:09", "killed": false, "user_key": "0fe44ee170da7c48bd067f8773c3f84d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715862": {"up_voted": false, "ip": "", "has_replies": false, "message": "Apple will get this right.  They are (supposedly) going to be redesigning their online store with the focus of making the online experience more like the in-store experience:<br><br><a href=\"http://tinyurl.com/cpo6qx\" rel=\"nofollow\">http://tinyurl.com/cpo6qx</a><br>Nobody's gotten user experience and design married like Apple has; now that marriage is being taken to online retail.<br><br>On the Twitter note, Apple folks are now starting to \"twitter\" with the focus on customer experience:<br><br><a href=\"http://tinyurl.com/dyy4ns\" rel=\"nofollow\">http://tinyurl.com/dyy4ns</a><br>Not on secret topics, but I think it's a hint at what's to come.  Imagine Steve Jobs twitting the \"\u2026and one more thing\u2026\" or \"\u2026and one more tweet\u2026\" - could replace any conference hype and reach more folks in a split second than any conference ever did.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-19_10:58:41", "killed": false, "user_key": "7711f045c4f11b95b7796f0ac3932805", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715819": {"up_voted": false, "ip": "", "has_replies": false, "message": "Best buy has traditionally been one of the worst retailers out there ... it's no surprise they missed the 2.0 boat", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-04_01:06:08", "killed": false, "user_key": "4cb73df63bdf73b05b37082b0fd6425c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715820": {"up_voted": false, "ip": "", "has_replies": false, "message": "Shane, wise wisdom, but it's wasted, 30 second blogger attention span timezones, onto the next shiny controversy-laden worm-bait toy. I gave up on analysis pieces, hit and runs take less time. And Steve Borsch, you hiring? :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-04_00:18:07", "killed": false, "user_key": "cab1041ab2de14f71e070c15f8ae968e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715821": {"up_voted": false, "ip": "", "has_replies": false, "message": "What I most want from BestBuy online is fairly simple: let me filter my search based on \"in-store availability\". Not so much to save the few days of shipping time, but so I can actually *see* the thing (and possibly try it).<br><br>The only other thing I want from Best Buy is better ways to research/find the right thing, and for that, yes, people are required, so I go to Amazon for reviews. I'm actually thinking that Caterina's new Hunch might be the kind of thing a store like Best Buy could MOST use. But truly--I want to spend LESS, not more, time on the sites I want to shop on. I want to buy something (including research it), not build a relationship. If they can help me learn something useful, or make a more informed and appropriate decision, THAT would be great. But I don't go to Best Buy to \"engage\".", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-04-05_00:30:04", "killed": false, "user_key": "8e25ce83275debdbe2e4e1e40eb41bcb", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715822": {"up_voted": false, "ip": "", "has_replies": false, "message": "What can I say? You got it right. People are what matter; not what tools we use.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_09:37:18", "killed": false, "user_key": "70eef453fa0849958bfad4f397279ff6", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715823": {"up_voted": false, "ip": "", "has_replies": false, "message": "Using Best Buy as an example is right on. I wonder if long term they will survive with this kind of mindset. There is a shift underway in the retail space and those who \"get it\" will survive.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_09:46:52", "killed": false, "user_key": "5d99a348ff4f89bacc29fb56ef83e6ea", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715824": {"up_voted": false, "ip": "", "has_replies": false, "message": "I think the deal is that the majority of the public have access to a physical store and browsing is more fun in real life than with little gifs that may or may not show the actual product.<br><br>I go into Best Buy when I either need something specific or if I have extra cash and want to browse but if I want something that my local store doesn't have I'd search Ebay first before even thinking about <a href=\"http://Bestbuy.com\" rel=\"nofollow\">Bestbuy.com</a>, why pay retail and then have to wait for it to ship?<br><br>In some ways, a slow site is a sign that the real world shopping is meeting the needs, not everything needs to be web based!!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_09:48:26", "killed": false, "user_key": "2c4d82f38dc103004513ad61422603da", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715825": {"up_voted": false, "ip": "", "has_replies": false, "message": "Have you seen this?  Best Buy 2.0<br><br><a href=\"http://www.consumersprice.com/preview\" rel=\"nofollow\">http://www.consumersprice.com/preview</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_10:09:41", "killed": false, "user_key": "eb577d5b5a0c4bbc163bf270208ceb67", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715826": {"up_voted": false, "ip": "", "has_replies": false, "message": "I understand what you are saying, and want to believe you. The concept is sound, but it is based on the concept that the sales people in the store are indeed helpful. The concept of humanizing their website is solid, but if the level of service I get is similar to what I receive at a brick and mortar store, then I feel I would find it more annoying.<br><br>That being said, I will admit that I have had some excellent service in best buy. Back in small appliances, even large appliances I consistently get people who know what they are talking about. Put those people on the website and I'm there (well, not really, Amazon is just such a better shopping experience, but I'd have a better chance of being there). If however you put the people from computers or cameras on the web, I would reach a high level of frustration quickly. My experience (others may vary) is that they can seldom answer a question if it goes beyond what is on the info card/price tag. In computers I've asked about number of memory slots. In cameras I've asked about sensor size. In any case like this, they will study the card and then shrug. They do not offer to go find out or in any way go out of their way to answer my question. If I am shopping in those areas I now go in with my iPhone so I can look up my own answers.<br><br>When I think of companies that get the human aspect, Kimpton comes to mind as well as the Northwest Platinum Desk. In both cases, they will move heaven and earth to get the answer you need, though in most cases, their training is such that it is already at their fingertips. From a similar footprint to Best Buy, the level of expertise of the average employee at Ultimate I have found to be higher as well.<br><br>Other's experience with blue shirts may differ, and I hope it does. Best Buy is a local company for me and I want them to succeed. I've shopped them for years, and I will continue to shop them until a better option is available at least in some departments.<br><br>So, by all means, humanize the web, but don't assume that just putting any human in a blue shirt there will guarantee success.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_10:10:06", "killed": false, "user_key": "b7c1b4bbb0d88ba1d2a63d0bb55c576f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715827": {"up_voted": false, "ip": "", "has_replies": false, "message": "I really liked this post. I don't always agree, but this is worth sharing with those just getting into the social media world.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_10:44:34", "killed": false, "user_key": "6f6c67f633a15cebc7e2680265cc166c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715828": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert,<br><br>This deserves much more conversation than I will give right now and I will use this here at Best Buy as a great conversation pusher just like my tools <a href=\"http://spy.appspot.com\" rel=\"nofollow\">http://spy.appspot.com</a> and others have done so inside the company to get people to understand the value in these channels. There are grassroots teams across the company experimenting in these spaces but, as you point out, being who we are it needs to be bigger, brighter and center stage.<br><br>I'd liek your feedback since we are top of mind...<br><br>I personally have created a tool that allows companies like us to combine the voices of many on Twitter to converge into the companies Twitter stream. I call it <a href=\"http://www.connecttweet.com\" rel=\"nofollow\">http://www.connecttweet.com</a> (blog post here: <a href=\"http://bit.ly/xypWk\" rel=\"nofollow\">http://bit.ly/xypWk</a>)... my vision for Best Buy is that thousands of employee voices really are our voice to the market not a big black box and many execs agree when we have talked about this... I'd love your feedback on this concept I believe it meshes with your overall point about bringing the voices to the forefront and something I have been talking about for a while... but to you point not yet doing.<br><br>This post will propel me to do more. We'd love to talk more about this I'm @benhedrington you can email me <a href=\"mailto:ben.hedrington@bestbuy.com\" rel=\"nofollow\">ben.hedrington@bestbuy.com</a> or <a href=\"mailto:ben@hedrington.com\" rel=\"nofollow\">ben@hedrington.com</a> any time.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_10:46:11", "killed": false, "user_key": "98ca56ba211300d69cf1f3c18ebe7bec", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715829": {"up_voted": false, "ip": "", "has_replies": false, "message": "I agree with Brandon on this...<br><br>Great post...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_10:58:23", "killed": false, "user_key": "605ae06413ee77e1ab5ca77492fbd102", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715830": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thank you sir, may I have another?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_11:01:52", "killed": false, "user_key": "4825f27fc805aa9fca4c3695c02bfc8d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715831": {"up_voted": false, "ip": "", "has_replies": false, "message": "The idea is sound but there is a problem with the logic.  If you have spent any time with customer service at a Best Buy you'd immediately realize why they don't want to add 'people' to their site -- they are terrible at customer satisfaction and giving customers a voice on their website would open a floodgate of vent-blasting the likes of which would destroy the tiny mirage of \"good service\" they currently enjoy.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_11:08:23", "killed": false, "user_key": "fe2d209f1a563c25efbdb9c999286f4c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715832": {"up_voted": false, "ip": "", "has_replies": false, "message": "Social media is Web 2.0's version of WOM, of course better, but does word of mouth run the whole marketing strategy? I think not.<br><br>I'm no expert either but as a young online marketer I know it is important to realize that all the marketing functions must work together for more effecient communication. Social media strategy is just a PART of the whole marketing strategy.<br><br><a href=\"http://trevorlandia.blogspot.com\" rel=\"nofollow\">http://trevorlandia.blogspot.com</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_11:08:56", "killed": false, "user_key": "90585b3edcee5371edb3876368f5a0cd", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715833": {"up_voted": false, "ip": "", "has_replies": false, "message": "Definitely valid points, but I hope that companies don't just blindly \"add people\" and hope magic will happen. The tools are not the solution.<br><br>For example, last year I attended the International Association for Identification (IAI) conference in Louisville, Kentucky on behalf of my employer, who provides software and hardware solutions for law enforcement. One of my co-workers, knowing of my former Twitter account, told me that I should \"twitter\" what we were doing at the IAI. Great idea, but after performing a Twitter search, I deduced that I was the only person on Twitter at the time who had even heard of the IAI. No sense tweeting to myself.<br><br>I'm pondering the extension of social media tools outside the consumer industry, but the activities in the consumer sector are certainly worth monitoring. I'll check out this new Best Buy initiative.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_11:13:08", "killed": false, "user_key": "empoprises", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "8 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}, "9715834": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert,<br><br>I think Best Buy is more aggressive and doing more than you realize.  It's worth your time to check out <a href=\"http://news.cnet.com/8301-13505_3-10050862-16.html\" rel=\"nofollow\">this post</a> on how they are using their APIs to replicate the in-store experience online, and <a href=\"http://radar.oreilly.com/2008/09/open-beats-closed-best-buys-ne.html\" rel=\"nofollow\">this one</a> on the work they are doing around Remix.<br><br>If you aren't already, you may want to follow @BestBuyRemix (Keith Burtis, Remix community manager) and @micheleazar (VP of social channels).<br><br>Mike<br><br><em>Disclosure: I work with Mashery, which provides the API platform for Best Buy.</em>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_11:24:45", "killed": false, "user_key": "b89ab65517b34ef160b535cd4f0b1289", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715835": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert,<br><br>Very impressive.  You are followed by thousands of people but you get it right when you say that the point is to follower other people.<br><br>Thanks for the insights.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_11:28:28", "killed": false, "user_key": "c3f07f365b25e4976c2a3bf496592a26", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715836": {"up_voted": false, "ip": "", "has_replies": false, "message": "Bull, either companies like BestBuy start giving a shit about their customers (on and off-line) or we will find alternative companies that do. Customer service, caring, and interest should be baked into your company culture. Think about it before you sell something or hire anyone.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_11:42:11", "killed": false, "user_key": "c543b5fb59cb3fa904b304f137e18f8a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715837": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi Robert,<br><br>The power of our people is what propelled Best Buy to become an industry leader in retail.  I agree with your point about <a href=\"http://Bestbuy.com\" rel=\"nofollow\">Bestbuy.com</a> not showcasing our Blueshirt and Geek Squad agents in the same manner as in our stores.  However, when a brand moves online it doesn\u2019t mean they create a carbon copy of their physical store locations.<br><br>My team and I manage and moderate many of Best Buy\u2019s Web 2.0 engagements.  We populate the internet with their Blueshirt and Geek Squad knowledge.  We have tri-lingual support on Twitter: English (BBY_Community, GeekSquadHelp), Spanish (BBY_Comunidad) and French (BBY_Communaute) \u2013 I am not aware of any other company that harnesses the power of it people in this fashion.  We also have bilingual Community Forums (<a href=\"http://forums.bestbuy.com\" rel=\"nofollow\">http://forums.bestbuy.com</a>).  I write the Best Living blog and one of my team members writes The Red Ring of Death and Other Gaming Nightmares blog.  In addition to these blogs, we also have Best Buy Connect (<a href=\"http://bestbuyinc.com/connect/\" rel=\"nofollow\">http://bestbuyinc.com/connect/</a>), which features employee blogs and Twitters.  Also, on <a href=\"http://Bestbuy.com\" rel=\"nofollow\">Bestbuy.com</a> there are written and video Ratings and Reviews that are created by customers.<br><br>Furthermore, we also engage in communities that are not operated by Best Buy.  We have a Best Buy Community channel on YouTube and feature these videos on our Community Forum.  We engage on our Facebook page, help customers on Get Satisfaction, promote Best Buy @15 on MySpace and dialogue with customers on their personal blogs \u2013 there are many examples out there in the blogosphere; here are two: <a href=\"http://tinyurl.com/6f6ua4\" rel=\"nofollow\">http://tinyurl.com/6f6ua4</a> and <a href=\"http://tinyurl.com/BBY-penguin\" rel=\"nofollow\">http://tinyurl.com/BBY-penguin</a>.<br><br>Therefore, I partially agree with your statement that, \u201cWeb 2.0 hasn\u2019t reached BestBuy\u2019s headquarters yet.\u201d  While Web 2.0 has reached Best Buy\u2019s headquarters, we are still in the process of embracing it and integrating it into our complete experience.  Until full integration we will continue to utilize other means of connecting our Blueshirts and Geek Squad agents with both our customers and the online public.<br><br>If you would like to chat more, I welcome the conversation.  I\u2019m on Twitter \u2013 Gina_BestBuy.<br><br>Gina<br>Community Manager, Best Buy<br>Creating meaningful communication in a virtual world", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_11:43:07", "killed": false, "user_key": "ebc34723d35bb4ba53560ff38a4d7abc", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715838": {"up_voted": false, "ip": "", "has_replies": false, "message": "I agree that following others is key; we need to reach out to others ... then they will reach out to us.<br><br>See you at the Expo!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_12:03:00", "killed": false, "user_key": "73136def2ecd07f2665bc6718b5cf862", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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}, "9715839": {"up_voted": false, "ip": "", "has_replies": false, "message": "Couldn't agree more but it wasn't always that way at bestbuy.com...in the beginning (launch June 2000) it was all about people, service. It was all about how BestBuy wanted to be your \"smart friend\", the one you turn to for unbiased recommendations. It was about providing better, more consistent customer service and providing anything and everything you the customer would want or need to know about the products so you could make the right selection for you. And it was loaded with people images. Happy, smiling customers interacting with products. And the reason it was that way was it was Brad Anderson (BBY-President) and John Waldon (BBY.com-President) vision. I was the design director (consultant) so know the original vision very well.<br>The wayback machine doesn't seem to have an archive with visuals so I'll open up the back end of my old site where you can get the visuals as well as a little story about the original site... <a href=\"http://www.geise.com/index.php/portfolio/C185/online/\" rel=\"nofollow\">http://www.geise.com/index.php/portfolio/C185/o...</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-03-31_12:17:13", "killed": false, "user_key": "3a088b735d051bca68c1f02e292b207e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "8 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": "18345748", "user_id": "anonymous", "forum_id": "125200", "hash": -6639554109785312259}, "thread": {"total_posts": 0, "paginate": false, "per_page": 0, "slug": "my_web_20_expo_keynote_until_best_buy_adds_people_to_its_website_our_jobs_are_not_done", "num_pages": 1, "days_alive": 0, "realtime_paused": true, "id": 18345748, "num_posts": 44, "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=my_web_20_expo_keynote_until_best_buy_adds_people_to_its_website_our_jobs_are_not_done' +
		'&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/my_web_20_expo_keynote_until_best_buy_adds_people_to_its_website_our_jobs_are_not_done/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='	+ 'my_web_20_expo_keynote_until_best_buy_adds_people_to_its_website_our_jobs_are_not_done'
			+ '&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/my_web_20_expo_keynote_until_best_buy_adds_people_to_its_website_our_jobs_are_not_done/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">44</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://scobleizer.disqus.com/my_web_20_expo_keynote_until_best_buy_adds_people_to_its_website_our_jobs_are_not_done/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/my_web_20_expo_keynote_until_best_buy_adds_people_to_its_website_our_jobs_are_not_done/">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/my_web_20_expo_keynote_until_best_buy_adds_people_to_its_website_our_jobs_are_not_done/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:18345748" 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'				: 'my_web_20_expo_keynote_until_best_buy_adds_people_to_its_website_our_jobs_are_not_done',
			// 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/my_web_20_expo_keynote_until_best_buy_adds_people_to_its_website_our_jobs_are_not_done/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='	+ 'my_web_20_expo_keynote_until_best_buy_adds_people_to_its_website_our_jobs_are_not_done'
			+ '&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='	+ 'my_web_20_expo_keynote_until_best_buy_adds_people_to_its_website_our_jobs_are_not_done'
			+ '&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='		+ 'my_web_20_expo_keynote_until_best_buy_adds_people_to_its_website_our_jobs_are_not_done'
				+ '&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/18345748/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-9715822">\
	 <div id="dsq-comment-header-9715822" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715822" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715822" href="http://lgbusinesssolutions.typepad.com/solutions_to_grow_your_bu/" target="_blank" rel="nofollow">Lewis Green</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715822" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715822" class="dsq-comment-message">What can I say? You got it right. People are what matter; not what tools we use.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715823">\
	 <div id="dsq-comment-header-9715823" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715823" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9715823">Sparky</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715823" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715823" class="dsq-comment-message">Using Best Buy as an example is right on. I wonder if long term they will survive with this kind of mindset. There is a shift underway in the retail space and those who "get it" will survive.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715824">\
	 <div id="dsq-comment-header-9715824" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715824" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715824" href="http://99daz.com/" target="_blank" rel="nofollow">Darren Daz Cox</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715824" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715824" class="dsq-comment-message">I think the deal is that the majority of the public have access to a physical store and browsing is more fun in real life than with little gifs that may or may not show the actual product.<br><br>I go into Best Buy when I either need something specific or if I have extra cash and want to browse but if I want something that my local store doesn\'t have I\'d search Ebay first before even thinking about <a href="http://Bestbuy.com" rel="nofollow">Bestbuy.com</a>, why pay retail and then have to wait for it to ship?<br><br>In some ways, a slow site is a sign that the real world shopping is meeting the needs, not everything needs to be web based!!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715825">\
	 <div id="dsq-comment-header-9715825" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715825" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715825" href="http://www.blogtrafficexchange.com/" target="_blank" rel="nofollow">Blog Traffic Exchange</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715825" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715825" class="dsq-comment-message">Have you seen this?  Best Buy 2.0<br><br><a href="http://www.consumersprice.com/preview" rel="nofollow">http://www.consumersprice.com/preview</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715826">\
	 <div id="dsq-comment-header-9715826" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715826" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715826" href="http://seat6d.com/" target="_blank" rel="nofollow">Denrael</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715826" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715826" class="dsq-comment-message">I understand what you are saying, and want to believe you. The concept is sound, but it is based on the concept that the sales people in the store are indeed helpful. The concept of humanizing their website is solid, but if the level of service I get is similar to what I receive at a brick and mortar store, then I feel I would find it more annoying.<br><br>That being said, I will admit that I have had some excellent service in best buy. Back in small appliances, even large appliances I consistently get people who know what they are talking about. Put those people on the website and I\'m there (well, not really, Amazon is just such a better shopping experience, but I\'d have a better chance of being there). If however you put the people from computers or cameras on the web, I would reach a high level of frustration quickly. My experience (others may vary) is that they can seldom answer a question if it goes beyond what is on the info card/price tag. In computers I\'ve asked about number of memory slots. In cameras I\'ve asked about sensor size. In any case like this, they will study the card and then shrug. They do not offer to go find out or in any way go out of their way to answer my question. If I am shopping in those areas I now go in with my iPhone so I can look up my own answers.<br><br>When I think of companies that get the human aspect, Kimpton comes to mind as well as the Northwest Platinum Desk. In both cases, they will move heaven and earth to get the answer you need, though in most cases, their training is such that it is already at their fingertips. From a similar footprint to Best Buy, the level of expertise of the average employee at Ultimate I have found to be higher as well.<br><br>Other\'s experience with blue shirts may differ, and I hope it does. Best Buy is a local company for me and I want them to succeed. I\'ve shopped them for years, and I will continue to shop them until a better option is available at least in some departments.<br><br>So, by all means, humanize the web, but don\'t assume that just putting any human in a blue shirt there will guarantee success.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715827">\
	 <div id="dsq-comment-header-9715827" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715827" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715827" href="http://www.thebrandonshow.com/" target="_blank" rel="nofollow">Brandon J. Mendelson</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715827" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715827" class="dsq-comment-message">I really liked this post. I don\'t always agree, but this is worth sharing with those just getting into the social media world.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715828">\
	 <div id="dsq-comment-header-9715828" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715828" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715828" href="http://www.buildcontext.com/blog" target="_blank" rel="nofollow">Ben Hedrington</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715828" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715828" class="dsq-comment-message">Robert,<br><br>This deserves much more conversation than I will give right now and I will use this here at Best Buy as a great conversation pusher just like my tools <a href="http://spy.appspot.com" rel="nofollow">http://spy.appspot.com</a> and others have done so inside the company to get people to understand the value in these channels. There are grassroots teams across the company experimenting in these spaces but, as you point out, being who we are it needs to be bigger, brighter and center stage.<br><br>I\'d liek your feedback since we are top of mind...<br><br>I personally have created a tool that allows companies like us to combine the voices of many on Twitter to converge into the companies Twitter stream. I call it <a href="http://www.connecttweet.com" rel="nofollow">http://www.connecttweet.com</a> (blog post here: <a href="http://bit.ly/xypWk" rel="nofollow">http://bit.ly/xypWk</a>)... my vision for Best Buy is that thousands of employee voices really are our voice to the market not a big black box and many execs agree when we have talked about this... I\'d love your feedback on this concept I believe it meshes with your overall point about bringing the voices to the forefront and something I have been talking about for a while... but to you point not yet doing.<br><br>This post will propel me to do more. We\'d love to talk more about this I\'m @benhedrington you can email me <a href="mailto:ben.hedrington@bestbuy.com" rel="nofollow">ben.hedrington@bestbuy.com</a> or <a href="mailto:ben@hedrington.com" rel="nofollow">ben@hedrington.com</a> any time.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715829">\
	 <div id="dsq-comment-header-9715829" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715829" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715829" href="http://www.krisgreenwood.com/" target="_blank" rel="nofollow">Tom</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715829" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715829" class="dsq-comment-message">I agree with Brandon on this...<br><br>Great post...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715830">\
	 <div id="dsq-comment-header-9715830" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715830" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715830" href="http://www.garykoelling.com/" target="_blank" rel="nofollow">Gary Koelling</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715830" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715830" class="dsq-comment-message">Thank you sir, may I have another?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715831">\
	 <div id="dsq-comment-header-9715831" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715831" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9715831">dc</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715831" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715831" class="dsq-comment-message">The idea is sound but there is a problem with the logic.  If you have spent any time with customer service at a Best Buy you\'d immediately realize why they don\'t want to add \'people\' to their site -- they are terrible at customer satisfaction and giving customers a voice on their website would open a floodgate of vent-blasting the likes of which would destroy the tiny mirage of "good service" they currently enjoy.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715832">\
	 <div id="dsq-comment-header-9715832" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715832" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715832" href="http://trevorlandia.blogspot.com/" target="_blank" rel="nofollow">Trevor Long</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715832" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715832" class="dsq-comment-message">Social media is Web 2.0\'s version of WOM, of course better, but does word of mouth run the whole marketing strategy? I think not.<br><br>I\'m no expert either but as a young online marketer I know it is important to realize that all the marketing functions must work together for more effecient communication. Social media strategy is just a PART of the whole marketing strategy.<br><br><a href="http://trevorlandia.blogspot.com" rel="nofollow">http://trevorlandia.blogspot.com</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715833">\
	 <div id="dsq-comment-header-9715833" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715833" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715833" href="http://empoprise-bi.blogspot.com/" target="_blank" rel="nofollow">John E. Bredehoft (Empoprises)</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715833" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715833" class="dsq-comment-message">Definitely valid points, but I hope that companies don\'t just blindly "add people" and hope magic will happen. The tools are not the solution.<br><br>For example, last year I attended the International Association for Identification (IAI) conference in Louisville, Kentucky on behalf of my employer, who provides software and hardware solutions for law enforcement. One of my co-workers, knowing of my former Twitter account, told me that I should "twitter" what we were doing at the IAI. Great idea, but after performing a Twitter search, I deduced that I was the only person on Twitter at the time who had even heard of the IAI. No sense tweeting to myself.<br><br>I\'m pondering the extension of social media tools outside the consumer industry, but the activities in the consumer sector are certainly worth monitoring. I\'ll check out this new Best Buy initiative.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715834">\
	 <div id="dsq-comment-header-9715834" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715834" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715834" href="http://maneydigital.com/" target="_blank" rel="nofollow">Mike Maney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715834" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715834" class="dsq-comment-message">Robert,<br><br>I think Best Buy is more aggressive and doing more than you realize.  It\'s worth your time to check out <a href="http://news.cnet.com/8301-13505_3-10050862-16.html" rel="nofollow">this post</a> on how they are using their APIs to replicate the in-store experience online, and <a href="http://radar.oreilly.com/2008/09/open-beats-closed-best-buys-ne.html" rel="nofollow">this one</a> on the work they are doing around Remix.<br><br>If you aren\'t already, you may want to follow @BestBuyRemix (Keith Burtis, Remix community manager) and @micheleazar (VP of social channels).<br><br>Mike<br><br><em>Disclosure: I work with Mashery, which provides the API platform for Best Buy.</em></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715835">\
	 <div id="dsq-comment-header-9715835" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715835" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715835" href="http://www.lessontech.blogspot.com/" target="_blank" rel="nofollow">Andrew Pass</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715835" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715835" class="dsq-comment-message">Robert,<br><br>Very impressive.  You are followed by thousands of people but you get it right when you say that the point is to follower other people.<br><br>Thanks for the insights.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715836">\
	 <div id="dsq-comment-header-9715836" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715836" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9715836">Eric N.</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715836" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715836" class="dsq-comment-message">Bull, either companies like BestBuy start giving a shit about their customers (on and off-line) or we will find alternative companies that do. Customer service, caring, and interest should be baked into your company culture. Think about it before you sell something or hire anyone.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715837">\
	 <div id="dsq-comment-header-9715837" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715837" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715837" href="http://forums.bestbuy.com/" target="_blank" rel="nofollow">Gina</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715837" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715837" class="dsq-comment-message">Hi Robert,<br><br>The power of our people is what propelled Best Buy to become an industry leader in retail.  I agree with your point about <a href="http://Bestbuy.com" rel="nofollow">Bestbuy.com</a> not showcasing our Blueshirt and Geek Squad agents in the same manner as in our stores.  However, when a brand moves online it doesn’t mean they create a carbon copy of their physical store locations.<br><br>My team and I manage and moderate many of Best Buy’s Web 2.0 engagements.  We populate the internet with their Blueshirt and Geek Squad knowledge.  We have tri-lingual support on Twitter: English (BBY_Community, GeekSquadHelp), Spanish (BBY_Comunidad) and French (BBY_Communaute) – I am not aware of any other company that harnesses the power of it people in this fashion.  We also have bilingual Community Forums (<a href="http://forums.bestbuy.com" rel="nofollow">http://forums.bestbuy.com</a>).  I write the Best Living blog and one of my team members writes The Red Ring of Death and Other Gaming Nightmares blog.  In addition to these blogs, we also have Best Buy Connect (<a href="http://bestbuyinc.com/connect/" rel="nofollow">http://bestbuyinc.com/connect/</a>), which features employee blogs and Twitters.  Also, on <a href="http://Bestbuy.com" rel="nofollow">Bestbuy.com</a> there are written and video Ratings and Reviews that are created by customers.<br><br>Furthermore, we also engage in communities that are not operated by Best Buy.  We have a Best Buy Community channel on YouTube and feature these videos on our Community Forum.  We engage on our Facebook page, help customers on Get Satisfaction, promote Best Buy @15 on MySpace and dialogue with customers on their personal blogs – there are many examples out there in the blogosphere; here are two: <a href="http://tinyurl.com/6f6ua4" rel="nofollow">http://tinyurl.com/6f6ua4</a> and <a href="http://tinyurl.com/BBY-penguin" rel="nofollow">http://tinyurl.com/BBY-penguin</a>.<br><br>Therefore, I partially agree with your statement that, “Web 2.0 hasn’t reached BestBuy’s headquarters yet.”  While Web 2.0 has reached Best Buy’s headquarters, we are still in the process of embracing it and integrating it into our complete experience.  Until full integration we will continue to utilize other means of connecting our Blueshirts and Geek Squad agents with both our customers and the online public.<br><br>If you would like to chat more, I welcome the conversation.  I’m on Twitter – Gina_BestBuy.<br><br>Gina<br>Community Manager, Best Buy<br>Creating meaningful communication in a virtual world</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715838">\
	 <div id="dsq-comment-header-9715838" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715838" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9715838">Ron Proctor</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715838" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715838" class="dsq-comment-message">I agree that following others is key; we need to reach out to others ... then they will reach out to us.<br><br>See you at the Expo!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715839">\
	 <div id="dsq-comment-header-9715839" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715839" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715839" href="http://www.geise.com/" target="_blank" rel="nofollow">PXLated</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715839" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715839" class="dsq-comment-message">Couldn\'t agree more but it wasn\'t always that way at bestbuy.com...in the beginning (launch June 2000) it was all about people, service. It was all about how BestBuy wanted to be your "smart friend", the one you turn to for unbiased recommendations. It was about providing better, more consistent customer service and providing anything and everything you the customer would want or need to know about the products so you could make the right selection for you. And it was loaded with people images. Happy, smiling customers interacting with products. And the reason it was that way was it was Brad Anderson (BBY-President) and John Waldon (BBY.com-President) vision. I was the design director (consultant) so know the original vision very well.<br>The wayback machine doesn\'t seem to have an archive with visuals so I\'ll open up the back end of my old site where you can get the visuals as well as a little story about the original site... <a href="http://www.geise.com/index.php/portfolio/C185/online/" rel="nofollow">http://www.geise.com/index.php/portfolio/C185/o...</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715840">\
	 <div id="dsq-comment-header-9715840" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715840" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715840" href="http://www.geise.com/" target="_blank" rel="nofollow">PXLated</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715840" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715840" class="dsq-comment-message">Just so one isn\'t confused by the coloration (lack of BBY-Blue), back then, customers didn\'t identify BBY with blue, BBY was testing Concept-5 stores and planned on converting all stores to that concept, it didn\'t use blue. And, most brick/mortar chains were trying to differentiate their online operations from their offline stores (because of the Amazon valuations) and take them public at some point. The dot-com bust changed all that.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715841">\
	 <div id="dsq-comment-header-9715841" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715841" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9715841">Nick</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715841" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715841" class="dsq-comment-message">Thanks for helping out the US economy by picking up that Toyota. Make sure not to visit Detroit, douchebag.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715842">\
	 <div id="dsq-comment-header-9715842" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715842" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715842" href="http://blahblahbleric.com/" target="_blank" rel="nofollow">Eric Matas</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715842" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715842" class="dsq-comment-message">Web 2.0 annoyance #1: 5 minute experts. It is semantically possible for people to dabble in social media/networking and become more informed than most; thus they are "experts" in comparison to others--like my 5-year old daughter, for instance. I suggest, then, that these experts give the keynote at their local area day care centers.<br><br>Imagine it! Pre-schoolers tweeting! Blogging about boogers!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715843">\
	 <div id="dsq-comment-header-9715843" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715843" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715843" href="http://www.jakeludington.com/" target="_blank" rel="nofollow">Jake Ludington</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715843" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715843" class="dsq-comment-message">The spirit of what you\'ve said here is spot on, but having people present doesn\'t mean you have solved the problem of creating a relationship with your customers. Best Buy has people in their stores, but they still don\'t have the traditional model (i.e. face-to-face) of customer relationships worked out. I have done a number of shopping expeditions to Best Buy stores to gain a better understanding of what people are experiencing when they buy computers. When asking about which notebook computer to choose at multiple Best Buy locations, the sales people always key in on selling me a product replacement plan and offer to charge me to remove trialware from the computer. Trying to get them to tell me why I might want the Toshiba or the HP notebook doesn\'t get me to the point of having an informed choice. If employees aren\'t being trained to provide this data effectively in person, how is Best Buy going to create that culture online?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715844">\
	 <div id="dsq-comment-header-9715844" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715844" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9715844">MRK</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715844" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715844" class="dsq-comment-message">Agree with Eric N.  BestBuy don\'t give a crap about their customers, and until they change that attitude, customers will find alternatives.  Personally, BestBuy is a place where I go if I need something urgently or just to browse before I buy online.<br><br>If I recall correctly, isn\'t this also the same company that showed different pricing on their website when browsed from within stores?  That\'s just hitting new lows to rip-off customers.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715845">\
	 <div id="dsq-comment-header-9715845" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715845" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715845" href="http://www.magicwoodworks.com/" target="_blank" rel="nofollow">keithburtis</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715845" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715845" class="dsq-comment-message">Robert, Thank you for your opinions. I am social media community manager for the Best Buy Remix project. Not sure how many people know, but Best Buy has opened up it\'s API of information to allow developers to create third party apps on Best Buy content. I don\'t want to reiterate the things that some of my coworkers have said, but one thing I am sure is that you will see improvements on the horizon.<br><br>As a company I know Best Buy has web 2.0, engagement, and change as top of mind.<br><br>Thank you for the suggestions.<br>Keith Burtis - @Bestbuyremix<br><a href="http://remix.bestbuy.com" rel="nofollow">http://remix.bestbuy.com</a><br><br>PS- It was nice to meet you at SXSW.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715846">\
	 <div id="dsq-comment-header-9715846" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715846" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715846" href="http://www.geise.com/" target="_blank" rel="nofollow">PXLated</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715846" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715846" class="dsq-comment-message">Jake - I turned down the BBY gig three times. I was finally convinced to do it when Brad Anderson said he saw online as a way of providing superior service, speaking with a single voice, being manufacture/brand agnostic, etc. Getting you unbiased recommendations and the product that is right for you. He also said, blow the blockages, route around the party poopers and don\'t let the brick-n-mortar side get in your way. Coordinate where you can, route around where you have to.<br>In-store you have employees that don\'t do their homework (BBY has good training from what I saw if the employees would just do it), have their own personalities/agendas, extremely high turn over and some managers can be a little too aggressive because their salary/bonus depends on it. Online you have neither of those problems.<br>-----<br>I must say though, I\'ve had pretty good in-store experiences the last year or so. Except for the prick who insisted I buy a Blackberry on the Verizon network. Could have been an easy sale but he wouldn\'t sell me what I wanted. Finally walked out on him. No matter what corporate does, you\'re going to end up with some emplyees like that.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715847">\
	 <div id="dsq-comment-header-9715847" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715847" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9715847">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715847" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715847" class="dsq-comment-message">Common Sense Counterpoints<br><br>1. There is no such thing as social media. Media is not social. People are. Yet online, it\'s still all mainly fake friendships, not very social, demented raw narcissism, yes. Plus, it\'s faddish, hot thing today, cold tomorrow.<br><br>2. A personal touchy-feel approach means little, if the product is of poor<br>quality and not priced right for the market. And too personal is as annoying as too little. But if a bargain, yet you have to put up with rudeness, shrug, it\'s still a bargain. Master your emotions. Besides the ABSENCE of annoying Blue Shirt pimply-college kid twerps, saying whatever for a commission and all the extended warranty dirty tricks, is one of the benefits. You must be in some alternate reality zone, as I don\'t see mass love for big box \'people as cattle\' approaches, ask Laptop Magazine about that. And personal touches, come with bigger price tags. Commodity cheap, personal touch, take out a loan.<br><br>3. Making purchasing decisions based on personal feelings is a direct highway to ruin; ignore the faux guilt trips.<br><br>4. Some people go through a research and case-study process, the smart ones, at least. Sales processes are for those who haven\'t done their homework.<br><br>5. Websites are not low cost. Overall ROI has to be factored in, and you need a support system to make it work, shipping, hosting, low margins, logistical supply-chain nightmares, can kill you. The whole <a href="http://dot.com" rel="nofollow">dot.com</a> bomb thing already happened, member? Click didn\'t replace brick. This stuff isn\'t as easy as having some San Fran hippie design firm fire up some artsy flash/html. MBA-level Supply-Chain Vendor-Management Pricing-Formula Logistical Leaps and Bounds, thats more the reality. The process is ever bit as vital as the actual site.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715848">\
	 <div id="dsq-comment-header-9715848" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715848" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715848" href="http://iconnectdots.com/" target="_blank" rel="nofollow">Steve Borsch</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715848" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715848" class="dsq-comment-message">With all due respect Robert, you\'re not only a "Monday morning quarterback", you\'re someone who has never even played football. That you are pontificating as a junior commentator on the social media equivalent of ESPN doesn\'t make you a former head coach or player coach whose played the game, won and lost, and known the triumphs, losses and what it takes to achieve.<br><br>Scanning through your Wikipedia page, it\'s clear that you\'ve had some interesting low level jobs and, one could argue, even more intriguing new media ones at a modestly higher level. That, however, does NOT make you either an expert, qualified in any way to grok the complexity of an ecommerce site on the scale of a Best Buy, and thus you come across as hopefully naive in this post.<br><br>Having called on Dick Schulze and Brad Anderson when they had eight Sound of Music stores (I was with a manufacturer\'s rep firm out of college), I\'ve been somewhat privy to how they went from that modest beginning to the consumer electronics behemoth they are today. They fought, clawed, and sold their way to greatness, taking HUGE risks in the previously untested and new "big box retailer" concept that is the Best Buy we know today.<br><br>*If* you\'d done any due diligence (ahh....reporting?) you would\'ve seen that they\'re taking more risks with \'net/web/social media initiatives than *any* organization their size. Yes, the <a href="http://BestBuy.com" rel="nofollow">BestBuy.com</a> site is still a transactional ecommerce one and sadly so, but again, if you had even a tiny trace of knowledge about enterprise information technology you\'d be mortified to have written this post.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715849">\
	 <div id="dsq-comment-header-9715849" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715849" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715849" href="http://www.geise.com/" target="_blank" rel="nofollow">PXLated</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715849" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715849" class="dsq-comment-message">A little snarky there this morning Mr. Borsch :-)<br>Yes, BBY is doing a lot internally/externally with social media. But to Roberts point, the site doesn\'t really reflect that with a warm friendly face.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715850">\
	 <div id="dsq-comment-header-9715850" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715850" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715850" href="http://blahblahbleric.com/" target="_blank" rel="nofollow">Eric Matas</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715850" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715850" class="dsq-comment-message">Hot dog...if this post and comments aren\'t becoming the essence of web 2.0, then I don\'t get it!<br><br>I am learning more from keeping tabs on these comments that I have in 5 months on Twitter. (Sorry, beginning to like to dig (not Digg) into Twitter.)<br><br>Although I had a hell of time reading Mr. Borsch\'s comment, I have to say that I didn\'t read any "pontificating" in Mr. Scoble\'s post. I saw quite the opposite: a keep it simple sentiment that is at the heart of social anything: human freaking beings. Can\'t live with \'em...but you can follow them, friend them, and comment on their blogs.<br><br>Thx Borsch, PXlated, Scoble and Coulter -- my week\'s better now.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715851">\
	 <div id="dsq-comment-header-9715851" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715851" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715851" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715851" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715851" class="dsq-comment-message">Steve Borsch: I\'ve read through your info on the internet. It\'s very clear that you do not have the expertise to call me on the carpet. Come back when you do.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715852">\
	 <div id="dsq-comment-header-9715852" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715852" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715852" href="http://www.retailgeek.com/" target="_blank" rel="nofollow">Jason Goldberg</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715852" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715852" class="dsq-comment-message">re: borsch.  Experience in an old model isn\'t what qualifies anyone to be insightful about a new model, in fact the old experience is often a detriment to objectivity.<br><br>re: the web 2.0 and best buy.  I generally agree with  most of the points regarding "humanizing/socializing" Best Buy\'s web presence, although it does seem that Best Buy has a number of initiatives in progress, and isn\'t exactly the poster child for "not getting it."<br><br>I\'m equally interested in applying some of the web 2.0\'s aggregation and filtering tools to deliver content to the physical store.  I\'d like to read reviews about specific geek squad techs before I choose which store to take my PC to.  I\'d like to be able to see reviews for the product I\'m about to buy on impulse in the store.  I\'d love to be able to subscribe to reviews from friends in my network and have them available in the store while I shop.  Obviously this is all starting to be available via our portable devices, but it could be a much richer experience it it were directly built into the physical infrastructure of the store.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715853">\
	 <div id="dsq-comment-header-9715853" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715853" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715853" href="http://www.Tech-Surf-Blog.com/" target="_blank" rel="nofollow">Graeme Thickins</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715853" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715853" class="dsq-comment-message">Robert, I\'ll vouch for PXLated. I worked side-by-side with him pre-launch in \'99/\'00 as interim content director. He\'s right, the original vision was a good one; Brad was a believer, and a great leader.  Lord knows a lot of water has gone over the dam since then for <a href="http://BestBuy.com" rel="nofollow">BestBuy.com</a> (and how many umpteen billions in sales, too).<br><br>Today, things would be hugely different. But I also know there are a lot of great folks in that company now with their hearts (and minds) in the right place re: social media. They get it, they know the online world has changed, and there are better ways to do retail online...and they\'re working hard to make things better there. I think it would be cool if you came here to Minneapolis and met with them. We would gladly host you for one of our Social Media Breakfasts! ....which Best Buy often hosts, God bless \'em.<br><br>Many of those Best Buy folks have already commented above or been mentioned; so, we know they\'re listening and participating. The best comment of all \'em, though, was from my buddy Gary Koelling: "Thank you, sir. May I have another?"  Laughed my ass off!<br><br>Hope you\'re having fun at Web 2.0 -- I can see you right there by the escalators.<br><br>cheers,<br>Graeme<br><a href="http://www.twitter.com/graemethickins" rel="nofollow">www.twitter.com/graemethickins</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715854">\
	 <div id="dsq-comment-header-9715854" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715854" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715854" href="http://blahblahbleric.com/" target="_blank" rel="nofollow">Eric Matas</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715854" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715854" class="dsq-comment-message">More on "experts" with a pic of a shirt perfect for it: <a href="http://moblogsmoproblems.blogspot.com/2009/03/will-real-social-media-expert-please.html" rel="nofollow">http://moblogsmoproblems.blogspot.com/2009/03/w...</a><br><br><a href="http://twitter.com/tweric" rel="nofollow">http://twitter.com/tweric</a>  (should be @irreverent or @loosescrews)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715855">\
	 <div id="dsq-comment-header-9715855" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715855" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715855" href="http://www.341design.com.au/" target="_blank" rel="nofollow">Chris Howard</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715855" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715855" class="dsq-comment-message">Agreed, Robert. People are still trying to figure out social media et al. At the moment it\'s like trying to juggle porcupines.<br><br>I would suggest that to be of use to enterprise, Facebook and Twitter need to be integrated. So, instead of the reviews being part of the website owner\'s content, it\'s actually drawn from and/or posted using Facebook and Twitter.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715856">\
	 <div id="dsq-comment-header-9715856" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715856" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9715856">Andrew Willis</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715856" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715856" class="dsq-comment-message">Nothing changes except our tools.  The customer is king.  Customer service is a differentiator.  Always has been.  However, it\'s expensive.  Our new tools, including social media, open up new, cost effective, ways to provide it.  Would Best Buy take their, very few, customer service/sales people out of their stores.<br><br>I love this post - to me it says don\'t let go of everything you know to be a core truth.  Leverage the new ability to streamline process and improve service.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715857">\
	 <div id="dsq-comment-header-9715857" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715857" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715857" href="http://www.rickboretsky.com/" target="_blank" rel="nofollow">Rick Boretsky</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715857" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715857" class="dsq-comment-message">Whoa! Lots of opinions on this one. I think you are bang on! It is becoming more obvious everyday (at least to me) that those brick &amp; mortar retailers that move towards an improved online social/interactive experience, fully connected with their physical buildings, will have the best chance of survival and growth. How else can one compete with Zappos, Amazon, Threadless? Take a look at what Whole Foods is doing with its interactive web-site and valued twitter account, and you will see where every retailer is heading. I don\'t know where Best Buy is at, but they will have to move in this direction.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715858">\
	 <div id="dsq-comment-header-9715858" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715858" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9715858">Shane</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715858" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715858" class="dsq-comment-message">"I want to know that there’s real people behind a business."<br><br>You think there aren\'t?  Are you thinking that businesses that don\'t have "people" on their web site are run by robots? Space aliens?<br><br>Dunno about you, but when I walk into a BestBuy it would be hard to convince any rational person there were not "people" behind the business.<br><br>Do you have any quantifiable research data, --and I mean real research data, not the "most people I talk to" kind of research you throw out as authoritative--, that BestBuy\'s sales and bottom line is being dramatically impacted to the negative because they don\'t have "real people" on their web site with Twitter, MyFace, and BookSpace icons next to their names?  Or is this some epiphany you had while gazing at your navel (assuming you can find it)<br><br>"It’s a lot harder to chose to screw some business when you know someone there"  Huh? I don\'t even know what the hell this means. Are you saying that when you want to patronize a business you initially set out to screw them until you find out they have some random employee "blogging" on their corporate web site, and spam Twitter with promos for their company? "harder to screw businesses.." ??? Seriously, what the hell was your point? Besides Microsoft, who the hell does business like that?<br><br>Hey! How \'bout that!  You "know" some random person from Ford because he uses Twitter so, in your world, he \'gets it\'.  Well, while I haven\'t done any actual research (see! I can own up to up), I\'m pretty confident that if I did, I would find that for every nerd like you that apparently (based on your writings) makes all their purchasing decisions based on how many people from that company are using Twitter and MyFace, there are 100,000 people out there who couldn\'t give a crap if a company has "real people" "engaging" in a "conversation" on their web site, but happily make purchases from Ford, Toyota, BestBuy and continue to do so...because the are happy with the PRODUCT that company sells. The ratio of people that couldn\'t give a crap if a company is using the latest social networking tools, to those that for some reason think a company\'s future and fate hinges on using the latest "social networking" tools to enable less REAL personal interaction with their customers, is probably 100K-to-1.<br><br>Oh, boo-hoo.!You don\'t get a wedgie..er, I mean, a "warm" feeling when you go to BestBuy\'s site. (If that\'s what you are looking for, I can point you to a number of sites that will make you feel "warm"..along with some other good feelings) Again, freely admit I don\'t have the data, but I would venture to guess that the majority of people that shop on the internet don\'t go to a company\'s ecommerce site expecting to get a "warm" feeling ". (excepting those I referred to above)  They likely go there to get a good price, find product that can\'t find at a retail outlet, and expect a hassle-free, secure check out experience. If they get that, it wouldn\'t matter if they felt they were at the Southpole in the middle of their winter.<br><br>If you would take even an hour out of your day to do some actual, real research, your would have discovered before bloviating that Best Buy has been on the leading edge of retail technology for years now.  Hell, if you ever managed to do more at Microsoft than shove a camera in people\'s faces and ask them "who are you?" you would have discovered that BestBuy and Microsoft have been developing cutting edge retail technology together for years.  The kind of systems that actually DIRECTLY contribute to their bottom line.  Moreover, your weak argument to attempt to discredit Mr. Borsch should find you embarrassed.  Mr. Borsch has probably forgotten more about BestBuy that you could ever learn.  And no, I don\'t work for Mr. Borsch.  And have only had the pleasure to speak with him 3 times.  But he left no doubt where his expertise lays. Seriously, do some real research before spouting off pretending to know what you are talking about. Yes, he was a bit snarky.  But his description of you was rather accurate.  Basically you are the nerd version of a jock-sniffer. If you only had credible data to support your positions you could be taken more seriously. But for some reason you can\'t bring yourself to do that.  And "no" your number of "followers" is not a credible measure. I mean, hell, Britney Spears has well over half-million followers. Makes me wonder about the quality of twitter users,<br><br>(Mr. Borsch, you may not remember the brief meeting we had on the 17th floor of a rather random high rise in Huntington Beach a few years ago.  But, it\'s nice to "hear" from you. In the long run you should consider that meeting to have been a success for you.  I\'m sure you know to what I am referring  ;-)  )</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715859">\
	 <div id="dsq-comment-header-9715859" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715859" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9715859">Shane</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715859" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715859" class="dsq-comment-message">"Thanks for helping out the US economy by picking up that Toyota. Make sure not to visit Detroit, douchebag."<br><br>Talk about antiquated thinking. Don\'t know what Toyota model Scoble purchased, but given the fact that both German and Japanese auto companies have more plants in the US than Ford and Federal Motors, it\'s quite likely Scoble\'s  Toyota was built in the US, in a plant in a city in the US, by UAW workers and robots. So, what\'s not to like?<br><br>As far as visiting Detroit goes, with Federal Motors likely moving HQ to D.C., besides Ford what is there to visit</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715860">\
	 <div id="dsq-comment-header-9715860" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715860" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715860" href="http://www.alice.com/" target="_blank" rel="nofollow">Mark McGuire</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715860" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715860" class="dsq-comment-message">Great challenge, but don\'t you think the real innovation with come first from a small company that can take more risks?  I\'d love to see an eCommerce site, for example, with live chat an every page, but my guess is that no large organization will be crazy enough to try this first.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715861">\
	 <div id="dsq-comment-header-9715861" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715861" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715861" href="http://www.monash.com/curtbio.html" target="_blank" rel="nofollow">Curt Monash</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715861" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715861" class="dsq-comment-message">Presumed typo alert: "they think you’re listening to you. "</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715820">\
	 <div id="dsq-comment-header-9715820" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715820" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9715820">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715820" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715820" class="dsq-comment-message">Shane, wise wisdom, but it\'s wasted, 30 second blogger attention span timezones, onto the next shiny controversy-laden worm-bait toy. I gave up on analysis pieces, hit and runs take less time. And Steve Borsch, you hiring? :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715819">\
	 <div id="dsq-comment-header-9715819" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715819" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9715819" href="http://digg.com/u1AMF" target="_blank" rel="nofollow">spoon pics or gtfo</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715819" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715819" class="dsq-comment-message">Best buy has traditionally been one of the worst retailers out there ... it\'s no surprise they missed the 2.0 boat</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715821">\
	 <div id="dsq-comment-header-9715821" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715821" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9715821">Kathy Sierra</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715821" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715821" class="dsq-comment-message">What I most want from BestBuy online is fairly simple: let me filter my search based on "in-store availability". Not so much to save the few days of shipping time, but so I can actually *see* the thing (and possibly try it).<br><br>The only other thing I want from Best Buy is better ways to research/find the right thing, and for that, yes, people are required, so I go to Amazon for reviews. I\'m actually thinking that Caterina\'s new Hunch might be the kind of thing a store like Best Buy could MOST use. But truly--I want to spend LESS, not more, time on the sites I want to shop on. I want to buy something (including research it), not build a relationship. If they can help me learn something useful, or make a more informed and appropriate decision, THAT would be great. But I don\'t go to Best Buy to "engage".</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9715862">\
	 <div id="dsq-comment-header-9715862" class="dsq-comment-header">\
	 <cite id="dsq-cite-9715862" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9715862">jono</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9715862" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9715862" class="dsq-comment-message">Apple will get this right.  They are (supposedly) going to be redesigning their online store with the focus of making the online experience more like the in-store experience:<br><br><a href="http://tinyurl.com/cpo6qx" rel="nofollow">http://tinyurl.com/cpo6qx</a><br>Nobody\'s gotten user experience and design married like Apple has; now that marriage is being taken to online retail.<br><br>On the Twitter note, Apple folks are now starting to "twitter" with the focus on customer experience:<br><br><a href="http://tinyurl.com/dyy4ns" rel="nofollow">http://tinyurl.com/dyy4ns</a><br>Not on secret topics, but I think it\'s a hint at what\'s to come.  Imagine Steve Jobs twitting the "…and one more thing…" or "…and one more tweet…" - could replace any conference hype and reach more folks in a split second than any conference ever did.</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=my_web_20_expo_keynote_until_best_buy_adds_people_to_its_website_our_jobs_are_not_done&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);
			}
		}
	});
}

})();




