




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": {"2facd380c5bdfbaa1a1e9c657578f135": {"username": "Barry Kelly", "tumblr": "", "display_name": "Barry Kelly", "url": "http://disqus.com/guest/2facd380c5bdfbaa1a1e9c657578f135/", "registered": false, "linkedin": "", "blog": "http://barrkel.blogspot.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/4/2022/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "e8d0dde0c4b3d65b72a92bba1fee5aa7": {"username": "Chris", "tumblr": "", "display_name": "Chris", "url": "http://disqus.com/guest/e8d0dde0c4b3d65b72a92bba1fee5aa7/", "registered": false, "linkedin": "", "blog": "http://www.beercosoftware.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": ""}, "7299c1ef9c67d75e92a121ca471f98a7": {"username": "Jason", "tumblr": "", "display_name": "Jason", "url": "http://disqus.com/guest/7299c1ef9c67d75e92a121ca471f98a7/", "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": ""}, "2030ecd403c772e4ad7e471e4e689e57": {"username": "Eric Eggertson", "tumblr": "", "display_name": "Eric Eggertson", "url": "http://disqus.com/guest/2030ecd403c772e4ad7e471e4e689e57/", "registered": false, "linkedin": "", "blog": "http://commonsensepr.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": ""}, "97b1890e780050e2538edf94967476ac": {"username": "Fred Oliveira", "tumblr": "", "display_name": "Fred Oliveira", "url": "http://disqus.com/guest/97b1890e780050e2538edf94967476ac/", "registered": false, "linkedin": "", "blog": "http://webreakstuff.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3553f5e0db0fd1ec4e40a932a2d8f5b3": {"username": "Robert Scoble", "tumblr": "", "display_name": "Robert Scoble", "url": "http://disqus.com/guest/3553f5e0db0fd1ec4e40a932a2d8f5b3/", "registered": false, "linkedin": "", "blog": "http://scobleizer.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/4069/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "1b4a803a20ad950d945a06235662cfce": {"username": "skc", "tumblr": "", "display_name": "skc", "url": "http://disqus.com/guest/1b4a803a20ad950d945a06235662cfce/", "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": ""}, "04f327f032df043846baa7474b8e6aff": {"username": "Krish", "tumblr": "", "display_name": "Krish", "url": "http://disqus.com/guest/04f327f032df043846baa7474b8e6aff/", "registered": false, "linkedin": "", "blog": "http://www.krishworld.com/blog/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/23653/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "d0b3f1a838fe80ab417445f60cd71f27": {"username": "Pepper", "tumblr": "", "display_name": "Pepper", "url": "http://disqus.com/guest/d0b3f1a838fe80ab417445f60cd71f27/", "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": ""}, "6f6a88947cdf7c05959868c7f11cc5c6": {"username": "An anonymous MS hired..", "tumblr": "", "display_name": "An anonymous MS hired..", "url": "http://disqus.com/guest/6f6a88947cdf7c05959868c7f11cc5c6/", "registered": false, "linkedin": "", "blog": "http://www.folklore.org/StoryView.py?project=Macintosh&amp;#38;story=A_Rich_Neighbor_Named_Xerox.txt&amp;#38;topic=Microsoft&amp;#38;sortOrder=Sort%20by%20Date&amp;#38;detail=medium", "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": ""}, "906aff1690b89e032ae9ea1214dda28a": {"username": "Gerard McGarry", "tumblr": "", "display_name": "Gerard McGarry", "url": "http://disqus.com/guest/906aff1690b89e032ae9ea1214dda28a/", "registered": false, "linkedin": "", "blog": "http://www.scribbledesigns.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": ""}, "d900da12c8f7d4057d1666dbbdfa9617": {"username": "Phair", "tumblr": "", "display_name": "Phair", "url": "http://disqus.com/guest/d900da12c8f7d4057d1666dbbdfa9617/", "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": ""}, "c1eadb1264fe61e553bf2bc4df7574b0": {"username": "Tumbleweed", "tumblr": "", "display_name": "Tumbleweed", "url": "http://disqus.com/guest/c1eadb1264fe61e553bf2bc4df7574b0/", "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": ""}, "9b646ff3eeda1f01cc2b1cb86d1634f9": {"username": "paul", "tumblr": "", "display_name": "paul", "url": "http://disqus.com/guest/9b646ff3eeda1f01cc2b1cb86d1634f9/", "registered": false, "linkedin": "", "blog": "http://dotnetjunkies.com/WebLog/paul/", "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": ""}, "69acecf023089c08c9309915c53a885f": {"username": "Dalibor Topic", "tumblr": "", "display_name": "Dalibor Topic", "url": "http://disqus.com/guest/69acecf023089c08c9309915c53a885f/", "registered": false, "linkedin": "", "blog": "http://robilad.livejournal.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "ce56665a53573f8cf401244abea61482": {"username": "jpick", "tumblr": "", "display_name": "jpick", "url": "http://disqus.com/guest/ce56665a53573f8cf401244abea61482/", "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": ""}, "a6d980c7587d9ebbd1c3820e0f0092e7": {"username": "Alejandro", "tumblr": "", "display_name": "Alejandro", "url": "http://disqus.com/guest/a6d980c7587d9ebbd1c3820e0f0092e7/", "registered": false, "linkedin": "", "blog": "http://www.translationsource.com.ar/", "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": ""}, "a9ec20a0d56d3f848ef46b7a43e1f098": {"username": "Nick", "tumblr": "", "display_name": "Nick", "url": "http://disqus.com/guest/a9ec20a0d56d3f848ef46b7a43e1f098/", "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": ""}, "8d00a3b94ad158920ca8980269ca57ac": {"username": "Leon", "tumblr": "", "display_name": "Leon", "url": "http://disqus.com/guest/8d00a3b94ad158920ca8980269ca57ac/", "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": ""}, "aba6e77dd14a6ba0fc2e7e5f07db3908": {"username": "Joe", "tumblr": "", "display_name": "Joe", "url": "http://disqus.com/guest/aba6e77dd14a6ba0fc2e7e5f07db3908/", "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": ""}, "6e70064426c59bdc3a0f677657e9d13c": {"username": "Paco", "tumblr": "", "display_name": "Paco", "url": "http://disqus.com/guest/6e70064426c59bdc3a0f677657e9d13c/", "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": ""}, "4a20476223313a73c880051285dd8804": {"username": "Kermit Croaked", "tumblr": "", "display_name": "Kermit Croaked", "url": "http://disqus.com/guest/4a20476223313a73c880051285dd8804/", "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": ""}, "c510febb9bed68b5cc4a09f076701e0f": {"username": "anon", "tumblr": "", "display_name": "anon", "url": "http://disqus.com/guest/c510febb9bed68b5cc4a09f076701e0f/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/4119/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "8cdfdf764627dde61cb9996d3198ba73": {"username": "Anonymous.... sorry", "tumblr": "", "display_name": "Anonymous.... sorry", "url": "http://disqus.com/guest/8cdfdf764627dde61cb9996d3198ba73/", "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": ""}, "712ade54d4ce7fdbc19f960a2407452c": {"username": "Jeff Hume", "tumblr": "", "display_name": "Jeff Hume", "url": "http://disqus.com/guest/712ade54d4ce7fdbc19f960a2407452c/", "registered": false, "linkedin": "", "blog": "http://jeff.hume.ca/", "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": ""}, "9f3e26ecb3362dad1217bb6a858147a5": {"username": "Colin Charles", "tumblr": "", "display_name": "Colin Charles", "url": "http://disqus.com/guest/9f3e26ecb3362dad1217bb6a858147a5/", "registered": false, "linkedin": "", "blog": "http://bytebot.net/blog/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "15fd11b2c73ac95c3552e1d3a0c2b40f": {"username": "Alberto Saavedra", "tumblr": "", "display_name": "Alberto Saavedra", "url": "http://disqus.com/guest/15fd11b2c73ac95c3552e1d3a0c2b40f/", "registered": false, "linkedin": "", "blog": "http://blog.saavedra.info/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "0fc83e8400e7b2bded3f064871f8f24f": {"username": "Anand Dhingra", "tumblr": "", "display_name": "Anand Dhingra", "url": "http://disqus.com/guest/0fc83e8400e7b2bded3f064871f8f24f/", "registered": false, "linkedin": "", "blog": "http://ananddhingra.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": ""}, "f5f92aa64eb658ae473e347339e7dd28": {"username": "Alex", "tumblr": "", "display_name": "Alex", "url": "http://disqus.com/guest/f5f92aa64eb658ae473e347339e7dd28/", "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": ""}, "da29e90e3ee3e8f6d26e5b5453104362": {"username": "bananasfk", "tumblr": "", "display_name": "bananasfk", "url": "http://disqus.com/guest/da29e90e3ee3e8f6d26e5b5453104362/", "registered": false, "linkedin": "", "blog": "http://bananasfk.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": ""}, "d1b44a8368e7418bc4347a587f7f83b9": {"username": "neverness", "tumblr": "", "display_name": "neverness", "url": "http://disqus.com/guest/d1b44a8368e7418bc4347a587f7f83b9/", "registered": false, "linkedin": "", "blog": "http://neverness.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": ""}, "088d9b7f13cdeb73bcfff50503b4a9b8": {"username": "Dallas Freeman", "tumblr": "", "display_name": "Dallas Freeman", "url": "http://disqus.com/guest/088d9b7f13cdeb73bcfff50503b4a9b8/", "registered": false, "linkedin": "", "blog": "http://www.dallasfreeman.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": ""}, "422187df3c45655b0dc2ae5de0710b27": {"username": "John C. Welch", "tumblr": "", "display_name": "John C. Welch", "url": "http://disqus.com/guest/422187df3c45655b0dc2ae5de0710b27/", "registered": false, "linkedin": "", "blog": "http://www.bynkii.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": ""}, "285a842c47c840939c3b7a06a6483fa7": {"username": "Hash", "tumblr": "", "display_name": "Hash", "url": "http://disqus.com/guest/285a842c47c840939c3b7a06a6483fa7/", "registered": false, "linkedin": "", "blog": "http://www.idespisemicrosoft.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": ""}, "e119c0aa62550b8619d988931d20deaa": {"username": "Reggie", "tumblr": "", "display_name": "Reggie", "url": "http://disqus.com/guest/e119c0aa62550b8619d988931d20deaa/", "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": ""}, "db029d33256b38009f5a4ba34aa30cc1": {"username": "John", "tumblr": "", "display_name": "John", "url": "http://disqus.com/guest/db029d33256b38009f5a4ba34aa30cc1/", "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": ""}, "adir1": {"username": "adir1", "tumblr": "", "display_name": "adir1", "url": "http://disqus.com/adir1/", "registered": true, "linkedin": "", "blog": "http://adir1.com", "remote_domain": null, "points": 2, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/25/1148/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3423bdecedb1e74120350de4e40c7acf": {"username": "Mujibur", "tumblr": "", "display_name": "Mujibur", "url": "http://disqus.com/guest/3423bdecedb1e74120350de4e40c7acf/", "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": ""}, "1bdbdaec827b1031faa9684f25b95d6d": {"username": "Ilya Lichtenstein", "tumblr": "", "display_name": "Ilya Lichtenstein", "url": "http://disqus.com/guest/1bdbdaec827b1031faa9684f25b95d6d/", "registered": false, "linkedin": "", "blog": "http://neomeme.net/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "302b7caa26bef5f5e1f2e543048bce27": {"username": "Jim", "tumblr": "", "display_name": "Jim", "url": "http://disqus.com/guest/302b7caa26bef5f5e1f2e543048bce27/", "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": ""}, "8f8ff21a67437febebc70afd19364e95": {"username": "Some Guy", "tumblr": "", "display_name": "Some Guy", "url": "http://disqus.com/guest/8f8ff21a67437febebc70afd19364e95/", "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": ""}, "b9b6176894f6857bcea768518a1f2372": {"username": "Jake", "tumblr": "", "display_name": "Jake", "url": "http://disqus.com/guest/b9b6176894f6857bcea768518a1f2372/", "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": ""}, "6415c7941fabebbeb3431749df694660": {"username": "Dantv", "tumblr": "", "display_name": "Dantv", "url": "http://disqus.com/guest/6415c7941fabebbeb3431749df694660/", "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": ""}, "39314b9561ab4752a37c3370fbf6ee5d": {"username": "Jason B.", "tumblr": "", "display_name": "Jason B.", "url": "http://disqus.com/guest/39314b9561ab4752a37c3370fbf6ee5d/", "registered": false, "linkedin": "", "blog": "http://geekspeaker.spaces.live.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": ""}, "20e43469533f37b64564c602932616ec": {"username": "Jinzang", "tumblr": "", "display_name": "Jinzang", "url": "http://disqus.com/guest/20e43469533f37b64564c602932616ec/", "registered": false, "linkedin": "", "blog": "http://carelesshand.net/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "776b621bdcd3709d8a74000c651fb2be": {"username": "Lincoln", "tumblr": "", "display_name": "Lincoln", "url": "http://disqus.com/guest/776b621bdcd3709d8a74000c651fb2be/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}}, "forum": {"use_media": true, "name": "Scobleizer", "streaming_realtime": true, "url": "scobleizer", "allow_anon_post": true, "reactions_enabled": true, "reply_position": 1, "show_avatar": true, "allow_anon_votes": false, "disqus_auth_disabled": false}, "realtime_enabled": true, "request": {"username": "", "is_global_moderator": false, "sharing": {}, "sort": 4, "forum": "scobleizer", "is_initial_load": true, "is_authenticated": false, "timestamp": "2009-12-17_04:38:10", "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": {"9678592": {"up_voted": false, "ip": "", "has_replies": false, "message": "I also disagree with software patents, but at the same time, I don't think this will go anywhere, especially in Europe.<br><br>For one, Linux the kernel is not owned by any one person, but the people. Yes, it's maintained by people, but under the GPL. Good luck suiing individuals, especially in other countries.<br><br>Thankfully, the EU takes a dim view to software patents.<br><br>In the final analysis, I think that MS is threatening this because they are becoming less and less relevant and they know it. They know they cannot beat free software in the marketplace fairly, so they are possibly resorting to litigious nonsense.<br><br>Good luck, MS. You cannot sue the GPL/BSD/MIT, etc licenses into submission. Accept the fact the world is changing and learn to just be another player in the marketplace. Your days as top dog are long gone.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_21:26:24", "killed": false, "user_key": "6e70064426c59bdc3a0f677657e9d13c", "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}, "9678593": {"up_voted": false, "ip": "", "has_replies": false, "message": "I suppose Microsoft suing to protect their patents is slightly more palatable than the companies whose sole purpose is to buy patents and sue anyone who comes close to violating them.<br><br>This would play better for Microsoft if they identified a portion of their patents that they feel should legitimately be freely used by anyone, and find a way to give them to the world.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_21:27:40", "killed": false, "user_key": "2030ecd403c772e4ad7e471e4e689e57", "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}, "9678594": {"up_voted": false, "ip": "", "has_replies": false, "message": "<i>the gestures that the leadership is sending</i><br><br>In these corporate mixed-signal games, just the threat is sometimes enough. But least thing Microsoft needs is more lawsuits, besides, they went thru a lawsuit-free spree, paying off everyone, and they want to kick up the dust all over again? I don't believe it, just a future threat, to prevent any PRESENT action.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_21:24:43", "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}, "9678595": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"Instead of creating killer products, he now wants to sue everyone else to keep THEM from creating killer products\"<br><br>I don't know, do you have proof that he wants to sue someone?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_20:59:10", "killed": false, "user_key": "1b4a803a20ad950d945a06235662cfce", "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}, "9678596": {"up_voted": false, "ip": "", "has_replies": false, "message": "Wow, the cold war is over, Patent Armageddon has arrived. This could get ugly.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_20:39:26", "killed": false, "user_key": "39314b9561ab4752a37c3370fbf6ee5d", "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}, "9678597": {"up_voted": false, "ip": "", "has_replies": false, "message": "@ anon<br><br>&gt;Doesn\u2019t it seem fair for them to be able to seek compensation for the results achieved from their R&amp;D efforts?<br><br>It does. I would, however, ask what results you are talking about. If they are spending $6 billion on R&amp;D you have to wonder whether they are spending wisely. R&amp;D South doesn't spend anything like that.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_20:40:32", "killed": false, "user_key": "a9ec20a0d56d3f848ef46b7a43e1f098", "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}, "9678598": {"up_voted": false, "ip": "", "has_replies": false, "message": "Funny how Microsoft has said that they have all this IP and all these patents being infringed by FOSS, yet they never seem to get around to saying what they are.<br><br>Sad. It shows how little confidence Ballmer has in his own game. Instead of creating killer products, he now wants to sue everyone else to keep THEM from creating killer products. What a pathetic little jackass he really is.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_20:37:15", "killed": false, "user_key": "422187df3c45655b0dc2ae5de0710b27", "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}, "9678599": {"up_voted": false, "ip": "", "has_replies": false, "message": "Offensive is the key word here.  MS doesn't have many friends these days, and they really don't need to be the new SCO.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_20:23:14", "killed": false, "user_key": "8f8ff21a67437febebc70afd19364e95", "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}, "9678600": {"up_voted": false, "ip": "", "has_replies": false, "message": "anon: And how are they going to get those royalties without legal action? Are you going to pay them?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_20:21:33", "killed": false, "user_key": "1bdbdaec827b1031faa9684f25b95d6d", "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}, "9678601": {"up_voted": false, "ip": "", "has_replies": false, "message": "They're not suing anyone.  Read the article -- they simply want royalties for their work.<br><br>Assuming you believe software is patentable, read on (if you don't, stop reading here.) Royalties are an accepted way to be compensated for your IP.  And, to those who say they haven't create anything patentable, consider their R&amp;D budget -- it's probably $6 billion per year by now.  Doesn't it seem fair for them to be able to seek compensation for the results achieved from their R&amp;D efforts?  It happens in every other industry.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_20:08:03", "killed": false, "user_key": "c510febb9bed68b5cc4a09f076701e0f", "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}, "9678602": {"up_voted": false, "ip": "", "has_replies": false, "message": "Sue sue sue baby, why should apple have all the fun.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_20:05:10", "killed": false, "user_key": "aba6e77dd14a6ba0fc2e7e5f07db3908", "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}, "9678603": {"up_voted": false, "ip": "", "has_replies": false, "message": "Chris DiBona, Google Open Source Programs Manager, will talk about \"A Year of Open Source at Google\" in New York on Wednesday 6:30 PM Google NYC 76 Ninth Avenue", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_19:31:07", "killed": false, "user_key": "9b646ff3eeda1f01cc2b1cb86d1634f9", "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}, "9678604": {"up_voted": false, "ip": "", "has_replies": false, "message": "That's a very outrageous action.<br><br>I hope that it's not true.  I recently got a job offer from MS and I was very excited about it.  But it seems that the image of the company is really tarnished.  In general, MS is perceived as a company that only copies and sue (which IS totally not true).  But you cannot change the perception of people...<br><br>Honestly, OOS and propriety software should be able to co-exist.  And OOS companies (even FSF) are pushing MS back to its innovative edge such as Silverlight.<br><br>In general, I agree that it's a strategic move to patent \"defensively\"... you never know who would be jealous of the large cash pile and starts suing with lawyers but not innovating with developers.  But patent offensively and then starts suing?  That's a very cheap move.  Even as a fanboy I gotta say that not EVERYONE needs to buy MS software.  We need to buy the BEST software that worth spending for.  Let's gear toward making the BEST software (and open source some of it so people know how smart you're instead of complaining how greedy you are).<br><br>Honestly, now I really have my doubts about working for MS.  I don't know how many college hires will read this, but, we all want to work for the BEST company, not the RICHEST nor the one with the MOST LAWYERS...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_19:23:02", "killed": false, "user_key": "8cdfdf764627dde61cb9996d3198ba73", "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}, "9678605": {"up_voted": false, "ip": "", "has_replies": false, "message": "Software patents need to be gotten rid of completely and big name people need to take a big-time stand against this kind of crap.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_19:07:41", "killed": false, "user_key": "712ade54d4ce7fdbc19f960a2407452c", "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}, "9678606": {"up_voted": false, "ip": "", "has_replies": false, "message": "Microsoft is seeing open source like Linux and Firefox as more and more of a threat- and instead of stopping open source by developing better software, they seem content to try to sue it out of existence.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_19:08:59", "killed": false, "user_key": "1bdbdaec827b1031faa9684f25b95d6d", "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}, "9678607": {"up_voted": false, "ip": "", "has_replies": false, "message": "It is rather sad that Microsoft's leadership decided to go along this path. It is sadder that this happens after Microsoft shook hands with Novel in an effort to \"recognize and support\" open source initiatives.<br><br>It is a little early to jump into conclusions as to what the effect of this decision (to fight for IP) might be, because Microsoft never really came forward with an actual list of patents being infringed by open source software. A number is a number (and like 235 they could just as easily say 1256 or 9), I want to read the cold hard facts.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_19:03:21", "killed": false, "user_key": "97b1890e780050e2538edf94967476ac", "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}, "9678608": {"up_voted": false, "ip": "", "has_replies": false, "message": "We will see how this one turns out, on one side we've got Microsoft with its patents and on the other side the Open Innovation Network supported by IBM, Philips, Sony, Oracle and some other companies. And they've got a patent portfolio which definitely is bigger, and entails some interesting stuff.<br><br>For one side I'm happy when they go along, as it will indefinitely assure that the EU will never get software patents. And i can already see some eyebrows frowning in Neelie  Smith Kroes's office.<br><br>Secondly, they will have to go to their own customers, telling them \"hey, you've got OSS running, on top of the licence you already pay we want X amount of license for OSS because it infringes on our patents... (I would like to see the faces of some CIO's and CFO's when that message comes along, and the decision about implementing Vista is a few days later on there desk..)<br><br><br>Thirdly, until the patent is validated in court, it's merely a threat.. And my take is that there will be a lot of prior art.<br><br>Fourth, up until now they've been telling us that FOSS isn't a threat, why go after something that doesn't pose a threat..<br><br>Fifth, it's never smart to let lawyers dictate which route you're company should take.....<br><br>Sixth, it will ensure that a lot of OSS will implement GPL3, and i doubt they will be very happy when that happens.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_03:03:51", "killed": false, "user_key": "d1b44a8368e7418bc4347a587f7f83b9", "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}, "9678609": {"up_voted": false, "ip": "", "has_replies": false, "message": "Well well well - we oss'ers have been expecting this and that Microsofts partners baystar, sco, and novell have been scr*w*d.<br><br>Robert - software patents are /dev/null in europe. Microsoft even threatened Denmark when they failed.  This means more oss in europe and less in america.<br><br>If you think patenting complier break points (you know prior art) is a good use of american patents then discuss the proper issue usa pto reform.<br><br>Ibm took Sco (really Microsoft) to the cleaners, MS then dumped Darl McBride.   The lesson here is that partnering with microsoft is a way to find yourself with no IT products.  Novell is going that way - the ceo of Novell recently said that all his companies products where rubbish.<br><br>I can live without the organisations of Sco,Novell and Microsoft.   So sue away.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_15:21:50", "killed": false, "user_key": "da29e90e3ee3e8f6d26e5b5453104362", "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}, "9678610": {"up_voted": false, "ip": "", "has_replies": false, "message": "Microsoft is doing so much well in last years and now this..<br><br>I can see Microsoft hatering coming back, as 1999/2000", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_15:11:36", "killed": false, "user_key": "d900da12c8f7d4057d1666dbbdfa9617", "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}, "9678611": {"up_voted": false, "ip": "", "has_replies": false, "message": "SCO FUD redux.<br><br>\"...Someday, for all countries that are entering WTO [the World Trade Organization], somebody will come and look for money to pay for the patent rights for that intellectual property. So, the licensing costs are less clear than people think today.\" - Steve Ballmer, Nov. 2004.<br><br>I guess the time has come.  Port25 and Microsoft \"openness\" indeed.<br><br>Disgusting, despicable morally &amp; ethically bankrupt monopoly.  Time for every independent FOSS developer to make a stand.  It may very well be your last.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_14:44:50", "killed": false, "user_key": "285a842c47c840939c3b7a06a6483fa7", "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}, "9678612": {"up_voted": false, "ip": "", "has_replies": false, "message": "It's a FUD game: Microsoft wants another Novell deal.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_14:06:50", "killed": false, "user_key": "0fc83e8400e7b2bded3f064871f8f24f", "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}, "9678613": {"up_voted": false, "ip": "", "has_replies": false, "message": "@50:<br><br>You say that like OSS is the only ones doing this. I know you say there's a reason why OSS hasn't been sued before, but how many times has MS been sued successfully for patent infringement? I don't know the exact number, but it's more than 0!<br><br>The biggest problem here is that you're right, products are patented up the wazoo, but it's not because they're innovative by any means.<br><br>Just recently MS added a feature to Visual Studio that has existed in another IDE called BlueJ since the mid 90s. Then, they patented it( <a href=\"http://www.bluej.org/mrt/?p=21\" rel=\"nofollow\">http://www.bluej.org/mrt/?p=21</a> ).<br><br>The patent office has no idea what's innovative and what isn't. A guy just the other day got a patent for what is essentially a doubly-linked list. I think I learned that in second semester university!<br><br>There are even attempts to change the patent system to \"not first to create but first to patent\". That is to say, you could do something really innovative and purposefully not patent it so the world can use it freely... then I could patent it and then sue you.<br><br>The problem is that the entire patent system (especially when it comes to software) is broken.<br><br>Microsoft are just as bad as OSS when it comes to stealing ideas, so don't imply that it's all one sided 'stealing'.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_13:51:41", "killed": false, "user_key": "776b621bdcd3709d8a74000c651fb2be", "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}, "9678614": {"up_voted": false, "ip": "", "has_replies": false, "message": "In the light of the infringement claim, I would like to highlight a quote from BillG to Steve Jobs.<br><br><br>\"Well, Steve, I think there's more than one way of looking at it. I think it's more like we both had this rich neighbor named Xerox and I broke into his house to steal the TV set and found out that you had already stolen it.\" (full article please see the link)<br><br>Had Xerox suited MS, BillG wouldn't be the richest person in the world.  So... for those Softies reading this, please revive the corporate conscience and stop the madness.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_13:39:19", "killed": false, "user_key": "6f6a88947cdf7c05959868c7f11cc5c6", "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}, "9678615": {"up_voted": false, "ip": "", "has_replies": false, "message": "<i>Please get some perspective. And if you love Open Source, go out and help promote it, help establish it as a viable alternative.</i><br><br>You do realize that this patent threat from Microsoft is attempting to kill that idea, right?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_12:39:52", "killed": false, "user_key": "422187df3c45655b0dc2ae5de0710b27", "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}, "9678616": {"up_voted": false, "ip": "", "has_replies": false, "message": "<i>\"Sad. It shows how little confidence Ballmer has in his own game. Instead of creating killer products, he now wants to sue everyone else to keep THEM from creating killer products. What a pathetic little jackass he really is.\"</i><br><br>Welch,<br>With the current situation, creating a killer product would be useless since OSS devs would clone it and give it away for free, even if it were patented up the wazoo.<br><br>The fact is, OSS devs do violate patents and licenses with impunity.  You're a card-carrying member of the Apple fan club, right?  Then let me put this in terms you can relate to.  Apple charges users $10 for an MPEG2 plugin for their QuickTime player, as a way to pay the MPEG2 license fee (passing the fee to the consumer).  Meanwhile, the VideoLAN devs don't bother paying the MPEG2 license fee for their VLC media player.  So Apple honors the MPEG2 license while VideoLAN does not.<br><br>A huge amount of OSS software violates patents/licenses.  They've been able to get away with it because it's not worth  the effort to do anything about some guys in their garage.  But once big players like IBM, Red Hat, etc, start funding them, shipping their products, and/or making money off of those products, then don't be surprised if the license and patent holders come knocking on the door.  The garage-developer working in his spare time needn't worry, he's still too small-fry do deal with (e.g. VideoLAN).  But the big guys that make money on license-violating software should pay the royalties due to the patent holders.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_12:39:34", "killed": false, "user_key": "4a20476223313a73c880051285dd8804", "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}, "9678617": {"up_voted": false, "ip": "", "has_replies": false, "message": "Welch, why do you think I think I need your approval for validation of anything?  Does your ego know no bounds?<br><br>Welch, your only purpose for me is to serve as entertainment, nothing more.  Not validation or approval, but entertainment.  Entertainment of the sort that the court jester provides when playing the \"fool\" for the royal court.  I know that hurts your ego, but them's the facts.<br><br>Now, are you a legit tech journalist (I've seen you pay the role in your writings elsewhere), or are you the blowhard you act as here, on Scoble's blog?  Are you the knowledgeable tech guy or the ill-mannered, ill-tempered, deranged buffoon that's deluded himself into believing he's the smartest guy in the room?<br><br>I'd say you're both.  That you're a buffoon is evidenced by your writings here.  As for your tech journalism elsewhere, well, the fact is, there are two categories of tech journalists: Dvorks and Udels.  You're of the former.  And that is the category of tech journalists that are quite ignorant of the field that they cover, and are given to axiomatic assertions, proclamations, declarations, and brook no opposition.  And when faced with opposing opinion, they ignore it, or result to handwaving, misdirection, and finally, insults, all the while maintaining an air of superiority.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-16_01:38:01", "killed": false, "user_key": "d0b3f1a838fe80ab417445f60cd71f27", "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}, "9678618": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hmmm. I read every comment on this thread so far, and there seems to be a hell of a lot of gun jumping going on.<br><br>In every argument about Microsoft and Open Source Software you get these massive extremes of opinion. OSS will kill Microsoft stone dead. Microsoft wants to shaft OSS and stifle innovation.<br><br>Instead of sitting at your computer with your knees jerking, why not get out and prove (to real people, not us geeks) how useful FOSS can be. Convince your pal with a small business to switch to Linux and OpenOffice. Or something like that. Start advocating OSS and people will use it.<br><br>My wife now refuses to use Windows, she's using Kubuntu with network storage on an MS Server. The more people who use Open Source, the less will fear it and it'll gain the traction it needs.<br><br>And Microsoft won't die overnight, if it dies at all. There are plenty of suits and resellers who seek the reassurance of that little multi-coloured flag that says Windows. Plenty of engineers who crave that MCSE for their CV.<br><br>Please get some perspective. And if you love Open Source, go out and help promote it, help establish it as a viable alternative.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_09:22:08", "killed": false, "user_key": "906aff1690b89e032ae9ea1214dda28a", "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}, "9678619": {"up_voted": false, "ip": "", "has_replies": false, "message": "just read this article from Mary J. Foley over on ZDnet <a href=\"http://blogs.zdnet.com/microsoft/?p=437\" rel=\"nofollow\">http://blogs.zdnet.com/microsoft/?p=437</a><br><br>It seems to be an attack on GPL v3 and the FSF.<br><br>It just makes me wonder they want to get into this PR fight with the FSF. Microsoft might be able to use it's money, but on the other hand the FSF has lots of people who are willing to aid them in a counter offensive. (think about the European offensive against software patents..)<br><br>The one that's most likely to be overblown by negative PR will be Microsoft. It's like opening pandora's box. Countries without software patents will think twice before implementing them.. There will be companies that refuse to pay and wait for the lawsuit.. A counter suit from the OIN could be looming which have a lot more patents on hand to protect Linux..<br><br>just to much stuff that can hurt them. If I would be stock owner, i wouldn't be really that happy. In the end most lawsuits only hurt the stock price.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_08:59:30", "killed": false, "user_key": "d1b44a8368e7418bc4347a587f7f83b9", "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}, "9678621": {"up_voted": false, "ip": "", "has_replies": false, "message": "Those who can compete, compete. Those who can't, litigate. This is the last cry of the mastodon as it sinks into the La Brea tar pits.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_08:32:04", "killed": false, "user_key": "20e43469533f37b64564c602932616ec", "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}, "9678622": {"up_voted": false, "ip": "", "has_replies": false, "message": "Lots of people in America have guns, just like lots of big companies have patents that touch each others' products. LOTS of patents touch Windows and other Microsoft products.<br><br>Even though a lot of people have guns, what purpose would it serve if everybody started shooting each other \"because they can\"?<br><br>Microsoft in essence is saying, we have a gun with bullets, and now we are detailing who we'd like to kill if only our threats weren't idol in nature.<br><br>That's EXACTLY what MS lawyers are doing. They are no different or better than the Iraqi minister of information.<br><br>In a year or so even little me will have 2 patents that could easily sink MS products. The point being that once the big guns start shooting at MS over IP again, the little ones will fire as well, those companies who have no products MS can fire back on with their patents like Eolas. That would be a good thing. It would be enough to bankrupt the company outright.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_08:13:20", "killed": false, "user_key": "e8d0dde0c4b3d65b72a92bba1fee5aa7", "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}, "9678623": {"up_voted": false, "ip": "", "has_replies": false, "message": "Patents are gay, the worst patent and one of the most effective ones at the moment is held by MP3 technologies, a patent of a digital file played by a mobile device.  So from mobiles phones to iPods are screwed.<br><br>There should be a ban on patents in any industry.  In the past, patents were regarded as not necessary however it has now become a real estate issue on owning patents.<br><br>In the future we will look back to today and see how it has affected our civilisation sooo so much.  Imagine if a patent was created for wheels and tires, that would have screwed everything up, just like how we are screwing everything up now.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_07:51:49", "killed": false, "user_key": "088d9b7f13cdeb73bcfff50503b4a9b8", "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}, "9678624": {"up_voted": false, "ip": "", "has_replies": false, "message": "Come to think of it, Ballmer's strategy, although distasteful and disgusting, is brilliant. Drive all FOSS vendors but the ones who will play ball out of business, then force the ones who sign agreements to dance to your tune.<br><br>Eventually, all you have is Windows, and you didn't have to do any of that silly \"innovating\" or \"product improvement\".", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_07:48:00", "killed": false, "user_key": "422187df3c45655b0dc2ae5de0710b27", "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}, "9678625": {"up_voted": false, "ip": "", "has_replies": false, "message": "<i>I\u2019m quite simply amazed. Amazed that MS could be that stupid, that they could so openly say \u201cF*** you\u201d to the developers who support their platform.</i><br><br>Not when your livelihood revolves around .NET and VS. Microsoft has always worked to lock in its users and developers so that they were unable to use or work with any other platform. That way, when you felt both of ballmers hands on your shoulders, your only option was to brace yourself and say \"THANK YOU SIR! MAY I HAVE ANOTHER!\"", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_07:45:03", "killed": false, "user_key": "422187df3c45655b0dc2ae5de0710b27", "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}, "9678626": {"up_voted": false, "ip": "", "has_replies": false, "message": "I'm quite simply amazed. Amazed that MS could be that stupid, that they could so openly say \"F*** you\" to the developers who support their platform.<br><br>OSS is one of the biggest ways that fresh blood makes names for themselves, and get involved with something big, something real, that will make a difference to actual end users. Trying to kill this, is unbelievably stupid. Developers are the only people who matter for the long-term survival of *any* platform - and developers respect innovation, not strong-arming lawyers.<br><br>I can't believe what I'm reading. I really cannot believe it. I'm seriously considering changing my career direction over this, and I'm not a fresh college graduate.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_07:35:45", "killed": false, "user_key": "2facd380c5bdfbaa1a1e9c657578f135", "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}, "9678627": {"up_voted": false, "ip": "", "has_replies": false, "message": "skc: just because it hasn't been done before doesn't mean it won't be done in the future.<br><br>I'll be happy to interview Ballmer or anyone else in leadership at Microsoft and will put that full interview out without editing it so you can see everything they say. If they have no plans to litigate, they can say that on video and calm everyone down. My phone number is on my blog.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_05:13:22", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9678628": {"up_voted": false, "ip": "", "has_replies": false, "message": "Wow, you people are wierd. They have no history of suing over patent infringment (I can only think of one case), so umm, why should they start now exactly? Are they struggling for profits? No. Are they losing marketshare in the areas relevant to them? No.<br><br>Think, people, think.<br><br>Ballmer wants another Novell style deal is all.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_03:59:14", "killed": false, "user_key": "1b4a803a20ad950d945a06235662cfce", "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}, "9678629": {"up_voted": false, "ip": "", "has_replies": false, "message": "Jake: so far it's just posturing. The first suit hasn't been filed yet. Let's worry -- a little bit. But let's not get ahead of reality either, OK?<br><br>But, I don't remember saying Microsoft wasn't going to compete and wasn't going to take advantage of its patents or other things it has in the market place. Last I looked a patent is still something that our system reveres. A patent basically hands an inventor a monopoly for 17 years. Microsoft wouldn't be doing its job if it didn't protect its patent portfolio.<br><br>Now, does it really have proof that its patents have been infringed on? Then it should do what Tim Bray said today: go to court or shut up.<br><br>The gestures that the leadership is sending to the marketplace sure aren't increasing its PR value, that's for sure.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_05:11:29", "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}, "9678630": {"up_voted": false, "ip": "", "has_replies": false, "message": "They are just making noise to show themselves relevant. They just cannot do it because FSF can countersue them and put them through the same \"ordeal\". It is a plain case of Microsoft bullshitting in desperation. Probably they think that they can bring down google by attacking the open source software that make up Google's infrastructure. Well, it is just the desperate whine they are making before they go down.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_02:24:41", "killed": false, "user_key": "04f327f032df043846baa7474b8e6aff", "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}, "9678631": {"up_voted": false, "ip": "", "has_replies": false, "message": "You know all those years you told us Microsoft was different? That they weren't evil, crazy monopolist hell-bent on squashing innovation in any production competing with them?<br><br>Turns out, you were wrong. :(<br><br>Today, we saw the same old monopolist, just twisted a little -- now he's trying to use the broken US patent system to squeeze money out of big companies and to scare small ones into using Microsoft products.<br><br>If you're a developer, does this give you the warm fuzzies about developing on top of Silverlight? If you're a user, doesn't it make you want to go run out and install Ubuntu?  If you care about the future of innovation on the web, do you think Microsoft is helping?<br><br>Ugh. It's like every paranoid /. kiddie's fantasy is coming real -- I can't wait to see the headlines the first company Microosft sues for not using an 'approved' Linux distro.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_05:05:15", "killed": false, "user_key": "b9b6176894f6857bcea768518a1f2372", "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}, "9678563": {"up_voted": false, "ip": "", "has_replies": false, "message": "<i>Sad to see John C. Welch go once more into the gutter when he\u2019s clearly losing an argument. Welch, you\u2019re supposed to be so much more knowledgeable than everyone else here (your a tech journalist, afterall *rolls eyes*), so why don\u2019t you act like it? Present your arguments without the snide remarks, without the insults, and have the guts to admit when someone you disagree with has a valid point.</i><br><br>Oh, I'm sorry, did I miss the part where I have to follow a higher standard than say, you Pepper? At least I went out and found actual sources for both sides of the VLC issue. Your research is? Hmm?<br><br>Roll your eyes all you like, where's you contribution to the overall knowledge base? Care to show us your contribution to the great Google Tech Support Database in the clouds? I'd love to see it. Bet it's full of awesome. Or do you only exist to play moralizing prat in other people's work?<br><br>Or is it that you actually have no real contribution other than bitching about how mean and bad I am. Man, it would suck for you if I and a lot of people stopped commenting, because then you'd have to have an actual original thought.<br><br>On the valid point thing, why do you need me to...well, validate your point. If your point is valid, it carries that distinction with or without my approval. Maybe if you had more confidence in your game, you'd not need other people's approval.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-15_16:13:29", "killed": false, "user_key": "422187df3c45655b0dc2ae5de0710b27", "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}, "9678564": {"up_voted": false, "ip": "", "has_replies": false, "message": "Sad to see John C. Welch go once more into the gutter when he's clearly losing an argument.  Welch, you're supposed to be so much more knowledgeable than everyone else here (your a tech journalist, afterall *rolls eyes*), so why don't you act like it?  Present your arguments without the snide remarks, without the insults, and have the guts to admit when someone you disagree with has a valid point.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-15_15:29:19", "killed": false, "user_key": "d0b3f1a838fe80ab417445f60cd71f27", "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}, "9678565": {"up_voted": false, "ip": "", "has_replies": false, "message": "<i>Funny how MS haters (e.g. you), cheer when microsoft gets sued, but take umbrage that they might finally decide to fight back by enforcing their own patents.</i><br><br>Funny how Microsoft has yet to release any info on all this IP being infringed upon, isn't it. Kind of pulling a Joe McCarthy, and trying to make people fear that they MIGHT be in trouble by using linux.<br><br><i>BTW, your defense of VLC was pathetic, to say the least. Unless you\u2019re saying that the official OSS position is that responsibility for patent royalties should be passed from OSS devs to the users.</i><br><br>It wasn't a defense at all. That would require me to say VLC is handling it correctly. To provide the other side of the story, I did a little research, (Funny how in the midst of your slavering, you couldn't be bothered to make a phone call), and called up MPEGLA's licensing office in D.C. They disagree with VLC's position in the extreme, and according to them have attempted to contact VideoLAN many times to deal with this. But they also see the complications. As the MPEGLA folks said \"On the one hand, they're getting the technology used by more people. On the other hand, they're not handling the license correctly\". It's not a simple issue. How do you license when there's no money being made? It's still being hammered out.<br><br><i> Even you can see how disingenuous that stance is. You and OSS devs know damn well that users aren\u2019t going to do that (even those that would be inclined wouldn\u2019t know to whom or how to pay the royalty). But this isn\u2019t the first time you\u2019ve taken an intellectually dishonest position. It\u2019s your m.o.</i><br><br>Yes, yes, just like your MO is to do no research and just foam at the mouth when you see my name. However, there's a difference. MPEGLA is stating the specific problem, and the problem they have with VideoLAN's policy. So, regardless of the eventual solution, both sides have stated their views publicly, or will do so publicly. (The MPEGLA people were quite nice about it, not defensive, not anti- or pro- anything, quite understanding about the condundrum involved with FOSS and their licensing models.) Microsoft will not come close to stating what the \"list of patents\" actually are, so no one can possibly resolve anything.<br><br><i>And your comment regarding Apple\u2019s MPEG2/QT policy was overly-defensive, as I was not attacking them for it. Just pointing out that they abide by the MPEG2 license while VLC (and many OSS video player devs) fails to do so. (That you feel the need to defend Apple at all times, even when they aren\u2019t being attacked, is quite telling.)</i><br><br>BWAAAAHAHAHA. Your only response mode is as Microsoft fanboyattackdog, and now you're crying \"Poor Me\" over the response it gets you. Wahh, you want some cheese with that?<br><br>I can point out publicly available instances where I praise Microsoft and tell Apple they're being jerks. Can you show the same, where you praise Apple and tell Microsoft they're being jerks? Or is the fanboy hand up your backside not allowing your muppet self to do that?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-15_14:03:50", "killed": false, "user_key": "422187df3c45655b0dc2ae5de0710b27", "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}, "9678566": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"You and OSS devs know damn well that users aren\u2019t going to do that (even those that would be inclined wouldn\u2019t know to whom or how to pay the royalty).\"<br><br>Oh really? Why? Do M$ fanboys always assume that OSS users are dishonest? I spot a trend...<br><br>\"That you feel the need to defend Apple at all times, even when they aren\u2019t being attacked, is quite telling.\"<br><br>That you feel the need to attack Apple or John's positive attitude towards it even when when it was completely unwarranted is also telling.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-15_11:16:45", "killed": false, "user_key": "f5f92aa64eb658ae473e347339e7dd28", "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}, "9678567": {"up_voted": false, "ip": "", "has_replies": false, "message": "@69<br>Welch,<br>Funny how MS haters (e.g. you), cheer when microsoft gets sued, but take umbrage that they might finally decide to fight back by enforcing their own patents.<br><br>BTW, your defense of VLC was pathetic, to say the least.  Unless you're saying that the official OSS position is that responsibility for patent royalties should be passed from OSS devs to the users.  Even you can see how disingenuous that stance is.  You and OSS devs know damn well that users aren't going to do that (even those that would be inclined wouldn't know to whom or how to pay the royalty).  But this isn't the first time you've taken an intellectually dishonest position.  It's your m.o.<br><br>And your comment regarding Apple's MPEG2/QT policy was overly-defensive, as I was not attacking them for it.  Just pointing out that they abide by the MPEG2 license while VLC (and many OSS video player devs) fails to do so.  (That you feel the need to defend Apple at all times, even when they aren't being attacked, is quite telling.)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-15_10:54:17", "killed": false, "user_key": "4a20476223313a73c880051285dd8804", "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}, "9678568": {"up_voted": false, "ip": "", "has_replies": false, "message": "Funny how Microsoft gets sued, and pretty successfully too, quite a few times over the years for patent violations, and is now suddenly decrying patent violations.<br><br>\"I'm shocked, shocked I tell you to find that there is gambling in this establishment!\"<br><br>\"Your winnings Inspector\"<br><br>\"Ah, thank you\"", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-15_08:09:42", "killed": false, "user_key": "422187df3c45655b0dc2ae5de0710b27", "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}, "9678569": {"up_voted": false, "ip": "", "has_replies": false, "message": "If Microsoft have to pay a few billion $ a year to use other companies software patents, why should MS have to let others (Open Source or Not) use their patents royalty free? It's about time they start to pursue patent violations after spending $5-7 billion per year on R&amp;D. Of course there wil probably be cummunity outcry to the DOJ that this is unfair business practices and they are tryig to hurt RedHat, Ubuntu, and every other flavor of Linux or force agreeemnts similar to Novel's.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-16_18:31:17", "killed": false, "user_key": "7299c1ef9c67d75e92a121ca471f98a7", "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}, "9678570": {"up_voted": false, "ip": "", "has_replies": false, "message": "Your use of the Latin abbreviation \"IE\" is incorrect.  The mid-sentence form should be delineated by commas, be lower case, and include periods.<br><br>See: <a href=\"http://ancienthistory.about.com/od/abbreviations/f/ievseg.htm\" rel=\"nofollow\">http://ancienthistory.about.com/od/abbreviation...</a><br><br>Apologies for being pedantic about your use of the language, I do enjoy your posts.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_02:14:47", "killed": false, "user_key": "db029d33256b38009f5a4ba34aa30cc1", "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}, "9678571": {"up_voted": false, "ip": "", "has_replies": false, "message": "This would be a huge mistake for MS to make. They may think they're immune to what the market wants, but Intel found out the hard way when they tried to force RAMBUS down the market's throat, and look how many billions *that* cost them. The market doesn't exactly love Vista, either, but they're still in denial about that as far as I can see. And Digg recently found out the hard way what happens when you try to force things on people they don't want.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_01:17:12", "killed": false, "user_key": "c1eadb1264fe61e553bf2bc4df7574b0", "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}, "9678572": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"Microsoft up to this point has used patents defensively (i.e., only if sued themselves)\"<br><br>Huh?  How does that explain how they've been threatening their own customers using GNU/Linux since 2004?<br><br>\"Some customers actually entered into direct patent licenses with Microsoft at that point, Smith says, including some \"major brand-name companies\" in financial services, health care, insurance and information technology. (He says they don't want to be identified, presumably because they fear angering the FOSS community.)\"<br><br>Hitachi, Samsung are known to have done this in 2007 out of fear of MS.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-15_02:46:57", "killed": false, "user_key": "302b7caa26bef5f5e1f2e543048bce27", "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}, "9678573": {"up_voted": false, "ip": "", "has_replies": false, "message": "@Welch<br><br>Now, to go off topic, let's move on to your your beloved Apple's MPEG2 scam (fleecing its users).<br><br>According to you, they make $7.50 per MPEG2 codec.  I'd have more respect for them if they were doing this just to cover the MPEG2 license, but it does appear that this is yet one more case of Jobs milking his userbase for all their worth.  And to make matters worse, OSX already comes with an MPEG2 codec that is used to power the DVD player; why can't Apple let their QT player use the same codec?(On Windows, once an MPEG2 codec is installed, all players that use DirectShow filters can use it; the license need only be paid for once.)  The reason Apple doesn't allow QT to use the already installed MPEG2 codec that the DVD player uses is that he'd miss opportunity to milk his fanbase.<br><br>And you defend this with your \"that\u2019s not a bad bit of profit\" remark.  It's sad that you care more about Jobs' bottom line than his users, of which you are one.  Tell me, do you get the warm and fuzzies whenever you hand Jobs another dollar?  Do you get a high when paying $10 just to get the QT player to play videos at full screen, because you know that you've made Jobs just a bit richer, not caring about your own pocket or the pockets of Mac users?  It truly amazes me that you and your ilk defend Apple making $7.50 per MPEG2 codec (and likely defend the $10 to get QT to play fullscreen), when you would have been the first to loudly trash Microsoft for doing the same.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-15_02:48:46", "killed": false, "user_key": "e119c0aa62550b8619d988931d20deaa", "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}, "9678574": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"Assuming you believe software is patentable, read on (if you don\u2019t, stop reading here.) Royalties are an accepted way to be compensated for your IP. And, to those who say they haven\u2019t create anything patentable, consider their R&amp;D budget \u2014 it\u2019s probably $6 billion per year by now. Doesn\u2019t it seem fair for them to be able to seek compensation for the results achieved from their R&amp;D efforts? It happens in every other industry.\"<br><br>OMG you mean the convicted illegal monopolist faces actual competition and therefore must compete with lowering prices and increasing innovation?????  Nooooo!!!!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-15_02:49:34", "killed": false, "user_key": "302b7caa26bef5f5e1f2e543048bce27", "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}, "9678575": {"up_voted": false, "ip": "", "has_replies": false, "message": "Welch, did you even comprehend what you posted from the VLC site?  Did you understand the ramifications of it?  Or were you in such a hurry to post that you didn't think through what it really meant.  Because it goes to prove Microsoft's argument.<br><br>Let me quote what you quoted regarding VLC:<br><i>\"With many products the producer pays the license body (in this case MPEG LA (<a href=\"http://www.mpegla.com\" rel=\"nofollow\">http://www.mpegla.com</a>)) so the user (commercial or personal) does not have to take care of this. VLC (and ffmpeg and libmpeg2 which it uses in<br>most of these cases) cannot do this because they are Free and Open Source implementations of these codecs. The software is not sold and therefore the end-user becomes responsible for complying to the licensing and royalty<br>requirements. You will need to contact the licensor on how to comply to these licenses.\"</i><br><br>They are simply carrying the OSS party line, which is, \"We violate patents without fear of being sued because we have no money.  Patent holders, please go after our users instead of us.\"<br><br>These guys are clearly in violation, and admit it.  They could easily accept donations to cover the licenses, but can't be bothered.  And MPEG2 is just *one* of the licenses they violate.  WMV is another.  Flip4Mac pays the WMV license, VLC does not.  Why?  Because VLC is an OSS dev, and OSS devs Do NOT GIVE A DARN ABOUT HONORING PATENTS/ROYALTY FEES.  Which is Microsoft's position.<br><br>Microsoft was ordered to pay 1.5 billion for violating the mp3 license (when they weren't even violating it with malice; it was ruled that those they indemnified violated it by licensing it from the wrong party; give me a break), and Microsoft haters cheered.  They want Microsoft, Flip4Mac, etc to honor patents, but feel that OSS is too pure for such triflings.<br><br>And you seem to defend the position that the users should be sued rather than the devs of the patent-violating software.  A truly dispicable position for you to take; and you have the gall to call Ballmer pathetic?  Look in the mirror.<br><br>Now, we see that VLC's only defense is that they have no money, so can't (and don't fear) being sued.  But Red Hat, et al, do have plenty of money, so they should be held liable for patent violation.  Do you at least admit that?  Or is \"I hate Microsoft\" your only basis for whatever position you take, consistency be damned?<br><br>(And I'll go further and say that Red Hat, et al, should be held for current and past violations, so that even if they alter the code to get around the patent, they still have to pay up (this happens with closed source devs all the time; OSS devs should be held to the same standard (particularly those that make plenty of money and can't use charity as a defense)).)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-15_02:45:03", "killed": false, "user_key": "e119c0aa62550b8619d988931d20deaa", "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}, "9678576": {"up_voted": false, "ip": "", "has_replies": false, "message": "Most \"patented\" software was either directly listed or indirectly described back in 1970 or earlier educational books for Computer Science.<br>I agree completely with everyone quoted here -- software patents are ridiculous and need to be gotten rid of, ASAP.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_01:01:57", "killed": false, "user_key": "adir1", "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}, "9678577": {"up_voted": false, "ip": "", "has_replies": false, "message": "From the article: \"Microsoft seemingly barred from striking pacts with distributors, only one avenue appears open to it: paying more friendly visits to its Fortune 500 customers, seeking direct licenses.\"<br><br>Microsoft - I hope - knows it is not wise to start the patent armageddon using law suits, because there is too much to figure out yet. 235 patents were identified and they are working on strategies to use that knowledge to get IP royalties but it is still a work in progress IMHO.<br><br>Microsoft is starting to understand open source so they are trying to learn by doing but free software is still so difficult to understand for them and this is where they are testing general reactions with this type of interviews.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_00:15:23", "killed": false, "user_key": "15fd11b2c73ac95c3552e1d3a0c2b40f", "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}, "9678578": {"up_voted": false, "ip": "", "has_replies": false, "message": "<i>So is Microsoft going to start suing? I seriously, doubt it. They\u2019ve also recently started \u201cloving\u201d open source - look at their Port25 effort.</i><br><br>That definitely deserves the quotes. Talk about winning the award for meaningless marketing site of the year.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_23:48:40", "killed": false, "user_key": "422187df3c45655b0dc2ae5de0710b27", "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}, "9678579": {"up_voted": false, "ip": "", "has_replies": false, "message": "I've always put my trust into SteveB to run Microsoft into the ground, and he has delivered. Has he ever delivered a master stroke like this!<br><br>This is it, Microsoft has declared total war on their customers, and wants to sue everyone not using SUSE. Through today's act, Microsoft have declared themselves to be outside the civilized society, and they will be dealt with accordingly, as has been SCO.<br><br>Microsoft won't be around by 2012.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-15_01:27:20", "killed": false, "user_key": "69acecf023089c08c9309915c53a885f", "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}, "9678580": {"up_voted": false, "ip": "", "has_replies": false, "message": "@25<br><br>\"So is Microsoft going to start suing?\"<br><br>That would be fun to watch. So many disparate patents are out there the touch Windows components it's not even funny. By the time it's over Bill Gates will be eligible for emergency relief funding from his own foundation.<br><br>Once the bigger ones starts suing in retaliation, the smaller ones will get bolder like Eolas, and then all hell will break loose.<br><br>It would be the best thing for Linux evAr.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_23:24:55", "killed": false, "user_key": "e8d0dde0c4b3d65b72a92bba1fee5aa7", "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}, "9678581": {"up_voted": false, "ip": "", "has_replies": false, "message": "I keep hearing that \"people deserve free software,\" can someone tell me why??? If that is true then we also deservve free food, free clothes, free housing, free healthcare, free computers, free gasoline...etc.<br>Why should anyone work anymore? I can tell you that I am quitting my programming career. It is getting harder to make money, there is plenty of free software out there already for all needs.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-16_15:00:10", "killed": false, "user_key": "6415c7941fabebbeb3431749df694660", "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}, "9678582": {"up_voted": false, "ip": "", "has_replies": false, "message": "@14<br><br>\"It\u2019s pointless. They could kill, say, RedHat\"<br><br>Ballmer was actually negotiating with Red Hat. He had offered them the same deal as Novell, and they threw it back in his face. He went to Novell as a last resort, then lied to them about an exclusivity clause in order to get them to sign it. Saying it was an exclusive deal, then 2 days before closing, reneged on that, when the deal was all but done.<br><br>Microsoft tried heavily to buy out Linux so the DOJ couldn't intervene, but the companies that put up these communities did not cave in. Except Novell, and their people are leaving now.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_23:01:58", "killed": false, "user_key": "e8d0dde0c4b3d65b72a92bba1fee5aa7", "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}, "9678583": {"up_voted": false, "ip": "", "has_replies": false, "message": "Well, Microsoft has always been thinking they've got patents that Linux violates. In fact, do you recollect SCO vs. IBM? That looks like a war that ends with one company becoming bankrupt ;-)<br><br>Software patents itself, are silly.<br><br>Novell recently got into bed with Microsoft to \"avoid\" such patent problems. Of course, they did it to survive, and everyone generally views them as a sell out...<br><br>Keep in mind that if you buy Red Hat, you're protected against lawsuits. FWIW, that also applies to Novell these days.<br><br>So is Microsoft going to start suing? I seriously, doubt it. They've also recently started \"loving\" open source - look at their Port25 effort.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_23:03:28", "killed": false, "user_key": "9f3e26ecb3362dad1217bb6a858147a5", "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}, "9678584": {"up_voted": false, "ip": "", "has_replies": false, "message": "@14<br><br>Perfectly said. MS knows its castle is surrounded and that they are being starved out. This is a tactic that plainly shows desperation.<br><br>Free software is a good idea and will flourish despite anything MS does. People deserve free software both in freedom and in price.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_22:50:41", "killed": false, "user_key": "6e70064426c59bdc3a0f677657e9d13c", "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}, "9678585": {"up_voted": false, "ip": "", "has_replies": false, "message": "OK, I wasn't fair to Fortune magazine, they actually had most of the facts, it's just your short article that misrepresents them.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_22:50:49", "killed": false, "user_key": "e8d0dde0c4b3d65b72a92bba1fee5aa7", "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}, "9678586": {"up_voted": false, "ip": "", "has_replies": false, "message": "As a member of the FSF, who heard a speech from Stallman and Moglen on this very subject about 2 months ago, I would say you are way off. Next year I challenge you to go with me to the FSF meeting so you know what you're talking about when you speak about this subject again.<br><br>You forget SO easily who is behind Linux, and how many patents THEY have. MANY, MANY, MANNNYYYYYY more than Microsoft will ever have. They are the undisputed patent kings. And if Microsoft starts shooting, they will be shot dead worse than Alcatel-Lucent, Eolas, and company combined.<br><br>The only reason Microsoft did the patent deal, first with Red Hat who rejected it, then with Novell, is to push the projection of danger.<br><br>Ultimately that is all they have. First they tried to fund SCO, then reneged:<br><a href=\"http://www.ksl.com/?nid=148&amp;sid=555641\" rel=\"nofollow\">http://www.ksl.com/?nid=148&amp;sid=555641</a><br><br>When that didn't work, and Martin Taylor's get the facts with the forged white papers didn't work, they set up <a href=\"http://port25.technet.com\" rel=\"nofollow\">http://port25.technet.com</a> and quickly made a deal to do the IP coverage and open a lab with Novell to \"match\" the OSDL. Since then the Samba project leader left Novell, and so did their top developer:<br><a href=\"http://rlove.org/log/\" rel=\"nofollow\">http://rlove.org/log/</a><br><br>Unfortunately, you are not in the know, and neither is Fortune. But you could be, and you refuse.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_22:47:51", "killed": false, "user_key": "e8d0dde0c4b3d65b72a92bba1fee5aa7", "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}, "9678587": {"up_voted": false, "ip": "", "has_replies": false, "message": "Now is when I laugh at all the Microsoft fanboys who kept telling me \"but Microsoft has no history of offensive patent litigation\".<br><br>See, this is why you don't trust a company like them as far as you can throw them. Pathetic.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_22:33:11", "killed": false, "user_key": "8d00a3b94ad158920ca8980269ca57ac", "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}, "9678588": {"up_voted": false, "ip": "", "has_replies": false, "message": "It's pointless. They could kill, say, RedHat, or maybe even Sun (and we'd miss them both) but they can't kill independent developers all over the world. Software patents are basically a US invention, not recognized anywhere else (except maybe Japan...)<br><br>\"And, to those who say they haven\u2019t create anything patentable, consider their R&amp;D budget \u2014 it\u2019s probably $6 billion per year by now. Doesn\u2019t it seem fair for them to be able to seek compensation for the results achieved from their R&amp;D efforts?\"<br><br>Of course they deserve compensation. It's called copyright, not patents. You can't patent music or recipes, just like you can't patent software in most of the world.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_22:28:01", "killed": false, "user_key": "a6d980c7587d9ebbd1c3820e0f0092e7", "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}, "9678589": {"up_voted": false, "ip": "", "has_replies": false, "message": "<i><b>Sad. It shows how little confidence Ballmer has in his own game. Instead of creating killer products, he now wants to sue everyone else to keep THEM from creating killer products. What a pathetic little jackass he really is.\u201d</b><br><br>Welch,<br>With the current situation, creating a killer product would be useless since OSS devs would clone it and give it away for free, even if it were patented up the wazoo.</i><br><br>Right. So where's the dead on free knockoffs of iLife? Photoshop? (Don't even start with GiMP, that's a crackhead's version of photoshop, with TEH UGLEE UI) Final Cut Pro? Premiere Pro? I don't mean applications that KIND of do the same things, but ones with the same level of fit and polish, and are free. Oddly enough, you don't see many. Wonder why that is?<br><br><i>The fact is, OSS devs do violate patents and licenses with impunity. You\u2019re a card-carrying member of the Apple fan club, right? Then let me put this in terms you can relate to. Apple charges users $10 for an MPEG2 plugin for their QuickTime player, as a way to pay the MPEG2 license fee (passing the fee to the consumer). Meanwhile, the VideoLAN devs don\u2019t bother paying the MPEG2 license fee for their VLC media player. So Apple honors the MPEG2 license while VideoLAN does not.</i><br><br>Apple also eats all the MPEG 4 costs, and passes none of that along, what's your point. Apple is making $7.50 on every MPEG2 plugin you download. that's not a bad bit of profit.<br><br>On VLC, they kind of do a bit of dancing around it, but address this issue here: <a href=\"http://download.videolan.org/doc/faq/en/videolan-faq-en.pdf:\" rel=\"nofollow\">http://download.videolan.org/doc/faq/en/videola...</a><br><br><i>3.4. What about personal/commercial usage?<br>Some of the codecs distributed with VLC are patented and require you to pay royalties to their licensors. These are mostly the MPEG style codecs. With many products the producer pays the license body (in this case MPEG LA (<a href=\"http://www.mpegla.com\" rel=\"nofollow\">http://www.mpegla.com</a>)) so the user (commercial or personal) does not have to take care of this. VLC (and ffmpeg and libmpeg2 which it uses in<br>most of these cases) cannot do this because they are Free and Open Source implementations of these codecs. The software is not sold and therefore the end-user becomes responsible for complying to the licensing and royalty<br>requirements. You will need to contact the licensor on how to comply to these licenses.<br>This goes for playing a DVD with VLC for your personal joy ($2.50 one time payment to MPEG LA) as well as for using VLC for streaming a live event in MPEG-4 over the Internet.</i><br><br>So it appears that since VLC isn't selling, it's up to the user to fork over the $2.50. If that's incorrect, i'm real sure that MPEGLA can handle talking to VLC.<br><br><i>A huge amount of OSS software violates patents/licenses. They\u2019ve been able to get away with it because it\u2019s not worth the effort to do anything about some guys in their garage.</i><br><br>Again, show me the money. Show me all the patents that FOSS violates with impunity. Because so far, your example kind of sucks.<br><br><br><i>But once big players like IBM, Red Hat, etc, start funding them, shipping their products, and/or making money off of those products, then don\u2019t be surprised if the license and patent holders come knocking on the door. </i><br><br>Think about the patents IBM holds for a minute. Think about what that will cost Microsoft if they decide to NOT be nice guys about such things. Remember that IBM invented and patented most of what you use on any computer. IBM is SO not the company to go dicking with about patents and IP. Just ask SCO how that's working for them.<br><br><i>The garage-developer working in his spare time needn\u2019t worry, he\u2019s still too small-fry do deal with (e.g. VideoLAN). But the big guys that make money on license-violating software should pay the royalties due to the patent holders.</i><br><br>Provided the patent holders show which patents are being violated, and those patents hold up in court with no prior art. Right now, Microsoft is pulling a Joe McCarthy...\"I have in my hand a list of names...\"", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_23:40:19", "killed": false, "user_key": "422187df3c45655b0dc2ae5de0710b27", "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}, "9678590": {"up_voted": false, "ip": "", "has_replies": false, "message": "FUD.  Microsoft practically invented it.<br><br>Fortune, as usual, provides plenty of newsprint to help spread the FUD around.<br><br>The strategy almost works.  Almost.  Unfortunately, for Microsoft though, FUD works wonderfully against small commercial competitors, but it just won't work against free software.  The article demonstrates this beautifully by ending with a \"no comment\" on whether or not Microsoft will sue it's own customers.  :-)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-13_21:48:23", "killed": false, "user_key": "ce56665a53573f8cf401244abea61482", "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}, "9678591": {"up_voted": false, "ip": "", "has_replies": false, "message": "Everyone here is missing the most significant point:<br><br>What does this say to developers who are considering adopting Silverlight?  Will people believe that Microsoft will maintain cross-platform support for Silverlight given these infringement threats.<br><br>Silverlight is the single most important initiative at Microsoft and they are going to shoot themselves in the foot.  So stupid...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-05-14_23:06:26", "killed": false, "user_key": "3423bdecedb1e74120350de4e40c7acf", "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": "18357551", "user_id": "anonymous", "forum_id": "125200", "hash": -3921829106749912216}, "thread": {"total_posts": 0, "paginate": false, "per_page": 0, "slug": "microsoft_about_to_enter_into_patent_war", "num_pages": 1, "days_alive": 0, "realtime_paused": true, "id": 18357551, "num_posts": 68, "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=microsoft_about_to_enter_into_patent_war' +
		'&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/microsoft_about_to_enter_into_patent_war/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='	+ 'microsoft_about_to_enter_into_patent_war'
			+ '&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/microsoft_about_to_enter_into_patent_war/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">68</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://scobleizer.disqus.com/microsoft_about_to_enter_into_patent_war/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/microsoft_about_to_enter_into_patent_war/">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/microsoft_about_to_enter_into_patent_war/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:18357551" 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'				: 'microsoft_about_to_enter_into_patent_war',
			// 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/microsoft_about_to_enter_into_patent_war/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='	+ 'microsoft_about_to_enter_into_patent_war'
			+ '&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='	+ 'microsoft_about_to_enter_into_patent_war'
			+ '&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='		+ 'microsoft_about_to_enter_into_patent_war'
				+ '&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/18357551/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-9678607">\
	 <div id="dsq-comment-header-9678607" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678607" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678607" href="http://webreakstuff.com/" target="_blank" rel="nofollow">Fred Oliveira</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678607" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678607" class="dsq-comment-message">It is rather sad that Microsoft\'s leadership decided to go along this path. It is sadder that this happens after Microsoft shook hands with Novel in an effort to "recognize and support" open source initiatives.<br><br>It is a little early to jump into conclusions as to what the effect of this decision (to fight for IP) might be, because Microsoft never really came forward with an actual list of patents being infringed by open source software. A number is a number (and like 235 they could just as easily say 1256 or 9), I want to read the cold hard facts.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678605">\
	 <div id="dsq-comment-header-9678605" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678605" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678605" href="http://jeff.hume.ca/" target="_blank" rel="nofollow">Jeff Hume</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678605" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678605" class="dsq-comment-message">Software patents need to be gotten rid of completely and big name people need to take a big-time stand against this kind of crap.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678606">\
	 <div id="dsq-comment-header-9678606" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678606" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678606" href="http://neomeme.net/" target="_blank" rel="nofollow">Ilya Lichtenstein</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678606" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678606" class="dsq-comment-message">Microsoft is seeing open source like Linux and Firefox as more and more of a threat- and instead of stopping open source by developing better software, they seem content to try to sue it out of existence.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678604">\
	 <div id="dsq-comment-header-9678604" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678604" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678604">Anonymous.... sorry</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678604" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678604" class="dsq-comment-message">That\'s a very outrageous action.<br><br>I hope that it\'s not true.  I recently got a job offer from MS and I was very excited about it.  But it seems that the image of the company is really tarnished.  In general, MS is perceived as a company that only copies and sue (which IS totally not true).  But you cannot change the perception of people...<br><br>Honestly, OOS and propriety software should be able to co-exist.  And OOS companies (even FSF) are pushing MS back to its innovative edge such as Silverlight.<br><br>In general, I agree that it\'s a strategic move to patent "defensively"... you never know who would be jealous of the large cash pile and starts suing with lawyers but not innovating with developers.  But patent offensively and then starts suing?  That\'s a very cheap move.  Even as a fanboy I gotta say that not EVERYONE needs to buy MS software.  We need to buy the BEST software that worth spending for.  Let\'s gear toward making the BEST software (and open source some of it so people know how smart you\'re instead of complaining how greedy you are).<br><br>Honestly, now I really have my doubts about working for MS.  I don\'t know how many college hires will read this, but, we all want to work for the BEST company, not the RICHEST nor the one with the MOST LAWYERS...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678603">\
	 <div id="dsq-comment-header-9678603" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678603" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678603" href="http://dotnetjunkies.com/WebLog/paul/" target="_blank" rel="nofollow">paul</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678603" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678603" class="dsq-comment-message">Chris DiBona, Google Open Source Programs Manager, will talk about "A Year of Open Source at Google" in New York on Wednesday 6:30 PM Google NYC 76 Ninth Avenue</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678602">\
	 <div id="dsq-comment-header-9678602" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678602" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678602">Joe</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678602" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678602" class="dsq-comment-message">Sue sue sue baby, why should apple have all the fun.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678601">\
	 <div id="dsq-comment-header-9678601" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678601" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678601">anon</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678601" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678601" class="dsq-comment-message">They\'re not suing anyone.  Read the article -- they simply want royalties for their work.<br><br>Assuming you believe software is patentable, read on (if you don\'t, stop reading here.) Royalties are an accepted way to be compensated for your IP.  And, to those who say they haven\'t create anything patentable, consider their R&amp;D budget -- it\'s probably $6 billion per year by now.  Doesn\'t it seem fair for them to be able to seek compensation for the results achieved from their R&amp;D efforts?  It happens in every other industry.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678600">\
	 <div id="dsq-comment-header-9678600" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678600" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678600" href="http://neomeme.net/" target="_blank" rel="nofollow">Ilya Lichtenstein</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678600" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678600" class="dsq-comment-message">anon: And how are they going to get those royalties without legal action? Are you going to pay them?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678599">\
	 <div id="dsq-comment-header-9678599" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678599" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678599">Some Guy</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678599" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678599" class="dsq-comment-message">Offensive is the key word here.  MS doesn\'t have many friends these days, and they really don\'t need to be the new SCO.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678598">\
	 <div id="dsq-comment-header-9678598" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678598" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678598" href="http://www.bynkii.com/" target="_blank" rel="nofollow">John C. Welch</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678598" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678598" class="dsq-comment-message">Funny how Microsoft has said that they have all this IP and all these patents being infringed by FOSS, yet they never seem to get around to saying what they are.<br><br>Sad. It shows how little confidence Ballmer has in his own game. Instead of creating killer products, he now wants to sue everyone else to keep THEM from creating killer products. What a pathetic little jackass he really is.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678596">\
	 <div id="dsq-comment-header-9678596" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678596" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678596" href="http://geekspeaker.spaces.live.com/" target="_blank" rel="nofollow">Jason B.</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678596" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678596" class="dsq-comment-message">Wow, the cold war is over, Patent Armageddon has arrived. This could get ugly.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678597">\
	 <div id="dsq-comment-header-9678597" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678597" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678597">Nick</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678597" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678597" class="dsq-comment-message">@ anon<br><br>&gt;Doesn’t it seem fair for them to be able to seek compensation for the results achieved from their R&amp;D efforts?<br><br>It does. I would, however, ask what results you are talking about. If they are spending $6 billion on R&amp;D you have to wonder whether they are spending wisely. R&amp;D South doesn\'t spend anything like that.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678595">\
	 <div id="dsq-comment-header-9678595" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678595" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678595">skc</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678595" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678595" class="dsq-comment-message">"Instead of creating killer products, he now wants to sue everyone else to keep THEM from creating killer products"<br><br>I don\'t know, do you have proof that he wants to sue someone?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678594">\
	 <div id="dsq-comment-header-9678594" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678594" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678594">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678594" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678594" class="dsq-comment-message"><i>the gestures that the leadership is sending</i><br><br>In these corporate mixed-signal games, just the threat is sometimes enough. But least thing Microsoft needs is more lawsuits, besides, they went thru a lawsuit-free spree, paying off everyone, and they want to kick up the dust all over again? I don\'t believe it, just a future threat, to prevent any PRESENT action.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678592">\
	 <div id="dsq-comment-header-9678592" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678592" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678592">Paco</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678592" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678592" class="dsq-comment-message">I also disagree with software patents, but at the same time, I don\'t think this will go anywhere, especially in Europe.<br><br>For one, Linux the kernel is not owned by any one person, but the people. Yes, it\'s maintained by people, but under the GPL. Good luck suiing individuals, especially in other countries.<br><br>Thankfully, the EU takes a dim view to software patents.<br><br>In the final analysis, I think that MS is threatening this because they are becoming less and less relevant and they know it. They know they cannot beat free software in the marketplace fairly, so they are possibly resorting to litigious nonsense.<br><br>Good luck, MS. You cannot sue the GPL/BSD/MIT, etc licenses into submission. Accept the fact the world is changing and learn to just be another player in the marketplace. Your days as top dog are long gone.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678593">\
	 <div id="dsq-comment-header-9678593" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678593" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678593" href="http://commonsensepr.com/" target="_blank" rel="nofollow">Eric Eggertson</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678593" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678593" class="dsq-comment-message">I suppose Microsoft suing to protect their patents is slightly more palatable than the companies whose sole purpose is to buy patents and sue anyone who comes close to violating them.<br><br>This would play better for Microsoft if they identified a portion of their patents that they feel should legitimately be freely used by anyone, and find a way to give them to the world.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678590">\
	 <div id="dsq-comment-header-9678590" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678590" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678590">jpick</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678590" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678590" class="dsq-comment-message">FUD.  Microsoft practically invented it.<br><br>Fortune, as usual, provides plenty of newsprint to help spread the FUD around.<br><br>The strategy almost works.  Almost.  Unfortunately, for Microsoft though, FUD works wonderfully against small commercial competitors, but it just won\'t work against free software.  The article demonstrates this beautifully by ending with a "no comment" on whether or not Microsoft will sue it\'s own customers.  :-)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678588">\
	 <div id="dsq-comment-header-9678588" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678588" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678588" href="http://www.translationsource.com.ar/" target="_blank" rel="nofollow">Alejandro</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678588" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678588" class="dsq-comment-message">It\'s pointless. They could kill, say, RedHat, or maybe even Sun (and we\'d miss them both) but they can\'t kill independent developers all over the world. Software patents are basically a US invention, not recognized anywhere else (except maybe Japan...)<br><br>"And, to those who say they haven’t create anything patentable, consider their R&amp;D budget — it’s probably $6 billion per year by now. Doesn’t it seem fair for them to be able to seek compensation for the results achieved from their R&amp;D efforts?"<br><br>Of course they deserve compensation. It\'s called copyright, not patents. You can\'t patent music or recipes, just like you can\'t patent software in most of the world.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678587">\
	 <div id="dsq-comment-header-9678587" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678587" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678587">Leon</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678587" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678587" class="dsq-comment-message">Now is when I laugh at all the Microsoft fanboys who kept telling me "but Microsoft has no history of offensive patent litigation".<br><br>See, this is why you don\'t trust a company like them as far as you can throw them. Pathetic.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678586">\
	 <div id="dsq-comment-header-9678586" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678586" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678586" href="http://www.beercosoftware.com/" target="_blank" rel="nofollow">Chris</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678586" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678586" class="dsq-comment-message">As a member of the FSF, who heard a speech from Stallman and Moglen on this very subject about 2 months ago, I would say you are way off. Next year I challenge you to go with me to the FSF meeting so you know what you\'re talking about when you speak about this subject again.<br><br>You forget SO easily who is behind Linux, and how many patents THEY have. MANY, MANY, MANNNYYYYYY more than Microsoft will ever have. They are the undisputed patent kings. And if Microsoft starts shooting, they will be shot dead worse than Alcatel-Lucent, Eolas, and company combined.<br><br>The only reason Microsoft did the patent deal, first with Red Hat who rejected it, then with Novell, is to push the projection of danger.<br><br>Ultimately that is all they have. First they tried to fund SCO, then reneged:<br><a href="http://www.ksl.com/?nid=148&amp;sid=555641" rel="nofollow">http://www.ksl.com/?nid=148&amp;sid=555641</a><br><br>When that didn\'t work, and Martin Taylor\'s get the facts with the forged white papers didn\'t work, they set up <a href="http://port25.technet.com" rel="nofollow">http://port25.technet.com</a> and quickly made a deal to do the IP coverage and open a lab with Novell to "match" the OSDL. Since then the Samba project leader left Novell, and so did their top developer:<br><a href="http://rlove.org/log/" rel="nofollow">http://rlove.org/log/</a><br><br>Unfortunately, you are not in the know, and neither is Fortune. But you could be, and you refuse.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678584">\
	 <div id="dsq-comment-header-9678584" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678584" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678584">Paco</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678584" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678584" class="dsq-comment-message">@14<br><br>Perfectly said. MS knows its castle is surrounded and that they are being starved out. This is a tactic that plainly shows desperation.<br><br>Free software is a good idea and will flourish despite anything MS does. People deserve free software both in freedom and in price.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678585">\
	 <div id="dsq-comment-header-9678585" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678585" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678585" href="http://www.beercosoftware.com/" target="_blank" rel="nofollow">Chris</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678585" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678585" class="dsq-comment-message">OK, I wasn\'t fair to Fortune magazine, they actually had most of the facts, it\'s just your short article that misrepresents them.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678582">\
	 <div id="dsq-comment-header-9678582" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678582" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678582" href="http://www.beercosoftware.com/" target="_blank" rel="nofollow">Chris</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678582" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678582" class="dsq-comment-message">@14<br><br>"It’s pointless. They could kill, say, RedHat"<br><br>Ballmer was actually negotiating with Red Hat. He had offered them the same deal as Novell, and they threw it back in his face. He went to Novell as a last resort, then lied to them about an exclusivity clause in order to get them to sign it. Saying it was an exclusive deal, then 2 days before closing, reneged on that, when the deal was all but done.<br><br>Microsoft tried heavily to buy out Linux so the DOJ couldn\'t intervene, but the companies that put up these communities did not cave in. Except Novell, and their people are leaving now.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678583">\
	 <div id="dsq-comment-header-9678583" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678583" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678583" href="http://bytebot.net/blog/" target="_blank" rel="nofollow">Colin Charles</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678583" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678583" class="dsq-comment-message">Well, Microsoft has always been thinking they\'ve got patents that Linux violates. In fact, do you recollect SCO vs. IBM? That looks like a war that ends with one company becoming bankrupt ;-)<br><br>Software patents itself, are silly.<br><br>Novell recently got into bed with Microsoft to "avoid" such patent problems. Of course, they did it to survive, and everyone generally views them as a sell out...<br><br>Keep in mind that if you buy Red Hat, you\'re protected against lawsuits. FWIW, that also applies to Novell these days.<br><br>So is Microsoft going to start suing? I seriously, doubt it. They\'ve also recently started "loving" open source - look at their Port25 effort.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678580">\
	 <div id="dsq-comment-header-9678580" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678580" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678580" href="http://www.beercosoftware.com/" target="_blank" rel="nofollow">Chris</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678580" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678580" class="dsq-comment-message">@25<br><br>"So is Microsoft going to start suing?"<br><br>That would be fun to watch. So many disparate patents are out there the touch Windows components it\'s not even funny. By the time it\'s over Bill Gates will be eligible for emergency relief funding from his own foundation.<br><br>Once the bigger ones starts suing in retaliation, the smaller ones will get bolder like Eolas, and then all hell will break loose.<br><br>It would be the best thing for Linux evAr.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678578">\
	 <div id="dsq-comment-header-9678578" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678578" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678578" href="http://www.bynkii.com/" target="_blank" rel="nofollow">John C. Welch</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678578" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678578" class="dsq-comment-message"><i>So is Microsoft going to start suing? I seriously, doubt it. They’ve also recently started “loving” open source - look at their Port25 effort.</i><br><br>That definitely deserves the quotes. Talk about winning the award for meaningless marketing site of the year.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678577">\
	 <div id="dsq-comment-header-9678577" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678577" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678577" href="http://blog.saavedra.info/" target="_blank" rel="nofollow">Alberto Saavedra</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678577" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678577" class="dsq-comment-message">From the article: "Microsoft seemingly barred from striking pacts with distributors, only one avenue appears open to it: paying more friendly visits to its Fortune 500 customers, seeking direct licenses."<br><br>Microsoft - I hope - knows it is not wise to start the patent armageddon using law suits, because there is too much to figure out yet. 235 patents were identified and they are working on strategies to use that knowledge to get IP royalties but it is still a work in progress IMHO.<br><br>Microsoft is starting to understand open source so they are trying to learn by doing but free software is still so difficult to understand for them and this is where they are testing general reactions with this type of interviews.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678576">\
	 <div id="dsq-comment-header-9678576" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678576" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678576" href="http://adir1.com" target="_blank" rel="nofollow">adir1</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678576" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678576" class="dsq-comment-message">Most "patented" software was either directly listed or indirectly described back in 1970 or earlier educational books for Computer Science.<br>I agree completely with everyone quoted here -- software patents are ridiculous and need to be gotten rid of, ASAP.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678571">\
	 <div id="dsq-comment-header-9678571" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678571" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678571">Tumbleweed</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678571" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678571" class="dsq-comment-message">This would be a huge mistake for MS to make. They may think they\'re immune to what the market wants, but Intel found out the hard way when they tried to force RAMBUS down the market\'s throat, and look how many billions *that* cost them. The market doesn\'t exactly love Vista, either, but they\'re still in denial about that as far as I can see. And Digg recently found out the hard way what happens when you try to force things on people they don\'t want.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678570">\
	 <div id="dsq-comment-header-9678570" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678570" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678570">John</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678570" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678570" class="dsq-comment-message">Your use of the Latin abbreviation "IE" is incorrect.  The mid-sentence form should be delineated by commas, be lower case, and include periods.<br><br>See: <a href="http://ancienthistory.about.com/od/abbreviations/f/ievseg.htm" rel="nofollow">http://ancienthistory.about.com/od/abbreviation...</a><br><br>Apologies for being pedantic about your use of the language, I do enjoy your posts.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678630">\
	 <div id="dsq-comment-header-9678630" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678630" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678630" href="http://www.krishworld.com/blog/" target="_blank" rel="nofollow">Krish</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678630" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678630" class="dsq-comment-message">They are just making noise to show themselves relevant. They just cannot do it because FSF can countersue them and put them through the same "ordeal". It is a plain case of Microsoft bullshitting in desperation. Probably they think that they can bring down google by attacking the open source software that make up Google\'s infrastructure. Well, it is just the desperate whine they are making before they go down.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678608">\
	 <div id="dsq-comment-header-9678608" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678608" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678608" href="http://neverness.wordpress.com/" target="_blank" rel="nofollow">neverness</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678608" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678608" class="dsq-comment-message">We will see how this one turns out, on one side we\'ve got Microsoft with its patents and on the other side the Open Innovation Network supported by IBM, Philips, Sony, Oracle and some other companies. And they\'ve got a patent portfolio which definitely is bigger, and entails some interesting stuff.<br><br>For one side I\'m happy when they go along, as it will indefinitely assure that the EU will never get software patents. And i can already see some eyebrows frowning in Neelie  Smith Kroes\'s office.<br><br>Secondly, they will have to go to their own customers, telling them "hey, you\'ve got OSS running, on top of the licence you already pay we want X amount of license for OSS because it infringes on our patents... (I would like to see the faces of some CIO\'s and CFO\'s when that message comes along, and the decision about implementing Vista is a few days later on there desk..)<br><br><br>Thirdly, until the patent is validated in court, it\'s merely a threat.. And my take is that there will be a lot of prior art.<br><br>Fourth, up until now they\'ve been telling us that FOSS isn\'t a threat, why go after something that doesn\'t pose a threat..<br><br>Fifth, it\'s never smart to let lawyers dictate which route you\'re company should take.....<br><br>Sixth, it will ensure that a lot of OSS will implement GPL3, and i doubt they will be very happy when that happens.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678628">\
	 <div id="dsq-comment-header-9678628" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678628" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678628">skc</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678628" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678628" class="dsq-comment-message">Wow, you people are wierd. They have no history of suing over patent infringment (I can only think of one case), so umm, why should they start now exactly? Are they struggling for profits? No. Are they losing marketshare in the areas relevant to them? No.<br><br>Think, people, think.<br><br>Ballmer wants another Novell style deal is all.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678631">\
	 <div id="dsq-comment-header-9678631" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678631" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678631">Jake</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678631" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678631" class="dsq-comment-message">You know all those years you told us Microsoft was different? That they weren\'t evil, crazy monopolist hell-bent on squashing innovation in any production competing with them?<br><br>Turns out, you were wrong. :(<br><br>Today, we saw the same old monopolist, just twisted a little -- now he\'s trying to use the broken US patent system to squeeze money out of big companies and to scare small ones into using Microsoft products.<br><br>If you\'re a developer, does this give you the warm fuzzies about developing on top of Silverlight? If you\'re a user, doesn\'t it make you want to go run out and install Ubuntu?  If you care about the future of innovation on the web, do you think Microsoft is helping?<br><br>Ugh. It\'s like every paranoid /. kiddie\'s fantasy is coming real -- I can\'t wait to see the headlines the first company Microosft sues for not using an \'approved\' Linux distro.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678629">\
	 <div id="dsq-comment-header-9678629" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678629" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678629" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678629" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678629" class="dsq-comment-message">Jake: so far it\'s just posturing. The first suit hasn\'t been filed yet. Let\'s worry -- a little bit. But let\'s not get ahead of reality either, OK?<br><br>But, I don\'t remember saying Microsoft wasn\'t going to compete and wasn\'t going to take advantage of its patents or other things it has in the market place. Last I looked a patent is still something that our system reveres. A patent basically hands an inventor a monopoly for 17 years. Microsoft wouldn\'t be doing its job if it didn\'t protect its patent portfolio.<br><br>Now, does it really have proof that its patents have been infringed on? Then it should do what Tim Bray said today: go to court or shut up.<br><br>The gestures that the leadership is sending to the marketplace sure aren\'t increasing its PR value, that\'s for sure.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678627">\
	 <div id="dsq-comment-header-9678627" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678627" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678627" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678627" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678627" class="dsq-comment-message">skc: just because it hasn\'t been done before doesn\'t mean it won\'t be done in the future.<br><br>I\'ll be happy to interview Ballmer or anyone else in leadership at Microsoft and will put that full interview out without editing it so you can see everything they say. If they have no plans to litigate, they can say that on video and calm everyone down. My phone number is on my blog.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678626">\
	 <div id="dsq-comment-header-9678626" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678626" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678626" href="http://barrkel.blogspot.com/" target="_blank" rel="nofollow">Barry Kelly</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678626" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678626" class="dsq-comment-message">I\'m quite simply amazed. Amazed that MS could be that stupid, that they could so openly say "F*** you" to the developers who support their platform.<br><br>OSS is one of the biggest ways that fresh blood makes names for themselves, and get involved with something big, something real, that will make a difference to actual end users. Trying to kill this, is unbelievably stupid. Developers are the only people who matter for the long-term survival of *any* platform - and developers respect innovation, not strong-arming lawyers.<br><br>I can\'t believe what I\'m reading. I really cannot believe it. I\'m seriously considering changing my career direction over this, and I\'m not a fresh college graduate.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678625">\
	 <div id="dsq-comment-header-9678625" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678625" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678625" href="http://www.bynkii.com/" target="_blank" rel="nofollow">John C. Welch</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678625" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678625" class="dsq-comment-message"><i>I’m quite simply amazed. Amazed that MS could be that stupid, that they could so openly say “F*** you” to the developers who support their platform.</i><br><br>Not when your livelihood revolves around .NET and VS. Microsoft has always worked to lock in its users and developers so that they were unable to use or work with any other platform. That way, when you felt both of ballmers hands on your shoulders, your only option was to brace yourself and say "THANK YOU SIR! MAY I HAVE ANOTHER!"</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678624">\
	 <div id="dsq-comment-header-9678624" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678624" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678624" href="http://www.bynkii.com/" target="_blank" rel="nofollow">John C. Welch</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678624" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678624" class="dsq-comment-message">Come to think of it, Ballmer\'s strategy, although distasteful and disgusting, is brilliant. Drive all FOSS vendors but the ones who will play ball out of business, then force the ones who sign agreements to dance to your tune.<br><br>Eventually, all you have is Windows, and you didn\'t have to do any of that silly "innovating" or "product improvement".</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678623">\
	 <div id="dsq-comment-header-9678623" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678623" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678623" href="http://www.dallasfreeman.com/" target="_blank" rel="nofollow">Dallas Freeman</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678623" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678623" class="dsq-comment-message">Patents are gay, the worst patent and one of the most effective ones at the moment is held by MP3 technologies, a patent of a digital file played by a mobile device.  So from mobiles phones to iPods are screwed.<br><br>There should be a ban on patents in any industry.  In the past, patents were regarded as not necessary however it has now become a real estate issue on owning patents.<br><br>In the future we will look back to today and see how it has affected our civilisation sooo so much.  Imagine if a patent was created for wheels and tires, that would have screwed everything up, just like how we are screwing everything up now.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678622">\
	 <div id="dsq-comment-header-9678622" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678622" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678622" href="http://www.beercosoftware.com/" target="_blank" rel="nofollow">Chris</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678622" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678622" class="dsq-comment-message">Lots of people in America have guns, just like lots of big companies have patents that touch each others\' products. LOTS of patents touch Windows and other Microsoft products.<br><br>Even though a lot of people have guns, what purpose would it serve if everybody started shooting each other "because they can"?<br><br>Microsoft in essence is saying, we have a gun with bullets, and now we are detailing who we\'d like to kill if only our threats weren\'t idol in nature.<br><br>That\'s EXACTLY what MS lawyers are doing. They are no different or better than the Iraqi minister of information.<br><br>In a year or so even little me will have 2 patents that could easily sink MS products. The point being that once the big guns start shooting at MS over IP again, the little ones will fire as well, those companies who have no products MS can fire back on with their patents like Eolas. That would be a good thing. It would be enough to bankrupt the company outright.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678621">\
	 <div id="dsq-comment-header-9678621" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678621" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678621" href="http://carelesshand.net/" target="_blank" rel="nofollow">Jinzang</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678621" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678621" class="dsq-comment-message">Those who can compete, compete. Those who can\'t, litigate. This is the last cry of the mastodon as it sinks into the La Brea tar pits.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678619">\
	 <div id="dsq-comment-header-9678619" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678619" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678619" href="http://neverness.wordpress.com/" target="_blank" rel="nofollow">neverness</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678619" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678619" class="dsq-comment-message">just read this article from Mary J. Foley over on ZDnet <a href="http://blogs.zdnet.com/microsoft/?p=437" rel="nofollow">http://blogs.zdnet.com/microsoft/?p=437</a><br><br>It seems to be an attack on GPL v3 and the FSF.<br><br>It just makes me wonder they want to get into this PR fight with the FSF. Microsoft might be able to use it\'s money, but on the other hand the FSF has lots of people who are willing to aid them in a counter offensive. (think about the European offensive against software patents..)<br><br>The one that\'s most likely to be overblown by negative PR will be Microsoft. It\'s like opening pandora\'s box. Countries without software patents will think twice before implementing them.. There will be companies that refuse to pay and wait for the lawsuit.. A counter suit from the OIN could be looming which have a lot more patents on hand to protect Linux..<br><br>just to much stuff that can hurt them. If I would be stock owner, i wouldn\'t be really that happy. In the end most lawsuits only hurt the stock price.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678618">\
	 <div id="dsq-comment-header-9678618" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678618" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678618" href="http://www.scribbledesigns.co.uk/" target="_blank" rel="nofollow">Gerard McGarry</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678618" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678618" class="dsq-comment-message">Hmmm. I read every comment on this thread so far, and there seems to be a hell of a lot of gun jumping going on.<br><br>In every argument about Microsoft and Open Source Software you get these massive extremes of opinion. OSS will kill Microsoft stone dead. Microsoft wants to shaft OSS and stifle innovation.<br><br>Instead of sitting at your computer with your knees jerking, why not get out and prove (to real people, not us geeks) how useful FOSS can be. Convince your pal with a small business to switch to Linux and OpenOffice. Or something like that. Start advocating OSS and people will use it.<br><br>My wife now refuses to use Windows, she\'s using Kubuntu with network storage on an MS Server. The more people who use Open Source, the less will fear it and it\'ll gain the traction it needs.<br><br>And Microsoft won\'t die overnight, if it dies at all. There are plenty of suits and resellers who seek the reassurance of that little multi-coloured flag that says Windows. Plenty of engineers who crave that MCSE for their CV.<br><br>Please get some perspective. And if you love Open Source, go out and help promote it, help establish it as a viable alternative.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678616">\
	 <div id="dsq-comment-header-9678616" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678616" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678616">Kermit Croaked</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678616" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678616" class="dsq-comment-message"><i>"Sad. It shows how little confidence Ballmer has in his own game. Instead of creating killer products, he now wants to sue everyone else to keep THEM from creating killer products. What a pathetic little jackass he really is."</i><br><br>Welch,<br>With the current situation, creating a killer product would be useless since OSS devs would clone it and give it away for free, even if it were patented up the wazoo.<br><br>The fact is, OSS devs do violate patents and licenses with impunity.  You\'re a card-carrying member of the Apple fan club, right?  Then let me put this in terms you can relate to.  Apple charges users $10 for an MPEG2 plugin for their QuickTime player, as a way to pay the MPEG2 license fee (passing the fee to the consumer).  Meanwhile, the VideoLAN devs don\'t bother paying the MPEG2 license fee for their VLC media player.  So Apple honors the MPEG2 license while VideoLAN does not.<br><br>A huge amount of OSS software violates patents/licenses.  They\'ve been able to get away with it because it\'s not worth  the effort to do anything about some guys in their garage.  But once big players like IBM, Red Hat, etc, start funding them, shipping their products, and/or making money off of those products, then don\'t be surprised if the license and patent holders come knocking on the door.  The garage-developer working in his spare time needn\'t worry, he\'s still too small-fry do deal with (e.g. VideoLAN).  But the big guys that make money on license-violating software should pay the royalties due to the patent holders.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678615">\
	 <div id="dsq-comment-header-9678615" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678615" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678615" href="http://www.bynkii.com/" target="_blank" rel="nofollow">John C. Welch</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678615" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678615" class="dsq-comment-message"><i>Please get some perspective. And if you love Open Source, go out and help promote it, help establish it as a viable alternative.</i><br><br>You do realize that this patent threat from Microsoft is attempting to kill that idea, right?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678614">\
	 <div id="dsq-comment-header-9678614" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678614" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678614" href="http://www.folklore.org/StoryView.py?project=Macintosh&amp;#38;story=A_Rich_Neighbor_Named_Xerox.txt&amp;#38;topic=Microsoft&amp;#38;sortOrder=Sort%20by%20Date&amp;#38;detail=medium" target="_blank" rel="nofollow">An anonymous MS hired..</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678614" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678614" class="dsq-comment-message">In the light of the infringement claim, I would like to highlight a quote from BillG to Steve Jobs.<br><br><br>"Well, Steve, I think there\'s more than one way of looking at it. I think it\'s more like we both had this rich neighbor named Xerox and I broke into his house to steal the TV set and found out that you had already stolen it." (full article please see the link)<br><br>Had Xerox suited MS, BillG wouldn\'t be the richest person in the world.  So... for those Softies reading this, please revive the corporate conscience and stop the madness.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678613">\
	 <div id="dsq-comment-header-9678613" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678613" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678613">Lincoln</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678613" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678613" class="dsq-comment-message">@50:<br><br>You say that like OSS is the only ones doing this. I know you say there\'s a reason why OSS hasn\'t been sued before, but how many times has MS been sued successfully for patent infringement? I don\'t know the exact number, but it\'s more than 0!<br><br>The biggest problem here is that you\'re right, products are patented up the wazoo, but it\'s not because they\'re innovative by any means.<br><br>Just recently MS added a feature to Visual Studio that has existed in another IDE called BlueJ since the mid 90s. Then, they patented it( <a href="http://www.bluej.org/mrt/?p=21" rel="nofollow">http://www.bluej.org/mrt/?p=21</a> ).<br><br>The patent office has no idea what\'s innovative and what isn\'t. A guy just the other day got a patent for what is essentially a doubly-linked list. I think I learned that in second semester university!<br><br>There are even attempts to change the patent system to "not first to create but first to patent". That is to say, you could do something really innovative and purposefully not patent it so the world can use it freely... then I could patent it and then sue you.<br><br>The problem is that the entire patent system (especially when it comes to software) is broken.<br><br>Microsoft are just as bad as OSS when it comes to stealing ideas, so don\'t imply that it\'s all one sided \'stealing\'.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678612">\
	 <div id="dsq-comment-header-9678612" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678612" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678612" href="http://ananddhingra.com/" target="_blank" rel="nofollow">Anand Dhingra</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678612" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678612" class="dsq-comment-message">It\'s a FUD game: Microsoft wants another Novell deal.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678611">\
	 <div id="dsq-comment-header-9678611" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678611" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678611" href="http://www.idespisemicrosoft.com/" target="_blank" rel="nofollow">Hash</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678611" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678611" class="dsq-comment-message">SCO FUD redux.<br><br>"...Someday, for all countries that are entering WTO [the World Trade Organization], somebody will come and look for money to pay for the patent rights for that intellectual property. So, the licensing costs are less clear than people think today." - Steve Ballmer, Nov. 2004.<br><br>I guess the time has come.  Port25 and Microsoft "openness" indeed.<br><br>Disgusting, despicable morally &amp; ethically bankrupt monopoly.  Time for every independent FOSS developer to make a stand.  It may very well be your last.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678610">\
	 <div id="dsq-comment-header-9678610" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678610" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678610">Phair</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678610" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678610" class="dsq-comment-message">Microsoft is doing so much well in last years and now this..<br><br>I can see Microsoft hatering coming back, as 1999/2000</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678609">\
	 <div id="dsq-comment-header-9678609" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678609" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678609" href="http://bananasfk.wordpress.com/" target="_blank" rel="nofollow">bananasfk</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678609" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678609" class="dsq-comment-message">Well well well - we oss\'ers have been expecting this and that Microsofts partners baystar, sco, and novell have been scr*w*d.<br><br>Robert - software patents are /dev/null in europe. Microsoft even threatened Denmark when they failed.  This means more oss in europe and less in america.<br><br>If you think patenting complier break points (you know prior art) is a good use of american patents then discuss the proper issue usa pto reform.<br><br>Ibm took Sco (really Microsoft) to the cleaners, MS then dumped Darl McBride.   The lesson here is that partnering with microsoft is a way to find yourself with no IT products.  Novell is going that way - the ceo of Novell recently said that all his companies products where rubbish.<br><br>I can live without the organisations of Sco,Novell and Microsoft.   So sue away.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678591">\
	 <div id="dsq-comment-header-9678591" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678591" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678591">Mujibur</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678591" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678591" class="dsq-comment-message">Everyone here is missing the most significant point:<br><br>What does this say to developers who are considering adopting Silverlight?  Will people believe that Microsoft will maintain cross-platform support for Silverlight given these infringement threats.<br><br>Silverlight is the single most important initiative at Microsoft and they are going to shoot themselves in the foot.  So stupid...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678589">\
	 <div id="dsq-comment-header-9678589" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678589" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678589" href="http://www.bynkii.com/" target="_blank" rel="nofollow">John C. Welch</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678589" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678589" class="dsq-comment-message"><i><b>Sad. It shows how little confidence Ballmer has in his own game. Instead of creating killer products, he now wants to sue everyone else to keep THEM from creating killer products. What a pathetic little jackass he really is.”</b><br><br>Welch,<br>With the current situation, creating a killer product would be useless since OSS devs would clone it and give it away for free, even if it were patented up the wazoo.</i><br><br>Right. So where\'s the dead on free knockoffs of iLife? Photoshop? (Don\'t even start with GiMP, that\'s a crackhead\'s version of photoshop, with TEH UGLEE UI) Final Cut Pro? Premiere Pro? I don\'t mean applications that KIND of do the same things, but ones with the same level of fit and polish, and are free. Oddly enough, you don\'t see many. Wonder why that is?<br><br><i>The fact is, OSS devs do violate patents and licenses with impunity. You’re a card-carrying member of the Apple fan club, right? Then let me put this in terms you can relate to. Apple charges users $10 for an MPEG2 plugin for their QuickTime player, as a way to pay the MPEG2 license fee (passing the fee to the consumer). Meanwhile, the VideoLAN devs don’t bother paying the MPEG2 license fee for their VLC media player. So Apple honors the MPEG2 license while VideoLAN does not.</i><br><br>Apple also eats all the MPEG 4 costs, and passes none of that along, what\'s your point. Apple is making $7.50 on every MPEG2 plugin you download. that\'s not a bad bit of profit.<br><br>On VLC, they kind of do a bit of dancing around it, but address this issue here: <a href="http://download.videolan.org/doc/faq/en/videolan-faq-en.pdf:" rel="nofollow">http://download.videolan.org/doc/faq/en/videola...</a><br><br><i>3.4. What about personal/commercial usage?<br>Some of the codecs distributed with VLC are patented and require you to pay royalties to their licensors. These are mostly the MPEG style codecs. With many products the producer pays the license body (in this case MPEG LA (<a href="http://www.mpegla.com" rel="nofollow">http://www.mpegla.com</a>)) so the user (commercial or personal) does not have to take care of this. VLC (and ffmpeg and libmpeg2 which it uses in<br>most of these cases) cannot do this because they are Free and Open Source implementations of these codecs. The software is not sold and therefore the end-user becomes responsible for complying to the licensing and royalty<br>requirements. You will need to contact the licensor on how to comply to these licenses.<br>This goes for playing a DVD with VLC for your personal joy ($2.50 one time payment to MPEG LA) as well as for using VLC for streaming a live event in MPEG-4 over the Internet.</i><br><br>So it appears that since VLC isn\'t selling, it\'s up to the user to fork over the $2.50. If that\'s incorrect, i\'m real sure that MPEGLA can handle talking to VLC.<br><br><i>A huge amount of OSS software violates patents/licenses. They’ve been able to get away with it because it’s not worth the effort to do anything about some guys in their garage.</i><br><br>Again, show me the money. Show me all the patents that FOSS violates with impunity. Because so far, your example kind of sucks.<br><br><br><i>But once big players like IBM, Red Hat, etc, start funding them, shipping their products, and/or making money off of those products, then don’t be surprised if the license and patent holders come knocking on the door. </i><br><br>Think about the patents IBM holds for a minute. Think about what that will cost Microsoft if they decide to NOT be nice guys about such things. Remember that IBM invented and patented most of what you use on any computer. IBM is SO not the company to go dicking with about patents and IP. Just ask SCO how that\'s working for them.<br><br><i>The garage-developer working in his spare time needn’t worry, he’s still too small-fry do deal with (e.g. VideoLAN). But the big guys that make money on license-violating software should pay the royalties due to the patent holders.</i><br><br>Provided the patent holders show which patents are being violated, and those patents hold up in court with no prior art. Right now, Microsoft is pulling a Joe McCarthy..."I have in my hand a list of names..."</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678579">\
	 <div id="dsq-comment-header-9678579" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678579" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678579" href="http://robilad.livejournal.com/" target="_blank" rel="nofollow">Dalibor Topic</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678579" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678579" class="dsq-comment-message">I\'ve always put my trust into SteveB to run Microsoft into the ground, and he has delivered. Has he ever delivered a master stroke like this!<br><br>This is it, Microsoft has declared total war on their customers, and wants to sue everyone not using SUSE. Through today\'s act, Microsoft have declared themselves to be outside the civilized society, and they will be dealt with accordingly, as has been SCO.<br><br>Microsoft won\'t be around by 2012.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678575">\
	 <div id="dsq-comment-header-9678575" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678575" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678575">Reggie</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678575" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678575" class="dsq-comment-message">Welch, did you even comprehend what you posted from the VLC site?  Did you understand the ramifications of it?  Or were you in such a hurry to post that you didn\'t think through what it really meant.  Because it goes to prove Microsoft\'s argument.<br><br>Let me quote what you quoted regarding VLC:<br><i>"With many products the producer pays the license body (in this case MPEG LA (<a href="http://www.mpegla.com" rel="nofollow">http://www.mpegla.com</a>)) so the user (commercial or personal) does not have to take care of this. VLC (and ffmpeg and libmpeg2 which it uses in<br>most of these cases) cannot do this because they are Free and Open Source implementations of these codecs. The software is not sold and therefore the end-user becomes responsible for complying to the licensing and royalty<br>requirements. You will need to contact the licensor on how to comply to these licenses."</i><br><br>They are simply carrying the OSS party line, which is, "We violate patents without fear of being sued because we have no money.  Patent holders, please go after our users instead of us."<br><br>These guys are clearly in violation, and admit it.  They could easily accept donations to cover the licenses, but can\'t be bothered.  And MPEG2 is just *one* of the licenses they violate.  WMV is another.  Flip4Mac pays the WMV license, VLC does not.  Why?  Because VLC is an OSS dev, and OSS devs Do NOT GIVE A DARN ABOUT HONORING PATENTS/ROYALTY FEES.  Which is Microsoft\'s position.<br><br>Microsoft was ordered to pay 1.5 billion for violating the mp3 license (when they weren\'t even violating it with malice; it was ruled that those they indemnified violated it by licensing it from the wrong party; give me a break), and Microsoft haters cheered.  They want Microsoft, Flip4Mac, etc to honor patents, but feel that OSS is too pure for such triflings.<br><br>And you seem to defend the position that the users should be sued rather than the devs of the patent-violating software.  A truly dispicable position for you to take; and you have the gall to call Ballmer pathetic?  Look in the mirror.<br><br>Now, we see that VLC\'s only defense is that they have no money, so can\'t (and don\'t fear) being sued.  But Red Hat, et al, do have plenty of money, so they should be held liable for patent violation.  Do you at least admit that?  Or is "I hate Microsoft" your only basis for whatever position you take, consistency be damned?<br><br>(And I\'ll go further and say that Red Hat, et al, should be held for current and past violations, so that even if they alter the code to get around the patent, they still have to pay up (this happens with closed source devs all the time; OSS devs should be held to the same standard (particularly those that make plenty of money and can\'t use charity as a defense)).)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678572">\
	 <div id="dsq-comment-header-9678572" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678572" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678572">Jim</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678572" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678572" class="dsq-comment-message">"Microsoft up to this point has used patents defensively (i.e., only if sued themselves)"<br><br>Huh?  How does that explain how they\'ve been threatening their own customers using GNU/Linux since 2004?<br><br>"Some customers actually entered into direct patent licenses with Microsoft at that point, Smith says, including some "major brand-name companies" in financial services, health care, insurance and information technology. (He says they don\'t want to be identified, presumably because they fear angering the FOSS community.)"<br><br>Hitachi, Samsung are known to have done this in 2007 out of fear of MS.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678573">\
	 <div id="dsq-comment-header-9678573" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678573" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678573">Reggie</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678573" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678573" class="dsq-comment-message">@Welch<br><br>Now, to go off topic, let\'s move on to your your beloved Apple\'s MPEG2 scam (fleecing its users).<br><br>According to you, they make $7.50 per MPEG2 codec.  I\'d have more respect for them if they were doing this just to cover the MPEG2 license, but it does appear that this is yet one more case of Jobs milking his userbase for all their worth.  And to make matters worse, OSX already comes with an MPEG2 codec that is used to power the DVD player; why can\'t Apple let their QT player use the same codec?(On Windows, once an MPEG2 codec is installed, all players that use DirectShow filters can use it; the license need only be paid for once.)  The reason Apple doesn\'t allow QT to use the already installed MPEG2 codec that the DVD player uses is that he\'d miss opportunity to milk his fanbase.<br><br>And you defend this with your "that’s not a bad bit of profit" remark.  It\'s sad that you care more about Jobs\' bottom line than his users, of which you are one.  Tell me, do you get the warm and fuzzies whenever you hand Jobs another dollar?  Do you get a high when paying $10 just to get the QT player to play videos at full screen, because you know that you\'ve made Jobs just a bit richer, not caring about your own pocket or the pockets of Mac users?  It truly amazes me that you and your ilk defend Apple making $7.50 per MPEG2 codec (and likely defend the $10 to get QT to play fullscreen), when you would have been the first to loudly trash Microsoft for doing the same.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678574">\
	 <div id="dsq-comment-header-9678574" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678574" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678574">Jim</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678574" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678574" class="dsq-comment-message">"Assuming you believe software is patentable, read on (if you don’t, stop reading here.) Royalties are an accepted way to be compensated for your IP. And, to those who say they haven’t create anything patentable, consider their R&amp;D budget — it’s probably $6 billion per year by now. Doesn’t it seem fair for them to be able to seek compensation for the results achieved from their R&amp;D efforts? It happens in every other industry."<br><br>OMG you mean the convicted illegal monopolist faces actual competition and therefore must compete with lowering prices and increasing innovation?????  Nooooo!!!!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678568">\
	 <div id="dsq-comment-header-9678568" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678568" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678568" href="http://www.bynkii.com/" target="_blank" rel="nofollow">John C. Welch</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678568" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678568" class="dsq-comment-message">Funny how Microsoft gets sued, and pretty successfully too, quite a few times over the years for patent violations, and is now suddenly decrying patent violations.<br><br>"I\'m shocked, shocked I tell you to find that there is gambling in this establishment!"<br><br>"Your winnings Inspector"<br><br>"Ah, thank you"</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678567">\
	 <div id="dsq-comment-header-9678567" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678567" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678567">Kermit Croaked</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678567" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678567" class="dsq-comment-message">@69<br>Welch,<br>Funny how MS haters (e.g. you), cheer when microsoft gets sued, but take umbrage that they might finally decide to fight back by enforcing their own patents.<br><br>BTW, your defense of VLC was pathetic, to say the least.  Unless you\'re saying that the official OSS position is that responsibility for patent royalties should be passed from OSS devs to the users.  Even you can see how disingenuous that stance is.  You and OSS devs know damn well that users aren\'t going to do that (even those that would be inclined wouldn\'t know to whom or how to pay the royalty).  But this isn\'t the first time you\'ve taken an intellectually dishonest position.  It\'s your m.o.<br><br>And your comment regarding Apple\'s MPEG2/QT policy was overly-defensive, as I was not attacking them for it.  Just pointing out that they abide by the MPEG2 license while VLC (and many OSS video player devs) fails to do so.  (That you feel the need to defend Apple at all times, even when they aren\'t being attacked, is quite telling.)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678566">\
	 <div id="dsq-comment-header-9678566" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678566" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678566">Alex</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678566" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678566" class="dsq-comment-message">"You and OSS devs know damn well that users aren’t going to do that (even those that would be inclined wouldn’t know to whom or how to pay the royalty)."<br><br>Oh really? Why? Do M$ fanboys always assume that OSS users are dishonest? I spot a trend...<br><br>"That you feel the need to defend Apple at all times, even when they aren’t being attacked, is quite telling."<br><br>That you feel the need to attack Apple or John\'s positive attitude towards it even when when it was completely unwarranted is also telling.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678565">\
	 <div id="dsq-comment-header-9678565" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678565" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678565" href="http://www.bynkii.com/" target="_blank" rel="nofollow">John C. Welch</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678565" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678565" class="dsq-comment-message"><i>Funny how MS haters (e.g. you), cheer when microsoft gets sued, but take umbrage that they might finally decide to fight back by enforcing their own patents.</i><br><br>Funny how Microsoft has yet to release any info on all this IP being infringed upon, isn\'t it. Kind of pulling a Joe McCarthy, and trying to make people fear that they MIGHT be in trouble by using linux.<br><br><i>BTW, your defense of VLC was pathetic, to say the least. Unless you’re saying that the official OSS position is that responsibility for patent royalties should be passed from OSS devs to the users.</i><br><br>It wasn\'t a defense at all. That would require me to say VLC is handling it correctly. To provide the other side of the story, I did a little research, (Funny how in the midst of your slavering, you couldn\'t be bothered to make a phone call), and called up MPEGLA\'s licensing office in D.C. They disagree with VLC\'s position in the extreme, and according to them have attempted to contact VideoLAN many times to deal with this. But they also see the complications. As the MPEGLA folks said "On the one hand, they\'re getting the technology used by more people. On the other hand, they\'re not handling the license correctly". It\'s not a simple issue. How do you license when there\'s no money being made? It\'s still being hammered out.<br><br><i> Even you can see how disingenuous that stance is. You and OSS devs know damn well that users aren’t going to do that (even those that would be inclined wouldn’t know to whom or how to pay the royalty). But this isn’t the first time you’ve taken an intellectually dishonest position. It’s your m.o.</i><br><br>Yes, yes, just like your MO is to do no research and just foam at the mouth when you see my name. However, there\'s a difference. MPEGLA is stating the specific problem, and the problem they have with VideoLAN\'s policy. So, regardless of the eventual solution, both sides have stated their views publicly, or will do so publicly. (The MPEGLA people were quite nice about it, not defensive, not anti- or pro- anything, quite understanding about the condundrum involved with FOSS and their licensing models.) Microsoft will not come close to stating what the "list of patents" actually are, so no one can possibly resolve anything.<br><br><i>And your comment regarding Apple’s MPEG2/QT policy was overly-defensive, as I was not attacking them for it. Just pointing out that they abide by the MPEG2 license while VLC (and many OSS video player devs) fails to do so. (That you feel the need to defend Apple at all times, even when they aren’t being attacked, is quite telling.)</i><br><br>BWAAAAHAHAHA. Your only response mode is as Microsoft fanboyattackdog, and now you\'re crying "Poor Me" over the response it gets you. Wahh, you want some cheese with that?<br><br>I can point out publicly available instances where I praise Microsoft and tell Apple they\'re being jerks. Can you show the same, where you praise Apple and tell Microsoft they\'re being jerks? Or is the fanboy hand up your backside not allowing your muppet self to do that?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678564">\
	 <div id="dsq-comment-header-9678564" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678564" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678564">Pepper</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678564" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678564" class="dsq-comment-message">Sad to see John C. Welch go once more into the gutter when he\'s clearly losing an argument.  Welch, you\'re supposed to be so much more knowledgeable than everyone else here (your a tech journalist, afterall *rolls eyes*), so why don\'t you act like it?  Present your arguments without the snide remarks, without the insults, and have the guts to admit when someone you disagree with has a valid point.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678563">\
	 <div id="dsq-comment-header-9678563" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678563" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9678563" href="http://www.bynkii.com/" target="_blank" rel="nofollow">John C. Welch</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678563" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678563" class="dsq-comment-message"><i>Sad to see John C. Welch go once more into the gutter when he’s clearly losing an argument. Welch, you’re supposed to be so much more knowledgeable than everyone else here (your a tech journalist, afterall *rolls eyes*), so why don’t you act like it? Present your arguments without the snide remarks, without the insults, and have the guts to admit when someone you disagree with has a valid point.</i><br><br>Oh, I\'m sorry, did I miss the part where I have to follow a higher standard than say, you Pepper? At least I went out and found actual sources for both sides of the VLC issue. Your research is? Hmm?<br><br>Roll your eyes all you like, where\'s you contribution to the overall knowledge base? Care to show us your contribution to the great Google Tech Support Database in the clouds? I\'d love to see it. Bet it\'s full of awesome. Or do you only exist to play moralizing prat in other people\'s work?<br><br>Or is it that you actually have no real contribution other than bitching about how mean and bad I am. Man, it would suck for you if I and a lot of people stopped commenting, because then you\'d have to have an actual original thought.<br><br>On the valid point thing, why do you need me to...well, validate your point. If your point is valid, it carries that distinction with or without my approval. Maybe if you had more confidence in your game, you\'d not need other people\'s approval.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678617">\
	 <div id="dsq-comment-header-9678617" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678617" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678617">Pepper</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678617" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678617" class="dsq-comment-message">Welch, why do you think I think I need your approval for validation of anything?  Does your ego know no bounds?<br><br>Welch, your only purpose for me is to serve as entertainment, nothing more.  Not validation or approval, but entertainment.  Entertainment of the sort that the court jester provides when playing the "fool" for the royal court.  I know that hurts your ego, but them\'s the facts.<br><br>Now, are you a legit tech journalist (I\'ve seen you pay the role in your writings elsewhere), or are you the blowhard you act as here, on Scoble\'s blog?  Are you the knowledgeable tech guy or the ill-mannered, ill-tempered, deranged buffoon that\'s deluded himself into believing he\'s the smartest guy in the room?<br><br>I\'d say you\'re both.  That you\'re a buffoon is evidenced by your writings here.  As for your tech journalism elsewhere, well, the fact is, there are two categories of tech journalists: Dvorks and Udels.  You\'re of the former.  And that is the category of tech journalists that are quite ignorant of the field that they cover, and are given to axiomatic assertions, proclamations, declarations, and brook no opposition.  And when faced with opposing opinion, they ignore it, or result to handwaving, misdirection, and finally, insults, all the while maintaining an air of superiority.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678581">\
	 <div id="dsq-comment-header-9678581" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678581" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678581">Dantv</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678581" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678581" class="dsq-comment-message">I keep hearing that "people deserve free software," can someone tell me why??? If that is true then we also deservve free food, free clothes, free housing, free healthcare, free computers, free gasoline...etc.<br>Why should anyone work anymore? I can tell you that I am quitting my programming career. It is getting harder to make money, there is plenty of free software out there already for all needs.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9678569">\
	 <div id="dsq-comment-header-9678569" class="dsq-comment-header">\
	 <cite id="dsq-cite-9678569" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9678569">Jason</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9678569" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9678569" class="dsq-comment-message">If Microsoft have to pay a few billion $ a year to use other companies software patents, why should MS have to let others (Open Source or Not) use their patents royalty free? It\'s about time they start to pursue patent violations after spending $5-7 billion per year on R&amp;D. Of course there wil probably be cummunity outcry to the DOJ that this is unfair business practices and they are tryig to hurt RedHat, Ubuntu, and every other flavor of Linux or force agreeemnts similar to Novel\'s.</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=microsoft_about_to_enter_into_patent_war&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);
			}
		}
	});
}

})();




