




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": {"48a6b8f25e86fb6ffe2cc5539524502f": {"username": "Neal", "tumblr": "", "display_name": "Neal", "url": "http://disqus.com/guest/48a6b8f25e86fb6ffe2cc5539524502f/", "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": ""}, "224dd5303d592cf07901ffa37b57cce7": {"username": "Aral Balkan", "tumblr": "", "display_name": "Aral Balkan", "url": "http://disqus.com/guest/224dd5303d592cf07901ffa37b57cce7/", "registered": false, "linkedin": "", "blog": "http://aralbalkan.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": ""}, "ae0d6164f8fe6e21e33d6b902b075306": {"username": "PodSlug (Erik Herz)", "tumblr": "", "display_name": "PodSlug (Erik Herz)", "url": "http://disqus.com/guest/ae0d6164f8fe6e21e33d6b902b075306/", "registered": false, "linkedin": "", "blog": "http://podslug.com/blog", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "0ff9b13312149c4f13c67961e6265e8a": {"username": "Dave", "tumblr": "", "display_name": "Dave", "url": "http://disqus.com/guest/0ff9b13312149c4f13c67961e6265e8a/", "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": ""}, "7a94ab3bcd3cdb8395728b8b1cd60672": {"username": "Michael Gannotti", "tumblr": "", "display_name": "Michael Gannotti", "url": "http://disqus.com/guest/7a94ab3bcd3cdb8395728b8b1cd60672/", "registered": false, "linkedin": "", "blog": "http://www.mikeysgblog.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": ""}, "1a72c2058deacbb38d600ce79857ef75": {"username": "Dave Gillem", "tumblr": "", "display_name": "Dave Gillem", "url": "http://disqus.com/guest/1a72c2058deacbb38d600ce79857ef75/", "registered": false, "linkedin": "", "blog": "http://www.cruciallimit.com/blog", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "ea5036994d8e3d00fe4c9ede36c2d05a": {"username": "Aaron", "tumblr": "", "display_name": "Aaron", "url": "http://disqus.com/guest/ea5036994d8e3d00fe4c9ede36c2d05a/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/2599/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "961373323f5025841e5d985bf02302f1": {"username": "Mr Flash", "tumblr": "", "display_name": "Mr Flash", "url": "http://disqus.com/guest/961373323f5025841e5d985bf02302f1/", "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": ""}, "44ddc99a06441dd323a18c7bcc7b21ef": {"username": "cgraham149", "tumblr": "", "display_name": "cgraham149", "url": "http://disqus.com/guest/44ddc99a06441dd323a18c7bcc7b21ef/", "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": ""}, "14b4977ffcd06f5f71eac605a3fbe3fb": {"username": "Jon Galloway", "tumblr": "", "display_name": "Jon Galloway", "url": "http://disqus.com/guest/14b4977ffcd06f5f71eac605a3fbe3fb/", "registered": false, "linkedin": "", "blog": "http://weblogs.asp.net/jgalloway", "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": ""}, "8a47071035278ebbdafa64247ab22a8e": {"username": "Wood", "tumblr": "", "display_name": "Wood", "url": "http://disqus.com/guest/8a47071035278ebbdafa64247ab22a8e/", "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": ""}, "26787e21beabaf1c968a0d9b7939ac2b": {"username": "Brian Ferris", "tumblr": "", "display_name": "Brian Ferris", "url": "http://disqus.com/guest/26787e21beabaf1c968a0d9b7939ac2b/", "registered": false, "linkedin": "", "blog": "http://huwebdev.blogspot.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "c51b39fa3c79ccb99dcb8a076bc98287": {"username": "brian warren", "tumblr": "", "display_name": "brian warren", "url": "http://disqus.com/guest/c51b39fa3c79ccb99dcb8a076bc98287/", "registered": false, "linkedin": "", "blog": "http://bw.watchtan.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": ""}, "d78b16fa7014fde6890e96fc712b1149": {"username": "LEE", "tumblr": "", "display_name": "LEE", "url": "http://disqus.com/guest/d78b16fa7014fde6890e96fc712b1149/", "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": ""}, "656056ac7ffbc97b499c02df119e2bab": {"username": "Tim", "tumblr": "", "display_name": "Tim", "url": "http://disqus.com/guest/656056ac7ffbc97b499c02df119e2bab/", "registered": false, "linkedin": "", "blog": "http://www.guyswithtowels.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": ""}, "cc38d098e51a404cf96cd54e0c5de450": {"username": "Dominero", "tumblr": "", "display_name": "Dominero", "url": "http://disqus.com/guest/cc38d098e51a404cf96cd54e0c5de450/", "registered": false, "linkedin": "", "blog": "http://www.dominiosidn.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": ""}, "c8e5521716660d58be358b1e5d85ef60": {"username": "drcolossus", "tumblr": "", "display_name": "drcolossus", "url": "http://disqus.com/guest/c8e5521716660d58be358b1e5d85ef60/", "registered": false, "linkedin": "", "blog": "http://dataleak.corewatch.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": ""}, "abc278de26c5566725b648a54737fcda": {"username": "John C. Bland II", "tumblr": "", "display_name": "John C. Bland II", "url": "http://disqus.com/guest/abc278de26c5566725b648a54737fcda/", "registered": false, "linkedin": "", "blog": "http://blogs.katapultmedia.com/jb2", "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": ""}, "d520a16cfb6bfe143da32d08e41e3380": {"username": "Ryan Stewart", "tumblr": "", "display_name": "Ryan Stewart", "url": "http://disqus.com/guest/d520a16cfb6bfe143da32d08e41e3380/", "registered": false, "linkedin": "", "blog": "http://www.digitalbackcountry.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": ""}, "f5e1c91246eaf368b225c9cd66534d69": {"username": "Dave", "tumblr": "", "display_name": "Dave", "url": "http://disqus.com/guest/f5e1c91246eaf368b225c9cd66534d69/", "registered": false, "linkedin": "", "blog": "http://www.cruciallimit.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": ""}, "22b10ad7c0dc887d3bc66e41ed0de186": {"username": "Kosso", "tumblr": "", "display_name": "Kosso", "url": "http://disqus.com/guest/22b10ad7c0dc887d3bc66e41ed0de186/", "registered": false, "linkedin": "", "blog": "http://podcast.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/11070/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "bfeecfdecee45ce56a5d0526ffa36113": {"username": "William Spaetzel", "tumblr": "", "display_name": "William Spaetzel", "url": "http://disqus.com/guest/bfeecfdecee45ce56a5d0526ffa36113/", "registered": false, "linkedin": "", "blog": "http://redune.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": ""}, "aeed6ba84eafd96609ac7dc72167dad0": {"username": "burnsy", "tumblr": "", "display_name": "burnsy", "url": "http://disqus.com/guest/aeed6ba84eafd96609ac7dc72167dad0/", "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": ""}, "7026aea0c45b6946c9765df522035c71": {"username": "David Geller", "tumblr": "", "display_name": "David Geller", "url": "http://disqus.com/guest/7026aea0c45b6946c9765df522035c71/", "registered": false, "linkedin": "", "blog": "http://www.whatcounts.com/blog?pid=965AABA79286169C", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/189/449/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3b021f3d7c583d23195437c17c05666a": {"username": "Ney", "tumblr": "", "display_name": "Ney", "url": "http://disqus.com/guest/3b021f3d7c583d23195437c17c05666a/", "registered": false, "linkedin": "", "blog": "http://websitedesignfx.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": ""}, "7108884010f880da03db693f30558cdf": {"username": "Cali Lewis", "tumblr": "", "display_name": "Cali Lewis", "url": "http://disqus.com/guest/7108884010f880da03db693f30558cdf/", "registered": false, "linkedin": "", "blog": "http://www.geekbrief.tv/", "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": ""}, "915a3cc61f263a415bc8c57d49794553": {"username": "Lowry Miller", "tumblr": "", "display_name": "Lowry Miller", "url": "http://disqus.com/guest/915a3cc61f263a415bc8c57d49794553/", "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": ""}, "70f05d969defbbc33eee516c0905a2e0": {"username": "James Bailey", "tumblr": "", "display_name": "James Bailey", "url": "http://disqus.com/guest/70f05d969defbbc33eee516c0905a2e0/", "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": ""}, "57d55e41bd87b4f03457589d4b7fb446": {"username": "wood berensky", "tumblr": "", "display_name": "wood berensky", "url": "http://disqus.com/guest/57d55e41bd87b4f03457589d4b7fb446/", "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": ""}, "933fdacd2efe13342d6ba008f3fae3d8": {"username": "Curtis J. Morley", "tumblr": "", "display_name": "Curtis J. Morley", "url": "http://disqus.com/guest/933fdacd2efe13342d6ba008f3fae3d8/", "registered": false, "linkedin": "", "blog": "http://www.curtismorley.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": ""}, "49ffc4abf7f698f1c4a5260536b48c68": {"username": "BlogReader", "tumblr": "", "display_name": "BlogReader", "url": "http://disqus.com/guest/49ffc4abf7f698f1c4a5260536b48c68/", "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": ""}, "91bdde96191a4970b785becdf6847084": {"username": "Gern Velblatt", "tumblr": "", "display_name": "Gern Velblatt", "url": "http://disqus.com/guest/91bdde96191a4970b785becdf6847084/", "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": ""}, "9a8f75cf4bfbda303c25b33b7772acee": {"username": "range", "tumblr": "", "display_name": "range", "url": "http://disqus.com/guest/9a8f75cf4bfbda303c25b33b7772acee/", "registered": false, "linkedin": "", "blog": "http://range.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": ""}, "4c71fd381918fbe9242c0c2de0436a0a": {"username": "Joe Palladino", "tumblr": "", "display_name": "Joe Palladino", "url": "http://disqus.com/guest/4c71fd381918fbe9242c0c2de0436a0a/", "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": ""}, "15ceeef84bcec075e2dc57c844b8dbcf": {"username": "Michiel", "tumblr": "", "display_name": "Michiel", "url": "http://disqus.com/guest/15ceeef84bcec075e2dc57c844b8dbcf/", "registered": false, "linkedin": "", "blog": "http://acidzebra.blogspot.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "0cc57bca301b05ca40cebc70571e7124": {"username": "joey", "tumblr": "", "display_name": "joey", "url": "http://disqus.com/guest/0cc57bca301b05ca40cebc70571e7124/", "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": ""}, "c17cb25cd9793d3d972c5cc3b1ae6eee": {"username": "James McKay", "tumblr": "", "display_name": "James McKay", "url": "http://disqus.com/guest/c17cb25cd9793d3d972c5cc3b1ae6eee/", "registered": false, "linkedin": "", "blog": "http://www.jamesmckay.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": ""}, "b0f736080cfab9d27e3c72000ba4715c": {"username": "Paul Roberts", "tumblr": "", "display_name": "Paul Roberts", "url": "http://disqus.com/guest/b0f736080cfab9d27e3c72000ba4715c/", "registered": false, "linkedin": "", "blog": "http://www.sundoggy.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": ""}, "62b30f6c79a797384c819f0715fc6ade": {"username": "hate_animals", "tumblr": "", "display_name": "hate_animals", "url": "http://disqus.com/guest/62b30f6c79a797384c819f0715fc6ade/", "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": ""}, "456636993483a10e9b50ffe17733de4a": {"username": "Robert Scoble", "tumblr": "", "display_name": "Robert Scoble", "url": "http://disqus.com/guest/456636993483a10e9b50ffe17733de4a/", "registered": false, "linkedin": "", "blog": "http://scobleizer.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": ""}, "0da85b11f5e4bb6ee114caede9c2d196": {"username": "timheuer", "tumblr": "", "display_name": "timheuer", "url": "http://disqus.com/guest/0da85b11f5e4bb6ee114caede9c2d196/", "registered": false, "linkedin": "", "blog": "http://timheuer.com/blog", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/189/5553/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "681acde266344af46b403a03f999070a": {"username": "Dave Carabetta", "tumblr": "", "display_name": "Dave Carabetta", "url": "http://disqus.com/guest/681acde266344af46b403a03f999070a/", "registered": false, "linkedin": "", "blog": "http://www.cbetta.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": ""}, "583c06cb6dde1e5b48184587a10ebaab": {"username": "Romuald", "tumblr": "", "display_name": "Romuald", "url": "http://disqus.com/guest/583c06cb6dde1e5b48184587a10ebaab/", "registered": false, "linkedin": "", "blog": "http://allseo.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": ""}, "1560bdf4e214009847b4f1ada85e425f": {"username": "Rob", "tumblr": "", "display_name": "Rob", "url": "http://disqus.com/guest/1560bdf4e214009847b4f1ada85e425f/", "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": ""}, "a6dad7c9fd6c02082fbae892b8f7d7bb": {"username": "Ben", "tumblr": "", "display_name": "Ben", "url": "http://disqus.com/guest/a6dad7c9fd6c02082fbae892b8f7d7bb/", "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": ""}, "870a77a0e6322d83432b61c835fd6f73": {"username": "brand propecia", "tumblr": "", "display_name": "brand propecia", "url": "http://disqus.com/guest/870a77a0e6322d83432b61c835fd6f73/", "registered": false, "linkedin": "", "blog": "http://www.bloggerblast.com/bestpills/", "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": ""}, "aec65179af715bc69e2a32bba89a333e": {"username": "Brian", "tumblr": "", "display_name": "Brian", "url": "http://disqus.com/guest/aec65179af715bc69e2a32bba89a333e/", "registered": false, "linkedin": "", "blog": "http://www.rendition.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": ""}}, "forum": {"use_media": true, "name": "Scobleizer", "streaming_realtime": true, "url": "scobleizer", "allow_anon_post": true, "reactions_enabled": true, "reply_position": 1, "show_avatar": true, "allow_anon_votes": false, "disqus_auth_disabled": false}, "realtime_enabled": true, "request": {"username": "", "is_global_moderator": false, "sharing": {}, "sort": 4, "forum": "scobleizer", "is_initial_load": true, "is_authenticated": false, "timestamp": "2009-12-17_11:07:03", "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": {"9644416": {"up_voted": false, "ip": "", "has_replies": false, "message": "Wow what an Assumption. If we wanted the PC to emulate Telivision why wouldn\u2019t we just use a Television ?<br><br>Most people with Television want a TIVO or DVR/PVR so they can CONTROL the PROGRAMMING &amp; ELEIMINATE the Advertising. Well, I have seen and work in some technology that will come true in some years to come. It is true, the internet is going to be a just a portal/path to deliver and recive information. Open TV formats are coming and I know that some companies already start working on free-chape OS system... Tivo, etc, tec, is just old technology and cool new systems will come along. I don't see people using the internet like most do in the near future... it is going to be portable and faster... Time for the new era of interactive motion graphics everywhere.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-28_19:16:59", "killed": false, "user_key": "3b021f3d7c583d23195437c17c05666a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644417": {"up_voted": false, "ip": "", "has_replies": false, "message": "# 57 quote:<br>\"Got it? Flash became to big like windows and I hope someone out there besides Microsoft is working on a similar player or technology. Got have a competition and so far none. Like I what I wrote, the future is interactive television and not web, the internet is only a part of visual information that delivers what is becoming the next amazing creations of freedom displays\u2026 I mean we are going to see amazing ways of motion graphics that will be totally interactive, in all shapes and sizes\u2026 Bye Bye 4:3 or 16:9 video sizes and welcome circles, triangles, whatever sizes you may like\u2026 New software\u2019s like flash professional will need to be created for the very soon technologies that most of you don\u2019t even imagine will come true\u2026 More and more we want videos to be part of our daily life\"<br><br>Wow what an Assumption. If we wanted the PC to emulate Telivision why wouldn't we just use a Television ?<br><br>Most people with Television want a TIVO or DVR/PVR so they can CONTROL the PROGRAMMING &amp; ELEIMINATE the Advertising.<br><br>Not the other way around. Flash Video's embedded in CNN new Reports are the pits !!! I don't watch them mainly because they have unblocked advertising for every clip you view. There is NO FUN in that.<br><br>Video Software blocking has yet to be perfected yet.<br>Computers are being run at their limit with plug ins by Microsoft! 5 SVCHOST.EXE programs run concurrently on every WinXP system  communicating over the net.<br>(Hit Ctrl-Alt-Delete) on any WinXP machine &amp; you get 30-40 programs being run in TSR memory. Especially if you have Adblocking or AntiVirus software.<br><br>At  what point does this NONSENSE STOP?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-28_15:52:44", "killed": false, "user_key": "57d55e41bd87b4f03457589d4b7fb446", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644418": {"up_voted": false, "ip": "", "has_replies": false, "message": "Way back in 1999, when people communicated on BBS listings (in text form) Before AOL?eartlink or Compuserve was a household name we thought of the effect of Advertising on performance of the Internet.<br>As you can see below not much has changed:<br>Why Block Ads?<br>Increased Speed<br>The following quote came across the Edupage clipping service recently:<br>...Web surfers weary of enduring the \"pulsating, candy-colored wave of advertising that has spread across the Internet,\" increasingly are turning to ad-blocking to speed up their download times. \"They are a symbol of people saying, 'I'm not going to take it anymore,'\" says Jakob Nielsen, co-founder of the Nielsen-Norman Group. ... Many online advertisers dismiss the trend toward ad-blocking, noting that when faster connections are available, consumers will not be so annoyed about being forced to download cumbersome advertisement files.<br>(Los Angeles Times 2 Mar 99)<br>Unfortunately, higher internet access speeds make the problem worse, not better. As access speeds grow, the size and complexity of ads grows with it. Current ads contain animation or executable material and may even be complete programs that contain crude games. The bloat in these ads keeps the download times for pages at the ragged edge of tolerability even as access speeds increase dramatically. At the same time, the textual content that the ads supposedly support stays roughly the same, so the percentage of bandwidth used for ads climbs sharply and will approach 99% in the not-too-distant future. Indeed, as the speed of your internet access goes up, ad blocking becomes increasingly more beneficial, not less.<br><br><a href=\"http://www.ecst.csuchico.edu/%7Eatman/spam/adblock.shtml\" rel=\"nofollow\">http://www.ecst.csuchico.edu/~atman/spam/adbloc...</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-28_16:03:08", "killed": false, "user_key": "57d55e41bd87b4f03457589d4b7fb446", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644419": {"up_voted": false, "ip": "", "has_replies": false, "message": "I hate Flash whether it be Mcromedia or Adobe Flash.<br>Now that 99.9% of the advertising on sites like Yahoo is flash I definately UNINSTALLED it. Just so I could have my sanity back when using the \"new\" Yahoo Financial Message Boards.<br><br>Its made a big improvement too. Although 1/2 of the ads on Yahoo are Yahoo style= <a href=\"http://yimg.com\" rel=\"nofollow\">yimg.com</a> or <a href=\"http://bannerspace.com\" rel=\"nofollow\">bannerspace.com</a> ads  or ATDMT.COM ads at least you can stopp all the distracting Flash ones by UNINSTALLING the Flash Player.<br><br>New Yahoo Message boards are causing 50% of people to leave their service in search of a new MB that is not threaded. Google Finance &amp; Lycos <a href=\"http://Ragingbull.com\" rel=\"nofollow\">Ragingbull.com</a> are 2 examples of up and coming ones.<br><br>Bye Bye Flash..", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-28_15:39:45", "killed": false, "user_key": "57d55e41bd87b4f03457589d4b7fb446", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644420": {"up_voted": false, "ip": "", "has_replies": false, "message": "Why Flash?<br>Over 700 million Internet-connected desktops and mobile devices have flash installed. Flash content reaches 97.7% of Internet viewers. Flash is here to stay and it will get even more big.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-08-06_23:01:23", "killed": false, "user_key": "3b021f3d7c583d23195437c17c05666a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644421": {"up_voted": false, "ip": "", "has_replies": false, "message": "James Bailey- I like YOUR way of thinking. ~~~~~~~~~~<br><br>As far as I can tell, 99% of all flash is advertisements. I don\u2019t want to see flash advertisements. It is very easy to turn off Flash in Safari without any hacks or add ons. I just turn off plug-ins in the security preferences. The only plug-ins I want are Quicktime embeds and for those I have a simple AppleScript that turns plug-ins on and off from the AppleScript menu as needed.<br><br>If you are a company that wants my business, it is unlikely that you will get it if your design requires flash. I simply don\u2019t see it because it is almost always turned off.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-08-28_09:51:32", "killed": false, "user_key": "8a47071035278ebbdafa64247ab22a8e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644422": {"up_voted": false, "ip": "", "has_replies": false, "message": "i DONT USE FLASH BECAUSE it INVITES ADVERTISING that<br>i dont want to see. Since Adobe bought flash Advertising has EXPLODED into being written into ever crevice and webpage on Yahoo, Ebay, common sites. When using IE and I don't have flash I get an error message.<br>When using flash the pages load up SLOW for the Advertising content that is embedded and delays loading other content first.  I  HATE fricking FLASH.  NO MORE ADVERTISING  would render FLASH obsolete. Plus I don't like distracting web pages.  When Yahoo Finance change its message boards  I UNINSTALLED FLASH PLAYER. Exactly 1/2 of my ANNONYING ADS  disappeared.  Now All I have to do is to figure out a way to get the Banner space and th yimg (yahoo ads) to disappear and I will have it made.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-08-28_09:41:03", "killed": false, "user_key": "8a47071035278ebbdafa64247ab22a8e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644423": {"up_voted": false, "ip": "", "has_replies": false, "message": "I had a similar discussion the other day.  You can find the article here <a rel=\"nofollow\">www.curtismorley.com</a><br>I list many sites that are successful using Flash and still make it on the search engines.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-08-23_16:51:41", "killed": false, "user_key": "933fdacd2efe13342d6ba008f3fae3d8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644424": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thank you the guys thank you Robert Scoble Favour has you I took away head and pub in Flash of my sites.<br>I am in order concentrate on a html  (xhtml) check and ca has given me fastness and one see information apparently. Greeting<br>ps. Never more Flash in navigations.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-10-01_20:01:50", "killed": false, "user_key": "583c06cb6dde1e5b48184587a10ebaab", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644425": {"up_voted": false, "ip": "", "has_replies": false, "message": "hey scoble, can you fix your scobleshow? <a href=\"http://timheuer.com/blog/archive/2006/10/23/13783.aspx\" rel=\"nofollow\">http://timheuer.com/blog/archive/2006/10/23/137...</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-10-23_15:46:06", "killed": false, "user_key": "0da85b11f5e4bb6ee114caede9c2d196", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644426": {"up_voted": false, "ip": "", "has_replies": false, "message": "<a href=\"http://www.bloggerblast.com/bestpills/\" rel=\"nofollow\"> brand propecia </a>.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-03-22_21:21:54", "killed": false, "user_key": "870a77a0e6322d83432b61c835fd6f73", "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}, "9644427": {"up_voted": false, "ip": "", "has_replies": false, "message": "Actually, your average user will install the plugin without a second thought. You've been thinking like geeks, who might have enough knowledge to be reticent.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-01-07_11:27:36", "killed": false, "user_key": "91bdde96191a4970b785becdf6847084", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "11 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644345": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"New Yahoo Message boards are causing 50% of people to leave their service in search of a new MB that is not threaded. Google Finance &amp; Lycos <a href=\"http://Ragingbull.com\" rel=\"nofollow\">Ragingbull.com</a> are 2 examples of up and coming ones.<br><br>Bye Bye Flash.. \"<br><br>How stupid is that? Why \"Bye Bye Flash..\" and not Yahoo!? They are the one's with the annoying ads right?<br><br>So, if they switched to ads made entirely of animated gifs would you turn off images and say \"Bye Bye GIFs!\"? I highly doubt it.<br><br>The worst part is that you pointed out using Google Finance. IT USES FLASH! Go here: <a href=\"http://finance.google.com/finance?cid=983582\" rel=\"nofollow\">http://finance.google.com/finance?cid=983582</a>. Right click on the chart and what do you see? The Flash Player! Oh wait, you uninstalled it so I guess you don't get all of the rich functionality Google created.<br><br>Now, I'm not the one to flame people publicly but come on. Publicy ignorance deserves public bashing, right?<br><br>This whole post, as others have said, is ridiculous. With all of the bad implementations of WMV, Real, QuickTime, etc out there, why is Flash being bashed? I mean seriously...I guess you like clicking on the Windows Media, Real, or QT logo for video sites. LOL.<br><br>As Mike Chambers so eloquently pointed out (lol), what happens when you visit a page with a WMV and don't have the \"plugin\" (player) installed? Well, for him (on a Mac) it did something different than what it would do for me. What does it do for me in Firefox on a PC?<br><br>THE SAME DANG THING! Seriously, the same window shows  window/bar shows for QT, Real, and Windows Media. Why is this? BECAUSE THEY ARE PLUGINS!!!!!!!!!!!!!!<br><br>LOL. Come on...let's get real. Google Video and YouTube wouldn't be nearly as successful using any other technology. If you think so, name one (just one!) site that is even close to being as big as they are for video and doesn't use the Flash Player.<br><br>1 more thing about the person who said, in my words, \"Flash is bad since it can't be searched.\" What happens when the search engines get smart enough to search inside of swfs? Hrmmm...what will be your excuse for not using Flash then? It will have the same abilities as HTML plus TONS more. Just a thought. :-)<br><br>I'll stop there. I could go on all day and refute each and every negative statement on this site but I need to get off of this laptop. :-)<br><br>Scoble, you definitely opened a can that seems you can't provide educated or even remotely eloquent responses to any of the Flash facts folks gave above. You seemed to nicely avoid many of the facts. :-) Give us more than a badly done site as proof why you shouldn't use Flash. Otherwise, turn off images (to remove animated gif's), uninstall Windows Media Player/QT/Real (since a badly done site will show the same message), and don't install WPF/E when it comes out. Then you'll get nothing but text and you should be happy. ;-) Go 1985!<br><br>(sorry for the flaming; ignorance/close minded people irritate me)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-08-05_13:33:34", "killed": false, "user_key": "abc278de26c5566725b648a54737fcda", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644346": {"up_voted": false, "ip": "", "has_replies": false, "message": "You guys are forgetting the you can not save stream FLV unless you have capture software\u2019s like fantasia. Now that Adobe has flash and with flash comes all media types (Cell, PDAs, Navigators, etc, etc) the $$$ for adobe will come from everywhere\u2026 And when they start using FLV as their native video format for Adobe Premiere playback and archive\u2026 editors and designers will start using the FLV like never before because of media size, quality, interactivity, and it has much fewer problems comparing with other formats.  Adobe is a very stable company and today their software are in every design company in the world\u2026 And comes flash\u2026 You can\u2019t browser the internet without it. Time is money and I don't want to wait 20 seconds to five minutes on Broadband for a QuickTime, Real, WMV to download... FLV start playing in seconds with no waits, check this site that I did with FVL siles comparing to other formats out there <a href=\"http://www.talentbeachmusic.com/html/english/artists/artist_001.html\" rel=\"nofollow\">http://www.talentbeachmusic.com/html/english/ar...</a><br><br>Best,<br><br>Ney", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-14_21:25:16", "killed": false, "user_key": "3b021f3d7c583d23195437c17c05666a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644347": {"up_voted": false, "ip": "", "has_replies": false, "message": "Dave,<br><br>I agree that it would be corporate suicide if Adobe starts to charge for their player but I have seen companies with such free-product reach with no immediate monetization succumb to pressure to push pro versions and ads. I have no idea what Adobe has in mind but they must be thinking hard about how to make money off of YouTube and Google Video. What is your guess about how they will do this?<br><br>I am very torn about Flash Video. I really appreciate their commitment to Mac and Linux. I think the light footprint of their player has dramatically simplified the consumption of online video which has dramatically increased the audience of users who are willing to watch online video. All great stuff.<br><br>My concern is that it is proprietary and non-interoperable. This means that if they become the de facto standard then they have too much power and content owners are too dependent upon one company for distribution.<br><br>So, yes, I am paranoid. Companies must do what they can to stay in business and drive profit. If Adobe does not have a return on their Flash Video investment then they might seek some sort of monetization strategy for the client software. It might be suicide if they don't do this at some point.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-14_18:54:04", "killed": false, "user_key": "ae0d6164f8fe6e21e33d6b902b075306", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644348": {"up_voted": false, "ip": "", "has_replies": false, "message": "Also, I should reccommend listening to BoagWorld, a podcast from two Brits about webdesign. They have some very interesting discussions, interviews and arguments for and against Flash.<br><br><a href=\"http://podcast.com/show/1678/\" rel=\"nofollow\">http://podcast.com/show/1678/</a><br><br>Recently interviewed Aral Balkan, open source flash evangelist", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-07_12:02:16", "killed": false, "user_key": "22b10ad7c0dc887d3bc66e41ed0de186", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644349": {"up_voted": false, "ip": "", "has_replies": false, "message": "Seems like a cheap shot at a superior software program,  especially when it's really the fault of the developer. There's a lot of bad drivers on the road but I'm not going to stop driving a car.<br>Now, a more appropriate article with critical merit  would be one like \"Why I don't use Internet Explorer and wish no one else did either ...\"", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-13_17:34:27", "killed": false, "user_key": "aeed6ba84eafd96609ac7dc72167dad0", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644350": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert,<br><br>A while ago, you'd seen my Flash OPML Reading list /blogroll and rather liked it ;)<br><br>Here's another one - <a href=\"http://readerss.com/opml/\" rel=\"nofollow\">http://readerss.com/opml/</a><br><br>And not forgetting the first ever:<br><a href=\"http://www.blugg.com/caster/\" rel=\"nofollow\">http://www.blugg.com/caster/</a><br><br>;)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-07_11:44:55", "killed": false, "user_key": "22b10ad7c0dc887d3bc66e41ed0de186", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644351": {"up_voted": false, "ip": "", "has_replies": false, "message": "I feel the exact same way as you do...but it's towards Quicktime.  Everytime I hit a page with Quicktime, I \"quickly\" hit the back button.<br><br>Why is this?  Well, let's see...<br><br>1) Quicktime is a pain to download and install<br>2) Once installed, it wants to take over as player for all media, unless you go through the custom setup and spend time unselecting all of the formats it wants to take over<br>3) It parks itself in the Window taskbar and wants to always be running<br>4) It doesn't play nicely in the browser window like a FLV!!!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-14_14:22:08", "killed": false, "user_key": "44ddc99a06441dd323a18c7bcc7b21ef", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644352": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert I totally agree with you on this one. Flash has its place, and is great for rich media two-clicks in. But it's never going to be a standard, and should never be used as a landing site. You're right, any non-techie user will hit that message and say see ya later. Remember back 5 years ago when companies were actually building commercial sites solely in Flash? Absolute craziness (and you still see it sometimes). Home pages need to be simple and load quickly, with no assumptions made for bandwidth. Let the user decide if they want to dive into a Flash ap, video or audio (and if you're talented enough to design a Flash site, you should be able to build an alternative version, with user preferences that can be preserved in cookies).", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-07_00:29:27", "killed": false, "user_key": "b0f736080cfab9d27e3c72000ba4715c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644353": {"up_voted": false, "ip": "", "has_replies": false, "message": "I got a really great comment from Crazy Ivan regarding why Macromedia chose Flash over H264. Please see it here: <a href=\"http://podslug.com/blog/?p=32\" rel=\"nofollow\">http://podslug.com/blog/?p=32</a><br><br>On2 also has a great article on Flash versus H264 here: <a href=\"http://on2.com/technology/on2-vs-h264/\" rel=\"nofollow\">http://on2.com/technology/on2-vs-h264/</a><br><br>It is a very tough choice. After reviewing these, do you still not want to use Flash? Why?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-06_11:09:16", "killed": false, "user_key": "ae0d6164f8fe6e21e33d6b902b075306", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644354": {"up_voted": false, "ip": "", "has_replies": false, "message": "The main reasons people hate Flash are 1) All the damn Flash ads you get stuck with 2) All the rest of the flash based content and navigation that can be done without Flash or isn't needed.  The only thing people like about Flash is the rare useful and unique content that can't be displayed without it - rare and unique as in .001% of all Flash content on the web that site designers/owners really believe to be such.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-06_08:45:17", "killed": false, "user_key": "48a6b8f25e86fb6ffe2cc5539524502f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644355": {"up_voted": false, "ip": "", "has_replies": false, "message": "... but on the other side... who the f--k is using Firefox anyway?!?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-06_08:16:19", "killed": false, "user_key": "62b30f6c79a797384c819f0715fc6ade", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644357": {"up_voted": false, "ip": "", "has_replies": false, "message": "Most of the non-geeks that I know don't even know what Firefox is, let alone use it...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-06_04:47:32", "killed": false, "user_key": "c17cb25cd9793d3d972c5cc3b1ae6eee", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644358": {"up_voted": false, "ip": "", "has_replies": false, "message": "James: that might be true, but it probably won't be for long. Firefox has somewhere around 20% marketshare for the mass market and 50% with geeks and Firefox has been gaining quite steadily lately.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-06_04:56:16", "killed": false, "user_key": "456636993483a10e9b50ffe17733de4a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644359": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thought I'd point folks to a site I consider to be a highly polished Flash-based interface: Laszlo Mail (<a href=\"http://laszlomail.com\" rel=\"nofollow\">http://laszlomail.com</a>). Worth a peek. For me, loads fast and works well. The Open Laszlo project, interestingly, has a compiler which can generate Flash --or-- DHTML. Very interesting stuff. Flex2 is great, but Laszlo is quite nice as well. <a href=\"http://www.openlaszlo.org/\" rel=\"nofollow\">http://www.openlaszlo.org/</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-06_00:05:01", "killed": false, "user_key": "7026aea0c45b6946c9765df522035c71", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644360": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have always been told that search engines won't index a site that has flash as its homepage.  Does the javascript redirect the search engines to an html page?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_22:52:42", "killed": false, "user_key": "4c71fd381918fbe9242c0c2de0436a0a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644361": {"up_voted": false, "ip": "", "has_replies": false, "message": "Flash is fine, when used to ENHANCE a site.<br><br>This looks like a crappy intro-loader (usually complete with 'skip' button), and one of the main reasons people hate flash.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-06_03:23:21", "killed": false, "user_key": "15ceeef84bcec075e2dc57c844b8dbcf", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644362": {"up_voted": false, "ip": "", "has_replies": false, "message": "Flash is great if used properly. You have the potential to create a rich and compelling UI that looks and behaves cross platform and cross browser for most broadband users (98%!). While you might try this with DHTML/CSS, your efforts will be far more difficult and less successful. Flash sucks if it's only being used for eye candy. We all agree on this point. But, it's great if it's used by talented designers and UI experts to create interfaces that operate simply, load fast and behave the same no matter which browser or OS you're using.<br><br>Regarding ON2's V6 and V7 codecs - they're actually quite remarkable. Fast encoding, great playback qualities. H.264 has potential patent issues, that's why some big players aren't embracing it as quickly as expected.<br><br>Don't blame bad Flash on Flash/Adobe/Macromedia. Want to see bad HTML? Visit just about any page on MySpace. :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_22:13:36", "killed": false, "user_key": "7026aea0c45b6946c9765df522035c71", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644363": {"up_voted": false, "ip": "", "has_replies": false, "message": "i agree flash sucks a bit, though unfortunately i need it for my websites. In my case, if the file is too big, i use a popup window to load the video. But i understand why people dont use flash, most visitors dont have patience to wait for the flash file to load.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_21:23:17", "killed": false, "user_key": "cc38d098e51a404cf96cd54e0c5de450", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644364": {"up_voted": false, "ip": "", "has_replies": false, "message": "BlogReader and David Geller,<br><br>I see at least two problems with Flash:<br><br>1. I can't play the flash video on: the ipod, tivo, psp, any set top box, the Nokia 91, any phone, or any other portable device for that matter ... Flash may work on 98% of the PCs but this is only a fraction of where I want to watch my video.<br><br>2. What if Adobe decides to bundle the Acrobat reader in the same way that Apple is bundling iTunes with Quicktime for Windows? Why not? Then what? What if they start including some sort of advertising pre-roll or start charging for the player? Why should they give it away for free once they have total lock in? Would you? Do you think Adobe makes a dime off of YouTube or Google video? Don't you think they want to?<br><br>Let's just imagine for a moment what Microsoft would have done if they had a monopoly on online digital video playback. They got pretty close before iTunes and Flash saved us. Content owners were afraid. Rightly so.<br><br>Now let's imagine another scenario: Microsoft buys Adobe and then decides that Linux and Mac playback should be handled in the same way that Mac support for Windows Media is handled. Now we are all sunk.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-06_02:04:53", "killed": false, "user_key": "ae0d6164f8fe6e21e33d6b902b075306", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644365": {"up_voted": false, "ip": "", "has_replies": false, "message": "Totally agree. A tiny bunch of people make really cool stuff in Flash, but about 95% of Flash seems to be used for rollovers and navigation that could be done in CSS, or Javascript at worst.<br><br>FlashObject is a pretty good JS library that handles Flash detection in a clean, cross-browser, standards compliant way. It uses clean HTML and replaces it with Flash if it's available, so you still look okay if Flash isn't installed.<br><br>I wrote about it here:<br><a href=\"http://weblogs.asp.net/jgalloway/archive/2006/03/03/439483.aspx\" rel=\"nofollow\">http://weblogs.asp.net/jgalloway/archive/2006/0...</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_20:45:44", "killed": false, "user_key": "14b4977ffcd06f5f71eac605a3fbe3fb", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644366": {"up_voted": false, "ip": "", "has_replies": false, "message": "Web pages with title bars that say \"Be patient\" are a bit like emails that say \"Having trouble viewing our HTML mailer?\"<br><br>In both cases, it's a sign for me to check out, because there's nothing there I'll be interested in.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_20:56:21", "killed": false, "user_key": "656056ac7ffbc97b499c02df119e2bab", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644367": {"up_voted": false, "ip": "", "has_replies": false, "message": "<i>I predict that Flash wont be the winner in the codec silo war because they have placed their bet on the proprietary on2 codec but we can expect a lot of frustration as folks struggle to publish video on the web in a way that will reach across OS and device platforms.</i><br><br>I haven't had a problem with watching google videos on my mac and windows boxes and they use Flash.  Where do you see these problems?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_19:48:24", "killed": false, "user_key": "49ffc4abf7f698f1c4a5260536b48c68", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644368": {"up_voted": false, "ip": "", "has_replies": false, "message": "Flash makes the \"Which browser are you using?\" question go away. As long as you have Flash, it will look the way it should.<br><br>Maybe when Apple, Microsoft, Opera, Mozilla, and all the other browser devs stop quarreling like little children and start rendering HTML the same, Flash will stop taking over the internet", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_19:08:48", "killed": false, "user_key": "422187df3c45655b0dc2ae5de0710b27", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644369": {"up_voted": false, "ip": "", "has_replies": false, "message": "I predict that Flash wont be the winner in the codec silo war because they have placed their bet on the proprietary on2 codec but we can expect a lot of frustration as folks struggle to publish video on the web in a way that will reach across OS and device platforms.<br><br>I predicted that the winner will be H264 in 3GP via RTSP and HTTP here: <a href=\"http://podslug.com/blog/?p=32\" rel=\"nofollow\">http://podslug.com/blog/?p=32</a><br><br>The only viable way out of the codec silo is if two strong vendors (like apple and real) agree to support the h264 standard with open file formats and open streaming protocols ... then MS will follow, then Flash. This will only work if every part of the system is interoperable.<br><br>I wish the answer was Ogg Vorbis and Theora but I just don't think that there will be enough market momentum behind this open source alternative to move the vendors to adopt it.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_19:24:52", "killed": false, "user_key": "ae0d6164f8fe6e21e33d6b902b075306", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644370": {"up_voted": false, "ip": "", "has_replies": false, "message": "As far as I can tell, 99% of all flash is advertisements. I don't want to see flash advertisements. It is very easy to turn off Flash in Safari without any hacks or add ons. I just turn off plug-ins in the security preferences. The only plug-ins I want are Quicktime embeds and for those I have a simple AppleScript that turns plug-ins on and off from the AppleScript menu as needed.<br><br>If you are a company that wants my business, it is unlikely that  you will get it if your design requires flash. I simply don't see it because it is almost always turned off.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-06_01:38:45", "killed": false, "user_key": "70f05d969defbbc33eee516c0905a2e0", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644371": {"up_voted": false, "ip": "", "has_replies": false, "message": "My name is the message.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_17:59:19", "killed": false, "user_key": "915a3cc61f263a415bc8c57d49794553", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644372": {"up_voted": false, "ip": "", "has_replies": false, "message": "Or this name is better.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_18:00:25", "killed": false, "user_key": "915a3cc61f263a415bc8c57d49794553", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644373": {"up_voted": false, "ip": "", "has_replies": false, "message": "I fail to see why Flash is the issue. I think this is really a higher-level issue of the accessibility of video blogging in general. For example, I followed your link to Amanda's site where she announced that she was un-Boomed. At least, I *think* that's what she announced. See, the problem was that I went to click on the movie links, and they all failed to download past 2 or 3%, so I couldn't really see what she announced. I, too, used Firefox and her site needed a movie plugin as well. What happens if I don't have QuickTime or another appropriate plugin installed? The same thing as your experience with not having the Flash Player plugin -- I leave the site wondering what could have been. I did a quick look through her site and didn't see any sort of \"transcript\" pages where I could just skim through the text of the videos as an alternative. Why don't these types of pages exist? To me, that's the real problem here...not the fact that it was Flash.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_17:45:01", "killed": false, "user_key": "681acde266344af46b403a03f999070a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644374": {"up_voted": false, "ip": "", "has_replies": false, "message": "Yeah, the site's programmer should have done their homework.<br><br>But why does MS make this annoying? Flash is installed by default with mac os x, and there's a central plugin folder for all browsers, so if you switch browsers you don't have to reinstall plugins. Hopefully Vista will deal with this issue better, and hopefully by the time they ship they'll have flash installed by default.<br><br>Blame the programmer, blame windows, but don't blame flash. That's like blaming HTML or GIF or something.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_17:40:07", "killed": false, "user_key": "c51b39fa3c79ccb99dcb8a076bc98287", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644375": {"up_voted": false, "ip": "", "has_replies": false, "message": "That's just bad programming.  Any flash/web developer worth his salary knows about using SWFObject and having alternate content in divs for users without Flash, without the proper plugin version, or even without javascript.<br><br>I wouldn't knock flash just because some developer was lazy.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_17:21:52", "killed": false, "user_key": "ea5036994d8e3d00fe4c9ede36c2d05a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644376": {"up_voted": false, "ip": "", "has_replies": false, "message": "PodShow is in the process of switching from private to public beta.  When the switch is complete, you'll see the site isn't using that much Flash.  What you're missing during this transition phase is several videos of Adam Curry poking away impatiently at his computer waiting for the launch to go live.  Because of your prejudice against Flash, you miss out on the cuteness.  :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_17:21:22", "killed": false, "user_key": "7108884010f880da03db693f30558cdf", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644377": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert is correct. Let's say that a non-geek Windows user downloads FF and doesn't install Flash as well and then hits a site like the one Robert mentions -- he's gone. I'm a geek. I work with geeks. I spend a good deal of time helping non-geeks off the job. Perception is reality. Whether or not this is a programmer error, FF error, or use errror, the person is gone and won't come back. Full stop.<br>It's safe to assume that everyone who left a comment on this today has more than a basic understanding of the Internet and software. The other 99% of people don't.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_17:20:14", "killed": false, "user_key": "1560bdf4e214009847b4f1ada85e425f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644378": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"Now, if a 'normal' person (non geek) hit this site\"<br><br>Well they'd probably wouldn't see the screen you saw, why - because almost 95% of internet users have Flash 7 installed (<a href=\"http://www.adobe.com/products/player_census/flashplayer/version_penetration.html\" rel=\"nofollow\">http://www.adobe.com/products/player_census/fla...</a>)<br><br>And with good programming, which this site didn't have, you can make the install process much better for the average user.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_17:14:40", "killed": false, "user_key": "d520a16cfb6bfe143da32d08e41e3380", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644379": {"up_voted": false, "ip": "", "has_replies": false, "message": "What, these people have never heard of a detection script? Its called JavaScript, look it up.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_16:59:09", "killed": false, "user_key": "a6dad7c9fd6c02082fbae892b8f7d7bb", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644380": {"up_voted": false, "ip": "", "has_replies": false, "message": "Scoble, that's not Flash's fault, its the lazy/incompetent programmer's fault.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_16:59:53", "killed": false, "user_key": "a6dad7c9fd6c02082fbae892b8f7d7bb", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644381": {"up_voted": false, "ip": "", "has_replies": false, "message": "Common Scobble don't hate on flash for nothing. All you had to do was to click and install the missing plugin. Firefox rocks, Flash rocks. Expression sucks.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_17:09:11", "killed": false, "user_key": "961373323f5025841e5d985bf02302f1", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644382": {"up_voted": false, "ip": "", "has_replies": false, "message": "Flash. Well. It's fun to develop but sometimes not always needed. For the new way of designing blogs and sites, mainly the basics are enough for most of the time, especially for end users.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-06_01:15:27", "killed": false, "user_key": "9a8f75cf4bfbda303c25b33b7772acee", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644383": {"up_voted": false, "ip": "", "has_replies": false, "message": "The podshow site currently just shows a placeholder video. I'm guessing that once Podshow+ is launched, it will be replaced with a proper HTML page again.<br><br>If you look at the title of the page, you can see that it says \"Be Patient!!!\". Read about the current page on <a href=\"http://curry.podshow.com/?p=213\" rel=\"nofollow\">Adam Curry's weblog</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_17:05:33", "killed": false, "user_key": "bfeecfdecee45ce56a5d0526ffa36113", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644384": {"up_voted": false, "ip": "", "has_replies": false, "message": "Doh! I have a little flash piece on my site. Since I am still early on and no one is really bothering with it for now I'll leave it and looking at changing it later. But seriously lets get to the real crux of the issue here. The problem is you are using Firefox as a browser (duck low and wait for incoming fire....)  ;-)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-05_16:45:21", "killed": false, "user_key": "7a94ab3bcd3cdb8395728b8b1cd60672", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644385": {"up_voted": false, "ip": "", "has_replies": false, "message": "PodSlug (Erik Herz) - \"What would you do if Adobe decides to start charging for the use of their player?\"<br><br>I think that has to be the most ignorant statement of all in this whole post. That would be corporate suicide. Why would they buy Macromedia for the Flash player if they were going to ruin the adoption rate by charging for it. Have they ever charged for the Acrobat reader?<br><br>Coming from someone who spent so much time at RealNetworks (arguably the worst media player on the Planet)...For someone who is \"very excited about the potential for online media\" you sure have a very narrow minded, ultra conservative, paranoid view on things.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-12_20:18:15", "killed": false, "user_key": "f5e1c91246eaf368b225c9cd66534d69", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644386": {"up_voted": false, "ip": "", "has_replies": false, "message": "Good Point Erik! I don't think Adobe would be that stupid to charge the flash player from us. Now, think like Microsoft of what they did comparing to Mac... How many software\u2019s are out there for PC OS? And how many programmers will create software\u2019s if you didn't have the freedom of windows? I guess only 3% globally! Got it? Flash became to big like windows and I hope someone out there besides Microsoft is working on a similar player or technology. Got have a competition and so far none. Like I what I wrote, the future is interactive television and not web, the internet is only a part of visual information that delivers what is becoming the next amazing creations of freedom displays\u2026 I mean we are going to see amazing ways of motion graphics that will be totally interactive, in all shapes and sizes\u2026 Bye Bye 4:3 or 16:9 video sizes and welcome circles, triangles, whatever sizes you may like\u2026 New software\u2019s like flash professional will need to be created for the very soon technologies that most of you don\u2019t even imagine will come true\u2026 More and more we want videos to be part of our daily life, and that will be in a liquid forms of navigations and videos embedded on the shape of any products. Now, flash opens the door for the next generation of information display and because of the millions of designers and programmers out there uses everyday Adobe knows that today they are in control.  The true is that flash is the only player out there for the best video intregation to your site and CD-roms because it is FREE, small size to download, no pop-outs windows or players, Interactive, and etc, etc, etc\u2026 It is so great player that people thought that they should use instead of html pages. If it get fast, again, bye, bye html website sites. I guess, stream or download will not matter soon, it will have to be all stream because they are opening the pipes, finally! Costs will very!!!!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-11_00:00:07", "killed": false, "user_key": "3b021f3d7c583d23195437c17c05666a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644387": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ney,<br><br>Would you like your video to play on any portable video devices like the following: <a href=\"http://portablevideo.engadget.com/\" rel=\"nofollow\">http://portablevideo.engadget.com/</a><br><br>What would you do if Adobe decides to start charging for the use of their player?<br><br>Do you want to stream your video rather than use HTTP download? How much does that cost?<br><br>Do you feel confident enough in this solution to tie yourself to only one vendor for video delivery?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-10_20:59:49", "killed": false, "user_key": "ae0d6164f8fe6e21e33d6b902b075306", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644388": {"up_voted": false, "ip": "", "has_replies": false, "message": "Why should I use Quicktime, Real Media, WM player when I have flv? Fast playback, interative, great image quality, and more. Don't use flash if you want to make the video for yourself. Adobe sees that flash is a big killer on the media players out-there and it will get better over time.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-10_12:30:29", "killed": false, "user_key": "3b021f3d7c583d23195437c17c05666a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644389": {"up_voted": false, "ip": "", "has_replies": false, "message": "Flash is the future of video on all types of devices... tvs, screens, hd-dvd. etc, etc... Can't you see that? The future is interactive television and not html or else... time to move on.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-10_12:23:44", "killed": false, "user_key": "3b021f3d7c583d23195437c17c05666a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644390": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi Scoble,<br><br>Sorry if I was a little harsh, it was late, but you didn't have to accuse me of being a Mac booster!<br><br>My point with the podtech link is that site is littered with flash movies and it's a pretty good example of how flash should be used.<br><br>I've been developing consumer level software, games, and websites for 11 years - so yeah, I've watched quite a few real users.  They're why I'm in this business. The fact is well over 90% have flash installed. If you're going to present any time-based media on your site you'll reach the most users and get the most consistent UE with flash.<br><br>You're right that \u201cClick here to download plugin\u201d button would present an tremendous obstacle for some, but I really think anybody who's got the cojones to download Firefox can handle a little clicky clicky to get flash on there. If they don't, they'll be using IE which has Flash preinstalled.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-09_12:18:19", "killed": false, "user_key": "0cc57bca301b05ca40cebc70571e7124", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644391": {"up_voted": false, "ip": "", "has_replies": false, "message": "Don't you just love the \"Shock-Jock\" style posts like this? Making a completely ignorant statement to get airplay and traffic? I bet this is even a tip in your book isn't it... a chapter titled something like \"Making ignorant statements can help your SEO rankings\". I have little doubt that you didn't realize how ignorant your statements were going to sound when you posted this nonsense, and probably had a pretty good idea what the response would be.<br><br>So if I read your book and it sucks, I should swear off books all together? Isn't that the rebuttal that you were expecting when you made this post. All of you people posted imaginary statistics, and guessing at the \"geek\" and \"non geek\" reactions to flash, and the idiotic assumption that the technology is somehow to blame for a bad experience need to take a look in the mirror. Its a fact that there are more HTML sites than flash, and would venture to \"guess\" that there are faaaar more bad implementations, non-cross browser implementations of HTML then there ever will be of Flash.<br><br>I hope you get the attention you so crave with this post, it sure isn't helping your reputation.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-08_10:28:36", "killed": false, "user_key": "1a72c2058deacbb38d600ce79857ef75", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644392": {"up_voted": false, "ip": "", "has_replies": false, "message": "Gee that was snarky ^_^<br><br>\"Now, yeah, the real answer would be to do browser detection, and play out an HTML version if Flash isn\u2019t available.\"<br><br>I think the concept you are looking for is graceful degradation. I agree a website should degrade gracefully. If it's Flash it SHOULD have an HTML alternative. If you consider this as part of working with Flash then it's really not a lot of extra work. Flash DOES tend to be exclusive. How many Flash sites can you think of that meet accessibility standards?<br><br>\"Oh, you think all your users have Macs? Think again.\"<br><br>Unfortunately, you are right about that. If all users had exactly the same setup web design would be a piece of cake. I think 70%-ish of my users have Windows (95-XP) and use IE 6 and below. Talk about a web designer's nightmare! At least with Flash there is only one standard and one company making the flash player. I defy you to get a web site to look consistent between just Firefox and IE without having to \"do it effectively twice\" or more.   Though again, if you account for browser inconsistencies before you develop a site, the extra work isn't as much. Of course, it's easier with a blog one column of text is fairly simple especially if half the work is done for you by something like Wordpress. But then if you did your blog with Flash it would be like putting a Hemi in your Vespa and, lazy or not, no one needs that.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-09_03:14:30", "killed": false, "user_key": "0ff9b13312149c4f13c67961e6265e8a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644393": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"I just installed Flash, by the way. It took half a dozen clicks. Really user friendly.\"<br><br>Only one click on my Mac, maybe half a dozen clicks is why I don't use Windows. Hmm... I should pitch that to Apple. \"If you're lazy get a Mac. OSX offers 84% less clicks than Windows.\" ;P", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-09_03:12:54", "killed": false, "user_key": "0ff9b13312149c4f13c67961e6265e8a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644394": {"up_voted": false, "ip": "", "has_replies": false, "message": "Oh that as if I'm saying: I had a bad experience with Windows XP, now I'm never going to use any Windows OS again! .... Ridiculous BS!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-08_09:02:25", "killed": false, "user_key": "c8e5521716660d58be358b1e5d85ef60", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644395": {"up_voted": false, "ip": "", "has_replies": false, "message": "What does that have to do with Flash?  It's the web developer's fault.  Flash provides way more than other options, and if you don't know how to setup a java detectionscript then you're not looking for Flash developer tools because you're a tool.  Go look at SWFObject you lazy kid.<br><br>Microsoft is conducting a minor war against Adobe (including Flash) at the moment because they need people to believe that Flash isn't reliable, so that they use Microsoft's upcoming web development crapware.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-08_19:20:13", "killed": false, "user_key": "d78b16fa7014fde6890e96fc712b1149", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644396": {"up_voted": false, "ip": "", "has_replies": false, "message": "At the risk of repeating what has already been said by multiple commenters, this is an example of bad use of a technology, not a limitation of the technology itself. I would urge you to take a look at SWFObject:<br><br><a href=\"http://osflash.org/swfobject\" rel=\"nofollow\">http://osflash.org/swfobject</a><br><br>SWFObject is one method of embedding SWF files (compiled Flash bytecode) into web pages that defaults in alternative content being shown if Flash and/or JavaScript is unavailable. If the required version of Flash is available, the DIV with alternative content is changed to include the Flash movie.<br><br>The ubiquity of the Flash player, its cross-platform support, and the level of interactivity it provides make Flash a very compelling solution for a variety of tasks. As with every technology decision, however, whether or not to use Flash for a given use case should be on the requirements (functional, usability, accessibility) of that individual use case. There are certain use cases where you simply cannot create the same functionality in HTML (for example, alpha channel video) or where the cost of developing the same level of interactivity in a cross-platform manner are prohibitive (in Flash you never have to write a line of code to check which platform you're running on or for browser incompatibilities. This allows you to concentrate on actually writing your application.)<br><br>For video on the web, Flash is by far the most elegant, easy-to-use, cross-platform solution available as empirically evidenced by its use in some of the largest Internet video sites (YouTube, Google Video, etc.)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-08_03:18:29", "killed": false, "user_key": "224dd5303d592cf07901ffa37b57cce7", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644397": {"up_voted": false, "ip": "", "has_replies": false, "message": "This is \"Why I Don't Read Your Blog\"<br><br>Any \"normal\" person who installs firefox could click that gigantic \"Click here to download plugin\" button in the middle of the page.<br><br>Otherwise how will your fans listen to you on <a href=\"http://www.podtech.net/?cat=47\" rel=\"nofollow\">podtech.net</a> or watch you on youtube?<br><br>Oh yeah, no \"normal\" person would do that.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-08_21:36:27", "killed": false, "user_key": "0cc57bca301b05ca40cebc70571e7124", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644398": {"up_voted": false, "ip": "", "has_replies": false, "message": "Joey: you can download podcasts with iTunes. That's how most people listen to them.<br><br>Yes, they could click that. But have you actually watched a real user? I have. They are freaked out by the prospects of getting malware. Oh, you think all your users have Macs? Think again.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-08_21:40:30", "killed": false, "user_key": "456636993483a10e9b50ffe17733de4a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644399": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hey, this isn't a Microsoft Web site anymore. It wasn't a Microsoft Web site I visited. It wasn't even a Microsoft Web browser I used.<br><br>I just installed Flash, by the way. It took half a dozen clicks. Really user friendly.<br><br>I still think it's an inappropriate technology to use to display the home page of your Web site. Now, yeah, the real answer would be to do browser detection, and play out an HTML version if Flash isn't available. Wonderful. But that didn't happen in this case and doing that increases the costs of producing a Web site since now you have to do it effectively twice.<br><br>I'm lazy. I'll just do it the HTML way and not worry about it.<br><br>Oh, and I'll give the same answer to Microsoft's salespeople when they come to show me how awesomely cool WPF (er, .NET 3.0) is.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-08_21:45:09", "killed": false, "user_key": "456636993483a10e9b50ffe17733de4a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644400": {"up_voted": false, "ip": "", "has_replies": false, "message": "I went to a website where the user had used the blink tag, and had used CSS to create pink text on a pink background.<br><br>Scoble's Lesson: Don't use HTML and CSS.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-09_14:50:13", "killed": false, "user_key": "26787e21beabaf1c968a0d9b7939ac2b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644401": {"up_voted": false, "ip": "", "has_replies": false, "message": "Joey: I've seen Firefox loaded on lots of machines where the main user didn't load it. Usually a geek in the family loaded it up and said \"use this and you won't get malware anymore.\"<br><br>Even where someone did get the cojones to download Firefox, it was because they heard it didn't have the security problems. I have yet to find a non-geek who says \"I downloaded it for tabs and extensions.\"<br><br>So, the non-geek people who are likely to download and install Firefox are also the ones who are unlikely to load any extensions or plugins. At least that's my theory based on watching real-life users who aren't geeks.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-09_13:32:12", "killed": false, "user_key": "456636993483a10e9b50ffe17733de4a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644402": {"up_voted": false, "ip": "", "has_replies": false, "message": "Erik, Here is a sample of stream flash videos that I am working on: <a href=\"http://www.dme2004.com/DME_Podcasts/DMEPodcasts.html\" rel=\"nofollow\">http://www.dme2004.com/DME_Podcasts/DMEPodcasts...</a><br><br>PS: Only the Podcast Web version is working, a video will start playing if you select... Let me know if it plays ok on your side.<br><br>Best,<br><br>Ney", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-22_12:10:57", "killed": false, "user_key": "3b021f3d7c583d23195437c17c05666a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644403": {"up_voted": false, "ip": "", "has_replies": false, "message": "Complaining about the user experience in this case seems valid, but complaining about Flash in general is a bit misguided.  As several others have pointed out, the problem here is how Flash was implemented, and this particular implementation does nothing to help the user who does not have any Flash version installed.<br><br>This is like complaining about your new toaster because it is still sealed in the box, and therefore makes the process of producing your toast a bigger hassle than it ordinarily would be.  Does that make toasters a bad idea?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-21_10:50:26", "killed": false, "user_key": "aec65179af715bc69e2a32bba89a333e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644404": {"up_voted": false, "ip": "", "has_replies": false, "message": "That's so right Brian!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-21_14:03:21", "killed": false, "user_key": "3b021f3d7c583d23195437c17c05666a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644405": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ney,<br><br>Do you know how much it costs to stream flash video?<br><br>Erik", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-17_16:42:21", "killed": false, "user_key": "ae0d6164f8fe6e21e33d6b902b075306", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644406": {"up_voted": false, "ip": "", "has_replies": false, "message": "Erik,<br><br>The best way is to contact one of these companies, Good Luck with prices!<br><br><a href=\"http://www.vitalstream.com/macromedia/index.html\" rel=\"nofollow\">http://www.vitalstream.com/macromedia/index.html</a><br><a href=\"http://www.akamai.com/en/html/services/flash_streaming.html\" rel=\"nofollow\">http://www.akamai.com/en/html/services/flash_st...</a><br><a href=\"http://www.limelightnetworks.com/flash/\" rel=\"nofollow\">http://www.limelightnetworks.com/flash/</a><br><a href=\"http://www.mirror-image.com/\" rel=\"nofollow\">http://www.mirror-image.com/</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-17_23:38:53", "killed": false, "user_key": "3b021f3d7c583d23195437c17c05666a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644407": {"up_voted": false, "ip": "", "has_replies": false, "message": "Erik, Stream FLV is much better for the simple fact that you can jump to any part of the video, It can use for live feed or as webcam feed, not limit to how many users can se at the same time, you can't just copy the url or path to view the video (like what google is doing to FLV out-there), detect your internent speed and delivers the right compresion to the right user, it does stay on the local hard-drive, and etc.... Now, the progressive download FLV is just cheaper but you have to wait to end the download if you want to jump to the last scene o frame of the video and it stays on your local hard drive, also it is limited how many users can access the video at the sametime. Yes, the videos on that site that I did are progressive FLV, the Stream versions I have I can't show because of classified projects. I know that Flash Communication Server is the best way to stream FLV files with video.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-16_17:16:06", "killed": false, "user_key": "3b021f3d7c583d23195437c17c05666a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644408": {"up_voted": false, "ip": "", "has_replies": false, "message": "Super fast! Are you using streaming or HTTP download? What do you think the advantages of streaming Flash versus HTTP download would be?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-16_15:49:58", "killed": false, "user_key": "ae0d6164f8fe6e21e33d6b902b075306", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644409": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ney,<br><br>Your website looks great and the video is wonderful! I was very impressed with the quality. Flash-based features like the hover-over volume control are very cool.<br><br>You said that \"with flash comes all media types (Cell, PDAs, Navigators, etc, etc)\" ... I would be eager to see an example of this.<br><br>Erik", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-15_12:07:00", "killed": false, "user_key": "ae0d6164f8fe6e21e33d6b902b075306", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644410": {"up_voted": false, "ip": "", "has_replies": false, "message": "I believe Saab is using flash on their navigation system... I will try to find the right link for you. Also, Is WPF a \"Flash Killer?\"  Check this video out... Maybe Microsoft is coming out with some amazing interactive flash like product... <a href=\"http://channel9.msdn.com/showpost.aspx?postid=115387\" rel=\"nofollow\">http://channel9.msdn.com/showpost.aspx?postid=1...</a><br><br>Best,<br><br>Ney", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-15_13:36:40", "killed": false, "user_key": "3b021f3d7c583d23195437c17c05666a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644411": {"up_voted": false, "ip": "", "has_replies": false, "message": "Erik,<br>How long did take the video from my site to start playing? comparing to any other site using Quicktime, etc... ??<br><br>Thanks!!!<br><br>Ney", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-15_13:38:16", "killed": false, "user_key": "3b021f3d7c583d23195437c17c05666a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644412": {"up_voted": false, "ip": "", "has_replies": false, "message": "I think Yahoo is using stream videos, see the difference from Google videos:<br><br><a href=\"http://9.yahoo.com\" rel=\"nofollow\">http://9.yahoo.com</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-20_13:17:41", "killed": false, "user_key": "3b021f3d7c583d23195437c17c05666a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644413": {"up_voted": false, "ip": "", "has_replies": false, "message": "Google flash videos are not streams... They are progressive. (stream videos you don't see loading bars)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-19_18:53:55", "killed": false, "user_key": "3b021f3d7c583d23195437c17c05666a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644414": {"up_voted": false, "ip": "", "has_replies": false, "message": "Media Temple (<a href=\"http://www.mediatemple.net/services/webhosting/flashcom/shared/\" rel=\"nofollow\">http://www.mediatemple.net/services/webhosting/...</a>) offers FlashComm services for as little as $15/month in addition to your hosting costs.<br><br>As for what will Adobe due to make money off of Google and YouTube...the answer is they already are without charging fro the player. They make money on the creation and distribution side, not the delivery side. You don't think Google and YouTube are just forcing downloads right? They're streaming. How do they stream?? FlashComm servers, lots of them. Not to mention the fact that Google and YouTube are using Flash for video, this just helps increase the ubiquity of the player. As adoptions rates increase, so does the comfort level of the paranoid to use the technology. The position you take about Flash being \"proprietary\"... isn't QuickTime? Isn't Windows Media? Isn't Real? Just because the software is proprietary doesn't make it any less desirable in my eyes as long as my target audience is okay with it. And it appears the vast majority of the world doesn't have a problem with it. They can view my content, that's what matters.<br><br>You mentioned that you \"have seen companies with such free-product reach with no immediate monetization succumb to pressure to push pro versions and ads\". I would beg to differ. Name a product that has ever had the reach of the Flash plug-in? Name company who had a product with half the reach with the flash plug-in, as well as a significant product line (Flash, Flex, FlashComm) that relied on that FREE product for its livelihood. So I would take exception to the fact that Adobe in this scenario has no \"immediate monetization\".<br><br>I don't mean to come across harsh, but the paranoid outlook just doesn't seem to fit in an industry that evolves so quickly. How do you ever get ahead of the curve, or even maintain site of the curve if your always hiding behind your paranoia?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-18_14:09:08", "killed": false, "user_key": "f5e1c91246eaf368b225c9cd66534d69", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9644415": {"up_voted": false, "ip": "", "has_replies": false, "message": "I do not believe that YouTube or Google video is streaming and/or coming from Adobe FCS servers which stream via a proprietary RTMP protocol. If they did they might risk being blocked by firewalls that don't allow RTMP over port 1935. Here is a link about RTMP: <a href=\"http://en.wikipedia.org/wiki/RTMP\" rel=\"nofollow\">http://en.wikipedia.org/wiki/RTMP</a> ... so I still don't think Adobe is making any money from Google and YouTube at this moment.<br><br>Quicktime and Real (as well as open source players like VLC) may soon be able to support a non-proprietary stack of MP4 or 3GP files with H264 and MP3 encoding distributed via HTTP or RTSP. This will soon allow you publish content that can be played by a variety of vendor software packages on every OS and potentially every device.<br><br>... Windows Media had a pretty dominant position recently. Back then folks wondered why I didn't just adopt it as an exclusive format. Back then there was support for the latest WM codec on the Mac, now there isn't and MS says that there wont be support for this in the future. I don't think that Adobe will repeat this mistake. Would a different parent company of Macromedia do the same? Will Adobe be able to stay independent? I hope so.<br><br>My hunch is that most content owners don't want to spend time being ahead of the curve or spend time encoding their content into a bunch of formats to support multiple devices. They want to focus on creating great content that can be played back well into the future regardless of the outcome of the vendor wars.<br><br>It is hard for me to criticize Adobe since the Flash team has worked so hard to support Win/Mac/Linux with a great and lightweight video playback solution. It is truly wonderful technology. I just think that folks should consider standards as they are considering their larger video distribution objectives. Folks want to publish to the web AND other platforms like the iPod, PSP, Tivo, and mobile phones ... what if one format/codec could support all of these?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2006-07-18_18:36:10", "killed": false, "user_key": "ae0d6164f8fe6e21e33d6b902b075306", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}}, "integration": {"receiver_url": "", "theme": 4, "reply_position": true, "disqus_logo": false}, "timer": {"timer_url": "http://localhost:8005", "thread_id": "18366477", "user_id": "anonymous", "forum_id": "125200", "hash": 5642996706065447831}, "thread": {"total_posts": 0, "paginate": false, "per_page": 0, "slug": "why_i_don8217t_use_flash", "num_pages": 1, "days_alive": 0, "realtime_paused": true, "id": 18366477, "num_posts": 82, "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=why_i_don8217t_use_flash' +
		'&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/why_i_don8217t_use_flash/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='	+ 'why_i_don8217t_use_flash'
			+ '&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/why_i_don8217t_use_flash/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">82</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://scobleizer.disqus.com/why_i_don8217t_use_flash/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/why_i_don8217t_use_flash/">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/why_i_don8217t_use_flash/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:18366477" 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'				: 'why_i_don8217t_use_flash',
			// 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/why_i_don8217t_use_flash/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='	+ 'why_i_don8217t_use_flash'
			+ '&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='	+ 'why_i_don8217t_use_flash'
			+ '&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='		+ 'why_i_don8217t_use_flash'
				+ '&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/18366477/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-9644384">\
	 <div id="dsq-comment-header-9644384" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644384" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644384" href="http://www.mikeysgblog.com/" target="_blank" rel="nofollow">Michael Gannotti</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644384" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644384" class="dsq-comment-message">Doh! I have a little flash piece on my site. Since I am still early on and no one is really bothering with it for now I\'ll leave it and looking at changing it later. But seriously lets get to the real crux of the issue here. The problem is you are using Firefox as a browser (duck low and wait for incoming fire....)  ;-)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644379">\
	 <div id="dsq-comment-header-9644379" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644379" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644379">Ben</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644379" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644379" class="dsq-comment-message">What, these people have never heard of a detection script? Its called JavaScript, look it up.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644380">\
	 <div id="dsq-comment-header-9644380" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644380" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644380">Ben</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644380" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644380" class="dsq-comment-message">Scoble, that\'s not Flash\'s fault, its the lazy/incompetent programmer\'s fault.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644383">\
	 <div id="dsq-comment-header-9644383" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644383" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644383" href="http://redune.com/" target="_blank" rel="nofollow">William Spaetzel</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644383" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644383" class="dsq-comment-message">The podshow site currently just shows a placeholder video. I\'m guessing that once Podshow+ is launched, it will be replaced with a proper HTML page again.<br><br>If you look at the title of the page, you can see that it says "Be Patient!!!". Read about the current page on <a href="http://curry.podshow.com/?p=213" rel="nofollow">Adam Curry\'s weblog</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644381">\
	 <div id="dsq-comment-header-9644381" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644381" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644381">Mr Flash</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644381" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644381" class="dsq-comment-message">Common Scobble don\'t hate on flash for nothing. All you had to do was to click and install the missing plugin. Firefox rocks, Flash rocks. Expression sucks.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644378">\
	 <div id="dsq-comment-header-9644378" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644378" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644378" href="http://www.digitalbackcountry.com/" target="_blank" rel="nofollow">Ryan Stewart</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644378" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644378" class="dsq-comment-message">"Now, if a \'normal\' person (non geek) hit this site"<br><br>Well they\'d probably wouldn\'t see the screen you saw, why - because almost 95% of internet users have Flash 7 installed (<a href="http://www.adobe.com/products/player_census/flashplayer/version_penetration.html" rel="nofollow">http://www.adobe.com/products/player_census/fla...</a>)<br><br>And with good programming, which this site didn\'t have, you can make the install process much better for the average user.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644377">\
	 <div id="dsq-comment-header-9644377" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644377" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644377">Rob</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644377" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644377" class="dsq-comment-message">Robert is correct. Let\'s say that a non-geek Windows user downloads FF and doesn\'t install Flash as well and then hits a site like the one Robert mentions -- he\'s gone. I\'m a geek. I work with geeks. I spend a good deal of time helping non-geeks off the job. Perception is reality. Whether or not this is a programmer error, FF error, or use errror, the person is gone and won\'t come back. Full stop.<br>It\'s safe to assume that everyone who left a comment on this today has more than a basic understanding of the Internet and software. The other 99% of people don\'t.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644376">\
	 <div id="dsq-comment-header-9644376" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644376" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644376" href="http://www.geekbrief.tv/" target="_blank" rel="nofollow">Cali Lewis</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644376" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644376" class="dsq-comment-message">PodShow is in the process of switching from private to public beta.  When the switch is complete, you\'ll see the site isn\'t using that much Flash.  What you\'re missing during this transition phase is several videos of Adam Curry poking away impatiently at his computer waiting for the launch to go live.  Because of your prejudice against Flash, you miss out on the cuteness.  :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644375">\
	 <div id="dsq-comment-header-9644375" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644375" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644375">Aaron</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644375" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644375" class="dsq-comment-message">That\'s just bad programming.  Any flash/web developer worth his salary knows about using SWFObject and having alternate content in divs for users without Flash, without the proper plugin version, or even without javascript.<br><br>I wouldn\'t knock flash just because some developer was lazy.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644374">\
	 <div id="dsq-comment-header-9644374" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644374" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644374" href="http://bw.watchtan.com/" target="_blank" rel="nofollow">brian warren</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644374" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644374" class="dsq-comment-message">Yeah, the site\'s programmer should have done their homework.<br><br>But why does MS make this annoying? Flash is installed by default with mac os x, and there\'s a central plugin folder for all browsers, so if you switch browsers you don\'t have to reinstall plugins. Hopefully Vista will deal with this issue better, and hopefully by the time they ship they\'ll have flash installed by default.<br><br>Blame the programmer, blame windows, but don\'t blame flash. That\'s like blaming HTML or GIF or something.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644373">\
	 <div id="dsq-comment-header-9644373" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644373" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644373" href="http://www.cbetta.com/" target="_blank" rel="nofollow">Dave Carabetta</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644373" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644373" class="dsq-comment-message">I fail to see why Flash is the issue. I think this is really a higher-level issue of the accessibility of video blogging in general. For example, I followed your link to Amanda\'s site where she announced that she was un-Boomed. At least, I *think* that\'s what she announced. See, the problem was that I went to click on the movie links, and they all failed to download past 2 or 3%, so I couldn\'t really see what she announced. I, too, used Firefox and her site needed a movie plugin as well. What happens if I don\'t have QuickTime or another appropriate plugin installed? The same thing as your experience with not having the Flash Player plugin -- I leave the site wondering what could have been. I did a quick look through her site and didn\'t see any sort of "transcript" pages where I could just skim through the text of the videos as an alternative. Why don\'t these types of pages exist? To me, that\'s the real problem here...not the fact that it was Flash.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644371">\
	 <div id="dsq-comment-header-9644371" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644371" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644371">Lowry Miller</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644371" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644371" class="dsq-comment-message">My name is the message.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644372">\
	 <div id="dsq-comment-header-9644372" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644372" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644372" href="http://pdnbeta.podshow.com/" target="_blank" rel="nofollow">Lowry Miller</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644372" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644372" class="dsq-comment-message">Or this name is better.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644368">\
	 <div id="dsq-comment-header-9644368" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644368" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644368" href="http://www.bynkii.com/" target="_blank" rel="nofollow">John C. Welch</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644368" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644368" class="dsq-comment-message">Flash makes the "Which browser are you using?" question go away. As long as you have Flash, it will look the way it should.<br><br>Maybe when Apple, Microsoft, Opera, Mozilla, and all the other browser devs stop quarreling like little children and start rendering HTML the same, Flash will stop taking over the internet</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644369">\
	 <div id="dsq-comment-header-9644369" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644369" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644369" href="http://podslug.com/blog" target="_blank" rel="nofollow">PodSlug (Erik Herz)</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644369" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644369" class="dsq-comment-message">I predict that Flash wont be the winner in the codec silo war because they have placed their bet on the proprietary on2 codec but we can expect a lot of frustration as folks struggle to publish video on the web in a way that will reach across OS and device platforms.<br><br>I predicted that the winner will be H264 in 3GP via RTSP and HTTP here: <a href="http://podslug.com/blog/?p=32" rel="nofollow">http://podslug.com/blog/?p=32</a><br><br>The only viable way out of the codec silo is if two strong vendors (like apple and real) agree to support the h264 standard with open file formats and open streaming protocols ... then MS will follow, then Flash. This will only work if every part of the system is interoperable.<br><br>I wish the answer was Ogg Vorbis and Theora but I just don\'t think that there will be enough market momentum behind this open source alternative to move the vendors to adopt it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644367">\
	 <div id="dsq-comment-header-9644367" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644367" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644367">BlogReader</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644367" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644367" class="dsq-comment-message"><i>I predict that Flash wont be the winner in the codec silo war because they have placed their bet on the proprietary on2 codec but we can expect a lot of frustration as folks struggle to publish video on the web in a way that will reach across OS and device platforms.</i><br><br>I haven\'t had a problem with watching google videos on my mac and windows boxes and they use Flash.  Where do you see these problems?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644365">\
	 <div id="dsq-comment-header-9644365" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644365" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644365" href="http://weblogs.asp.net/jgalloway" target="_blank" rel="nofollow">Jon Galloway</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644365" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644365" class="dsq-comment-message">Totally agree. A tiny bunch of people make really cool stuff in Flash, but about 95% of Flash seems to be used for rollovers and navigation that could be done in CSS, or Javascript at worst.<br><br>FlashObject is a pretty good JS library that handles Flash detection in a clean, cross-browser, standards compliant way. It uses clean HTML and replaces it with Flash if it\'s available, so you still look okay if Flash isn\'t installed.<br><br>I wrote about it here:<br><a href="http://weblogs.asp.net/jgalloway/archive/2006/03/03/439483.aspx" rel="nofollow">http://weblogs.asp.net/jgalloway/archive/2006/0...</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644366">\
	 <div id="dsq-comment-header-9644366" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644366" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644366" href="http://www.guyswithtowels.com/" target="_blank" rel="nofollow">Tim</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644366" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644366" class="dsq-comment-message">Web pages with title bars that say "Be patient" are a bit like emails that say "Having trouble viewing our HTML mailer?"<br><br>In both cases, it\'s a sign for me to check out, because there\'s nothing there I\'ll be interested in.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644363">\
	 <div id="dsq-comment-header-9644363" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644363" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644363" href="http://www.dominiosidn.com/" target="_blank" rel="nofollow">Dominero</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644363" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644363" class="dsq-comment-message">i agree flash sucks a bit, though unfortunately i need it for my websites. In my case, if the file is too big, i use a popup window to load the video. But i understand why people dont use flash, most visitors dont have patience to wait for the flash file to load.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644362">\
	 <div id="dsq-comment-header-9644362" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644362" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644362" href="http://www.whatcounts.com/blog?pid=965AABA79286169C" target="_blank" rel="nofollow">David Geller</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644362" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644362" class="dsq-comment-message">Flash is great if used properly. You have the potential to create a rich and compelling UI that looks and behaves cross platform and cross browser for most broadband users (98%!). While you might try this with DHTML/CSS, your efforts will be far more difficult and less successful. Flash sucks if it\'s only being used for eye candy. We all agree on this point. But, it\'s great if it\'s used by talented designers and UI experts to create interfaces that operate simply, load fast and behave the same no matter which browser or OS you\'re using.<br><br>Regarding ON2\'s V6 and V7 codecs - they\'re actually quite remarkable. Fast encoding, great playback qualities. H.264 has potential patent issues, that\'s why some big players aren\'t embracing it as quickly as expected.<br><br>Don\'t blame bad Flash on Flash/Adobe/Macromedia. Want to see bad HTML? Visit just about any page on MySpace. :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644360">\
	 <div id="dsq-comment-header-9644360" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644360" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644360">Joe Palladino</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644360" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644360" class="dsq-comment-message">I have always been told that search engines won\'t index a site that has flash as its homepage.  Does the javascript redirect the search engines to an html page?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644359">\
	 <div id="dsq-comment-header-9644359" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644359" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644359" href="http://www.whatcounts.com/blog?pid=965AABA79286169C" target="_blank" rel="nofollow">David Geller</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644359" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644359" class="dsq-comment-message">Thought I\'d point folks to a site I consider to be a highly polished Flash-based interface: Laszlo Mail (<a href="http://laszlomail.com" rel="nofollow">http://laszlomail.com</a>). Worth a peek. For me, loads fast and works well. The Open Laszlo project, interestingly, has a compiler which can generate Flash --or-- DHTML. Very interesting stuff. Flex2 is great, but Laszlo is quite nice as well. <a href="http://www.openlaszlo.org/" rel="nofollow">http://www.openlaszlo.org/</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644382">\
	 <div id="dsq-comment-header-9644382" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644382" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644382" href="http://range.wordpress.com/" target="_blank" rel="nofollow">range</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644382" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644382" class="dsq-comment-message">Flash. Well. It\'s fun to develop but sometimes not always needed. For the new way of designing blogs and sites, mainly the basics are enough for most of the time, especially for end users.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644370">\
	 <div id="dsq-comment-header-9644370" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644370" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644370">James Bailey</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644370" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644370" class="dsq-comment-message">As far as I can tell, 99% of all flash is advertisements. I don\'t want to see flash advertisements. It is very easy to turn off Flash in Safari without any hacks or add ons. I just turn off plug-ins in the security preferences. The only plug-ins I want are Quicktime embeds and for those I have a simple AppleScript that turns plug-ins on and off from the AppleScript menu as needed.<br><br>If you are a company that wants my business, it is unlikely that  you will get it if your design requires flash. I simply don\'t see it because it is almost always turned off.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644364">\
	 <div id="dsq-comment-header-9644364" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644364" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644364" href="http://podslug.com/blog" target="_blank" rel="nofollow">PodSlug (Erik Herz)</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644364" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644364" class="dsq-comment-message">BlogReader and David Geller,<br><br>I see at least two problems with Flash:<br><br>1. I can\'t play the flash video on: the ipod, tivo, psp, any set top box, the Nokia 91, any phone, or any other portable device for that matter ... Flash may work on 98% of the PCs but this is only a fraction of where I want to watch my video.<br><br>2. What if Adobe decides to bundle the Acrobat reader in the same way that Apple is bundling iTunes with Quicktime for Windows? Why not? Then what? What if they start including some sort of advertising pre-roll or start charging for the player? Why should they give it away for free once they have total lock in? Would you? Do you think Adobe makes a dime off of YouTube or Google video? Don\'t you think they want to?<br><br>Let\'s just imagine for a moment what Microsoft would have done if they had a monopoly on online digital video playback. They got pretty close before iTunes and Flash saved us. Content owners were afraid. Rightly so.<br><br>Now let\'s imagine another scenario: Microsoft buys Adobe and then decides that Linux and Mac playback should be handled in the same way that Mac support for Windows Media is handled. Now we are all sunk.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644361">\
	 <div id="dsq-comment-header-9644361" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644361" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644361" href="http://acidzebra.blogspot.com/" target="_blank" rel="nofollow">Michiel</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644361" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644361" class="dsq-comment-message">Flash is fine, when used to ENHANCE a site.<br><br>This looks like a crappy intro-loader (usually complete with \'skip\' button), and one of the main reasons people hate flash.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644357">\
	 <div id="dsq-comment-header-9644357" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644357" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644357" href="http://www.jamesmckay.net/" target="_blank" rel="nofollow">James McKay</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644357" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644357" class="dsq-comment-message">Most of the non-geeks that I know don\'t even know what Firefox is, let alone use it...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644358">\
	 <div id="dsq-comment-header-9644358" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644358" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644358" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644358" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644358" class="dsq-comment-message">James: that might be true, but it probably won\'t be for long. Firefox has somewhere around 20% marketshare for the mass market and 50% with geeks and Firefox has been gaining quite steadily lately.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644355">\
	 <div id="dsq-comment-header-9644355" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644355" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644355">hate_animals</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644355" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644355" class="dsq-comment-message">... but on the other side... who the f--k is using Firefox anyway?!?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644354">\
	 <div id="dsq-comment-header-9644354" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644354" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644354">Neal</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644354" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644354" class="dsq-comment-message">The main reasons people hate Flash are 1) All the damn Flash ads you get stuck with 2) All the rest of the flash based content and navigation that can be done without Flash or isn\'t needed.  The only thing people like about Flash is the rare useful and unique content that can\'t be displayed without it - rare and unique as in .001% of all Flash content on the web that site designers/owners really believe to be such.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644353">\
	 <div id="dsq-comment-header-9644353" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644353" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644353" href="http://podslug.com/blog" target="_blank" rel="nofollow">PodSlug (Erik Herz)</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644353" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644353" class="dsq-comment-message">I got a really great comment from Crazy Ivan regarding why Macromedia chose Flash over H264. Please see it here: <a href="http://podslug.com/blog/?p=32" rel="nofollow">http://podslug.com/blog/?p=32</a><br><br>On2 also has a great article on Flash versus H264 here: <a href="http://on2.com/technology/on2-vs-h264/" rel="nofollow">http://on2.com/technology/on2-vs-h264/</a><br><br>It is a very tough choice. After reviewing these, do you still not want to use Flash? Why?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644352">\
	 <div id="dsq-comment-header-9644352" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644352" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644352" href="http://www.sundoggy.net/" target="_blank" rel="nofollow">Paul Roberts</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644352" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644352" class="dsq-comment-message">Robert I totally agree with you on this one. Flash has its place, and is great for rich media two-clicks in. But it\'s never going to be a standard, and should never be used as a landing site. You\'re right, any non-techie user will hit that message and say see ya later. Remember back 5 years ago when companies were actually building commercial sites solely in Flash? Absolute craziness (and you still see it sometimes). Home pages need to be simple and load quickly, with no assumptions made for bandwidth. Let the user decide if they want to dive into a Flash ap, video or audio (and if you\'re talented enough to design a Flash site, you should be able to build an alternative version, with user preferences that can be preserved in cookies).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644350">\
	 <div id="dsq-comment-header-9644350" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644350" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644350" href="http://podcast.com/" target="_blank" rel="nofollow">Kosso</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644350" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644350" class="dsq-comment-message">Robert,<br><br>A while ago, you\'d seen my Flash OPML Reading list /blogroll and rather liked it ;)<br><br>Here\'s another one - <a href="http://readerss.com/opml/" rel="nofollow">http://readerss.com/opml/</a><br><br>And not forgetting the first ever:<br><a href="http://www.blugg.com/caster/" rel="nofollow">http://www.blugg.com/caster/</a><br><br>;)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644348">\
	 <div id="dsq-comment-header-9644348" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644348" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644348" href="http://podcast.com/" target="_blank" rel="nofollow">Kosso</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644348" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644348" class="dsq-comment-message">Also, I should reccommend listening to BoagWorld, a podcast from two Brits about webdesign. They have some very interesting discussions, interviews and arguments for and against Flash.<br><br><a href="http://podcast.com/show/1678/" rel="nofollow">http://podcast.com/show/1678/</a><br><br>Recently interviewed Aral Balkan, open source flash evangelist</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644396">\
	 <div id="dsq-comment-header-9644396" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644396" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644396" href="http://aralbalkan.com/" target="_blank" rel="nofollow">Aral Balkan</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644396" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644396" class="dsq-comment-message">At the risk of repeating what has already been said by multiple commenters, this is an example of bad use of a technology, not a limitation of the technology itself. I would urge you to take a look at SWFObject:<br><br><a href="http://osflash.org/swfobject" rel="nofollow">http://osflash.org/swfobject</a><br><br>SWFObject is one method of embedding SWF files (compiled Flash bytecode) into web pages that defaults in alternative content being shown if Flash and/or JavaScript is unavailable. If the required version of Flash is available, the DIV with alternative content is changed to include the Flash movie.<br><br>The ubiquity of the Flash player, its cross-platform support, and the level of interactivity it provides make Flash a very compelling solution for a variety of tasks. As with every technology decision, however, whether or not to use Flash for a given use case should be on the requirements (functional, usability, accessibility) of that individual use case. There are certain use cases where you simply cannot create the same functionality in HTML (for example, alpha channel video) or where the cost of developing the same level of interactivity in a cross-platform manner are prohibitive (in Flash you never have to write a line of code to check which platform you\'re running on or for browser incompatibilities. This allows you to concentrate on actually writing your application.)<br><br>For video on the web, Flash is by far the most elegant, easy-to-use, cross-platform solution available as empirically evidenced by its use in some of the largest Internet video sites (YouTube, Google Video, etc.)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644394">\
	 <div id="dsq-comment-header-9644394" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644394" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644394" href="http://dataleak.corewatch.net/" target="_blank" rel="nofollow">drcolossus</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644394" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644394" class="dsq-comment-message">Oh that as if I\'m saying: I had a bad experience with Windows XP, now I\'m never going to use any Windows OS again! .... Ridiculous BS!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644391">\
	 <div id="dsq-comment-header-9644391" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644391" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644391" href="http://www.cruciallimit.com/blog" target="_blank" rel="nofollow">Dave Gillem</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644391" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644391" class="dsq-comment-message">Don\'t you just love the "Shock-Jock" style posts like this? Making a completely ignorant statement to get airplay and traffic? I bet this is even a tip in your book isn\'t it... a chapter titled something like "Making ignorant statements can help your SEO rankings". I have little doubt that you didn\'t realize how ignorant your statements were going to sound when you posted this nonsense, and probably had a pretty good idea what the response would be.<br><br>So if I read your book and it sucks, I should swear off books all together? Isn\'t that the rebuttal that you were expecting when you made this post. All of you people posted imaginary statistics, and guessing at the "geek" and "non geek" reactions to flash, and the idiotic assumption that the technology is somehow to blame for a bad experience need to take a look in the mirror. Its a fact that there are more HTML sites than flash, and would venture to "guess" that there are faaaar more bad implementations, non-cross browser implementations of HTML then there ever will be of Flash.<br><br>I hope you get the attention you so crave with this post, it sure isn\'t helping your reputation.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644395">\
	 <div id="dsq-comment-header-9644395" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644395" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644395">LEE</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644395" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644395" class="dsq-comment-message">What does that have to do with Flash?  It\'s the web developer\'s fault.  Flash provides way more than other options, and if you don\'t know how to setup a java detectionscript then you\'re not looking for Flash developer tools because you\'re a tool.  Go look at SWFObject you lazy kid.<br><br>Microsoft is conducting a minor war against Adobe (including Flash) at the moment because they need people to believe that Flash isn\'t reliable, so that they use Microsoft\'s upcoming web development crapware.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644397">\
	 <div id="dsq-comment-header-9644397" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644397" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644397">joey</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644397" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644397" class="dsq-comment-message">This is "Why I Don\'t Read Your Blog"<br><br>Any "normal" person who installs firefox could click that gigantic "Click here to download plugin" button in the middle of the page.<br><br>Otherwise how will your fans listen to you on <a href="http://www.podtech.net/?cat=47" rel="nofollow">podtech.net</a> or watch you on youtube?<br><br>Oh yeah, no "normal" person would do that.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644398">\
	 <div id="dsq-comment-header-9644398" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644398" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644398" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644398" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644398" class="dsq-comment-message">Joey: you can download podcasts with iTunes. That\'s how most people listen to them.<br><br>Yes, they could click that. But have you actually watched a real user? I have. They are freaked out by the prospects of getting malware. Oh, you think all your users have Macs? Think again.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644399">\
	 <div id="dsq-comment-header-9644399" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644399" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644399" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644399" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644399" class="dsq-comment-message">Hey, this isn\'t a Microsoft Web site anymore. It wasn\'t a Microsoft Web site I visited. It wasn\'t even a Microsoft Web browser I used.<br><br>I just installed Flash, by the way. It took half a dozen clicks. Really user friendly.<br><br>I still think it\'s an inappropriate technology to use to display the home page of your Web site. Now, yeah, the real answer would be to do browser detection, and play out an HTML version if Flash isn\'t available. Wonderful. But that didn\'t happen in this case and doing that increases the costs of producing a Web site since now you have to do it effectively twice.<br><br>I\'m lazy. I\'ll just do it the HTML way and not worry about it.<br><br>Oh, and I\'ll give the same answer to Microsoft\'s salespeople when they come to show me how awesomely cool WPF (er, .NET 3.0) is.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644393">\
	 <div id="dsq-comment-header-9644393" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644393" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644393">Dave</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644393" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644393" class="dsq-comment-message">"I just installed Flash, by the way. It took half a dozen clicks. Really user friendly."<br><br>Only one click on my Mac, maybe half a dozen clicks is why I don\'t use Windows. Hmm... I should pitch that to Apple. "If you\'re lazy get a Mac. OSX offers 84% less clicks than Windows." ;P</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644392">\
	 <div id="dsq-comment-header-9644392" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644392" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644392">Dave</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644392" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644392" class="dsq-comment-message">Gee that was snarky ^_^<br><br>"Now, yeah, the real answer would be to do browser detection, and play out an HTML version if Flash isn’t available."<br><br>I think the concept you are looking for is graceful degradation. I agree a website should degrade gracefully. If it\'s Flash it SHOULD have an HTML alternative. If you consider this as part of working with Flash then it\'s really not a lot of extra work. Flash DOES tend to be exclusive. How many Flash sites can you think of that meet accessibility standards?<br><br>"Oh, you think all your users have Macs? Think again."<br><br>Unfortunately, you are right about that. If all users had exactly the same setup web design would be a piece of cake. I think 70%-ish of my users have Windows (95-XP) and use IE 6 and below. Talk about a web designer\'s nightmare! At least with Flash there is only one standard and one company making the flash player. I defy you to get a web site to look consistent between just Firefox and IE without having to "do it effectively twice" or more.   Though again, if you account for browser inconsistencies before you develop a site, the extra work isn\'t as much. Of course, it\'s easier with a blog one column of text is fairly simple especially if half the work is done for you by something like Wordpress. But then if you did your blog with Flash it would be like putting a Hemi in your Vespa and, lazy or not, no one needs that.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644390">\
	 <div id="dsq-comment-header-9644390" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644390" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644390">joey</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644390" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644390" class="dsq-comment-message">Hi Scoble,<br><br>Sorry if I was a little harsh, it was late, but you didn\'t have to accuse me of being a Mac booster!<br><br>My point with the podtech link is that site is littered with flash movies and it\'s a pretty good example of how flash should be used.<br><br>I\'ve been developing consumer level software, games, and websites for 11 years - so yeah, I\'ve watched quite a few real users.  They\'re why I\'m in this business. The fact is well over 90% have flash installed. If you\'re going to present any time-based media on your site you\'ll reach the most users and get the most consistent UE with flash.<br><br>You\'re right that “Click here to download plugin” button would present an tremendous obstacle for some, but I really think anybody who\'s got the cojones to download Firefox can handle a little clicky clicky to get flash on there. If they don\'t, they\'ll be using IE which has Flash preinstalled.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644401">\
	 <div id="dsq-comment-header-9644401" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644401" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644401" href="http://scobleizer.wordpress.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644401" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644401" class="dsq-comment-message">Joey: I\'ve seen Firefox loaded on lots of machines where the main user didn\'t load it. Usually a geek in the family loaded it up and said "use this and you won\'t get malware anymore."<br><br>Even where someone did get the cojones to download Firefox, it was because they heard it didn\'t have the security problems. I have yet to find a non-geek who says "I downloaded it for tabs and extensions."<br><br>So, the non-geek people who are likely to download and install Firefox are also the ones who are unlikely to load any extensions or plugins. At least that\'s my theory based on watching real-life users who aren\'t geeks.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644400">\
	 <div id="dsq-comment-header-9644400" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644400" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644400" href="http://huwebdev.blogspot.com/" target="_blank" rel="nofollow">Brian Ferris</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644400" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644400" class="dsq-comment-message">I went to a website where the user had used the blink tag, and had used CSS to create pink text on a pink background.<br><br>Scoble\'s Lesson: Don\'t use HTML and CSS.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644389">\
	 <div id="dsq-comment-header-9644389" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644389" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644389" href="http://websitedesignfx.com/" target="_blank" rel="nofollow">Ney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644389" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644389" class="dsq-comment-message">Flash is the future of video on all types of devices... tvs, screens, hd-dvd. etc, etc... Can\'t you see that? The future is interactive television and not html or else... time to move on.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644388">\
	 <div id="dsq-comment-header-9644388" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644388" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644388" href="http://websitedesignfx.com/" target="_blank" rel="nofollow">Ney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644388" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644388" class="dsq-comment-message">Why should I use Quicktime, Real Media, WM player when I have flv? Fast playback, interative, great image quality, and more. Don\'t use flash if you want to make the video for yourself. Adobe sees that flash is a big killer on the media players out-there and it will get better over time.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644387">\
	 <div id="dsq-comment-header-9644387" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644387" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644387" href="http://podslug.com/blog" target="_blank" rel="nofollow">PodSlug (Erik Herz)</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644387" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644387" class="dsq-comment-message">Ney,<br><br>Would you like your video to play on any portable video devices like the following: <a href="http://portablevideo.engadget.com/" rel="nofollow">http://portablevideo.engadget.com/</a><br><br>What would you do if Adobe decides to start charging for the use of their player?<br><br>Do you want to stream your video rather than use HTTP download? How much does that cost?<br><br>Do you feel confident enough in this solution to tie yourself to only one vendor for video delivery?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644386">\
	 <div id="dsq-comment-header-9644386" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644386" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644386" href="http://www.websitedesignfx.com/" target="_blank" rel="nofollow">Ney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644386" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644386" class="dsq-comment-message">Good Point Erik! I don\'t think Adobe would be that stupid to charge the flash player from us. Now, think like Microsoft of what they did comparing to Mac... How many software’s are out there for PC OS? And how many programmers will create software’s if you didn\'t have the freedom of windows? I guess only 3% globally! Got it? Flash became to big like windows and I hope someone out there besides Microsoft is working on a similar player or technology. Got have a competition and so far none. Like I what I wrote, the future is interactive television and not web, the internet is only a part of visual information that delivers what is becoming the next amazing creations of freedom displays… I mean we are going to see amazing ways of motion graphics that will be totally interactive, in all shapes and sizes… Bye Bye 4:3 or 16:9 video sizes and welcome circles, triangles, whatever sizes you may like… New software’s like flash professional will need to be created for the very soon technologies that most of you don’t even imagine will come true… More and more we want videos to be part of our daily life, and that will be in a liquid forms of navigations and videos embedded on the shape of any products. Now, flash opens the door for the next generation of information display and because of the millions of designers and programmers out there uses everyday Adobe knows that today they are in control.  The true is that flash is the only player out there for the best video intregation to your site and CD-roms because it is FREE, small size to download, no pop-outs windows or players, Interactive, and etc, etc, etc… It is so great player that people thought that they should use instead of html pages. If it get fast, again, bye, bye html website sites. I guess, stream or download will not matter soon, it will have to be all stream because they are opening the pipes, finally! Costs will very!!!!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644385">\
	 <div id="dsq-comment-header-9644385" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644385" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644385" href="http://www.cruciallimit.com/" target="_blank" rel="nofollow">Dave</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644385" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644385" class="dsq-comment-message">PodSlug (Erik Herz) - "What would you do if Adobe decides to start charging for the use of their player?"<br><br>I think that has to be the most ignorant statement of all in this whole post. That would be corporate suicide. Why would they buy Macromedia for the Flash player if they were going to ruin the adoption rate by charging for it. Have they ever charged for the Acrobat reader?<br><br>Coming from someone who spent so much time at RealNetworks (arguably the worst media player on the Planet)...For someone who is "very excited about the potential for online media" you sure have a very narrow minded, ultra conservative, paranoid view on things.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644349">\
	 <div id="dsq-comment-header-9644349" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644349" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644349">burnsy</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644349" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644349" class="dsq-comment-message">Seems like a cheap shot at a superior software program,  especially when it\'s really the fault of the developer. There\'s a lot of bad drivers on the road but I\'m not going to stop driving a car.<br>Now, a more appropriate article with critical merit  would be one like "Why I don\'t use Internet Explorer and wish no one else did either ..."</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644351">\
	 <div id="dsq-comment-header-9644351" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644351" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644351">cgraham149</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644351" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644351" class="dsq-comment-message">I feel the exact same way as you do...but it\'s towards Quicktime.  Everytime I hit a page with Quicktime, I "quickly" hit the back button.<br><br>Why is this?  Well, let\'s see...<br><br>1) Quicktime is a pain to download and install<br>2) Once installed, it wants to take over as player for all media, unless you go through the custom setup and spend time unselecting all of the formats it wants to take over<br>3) It parks itself in the Window taskbar and wants to always be running<br>4) It doesn\'t play nicely in the browser window like a FLV!!!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644347">\
	 <div id="dsq-comment-header-9644347" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644347" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644347" href="http://podslug.com/blog" target="_blank" rel="nofollow">PodSlug (Erik Herz)</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644347" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644347" class="dsq-comment-message">Dave,<br><br>I agree that it would be corporate suicide if Adobe starts to charge for their player but I have seen companies with such free-product reach with no immediate monetization succumb to pressure to push pro versions and ads. I have no idea what Adobe has in mind but they must be thinking hard about how to make money off of YouTube and Google Video. What is your guess about how they will do this?<br><br>I am very torn about Flash Video. I really appreciate their commitment to Mac and Linux. I think the light footprint of their player has dramatically simplified the consumption of online video which has dramatically increased the audience of users who are willing to watch online video. All great stuff.<br><br>My concern is that it is proprietary and non-interoperable. This means that if they become the de facto standard then they have too much power and content owners are too dependent upon one company for distribution.<br><br>So, yes, I am paranoid. Companies must do what they can to stay in business and drive profit. If Adobe does not have a return on their Flash Video investment then they might seek some sort of monetization strategy for the client software. It might be suicide if they don\'t do this at some point.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644346">\
	 <div id="dsq-comment-header-9644346" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644346" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644346" href="http://www.websitedesignfx.com/" target="_blank" rel="nofollow">Ney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644346" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644346" class="dsq-comment-message">You guys are forgetting the you can not save stream FLV unless you have capture software’s like fantasia. Now that Adobe has flash and with flash comes all media types (Cell, PDAs, Navigators, etc, etc) the $$$ for adobe will come from everywhere… And when they start using FLV as their native video format for Adobe Premiere playback and archive… editors and designers will start using the FLV like never before because of media size, quality, interactivity, and it has much fewer problems comparing with other formats.  Adobe is a very stable company and today their software are in every design company in the world… And comes flash… You can’t browser the internet without it. Time is money and I don\'t want to wait 20 seconds to five minutes on Broadband for a QuickTime, Real, WMV to download... FLV start playing in seconds with no waits, check this site that I did with FVL siles comparing to other formats out there <a href="http://www.talentbeachmusic.com/html/english/artists/artist_001.html" rel="nofollow">http://www.talentbeachmusic.com/html/english/ar...</a><br><br>Best,<br><br>Ney</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644409">\
	 <div id="dsq-comment-header-9644409" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644409" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644409" href="http://podslug.com/blog" target="_blank" rel="nofollow">PodSlug (Erik Herz)</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644409" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644409" class="dsq-comment-message">Ney,<br><br>Your website looks great and the video is wonderful! I was very impressed with the quality. Flash-based features like the hover-over volume control are very cool.<br><br>You said that "with flash comes all media types (Cell, PDAs, Navigators, etc, etc)" ... I would be eager to see an example of this.<br><br>Erik</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644410">\
	 <div id="dsq-comment-header-9644410" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644410" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644410" href="http://www.websitedesignfx.com/" target="_blank" rel="nofollow">Ney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644410" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644410" class="dsq-comment-message">I believe Saab is using flash on their navigation system... I will try to find the right link for you. Also, Is WPF a "Flash Killer?"  Check this video out... Maybe Microsoft is coming out with some amazing interactive flash like product... <a href="http://channel9.msdn.com/showpost.aspx?postid=115387" rel="nofollow">http://channel9.msdn.com/showpost.aspx?postid=1...</a><br><br>Best,<br><br>Ney</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644411">\
	 <div id="dsq-comment-header-9644411" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644411" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644411" href="http://www.websitedesignfx.com/" target="_blank" rel="nofollow">Ney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644411" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644411" class="dsq-comment-message">Erik,<br>How long did take the video from my site to start playing? comparing to any other site using Quicktime, etc... ??<br><br>Thanks!!!<br><br>Ney</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644408">\
	 <div id="dsq-comment-header-9644408" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644408" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644408" href="http://podslug.com/blog" target="_blank" rel="nofollow">Podslug (Erik Herz)</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644408" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644408" class="dsq-comment-message">Super fast! Are you using streaming or HTTP download? What do you think the advantages of streaming Flash versus HTTP download would be?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644407">\
	 <div id="dsq-comment-header-9644407" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644407" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644407" href="http://www.websitedesignfx.com/" target="_blank" rel="nofollow">Ney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644407" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644407" class="dsq-comment-message">Erik, Stream FLV is much better for the simple fact that you can jump to any part of the video, It can use for live feed or as webcam feed, not limit to how many users can se at the same time, you can\'t just copy the url or path to view the video (like what google is doing to FLV out-there), detect your internent speed and delivers the right compresion to the right user, it does stay on the local hard-drive, and etc.... Now, the progressive download FLV is just cheaper but you have to wait to end the download if you want to jump to the last scene o frame of the video and it stays on your local hard drive, also it is limited how many users can access the video at the sametime. Yes, the videos on that site that I did are progressive FLV, the Stream versions I have I can\'t show because of classified projects. I know that Flash Communication Server is the best way to stream FLV files with video.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644405">\
	 <div id="dsq-comment-header-9644405" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644405" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644405" href="http://podslug.com/blog" target="_blank" rel="nofollow">PodSlug (Erik Herz)</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644405" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644405" class="dsq-comment-message">Ney,<br><br>Do you know how much it costs to stream flash video?<br><br>Erik</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644406">\
	 <div id="dsq-comment-header-9644406" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644406" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644406" href="http://websitedesignFX.com/" target="_blank" rel="nofollow">Ney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644406" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644406" class="dsq-comment-message">Erik,<br><br>The best way is to contact one of these companies, Good Luck with prices!<br><br><a href="http://www.vitalstream.com/macromedia/index.html" rel="nofollow">http://www.vitalstream.com/macromedia/index.html</a><br><a href="http://www.akamai.com/en/html/services/flash_streaming.html" rel="nofollow">http://www.akamai.com/en/html/services/flash_st...</a><br><a href="http://www.limelightnetworks.com/flash/" rel="nofollow">http://www.limelightnetworks.com/flash/</a><br><a href="http://www.mirror-image.com/" rel="nofollow">http://www.mirror-image.com/</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644414">\
	 <div id="dsq-comment-header-9644414" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644414" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644414" href="http://www.cruciallimit.com/" target="_blank" rel="nofollow">Dave G</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644414" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644414" class="dsq-comment-message">Media Temple (<a href="http://www.mediatemple.net/services/webhosting/flashcom/shared/" rel="nofollow">http://www.mediatemple.net/services/webhosting/...</a>) offers FlashComm services for as little as $15/month in addition to your hosting costs.<br><br>As for what will Adobe due to make money off of Google and YouTube...the answer is they already are without charging fro the player. They make money on the creation and distribution side, not the delivery side. You don\'t think Google and YouTube are just forcing downloads right? They\'re streaming. How do they stream?? FlashComm servers, lots of them. Not to mention the fact that Google and YouTube are using Flash for video, this just helps increase the ubiquity of the player. As adoptions rates increase, so does the comfort level of the paranoid to use the technology. The position you take about Flash being "proprietary"... isn\'t QuickTime? Isn\'t Windows Media? Isn\'t Real? Just because the software is proprietary doesn\'t make it any less desirable in my eyes as long as my target audience is okay with it. And it appears the vast majority of the world doesn\'t have a problem with it. They can view my content, that\'s what matters.<br><br>You mentioned that you "have seen companies with such free-product reach with no immediate monetization succumb to pressure to push pro versions and ads". I would beg to differ. Name a product that has ever had the reach of the Flash plug-in? Name company who had a product with half the reach with the flash plug-in, as well as a significant product line (Flash, Flex, FlashComm) that relied on that FREE product for its livelihood. So I would take exception to the fact that Adobe in this scenario has no "immediate monetization".<br><br>I don\'t mean to come across harsh, but the paranoid outlook just doesn\'t seem to fit in an industry that evolves so quickly. How do you ever get ahead of the curve, or even maintain site of the curve if your always hiding behind your paranoia?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644415">\
	 <div id="dsq-comment-header-9644415" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644415" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644415" href="http://podslug.com/blog" target="_blank" rel="nofollow">PodSlug (Erik Herz)</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644415" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644415" class="dsq-comment-message">I do not believe that YouTube or Google video is streaming and/or coming from Adobe FCS servers which stream via a proprietary RTMP protocol. If they did they might risk being blocked by firewalls that don\'t allow RTMP over port 1935. Here is a link about RTMP: <a href="http://en.wikipedia.org/wiki/RTMP" rel="nofollow">http://en.wikipedia.org/wiki/RTMP</a> ... so I still don\'t think Adobe is making any money from Google and YouTube at this moment.<br><br>Quicktime and Real (as well as open source players like VLC) may soon be able to support a non-proprietary stack of MP4 or 3GP files with H264 and MP3 encoding distributed via HTTP or RTSP. This will soon allow you publish content that can be played by a variety of vendor software packages on every OS and potentially every device.<br><br>... Windows Media had a pretty dominant position recently. Back then folks wondered why I didn\'t just adopt it as an exclusive format. Back then there was support for the latest WM codec on the Mac, now there isn\'t and MS says that there wont be support for this in the future. I don\'t think that Adobe will repeat this mistake. Would a different parent company of Macromedia do the same? Will Adobe be able to stay independent? I hope so.<br><br>My hunch is that most content owners don\'t want to spend time being ahead of the curve or spend time encoding their content into a bunch of formats to support multiple devices. They want to focus on creating great content that can be played back well into the future regardless of the outcome of the vendor wars.<br><br>It is hard for me to criticize Adobe since the Flash team has worked so hard to support Win/Mac/Linux with a great and lightweight video playback solution. It is truly wonderful technology. I just think that folks should consider standards as they are considering their larger video distribution objectives. Folks want to publish to the web AND other platforms like the iPod, PSP, Tivo, and mobile phones ... what if one format/codec could support all of these?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644413">\
	 <div id="dsq-comment-header-9644413" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644413" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644413" href="http://websitedesignFX.com/" target="_blank" rel="nofollow">Ney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644413" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644413" class="dsq-comment-message">Google flash videos are not streams... They are progressive. (stream videos you don\'t see loading bars)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644412">\
	 <div id="dsq-comment-header-9644412" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644412" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644412" href="http://websitedesignFX.com/" target="_blank" rel="nofollow">Ney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644412" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644412" class="dsq-comment-message">I think Yahoo is using stream videos, see the difference from Google videos:<br><br><a href="http://9.yahoo.com" rel="nofollow">http://9.yahoo.com</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644403">\
	 <div id="dsq-comment-header-9644403" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644403" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644403" href="http://www.rendition.net/" target="_blank" rel="nofollow">Brian</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644403" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644403" class="dsq-comment-message">Complaining about the user experience in this case seems valid, but complaining about Flash in general is a bit misguided.  As several others have pointed out, the problem here is how Flash was implemented, and this particular implementation does nothing to help the user who does not have any Flash version installed.<br><br>This is like complaining about your new toaster because it is still sealed in the box, and therefore makes the process of producing your toast a bigger hassle than it ordinarily would be.  Does that make toasters a bad idea?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644404">\
	 <div id="dsq-comment-header-9644404" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644404" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644404" href="http://websitedesignFX.com/" target="_blank" rel="nofollow">Ney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644404" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644404" class="dsq-comment-message">That\'s so right Brian!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644402">\
	 <div id="dsq-comment-header-9644402" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644402" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644402" href="http://websitedesignFX.com/" target="_blank" rel="nofollow">Ney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644402" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644402" class="dsq-comment-message">Erik, Here is a sample of stream flash videos that I am working on: <a href="http://www.dme2004.com/DME_Podcasts/DMEPodcasts.html" rel="nofollow">http://www.dme2004.com/DME_Podcasts/DMEPodcasts...</a><br><br>PS: Only the Podcast Web version is working, a video will start playing if you select... Let me know if it plays ok on your side.<br><br>Best,<br><br>Ney</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644419">\
	 <div id="dsq-comment-header-9644419" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644419" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644419">wood berensky</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644419" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644419" class="dsq-comment-message">I hate Flash whether it be Mcromedia or Adobe Flash.<br>Now that 99.9% of the advertising on sites like Yahoo is flash I definately UNINSTALLED it. Just so I could have my sanity back when using the "new" Yahoo Financial Message Boards.<br><br>Its made a big improvement too. Although 1/2 of the ads on Yahoo are Yahoo style= <a href="http://yimg.com" rel="nofollow">yimg.com</a> or <a href="http://bannerspace.com" rel="nofollow">bannerspace.com</a> ads  or ATDMT.COM ads at least you can stopp all the distracting Flash ones by UNINSTALLING the Flash Player.<br><br>New Yahoo Message boards are causing 50% of people to leave their service in search of a new MB that is not threaded. Google Finance &amp; Lycos <a href="http://Ragingbull.com" rel="nofollow">Ragingbull.com</a> are 2 examples of up and coming ones.<br><br>Bye Bye Flash..</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644417">\
	 <div id="dsq-comment-header-9644417" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644417" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644417">wood berensky</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644417" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644417" class="dsq-comment-message"># 57 quote:<br>"Got it? Flash became to big like windows and I hope someone out there besides Microsoft is working on a similar player or technology. Got have a competition and so far none. Like I what I wrote, the future is interactive television and not web, the internet is only a part of visual information that delivers what is becoming the next amazing creations of freedom displays… I mean we are going to see amazing ways of motion graphics that will be totally interactive, in all shapes and sizes… Bye Bye 4:3 or 16:9 video sizes and welcome circles, triangles, whatever sizes you may like… New software’s like flash professional will need to be created for the very soon technologies that most of you don’t even imagine will come true… More and more we want videos to be part of our daily life"<br><br>Wow what an Assumption. If we wanted the PC to emulate Telivision why wouldn\'t we just use a Television ?<br><br>Most people with Television want a TIVO or DVR/PVR so they can CONTROL the PROGRAMMING &amp; ELEIMINATE the Advertising.<br><br>Not the other way around. Flash Video\'s embedded in CNN new Reports are the pits !!! I don\'t watch them mainly because they have unblocked advertising for every clip you view. There is NO FUN in that.<br><br>Video Software blocking has yet to be perfected yet.<br>Computers are being run at their limit with plug ins by Microsoft! 5 SVCHOST.EXE programs run concurrently on every WinXP system  communicating over the net.<br>(Hit Ctrl-Alt-Delete) on any WinXP machine &amp; you get 30-40 programs being run in TSR memory. Especially if you have Adblocking or AntiVirus software.<br><br>At  what point does this NONSENSE STOP?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644418">\
	 <div id="dsq-comment-header-9644418" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644418" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644418">wood berensky</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644418" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644418" class="dsq-comment-message">Way back in 1999, when people communicated on BBS listings (in text form) Before AOL?eartlink or Compuserve was a household name we thought of the effect of Advertising on performance of the Internet.<br>As you can see below not much has changed:<br>Why Block Ads?<br>Increased Speed<br>The following quote came across the Edupage clipping service recently:<br>...Web surfers weary of enduring the "pulsating, candy-colored wave of advertising that has spread across the Internet," increasingly are turning to ad-blocking to speed up their download times. "They are a symbol of people saying, \'I\'m not going to take it anymore,\'" says Jakob Nielsen, co-founder of the Nielsen-Norman Group. ... Many online advertisers dismiss the trend toward ad-blocking, noting that when faster connections are available, consumers will not be so annoyed about being forced to download cumbersome advertisement files.<br>(Los Angeles Times 2 Mar 99)<br>Unfortunately, higher internet access speeds make the problem worse, not better. As access speeds grow, the size and complexity of ads grows with it. Current ads contain animation or executable material and may even be complete programs that contain crude games. The bloat in these ads keeps the download times for pages at the ragged edge of tolerability even as access speeds increase dramatically. At the same time, the textual content that the ads supposedly support stays roughly the same, so the percentage of bandwidth used for ads climbs sharply and will approach 99% in the not-too-distant future. Indeed, as the speed of your internet access goes up, ad blocking becomes increasingly more beneficial, not less.<br><br><a href="http://www.ecst.csuchico.edu/%7Eatman/spam/adblock.shtml" rel="nofollow">http://www.ecst.csuchico.edu/~atman/spam/adbloc...</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644416">\
	 <div id="dsq-comment-header-9644416" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644416" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644416" href="http://websitedesignFX.com/" target="_blank" rel="nofollow">Ney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644416" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644416" class="dsq-comment-message">Wow what an Assumption. If we wanted the PC to emulate Telivision why wouldn’t we just use a Television ?<br><br>Most people with Television want a TIVO or DVR/PVR so they can CONTROL the PROGRAMMING &amp; ELEIMINATE the Advertising. Well, I have seen and work in some technology that will come true in some years to come. It is true, the internet is going to be a just a portal/path to deliver and recive information. Open TV formats are coming and I know that some companies already start working on free-chape OS system... Tivo, etc, tec, is just old technology and cool new systems will come along. I don\'t see people using the internet like most do in the near future... it is going to be portable and faster... Time for the new era of interactive motion graphics everywhere.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644345">\
	 <div id="dsq-comment-header-9644345" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644345" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644345" href="http://blogs.katapultmedia.com/jb2" target="_blank" rel="nofollow">John C. Bland II</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644345" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644345" class="dsq-comment-message">"New Yahoo Message boards are causing 50% of people to leave their service in search of a new MB that is not threaded. Google Finance &amp; Lycos <a href="http://Ragingbull.com" rel="nofollow">Ragingbull.com</a> are 2 examples of up and coming ones.<br><br>Bye Bye Flash.. "<br><br>How stupid is that? Why "Bye Bye Flash.." and not Yahoo!? They are the one\'s with the annoying ads right?<br><br>So, if they switched to ads made entirely of animated gifs would you turn off images and say "Bye Bye GIFs!"? I highly doubt it.<br><br>The worst part is that you pointed out using Google Finance. IT USES FLASH! Go here: <a href="http://finance.google.com/finance?cid=983582" rel="nofollow">http://finance.google.com/finance?cid=983582</a>. Right click on the chart and what do you see? The Flash Player! Oh wait, you uninstalled it so I guess you don\'t get all of the rich functionality Google created.<br><br>Now, I\'m not the one to flame people publicly but come on. Publicy ignorance deserves public bashing, right?<br><br>This whole post, as others have said, is ridiculous. With all of the bad implementations of WMV, Real, QuickTime, etc out there, why is Flash being bashed? I mean seriously...I guess you like clicking on the Windows Media, Real, or QT logo for video sites. LOL.<br><br>As Mike Chambers so eloquently pointed out (lol), what happens when you visit a page with a WMV and don\'t have the "plugin" (player) installed? Well, for him (on a Mac) it did something different than what it would do for me. What does it do for me in Firefox on a PC?<br><br>THE SAME DANG THING! Seriously, the same window shows  window/bar shows for QT, Real, and Windows Media. Why is this? BECAUSE THEY ARE PLUGINS!!!!!!!!!!!!!!<br><br>LOL. Come on...let\'s get real. Google Video and YouTube wouldn\'t be nearly as successful using any other technology. If you think so, name one (just one!) site that is even close to being as big as they are for video and doesn\'t use the Flash Player.<br><br>1 more thing about the person who said, in my words, "Flash is bad since it can\'t be searched." What happens when the search engines get smart enough to search inside of swfs? Hrmmm...what will be your excuse for not using Flash then? It will have the same abilities as HTML plus TONS more. Just a thought. :-)<br><br>I\'ll stop there. I could go on all day and refute each and every negative statement on this site but I need to get off of this laptop. :-)<br><br>Scoble, you definitely opened a can that seems you can\'t provide educated or even remotely eloquent responses to any of the Flash facts folks gave above. You seemed to nicely avoid many of the facts. :-) Give us more than a badly done site as proof why you shouldn\'t use Flash. Otherwise, turn off images (to remove animated gif\'s), uninstall Windows Media Player/QT/Real (since a badly done site will show the same message), and don\'t install WPF/E when it comes out. Then you\'ll get nothing but text and you should be happy. ;-) Go 1985!<br><br>(sorry for the flaming; ignorance/close minded people irritate me)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644420">\
	 <div id="dsq-comment-header-9644420" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644420" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644420" href="http://www.websitedesignfx.com/" target="_blank" rel="nofollow">Ney</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644420" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644420" class="dsq-comment-message">Why Flash?<br>Over 700 million Internet-connected desktops and mobile devices have flash installed. Flash content reaches 97.7% of Internet viewers. Flash is here to stay and it will get even more big.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644423">\
	 <div id="dsq-comment-header-9644423" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644423" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644423" href="http://www.curtismorley.com/" target="_blank" rel="nofollow">Curtis J. Morley</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644423" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644423" class="dsq-comment-message">I had a similar discussion the other day.  You can find the article here <a rel="nofollow">www.curtismorley.com</a><br>I list many sites that are successful using Flash and still make it on the search engines.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644422">\
	 <div id="dsq-comment-header-9644422" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644422" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644422">Wood</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644422" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644422" class="dsq-comment-message">i DONT USE FLASH BECAUSE it INVITES ADVERTISING that<br>i dont want to see. Since Adobe bought flash Advertising has EXPLODED into being written into ever crevice and webpage on Yahoo, Ebay, common sites. When using IE and I don\'t have flash I get an error message.<br>When using flash the pages load up SLOW for the Advertising content that is embedded and delays loading other content first.  I  HATE fricking FLASH.  NO MORE ADVERTISING  would render FLASH obsolete. Plus I don\'t like distracting web pages.  When Yahoo Finance change its message boards  I UNINSTALLED FLASH PLAYER. Exactly 1/2 of my ANNONYING ADS  disappeared.  Now All I have to do is to figure out a way to get the Banner space and th yimg (yahoo ads) to disappear and I will have it made.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644421">\
	 <div id="dsq-comment-header-9644421" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644421" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644421">Wood</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644421" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644421" class="dsq-comment-message">James Bailey- I like YOUR way of thinking. ~~~~~~~~~~<br><br>As far as I can tell, 99% of all flash is advertisements. I don’t want to see flash advertisements. It is very easy to turn off Flash in Safari without any hacks or add ons. I just turn off plug-ins in the security preferences. The only plug-ins I want are Quicktime embeds and for those I have a simple AppleScript that turns plug-ins on and off from the AppleScript menu as needed.<br><br>If you are a company that wants my business, it is unlikely that you will get it if your design requires flash. I simply don’t see it because it is almost always turned off.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644424">\
	 <div id="dsq-comment-header-9644424" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644424" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644424" href="http://allseo.wordpress.com/" target="_blank" rel="nofollow">Romuald</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644424" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644424" class="dsq-comment-message">Thank you the guys thank you Robert Scoble Favour has you I took away head and pub in Flash of my sites.<br>I am in order concentrate on a html  (xhtml) check and ca has given me fastness and one see information apparently. Greeting<br>ps. Never more Flash in navigations.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644425">\
	 <div id="dsq-comment-header-9644425" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644425" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644425" href="http://timheuer.com/blog" target="_blank" rel="nofollow">timheuer</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644425" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644425" class="dsq-comment-message">hey scoble, can you fix your scobleshow? <a href="http://timheuer.com/blog/archive/2006/10/23/13783.aspx" rel="nofollow">http://timheuer.com/blog/archive/2006/10/23/137...</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644426">\
	 <div id="dsq-comment-header-9644426" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644426" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9644426" href="http://www.bloggerblast.com/bestpills/" target="_blank" rel="nofollow">brand propecia</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644426" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644426" class="dsq-comment-message"><a href="http://www.bloggerblast.com/bestpills/" rel="nofollow"> brand propecia </a>.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9644427">\
	 <div id="dsq-comment-header-9644427" class="dsq-comment-header">\
	 <cite id="dsq-cite-9644427" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9644427">Gern Velblatt</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9644427" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9644427" class="dsq-comment-message">Actually, your average user will install the plugin without a second thought. You\'ve been thinking like geeks, who might have enough knowledge to be reticent.</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=why_i_don8217t_use_flash&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);
			}
		}
	});
}

})();




