




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": [], "has_more_reactions": false, "users": {"5453fd1fd1c48a79040f72d9e527dbe6": {"username": "Shashanka", "tumblr": "", "display_name": "Shashanka", "url": "http://disqus.com/guest/5453fd1fd1c48a79040f72d9e527dbe6/", "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": ""}, "tinusguichelaar": {"username": "tinusguichelaar", "tumblr": "", "display_name": "Tinus", "url": "http://disqus.com/tinusguichelaar/", "registered": true, "linkedin": "in/tinusg ", "blog": "http://tinus.guichelaar.info", "remote_domain": null, "points": 4, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/21266/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "df2bebffe2fece4cee7ed284aaff3cf0": {"username": "seshadri(formerly bloggerATwor", "tumblr": "", "display_name": "seshadri(formerly bloggerATwor", "url": "http://disqus.com/guest/df2bebffe2fece4cee7ed284aaff3cf0/", "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": ""}, "144262a689156337ce6fc029d0aae46b": {"username": "Ani", "tumblr": "", "display_name": "Ani", "url": "http://disqus.com/guest/144262a689156337ce6fc029d0aae46b/", "registered": false, "linkedin": "", "blog": "http://analiagermano.wordpress.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": ""}, "76075bb4e17939ed2c11617df3708bf4": {"username": "Jim", "tumblr": "", "display_name": "Jim", "url": "http://disqus.com/guest/76075bb4e17939ed2c11617df3708bf4/", "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": ""}, "6f62aad76b5dc1c5ee09d4e2fa9cd77e": {"username": "Armand", "tumblr": "", "display_name": "Armand", "url": "http://disqus.com/guest/6f62aad76b5dc1c5ee09d4e2fa9cd77e/", "registered": false, "linkedin": "", "blog": "http://www.division6.co.uk/", "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": ""}, "1ae49b3381bc5b09d2855a9eb91e2b5c": {"username": "r draper", "tumblr": "", "display_name": "r draper", "url": "http://disqus.com/guest/1ae49b3381bc5b09d2855a9eb91e2b5c/", "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": ""}, "438f1bc5871acc5c58f3f3808c287a08": {"username": "Owen", "tumblr": "", "display_name": "Owen", "url": "http://disqus.com/guest/438f1bc5871acc5c58f3f3808c287a08/", "registered": false, "linkedin": "", "blog": "http://www.u-g-h.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/165/2572/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "2963baa0249738551dc6f5c5d214bc2f": {"username": "James", "tumblr": "", "display_name": "James", "url": "http://disqus.com/guest/2963baa0249738551dc6f5c5d214bc2f/", "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": ""}, "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": ""}, "ea5036994d8e3d00fe4c9ede36c2d05a": {"username": "Mark", "tumblr": "", "display_name": "Mark", "url": "http://disqus.com/guest/ea5036994d8e3d00fe4c9ede36c2d05a/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/2599/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "2d33c7d145b322298824e15dc0b4b6b9": {"username": "Mat", "tumblr": "", "display_name": "Mat", "url": "http://disqus.com/guest/2d33c7d145b322298824e15dc0b4b6b9/", "registered": false, "linkedin": "", "blog": "http://www.balez.ca/mat", "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": ""}, "796bb50229682a2571e89273820a0de1": {"username": "Kurt", "tumblr": "", "display_name": "Kurt", "url": "http://disqus.com/guest/796bb50229682a2571e89273820a0de1/", "registered": false, "linkedin": "", "blog": "http://kurtknapp.wordpress.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": ""}, "57e96f1c990a2d096f5d138a53b7f4b2": {"username": "kristin", "tumblr": "", "display_name": "kristin", "url": "http://disqus.com/guest/57e96f1c990a2d096f5d138a53b7f4b2/", "registered": false, "linkedin": "", "blog": "http://kristin.wordpress.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": ""}, "d31162a3cc58d022b77abd3a22bde2a7": {"username": "Cindy", "tumblr": "", "display_name": "Cindy", "url": "http://disqus.com/guest/d31162a3cc58d022b77abd3a22bde2a7/", "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": ""}, "2df34be841ec0ab57703fd4ef0e34170": {"username": "Joost", "tumblr": "", "display_name": "Joost", "url": "http://disqus.com/guest/2df34be841ec0ab57703fd4ef0e34170/", "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": ""}, "c35857bfc3d67f00880220f0c85ac343": {"username": "Lori Olson", "tumblr": "", "display_name": "Lori Olson", "url": "http://disqus.com/guest/c35857bfc3d67f00880220f0c85ac343/", "registered": false, "linkedin": "", "blog": "http://blog.dragonsharp.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": ""}, "31f44a5036179e48ecacffe4c3ec0784": {"username": "Satish", "tumblr": "", "display_name": "Satish", "url": "http://disqus.com/guest/31f44a5036179e48ecacffe4c3ec0784/", "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": ""}, "7f6291e8344b594235e57b843fc05d9b": {"username": "Christopher Coulter", "tumblr": "", "display_name": "Christopher Coulter", "url": "http://disqus.com/guest/7f6291e8344b594235e57b843fc05d9b/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "098f9c10011f20ee8427ae8cc869c9aa": {"username": "Jeff Ventura", "tumblr": "", "display_name": "Jeff Ventura", "url": "http://disqus.com/guest/098f9c10011f20ee8427ae8cc869c9aa/", "registered": false, "linkedin": "", "blog": "http://gracefulflavor.wordpress.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": ""}, "4afc618b221dd9f632185fe8b5ee61b4": {"username": "Hendrik", "tumblr": "", "display_name": "Hendrik", "url": "http://disqus.com/guest/4afc618b221dd9f632185fe8b5ee61b4/", "registered": false, "linkedin": "", "blog": "http://www.studiomuscle.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": ""}, "7818dc6073d92898f2558f7b600368c0": {"username": "Satyendra", "tumblr": "", "display_name": "Satyendra", "url": "http://disqus.com/guest/7818dc6073d92898f2558f7b600368c0/", "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": ""}, "02b189ba7b69a99cd20b17c03f2835e8": {"username": "jay", "tumblr": "", "display_name": "jay", "url": "http://disqus.com/guest/02b189ba7b69a99cd20b17c03f2835e8/", "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": ""}, "1e9dc6d24898980e16e42f367d5aa71a": {"username": "Allie", "tumblr": "", "display_name": "Allie", "url": "http://disqus.com/guest/1e9dc6d24898980e16e42f367d5aa71a/", "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": ""}, "ba11601a9528b5bfa428e794758e1dee": {"username": "adam", "tumblr": "", "display_name": "adam", "url": "http://disqus.com/guest/ba11601a9528b5bfa428e794758e1dee/", "registered": false, "linkedin": "", "blog": "http://brandsimo.wordpress.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": ""}, "b9144e7ff8b09734e69c56b948faa29d": {"username": "JHC", "tumblr": "", "display_name": "JHC", "url": "http://disqus.com/guest/b9144e7ff8b09734e69c56b948faa29d/", "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": ""}, "ed358d9b64a8993db13d5d16f05aba92": {"username": "Matt", "tumblr": "", "display_name": "Matt", "url": "http://disqus.com/guest/ed358d9b64a8993db13d5d16f05aba92/", "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": ""}, "e3827a7c1741cf42d52a0ab0dc2dc9ff": {"username": "Eric Rice", "tumblr": "", "display_name": "Eric Rice", "url": "http://disqus.com/guest/e3827a7c1741cf42d52a0ab0dc2dc9ff/", "registered": false, "linkedin": "", "blog": "http://ericrice.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": ""}, "51ffb49a9ed2d2b28149a681cd05fda8": {"username": "Ciaran", "tumblr": "", "display_name": "Ciaran", "url": "http://disqus.com/guest/51ffb49a9ed2d2b28149a681cd05fda8/", "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": ""}, "76bec42915def4e9ec9ea0b3a7630833": {"username": "Steven Hodson", "tumblr": "", "display_name": "Steven Hodson", "url": "http://disqus.com/guest/76bec42915def4e9ec9ea0b3a7630833/", "registered": false, "linkedin": "", "blog": "http://www.winextra.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/24/46/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "2012d525778bf099ac6c5e5f2951cf77": {"username": "Chinnari", "tumblr": "", "display_name": "Chinnari", "url": "http://disqus.com/guest/2012d525778bf099ac6c5e5f2951cf77/", "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": ""}, "eae08bd024b8d7378c8d349989a5c6f8": {"username": "Andrew", "tumblr": "", "display_name": "Andrew", "url": "http://disqus.com/guest/eae08bd024b8d7378c8d349989a5c6f8/", "registered": false, "linkedin": "", "blog": "http://www.penguinsix.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": ""}, "b618062a25161d80789e7fefb0337396": {"username": "fifthdecade", "tumblr": "", "display_name": "fifthdecade", "url": "http://disqus.com/guest/b618062a25161d80789e7fefb0337396/", "registered": false, "linkedin": "", "blog": "http://fifthdecade.wordpress.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": ""}, "cbce58e38882b511d3ae01e6a5513b00": {"username": "Ricky", "tumblr": "", "display_name": "Ricky", "url": "http://disqus.com/guest/cbce58e38882b511d3ae01e6a5513b00/", "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": ""}, "a216448a699b8cb7e3f70fba31d76974": {"username": "Ben Gold", "tumblr": "", "display_name": "Ben Gold", "url": "http://disqus.com/guest/a216448a699b8cb7e3f70fba31d76974/", "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": ""}, "8bac25106390e57d4c046b063df2c682": {"username": "ioannusdeverani", "tumblr": "", "display_name": "ioannusdeverani", "url": "http://disqus.com/guest/8bac25106390e57d4c046b063df2c682/", "registered": false, "linkedin": "", "blog": "http://ioannusdeverani.wordpress.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": ""}, "ffae666ed0f2f8ab84f6569b2295c460": {"username": "Keith Patrick", "tumblr": "", "display_name": "Keith Patrick", "url": "http://disqus.com/guest/ffae666ed0f2f8ab84f6569b2295c460/", "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": ""}, "0b5d91839df68fd798834740487c420d": {"username": "joern puetz", "tumblr": "", "display_name": "joern puetz", "url": "http://disqus.com/guest/0b5d91839df68fd798834740487c420d/", "registered": false, "linkedin": "", "blog": "http://www.active2go.de/", "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": ""}, "61c5650ba9ea39c48113cbef92802a0a": {"username": "Nescio", "tumblr": "", "display_name": "Nescio", "url": "http://disqus.com/guest/61c5650ba9ea39c48113cbef92802a0a/", "registered": false, "linkedin": "", "blog": "http://channel64.wordpress.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": ""}, "99aebc1ebefc92f3e98f5e2004410975": {"username": "Josh", "tumblr": "", "display_name": "Josh", "url": "http://disqus.com/guest/99aebc1ebefc92f3e98f5e2004410975/", "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": ""}, "759b816f0fe911b73983ba7378c5b2a9": {"username": "Ebrahim", "tumblr": "", "display_name": "Ebrahim", "url": "http://disqus.com/guest/759b816f0fe911b73983ba7378c5b2a9/", "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": ""}, "03515d252d3265973b5cccd0aeb184b4": {"username": "Mark", "tumblr": "", "display_name": "Mark", "url": "http://disqus.com/guest/03515d252d3265973b5cccd0aeb184b4/", "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": ""}, "26493d7270fb206c1e08599674e51e5a": {"username": "LayZ", "tumblr": "", "display_name": "LayZ", "url": "http://disqus.com/guest/26493d7270fb206c1e08599674e51e5a/", "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": ""}, "df2c5c8e30b68352d42090e1dcb84e7e": {"username": "Arturo", "tumblr": "", "display_name": "Arturo", "url": "http://disqus.com/guest/df2c5c8e30b68352d42090e1dcb84e7e/", "registered": false, "linkedin": "", "blog": "http://artconarte.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": ""}, "b5d1eebeb73bb289fc5891a3efac7ae1": {"username": "james", "tumblr": "", "display_name": "james", "url": "http://disqus.com/guest/b5d1eebeb73bb289fc5891a3efac7ae1/", "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": ""}, "d1aa4e8593b0b0e63bcf5ec38739c41c": {"username": "Brent", "tumblr": "", "display_name": "Brent", "url": "http://disqus.com/guest/d1aa4e8593b0b0e63bcf5ec38739c41c/", "registered": false, "linkedin": "", "blog": "http://brentroos.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": ""}, "6f045bdba4e8b325e87275696dda8a52": {"username": "Ed", "tumblr": "", "display_name": "Ed", "url": "http://disqus.com/guest/6f045bdba4e8b325e87275696dda8a52/", "registered": false, "linkedin": "", "blog": "http://pentdego.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": ""}, "469dd3e62957a67b2dfd67ce3670e73c": {"username": "Brian Boyko", "tumblr": "", "display_name": "Brian Boyko", "url": "http://disqus.com/guest/469dd3e62957a67b2dfd67ce3670e73c/", "registered": false, "linkedin": "", "blog": "http://www.networkperformancedaily.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": ""}, "25c3f9a51ec706dd5aa199f9dad1a0be": {"username": "kim", "tumblr": "", "display_name": "kim", "url": "http://disqus.com/guest/25c3f9a51ec706dd5aa199f9dad1a0be/", "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": ""}, "b73651ac2926b8fc63e3ebf184091915": {"username": "Will", "tumblr": "", "display_name": "Will", "url": "http://disqus.com/guest/b73651ac2926b8fc63e3ebf184091915/", "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": ""}, "bf11515daeedef87da1147a8113c3abb": {"username": "Rafe", "tumblr": "", "display_name": "Rafe", "url": "http://disqus.com/guest/bf11515daeedef87da1147a8113c3abb/", "registered": false, "linkedin": "", "blog": "http://www.webware.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": ""}, "e24b825d0765fa4efc1402444f3255a4": {"username": "John Handelaar", "tumblr": "", "display_name": "John Handelaar", "url": "http://disqus.com/guest/e24b825d0765fa4efc1402444f3255a4/", "registered": false, "linkedin": "", "blog": "http://handelaar.org/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "dec7aebac652b3db9eb47ffd59c87d65": {"username": "modernday", "tumblr": "", "display_name": "modernday", "url": "http://disqus.com/guest/dec7aebac652b3db9eb47ffd59c87d65/", "registered": false, "linkedin": "", "blog": "http://modernday.wordpress.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": ""}, "0adddb66d8ef55c95193c0987263a9c1": {"username": "deannie", "tumblr": "", "display_name": "deannie", "url": "http://disqus.com/guest/0adddb66d8ef55c95193c0987263a9c1/", "registered": false, "linkedin": "", "blog": "http://wenchadmin.wordpress.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": ""}, "1af2d716a1d91def61e5294b42acd26b": {"username": "George", "tumblr": "", "display_name": "George", "url": "http://disqus.com/guest/1af2d716a1d91def61e5294b42acd26b/", "registered": false, "linkedin": "", "blog": "http://www.joergpittermann.de/", "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": ""}, "8489e85b3948e3b3f55eea687725cf61": {"username": "scopettg", "tumblr": "", "display_name": "scopettg", "url": "http://disqus.com/guest/8489e85b3948e3b3f55eea687725cf61/", "registered": false, "linkedin": "", "blog": "http://scopettg.wordpress.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": ""}, "85828a2fc0c8aaa4b69b55edd14edb1e": {"username": "buns and chou chou", "tumblr": "", "display_name": "buns and chou chou", "url": "http://disqus.com/guest/85828a2fc0c8aaa4b69b55edd14edb1e/", "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": ""}, "df679bd3d287a21d5ed6020bae384e17": {"username": "Diego", "tumblr": "", "display_name": "Diego", "url": "http://disqus.com/guest/df679bd3d287a21d5ed6020bae384e17/", "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": ""}, "3aeb85796d88e54daedf94e769fda691": {"username": "Goebbels", "tumblr": "", "display_name": "Goebbels", "url": "http://disqus.com/guest/3aeb85796d88e54daedf94e769fda691/", "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": ""}, "d9c0583990b3b44b47e9d31177173977": {"username": "Juan", "tumblr": "", "display_name": "Juan", "url": "http://disqus.com/guest/d9c0583990b3b44b47e9d31177173977/", "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": ""}, "f29c1c44f0c43207f87cd00ae8768bf9": {"username": "Duncan", "tumblr": "", "display_name": "Duncan", "url": "http://disqus.com/guest/f29c1c44f0c43207f87cd00ae8768bf9/", "registered": false, "linkedin": "", "blog": "http://www.duncanriley.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}}, "forum": {"use_media": true, "name": "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_11:27:33", "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": {"9672254": {"up_voted": false, "ip": "", "has_replies": false, "message": "Send me invite to <a href=\"mailto:tvjoost@yahoo.com\" rel=\"nofollow\">tvjoost@yahoo.com</a><br><br>Thanks", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-01_11:44:24", "killed": false, "user_key": "02b189ba7b69a99cd20b17c03f2835e8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672255": {"up_voted": false, "ip": "", "has_replies": false, "message": "Anybody pleae send me invite to install JOOST?\u2026Thanks a lot<br><br>my mail id: <a href=\"mailto:anand_badugu@countrywide.com\" rel=\"nofollow\">anand_badugu@countrywide.com</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-29_09:38:23", "killed": false, "user_key": "2012d525778bf099ac6c5e5f2951cf77", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672256": {"up_voted": false, "ip": "", "has_replies": false, "message": "Please send me a Joost invite. I am so excited, I just heard about this!!! Please???<br><br> <a href=\"mailto:pinkieclc@yahoo.com\" rel=\"nofollow\">pinkieclc@yahoo.com</a><br><br>Thank you, Cindy", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-29_03:34:49", "killed": false, "user_key": "d31162a3cc58d022b77abd3a22bde2a7", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672257": {"up_voted": false, "ip": "", "has_replies": false, "message": "Well, i also would like to have an invitation and begin to understand this new tv concept. If anybody can send me one it would be great. Thanx in advance.<br><br>Art<br><br><a href=\"mailto:aseudoni.mizado@gmail.com\" rel=\"nofollow\">aseudoni.mizado@gmail.com</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-01_00:19:03", "killed": false, "user_key": "df2c5c8e30b68352d42090e1dcb84e7e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672258": {"up_voted": false, "ip": "", "has_replies": false, "message": "I agree with Scoble. This thing gets a \"delete\" if it doesn't work better in a couple of days than it does at the moment. Looks like all hype and no substance to me..if what I have experienced is the norm for this thing, you can have my invite.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-04-17_14:45:19", "killed": false, "user_key": "1ae49b3381bc5b09d2855a9eb91e2b5c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672259": {"up_voted": false, "ip": "", "has_replies": false, "message": "Could someone please send me an invite to ciaransheehan@hotmail.co.uk? Thank you in advance!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-04-25_17:33:30", "killed": false, "user_key": "51ffb49a9ed2d2b28149a681cd05fda8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672260": {"up_voted": false, "ip": "", "has_replies": false, "message": "Joost ;p look at IE7 if you want to complain about wierd UIs", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_18:50:07", "killed": false, "user_key": "ed358d9b64a8993db13d5d16f05aba92", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672261": {"up_voted": false, "ip": "", "has_replies": false, "message": "Andrew, shhh, apparently, Scoble has never used WinDVD or any DVD viewing app or WMP nor does he know that ESC is the standard fullscreen/windowed toggle. It's a secret.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_15:48:49", "killed": false, "user_key": "3aeb85796d88e54daedf94e769fda691", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672262": {"up_voted": false, "ip": "", "has_replies": false, "message": "A lot of my media center like apps are full screen by default.  Front Row, of course, and the other OSX media center app I downloaded went straight to full screen.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_15:16:58", "killed": false, "user_key": "eae08bd024b8d7378c8d349989a5c6f8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672263": {"up_voted": false, "ip": "", "has_replies": false, "message": "seshadri, I beg to differ and do so quite simply:<br><br>The WHOLE purpose of Joost (despite being able to exit the mode) is to support FULL SCREEN... the same as WriteRoom and other Full Screen Apps.<br><br>If you are afraid of that, are too simple to figure out how to exit it, or are morally opposed to it, you have no right or reason to install it in the first place.<br><br>There is no reason to whine and beg for preferential treatment and to be treated to the beta, rush to install it, and then whine that it functions the way it's SUPPOSED to.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_15:06:19", "killed": false, "user_key": "3aeb85796d88e54daedf94e769fda691", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672264": {"up_voted": false, "ip": "", "has_replies": false, "message": "please send me an invitation...<br><br>please :-)<br><br><br><a href=\"mailto:kontakt.email@arcor.de\" rel=\"nofollow\">kontakt.email@arcor.de</a><br><br>Thank you from germany :-)<br><br>George", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_15:02:19", "killed": false, "user_key": "1af2d716a1d91def61e5294b42acd26b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672265": {"up_voted": false, "ip": "", "has_replies": false, "message": "Wow I can't believe it. I recently installed Joost and got it right away.<br><br>When it went to full screen I just double clicked on the window and got a partial screen. I also found the controls on my own at 12, 3 6 and 9 o'clock in about 5 minutes.<br><br>Robert, you must have just been tired when you tried this out. Try it again. The content was interesting, the quality is good.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_14:55:57", "killed": false, "user_key": "0adddb66d8ef55c95193c0987263a9c1", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672266": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hey, that Joost program sounds awesome. That sucks that you don't like it maybe you should give it another go? I'd love an invite :D I saw they have Fifth Gear on the program list. I wonder if they have Top Gear :D!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_15:07:02", "killed": false, "user_key": "dec7aebac652b3db9eb47ffd59c87d65", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672267": {"up_voted": false, "ip": "", "has_replies": false, "message": "Well if you give up that easely you don't even deserve an invite! I got my invite after not having to beg at all and I thought it looks pretty good with a pretty good picture quality too! Anyway kazaa boys don't let anyone stop  you and yesss Top Gear is awesome and would be a great addition!<br><br>Joost (it's a Dutch name and means Joe simple right!?)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_15:43:04", "killed": false, "user_key": "2df34be841ec0ab57703fd4ef0e34170", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672268": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hmm... I suppose that's some give and take. :)<br>Take it easy lah~", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_16:19:56", "killed": false, "user_key": "8489e85b3948e3b3f55eea687725cf61", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672269": {"up_voted": false, "ip": "", "has_replies": false, "message": "It IS rude. Full screen shouldn't be On for any app. Even for installers.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_14:46:47", "killed": false, "user_key": "df2bebffe2fece4cee7ed284aaff3cf0", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672270": {"up_voted": false, "ip": "", "has_replies": false, "message": "How dumb can a person be..<br>I have some tokens left so if anyone is interested..", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_13:05:27", "killed": false, "user_key": "6f045bdba4e8b325e87275696dda8a52", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672271": {"up_voted": false, "ip": "", "has_replies": false, "message": "I like Joost's full-screen UI. And for those who don't know, the \"power\" icon exits the app. Unconventional from a Windows perspective but quite comprehensible if you've used any consumer electronics products in the last ten years. I think it's cool how it puts a good \"living room\" UI on a Windows app.<br><br>-Rafe", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_13:48:45", "killed": false, "user_key": "bf11515daeedef87da1147a8113c3abb", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672272": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hey check it, Joost has an RSS reader in it, I was skimming this post about Joost on Joost. meta!<br><br><a href=\"http://www.flickr.com/photos/ericrice/407943934/\" rel=\"nofollow\">http://www.flickr.com/photos/ericrice/407943934/</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_12:48:32", "killed": false, "user_key": "e3827a7c1741cf42d52a0ab0dc2dc9ff", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672273": {"up_voted": false, "ip": "", "has_replies": false, "message": "by the way, there is a preference you can click.  I just went up to the menu bar and unclicked 'Start in Full Screen Mode'", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_14:23:03", "killed": false, "user_key": "eae08bd024b8d7378c8d349989a5c6f8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672275": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hey, you know it can be windowed right? you don't need to make it full screen there is even a setting to have it not go full screen at startup.<br><br>there is a button on the controller that will get you out of full screen :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_14:24:07", "killed": false, "user_key": "a216448a699b8cb7e3f70fba31d76974", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672276": {"up_voted": false, "ip": "", "has_replies": false, "message": "Wow, John doesn't like, rare disagreement as I think this one has potential and will really catch on. And whining about lack of content, in this beta stage is too early, it's still a proof-of-concept, they got Endemol, TW and Viacom and getting Paramount, MTV, BET and game companies, and Fortune 500s (Corporate Channels), from what I hear. Man, must be doing something right to get these deals. But they better not go Kazaaified spyware heavy.<br><br>Played with it more, the UI is simple enough, CE style, kinda Archosish. While the full-screen was a bit of a jolt, it's obvious they are thinking in terms of a Media Centerish CE-styled app, in which case breaking Windows UI conventions is a gooooood thing.<br><br>Well one thing in common, Scoble and John both catcall, yet 90% of commenters disagree. They sure got a good publicity boost from the malcontents. :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-03_01:43:10", "killed": false, "user_key": "7f6291e8344b594235e57b843fc05d9b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672277": {"up_voted": false, "ip": "", "has_replies": false, "message": "PS - And oh, PC games are NOT dead. RTS and heavy RPG just doesn't translate very well on console. And Sim styled stuff, Flight Sim X and the like.<br><br><i>For that, I definitely hand it to Joost. It\u2019s the first viable form of Internet TV. Licensed content, quality production. No complaints here.</i><br><br>Agree fully.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_12:35:51", "killed": false, "user_key": "7f6291e8344b594235e57b843fc05d9b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672278": {"up_voted": false, "ip": "", "has_replies": false, "message": "I dont know about the windows version of the app is but in OSX the little arrow pointing to the box was a dead giveaway for a shortcut to a \"windowed\" mode.<br><br>Not much on joost to watch anyways except for music videos.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-04_01:15:01", "killed": false, "user_key": "57e96f1c990a2d096f5d138a53b7f4b2", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672279": {"up_voted": false, "ip": "", "has_replies": false, "message": "Must say this is quite an overreaction. For someone who is embracing edgy betas all year round it seems paradoxical that you tumble over a UI design feature, especially since the product still is is beta, invitation only, etc...<br><br>I think the Joost Full Screen is actually a nice feature: it forces you to get into \"lean forback\"  position. You are still relaxed enough to enjoy the full screen video and active enough to use their fancy widgets. Now that's a usage a PC might not have not been designed for but it works nevertheless quite good once you get used to it and I am sure we will see many more \"lean forback\" (I agree we definitely need a new name for this ;-) )<br><br>I say a PC is not only designed for multitasking, Joost (but also MCE and - ahum - GAMES) prove that the PC is really cool for very immersive fullscreen stuff too.<br><br>And yes, you should buy a second screen ;). Oh and -with a workaround- Joost works great on VISTA<br><br>hendrik", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_06:19:25", "killed": false, "user_key": "4afc618b221dd9f632185fe8b5ee61b4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672280": {"up_voted": false, "ip": "", "has_replies": false, "message": "@56 \"How will ANYONE in this world give any piece of software more than a few minutes attention at first? \"<br><br>That's your problem.  You are promiscuous to your detriment. Most professionals know how to balance their work load and give projects they agree to look at some due diligence", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_11:45:20", "killed": false, "user_key": "26493d7270fb206c1e08599674e51e5a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672281": {"up_voted": false, "ip": "", "has_replies": false, "message": "LayZ: really? Most professionals I know just ignore this kind of stuff. Ask the average CTO how many pieces of software he or she has tried in the last week. The ones I know say \"zero\" or, maybe, \"one\" if it's something work related.<br><br>&gt;&gt;It was all about the way you seemed to dismiss the thing out of hand just because of the full screen thingy, which loads of games already do anyway.<br><br>I don't use games on my PC. That's what Xbox or Playstation for. Exactly my point.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_11:54:21", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672282": {"up_voted": false, "ip": "", "has_replies": false, "message": "I'm dumb so it's rude.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_14:32:48", "killed": false, "user_key": "3aeb85796d88e54daedf94e769fda691", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672283": {"up_voted": false, "ip": "", "has_replies": false, "message": "Joost might be the first to get large format stuff to my home theater.<br><br>I didn't pay 50,000 bucks to watch postage stamps in flash. If Joost can be the one to change that, fine.<br><br>I'm a tech guy too, but we're outnumbered by normal guys. We as tech bloggers should focus on them as our prime directive.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_12:01:49", "killed": false, "user_key": "e3827a7c1741cf42d52a0ab0dc2dc9ff", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672284": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"really? Most professionals I know just ignore this kind of stuff.\"<br><br>Did you forget how to read?<br><br>\"Most professionals know how to balance their work load and give projects they agree to look at some due diligence\"<br><br>Just because you think it's your responsibility to use every new application put in front of your face doesn't mean it's any other professionals responsibility. However, because you choose to, it is your obligation to ACTUALLY test them and provide a measured critique. Not to uninstall in 5 minutes and to post whining 5 minutes later.<br><br>\"I don\u2019t use games on my PC. That\u2019s what Xbox or Playstation for. Exactly my point.\"<br><br>What is your point? That video has no place on the PC and belongs on a console? That you don't fully participate in the game or video market on the PC so you aren't qualified and/or experienced? What exactly is your point? You've already conceded that you overreacted and are reevaluating so what the hell is EXACTLY your point?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_12:05:19", "killed": false, "user_key": "3aeb85796d88e54daedf94e769fda691", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672285": {"up_voted": false, "ip": "", "has_replies": false, "message": "I tried Joost, and I liked it.  I don't mind it taking up the screen -- if I want to watch TV, I want it to be as big as possible.<br><br>It just feels much better to me, and the quality is higher than YouTube.<br><br>I find this whole shift to TV-over-the-internet (aka \"<a href=\"http://advancedmediacommittee.typepad.com/emmyadvancedmedia/2007/01/over_the_top_fi.html\" rel=\"nofollow\">over the top\"</a>) pretty wild -- this industry is changing so drastically, right before our eyes.<br><br>For that, I definitely hand it to Joost.  It's the first viable form of Internet TV.  Licensed content, quality production.  No complaints here.<br><br>- Allie", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_12:05:50", "killed": false, "user_key": "1e9dc6d24898980e16e42f367d5aa71a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672286": {"up_voted": false, "ip": "", "has_replies": false, "message": "I just installed Word -- the damned thing filled my entire screen so I uninstalled it...<br><br>I just upgraded to WMP11 -- the damned thing doesnt respect the XP UI so I uninstalled it...<br><br>I just upgraded to Office 2007 -- the damned thing doesn't respect any of my window metrics at all and violates dozens of UI conventions so I uninstalled it...<br><br>Scoble, you're an ass.  Seriously.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_17:34:30", "killed": false, "user_key": "b9144e7ff8b09734e69c56b948faa29d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672287": {"up_voted": false, "ip": "", "has_replies": false, "message": "ha ha...good one.  video of you coming soon my friend!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-03_11:11:09", "killed": false, "user_key": "85828a2fc0c8aaa4b69b55edd14edb1e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672288": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, admit it, you just don't like anything Microsoft didn't think of or use first. Are you going to say Office is a rude app and not use it just because it's user interface uses a ribbon and not the same interface of the last 20 years?<br><br>Sometimes, you do come across like a Windows whore.<br><br>For heavens sake, work stuff out before you slag it off! All you're doing is showing your own ignorance here.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_10:28:21", "killed": false, "user_key": "b618062a25161d80789e7fefb0337396", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672289": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ok, I gotta peek. I gotta go with Goebbels @60...I think Joost is great, in fact best of lot, best of breed, hope it sticks around. Viacom ain't no dummy. And it terms of the biz model, you might want to be worried, Vloggers will get far more exposure here, and they will have advertising dollars locked in, and better revenue sharing ops. But instead of catcalling it and fumbling badly with the beta, I'd establish a 'teaser channel' of sorts. There is a video-sharing shakeout going on, some 260 video-sharing sites (egads), the wacky and wild-west YouTube and clones are starting to wane, and Joost is playing the high-quality professional-stream card. Heck of a shakeout coming, but my chips are on Joost at least.<br><br>And Mr. 28, nope. No can do. None of your biz anyways.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_12:30:26", "killed": false, "user_key": "7f6291e8344b594235e57b843fc05d9b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672290": {"up_voted": false, "ip": "", "has_replies": false, "message": "As I read it, Joost is supposed to be 'TV on your PC', in many cases piped into your TV screen. You're not supposed to be working in other apps at the same time - put your feet up and let it take over.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_03:49:10", "killed": false, "user_key": "2963baa0249738551dc6f5c5d214bc2f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672291": {"up_voted": false, "ip": "", "has_replies": false, "message": "I agree with the Scobleman, I got the invite after waiting and getting in with the hype, but as Scoble i uninstalled it after a few minutes.  It's like having an incredible wet dream then waking up finding out the dog is licking your face.. not good..", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_04:30:56", "killed": false, "user_key": "cbce58e38882b511d3ae01e6a5513b00", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672292": {"up_voted": false, "ip": "", "has_replies": false, "message": "its March 2nd and no real support for Vista ......<br><br>waiting ...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_05:13:44", "killed": false, "user_key": "61c5650ba9ea39c48113cbef92802a0a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672293": {"up_voted": false, "ip": "", "has_replies": false, "message": "C'mon, Scoble, you can afford a second monitor! I'm hanging on to it in case some interesting comment comes on there, the other features seem pretty cute. I actually like the UI...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_03:10:04", "killed": false, "user_key": "6f62aad76b5dc1c5ee09d4e2fa9cd77e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672294": {"up_voted": false, "ip": "", "has_replies": false, "message": "Sorry - interesting <em>content</em>. D'oh.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_03:10:30", "killed": false, "user_key": "6f62aad76b5dc1c5ee09d4e2fa9cd77e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672295": {"up_voted": false, "ip": "", "has_replies": false, "message": "I call Bullshit. You must be more forgiving then that when you try a new (beta) application. Does it have something to do with the fact that video podcasts and Joost bite eachother?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_03:24:10", "killed": false, "user_key": "tinusguichelaar", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672296": {"up_voted": false, "ip": "", "has_replies": false, "message": "Clicking on the icon top right hand corner to take it out of full screen mode too hard Scoble? or is there another agenda here we don't know about. It's a great platform for streaming shows with a wonderful future, why you've written it off because of your own inadequacies in using a computer is beyond me.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_03:30:44", "killed": false, "user_key": "f29c1c44f0c43207f87cd00ae8768bf9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672297": {"up_voted": false, "ip": "", "has_replies": false, "message": "Sorry, let me correct myself, the icon down the bottom that looks just like the same one in Windows Media Player does it. 1 second it took me to find it. It's not that hard.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_03:33:18", "killed": false, "user_key": "f29c1c44f0c43207f87cd00ae8768bf9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672298": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert: you said twitter world in post #16.<br><br>I havn't got Joost yet (waiting for a beta invite), but if it does do high quality video, as promised, then it's not unreasonable to expect it to require a high bandwidth connection to do streaming.<br><br>Verizon Wireless is (according to Wikipedia) EVDO / 1xRTT.<br>\"The typical download speed is between 400 and 700 kilobits per second with burst speeds of up to 2 megabits per second.\"<br><br>That's just enough to stream your videos. Having sustained 2-3 megabit is probably a bare minimum to actually stream higher quality stuff.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_03:38:29", "killed": false, "user_key": "b73651ac2926b8fc63e3ebf184091915", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672299": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert : I got my beta invitation. I think the product has a good enough UI for a beta product. Many of the Video applications I have seen till now open video in full screen to provide better picture in the available screen space. Anyway there is a nicely designed \"Standby\" and \"Resize window\" at the bottom of the screen as you move your mouse.<br>I think your reaction was a bit hurried.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_21:32:32", "killed": false, "user_key": "31f44a5036179e48ecacffe4c3ec0784", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672300": {"up_voted": false, "ip": "", "has_replies": false, "message": "A \"twitter\" world? What world do you live in? The percentage of people that use Twitter is minuscule.  More evidence that you are getting more and more out of touch with normal people.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_00:29:41", "killed": false, "user_key": "26493d7270fb206c1e08599674e51e5a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672301": {"up_voted": false, "ip": "", "has_replies": false, "message": "Tangentially related to Joost--<br><br>I just watched on Joost Channel 6 - Indie Flix Premier \"Fields of Mudan\".  Wow.  Talk about a heavy movie in only 23 minutes.  Won a best short picture nomination from the Oscars.  I can see why.<br><br>Anyway, if you do reinstall, this tragic film is pretty impressive (made by a college student).  Almost worth reinstalling (you can delete when done).", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_20:14:50", "killed": false, "user_key": "eae08bd024b8d7378c8d349989a5c6f8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672302": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi, Robert, sorry you didn't have a wonderful experience with Joost. I admit the UI seems to have a tad bit of a high learning curve, but once you figure out how to use it, it is pretty cool. BTW: ther is a little button on the control menu thingy that will give you back your screen. Joost will be like a picture frame window (as in a window with no close-button, etc.). I think they should give it the option to be full screen, but it should start by default in windowed mode, and the windowed mode should have close, maximize, and minimize buttons.<br><br>I suggest, though, that you give Joost another chance. It seems like the beginning of a really neat product; give it a while, and you may start to see more worthwhile channels, and better usability.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_22:26:48", "killed": false, "user_key": "8bac25106390e57d4c046b063df2c682", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672303": {"up_voted": false, "ip": "", "has_replies": false, "message": "Twitter is a passing fad I'm sure. I'll die down in time. How many times can you get an SMS with someone saying \"I'm taking a dump\" :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_02:21:03", "killed": false, "user_key": "df679bd3d287a21d5ed6020bae384e17", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672304": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert: I'm not going to argue with you about UI and full-screen, or that, but you did ask \"Why does Joost deserve our attention?\"<br><br>I think as an application, it's certainly nothing to look at; keep in mind you're looking at a beta version of the software. I'd prefer a more concentrated UI and not the fancy Fischer-Price stuff.<br><br>But from a holistic standpoint, Joost is well worth the hype, for a few reasons.<br><br>First, Joost provides a viable alternative to the Cable/Satellite duopoly.  This is not the case now, in it's early stages, but it has the potential to replace television subscription services.  To those of us who like a few TV programs but would rather not pay cable costs, it's a godsend.<br><br>Second, Joost is the first video-over-Internet app that really targets the \"middle tail.\"  If you follow the Chris Anderson \"Long Tail\" theory of abundance, the networks have focused on the cream of the crop (or at least the lowest common denominator) and YouTube and other such sites have focused on the content of the Long Tail.  This is an economy of abundance.  However, the Long Tail does not cope well with passive viewership, only active search.  We have entered the economy of abundance, but finding the good stuff in the mix is harder.<br><br>Joost is the first service that targets the middle tail - they need content which is obscure enough not to have been picked up by the television services but not so obscure only a few people will watch it - driving up the bandwidth.  In short, they need the \"middle tail.\"<br><br>From a networking perspective, Joost is important because consumer broadband networks typically remain underutilized.  Even when bittorrenting, you don't bittorrent all the time.  Once you have the file, you seed, which may use all upload bandwidth but downloading stops.<br><br>Any IT department guy will tell you that any underutilized link is a waste of money - Joost is a way for consumers to utilize more effectively what they have already paid for.<br><br>Finally, there's the fact that Joost means Money for content creators.<br><br>Yes, Joost sells ads and kicks back pennies to the content creators.  But there is nothing that prevents the content creators from embedding their own ads in the video and in so doing, keeping the money from those sales.<br><br>-- Brian Boyko<br>-- Editor, Network Performance Daily.<br>-- <a href=\"http://www.networkperformancedaily.com\" rel=\"nofollow\">www.networkperformancedaily.com</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_11:26:56", "killed": false, "user_key": "469dd3e62957a67b2dfd67ce3670e73c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672305": {"up_voted": false, "ip": "", "has_replies": false, "message": "For me, it's nothing to do with Joost which I don't have or know much about, other than it's something to do with Skype which I also don't have. It was all about the way you seemed to dismiss the thing out of hand just because of the full screen thingy, which loads of games already do anyway.<br><br>Most people I suspect are surprised at you, a geek techy person, not being able to work out how to switch views when clearly lots of others have done.<br><br>If you have a folder of 59 things that need to have your attention, perhaps you could be more selective? Nobody can review everything, and if they do those reviews will be worth not very much as a result.<br><br>I guess you posted this in haste. What's that saying? Act in haste, repent at leisure...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_11:09:04", "killed": false, "user_key": "b618062a25161d80789e7fefb0337396", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672306": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"So, what makes Joost so impressive? I don\u2019t get the hype, espeically when compared with services like Blinkx, Dabble, YouTube, Blip.tv, Revision 3\u2019s new stuff, or Apple\u2019s iTV.<br><br>So, why does Joost deserve our attention?\"<br><br>Jesus, this is hilarious coming from you. I'll tell you a few of the most obvious reasons:<br><br>1. Scooping other video aggregation sites on a series of both significant and niche media content deals/partnerships.<br>2. Focus on full screen, high quality content rather than low quality, postcard video constrained within Flash frames. (Moving internet video upmarket.) (Shouldn't HD-Boy be raving about this?)<br>3. Willingness to abandon 30 year old and business-defined UI and move toward a more modern, use-specific, consumer- and media-focused interface tailored to the content and experience rather than using the same UI for all purposes. (Again, weren't you cheerleading such efforts in Longhorn 6 years ago?)<br>4. Pursuing internet video with a fairly unique paradigm/model (shared by Democracy and proabbaly some other apps) of creating an application interface to internet \"television\" (streams of short and long form content available as \"channels\") rather than the already antiquated site aggregation model.<br>5. (Minor Point) Adopting a Mac-esque, primarily HUD-oriented UI... It's interesting that it's look-and-feel is taking many, many cues from Apple while remaining unique. To build on #3, The content is the userspace, interaction is within, or over, it. As opposed to models which minimize the content to a few inches square on an overloaded and crowded page of antiquated content.<br><br>Why Blinkx, Dabble, YouTube, Blip.tv, Revision 3\u2019s new stuff are not as \"talk worthy\":<br><br>They are largely a mashup of YouTube (low quality, short form video clips presented within a Flash container with aggregation and lame community features) and Digg with extremely minor variations on the theme and feature sets.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_11:11:39", "killed": false, "user_key": "3aeb85796d88e54daedf94e769fda691", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672307": {"up_voted": false, "ip": "", "has_replies": false, "message": "Oh, sorry, I see where I used \"Twitter World\" above. Maybe I should have said \"YouTube\" world. I'm still getting questions about when I will make my videos shorter cause many people don't like watching long things (or taking long periods of time to consider things).", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_10:35:27", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672308": {"up_voted": false, "ip": "", "has_replies": false, "message": "Oops, I forgot another one which should have appealed to you (I'll call it 4a)\"<br><br>4a. Joost, unlike any of the sites you mentioned, is a P2P-based network system. (I would point out that as use grows your speed issues could be mitigated, and that, two, you recently proclaimed NetFlix's death simply because you interviewed someone about a video P2P distribution system.) More interesting to me, this is Kazaa offering a legitimate offering.<br><br>Which makes me think of another point:<br><br>6. This is from the makers of Skype and Kazaa, two \"proven\" properties of the internet age.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_11:28:20", "killed": false, "user_key": "3aeb85796d88e54daedf94e769fda691", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672309": {"up_voted": false, "ip": "", "has_replies": false, "message": "\u201cWhy fight 20 years of Windows UI? Just to be cool? Sorry, this doesn\u2019t impress me.\u201d<br><br>Gosh. Let's just kill the whole web-tech thing right now then, because they're trying to change the way everyone does things.<br><br>I look forward to the Web 3.0 Telnet app.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_09:49:40", "killed": false, "user_key": "76075bb4e17939ed2c11617df3708bf4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672310": {"up_voted": false, "ip": "", "has_replies": false, "message": "fifthdecade: the ribbon didn't change the fundamental UI (the maximize, minimize, etc) in a way that made me not only figure it out, but made all the productivity stuff go away. Imagine if every app had those kinds of common things in a different place.<br><br>As to why I don't give software more than a few minutes trial anymore. I have a folder of 59 things that are asking for my attention. And yours.<br><br>Seriously, I do.<br><br>So, what makes Joost so impressive? I don't get the hype, espeically when compared with services like Blinkx, Dabble, YouTube, Blip.tv, Revision 3's new stuff, or Apple's iTV.<br><br>I note there's again a lot of attacking me (must be a lot of people who are associated with Joost here, it's interesting that many of the attackers never have participated in comments here before) but there's very little light.<br><br>So, why does Joost deserve our attention?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_10:34:15", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672311": {"up_voted": false, "ip": "", "has_replies": false, "message": "Jeff: I have a folder of 59 pieces of software and services I should try out (seriously, I do, and that's after cleaning out the stuff that I'm not interested in). How will ANYONE in this world give any piece of software more than a few minutes attention at first?<br><br>Why does Joost deserve more attention than, say, Dabble or Blinkx? Those two services both work better and are more satisfying.<br><br>And if it's for my HDTV I bet an Apple iTV will be more satisfying there.<br><br>I just don't get the hype around Joost.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_10:29:47", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672312": {"up_voted": false, "ip": "", "has_replies": false, "message": "Mat: I guess I should have called it a \"YouTube World.\"  The problem is there are hundreds of companies all vying for your attention.<br><br>Adam: different is OK if you're selling video games. If you're selling apps that need to co-exist with my workspace then that's a whole nother thing.<br><br>I have it back on and will try it again. But it already is proving to not be a good experience in another way: with a Verizon Wireless card the video experience sucks. (Other videos on Internet work just fine). They need to make it step down for low bandwidth situations and/or do more buffering.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_10:25:37", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672313": {"up_voted": false, "ip": "", "has_replies": false, "message": "on this I definitely agree with Robert .. and if some of you commenters would read before posting you would have seen that he stated he knew how to get out of the full screen display.<br><br>but that is not the problem. the problem is that while it might be okay for a program to open up full screen - it is neither necessary these days to do that especially if you are running at high resolutions. In addition it is just bad form IMO to do that.<br><br>I probably would have done the same thing Robert.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_00:38:41", "killed": false, "user_key": "76bec42915def4e9ec9ea0b3a7630833", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672314": {"up_voted": false, "ip": "", "has_replies": false, "message": "If we're going to use 1987 Windows interfaces, try Alt-F4.  I'll bet cash money *that* works.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_10:00:01", "killed": false, "user_key": "e24b825d0765fa4efc1402444f3255a4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672315": {"up_voted": false, "ip": "", "has_replies": false, "message": "robert: double clicking on the screen will switch back and forth from full screen to window.<br><br>i agree that it's not a UI that is normal - and it shocked me when it opened full screen but as you play around it gets more intuitive.<br><br>just because it's different doesn't make it bad...<br><br>(and no, i'm not related to the company)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_10:04:05", "killed": false, "user_key": "ba11601a9528b5bfa428e794758e1dee", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672316": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert: The fact that you think of this as a \"Twitter World\" (i.e. one where superficial, instant impressions matter most) is perhaps the larger problem here.<br><br>I mourn the loss of the depth of thoughtful exploration.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_09:53:37", "killed": false, "user_key": "2d33c7d145b322298824e15dc0b4b6b9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672317": {"up_voted": false, "ip": "", "has_replies": false, "message": "LayZ: where did I say \"world?\" And, this is a tech blog and there's now 676 people following me. Up from 300 or so just a week ago. Audiences that double in less than a week are interesting to me. Maybe not to you or normal people but, then, the tagline here says \"Tech Geek Blogger\" NOT \"normal guy blogger.\"", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_00:47:30", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672318": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"LayZ: really? Most professionals I know just ignore this kind of stuff. Ask the average CTO how many pieces of software he or she has tried in the last week. The ones I know say \u201czero\u201d or, maybe, \u201cone\u201d if it\u2019s something work related.\"<br><br>To borrow from the late Senator Benson: \"I know C-level execs. I have many C-level exec  friends. You, Mr. Scoble, are no C-level exec\". I'm not talking about C-level execs. The majority of don't have the time nor the responsibility to sign up for or test beta software. But, when they do take on a project they devote the time to do it right.  So, you can frame the argument to your advantage all you like. but that wasn't the point.  If you say \"Yes\" to agreeing to participate in a beta you owe it to the software company to apply the necessary time and commitment. That is what they are expecting of you. Otherwise, you are a waste of time to them. So, I repeat. most professionals devote the necessary time and resources to a project they agree to take on. If for nothing else, to maintain their self respect and credibility.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_22:44:33", "killed": false, "user_key": "26493d7270fb206c1e08599674e51e5a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672319": {"up_voted": false, "ip": "", "has_replies": false, "message": "Wow, Scoble!  What a rude app?  You're sounding like an old man like the one on those Coke Zero commercials.  Do you know what the capital of Djibouti is?<br><br>Maybe you should take 10 minutes and learn the software.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_09:28:26", "killed": false, "user_key": "99aebc1ebefc92f3e98f5e2004410975", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672320": {"up_voted": false, "ip": "", "has_replies": false, "message": "Christopher: first impressions matter. Especially in today's \"Twitter\" world.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_18:34:52", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672321": {"up_voted": false, "ip": "", "has_replies": false, "message": "I installed Microsoft Office. It took over 500Mb on my hard disk. I couldn\u2019t figure out how to get out. Or get back to Google Reader and Outlook and my other apps.<br><br>Well, I\u2019m lying. I know how to get back to other apps. Alt-Tab.<br><br>Or Ctrl-Alt-Delete, which pulls up task manager and I can kill that process.<br><br>I did that and promptly deleted it.<br><br>What a rude app. I don\u2019t care how cool it is. You don\u2019t take over that much space if you want me to use you.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_08:58:59", "killed": false, "user_key": "438f1bc5871acc5c58f3f3808c287a08", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672322": {"up_voted": false, "ip": "", "has_replies": false, "message": "I agree with you Scoble, I don't much like the UI, but that is beside the point. The channel selection sucks. It's a joke, even for a beta product. All hype, no substance.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_01:21:11", "killed": false, "user_key": "d1aa4e8593b0b0e63bcf5ec38739c41c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672323": {"up_voted": false, "ip": "", "has_replies": false, "message": "O jeez, coulters back.<br><br>Are you going to say why you walked?<br>Full disclosure?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_00:55:16", "killed": false, "user_key": "b5d1eebeb73bb289fc5891a3efac7ae1", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672324": {"up_voted": false, "ip": "", "has_replies": false, "message": "I am amazed (maybe even frightened) that you could not figure out how to get out of the joost app. It is really easy and even my little sister (age: 7) could figure it out without any help!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_18:19:58", "killed": false, "user_key": "25c3f9a51ec706dd5aa199f9dad1a0be", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672325": {"up_voted": false, "ip": "", "has_replies": false, "message": "Joost is meant to be on your PC its a \"TV browser\" (coined by Joost's CTO Dirk-Willem van Gulik) .<br><br>Joost will be a media center app or Set top box client the PC and MAC are just platforms to test the client out ,while we wait for true IPTV for enter the living room .<br><br>John Dvorak doesnt like Joost either it must be a Generational thing you old man :P<br><a href=\"http://www.dvorak.org/blog/?p=9482\" rel=\"nofollow\">http://www.dvorak.org/blog/?p=9482</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_18:38:36", "killed": false, "user_key": "ed358d9b64a8993db13d5d16f05aba92", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672326": {"up_voted": false, "ip": "", "has_replies": false, "message": "Diego: Escape doesn't work. I just reinstalled it to try it out. Also, you can get it to run in a Window but the Window doesn't have a title bar, so all the visual cues we learned over the last 20 years aren't there. Minimize and maximize buttons aren't there.<br><br>Also, this isn't an app you'll want to run in bandwidth constrained environments (read: Verizon Wireless).<br><br>Also, I can't find an \"exit\" button, so I have to right-click on the toolbar item and close it there.<br><br>Why fight 20 years of Windows UI? Just to be cool? Sorry, this doesn't impress me.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_18:33:04", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672327": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, you are definitely over reacting. The full screen mode can be turned off. Did ii surprise me initially when I intalled it? Yes, but i got over the oversight and started using the app itself.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_17:41:11", "killed": false, "user_key": "5453fd1fd1c48a79040f72d9e527dbe6", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672328": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert: Ahhh, then I am seeing your frustration. If it handled ESC to exit, maybe that would be fine. It's instinctive to hit ESC.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_19:38:01", "killed": false, "user_key": "df679bd3d287a21d5ed6020bae384e17", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672329": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"Why fight 20 years of Windows UI? Just to be cool? Sorry, this doesn\u2019t impress me.\"<br><br>You mean like Office 2007?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_19:48:39", "killed": false, "user_key": "ea5036994d8e3d00fe4c9ede36c2d05a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672330": {"up_voted": false, "ip": "", "has_replies": false, "message": "Have you seen that GoogleTV hoax going around on YouTube? If that were real that would blow Joost out of the water I think. I haven't been able to use Joost personally but just going from what I've read about it and the video the people made on the ficitional GoogleTv. I hope Google sees it and they decide to develop it.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_19:54:52", "killed": false, "user_key": "796bb50229682a2571e89273820a0de1", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672331": {"up_voted": false, "ip": "", "has_replies": false, "message": "Since when is it Twitter's World?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_20:02:48", "killed": false, "user_key": "3aeb85796d88e54daedf94e769fda691", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672332": {"up_voted": false, "ip": "", "has_replies": false, "message": "This is the reason I like *nix. Nothing runs in full screen by default. I like the size of terminal windows for everything but the browser.<br><br>Besides, what's the big deal over this new service anyway? What is it going to do for you that something else already doesn't?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_20:21:30", "killed": false, "user_key": "d9c0583990b3b44b47e9d31177173977", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672333": {"up_voted": false, "ip": "", "has_replies": false, "message": "Pressing ESC doesn't work? That would be my first reaction. Escape, escape! Abort, abort!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_18:10:38", "killed": false, "user_key": "df679bd3d287a21d5ed6020bae384e17", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672334": {"up_voted": false, "ip": "", "has_replies": false, "message": "I was more concerned with the new UI, not the full screen UI. Software isn't just on the desktop, your iPod, XBOX and other things have full UIs.<br><br>I can't agree here, I think it's tech superiority kicking in.<br><br>Betcha moms and dads will love it. They can't accidentally do other things.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_01:12:59", "killed": false, "user_key": "e3827a7c1741cf42d52a0ab0dc2dc9ff", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672335": {"up_voted": false, "ip": "", "has_replies": false, "message": "Gee, if you don't want it, can you pass me an invitation? I'm dying to try this on my Mac Mini media machine hooked up to our HDTV.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_18:58:13", "killed": false, "user_key": "c35857bfc3d67f00880220f0c85ac343", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672336": {"up_voted": false, "ip": "", "has_replies": false, "message": "I read this somewhere &gt; 'When everythign else failes, read the manual\", and I'm sure they must've one (instruction set) too. ;-)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_01:28:00", "killed": false, "user_key": "759b816f0fe911b73983ba7378c5b2a9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672337": {"up_voted": false, "ip": "", "has_replies": false, "message": "I just got my invite today too.  Guess they must have sent out a batch.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_13:34:05", "killed": false, "user_key": "eae08bd024b8d7378c8d349989a5c6f8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672338": {"up_voted": false, "ip": "", "has_replies": false, "message": "??? would you give up a good program just because it took the full screen? you're kidding right? I don't have a clue what Joost is LOL, but I think you get nervous very easily. And why am I commenting here? please apply ctrl alt del on me please", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-03_04:56:34", "killed": false, "user_key": "144262a689156337ce6fc029d0aae46b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672339": {"up_voted": false, "ip": "", "has_replies": false, "message": "Eric: my PC is NOT an iPod or an Xbox. Anyone who treats it as such doesn't understand the usage model.<br><br>Media Center's UI takes over the screen too, if you want, but you can minimize it and/or quit it easily.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_01:27:55", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672340": {"up_voted": false, "ip": "", "has_replies": false, "message": "Full screen should not be default.  Having the option is fine and well, but make the default launching mode \"windowed\" so the first impression isn't so jarring.<br><br>But Robert, you know better.  Stop the dramatics.  You should give beta software a bigger grace period than you did Joost.  Come on.<br><br>I think you overreacted here.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_07:42:27", "killed": false, "user_key": "098f9c10011f20ee8427ae8cc869c9aa", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672341": {"up_voted": false, "ip": "", "has_replies": false, "message": "Amen, Robert. I primarily write UIs for a living, and what I call \"narcissistic apps\" on a multi-tasking OS drive me nuts. It also drives me nuts when I'm requested to put that kind of behavior into an app.<br>Maybe I'm already nuts :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_18:03:16", "killed": false, "user_key": "ffae666ed0f2f8ab84f6569b2295c460", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672342": {"up_voted": false, "ip": "", "has_replies": false, "message": "The interesting result of this is this:<br><br>Betas are misused by the \"initiated\" to wank off and prove they got special treatment, opened the app and posted a blog entry on it first... They are then willing to whine about it and call it unacceptable (although this is actually what the BETA PROCESS IS -- a test to determine feedback on functionality, features, and technical bugs), uninstall it, realize they are idiots, reinstall it, and still do almost ZERO to participate in the BETA PROCESS.<br><br>Yay!<br><br>Moreover, and more pathetic, the developer actually appreciates this because hype is more important to them than real feedback.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-02_07:34:19", "killed": false, "user_key": "3aeb85796d88e54daedf94e769fda691", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672343": {"up_voted": false, "ip": "", "has_replies": false, "message": "I think people are forgetting the operative word, 'beta', while defaulting to full-screen mode is quite rude for common End Users (pop-up spammers oft use full-screen web pages that are sometimes quite difficult to close). In this case, I think they left it in to draw attention to the full-screen feature. Rude? Yes and No. Scoble over-reacting? Is the sky blue? ;) But then that same mood will mirror the general publics. So while 'siding' with Scoble, I wouldn't have tossed the baby out with the bathwater, after all, it's a beta.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_18:33:11", "killed": false, "user_key": "7f6291e8344b594235e57b843fc05d9b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672344": {"up_voted": false, "ip": "", "has_replies": false, "message": "That was supposed to be it's FEATURE...and the press buzz is all pretty darned positive.<br><br>Is Joost hiring? ;) I could kick in the doors for them...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-01_17:38:19", "killed": false, "user_key": "7f6291e8344b594235e57b843fc05d9b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672345": {"up_voted": false, "ip": "", "has_replies": false, "message": "HAHAHA :D<br>Well try again and add the advanced widget to adjust your \u00cf DONT WANT FULLSCREEN WHINE WHINE WHINE fobie.<br><br>It really is an cool app.<br><br>Worked fine for me since 0.8.4, and now the 0.10.3 version is almost how it should be.<br><br>(DON'T FORGET IS STILL IS IN BETA) ;)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-24_19:35:27", "killed": false, "user_key": "03515d252d3265973b5cccd0aeb184b4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672346": {"up_voted": false, "ip": "", "has_replies": false, "message": "HI !!<br><br>PLZZZ. SEND ME AN INVITE FOR JOOST\u2026\u2026..<br><br>ANYBODY..PLZ\u2026..<br><br>at satyendra.me @gmail.com", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-25_07:39:38", "killed": false, "user_key": "7818dc6073d92898f2558f7b600368c0", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9672347": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hey, you know it can be windowed right? you don\u2019t need to make it full screen there is even a setting to have it not go full screen at startup.<br><br>there is a button on the controller that will get you out of full screen", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-10-10_13:37:08", "killed": false, "user_key": "0b5d91839df68fd798834740487c420d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}}, "integration": {"receiver_url": "", "theme": 4, "reply_position": true, "disqus_logo": false}, "timer": {"timer_url": "http://localhost:8005", "thread_id": "18352008", "user_id": "anonymous", "forum_id": "125200", "hash": -6642055811885160664}, "thread": {"total_posts": 0, "paginate": false, "per_page": 0, "slug": "joost_8230_deleted_instantly_here", "num_pages": 1, "days_alive": 0, "realtime_paused": true, "id": 18352008, "num_posts": 93, "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=joost_8230_deleted_instantly_here' +
		'&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/joost_8230_deleted_instantly_here/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='	+ 'joost_8230_deleted_instantly_here'
			+ '&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/joost_8230_deleted_instantly_here/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">93</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://scobleizer.disqus.com/joost_8230_deleted_instantly_here/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/joost_8230_deleted_instantly_here/">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/joost_8230_deleted_instantly_here/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:18352008" 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'				: 'joost_8230_deleted_instantly_here',
			// 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/joost_8230_deleted_instantly_here/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='	+ 'joost_8230_deleted_instantly_here'
			+ '&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='	+ 'joost_8230_deleted_instantly_here'
			+ '&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='		+ 'joost_8230_deleted_instantly_here'
				+ '&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/18352008/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-9672337">\
	 <div id="dsq-comment-header-9672337" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672337" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672337" href="http://www.penguinsix.com/" target="_blank" rel="nofollow">Andrew</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672337" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672337" class="dsq-comment-message">I just got my invite today too.  Guess they must have sent out a batch.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672273">\
	 <div id="dsq-comment-header-9672273" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672273" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672273" href="http://www.penguinsix.com/" target="_blank" rel="nofollow">Andrew</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672273" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672273" class="dsq-comment-message">by the way, there is a preference you can click.  I just went up to the menu bar and unclicked \'Start in Full Screen Mode\'</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672275">\
	 <div id="dsq-comment-header-9672275" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672275" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672275">Ben Gold</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672275" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672275" class="dsq-comment-message">Hey, you know it can be windowed right? you don\'t need to make it full screen there is even a setting to have it not go full screen at startup.<br><br>there is a button on the controller that will get you out of full screen :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672282">\
	 <div id="dsq-comment-header-9672282" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672282" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672282">Goebbels</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672282" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672282" class="dsq-comment-message">I\'m dumb so it\'s rude.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672269">\
	 <div id="dsq-comment-header-9672269" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672269" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672269">seshadri(formerly bloggerATwor</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672269" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672269" class="dsq-comment-message">It IS rude. Full screen shouldn\'t be On for any app. Even for installers.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672264">\
	 <div id="dsq-comment-header-9672264" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672264" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672264" href="http://www.joergpittermann.de/" target="_blank" rel="nofollow">George</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672264" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672264" class="dsq-comment-message">please send me an invitation...<br><br>please :-)<br><br><br><a href="mailto:kontakt.email@arcor.de" rel="nofollow">kontakt.email@arcor.de</a><br><br>Thank you from germany :-)<br><br>George</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672263">\
	 <div id="dsq-comment-header-9672263" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672263" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672263">Goebbels</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672263" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672263" class="dsq-comment-message">seshadri, I beg to differ and do so quite simply:<br><br>The WHOLE purpose of Joost (despite being able to exit the mode) is to support FULL SCREEN... the same as WriteRoom and other Full Screen Apps.<br><br>If you are afraid of that, are too simple to figure out how to exit it, or are morally opposed to it, you have no right or reason to install it in the first place.<br><br>There is no reason to whine and beg for preferential treatment and to be treated to the beta, rush to install it, and then whine that it functions the way it\'s SUPPOSED to.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672262">\
	 <div id="dsq-comment-header-9672262" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672262" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672262" href="http://www.penguinsix.com/" target="_blank" rel="nofollow">Andrew</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672262" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672262" class="dsq-comment-message">A lot of my media center like apps are full screen by default.  Front Row, of course, and the other OSX media center app I downloaded went straight to full screen.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672261">\
	 <div id="dsq-comment-header-9672261" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672261" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672261">Goebbels</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672261" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672261" class="dsq-comment-message">Andrew, shhh, apparently, Scoble has never used WinDVD or any DVD viewing app or WMP nor does he know that ESC is the standard fullscreen/windowed toggle. It\'s a secret.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672344">\
	 <div id="dsq-comment-header-9672344" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672344" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672344">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672344" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672344" class="dsq-comment-message">That was supposed to be it\'s FEATURE...and the press buzz is all pretty darned positive.<br><br>Is Joost hiring? ;) I could kick in the doors for them...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672327">\
	 <div id="dsq-comment-header-9672327" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672327" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672327">Shashanka</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672327" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672327" class="dsq-comment-message">Robert, you are definitely over reacting. The full screen mode can be turned off. Did ii surprise me initially when I intalled it? Yes, but i got over the oversight and started using the app itself.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672341">\
	 <div id="dsq-comment-header-9672341" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672341" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672341">Keith Patrick</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672341" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672341" class="dsq-comment-message">Amen, Robert. I primarily write UIs for a living, and what I call "narcissistic apps" on a multi-tasking OS drive me nuts. It also drives me nuts when I\'m requested to put that kind of behavior into an app.<br>Maybe I\'m already nuts :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672333">\
	 <div id="dsq-comment-header-9672333" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672333" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672333">Diego</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672333" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672333" class="dsq-comment-message">Pressing ESC doesn\'t work? That would be my first reaction. Escape, escape! Abort, abort!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672326">\
	 <div id="dsq-comment-header-9672326" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672326" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672326" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672326" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672326" class="dsq-comment-message">Diego: Escape doesn\'t work. I just reinstalled it to try it out. Also, you can get it to run in a Window but the Window doesn\'t have a title bar, so all the visual cues we learned over the last 20 years aren\'t there. Minimize and maximize buttons aren\'t there.<br><br>Also, this isn\'t an app you\'ll want to run in bandwidth constrained environments (read: Verizon Wireless).<br><br>Also, I can\'t find an "exit" button, so I have to right-click on the toolbar item and close it there.<br><br>Why fight 20 years of Windows UI? Just to be cool? Sorry, this doesn\'t impress me.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672343">\
	 <div id="dsq-comment-header-9672343" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672343" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672343">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672343" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672343" class="dsq-comment-message">I think people are forgetting the operative word, \'beta\', while defaulting to full-screen mode is quite rude for common End Users (pop-up spammers oft use full-screen web pages that are sometimes quite difficult to close). In this case, I think they left it in to draw attention to the full-screen feature. Rude? Yes and No. Scoble over-reacting? Is the sky blue? ;) But then that same mood will mirror the general publics. So while \'siding\' with Scoble, I wouldn\'t have tossed the baby out with the bathwater, after all, it\'s a beta.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672320">\
	 <div id="dsq-comment-header-9672320" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672320" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672320" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672320" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672320" class="dsq-comment-message">Christopher: first impressions matter. Especially in today\'s "Twitter" world.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672335">\
	 <div id="dsq-comment-header-9672335" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672335" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672335" href="http://blog.dragonsharp.com/" target="_blank" rel="nofollow">Lori Olson</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672335" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672335" class="dsq-comment-message">Gee, if you don\'t want it, can you pass me an invitation? I\'m dying to try this on my Mac Mini media machine hooked up to our HDTV.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672328">\
	 <div id="dsq-comment-header-9672328" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672328" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672328">Diego</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672328" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672328" class="dsq-comment-message">Robert: Ahhh, then I am seeing your frustration. If it handled ESC to exit, maybe that would be fine. It\'s instinctive to hit ESC.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672329">\
	 <div id="dsq-comment-header-9672329" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672329" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672329">Mark</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672329" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672329" class="dsq-comment-message">"Why fight 20 years of Windows UI? Just to be cool? Sorry, this doesn’t impress me."<br><br>You mean like Office 2007?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672330">\
	 <div id="dsq-comment-header-9672330" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672330" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672330" href="http://kurtknapp.wordpress.com/" target="_blank" rel="nofollow">Kurt</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672330" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672330" class="dsq-comment-message">Have you seen that GoogleTV hoax going around on YouTube? If that were real that would blow Joost out of the water I think. I haven\'t been able to use Joost personally but just going from what I\'ve read about it and the video the people made on the ficitional GoogleTv. I hope Google sees it and they decide to develop it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672331">\
	 <div id="dsq-comment-header-9672331" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672331" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672331">Goebbels</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672331" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672331" class="dsq-comment-message">Since when is it Twitter\'s World?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672332">\
	 <div id="dsq-comment-header-9672332" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672332" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672332">Juan</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672332" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672332" class="dsq-comment-message">This is the reason I like *nix. Nothing runs in full screen by default. I like the size of terminal windows for everything but the browser.<br><br>Besides, what\'s the big deal over this new service anyway? What is it going to do for you that something else already doesn\'t?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672299">\
	 <div id="dsq-comment-header-9672299" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672299" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672299">Satish</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672299" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672299" class="dsq-comment-message">Robert : I got my beta invitation. I think the product has a good enough UI for a beta product. Many of the Video applications I have seen till now open video in full screen to provide better picture in the available screen space. Anyway there is a nicely designed "Standby" and "Resize window" at the bottom of the screen as you move your mouse.<br>I think your reaction was a bit hurried.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672302">\
	 <div id="dsq-comment-header-9672302" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672302" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672302" href="http://ioannusdeverani.wordpress.com/" target="_blank" rel="nofollow">ioannusdeverani</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672302" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672302" class="dsq-comment-message">Hi, Robert, sorry you didn\'t have a wonderful experience with Joost. I admit the UI seems to have a tad bit of a high learning curve, but once you figure out how to use it, it is pretty cool. BTW: ther is a little button on the control menu thingy that will give you back your screen. Joost will be like a picture frame window (as in a window with no close-button, etc.). I think they should give it the option to be full screen, but it should start by default in windowed mode, and the windowed mode should have close, maximize, and minimize buttons.<br><br>I suggest, though, that you give Joost another chance. It seems like the beginning of a really neat product; give it a while, and you may start to see more worthwhile channels, and better usability.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672300">\
	 <div id="dsq-comment-header-9672300" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672300" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672300">LayZ</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672300" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672300" class="dsq-comment-message">A "twitter" world? What world do you live in? The percentage of people that use Twitter is minuscule.  More evidence that you are getting more and more out of touch with normal people.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672313">\
	 <div id="dsq-comment-header-9672313" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672313" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672313" href="http://www.winextra.com/" target="_blank" rel="nofollow">Steven Hodson</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672313" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672313" class="dsq-comment-message">on this I definitely agree with Robert .. and if some of you commenters would read before posting you would have seen that he stated he knew how to get out of the full screen display.<br><br>but that is not the problem. the problem is that while it might be okay for a program to open up full screen - it is neither necessary these days to do that especially if you are running at high resolutions. In addition it is just bad form IMO to do that.<br><br>I probably would have done the same thing Robert.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672317">\
	 <div id="dsq-comment-header-9672317" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672317" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672317" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672317" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672317" class="dsq-comment-message">LayZ: where did I say "world?" And, this is a tech blog and there\'s now 676 people following me. Up from 300 or so just a week ago. Audiences that double in less than a week are interesting to me. Maybe not to you or normal people but, then, the tagline here says "Tech Geek Blogger" NOT "normal guy blogger."</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672323">\
	 <div id="dsq-comment-header-9672323" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672323" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672323">james</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672323" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672323" class="dsq-comment-message">O jeez, coulters back.<br><br>Are you going to say why you walked?<br>Full disclosure?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672334">\
	 <div id="dsq-comment-header-9672334" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672334" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672334" href="http://ericrice.com/" target="_blank" rel="nofollow">Eric Rice</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672334" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672334" class="dsq-comment-message">I was more concerned with the new UI, not the full screen UI. Software isn\'t just on the desktop, your iPod, XBOX and other things have full UIs.<br><br>I can\'t agree here, I think it\'s tech superiority kicking in.<br><br>Betcha moms and dads will love it. They can\'t accidentally do other things.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672322">\
	 <div id="dsq-comment-header-9672322" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672322" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672322" href="http://brentroos.com/" target="_blank" rel="nofollow">Brent</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672322" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672322" class="dsq-comment-message">I agree with you Scoble, I don\'t much like the UI, but that is beside the point. The channel selection sucks. It\'s a joke, even for a beta product. All hype, no substance.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672339">\
	 <div id="dsq-comment-header-9672339" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672339" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672339" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672339" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672339" class="dsq-comment-message">Eric: my PC is NOT an iPod or an Xbox. Anyone who treats it as such doesn\'t understand the usage model.<br><br>Media Center\'s UI takes over the screen too, if you want, but you can minimize it and/or quit it easily.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672336">\
	 <div id="dsq-comment-header-9672336" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672336" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672336">Ebrahim</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672336" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672336" class="dsq-comment-message">I read this somewhere &gt; \'When everythign else failes, read the manual", and I\'m sure they must\'ve one (instruction set) too. ;-)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672303">\
	 <div id="dsq-comment-header-9672303" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672303" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672303">Diego</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672303" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672303" class="dsq-comment-message">Twitter is a passing fad I\'m sure. I\'ll die down in time. How many times can you get an SMS with someone saying "I\'m taking a dump" :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672293">\
	 <div id="dsq-comment-header-9672293" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672293" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672293" href="http://www.division6.co.uk/" target="_blank" rel="nofollow">Armand</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672293" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672293" class="dsq-comment-message">C\'mon, Scoble, you can afford a second monitor! I\'m hanging on to it in case some interesting comment comes on there, the other features seem pretty cute. I actually like the UI...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672294">\
	 <div id="dsq-comment-header-9672294" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672294" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672294" href="http://www.division6.co.uk/" target="_blank" rel="nofollow">Armand</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672294" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672294" class="dsq-comment-message">Sorry - interesting <em>content</em>. D\'oh.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672295">\
	 <div id="dsq-comment-header-9672295" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672295" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672295" href="http://tinus.guichelaar.info" target="_blank" rel="nofollow">Tinus</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672295" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672295" class="dsq-comment-message">I call Bullshit. You must be more forgiving then that when you try a new (beta) application. Does it have something to do with the fact that video podcasts and Joost bite eachother?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672296">\
	 <div id="dsq-comment-header-9672296" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672296" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672296" href="http://www.duncanriley.com/" target="_blank" rel="nofollow">Duncan</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672296" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672296" class="dsq-comment-message">Clicking on the icon top right hand corner to take it out of full screen mode too hard Scoble? or is there another agenda here we don\'t know about. It\'s a great platform for streaming shows with a wonderful future, why you\'ve written it off because of your own inadequacies in using a computer is beyond me.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672297">\
	 <div id="dsq-comment-header-9672297" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672297" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672297" href="http://www.duncanriley.com/" target="_blank" rel="nofollow">Duncan</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672297" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672297" class="dsq-comment-message">Sorry, let me correct myself, the icon down the bottom that looks just like the same one in Windows Media Player does it. 1 second it took me to find it. It\'s not that hard.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672298">\
	 <div id="dsq-comment-header-9672298" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672298" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672298">Will</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672298" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672298" class="dsq-comment-message">Robert: you said twitter world in post #16.<br><br>I havn\'t got Joost yet (waiting for a beta invite), but if it does do high quality video, as promised, then it\'s not unreasonable to expect it to require a high bandwidth connection to do streaming.<br><br>Verizon Wireless is (according to Wikipedia) EVDO / 1xRTT.<br>"The typical download speed is between 400 and 700 kilobits per second with burst speeds of up to 2 megabits per second."<br><br>That\'s just enough to stream your videos. Having sustained 2-3 megabit is probably a bare minimum to actually stream higher quality stuff.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672290">\
	 <div id="dsq-comment-header-9672290" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672290" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672290">James</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672290" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672290" class="dsq-comment-message">As I read it, Joost is supposed to be \'TV on your PC\', in many cases piped into your TV screen. You\'re not supposed to be working in other apps at the same time - put your feet up and let it take over.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672291">\
	 <div id="dsq-comment-header-9672291" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672291" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672291">Ricky</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672291" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672291" class="dsq-comment-message">I agree with the Scobleman, I got the invite after waiting and getting in with the hype, but as Scoble i uninstalled it after a few minutes.  It\'s like having an incredible wet dream then waking up finding out the dog is licking your face.. not good..</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672292">\
	 <div id="dsq-comment-header-9672292" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672292" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672292" href="http://channel64.wordpress.com/" target="_blank" rel="nofollow">Nescio</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672292" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672292" class="dsq-comment-message">its March 2nd and no real support for Vista ......<br><br>waiting ...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672279">\
	 <div id="dsq-comment-header-9672279" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672279" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672279" href="http://www.studiomuscle.com/blog/" target="_blank" rel="nofollow">Hendrik</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672279" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672279" class="dsq-comment-message">Must say this is quite an overreaction. For someone who is embracing edgy betas all year round it seems paradoxical that you tumble over a UI design feature, especially since the product still is is beta, invitation only, etc...<br><br>I think the Joost Full Screen is actually a nice feature: it forces you to get into "lean forback"  position. You are still relaxed enough to enjoy the full screen video and active enough to use their fancy widgets. Now that\'s a usage a PC might not have not been designed for but it works nevertheless quite good once you get used to it and I am sure we will see many more "lean forback" (I agree we definitely need a new name for this ;-) )<br><br>I say a PC is not only designed for multitasking, Joost (but also MCE and - ahum - GAMES) prove that the PC is really cool for very immersive fullscreen stuff too.<br><br>And yes, you should buy a second screen ;). Oh and -with a workaround- Joost works great on VISTA<br><br>hendrik</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672342">\
	 <div id="dsq-comment-header-9672342" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672342" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672342">Goebbels</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672342" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672342" class="dsq-comment-message">The interesting result of this is this:<br><br>Betas are misused by the "initiated" to wank off and prove they got special treatment, opened the app and posted a blog entry on it first... They are then willing to whine about it and call it unacceptable (although this is actually what the BETA PROCESS IS -- a test to determine feedback on functionality, features, and technical bugs), uninstall it, realize they are idiots, reinstall it, and still do almost ZERO to participate in the BETA PROCESS.<br><br>Yay!<br><br>Moreover, and more pathetic, the developer actually appreciates this because hype is more important to them than real feedback.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672340">\
	 <div id="dsq-comment-header-9672340" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672340" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672340" href="http://gracefulflavor.wordpress.com/" target="_blank" rel="nofollow">Jeff Ventura</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672340" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672340" class="dsq-comment-message">Full screen should not be default.  Having the option is fine and well, but make the default launching mode "windowed" so the first impression isn\'t so jarring.<br><br>But Robert, you know better.  Stop the dramatics.  You should give beta software a bigger grace period than you did Joost.  Come on.<br><br>I think you overreacted here.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672321">\
	 <div id="dsq-comment-header-9672321" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672321" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672321" href="http://www.u-g-h.com/" target="_blank" rel="nofollow">Owen</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672321" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672321" class="dsq-comment-message">I installed Microsoft Office. It took over 500Mb on my hard disk. I couldn’t figure out how to get out. Or get back to Google Reader and Outlook and my other apps.<br><br>Well, I’m lying. I know how to get back to other apps. Alt-Tab.<br><br>Or Ctrl-Alt-Delete, which pulls up task manager and I can kill that process.<br><br>I did that and promptly deleted it.<br><br>What a rude app. I don’t care how cool it is. You don’t take over that much space if you want me to use you.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672319">\
	 <div id="dsq-comment-header-9672319" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672319" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672319">Josh</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672319" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672319" class="dsq-comment-message">Wow, Scoble!  What a rude app?  You\'re sounding like an old man like the one on those Coke Zero commercials.  Do you know what the capital of Djibouti is?<br><br>Maybe you should take 10 minutes and learn the software.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672309">\
	 <div id="dsq-comment-header-9672309" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672309" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672309">Jim</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672309" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672309" class="dsq-comment-message">“Why fight 20 years of Windows UI? Just to be cool? Sorry, this doesn’t impress me.”<br><br>Gosh. Let\'s just kill the whole web-tech thing right now then, because they\'re trying to change the way everyone does things.<br><br>I look forward to the Web 3.0 Telnet app.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672316">\
	 <div id="dsq-comment-header-9672316" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672316" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672316" href="http://www.balez.ca/mat" target="_blank" rel="nofollow">Mat</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672316" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672316" class="dsq-comment-message">Robert: The fact that you think of this as a "Twitter World" (i.e. one where superficial, instant impressions matter most) is perhaps the larger problem here.<br><br>I mourn the loss of the depth of thoughtful exploration.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672314">\
	 <div id="dsq-comment-header-9672314" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672314" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672314" href="http://handelaar.org/" target="_blank" rel="nofollow">John Handelaar</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672314" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672314" class="dsq-comment-message">If we\'re going to use 1987 Windows interfaces, try Alt-F4.  I\'ll bet cash money *that* works.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672315">\
	 <div id="dsq-comment-header-9672315" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672315" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672315" href="http://brandsimo.wordpress.com/" target="_blank" rel="nofollow">adam</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672315" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672315" class="dsq-comment-message">robert: double clicking on the screen will switch back and forth from full screen to window.<br><br>i agree that it\'s not a UI that is normal - and it shocked me when it opened full screen but as you play around it gets more intuitive.<br><br>just because it\'s different doesn\'t make it bad...<br><br>(and no, i\'m not related to the company)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672312">\
	 <div id="dsq-comment-header-9672312" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672312" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672312" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672312" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672312" class="dsq-comment-message">Mat: I guess I should have called it a "YouTube World."  The problem is there are hundreds of companies all vying for your attention.<br><br>Adam: different is OK if you\'re selling video games. If you\'re selling apps that need to co-exist with my workspace then that\'s a whole nother thing.<br><br>I have it back on and will try it again. But it already is proving to not be a good experience in another way: with a Verizon Wireless card the video experience sucks. (Other videos on Internet work just fine). They need to make it step down for low bandwidth situations and/or do more buffering.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672288">\
	 <div id="dsq-comment-header-9672288" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672288" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672288" href="http://fifthdecade.wordpress.com/" target="_blank" rel="nofollow">fifthdecade</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672288" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672288" class="dsq-comment-message">Robert, admit it, you just don\'t like anything Microsoft didn\'t think of or use first. Are you going to say Office is a rude app and not use it just because it\'s user interface uses a ribbon and not the same interface of the last 20 years?<br><br>Sometimes, you do come across like a Windows whore.<br><br>For heavens sake, work stuff out before you slag it off! All you\'re doing is showing your own ignorance here.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672311">\
	 <div id="dsq-comment-header-9672311" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672311" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672311" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672311" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672311" class="dsq-comment-message">Jeff: I have a folder of 59 pieces of software and services I should try out (seriously, I do, and that\'s after cleaning out the stuff that I\'m not interested in). How will ANYONE in this world give any piece of software more than a few minutes attention at first?<br><br>Why does Joost deserve more attention than, say, Dabble or Blinkx? Those two services both work better and are more satisfying.<br><br>And if it\'s for my HDTV I bet an Apple iTV will be more satisfying there.<br><br>I just don\'t get the hype around Joost.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672310">\
	 <div id="dsq-comment-header-9672310" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672310" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672310" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672310" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672310" class="dsq-comment-message">fifthdecade: the ribbon didn\'t change the fundamental UI (the maximize, minimize, etc) in a way that made me not only figure it out, but made all the productivity stuff go away. Imagine if every app had those kinds of common things in a different place.<br><br>As to why I don\'t give software more than a few minutes trial anymore. I have a folder of 59 things that are asking for my attention. And yours.<br><br>Seriously, I do.<br><br>So, what makes Joost so impressive? I don\'t get the hype, espeically when compared with services like Blinkx, Dabble, YouTube, Blip.tv, Revision 3\'s new stuff, or Apple\'s iTV.<br><br>I note there\'s again a lot of attacking me (must be a lot of people who are associated with Joost here, it\'s interesting that many of the attackers never have participated in comments here before) but there\'s very little light.<br><br>So, why does Joost deserve our attention?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672307">\
	 <div id="dsq-comment-header-9672307" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672307" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672307" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672307" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672307" class="dsq-comment-message">Oh, sorry, I see where I used "Twitter World" above. Maybe I should have said "YouTube" world. I\'m still getting questions about when I will make my videos shorter cause many people don\'t like watching long things (or taking long periods of time to consider things).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672305">\
	 <div id="dsq-comment-header-9672305" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672305" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672305" href="http://fifthdecade.wordpress.com/" target="_blank" rel="nofollow">fifthdecade</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672305" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672305" class="dsq-comment-message">For me, it\'s nothing to do with Joost which I don\'t have or know much about, other than it\'s something to do with Skype which I also don\'t have. It was all about the way you seemed to dismiss the thing out of hand just because of the full screen thingy, which loads of games already do anyway.<br><br>Most people I suspect are surprised at you, a geek techy person, not being able to work out how to switch views when clearly lots of others have done.<br><br>If you have a folder of 59 things that need to have your attention, perhaps you could be more selective? Nobody can review everything, and if they do those reviews will be worth not very much as a result.<br><br>I guess you posted this in haste. What\'s that saying? Act in haste, repent at leisure...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672306">\
	 <div id="dsq-comment-header-9672306" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672306" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672306">Goebbels</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672306" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672306" class="dsq-comment-message">"So, what makes Joost so impressive? I don’t get the hype, espeically when compared with services like Blinkx, Dabble, YouTube, Blip.tv, Revision 3’s new stuff, or Apple’s iTV.<br><br>So, why does Joost deserve our attention?"<br><br>Jesus, this is hilarious coming from you. I\'ll tell you a few of the most obvious reasons:<br><br>1. Scooping other video aggregation sites on a series of both significant and niche media content deals/partnerships.<br>2. Focus on full screen, high quality content rather than low quality, postcard video constrained within Flash frames. (Moving internet video upmarket.) (Shouldn\'t HD-Boy be raving about this?)<br>3. Willingness to abandon 30 year old and business-defined UI and move toward a more modern, use-specific, consumer- and media-focused interface tailored to the content and experience rather than using the same UI for all purposes. (Again, weren\'t you cheerleading such efforts in Longhorn 6 years ago?)<br>4. Pursuing internet video with a fairly unique paradigm/model (shared by Democracy and proabbaly some other apps) of creating an application interface to internet "television" (streams of short and long form content available as "channels") rather than the already antiquated site aggregation model.<br>5. (Minor Point) Adopting a Mac-esque, primarily HUD-oriented UI... It\'s interesting that it\'s look-and-feel is taking many, many cues from Apple while remaining unique. To build on #3, The content is the userspace, interaction is within, or over, it. As opposed to models which minimize the content to a few inches square on an overloaded and crowded page of antiquated content.<br><br>Why Blinkx, Dabble, YouTube, Blip.tv, Revision 3’s new stuff are not as "talk worthy":<br><br>They are largely a mashup of YouTube (low quality, short form video clips presented within a Flash container with aggregation and lame community features) and Digg with extremely minor variations on the theme and feature sets.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672304">\
	 <div id="dsq-comment-header-9672304" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672304" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672304" href="http://www.networkperformancedaily.com/" target="_blank" rel="nofollow">Brian Boyko</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672304" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672304" class="dsq-comment-message">Robert: I\'m not going to argue with you about UI and full-screen, or that, but you did ask "Why does Joost deserve our attention?"<br><br>I think as an application, it\'s certainly nothing to look at; keep in mind you\'re looking at a beta version of the software. I\'d prefer a more concentrated UI and not the fancy Fischer-Price stuff.<br><br>But from a holistic standpoint, Joost is well worth the hype, for a few reasons.<br><br>First, Joost provides a viable alternative to the Cable/Satellite duopoly.  This is not the case now, in it\'s early stages, but it has the potential to replace television subscription services.  To those of us who like a few TV programs but would rather not pay cable costs, it\'s a godsend.<br><br>Second, Joost is the first video-over-Internet app that really targets the "middle tail."  If you follow the Chris Anderson "Long Tail" theory of abundance, the networks have focused on the cream of the crop (or at least the lowest common denominator) and YouTube and other such sites have focused on the content of the Long Tail.  This is an economy of abundance.  However, the Long Tail does not cope well with passive viewership, only active search.  We have entered the economy of abundance, but finding the good stuff in the mix is harder.<br><br>Joost is the first service that targets the middle tail - they need content which is obscure enough not to have been picked up by the television services but not so obscure only a few people will watch it - driving up the bandwidth.  In short, they need the "middle tail."<br><br>From a networking perspective, Joost is important because consumer broadband networks typically remain underutilized.  Even when bittorrenting, you don\'t bittorrent all the time.  Once you have the file, you seed, which may use all upload bandwidth but downloading stops.<br><br>Any IT department guy will tell you that any underutilized link is a waste of money - Joost is a way for consumers to utilize more effectively what they have already paid for.<br><br>Finally, there\'s the fact that Joost means Money for content creators.<br><br>Yes, Joost sells ads and kicks back pennies to the content creators.  But there is nothing that prevents the content creators from embedding their own ads in the video and in so doing, keeping the money from those sales.<br><br>-- Brian Boyko<br>-- Editor, Network Performance Daily.<br>-- <a href="http://www.networkperformancedaily.com" rel="nofollow">www.networkperformancedaily.com</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672308">\
	 <div id="dsq-comment-header-9672308" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672308" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672308">Goebbels</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672308" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672308" class="dsq-comment-message">Oops, I forgot another one which should have appealed to you (I\'ll call it 4a)"<br><br>4a. Joost, unlike any of the sites you mentioned, is a P2P-based network system. (I would point out that as use grows your speed issues could be mitigated, and that, two, you recently proclaimed NetFlix\'s death simply because you interviewed someone about a video P2P distribution system.) More interesting to me, this is Kazaa offering a legitimate offering.<br><br>Which makes me think of another point:<br><br>6. This is from the makers of Skype and Kazaa, two "proven" properties of the internet age.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672280">\
	 <div id="dsq-comment-header-9672280" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672280" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672280">LayZ</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672280" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672280" class="dsq-comment-message">@56 "How will ANYONE in this world give any piece of software more than a few minutes attention at first? "<br><br>That\'s your problem.  You are promiscuous to your detriment. Most professionals know how to balance their work load and give projects they agree to look at some due diligence</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672281">\
	 <div id="dsq-comment-header-9672281" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672281" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672281" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672281" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672281" class="dsq-comment-message">LayZ: really? Most professionals I know just ignore this kind of stuff. Ask the average CTO how many pieces of software he or she has tried in the last week. The ones I know say "zero" or, maybe, "one" if it\'s something work related.<br><br>&gt;&gt;It was all about the way you seemed to dismiss the thing out of hand just because of the full screen thingy, which loads of games already do anyway.<br><br>I don\'t use games on my PC. That\'s what Xbox or Playstation for. Exactly my point.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672283">\
	 <div id="dsq-comment-header-9672283" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672283" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672283" href="http://ericrice.com/" target="_blank" rel="nofollow">Eric Rice</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672283" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672283" class="dsq-comment-message">Joost might be the first to get large format stuff to my home theater.<br><br>I didn\'t pay 50,000 bucks to watch postage stamps in flash. If Joost can be the one to change that, fine.<br><br>I\'m a tech guy too, but we\'re outnumbered by normal guys. We as tech bloggers should focus on them as our prime directive.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672284">\
	 <div id="dsq-comment-header-9672284" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672284" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672284">Goebbels</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672284" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672284" class="dsq-comment-message">"really? Most professionals I know just ignore this kind of stuff."<br><br>Did you forget how to read?<br><br>"Most professionals know how to balance their work load and give projects they agree to look at some due diligence"<br><br>Just because you think it\'s your responsibility to use every new application put in front of your face doesn\'t mean it\'s any other professionals responsibility. However, because you choose to, it is your obligation to ACTUALLY test them and provide a measured critique. Not to uninstall in 5 minutes and to post whining 5 minutes later.<br><br>"I don’t use games on my PC. That’s what Xbox or Playstation for. Exactly my point."<br><br>What is your point? That video has no place on the PC and belongs on a console? That you don\'t fully participate in the game or video market on the PC so you aren\'t qualified and/or experienced? What exactly is your point? You\'ve already conceded that you overreacted and are reevaluating so what the hell is EXACTLY your point?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672285">\
	 <div id="dsq-comment-header-9672285" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672285" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672285">Allie</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672285" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672285" class="dsq-comment-message">I tried Joost, and I liked it.  I don\'t mind it taking up the screen -- if I want to watch TV, I want it to be as big as possible.<br><br>It just feels much better to me, and the quality is higher than YouTube.<br><br>I find this whole shift to TV-over-the-internet (aka "<a href="http://advancedmediacommittee.typepad.com/emmyadvancedmedia/2007/01/over_the_top_fi.html" rel="nofollow">over the top"</a>) pretty wild -- this industry is changing so drastically, right before our eyes.<br><br>For that, I definitely hand it to Joost.  It\'s the first viable form of Internet TV.  Licensed content, quality production.  No complaints here.<br><br>- Allie</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672289">\
	 <div id="dsq-comment-header-9672289" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672289" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672289">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672289" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672289" class="dsq-comment-message">Ok, I gotta peek. I gotta go with Goebbels @60...I think Joost is great, in fact best of lot, best of breed, hope it sticks around. Viacom ain\'t no dummy. And it terms of the biz model, you might want to be worried, Vloggers will get far more exposure here, and they will have advertising dollars locked in, and better revenue sharing ops. But instead of catcalling it and fumbling badly with the beta, I\'d establish a \'teaser channel\' of sorts. There is a video-sharing shakeout going on, some 260 video-sharing sites (egads), the wacky and wild-west YouTube and clones are starting to wane, and Joost is playing the high-quality professional-stream card. Heck of a shakeout coming, but my chips are on Joost at least.<br><br>And Mr. 28, nope. No can do. None of your biz anyways.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672277">\
	 <div id="dsq-comment-header-9672277" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672277" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672277">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672277" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672277" class="dsq-comment-message">PS - And oh, PC games are NOT dead. RTS and heavy RPG just doesn\'t translate very well on console. And Sim styled stuff, Flight Sim X and the like.<br><br><i>For that, I definitely hand it to Joost. It’s the first viable form of Internet TV. Licensed content, quality production. No complaints here.</i><br><br>Agree fully.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672272">\
	 <div id="dsq-comment-header-9672272" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672272" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672272" href="http://ericrice.com/" target="_blank" rel="nofollow">Eric Rice</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672272" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672272" class="dsq-comment-message">Hey check it, Joost has an RSS reader in it, I was skimming this post about Joost on Joost. meta!<br><br><a href="http://www.flickr.com/photos/ericrice/407943934/" rel="nofollow">http://www.flickr.com/photos/ericrice/407943934/</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672270">\
	 <div id="dsq-comment-header-9672270" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672270" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672270" href="http://pentdego.com/" target="_blank" rel="nofollow">Ed</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672270" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672270" class="dsq-comment-message">How dumb can a person be..<br>I have some tokens left so if anyone is interested..</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672271">\
	 <div id="dsq-comment-header-9672271" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672271" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672271" href="http://www.webware.com/" target="_blank" rel="nofollow">Rafe</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672271" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672271" class="dsq-comment-message">I like Joost\'s full-screen UI. And for those who don\'t know, the "power" icon exits the app. Unconventional from a Windows perspective but quite comprehensible if you\'ve used any consumer electronics products in the last ten years. I think it\'s cool how it puts a good "living room" UI on a Windows app.<br><br>-Rafe</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672265">\
	 <div id="dsq-comment-header-9672265" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672265" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672265" href="http://wenchadmin.wordpress.com/" target="_blank" rel="nofollow">deannie</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672265" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672265" class="dsq-comment-message">Wow I can\'t believe it. I recently installed Joost and got it right away.<br><br>When it went to full screen I just double clicked on the window and got a partial screen. I also found the controls on my own at 12, 3 6 and 9 o\'clock in about 5 minutes.<br><br>Robert, you must have just been tired when you tried this out. Try it again. The content was interesting, the quality is good.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672266">\
	 <div id="dsq-comment-header-9672266" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672266" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672266" href="http://modernday.wordpress.com/" target="_blank" rel="nofollow">modernday</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672266" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672266" class="dsq-comment-message">Hey, that Joost program sounds awesome. That sucks that you don\'t like it maybe you should give it another go? I\'d love an invite :D I saw they have Fifth Gear on the program list. I wonder if they have Top Gear :D!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672267">\
	 <div id="dsq-comment-header-9672267" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672267" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672267">Joost</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672267" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672267" class="dsq-comment-message">Well if you give up that easely you don\'t even deserve an invite! I got my invite after not having to beg at all and I thought it looks pretty good with a pretty good picture quality too! Anyway kazaa boys don\'t let anyone stop  you and yesss Top Gear is awesome and would be a great addition!<br><br>Joost (it\'s a Dutch name and means Joe simple right!?)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672268">\
	 <div id="dsq-comment-header-9672268" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672268" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672268" href="http://scopettg.wordpress.com/" target="_blank" rel="nofollow">scopettg</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672268" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672268" class="dsq-comment-message">Hmm... I suppose that\'s some give and take. :)<br>Take it easy lah~</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672286">\
	 <div id="dsq-comment-header-9672286" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672286" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672286">JHC</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672286" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672286" class="dsq-comment-message">I just installed Word -- the damned thing filled my entire screen so I uninstalled it...<br><br>I just upgraded to WMP11 -- the damned thing doesnt respect the XP UI so I uninstalled it...<br><br>I just upgraded to Office 2007 -- the damned thing doesn\'t respect any of my window metrics at all and violates dozens of UI conventions so I uninstalled it...<br><br>Scoble, you\'re an ass.  Seriously.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672324">\
	 <div id="dsq-comment-header-9672324" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672324" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672324">kim</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672324" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672324" class="dsq-comment-message">I am amazed (maybe even frightened) that you could not figure out how to get out of the joost app. It is really easy and even my little sister (age: 7) could figure it out without any help!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672325">\
	 <div id="dsq-comment-header-9672325" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672325" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672325">Matt</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672325" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672325" class="dsq-comment-message">Joost is meant to be on your PC its a "TV browser" (coined by Joost\'s CTO Dirk-Willem van Gulik) .<br><br>Joost will be a media center app or Set top box client the PC and MAC are just platforms to test the client out ,while we wait for true IPTV for enter the living room .<br><br>John Dvorak doesnt like Joost either it must be a Generational thing you old man :P<br><a href="http://www.dvorak.org/blog/?p=9482" rel="nofollow">http://www.dvorak.org/blog/?p=9482</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672260">\
	 <div id="dsq-comment-header-9672260" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672260" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672260">Matt</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672260" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672260" class="dsq-comment-message">Joost ;p look at IE7 if you want to complain about wierd UIs</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672301">\
	 <div id="dsq-comment-header-9672301" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672301" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672301" href="http://www.penguinsix.com/" target="_blank" rel="nofollow">Andrew</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672301" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672301" class="dsq-comment-message">Tangentially related to Joost--<br><br>I just watched on Joost Channel 6 - Indie Flix Premier "Fields of Mudan".  Wow.  Talk about a heavy movie in only 23 minutes.  Won a best short picture nomination from the Oscars.  I can see why.<br><br>Anyway, if you do reinstall, this tragic film is pretty impressive (made by a college student).  Almost worth reinstalling (you can delete when done).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672318">\
	 <div id="dsq-comment-header-9672318" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672318" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672318">LayZ</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672318" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672318" class="dsq-comment-message">"LayZ: really? Most professionals I know just ignore this kind of stuff. Ask the average CTO how many pieces of software he or she has tried in the last week. The ones I know say “zero” or, maybe, “one” if it’s something work related."<br><br>To borrow from the late Senator Benson: "I know C-level execs. I have many C-level exec  friends. You, Mr. Scoble, are no C-level exec". I\'m not talking about C-level execs. The majority of don\'t have the time nor the responsibility to sign up for or test beta software. But, when they do take on a project they devote the time to do it right.  So, you can frame the argument to your advantage all you like. but that wasn\'t the point.  If you say "Yes" to agreeing to participate in a beta you owe it to the software company to apply the necessary time and commitment. That is what they are expecting of you. Otherwise, you are a waste of time to them. So, I repeat. most professionals devote the necessary time and resources to a project they agree to take on. If for nothing else, to maintain their self respect and credibility.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672276">\
	 <div id="dsq-comment-header-9672276" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672276" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672276">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672276" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672276" class="dsq-comment-message">Wow, John doesn\'t like, rare disagreement as I think this one has potential and will really catch on. And whining about lack of content, in this beta stage is too early, it\'s still a proof-of-concept, they got Endemol, TW and Viacom and getting Paramount, MTV, BET and game companies, and Fortune 500s (Corporate Channels), from what I hear. Man, must be doing something right to get these deals. But they better not go Kazaaified spyware heavy.<br><br>Played with it more, the UI is simple enough, CE style, kinda Archosish. While the full-screen was a bit of a jolt, it\'s obvious they are thinking in terms of a Media Centerish CE-styled app, in which case breaking Windows UI conventions is a gooooood thing.<br><br>Well one thing in common, Scoble and John both catcall, yet 90% of commenters disagree. They sure got a good publicity boost from the malcontents. :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672338">\
	 <div id="dsq-comment-header-9672338" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672338" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672338" href="http://analiagermano.wordpress.com/" target="_blank" rel="nofollow">Ani</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672338" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672338" class="dsq-comment-message">??? would you give up a good program just because it took the full screen? you\'re kidding right? I don\'t have a clue what Joost is LOL, but I think you get nervous very easily. And why am I commenting here? please apply ctrl alt del on me please</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672287">\
	 <div id="dsq-comment-header-9672287" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672287" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672287">buns and chou chou</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672287" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672287" class="dsq-comment-message">ha ha...good one.  video of you coming soon my friend!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672278">\
	 <div id="dsq-comment-header-9672278" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672278" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672278" href="http://kristin.wordpress.com/" target="_blank" rel="nofollow">kristin</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672278" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672278" class="dsq-comment-message">I dont know about the windows version of the app is but in OSX the little arrow pointing to the box was a dead giveaway for a shortcut to a "windowed" mode.<br><br>Not much on joost to watch anyways except for music videos.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672256">\
	 <div id="dsq-comment-header-9672256" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672256" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672256">Cindy</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672256" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672256" class="dsq-comment-message">Please send me a Joost invite. I am so excited, I just heard about this!!! Please???<br><br> <a href="mailto:pinkieclc@yahoo.com" rel="nofollow">pinkieclc@yahoo.com</a><br><br>Thank you, Cindy</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672255">\
	 <div id="dsq-comment-header-9672255" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672255" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672255">Chinnari</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672255" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672255" class="dsq-comment-message">Anybody pleae send me invite to install JOOST?…Thanks a lot<br><br>my mail id: <a href="mailto:anand_badugu@countrywide.com" rel="nofollow">anand_badugu@countrywide.com</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672258">\
	 <div id="dsq-comment-header-9672258" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672258" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672258">r draper</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672258" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672258" class="dsq-comment-message">I agree with Scoble. This thing gets a "delete" if it doesn\'t work better in a couple of days than it does at the moment. Looks like all hype and no substance to me..if what I have experienced is the norm for this thing, you can have my invite.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672259">\
	 <div id="dsq-comment-header-9672259" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672259" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672259">Ciaran</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672259" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672259" class="dsq-comment-message">Could someone please send me an invite to ciaransheehan@hotmail.co.uk? Thank you in advance!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672257">\
	 <div id="dsq-comment-header-9672257" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672257" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672257" href="http://artconarte.blogspot.com/" target="_blank" rel="nofollow">Arturo</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672257" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672257" class="dsq-comment-message">Well, i also would like to have an invitation and begin to understand this new tv concept. If anybody can send me one it would be great. Thanx in advance.<br><br>Art<br><br><a href="mailto:aseudoni.mizado@gmail.com" rel="nofollow">aseudoni.mizado@gmail.com</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672254">\
	 <div id="dsq-comment-header-9672254" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672254" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672254">jay</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672254" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672254" class="dsq-comment-message">Send me invite to <a href="mailto:tvjoost@yahoo.com" rel="nofollow">tvjoost@yahoo.com</a><br><br>Thanks</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672345">\
	 <div id="dsq-comment-header-9672345" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672345" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672345">Mark</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672345" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672345" class="dsq-comment-message">HAHAHA :D<br>Well try again and add the advanced widget to adjust your Ï DONT WANT FULLSCREEN WHINE WHINE WHINE fobie.<br><br>It really is an cool app.<br><br>Worked fine for me since 0.8.4, and now the 0.10.3 version is almost how it should be.<br><br>(DON\'T FORGET IS STILL IS IN BETA) ;)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672346">\
	 <div id="dsq-comment-header-9672346" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672346" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9672346">Satyendra</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672346" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672346" class="dsq-comment-message">HI !!<br><br>PLZZZ. SEND ME AN INVITE FOR JOOST……..<br><br>ANYBODY..PLZ…..<br><br>at satyendra.me @gmail.com</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9672347">\
	 <div id="dsq-comment-header-9672347" class="dsq-comment-header">\
	 <cite id="dsq-cite-9672347" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9672347" href="http://www.active2go.de/" target="_blank" rel="nofollow">joern puetz</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9672347" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9672347" class="dsq-comment-message">Hey, you know it can be windowed right? you don’t need to make it full screen there is even a setting to have it not go full screen at startup.<br><br>there is a button on the controller that will get you out of full screen</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=joost_8230_deleted_instantly_here&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);
			}
		}
	});
}

})();




