




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": {"103c04a0de160e04956fa6fab2c195ab": {"username": "Steve", "tumblr": "", "display_name": "Steve", "url": "http://disqus.com/guest/103c04a0de160e04956fa6fab2c195ab/", "registered": false, "linkedin": "", "blog": "http://www.afterapple.com/tracker", "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": ""}, "8660502bb79d1b19ab370f28874b343e": {"username": "joem", "tumblr": "", "display_name": "joem", "url": "http://disqus.com/guest/8660502bb79d1b19ab370f28874b343e/", "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": ""}, "b231e07e868d33adca6135fc54ca06ec": {"username": "Ian Muir", "tumblr": "", "display_name": "Ian Muir", "url": "http://disqus.com/guest/b231e07e868d33adca6135fc54ca06ec/", "registered": false, "linkedin": "", "blog": "http://ian.sundermedia.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/28/2412/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "dfe84f9ad0d20700ae12ce9793dfdfc9": {"username": "teacher", "tumblr": "", "display_name": "teacher", "url": "http://disqus.com/guest/dfe84f9ad0d20700ae12ce9793dfdfc9/", "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": ""}, "e71486d6f8fe2954b12a9a26eaffad45": {"username": "Lloyd Budd", "tumblr": "", "display_name": "Lloyd Budd", "url": "http://disqus.com/guest/e71486d6f8fe2954b12a9a26eaffad45/", "registered": false, "linkedin": "", "blog": "http://foolswisdom.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/11295/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "4a344714e9b610d0feaedbaa273a825a": {"username": "Beca", "tumblr": "", "display_name": "Beca", "url": "http://disqus.com/guest/4a344714e9b610d0feaedbaa273a825a/", "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": ""}, "b8f33170f3ce4b0469508e66a01da7d6": {"username": "Michael", "tumblr": "", "display_name": "Michael", "url": "http://disqus.com/guest/b8f33170f3ce4b0469508e66a01da7d6/", "registered": false, "linkedin": "", "blog": "http://fupeg.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": ""}, "3553f5e0db0fd1ec4e40a932a2d8f5b3": {"username": "Robert Scoble", "tumblr": "", "display_name": "Robert Scoble", "url": "http://disqus.com/guest/3553f5e0db0fd1ec4e40a932a2d8f5b3/", "registered": false, "linkedin": "", "blog": "http://scobleizer.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/4069/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "b0a2e6598ee59237a0ebf6e801876f4d": {"username": "Mark Jaquith", "tumblr": "", "display_name": "Mark Jaquith", "url": "http://disqus.com/guest/b0a2e6598ee59237a0ebf6e801876f4d/", "registered": false, "linkedin": "", "blog": "http://markjaquith.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": ""}, "0d1297f947884ee9c196fd4602164f87": {"username": "ryan l", "tumblr": "", "display_name": "ryan l", "url": "http://disqus.com/guest/0d1297f947884ee9c196fd4602164f87/", "registered": false, "linkedin": "", "blog": "http://www.constantlycomplaining.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": ""}, "62e243a3f26aafa0eacb0371c4170a49": {"username": "Peter", "tumblr": "", "display_name": "Peter", "url": "http://disqus.com/guest/62e243a3f26aafa0eacb0371c4170a49/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/2157/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "35dd63f9ac6e8bc0c174e58d47c1d01c": {"username": "Speed", "tumblr": "", "display_name": "Speed", "url": "http://disqus.com/guest/35dd63f9ac6e8bc0c174e58d47c1d01c/", "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": ""}, "5d99a348ff4f89bacc29fb56ef83e6ea": {"username": "John Seals", "tumblr": "", "display_name": "John Seals", "url": "http://disqus.com/guest/5d99a348ff4f89bacc29fb56ef83e6ea/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "57decd9b3e5ae989abeb1885fa57acf4": {"username": "Rich", "tumblr": "", "display_name": "Rich", "url": "http://disqus.com/guest/57decd9b3e5ae989abeb1885fa57acf4/", "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": ""}, "abcb336511dc03e67cf802b516765a5f": {"username": "Stephen Rahn", "tumblr": "", "display_name": "Stephen Rahn", "url": "http://disqus.com/guest/abcb336511dc03e67cf802b516765a5f/", "registered": false, "linkedin": "", "blog": "http://stephenrahn.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": ""}, "5cb11c6d11db3f8e8e302e32ee0897c9": {"username": "Yuvi", "tumblr": "", "display_name": "Yuvi", "url": "http://disqus.com/guest/5cb11c6d11db3f8e8e302e32ee0897c9/", "registered": false, "linkedin": "", "blog": "http://blog.yuvisense.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": ""}, "fd52b7f2b0f2694e735a0cf1e6122182": {"username": "Don Moore", "tumblr": "", "display_name": "Don Moore", "url": "http://disqus.com/guest/fd52b7f2b0f2694e735a0cf1e6122182/", "registered": false, "linkedin": "", "blog": "http://www.greensborosports.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": ""}, "505f5ae88f751c4de6adddeb640a2018": {"username": "totaltransformation", "tumblr": "", "display_name": "totaltransformation", "url": "http://disqus.com/guest/505f5ae88f751c4de6adddeb640a2018/", "registered": false, "linkedin": "", "blog": "http://totaltransformation.wordpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/39/1879/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "30666887859a3b06398582d852f4d2e5": {"username": "Carla", "tumblr": "", "display_name": "Carla", "url": "http://disqus.com/guest/30666887859a3b06398582d852f4d2e5/", "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": ""}, "f6f50a7ff9d8193fda47777e3738d688": {"username": "Ben Harris", "tumblr": "", "display_name": "Ben Harris", "url": "http://disqus.com/guest/f6f50a7ff9d8193fda47777e3738d688/", "registered": false, "linkedin": "", "blog": "http://maimearai.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": ""}, "1fdc4274163b96627ba698093f78e183": {"username": "Bob Goldstein", "tumblr": "", "display_name": "Bob Goldstein", "url": "http://disqus.com/guest/1fdc4274163b96627ba698093f78e183/", "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": ""}, "00590debdd444de5e3602350e0ccfe7e": {"username": "Robert Ryan", "tumblr": "", "display_name": "Robert Ryan", "url": "http://disqus.com/guest/00590debdd444de5e3602350e0ccfe7e/", "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": ""}, "699a22965f9540911dc48fbf15944a8f": {"username": "Doug", "tumblr": "", "display_name": "Doug", "url": "http://disqus.com/guest/699a22965f9540911dc48fbf15944a8f/", "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": ""}, "fe138d4229b1c8eb43f3eea290e1bd09": {"username": "Herschel", "tumblr": "", "display_name": "Herschel", "url": "http://disqus.com/guest/fe138d4229b1c8eb43f3eea290e1bd09/", "registered": false, "linkedin": "", "blog": "http://www.eclecticismo.com/hhblog", "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": ""}, "75459aecc95d0f516a840aefffba1c96": {"username": "grey clay", "tumblr": "", "display_name": "grey clay", "url": "http://disqus.com/guest/75459aecc95d0f516a840aefffba1c96/", "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": ""}, "422bc85f244b18574735bb23e864c396": {"username": "Miles Archer", "tumblr": "", "display_name": "Miles Archer", "url": "http://disqus.com/guest/422bc85f244b18574735bb23e864c396/", "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": ""}, "817f89f28a5cdf2b975164bce59bd7f6": {"username": "Christian", "tumblr": "", "display_name": "Christian", "url": "http://disqus.com/guest/817f89f28a5cdf2b975164bce59bd7f6/", "registered": false, "linkedin": "", "blog": "http://thinklab.typepad.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "c2e2eab591f0b42b825207cb56f97baf": {"username": "Patrick J. Fanelli, Esq.", "tumblr": "", "display_name": "Patrick J. Fanelli, Esq.", "url": "http://disqus.com/guest/c2e2eab591f0b42b825207cb56f97baf/", "registered": false, "linkedin": "", "blog": "http://publicsectorlaw.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": ""}, "5045cfb9bde46d09e641580f12120f41": {"username": "Etan", "tumblr": "", "display_name": "Etan", "url": "http://disqus.com/guest/5045cfb9bde46d09e641580f12120f41/", "registered": false, "linkedin": "", "blog": "http://etan.vox.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": ""}, "1271ee83ab8ae9124698e83ea7399032": {"username": "T Molnar", "tumblr": "", "display_name": "T Molnar", "url": "http://disqus.com/guest/1271ee83ab8ae9124698e83ea7399032/", "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": ""}, "04960b6c28cb2d63886ffc49449d37bc": {"username": "JK Phillips", "tumblr": "", "display_name": "JK Phillips", "url": "http://disqus.com/guest/04960b6c28cb2d63886ffc49449d37bc/", "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": ""}, "774313d1236a6ea6b68537bb36d8eeee": {"username": "Eric Anondson", "tumblr": "", "display_name": "Eric Anondson", "url": "http://disqus.com/guest/774313d1236a6ea6b68537bb36d8eeee/", "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": ""}, "2f3b0e0e6b6d3c842d98521c8d7eed63": {"username": "Karoli", "tumblr": "", "display_name": "Karoli", "url": "http://disqus.com/guest/2f3b0e0e6b6d3c842d98521c8d7eed63/", "registered": false, "linkedin": "", "blog": "http://drumsnwhistles.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/18/8349/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "24e218a57a1a53bd2d8664756c08bb68": {"username": "Edward Ferron", "tumblr": "", "display_name": "Edward Ferron", "url": "http://disqus.com/guest/24e218a57a1a53bd2d8664756c08bb68/", "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": ""}, "a050edc46810b2ec88d588f370d3c82d": {"username": "Layne", "tumblr": "", "display_name": "Layne", "url": "http://disqus.com/guest/a050edc46810b2ec88d588f370d3c82d/", "registered": false, "linkedin": "", "blog": "http://www.tabletpcquestions.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": ""}, "cee17d590423b408a3410167ba6ae5b4": {"username": "Bob", "tumblr": "", "display_name": "Bob", "url": "http://disqus.com/guest/cee17d590423b408a3410167ba6ae5b4/", "registered": false, "linkedin": "", "blog": "http://ladow.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": ""}, "922787729a75d6ec3182c7ae7f5e0d79": {"username": "ron", "tumblr": "", "display_name": "ron", "url": "http://disqus.com/guest/922787729a75d6ec3182c7ae7f5e0d79/", "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": ""}, "3a088b735d051bca68c1f02e292b207e": {"username": "PXLated", "tumblr": "", "display_name": "PXLated", "url": "http://disqus.com/guest/3a088b735d051bca68c1f02e292b207e/", "registered": false, "linkedin": "", "blog": "http://www.geise.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "140550dcb7296547f5f1ea2a84c81774": {"username": "Neal Watzman", "tumblr": "", "display_name": "Neal Watzman", "url": "http://disqus.com/guest/140550dcb7296547f5f1ea2a84c81774/", "registered": false, "linkedin": "", "blog": "http://watzman.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": ""}, "450ac83595246bca5632f0309d406320": {"username": "Tommi", "tumblr": "", "display_name": "Tommi", "url": "http://disqus.com/guest/450ac83595246bca5632f0309d406320/", "registered": false, "linkedin": "", "blog": "http://worstwriter.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": ""}, "c57fd1ee7a978dce7312cbd2cbcb64c0": {"username": "Leslie", "tumblr": "", "display_name": "Leslie", "url": "http://disqus.com/guest/c57fd1ee7a978dce7312cbd2cbcb64c0/", "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": ""}, "8a6aa279f9f12aae6af680c6cd93175d": {"username": "Jeff", "tumblr": "", "display_name": "Jeff", "url": "http://disqus.com/guest/8a6aa279f9f12aae6af680c6cd93175d/", "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": ""}, "f98ca9169d30ddf77b31a46d8f051f67": {"username": "Matt Stoller", "tumblr": "", "display_name": "Matt Stoller", "url": "http://disqus.com/guest/f98ca9169d30ddf77b31a46d8f051f67/", "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": ""}, "52b62156fdd45df7d86b9bc2be0fc8fe": {"username": "Aaron", "tumblr": "", "display_name": "Aaron", "url": "http://disqus.com/guest/52b62156fdd45df7d86b9bc2be0fc8fe/", "registered": false, "linkedin": "", "blog": "http://thisoldcode.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": ""}, "708d5070c8bfea378c5b5891751ec9f8": {"username": "Custody", "tumblr": "", "display_name": "Custody", "url": "http://disqus.com/guest/708d5070c8bfea378c5b5891751ec9f8/", "registered": false, "linkedin": "", "blog": "http://childcustodyguide.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}}, "forum": {"use_media": true, "name": "Scobleizer", "streaming_realtime": true, "url": "scobleizer", "allow_anon_post": true, "reactions_enabled": true, "reply_position": 1, "show_avatar": true, "allow_anon_votes": false, "disqus_auth_disabled": false}, "realtime_enabled": true, "request": {"username": "", "is_global_moderator": false, "sharing": {}, "sort": 4, "forum": "scobleizer", "is_initial_load": true, "is_authenticated": false, "timestamp": "2009-12-17_11:02:02", "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": {"9670912": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert: what you talking about?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_22:51:28", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9670913": {"up_voted": false, "ip": "", "has_replies": false, "message": "<a href=\"http://scobleizer.com\" rel=\"nofollow\">scobleizer.com</a><br><br>you don't exist any more<br>you are so last year", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_22:27:20", "killed": false, "user_key": "00590debdd444de5e3602350e0ccfe7e", "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}, "9670914": {"up_voted": false, "ip": "", "has_replies": false, "message": "wow...  well that was embarassing..  That last bullet point that I had no real business contributing to begin with was supposed to read:<br>2. Renaissance-style knowledge - Wow what a copout.  But I guess what I mean is answers to questions that kids find *interesting*.  Idea being to try and find ways to foster more interest in learning.  (I guess I've been reading too many marketing and idea stickiness books lately)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_22:12:48", "killed": false, "user_key": "8a6aa279f9f12aae6af680c6cd93175d", "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}, "9670915": {"up_voted": false, "ip": "", "has_replies": false, "message": "Were we live summer school is only for the students that did not pass a class.  They have to be there during their \"Summer\" They don't make it a pleasant job.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_22:02:50", "killed": false, "user_key": "52b62156fdd45df7d86b9bc2be0fc8fe", "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}, "9670916": {"up_voted": false, "ip": "", "has_replies": false, "message": "Carla,<br><br>I support your efforts to teach but there are funds for teachers to improve themselves.<br><br>\"Teachers pay for the own education their entire lifetime. That comes out of their yearly wages. Their is no education fund to support continuing education.\"<br><br>There are numerous funding sources for a teacher's education. My teaching certification program was paid, the support program for beginning teachers was paid, as well as many professional development workshops for keeping the certification continues to be paid. New teachers in some states receive tax credits. Plus, some districts will pay signing bonuses for certified teachers. Teachers looking for housing assistance can even get zero down loans. Teachers also receive numerous discounts on products. For example, I received a 150 dollar discount on a cell phone because of my teaching job. Book stores provide discounts because of my job.<br><br>BTW: Two years of allowing a teacher in the classroom to teach, who fails to meet standards, is two years too long. The principal is trying to be too cautious about documentation and therefore has weak decision making abilities. Tell the teacher they have 1 week to get it together - quit hugging and pampering. Give the person the time to submit lesson plans with proper standards or face termination. Period. If the teacher fails then the kids will be better off with someone else.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_12:14:08", "killed": false, "user_key": "a050edc46810b2ec88d588f370d3c82d", "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}, "9670917": {"up_voted": false, "ip": "", "has_replies": false, "message": "Jeff, you are correct about summer school. There are limited spots available for teachers to do that as fewer students are enrolled in summer school than the rest of the academic year.<br><br>Your idea to have teachers work a 12-month contract is one that deserves some thought. There is plenty that teachers could so with the time. Doing research, working on computer skills, developing new curriculum are all possibilities. I have been working in a 12-month position for the past six years, and the adjustment was not a difficult one. One thing to consider is that more and more schools are adopting different types of modified \"year round\" type calendars, so the traditional summer break is almost gone anyway is some places.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_21:57:51", "killed": false, "user_key": "abcb336511dc03e67cf802b516765a5f", "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}, "9670918": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"The plan states which teaching standards must be brought up to proficient levels in order to meet profiency according to her principal\"<br><br>John, I am curious, what happens if she fails to meet these standards?  Will the union allow the school to fire her?  Will she be transferred to another school?<br>The procedure sounds good IF after an unsuccessful attempt at helping her she could face termination for failure.<br><br>-J. Kaiser", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_11:36:01", "killed": false, "user_key": "505f5ae88f751c4de6adddeb640a2018", "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}, "9670919": {"up_voted": false, "ip": "", "has_replies": false, "message": "Well, I can certainly see both sides of this one.  For those of us who work 40+ hours a week w/ standard vacation time, how could I not look at the picture as an hourly one that I can compare to my own job?  On the other, as someone choosing a career, how could I not look at the decision in terms of my yearly income, and ability to support my family?  I'm sure Mr. Scoble's correct that it's tough to find summer-only work that pays much.  Sure there is summer school, but certainly that wouldn't accomodate all teachers, and while I don't speak with any factual basis, I'd guess that the pay for summer school is lower.<br><br>I'd submit that this disconnect in perception, with undeniably valid points on both sides, is a problem that may be as important as the lack of accountability that Mr. Jobs points out.  The only fix my limited mind can conceive of would be to introduce parity with the rest of the working world.<br><br>1. Teachers should work a standard 40 hours a week with the same # of holidays that the rest of us get.<br>2. We, as the public need to know it.  Since we ultimately are signing the checks, we need to be convinced of the level of your efforts the same way our boss' must be convinced of ours.<br>3. Finally, as Mr. Jobs suggest, introduce accountability.  As my output goes, so does my employment.  Surely it seems reasonable to expect that if our teachers are sufficiently empowered (perhaps an issue in itself?), that we should be able to expect results.<br><br>What would the teachers do w/ the rest of the time?  Obviously I'm not the best person to answer this.  If you're a teacher, I'd love to hear your thoughts.  My thoughts are heavily colored with the taint of inexperience, but surely you can't expect that to stop me from offering at least a few ideas:<br>1. Computer skills<br>2. Renaissance-style knowledge - Wow what a copout.  But I guess what I mean is answers to questions that kids find", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_21:41:44", "killed": false, "user_key": "8a6aa279f9f12aae6af680c6cd93175d", "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}, "9670920": {"up_voted": false, "ip": "", "has_replies": false, "message": "Scoble:<br><br>So you say teachers should be paid more money and then you blast unions?<br><br>How are they supposed to improve their lot? Wait for management/school districts to increase pay/benefits out of the kindness of their hearts?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_11:13:14", "killed": false, "user_key": "5d99a348ff4f89bacc29fb56ef83e6ea", "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}, "9670921": {"up_voted": false, "ip": "", "has_replies": false, "message": "Jobs speaks out and everyone is listening. I have read all of the blogs posted to date. As a life-time teacher, I have a background from which to speak (if anyone will listen). 1)I knew what I was getting into (i.e. lower wages) for the sake of educating learners. However, wages have not kept up with inflation. Hmmm. 2)I work an average 50 hours a week. Two years ago when I had thirty fifth grade students, that number increased to nearly 60 hours a week at times, which just about exhausted me and my family 3)Parents play a large role in the outcome of education for their children. For example, when considering how well children perform on tests, the testing giant ETS claims that 90% of test performance can be explained by 5 factors: the number of days pupils are absent, the number of hours children watch TV, the number of pages they read for homework, the quality and quantity of reading matter in their homes, and the number of parents in their homes. A teacher can only control the quality of the instruction in the classroom. Yes, a teacher can influence parent involvement with their children, but ultimately, the parent chooses. I believe that parents are the ultimate influence of their child's education. Lucky the parent who moves up the economic scale and has more choice available to them and knows how to manuveur systems 4) Whether you want to believe it or not, public education is political. Not only do teachers need to be involved with current research (reading, trying out new techniques, classwork, etc.), they need to be writing and speaking with their representatives. It is easy for a teacher to feel overwhelmed with decision makers who are not working alongside them in the classrrom.  5) Teachers pay for the own education their entire lifetime. That comes out of their yearly wages. Their is no education fund to support continuing education. They are the fund. 6)Technology plays a large role in today's world, but is only as good as the teacher who knows how to use it. More work needs to be done in that arena. And then there is the factor of updating technology. With technology changing every few years, who will pay for the upgrades and shifts of equipment, software, training, etc.<br><br>These are some of the things on my mind while reading the blogs. It makes my blood-pressure rise when reading comments from influential Americans who may not be intimately involved with schools. Only when people get their \"feet wet\" so to speak, will change happen because teachers will continue to teach. It is their profession and obsession. By the way, in the public school district in which I work, I am currently on a peer assistance team working with a union teacher of 7 seven years who has had two years of below proficient rating. Five professionals (two principals, two classroom teachers, one Title 1 administrator) are helping her meet standards. We have been meeting with since Oct. Since that time, a plan was drafted with the teachers input. The plan states which teaching standards must be brought up to proficient levels in order to meet profiency according to her principal. There have been classroom observations, individual conferences, etc. to help the teacher move towards proficiency. They are being meet with the assistance of her peers. Ultimately, her principal will determine the outcome based on her performance. So far, the forum is working to help  \"bad teacher's\" performance. I would agree with the person who said bad teachers may be those who need improved training and education.<br><br>My final comment is this. Get involved with your local schools and local politicians. Every has that right in a democracy. You can influence change. Imagine influencing the lives of millions!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_11:18:56", "killed": false, "user_key": "30666887859a3b06398582d852f4d2e5", "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}, "9670922": {"up_voted": false, "ip": "", "has_replies": false, "message": "I've read a lot of blog posts about this and while I don't agree with Jobs 100%, I'm glad that his comments have garnered some attention.<br><br>I have 4 close friends who have teaching degrees. 2 are working as teachers and live in low-income housing. One is an assistant manager at Regal Cinemas because it pays about 35% more than a teaching salary and the fourth is working as a Bank Teller for the same reason.<br><br>Unfortunately, aside from a nationwide strike, I don't forsee any changes. One answer would be to force any public employee (such as congressmen) to have their children attend public school. If the people who vote on schools actually used them, I'm sure you would see some changes happen real pretty quickly.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_20:45:37", "killed": false, "user_key": "b231e07e868d33adca6135fc54ca06ec", "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}, "9670923": {"up_voted": false, "ip": "", "has_replies": false, "message": "You might find this interesting...20/20 segment on schools/unions...<br><a href=\"http://chotha.blogspot.com/2007/02/2020-stupid-people-in-america.html\" rel=\"nofollow\">http://chotha.blogspot.com/2007/02/2020-stupid-...</a><br>(It's a YouTube video. Wouldn't be surprised if it got pulled at some point)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_20:49:15", "killed": false, "user_key": "3a088b735d051bca68c1f02e292b207e", "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}, "9670924": {"up_voted": false, "ip": "", "has_replies": false, "message": "Education is not the responsibility of the GOVERNMENT!<br><br>Paying teachers 80K a year is not the answer.<br><br>The problem with education is what happens to kids when they come home. Parents do not follow up and stay on their children to actually learn. Parents are the final authority and where the majority of issues reside with the poor state of public education system we have today.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_10:22:55", "killed": false, "user_key": "fe138d4229b1c8eb43f3eea290e1bd09", "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}, "9670925": {"up_voted": false, "ip": "", "has_replies": false, "message": "Now, just wait till you get to the details of the Schools HERE...<br><br>And, think about the ones in africa. War torn Iraq. Sri Lanka.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_09:50:51", "killed": false, "user_key": "5cb11c6d11db3f8e8e302e32ee0897c9", "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}, "9670926": {"up_voted": false, "ip": "", "has_replies": false, "message": "Well, in NJ teachers with a master and several years experience are paid over $80k per year.  Yet, the system still sucks.  We drive 35 miles to take our children to private school - and pay $13k a year in real estate taxes.  The system sucks because they teach consistently to the lowest common denominator - it is only about standardized test scores - so reading comprehension and critical writing and thinking skills are all but gone.  Thank goodness we have the ability to bail out of a broken system.  But, I fear for the future of this country since most can;t.  The scary part is most parents are OK because their kids are getting A's.  But, what they don;t seem to realize is that my son was a straight A student, but no learning.  Moved him to a VERY GOOD private school, where writing, critical thinking and basics are what counts.  It rocked his world.  After a horrible first semester he is back on track and on honor roll.  But this time he worked to earn the spot.  In our public school a listtle over 1.3 of the entire class made honor roll.  Huh?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_09:51:32", "killed": false, "user_key": "04960b6c28cb2d63886ffc49449d37bc", "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}, "9670927": {"up_voted": false, "ip": "", "has_replies": false, "message": "Tell me about it.  I have a Master in History and couldn't get a job teaching Social Studies to high schoolers because I lack teaching certifications.  However, who ends up teaching that Social Studies class?  A guy called coach, whose approach to history is to read the boring textbook word for word.<br><br>So instead of teaching high schoolers in a high school, I took a job with a community college were- get this- I will be teaching high schoolers for college credit.  Explain that to me?!  It makes no sense.  It only makes sense if you understand how powerful the unions are.<br><br>I know people with Ph.D's who have been turned away by schools because they don't have a four year B.A. in education.  It is so sad it is almost funny- but it certainly isn't for the kids who suffer through second rate teachers.<br><br>-J. Kaiser", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_10:11:54", "killed": false, "user_key": "505f5ae88f751c4de6adddeb640a2018", "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}, "9670928": {"up_voted": false, "ip": "", "has_replies": false, "message": "Speed, I have never been a member of a teachers' union. Not all states have them. In my years as a teacher I have been required to attend countless ball games, school plays, fund raisers, etc. that I was not paid for. One year I did receive a supplement for sponsoring the school literary team and I carefully logged all the hours I put into that. It worked out to less than $2 per hour.<br><br>And you'll have to help me out on the math your article presents. In 2005 the average teacher salary was $47,808. If we assume a 190-day contract (that's what GA has), that works out to $31.45 per hour of straight time. If you assume one extra hour per day that is not compensated, then the average salary dips to less than $28 per hour. Anyone who has actually been a teacher knows that the hours spent outside the regular day add up to far more than an average of one hour per day.<br><br>And just so you'll know, I have never complained even once about my salary as an educator. I knew going in that money is not the reason for going into the profession. It does bother me when people don't know the whole story regarding how hard most teachers work.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_19:56:35", "killed": false, "user_key": "abcb336511dc03e67cf802b516765a5f", "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}, "9670929": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, and Steve;<br><br>You make me want to go out and be a teacher (their are some good teachers working in a bad system).  Make sure you address the system and not kill the people in the process because you do not have the insight to seperate the good ones from the bad ones.  There are bad people in everything and everywhere you go, thus repeating and driving the point home about bad teachers does not help your cause.<br><br>Same thing goes for bad parents.  I am of the mind set that everyone who has influence like you Robert, you should let your money do some talking and stop waiting on the government to solve our problems.  In a country where someone has as much free enterprise start a nation of large private schools sweeping the country, where free enteprise is so available.  We spend more time in shouting matches and protest instead of taking action.<br><br>This post does make some assumptions that you are not doing anything currently so if that is not the case then I apologize, however if it is the case, that you are doing nothing, well then...<br><br>I pray for our nation, school and children...<br><br>Ed", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-20_11:16:25", "killed": false, "user_key": "24e218a57a1a53bd2d8664756c08bb68", "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}, "9670930": {"up_voted": false, "ip": "", "has_replies": false, "message": "Any professional consultant working as a teacher would get paid more,<br>$50/hr for the classroom, $150 for anything beyond the allotted time.<br><br>Do teachers pull that kind of pay rate?  No.<br><br>Steve Jobs dropped out of the University, and that was his choice.<br>Blame the teachers?<br><br>Can we replace the parents who don't give children any attention?<br>Can we blame republicans for worthless family leave?<br><br>How about a year off, paid for the new mother, and a year off, paid, for the new father?  For EACH child.<br><br>In School Doctor's and Nurses - Free Health Care for all Children up to age 18?<br><br>How about a $10,000 tax credit for each child, for 21 years?<br><br>How about building schools that have a clean and green campus,<br>not rotting buildings?<br><br>How about taking some of that 'sin tax' money (alcohol, smokes, gas) and investing in the future?<br><br>How about a $99 open source laptop for each child with free local dial up?  OLPC - an idea for 3rd world countries?  How about Taking Care of Our Own?  Laptops for every student in the USA.  (And Hell no - not those iBook door stops).<br><br>Union Busting schools - isn't the answer.<br><br>Unionizing Apples iPod / iMac Manufacturing Plants IS the answer.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_20:13:30", "killed": false, "user_key": "103c04a0de160e04956fa6fab2c195ab", "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}, "9670931": {"up_voted": false, "ip": "", "has_replies": false, "message": "Remember, this union-busting talk is coming from a guy who's fortune is based off of manufacturing products in China where the workers make $2/day.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_19:12:49", "killed": false, "user_key": "4a344714e9b610d0feaedbaa273a825a", "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}, "9670932": {"up_voted": false, "ip": "", "has_replies": false, "message": "A few thoughts.<br><br>Some posters are getting caught in the premise that the quality of the US public schools. By what comparison backs up this idea - by their own experiences or by a study? A poor comparison is the best student from one country and the worst in the US - thus concluding the public schools are bad. Why determine the quality because of compulsory education? Once more, does everyone agree on how to monitor a teacher's or student's progress?<br><br>Next, do people agree on the purpose of schooling? Is it about socialization or education? Most people think of schooling as a place to find friends, compete in sports, while others might argue schooling is to keep the kids out of the job market.<br><br>Next, private school teacher turnover rate is higher than public school rates - thus lowering the overall average salary. Plus, research from Dr. Ingersoll, Smith, and others (Teacher Follow Up Survey) suggest salary is not the sole reason for teachers leaving the profession, either. Dr. Chapman used a turnover model in 1984 suggesting three major factors: external factors being only one of the three.<br><br>I would argue that teachers are not professionals. There is no mystical quality to their work. Dr. Lortie in 1975 wrote that everyone who has gone through the K-12 system somehow believes they are experts. Good teachers make teaching look easy - and many people remember the good. This lack of mystique is one reason teachers can never be professionals.<br><br>Salary of administration is way out of control. This is because the \"system\" is upside down. Instead of the classroom being the center, people work to get out of the classroom. Flip this around and the structure of schooling changes. In other words, hire people to work outside the classroom first so that they may learn about the schools. As people gain experience then they are eligible for jobs on the campus. Once on the campus, they work toward getting a job in the classroom. After team teaching - then they get a job as a teacher. In this manner, only the best people are teachers - rather than principals hiring anyone who can breathe, we work to hire the best.<br><br>FWIW, principals can fire teachers but these same principals who claim they cannot fire poor teachers use salary as a means to hire new teachers. In other words, it is more economical to hire two new teachers over an experienced one.<br><br>There is much more to the complexity of the challenges in our school system - but arguments have gone on for centuries. In \"reality,\" key people do not want our schools to help the poor. They only want to keep the poor people out of the way - and if one institution (school) cannot do this then another institution (jail) is used as the weapon to keep the peace.<br><br>One last thought, school choice is a political phrase to avoid the issue of compulsory education. Ask voters if they want everyone to have equal access to education and most will say ... what would people say? Should everyone go to school? Why? At what point are we a nation built on capitalism or socialism? After someone turns 18 do they suddenly become a capitalist and compete or does the learning happen while we squeeze them into classrooms and tell them to work in cooperative groups?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_08:09:22", "killed": false, "user_key": "a050edc46810b2ec88d588f370d3c82d", "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}, "9670933": {"up_voted": false, "ip": "", "has_replies": false, "message": "This isn't the first time Steve Jobs has given his views on the state of Education. Here's <a href=\"http://www.geocities.com/franktau/interviewpart1.html\" rel=\"nofollow\">an interview</a> from 1995 where he talks about it at length (scroll down to \"The Importance of Education\").", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_06:47:54", "killed": false, "user_key": "5045cfb9bde46d09e641580f12120f41", "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}, "9670934": {"up_voted": false, "ip": "", "has_replies": false, "message": "Christian: doing a future of learning channel sounds very interesting! You interested in doing something like that?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-20_04:05:30", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9670935": {"up_voted": false, "ip": "", "has_replies": false, "message": "The article and subsequent comments discuss solutions to fix our schools that don't seem to educate our children.  With that much I agree completely.  We could do better.<br><br>Unfortunately, the solution is not a simple one.  NCLB is a rather simplistic attempt to solve a larger problem.  Getting rid of \"poor\" teachers would help, as would encouraging the good ones who really care.<br><br>I occasionally attend our School Board meetings, and at one of them our Superintendent commented that the children \"come to school with so many more problems now...\"  A whole other issue but certainly part of the same puzzle.<br><br>I think it's a travesty that our children are not more educated, but the solutions are not simple ones.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_07:58:05", "killed": false, "user_key": "140550dcb7296547f5f1ea2a84c81774", "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}, "9670936": {"up_voted": false, "ip": "", "has_replies": false, "message": "24 Stephen: I can't help you with the math. The data comes from the Bureau of Labor Statistics.<br><a href=\"http://www.bls.gov/data/home.htm\" rel=\"nofollow\">http://www.bls.gov/data/home.htm</a><br><br>I have a great deal of respect for the work done by teachers. My \"were to live\" decision was based on the quality of the local public schools and I am in awe of the hard work and dedication of the teachers who work here. It is a school system with standing room only on parent night.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_07:59:47", "killed": false, "user_key": "35dd63f9ac6e8bc0c174e58d47c1d01c", "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}, "9670937": {"up_voted": false, "ip": "", "has_replies": false, "message": "All of the problems with government schools (inability to fire teachers, low pay, the resulting lack of incentive, lack of parental choice) could all be solved if the government reduced its role in education to that of providing an education voucher for each child that could be redeemed at any educational institution.  Why try to engineer a competitive education environment with fair wages and teacher incentives and parental choice?  These are all things that a private education market can take care of.  The current situation is that we try to create the illusion of an open free market education by adding layers of bureaucracy and government-induced money wasting and lethargy to something that works perfectly well as a private industry.  It's madness.<br><br>Vouchers work.  Unions are terrified of them because it takes the power away from the teachers and puts it in the hands of the parents, where it should be.  Parents are the ones paying for the education, but have little-to-no control over their child's education.  They get a one size fits all curriculum at a sub par school with unmotivated teachers.  Jobs isn't quite right and Robert isn't quite right, although both are dancing around the answer.  The issue is the inability of the consumer (the parents) to choose the education their children.  One solution is to fire bad teachers.  Another is to offer more money to teachers so you attract better teachers.  The other is to take your child out of schools that fail them.  The other is to make teacher pay based on performance (and not just based on the grades their students get, as that just leads to teachers cheating on the students' behalf).  All of these are components of a free market education system, and all would play their appropriate role at the appropriate time if we set education free.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_05:31:14", "killed": false, "user_key": "b0a2e6598ee59237a0ebf6e801876f4d", "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}, "9670938": {"up_voted": false, "ip": "", "has_replies": false, "message": "This article prompts a few thoughts:<br>1. As go public educational systems so likely goes a democracy. There is an incredible amount of lip service to the ideal of democracy (imbued with the sense of opportunity for all) which does not correspond with the diminishing support US public school's have been experiencing.<br>2. Teaching and learning are not technical acts that are ameniable to the level of manipulation which those of strong administrative/management persuasion might desire, legitimate concerns for accountability not withstanding. Such is the nature of learning organizations who are to serve a wide number and variety of people.<br>3. Public schools transcend all attempts to understand them or enact them, for example, as a business, as a factory, as a family, as military organization,.. They are their own \"beast\" which may exhibit features of some these things but are certainly very different that these entities.<br>3a. Educator roles transcend all attempts to understand them in narrow ways (see 3)<br>3b. Public schools are not here to serve, business, the military, the government, or Steve Jobs,etc.. they are here to serve \"people\" primarily children up until about age 18.  To provide children with the means to become a citizen in their unique (and law abiding) way in a democracy whether they eventually become business people, military, doctors, a clown or whatever.<br>4. With the discussion of public schooling and it's problems there is strong tendancy to \"blame the victim\" much like someone blames a rape victim for what happens to them. It's always \"so obvious\" to those not victimized how the \"victim\" is so entirely responsible for what they have experienced.<br>5. The public \"story\" of people \"concerned\" with public schooling, i.e. \"it's essential for a just, free and prosperous country\" often do not match with their \"private story\",i.e. not supporting them financially, or with their time and effort, as a crucial part of democracy.<br><br>If you live in Canada, that \"commie/socialist\"  entity north of the USA (and I say that tongue in cheek), your typical teacher with 10 yrs experience will likely make over $50,000 USD regardless of grade level or subject level (varies with province).  Educators enjoy fairly good pension benefits, have good dental and eye care coverage etc..<br>Educators are encouraged to view themselves as and be professionals, who know their profession and they get paid accordingly.  Yes there are always \"slugs\" who are teachers but the vast majority work very hard, for long hours and have the sense of belonging and responsibility to those they serve, likely any CEO would die for.<br><br>There are private schools but public schools, while far from perfect, are seen very much as the \"level playing\" field where regardless of gender, socio-economic status, ethno-cultural or religous affilation, children and their families have opportunities to be educated, and find their socio-economic way in society. There are difficulities in Canada no doubt but maybe it's the cold weather, there seems a strong commitment by the general populous that along side the right to good and accessible health care, all citizens should have the right to a good education.<br><br>While totally anectodal, talking with educators in the USA from various areas over the years left me wondering and marveling at what they endured in their profession and in fact how they are not viewed as professionals (nor paid as professionals).<br><br>There is no educational eden anywhere, Canada, Briain, Finland or anywhere, but the USA seems generally to be subverting one of the pillars of their democratic society, by a continuuing neglect to it's public education system and those serving within it.<br><br>Whether people are left, right or center or up or down or pink or blue one would think just like the air people share when it's at risk, there would be a strong and consistent concern about the shared experience of public schooling when it seems in trouble, for it is a central pillar to an educated and involved citizenary.<br><br>However, I am biased towards public education and those who participate in those systems as you can clearly see, for here in Canada such education allowed my low income parent's to see their kids eventually become a doctor, a lawyer, an engineer, a mechanic, and univ. prof. but more importantly concerned and active citizens who participate.<br><br>All abilities and talents which would likely never have been realized without a public education system.<br><br>The continued subversion of public education in the USA is a disheartening even frightening occurance for anyone concerned with democracy, properity and social justice.<br><br>Anyway, just some thoughts.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_18:50:43", "killed": false, "user_key": "1271ee83ab8ae9124698e83ea7399032", "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}, "9670939": {"up_voted": false, "ip": "", "has_replies": false, "message": "I was not a math teacher, but I can usually see when things don't add up. The math from the BLS is still not adding up for me, so maybe some of you math guys can help me.<br><br>In most cases, a teacher's yearly contract covers approximately 190 days. For the sake of this calculation, I will go with that. If we assume the $34.06 hourly rate over 190 days (8-hour workday, which is what every place I worked in required), then the average salary should be $51,771. This is not taking into consideration ANY outside or \"take home\" work at all.<br><br>The problem is that I can't find any stat that says that the average teacher salary was that high. Most I have found are in the $46-49k range. Even if I could find that it was over 51k, that does not take into account the outside hours. I know that other professions also take work home, but it seems that the BLS isn't taking any into consideration at all.<br><br>Again, I am willing to listen to any numbers to help me understand this. The BLS numbers just aren't adding up for me. If you were to go with a 7.5 hour workday, then the numbers are believable, but that is not allowing for any take home work at all.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_22:59:15", "killed": false, "user_key": "abcb336511dc03e67cf802b516765a5f", "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}, "9670940": {"up_voted": false, "ip": "", "has_replies": false, "message": "Stephen (#18)<br>From the article (again):<br>\" ... the National Compensation Survey is designed to capture all hours actually worked. And teachers are hardly the only wage earners who take work home with them.\"<br>If attending an extracurricular event is part of the job then the teacher is getting paid for it. If it is not part of the job then the teacher has freely decided to attend for personal reasons. The idea that a union teacher can be forced to spend time at school functions for no pay is crazy. Try getting a union carpenter to work a few extra hours for free.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_18:26:05", "killed": false, "user_key": "35dd63f9ac6e8bc0c174e58d47c1d01c", "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}, "9670941": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert is giving a note to Steve Jobs::::::) how funny.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_17:57:00", "killed": false, "user_key": "922787729a75d6ec3182c7ae7f5e0d79", "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}, "9670942": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert -- Thanks for tweaking the subject outside of the obvious K-12 echo chamber.  Jobs is going to be thrown under the bus or carried atop shoulders because we are more fixated on the either/or mudslinging rather than taking a step back and getting a bigger piece of the horizon line in our view finder.<br><br>The 'system' of traditional public K-12 education (this is what he's talking about, and not colleges or private schools or kindercare programs on the weekends) is seen as an infinite ecosystem that must be saved at all costs.  Why?  Because we're all familiar with it, we've invested insanely to get to this point, and it's pretty iconic.<br><br>One of the above comments offered that we still aren't sure if it's about education or socialization -- and he deserves credit for that statement. True.  And because we aren't really arguing similar terms, and because (this is the kicker) EVERYONE (myself included) is an 'expert' since we attended as students (at least), everyone can see where others are to blame.  But we rarely can offer a firm foundation based on a unified purpose or a set of solutions that are valued by more than a niche audience.<br><br>What always surprises me is that when the system was born, there was NO guarantee it'd be around 10 or 25 or 100 years later.  It was an epic risk.  A risk that offered mass literacy, mass voting access, agrarian to industrial transitions, and so much more at a time in our nation's history when there were very few guarantees that we'd be a global superpower of much worth.  And for 150+ years we've been insanely successful -- regardless of what was going on in society or the ugly view in the mirror we had to face (Brown v. Board of Education and 1970's Boston Bus Riots and Reagans 'ketchup as school veggie' for 3 examples).  There was no previous example.  We pulled it off.  Warts and all.<br><br>But what about tomorrow?  Are we spending more time sticking fingers in watery holes or in asking what we really will need for the future?<br><br>Perhaps if we began to imagine that a) we were successful with an epic historical risk at mass proportions and put our nation in a position to chase Sputnik when that seemed so important and b) it's time to focus on 'learning' in ways never before imagined for a change, rather than simply mudslinging about a system that may not have been set up to take us into the future...perhaps then and only then we might make progress other than hunting \"Did you hear what Jobs said?\" headlines.<br><br>Jobs shouldn't be thrown under the bus.  He shouldn't be carried atop shoulders, either.  If he was just Joe Citizen, it wouldn't matter. Nobody would listen.  Or oooh-n-ahhh.  It only got the press it did because 'Apple' is named in such a way to endear itself to teachers in the first place (other than the 'knowledge' and Eve metaphor if you're so inclined)...and he seemingly took a shot at those who love him so.<br><br>Ironic.  Strategic.  Whatever.<br><br>Why are we spending so much time on his comments?  Why not spend more time on John Seeley Brown and Ian Jukes and others who are trying to identify where we need to take it, rather than those who simply want to kick it in the backside from a proprietary point of view?<br><br>Just a thought.  Blaming one or another or another seems to be only rocks through windows.  Either way, we all have to clean it up and all of our property values go down.  Loud echo chamber.  But the view lacks.<br><br>Scoble -- thanks for throwing education sticks and flame together in an area not always discussed on your blog.  Brought a smile to my face when the RSS feedtruck came down the street this morning.<br><br>My ONLY question to you, Robert, at this point is:<br><br>When are you going to add a \"Future of Learning\" video series at PodTech?  You've got a good portioin of the trends covered from India to the newly named gaming/virtual worlds channel. Perhaps the ONE thing that impacts all as we go forward -- LEARNING -- oughta grab a bit of vodcast/vloggies love as well?  (he smiles with a hint-hint, nudge-nudge).<br><br>Tell me when you and John are ready to launch 'the obvious' and I'd love to help connect some of the dots for you.  Considering that your neighbors-down-the-street at Edutopia (George Lucas Educational Foundation) are doing a brilliant job of cornering an educational story-telling market that you could easily get a video foothold in, perhaps there's even a bottom-line upside for you as well.  Perhaps (again, a smile)<br><br>Or -- he smiles -- is this post conversation just an excuse to talk about Jobs really, and to use 'education' as conversational fodder and left-over bac-o-bits on the salad bar floor when everyone moves over to the nest 'Who link-baited who?' controversy? (grin)<br><br>Tell me when you're in Texas next, my friend.  I owe you one for being such a good host in Montana last August and letting me enjoy the hot springs as you were daydreaming the video adventure you've recently smacked out of the park.  Perhaps I can wrestle down a few CEO's and geeks for you, too!<br><br>Cheers,<br>Christian", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_23:31:18", "killed": false, "user_key": "817f89f28a5cdf2b975164bce59bd7f6", "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}, "9670943": {"up_voted": false, "ip": "", "has_replies": false, "message": "Why pay public school teachers $80,000 to get results?  Most private school teachers earn far less and produce a better overall quality student.  You are correct that the ultimate factor is being able to select who is educated.  Public schools have to educate everyone.<br><br>BTW, I am a public school teacher.  I would welcome the raise, but my salary is not the reason public schools are failing.<br><br>As for NCLB, what most people fail to realize is that the federal government has absolutely no role in education.  The US Constitution does not reserve the right to the feds and San Antonio v. Rodriguez found that education is not a fundamental right.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_00:40:39", "killed": false, "user_key": "cee17d590423b408a3410167ba6ae5b4", "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}, "9670944": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hey Speed, does your article allow for all of the extracurricular activities that teachers have to attend without pay and also all of the required staff development that must be done during breaks that is also not compensated? I didn't see anything about that in there.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_17:36:54", "killed": false, "user_key": "abcb336511dc03e67cf802b516765a5f", "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}, "9670945": {"up_voted": false, "ip": "", "has_replies": false, "message": "The problem with education is most definitely not underfunding. Don Dodge got it right when he said that unions eliminate pay-per-performance, thus causing \"good\" teachers to be underpaid. The solution is not raising taxes as Scoble is suggesting. We've been blindly throwing more and more money at public schools for decades now. Public schools in California have much higher per student budgets than private schools in California. Private schools spend less but do a lot more with what they spend. They have to because of competition. That's what public schools lack on all levels. There's no competition for teachers. There's no competition for principals. There's no competition between schools. A corollary of a lack of competition is a lack of accountability.  A voucher program would help a lot, giving back choice to people. A tax credit system would be even better.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_17:07:19", "killed": false, "user_key": "b8f33170f3ce4b0469508e66a01da7d6", "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}, "9670946": {"up_voted": false, "ip": "", "has_replies": false, "message": "Michael,<br>Is it competition that makes Private schools good if the fact they hand pick the students that attend? If you think its hard to remove a bad teacher from public school try to remove a bad student.  Private school has no such trouble.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_17:12:01", "killed": false, "user_key": "52b62156fdd45df7d86b9bc2be0fc8fe", "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}, "9670947": {"up_voted": false, "ip": "", "has_replies": false, "message": "Bob: Private schools get better results because of parental involvement. When you're paying thousands of dollars per year for your kids' education, you are going to make sure he/she gets it. Also, they can keep out kids who are falling behind (slow kids force teachers to spend more attention on those kids, slowing down the entire class). Also, parents who want the best education for their kids are self-selecting. They are generally parents who've learned the value of a good education (hence, probably are better educated themselves).<br><br>Even in private schools the teachers generally suck and would be better with higher wages. I watched teachers who were into math and science leave private schools too for private industry where they could make three to five times more.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_00:49:23", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9670948": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert: From the article ...<br>\"Of course, public school teacher earnings look less impressive when viewed on an annual basis than on an hourly basis. This is because teachers tend to work fewer hours per year, with breaks during the summer, winter and spring. But comparing earnings on an annual basis would be inappropriate when teachers work significantly fewer hours than do other workers. ... That time off is worth money and cannot simply be ignored when comparing earnings. The appropriate way to compare earnings in this circumstance is to focus on hourly rates.<br><br>\"Moreover, the earnings data reported here, which are taken directly from the National Compensation Survey conducted by the Bureau of Labor Statistics, do not include retirement and health benefits, which tend to be quite generous for public school teachers relative to other workers. Nor do they include the nonmonetary benefit of greater job security due to the tenure that most public school teachers enjoy.<br><br>\"Educators sometimes object that hourly earnings calculations do not capture the additional hours they work outside of school, but this objection is not very compelling. First, the National Compensation Survey is designed to capture all hours actually worked. And teachers are hardly the only wage earners who take work home with them.<br><br>And finally, how about teaching summer school?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_16:04:50", "killed": false, "user_key": "35dd63f9ac6e8bc0c174e58d47c1d01c", "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}, "9670949": {"up_voted": false, "ip": "", "has_replies": false, "message": "Aaron: Your are assuming facts not in evidence. Please see paragraph three in my response to Robert (#12).", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_16:10:12", "killed": false, "user_key": "35dd63f9ac6e8bc0c174e58d47c1d01c", "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}, "9670950": {"up_voted": false, "ip": "", "has_replies": false, "message": "First 34(Speed) an hour is based off an 8 hour workday.  And believe me, my wife is a teacher its an average of 16 hours a day.<br>Second you can fire teachers. There is a long process you have to follow.  So school districts and principals tend not to do it.<br>Finally a principal is not a CEO that its utter insanity.  they would be like a branch manager with almost no power.  your district would represent the board of directors and the superintendent is CEO.<br>If you want to improve the system don't go after the grunt with no say and power. That is like evaluating Mcdonalds based on the cashier.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_15:59:12", "killed": false, "user_key": "52b62156fdd45df7d86b9bc2be0fc8fe", "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}, "9670951": {"up_voted": false, "ip": "", "has_replies": false, "message": "Speed: every teacher I know worked another hour outside of work hours just to keep up. And most have to take continuing education during summers, which isn't counted in hours worked. The good ones also did lots of research during summers to make their classrooms better.<br><br>And, finally, what kind of job can you find that will let you work just for the summer? Not many.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_15:48:19", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9670952": {"up_voted": false, "ip": "", "has_replies": false, "message": "From OpinionJournal (free)<br>\"$34.06 an Hour<br>That's how much the average public school teacher makes. Is that \"underpaid\"?\"<br><a href=\"http://www.opinionjournal.com/editorial/feature.html?id=110009612\" rel=\"nofollow\">http://www.opinionjournal.com/editorial/feature...</a><br>\"Evidence suggests that the way we pay teachers is more important than simply what they take home. Currently salaries are determined almost entirely by seniority--the number of years in the classroom--and the number of advanced degrees accumulated. Neither has much to do with student improvement.\"", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_15:43:48", "killed": false, "user_key": "35dd63f9ac6e8bc0c174e58d47c1d01c", "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}, "9670953": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi Robert, I was a high school teacher for 12 years, and I now work for a university in Georgia in a department whose goal is to help teachers use technology in an effective manner to increase student learning. There is no teachers' union in GA, but we have some of the same problems. It is still difficult to get rid of bad teachers. I honestly think that \"bad teachers\" are most often teachers that haven't been trained properly. Our colleges of education are not keeping as current as they should be, and most are woefully behind when it comes to using technology.<br><br>I really appreciate your interest in education, and we need more people like yourself from the tech world to help promote what we do with technology. Have you ever considered speaking at or at least attending any educational technology conferences? The National Educational Computing Conference will be in Atlanta this June. It would be great if you could at least come by and do some interviews with some leaders in educational technology. Some people I work with are on the conference committee, so I might be able to help facilitate that if you are interested.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_15:49:51", "killed": false, "user_key": "abcb336511dc03e67cf802b516765a5f", "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}, "9670954": {"up_voted": false, "ip": "", "has_replies": false, "message": "You're half right. At least half the problem rests with bad parenting, and teachers who can't run a classroom for fear of a lawsuit. Even a bad grade can result in the threat of litigation from an angry parent, and it's usually the at-risk kids who have the worst sperm donors and helicopter moms possible.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_15:14:22", "killed": false, "user_key": "57decd9b3e5ae989abeb1885fa57acf4", "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}, "9670955": {"up_voted": false, "ip": "", "has_replies": false, "message": "Then you have the ADMINISTRATION, teachers who have moved up the food chain so far they fail to remember why they are there.<br><br>My parents were both teachers in the 60's.  School administration used to be a small staff of may be 10 to 15 people for a school system.  Today, the Administration has ballooned to over 100 people - most making the salaries that teachers should make or HIGHER.<br><br>Parents are also part of the problem.  Unfortunately financial demands often prevent parents from actively participating in their children's education.  Schools with active parents tend to do better.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_15:15:48", "killed": false, "user_key": "fd52b7f2b0f2694e735a0cf1e6122182", "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}, "9670956": {"up_voted": false, "ip": "", "has_replies": false, "message": "Forgive me for using this comment as a soapbox for a minute.  Everything you said is true, particularly the points about the pay scale and NCLB, which is bad for schools, students, teachers and communities.<br><br>I really want to talk a little about the technology point you made and appeal to you to shout out into your piece of the blogosphere about <a href=\"http://julieamer.blogspot.com/\" rel=\"nofollow\">Julie Amero</a>, a 2nd grade substitute teacher in Connecticut who is facing up to <strong>40 years in jail</strong> because the Windows PC in the 2nd grade classroom where she was teaching was infected with spyware, which caused porn popups to come up on the screen in front of her students.<br><br>Despite the fact that the network administrator had not updated security definitions, spyware definitions, nor set appropriate controls on the network to prevent such things from happening, Amero was the one convicted of exposing children to pornography.  During the trial she was not permitted to introduce evidence proving that she had no control over the technology that was in her classroom and which was exploited by others.<br><br>Tragically, at the time this happened she was 4 months pregnant, and the stress of the charges and trial caused her to lose her baby.  Amero and her husband have spent $20,000 in their defense and have no more money to pay for the appeal.<br><br>If ever there was a cause for which bloggers should bang the drum, this is it.  If this conviction is allowed to stand, it places every teacher in every classroom at the mercy of their network administrator and will definitely discourage teachers from adopting new technology and utilizing it in their classroom.<br><br>Amero's blog is <a href=\"http://julieamer.blogspot.com/\" rel=\"nofollow\">here</a>.  They also have established a defense fund which can be reached from the blog.  Please encourage your readers to stand up for the future of technology in education.<br><br>Thank you so much.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_15:16:15", "killed": false, "user_key": "2f3b0e0e6b6d3c842d98521c8d7eed63", "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}, "9670957": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"most teachers I talk with say that initiative is a disaster\"<br><br>What do you expect - it's a hassle for them. I have no idea if it's good policy, but if you make policy based on what's easiest for the teachers your doomed.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_14:45:47", "killed": false, "user_key": "422bc85f244b18574735bb23e864c396", "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}, "9670958": {"up_voted": false, "ip": "", "has_replies": false, "message": "Miles: I agree with you, but if you dig further you find a TON of problems with it. The Wikipedia link covers the pros and cons in depth.<br><br>Part of it is that it's underfunded.<br><br>But, your attitude: not listening to the front-line troops (teachers) is telling.<br><br>Let me ask you. What has a greater chance of success? Something forced on workers from on high, or something that the workers themselves support?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_14:50:56", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9670959": {"up_voted": false, "ip": "", "has_replies": false, "message": "Oops, correction...she is a SEVENTH grade substitute teacher.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_15:22:27", "killed": false, "user_key": "2f3b0e0e6b6d3c842d98521c8d7eed63", "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}, "9670960": {"up_voted": false, "ip": "", "has_replies": false, "message": "A significant part of Don Dodge's article is that he thinks that teachers are fairly compensated, which I think is absurd!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-06-11_17:21:28", "killed": false, "user_key": "e71486d6f8fe2954b12a9a26eaffad45", "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}, "9670961": {"up_voted": false, "ip": "", "has_replies": false, "message": "NY Times ran an article titled,\u201c Mothers Scrimp as State Takes Child Support.\u201d It caught my attention because child support is a topic I write about in my book. But you may have skipped it, or not seen at it at all. Why? Because you have to connect with something on an emotional level first in order to express further interest. What you define as a\u201c must read\u201d may have more to do with your career, your...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-03-19_12:11:34", "killed": false, "user_key": "708d5070c8bfea378c5b5891751ec9f8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9670898": {"up_voted": false, "ip": "", "has_replies": false, "message": "Just a note that charter schools are usually non union and many offer incentives for job performance and parent satisfaction or what you would call merit pay. Could this be one of the reasons that charter schools are successful in producing positive results?<br>Leslie", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-28_23:16:14", "killed": false, "user_key": "c57fd1ee7a978dce7312cbd2cbcb64c0", "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}, "9670899": {"up_voted": false, "ip": "", "has_replies": false, "message": "As everyone has pointed out, there is plenty of blame and credit to go around.  While I have \"issues\" with the unionization of teachers, those are more philosophical than practical.  There are good teachers and there are bad teachers.  There are teachers that work hard and teachers that don't.  That has nothing to do with unionization.<br><br>As a school law and labor law attorney, I can tell you that it is NOT, contrary to the perception of Steve Jobs and many others, impossible to fire teachers.  Are there problems (fear of litigation, etc.) that prevent it from being as easy as some would like?  Perhaps.  But it is not impossible.  Nor is it the solution, however.<br><br>I do find it interesting, however, that while <a href=\"http://publicsectorlaw.wordpress.com/2007/02/16/congressional-dems-introduce-free-choice-act-to-limit-free-choice/\" rel=\"nofollow\">some are trying to make it easier for individuals to exercise union rights</a>, <a href=\"http://publicsectorlaw.wordpress.com/2007/02/27/an-end-to-teachers-strikes-in-pa/\" rel=\"nofollow\">others are seking to limit those rights for teachers.</a><br><br>Just some food for thought.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-28_14:13:01", "killed": false, "user_key": "c2e2eab591f0b42b825207cb56f97baf", "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}, "9670900": {"up_voted": false, "ip": "", "has_replies": false, "message": "Its not the teachers or even the schools that are to blame for our educational systems lackluster performance.<br><br>It is the parents.<br><br>The entire perfomance curve is dragged down by parents that can't afford to invest in thier children cause there too busy just trying to figure out how to put food on the plate.<br><br>Kids that go to preschool or early childhood education of some sort are much more  likely to succeed.<br><br>Education is just like any other investment..if you start early and keep a stable input...your going to make out allright.<br><br>Unfortunately many can not afford to invest in thier children let alone a 401k.<br><br>Jobs would do better to imitate his geekie arch rival and start working on the solution to the problem instead of just bitching about it.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-27_15:33:46", "killed": false, "user_key": "0d1297f947884ee9c196fd4602164f87", "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}, "9670901": {"up_voted": false, "ip": "", "has_replies": false, "message": "Doug, your article made me laugh out loud when I read the part about \"paid lunches\" and \"rest periods\" for teachers. Please tell a 2rd grade teacher about a paid lunch when he or she has to monitor 25 7-year-olds while trying to squeeze in enough time to scarf down a sandwich him/herself. I was a high school teacher, and I ALWAYS had some sort of lunch duty or hall monitoring during my \"paid lunch\" and \"rest period\" time. I could barely find a spare minute or two to take a whiz most days. Truly hysterical.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_22:17:56", "killed": false, "user_key": "abcb336511dc03e67cf802b516765a5f", "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}, "9670902": {"up_voted": false, "ip": "", "has_replies": false, "message": "Any discussion of performance-based compensation should address criteria to be used in evaluating performance.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_22:19:27", "killed": false, "user_key": "75459aecc95d0f516a840aefffba1c96", "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}, "9670903": {"up_voted": false, "ip": "", "has_replies": false, "message": "The only problem with your post is that unions are also responsible for what we pay teachers.  What prevents a superintendent from paying a better performing teacher more than an average teacher isn't politicians - it's the collective bargaining contracts.<br><br>There's also some recent research which finds hourly teacher salaries pay above average:  <a href=\"http://www.manhattan-institute.org/html/cr_50.htm\" rel=\"nofollow\">http://www.manhattan-institute.org/html/cr_50.htm</a>  Perhaps most surprisingly, public school teachers are paid 61% more per hour than private school teachers.<br><br>It's a bit disturbing to see you attack NCLB with such a broad bruch but don't seem to understand what it actually does.  You seem to miss that it includes nearly $3 billion to help support increased teacher salaries as well as bonuses for teachers who work with at risk students, hard to staff subjects like math, or improve student performance.<br><br>You also make the claim that NCLB is underfunded which is based on the misguided notion that \"authorized\" funding levels in legislation are somehow promises.  They're not - they're spending \"caps.\"  Look back at the Clinton budget when the democrats also controlled congress and you'll see similar patterns where neither the president's budget not the congressional appropriations provided the full amount authorized.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_21:33:44", "killed": false, "user_key": "699a22965f9540911dc48fbf15944a8f", "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}, "9670904": {"up_voted": false, "ip": "", "has_replies": false, "message": "The world is becoming ever more demanding of intellectual ability but people are not getting any smarter.  We have the same genes as our stone-age ancestors.  The schools cannot fix what nature did not choose to provide.<br><br>Sure, teachers' unions, etc, etc, are a drag.  But this is a secondary phenomenon.  With increasing desperation, well informed, educated parents are concentrating their children in private schools or pricy suburbs - leaving the rest of the population to its fate.<br><br>Until we face up to the essential truth that children vary widely in their intellectual ability, all this discussion is futile.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_18:41:37", "killed": false, "user_key": "8660502bb79d1b19ab370f28874b343e", "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}, "9670905": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"Steve Jobs deserves praise for at least speaking half the truth.\"<br><br>Sorry. We (America) are where we are today as a society because of compromising truth.<br><br>Everything that comes out of Steve Jobs makes me cringe. He's nothing but the best example of America gone bad but still appearing to be \"cool\". Whoopee. What a jerk.<br><br>If you think the US school system is screwed, try mixing it with the German system. Here's a post of mine that is a bit winded, rants too much, has some bad language, is way too long, but does come full circle and provide first-hand insight into a really screwed up school system.<br><br><a href=\"http://worstwriter.wordpress.com/2007/01/31/when-bourgeois-women-cry-their-tears-sting/\" rel=\"nofollow\">http://worstwriter.wordpress.com/2007/01/31/whe...</a><br><br>Tommi", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_17:13:30", "killed": false, "user_key": "450ac83595246bca5632f0309d406320", "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}, "9670906": {"up_voted": false, "ip": "", "has_replies": false, "message": "My school's/city's background...<br><br>inner city (99% free or reduced lunch), a city where 6/100 students have a college degree after five years, the school with the highest DCFS population in the state, one of the highest AIDS rates and special education populations in the city<br><br>...yet we are expected to have all our students testing at a benchmark a wealthy white suburb meets.<br><br>I have yet to log a week less than 50+ hours.  That hourly wage doesn't deduct the supplies teachers pay for out of pocket.<br><br>50% Parents and Students:<br>What fails to be addressed is the students interest in education.  When students will call teachers a \"bitch\" or tell them to \"Go fuck yourself.\" you will have difficulty retaining the best and the brightest.  This may only be a few students, but sexual advances and obscene comments on a regular basis is draining emotional.  You can't blame the unions for the students behavior.  The parents and a legal rules that allow students to engage and continue in this behavior are responsible.<br><br>I love teaching and accept the comparative low pay (I have a BS in mathematics), but I can feel the exhaustion and frustration with the system setting in.  I would accept even lower pay if it was to reduce class size.<br><br>If teaching was an easy job (John Stossel) you wouldn't have such high attrition rates in low income areas.  My last school had a 70+% turnover in 1 year.<br><br>Some teachers are horrible, but some become terrible when they check out.  The Unions are flawed, but teachers can be fired.  Where I am, unless tenured, you can be let go without a reason.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_17:09:51", "killed": false, "user_key": "dfe84f9ad0d20700ae12ce9793dfdfc9", "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}, "9670907": {"up_voted": false, "ip": "", "has_replies": false, "message": "There isn't any \"the\" problem.  There are many interrelated issues, involving parents, students, gov regulations, and<br>sure, teachers, principals, and unions.<br><br>$80k salaries won't fix it. (I'd pay, if it would.)<br>Read <a href=\"http://joelonsoftware.com\" rel=\"nofollow\">joelonsoftware.com</a> for essays on how to compensate programmers.  Similar ideas apply -- money is important, but the various psychic environments and rewards can be even more important.<br><br>Simplistic solutions remind me of the apocryphal<br>difference between democratic and republican<br>responses to a man drowning 50 ft off shore.<br>The republican throws out a 25ft rope and tells<br>the man to swim halfway, since it's good for<br>his character.  The democrat thows out 100ft<br>rope and then walks away looking to do other good deeds.<br><br>BTW, check out:<br>   <a href=\"http://www.donorschoose.org\" rel=\"nofollow\">www.donorschoose.org</a><br>It might not save the world, but it lets you funnel money to individual teachers for specific projects, when they can't get support from the schools.<br><br> bobg", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-23_15:24:10", "killed": false, "user_key": "1fdc4274163b96627ba698093f78e183", "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}, "9670908": {"up_voted": false, "ip": "", "has_replies": false, "message": "Here's a perspective that <a href=\"http://www.intelligentdiscontent.com/reform/steve-jobs-attacks-unions-teachers.html\" rel=\"nofollow\">you may not have heard.</a><br><br><blockquote>Jobs' basic argument is that schools hire bad teachers and that they can't be replaced because of union policies. What might surprise you is that, to some extent, I agree with him. It does seem crazy that a person can achieve tenure after three years, and I have no doubt that many union leaders are more interested in protecting teachers than in protecting quality education. Unfortunately, that's as far as Jobs argument goes in terms of making sense. He argues that principals need to be able to hire and fire quality people, ignoring that principals and school administrators are often the cause of the problem, and among the least qualified people working in schools . What sounds like a common sense solution, giving principals more power, ignores their frequent lack of qualification and the simple fact that they HIRED the bad teachers that Jobs condemns. Doesn't that suggest they might not be very skilled at evaulating employees?<br><br>Jobs' easy answer is just sloganeering, but one that is occuring in enough places to cause concern. Rather than focusing on systemic inequity, violence, family structure, or the host of social ills that are contributing to failures in American education, let's blame the unions. No one likes them anyway. It's not a hard sell to a public that is desperately looking for answers. Personally, I am tired of teachers blaming everyone but ourselves for problems in education. We do need to take a long, hard look at our methods, effort, and technique, but if Jobs and other critics of education truly wanted to elevate this debate to a place where we can work on real improvement, they need to offer a little more sophisticated insight than \"Unions bad!\"</blockquote>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-19_16:10:29", "killed": false, "user_key": "f98ca9169d30ddf77b31a46d8f051f67", "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}, "9670909": {"up_voted": false, "ip": "", "has_replies": false, "message": "Fact is, education in the US is horrible.<br><br>I once worked with a man with a MSc. degree who could not find Iraq on a map. I remember reading about a study done a couple of years ago whereby thousands of American students, let alone educated working people could likewise not locate Iraq on a map of the world.<br><br>Why is it that European kids grow up speaking several languages, excel at maths and sciences, but our own kids cannot even tell you where a country is on the map that has been in the news everyday for years.<br><br>I know a few teachers. A couple of excellent examples of what being a teacher is all about. They care, they know, the impart knowledge as best they can. The problem is, according to my one close friend who is a teacher, is that the school systems pick some really crappy curriculum.<br><br>When I lived in Europe, I was amazed at the level of education that kids were getting far earlier than I received it. For example, I knew people who's children were in the equivalent of say, 7th grade, and were already doing trig and calculus. Most American kids don't get that until 10th or 11th grade, if at all.<br><br>This \"no kid left behind\" is trash. It doesn't work. The US has had a literacy problem for over 100 years. We were number 41 last year in the world's industrialized nations. So much for being the richest country in the world.<br><br>Kids graduate from school in the US who don't even know the difference between an adjective and adverb. Who cannot even tell you that Washington was the 1st president. That Hawaii is even a state. I've heard people actually question the above as being true...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_23:25:16", "killed": false, "user_key": "62e243a3f26aafa0eacb0371c4170a49", "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}, "9670910": {"up_voted": false, "ip": "", "has_replies": false, "message": "There is no career choice where people don't complain about every aspect of their work - especially remuneration.<br><br>Are teachers underpaid? Perhaps some are. Is the salary the problem? No. In typical fashion money is thought to be the cure-all for a problem and we should line up a fleet of dump trucks full of cash to cover the problem until it surfaces again.<br><br>Processes exist to get rid of these EVIL 'bad' teachers, but they're not followed, and the system is somehow blamed for that? Why not look at the problem from the beginning? How did a bad teacher get hired? Were they always bad? When did they go bad? What caused them to go bad? Attack the problem, because complaining, something it seems many teachers have far too much time to do, won't fix it.<br><br>I've heard teachers from all parts of the world complain for years and years about every aspect of teaching, but mainly the money, and I'm just so tired of it that I tend to switch off most of the time. They're no different to any other occupation in their desire for more money and attempts to justify their right to it (sometimes well justified).<br><br>Finally, I'd just like to say that it wasn't us who put stars in their eyes or rose tinted glasses on teachers - they knew what they were getting into.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_23:33:24", "killed": false, "user_key": "f6f50a7ff9d8193fda47777e3738d688", "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}, "9670911": {"up_voted": false, "ip": "", "has_replies": false, "message": "A major problem with education is that half of all children are below average and the education systems doesn't make allowances for it with their focus on educating too many children on to go on to college. More children should get an education for the trades and skilled work.<br><br>Another major problem with schools is that a major proportion of wages are spent on administrator pay, not teachers.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-02-18_22:46:33", "killed": false, "user_key": "774313d1236a6ea6b68537bb36d8eeee", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}}, "integration": {"receiver_url": "", "theme": 4, "reply_position": true, "disqus_logo": false}, "timer": {"timer_url": "http://localhost:8005", "thread_id": "18398337", "user_id": "anonymous", "forum_id": "125200", "hash": -9038152058183898839}, "thread": {"total_posts": 0, "paginate": false, "per_page": 0, "slug": "note_to_steve_jobs_unions_are_only_half_of_school8217s_problems", "num_pages": 1, "days_alive": 0, "realtime_paused": true, "id": 18398337, "num_posts": 64, "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=note_to_steve_jobs_unions_are_only_half_of_school8217s_problems' +
		'&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/note_to_steve_jobs_unions_are_only_half_of_school8217s_problems/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='	+ 'note_to_steve_jobs_unions_are_only_half_of_school8217s_problems'
			+ '&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/note_to_steve_jobs_unions_are_only_half_of_school8217s_problems/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">64</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://scobleizer.disqus.com/note_to_steve_jobs_unions_are_only_half_of_school8217s_problems/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/note_to_steve_jobs_unions_are_only_half_of_school8217s_problems/">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/note_to_steve_jobs_unions_are_only_half_of_school8217s_problems/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:18398337" 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'				: 'note_to_steve_jobs_unions_are_only_half_of_school8217s_problems',
			// 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/note_to_steve_jobs_unions_are_only_half_of_school8217s_problems/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='	+ 'note_to_steve_jobs_unions_are_only_half_of_school8217s_problems'
			+ '&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='	+ 'note_to_steve_jobs_unions_are_only_half_of_school8217s_problems'
			+ '&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='		+ 'note_to_steve_jobs_unions_are_only_half_of_school8217s_problems'
				+ '&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/18398337/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-9670957">\
	 <div id="dsq-comment-header-9670957" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670957" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670957">Miles Archer</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670957" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670957" class="dsq-comment-message">"most teachers I talk with say that initiative is a disaster"<br><br>What do you expect - it\'s a hassle for them. I have no idea if it\'s good policy, but if you make policy based on what\'s easiest for the teachers your doomed.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670958">\
	 <div id="dsq-comment-header-9670958" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670958" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670958" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670958" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670958" class="dsq-comment-message">Miles: I agree with you, but if you dig further you find a TON of problems with it. The Wikipedia link covers the pros and cons in depth.<br><br>Part of it is that it\'s underfunded.<br><br>But, your attitude: not listening to the front-line troops (teachers) is telling.<br><br>Let me ask you. What has a greater chance of success? Something forced on workers from on high, or something that the workers themselves support?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670954">\
	 <div id="dsq-comment-header-9670954" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670954" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670954">Rich</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670954" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670954" class="dsq-comment-message">You\'re half right. At least half the problem rests with bad parenting, and teachers who can\'t run a classroom for fear of a lawsuit. Even a bad grade can result in the threat of litigation from an angry parent, and it\'s usually the at-risk kids who have the worst sperm donors and helicopter moms possible.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670955">\
	 <div id="dsq-comment-header-9670955" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670955" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670955" href="http://www.greensborosports.com/" target="_blank" rel="nofollow">Don Moore</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670955" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670955" class="dsq-comment-message">Then you have the ADMINISTRATION, teachers who have moved up the food chain so far they fail to remember why they are there.<br><br>My parents were both teachers in the 60\'s.  School administration used to be a small staff of may be 10 to 15 people for a school system.  Today, the Administration has ballooned to over 100 people - most making the salaries that teachers should make or HIGHER.<br><br>Parents are also part of the problem.  Unfortunately financial demands often prevent parents from actively participating in their children\'s education.  Schools with active parents tend to do better.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670956">\
	 <div id="dsq-comment-header-9670956" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670956" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670956" href="http://drumsnwhistles.com/" target="_blank" rel="nofollow">Karoli</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670956" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670956" class="dsq-comment-message">Forgive me for using this comment as a soapbox for a minute.  Everything you said is true, particularly the points about the pay scale and NCLB, which is bad for schools, students, teachers and communities.<br><br>I really want to talk a little about the technology point you made and appeal to you to shout out into your piece of the blogosphere about <a href="http://julieamer.blogspot.com/" rel="nofollow">Julie Amero</a>, a 2nd grade substitute teacher in Connecticut who is facing up to <strong>40 years in jail</strong> because the Windows PC in the 2nd grade classroom where she was teaching was infected with spyware, which caused porn popups to come up on the screen in front of her students.<br><br>Despite the fact that the network administrator had not updated security definitions, spyware definitions, nor set appropriate controls on the network to prevent such things from happening, Amero was the one convicted of exposing children to pornography.  During the trial she was not permitted to introduce evidence proving that she had no control over the technology that was in her classroom and which was exploited by others.<br><br>Tragically, at the time this happened she was 4 months pregnant, and the stress of the charges and trial caused her to lose her baby.  Amero and her husband have spent $20,000 in their defense and have no more money to pay for the appeal.<br><br>If ever there was a cause for which bloggers should bang the drum, this is it.  If this conviction is allowed to stand, it places every teacher in every classroom at the mercy of their network administrator and will definitely discourage teachers from adopting new technology and utilizing it in their classroom.<br><br>Amero\'s blog is <a href="http://julieamer.blogspot.com/" rel="nofollow">here</a>.  They also have established a defense fund which can be reached from the blog.  Please encourage your readers to stand up for the future of technology in education.<br><br>Thank you so much.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670959">\
	 <div id="dsq-comment-header-9670959" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670959" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670959" href="http://drumsnwhistles.com/" target="_blank" rel="nofollow">Karoli</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670959" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670959" class="dsq-comment-message">Oops, correction...she is a SEVENTH grade substitute teacher.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670952">\
	 <div id="dsq-comment-header-9670952" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670952" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670952">Speed</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670952" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670952" class="dsq-comment-message">From OpinionJournal (free)<br>"$34.06 an Hour<br>That\'s how much the average public school teacher makes. Is that "underpaid"?"<br><a href="http://www.opinionjournal.com/editorial/feature.html?id=110009612" rel="nofollow">http://www.opinionjournal.com/editorial/feature...</a><br>"Evidence suggests that the way we pay teachers is more important than simply what they take home. Currently salaries are determined almost entirely by seniority--the number of years in the classroom--and the number of advanced degrees accumulated. Neither has much to do with student improvement."</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670951">\
	 <div id="dsq-comment-header-9670951" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670951" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670951" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670951" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670951" class="dsq-comment-message">Speed: every teacher I know worked another hour outside of work hours just to keep up. And most have to take continuing education during summers, which isn\'t counted in hours worked. The good ones also did lots of research during summers to make their classrooms better.<br><br>And, finally, what kind of job can you find that will let you work just for the summer? Not many.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670953">\
	 <div id="dsq-comment-header-9670953" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670953" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670953" href="http://stephenrahn.com/blog" target="_blank" rel="nofollow">Stephen Rahn</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670953" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670953" class="dsq-comment-message">Hi Robert, I was a high school teacher for 12 years, and I now work for a university in Georgia in a department whose goal is to help teachers use technology in an effective manner to increase student learning. There is no teachers\' union in GA, but we have some of the same problems. It is still difficult to get rid of bad teachers. I honestly think that "bad teachers" are most often teachers that haven\'t been trained properly. Our colleges of education are not keeping as current as they should be, and most are woefully behind when it comes to using technology.<br><br>I really appreciate your interest in education, and we need more people like yourself from the tech world to help promote what we do with technology. Have you ever considered speaking at or at least attending any educational technology conferences? The National Educational Computing Conference will be in Atlanta this June. It would be great if you could at least come by and do some interviews with some leaders in educational technology. Some people I work with are on the conference committee, so I might be able to help facilitate that if you are interested.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670950">\
	 <div id="dsq-comment-header-9670950" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670950" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670950" href="http://thisoldcode.net/" target="_blank" rel="nofollow">Aaron</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670950" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670950" class="dsq-comment-message">First 34(Speed) an hour is based off an 8 hour workday.  And believe me, my wife is a teacher its an average of 16 hours a day.<br>Second you can fire teachers. There is a long process you have to follow.  So school districts and principals tend not to do it.<br>Finally a principal is not a CEO that its utter insanity.  they would be like a branch manager with almost no power.  your district would represent the board of directors and the superintendent is CEO.<br>If you want to improve the system don\'t go after the grunt with no say and power. That is like evaluating Mcdonalds based on the cashier.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670948">\
	 <div id="dsq-comment-header-9670948" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670948" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670948">Speed</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670948" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670948" class="dsq-comment-message">Robert: From the article ...<br>"Of course, public school teacher earnings look less impressive when viewed on an annual basis than on an hourly basis. This is because teachers tend to work fewer hours per year, with breaks during the summer, winter and spring. But comparing earnings on an annual basis would be inappropriate when teachers work significantly fewer hours than do other workers. ... That time off is worth money and cannot simply be ignored when comparing earnings. The appropriate way to compare earnings in this circumstance is to focus on hourly rates.<br><br>"Moreover, the earnings data reported here, which are taken directly from the National Compensation Survey conducted by the Bureau of Labor Statistics, do not include retirement and health benefits, which tend to be quite generous for public school teachers relative to other workers. Nor do they include the nonmonetary benefit of greater job security due to the tenure that most public school teachers enjoy.<br><br>"Educators sometimes object that hourly earnings calculations do not capture the additional hours they work outside of school, but this objection is not very compelling. First, the National Compensation Survey is designed to capture all hours actually worked. And teachers are hardly the only wage earners who take work home with them.<br><br>And finally, how about teaching summer school?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670949">\
	 <div id="dsq-comment-header-9670949" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670949" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670949">Speed</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670949" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670949" class="dsq-comment-message">Aaron: Your are assuming facts not in evidence. Please see paragraph three in my response to Robert (#12).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670945">\
	 <div id="dsq-comment-header-9670945" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670945" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670945" href="http://fupeg.blogspot.com/" target="_blank" rel="nofollow">Michael</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670945" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670945" class="dsq-comment-message">The problem with education is most definitely not underfunding. Don Dodge got it right when he said that unions eliminate pay-per-performance, thus causing "good" teachers to be underpaid. The solution is not raising taxes as Scoble is suggesting. We\'ve been blindly throwing more and more money at public schools for decades now. Public schools in California have much higher per student budgets than private schools in California. Private schools spend less but do a lot more with what they spend. They have to because of competition. That\'s what public schools lack on all levels. There\'s no competition for teachers. There\'s no competition for principals. There\'s no competition between schools. A corollary of a lack of competition is a lack of accountability.  A voucher program would help a lot, giving back choice to people. A tax credit system would be even better.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670946">\
	 <div id="dsq-comment-header-9670946" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670946" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670946" href="http://thisoldcode.net/" target="_blank" rel="nofollow">Aaron</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670946" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670946" class="dsq-comment-message">Michael,<br>Is it competition that makes Private schools good if the fact they hand pick the students that attend? If you think its hard to remove a bad teacher from public school try to remove a bad student.  Private school has no such trouble.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670944">\
	 <div id="dsq-comment-header-9670944" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670944" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670944" href="http://stephenrahn.com/blog" target="_blank" rel="nofollow">Stephen Rahn</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670944" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670944" class="dsq-comment-message">Hey Speed, does your article allow for all of the extracurricular activities that teachers have to attend without pay and also all of the required staff development that must be done during breaks that is also not compensated? I didn\'t see anything about that in there.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670941">\
	 <div id="dsq-comment-header-9670941" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670941" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670941">ron</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670941" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670941" class="dsq-comment-message">Robert is giving a note to Steve Jobs::::::) how funny.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670940">\
	 <div id="dsq-comment-header-9670940" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670940" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670940">Speed</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670940" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670940" class="dsq-comment-message">Stephen (#18)<br>From the article (again):<br>" ... the National Compensation Survey is designed to capture all hours actually worked. And teachers are hardly the only wage earners who take work home with them."<br>If attending an extracurricular event is part of the job then the teacher is getting paid for it. If it is not part of the job then the teacher has freely decided to attend for personal reasons. The idea that a union teacher can be forced to spend time at school functions for no pay is crazy. Try getting a union carpenter to work a few extra hours for free.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670938">\
	 <div id="dsq-comment-header-9670938" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670938" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670938">T Molnar</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670938" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670938" class="dsq-comment-message">This article prompts a few thoughts:<br>1. As go public educational systems so likely goes a democracy. There is an incredible amount of lip service to the ideal of democracy (imbued with the sense of opportunity for all) which does not correspond with the diminishing support US public school\'s have been experiencing.<br>2. Teaching and learning are not technical acts that are ameniable to the level of manipulation which those of strong administrative/management persuasion might desire, legitimate concerns for accountability not withstanding. Such is the nature of learning organizations who are to serve a wide number and variety of people.<br>3. Public schools transcend all attempts to understand them or enact them, for example, as a business, as a factory, as a family, as military organization,.. They are their own "beast" which may exhibit features of some these things but are certainly very different that these entities.<br>3a. Educator roles transcend all attempts to understand them in narrow ways (see 3)<br>3b. Public schools are not here to serve, business, the military, the government, or Steve Jobs,etc.. they are here to serve "people" primarily children up until about age 18.  To provide children with the means to become a citizen in their unique (and law abiding) way in a democracy whether they eventually become business people, military, doctors, a clown or whatever.<br>4. With the discussion of public schooling and it\'s problems there is strong tendancy to "blame the victim" much like someone blames a rape victim for what happens to them. It\'s always "so obvious" to those not victimized how the "victim" is so entirely responsible for what they have experienced.<br>5. The public "story" of people "concerned" with public schooling, i.e. "it\'s essential for a just, free and prosperous country" often do not match with their "private story",i.e. not supporting them financially, or with their time and effort, as a crucial part of democracy.<br><br>If you live in Canada, that "commie/socialist"  entity north of the USA (and I say that tongue in cheek), your typical teacher with 10 yrs experience will likely make over $50,000 USD regardless of grade level or subject level (varies with province).  Educators enjoy fairly good pension benefits, have good dental and eye care coverage etc..<br>Educators are encouraged to view themselves as and be professionals, who know their profession and they get paid accordingly.  Yes there are always "slugs" who are teachers but the vast majority work very hard, for long hours and have the sense of belonging and responsibility to those they serve, likely any CEO would die for.<br><br>There are private schools but public schools, while far from perfect, are seen very much as the "level playing" field where regardless of gender, socio-economic status, ethno-cultural or religous affilation, children and their families have opportunities to be educated, and find their socio-economic way in society. There are difficulities in Canada no doubt but maybe it\'s the cold weather, there seems a strong commitment by the general populous that along side the right to good and accessible health care, all citizens should have the right to a good education.<br><br>While totally anectodal, talking with educators in the USA from various areas over the years left me wondering and marveling at what they endured in their profession and in fact how they are not viewed as professionals (nor paid as professionals).<br><br>There is no educational eden anywhere, Canada, Briain, Finland or anywhere, but the USA seems generally to be subverting one of the pillars of their democratic society, by a continuuing neglect to it\'s public education system and those serving within it.<br><br>Whether people are left, right or center or up or down or pink or blue one would think just like the air people share when it\'s at risk, there would be a strong and consistent concern about the shared experience of public schooling when it seems in trouble, for it is a central pillar to an educated and involved citizenary.<br><br>However, I am biased towards public education and those who participate in those systems as you can clearly see, for here in Canada such education allowed my low income parent\'s to see their kids eventually become a doctor, a lawyer, an engineer, a mechanic, and univ. prof. but more importantly concerned and active citizens who participate.<br><br>All abilities and talents which would likely never have been realized without a public education system.<br><br>The continued subversion of public education in the USA is a disheartening even frightening occurance for anyone concerned with democracy, properity and social justice.<br><br>Anyway, just some thoughts.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670931">\
	 <div id="dsq-comment-header-9670931" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670931" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670931">Beca</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670931" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670931" class="dsq-comment-message">Remember, this union-busting talk is coming from a guy who\'s fortune is based off of manufacturing products in China where the workers make $2/day.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670928">\
	 <div id="dsq-comment-header-9670928" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670928" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670928" href="http://stephenrahn.com/blog" target="_blank" rel="nofollow">Stephen Rahn</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670928" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670928" class="dsq-comment-message">Speed, I have never been a member of a teachers\' union. Not all states have them. In my years as a teacher I have been required to attend countless ball games, school plays, fund raisers, etc. that I was not paid for. One year I did receive a supplement for sponsoring the school literary team and I carefully logged all the hours I put into that. It worked out to less than $2 per hour.<br><br>And you\'ll have to help me out on the math your article presents. In 2005 the average teacher salary was $47,808. If we assume a 190-day contract (that\'s what GA has), that works out to $31.45 per hour of straight time. If you assume one extra hour per day that is not compensated, then the average salary dips to less than $28 per hour. Anyone who has actually been a teacher knows that the hours spent outside the regular day add up to far more than an average of one hour per day.<br><br>And just so you\'ll know, I have never complained even once about my salary as an educator. I knew going in that money is not the reason for going into the profession. It does bother me when people don\'t know the whole story regarding how hard most teachers work.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670930">\
	 <div id="dsq-comment-header-9670930" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670930" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670930" href="http://www.afterapple.com/tracker" target="_blank" rel="nofollow">Steve</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670930" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670930" class="dsq-comment-message">Any professional consultant working as a teacher would get paid more,<br>$50/hr for the classroom, $150 for anything beyond the allotted time.<br><br>Do teachers pull that kind of pay rate?  No.<br><br>Steve Jobs dropped out of the University, and that was his choice.<br>Blame the teachers?<br><br>Can we replace the parents who don\'t give children any attention?<br>Can we blame republicans for worthless family leave?<br><br>How about a year off, paid for the new mother, and a year off, paid, for the new father?  For EACH child.<br><br>In School Doctor\'s and Nurses - Free Health Care for all Children up to age 18?<br><br>How about a $10,000 tax credit for each child, for 21 years?<br><br>How about building schools that have a clean and green campus,<br>not rotting buildings?<br><br>How about taking some of that \'sin tax\' money (alcohol, smokes, gas) and investing in the future?<br><br>How about a $99 open source laptop for each child with free local dial up?  OLPC - an idea for 3rd world countries?  How about Taking Care of Our Own?  Laptops for every student in the USA.  (And Hell no - not those iBook door stops).<br><br>Union Busting schools - isn\'t the answer.<br><br>Unionizing Apples iPod / iMac Manufacturing Plants IS the answer.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670922">\
	 <div id="dsq-comment-header-9670922" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670922" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670922" href="http://ian.sundermedia.com/" target="_blank" rel="nofollow">Ian Muir</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670922" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670922" class="dsq-comment-message">I\'ve read a lot of blog posts about this and while I don\'t agree with Jobs 100%, I\'m glad that his comments have garnered some attention.<br><br>I have 4 close friends who have teaching degrees. 2 are working as teachers and live in low-income housing. One is an assistant manager at Regal Cinemas because it pays about 35% more than a teaching salary and the fourth is working as a Bank Teller for the same reason.<br><br>Unfortunately, aside from a nationwide strike, I don\'t forsee any changes. One answer would be to force any public employee (such as congressmen) to have their children attend public school. If the people who vote on schools actually used them, I\'m sure you would see some changes happen real pretty quickly.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670923">\
	 <div id="dsq-comment-header-9670923" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670923" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670923" href="http://www.geise.com/" target="_blank" rel="nofollow">PXLated</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670923" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670923" class="dsq-comment-message">You might find this interesting...20/20 segment on schools/unions...<br><a href="http://chotha.blogspot.com/2007/02/2020-stupid-people-in-america.html" rel="nofollow">http://chotha.blogspot.com/2007/02/2020-stupid-...</a><br>(It\'s a YouTube video. Wouldn\'t be surprised if it got pulled at some point)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670919">\
	 <div id="dsq-comment-header-9670919" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670919" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670919">Jeff</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670919" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670919" class="dsq-comment-message">Well, I can certainly see both sides of this one.  For those of us who work 40+ hours a week w/ standard vacation time, how could I not look at the picture as an hourly one that I can compare to my own job?  On the other, as someone choosing a career, how could I not look at the decision in terms of my yearly income, and ability to support my family?  I\'m sure Mr. Scoble\'s correct that it\'s tough to find summer-only work that pays much.  Sure there is summer school, but certainly that wouldn\'t accomodate all teachers, and while I don\'t speak with any factual basis, I\'d guess that the pay for summer school is lower.<br><br>I\'d submit that this disconnect in perception, with undeniably valid points on both sides, is a problem that may be as important as the lack of accountability that Mr. Jobs points out.  The only fix my limited mind can conceive of would be to introduce parity with the rest of the working world.<br><br>1. Teachers should work a standard 40 hours a week with the same # of holidays that the rest of us get.<br>2. We, as the public need to know it.  Since we ultimately are signing the checks, we need to be convinced of the level of your efforts the same way our boss\' must be convinced of ours.<br>3. Finally, as Mr. Jobs suggest, introduce accountability.  As my output goes, so does my employment.  Surely it seems reasonable to expect that if our teachers are sufficiently empowered (perhaps an issue in itself?), that we should be able to expect results.<br><br>What would the teachers do w/ the rest of the time?  Obviously I\'m not the best person to answer this.  If you\'re a teacher, I\'d love to hear your thoughts.  My thoughts are heavily colored with the taint of inexperience, but surely you can\'t expect that to stop me from offering at least a few ideas:<br>1. Computer skills<br>2. Renaissance-style knowledge - Wow what a copout.  But I guess what I mean is answers to questions that kids find</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670917">\
	 <div id="dsq-comment-header-9670917" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670917" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670917" href="http://stephenrahn.com/blog" target="_blank" rel="nofollow">Stephen Rahn</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670917" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670917" class="dsq-comment-message">Jeff, you are correct about summer school. There are limited spots available for teachers to do that as fewer students are enrolled in summer school than the rest of the academic year.<br><br>Your idea to have teachers work a 12-month contract is one that deserves some thought. There is plenty that teachers could so with the time. Doing research, working on computer skills, developing new curriculum are all possibilities. I have been working in a 12-month position for the past six years, and the adjustment was not a difficult one. One thing to consider is that more and more schools are adopting different types of modified "year round" type calendars, so the traditional summer break is almost gone anyway is some places.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670915">\
	 <div id="dsq-comment-header-9670915" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670915" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670915" href="http://thisoldcode.net/" target="_blank" rel="nofollow">Aaron</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670915" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670915" class="dsq-comment-message">Were we live summer school is only for the students that did not pass a class.  They have to be there during their "Summer" They don\'t make it a pleasant job.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670914">\
	 <div id="dsq-comment-header-9670914" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670914" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670914">Jeff</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670914" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670914" class="dsq-comment-message">wow...  well that was embarassing..  That last bullet point that I had no real business contributing to begin with was supposed to read:<br>2. Renaissance-style knowledge - Wow what a copout.  But I guess what I mean is answers to questions that kids find *interesting*.  Idea being to try and find ways to foster more interest in learning.  (I guess I\'ve been reading too many marketing and idea stickiness books lately)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670913">\
	 <div id="dsq-comment-header-9670913" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670913" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670913">Robert Ryan</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670913" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670913" class="dsq-comment-message"><a href="http://scobleizer.com" rel="nofollow">scobleizer.com</a><br><br>you don\'t exist any more<br>you are so last year</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670911">\
	 <div id="dsq-comment-header-9670911" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670911" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670911">Eric Anondson</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670911" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670911" class="dsq-comment-message">A major problem with education is that half of all children are below average and the education systems doesn\'t make allowances for it with their focus on educating too many children on to go on to college. More children should get an education for the trades and skilled work.<br><br>Another major problem with schools is that a major proportion of wages are spent on administrator pay, not teachers.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670912">\
	 <div id="dsq-comment-header-9670912" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670912" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670912" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670912" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670912" class="dsq-comment-message">Robert: what you talking about?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670909">\
	 <div id="dsq-comment-header-9670909" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670909" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670909">Peter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670909" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670909" class="dsq-comment-message">Fact is, education in the US is horrible.<br><br>I once worked with a man with a MSc. degree who could not find Iraq on a map. I remember reading about a study done a couple of years ago whereby thousands of American students, let alone educated working people could likewise not locate Iraq on a map of the world.<br><br>Why is it that European kids grow up speaking several languages, excel at maths and sciences, but our own kids cannot even tell you where a country is on the map that has been in the news everyday for years.<br><br>I know a few teachers. A couple of excellent examples of what being a teacher is all about. They care, they know, the impart knowledge as best they can. The problem is, according to my one close friend who is a teacher, is that the school systems pick some really crappy curriculum.<br><br>When I lived in Europe, I was amazed at the level of education that kids were getting far earlier than I received it. For example, I knew people who\'s children were in the equivalent of say, 7th grade, and were already doing trig and calculus. Most American kids don\'t get that until 10th or 11th grade, if at all.<br><br>This "no kid left behind" is trash. It doesn\'t work. The US has had a literacy problem for over 100 years. We were number 41 last year in the world\'s industrialized nations. So much for being the richest country in the world.<br><br>Kids graduate from school in the US who don\'t even know the difference between an adjective and adverb. Who cannot even tell you that Washington was the 1st president. That Hawaii is even a state. I\'ve heard people actually question the above as being true...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670910">\
	 <div id="dsq-comment-header-9670910" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670910" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670910" href="http://maimearai.com/" target="_blank" rel="nofollow">Ben Harris</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670910" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670910" class="dsq-comment-message">There is no career choice where people don\'t complain about every aspect of their work - especially remuneration.<br><br>Are teachers underpaid? Perhaps some are. Is the salary the problem? No. In typical fashion money is thought to be the cure-all for a problem and we should line up a fleet of dump trucks full of cash to cover the problem until it surfaces again.<br><br>Processes exist to get rid of these EVIL \'bad\' teachers, but they\'re not followed, and the system is somehow blamed for that? Why not look at the problem from the beginning? How did a bad teacher get hired? Were they always bad? When did they go bad? What caused them to go bad? Attack the problem, because complaining, something it seems many teachers have far too much time to do, won\'t fix it.<br><br>I\'ve heard teachers from all parts of the world complain for years and years about every aspect of teaching, but mainly the money, and I\'m just so tired of it that I tend to switch off most of the time. They\'re no different to any other occupation in their desire for more money and attempts to justify their right to it (sometimes well justified).<br><br>Finally, I\'d just like to say that it wasn\'t us who put stars in their eyes or rose tinted glasses on teachers - they knew what they were getting into.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670943">\
	 <div id="dsq-comment-header-9670943" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670943" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670943" href="http://ladow.net/" target="_blank" rel="nofollow">Bob</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670943" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670943" class="dsq-comment-message">Why pay public school teachers $80,000 to get results?  Most private school teachers earn far less and produce a better overall quality student.  You are correct that the ultimate factor is being able to select who is educated.  Public schools have to educate everyone.<br><br>BTW, I am a public school teacher.  I would welcome the raise, but my salary is not the reason public schools are failing.<br><br>As for NCLB, what most people fail to realize is that the federal government has absolutely no role in education.  The US Constitution does not reserve the right to the feds and San Antonio v. Rodriguez found that education is not a fundamental right.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670947">\
	 <div id="dsq-comment-header-9670947" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670947" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670947" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670947" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670947" class="dsq-comment-message">Bob: Private schools get better results because of parental involvement. When you\'re paying thousands of dollars per year for your kids\' education, you are going to make sure he/she gets it. Also, they can keep out kids who are falling behind (slow kids force teachers to spend more attention on those kids, slowing down the entire class). Also, parents who want the best education for their kids are self-selecting. They are generally parents who\'ve learned the value of a good education (hence, probably are better educated themselves).<br><br>Even in private schools the teachers generally suck and would be better with higher wages. I watched teachers who were into math and science leave private schools too for private industry where they could make three to five times more.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670937">\
	 <div id="dsq-comment-header-9670937" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670937" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670937" href="http://markjaquith.com/" target="_blank" rel="nofollow">Mark Jaquith</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670937" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670937" class="dsq-comment-message">All of the problems with government schools (inability to fire teachers, low pay, the resulting lack of incentive, lack of parental choice) could all be solved if the government reduced its role in education to that of providing an education voucher for each child that could be redeemed at any educational institution.  Why try to engineer a competitive education environment with fair wages and teacher incentives and parental choice?  These are all things that a private education market can take care of.  The current situation is that we try to create the illusion of an open free market education by adding layers of bureaucracy and government-induced money wasting and lethargy to something that works perfectly well as a private industry.  It\'s madness.<br><br>Vouchers work.  Unions are terrified of them because it takes the power away from the teachers and puts it in the hands of the parents, where it should be.  Parents are the ones paying for the education, but have little-to-no control over their child\'s education.  They get a one size fits all curriculum at a sub par school with unmotivated teachers.  Jobs isn\'t quite right and Robert isn\'t quite right, although both are dancing around the answer.  The issue is the inability of the consumer (the parents) to choose the education their children.  One solution is to fire bad teachers.  Another is to offer more money to teachers so you attract better teachers.  The other is to take your child out of schools that fail them.  The other is to make teacher pay based on performance (and not just based on the grades their students get, as that just leads to teachers cheating on the students\' behalf).  All of these are components of a free market education system, and all would play their appropriate role at the appropriate time if we set education free.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670933">\
	 <div id="dsq-comment-header-9670933" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670933" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670933" href="http://etan.vox.com/" target="_blank" rel="nofollow">Etan</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670933" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670933" class="dsq-comment-message">This isn\'t the first time Steve Jobs has given his views on the state of Education. Here\'s <a href="http://www.geocities.com/franktau/interviewpart1.html" rel="nofollow">an interview</a> from 1995 where he talks about it at length (scroll down to "The Importance of Education").</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670935">\
	 <div id="dsq-comment-header-9670935" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670935" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670935" href="http://watzman.wordpress.com/" target="_blank" rel="nofollow">Neal Watzman</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670935" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670935" class="dsq-comment-message">The article and subsequent comments discuss solutions to fix our schools that don\'t seem to educate our children.  With that much I agree completely.  We could do better.<br><br>Unfortunately, the solution is not a simple one.  NCLB is a rather simplistic attempt to solve a larger problem.  Getting rid of "poor" teachers would help, as would encouraging the good ones who really care.<br><br>I occasionally attend our School Board meetings, and at one of them our Superintendent commented that the children "come to school with so many more problems now..."  A whole other issue but certainly part of the same puzzle.<br><br>I think it\'s a travesty that our children are not more educated, but the solutions are not simple ones.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670936">\
	 <div id="dsq-comment-header-9670936" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670936" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670936">Speed</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670936" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670936" class="dsq-comment-message">24 Stephen: I can\'t help you with the math. The data comes from the Bureau of Labor Statistics.<br><a href="http://www.bls.gov/data/home.htm" rel="nofollow">http://www.bls.gov/data/home.htm</a><br><br>I have a great deal of respect for the work done by teachers. My "were to live" decision was based on the quality of the local public schools and I am in awe of the hard work and dedication of the teachers who work here. It is a school system with standing room only on parent night.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670932">\
	 <div id="dsq-comment-header-9670932" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670932" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670932" href="http://www.tabletpcquestions.com/" target="_blank" rel="nofollow">Layne</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670932" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670932" class="dsq-comment-message">A few thoughts.<br><br>Some posters are getting caught in the premise that the quality of the US public schools. By what comparison backs up this idea - by their own experiences or by a study? A poor comparison is the best student from one country and the worst in the US - thus concluding the public schools are bad. Why determine the quality because of compulsory education? Once more, does everyone agree on how to monitor a teacher\'s or student\'s progress?<br><br>Next, do people agree on the purpose of schooling? Is it about socialization or education? Most people think of schooling as a place to find friends, compete in sports, while others might argue schooling is to keep the kids out of the job market.<br><br>Next, private school teacher turnover rate is higher than public school rates - thus lowering the overall average salary. Plus, research from Dr. Ingersoll, Smith, and others (Teacher Follow Up Survey) suggest salary is not the sole reason for teachers leaving the profession, either. Dr. Chapman used a turnover model in 1984 suggesting three major factors: external factors being only one of the three.<br><br>I would argue that teachers are not professionals. There is no mystical quality to their work. Dr. Lortie in 1975 wrote that everyone who has gone through the K-12 system somehow believes they are experts. Good teachers make teaching look easy - and many people remember the good. This lack of mystique is one reason teachers can never be professionals.<br><br>Salary of administration is way out of control. This is because the "system" is upside down. Instead of the classroom being the center, people work to get out of the classroom. Flip this around and the structure of schooling changes. In other words, hire people to work outside the classroom first so that they may learn about the schools. As people gain experience then they are eligible for jobs on the campus. Once on the campus, they work toward getting a job in the classroom. After team teaching - then they get a job as a teacher. In this manner, only the best people are teachers - rather than principals hiring anyone who can breathe, we work to hire the best.<br><br>FWIW, principals can fire teachers but these same principals who claim they cannot fire poor teachers use salary as a means to hire new teachers. In other words, it is more economical to hire two new teachers over an experienced one.<br><br>There is much more to the complexity of the challenges in our school system - but arguments have gone on for centuries. In "reality," key people do not want our schools to help the poor. They only want to keep the poor people out of the way - and if one institution (school) cannot do this then another institution (jail) is used as the weapon to keep the peace.<br><br>One last thought, school choice is a political phrase to avoid the issue of compulsory education. Ask voters if they want everyone to have equal access to education and most will say ... what would people say? Should everyone go to school? Why? At what point are we a nation built on capitalism or socialism? After someone turns 18 do they suddenly become a capitalist and compete or does the learning happen while we squeeze them into classrooms and tell them to work in cooperative groups?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670925">\
	 <div id="dsq-comment-header-9670925" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670925" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670925" href="http://blog.yuvisense.net/" target="_blank" rel="nofollow">Yuvi</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670925" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670925" class="dsq-comment-message">Now, just wait till you get to the details of the Schools HERE...<br><br>And, think about the ones in africa. War torn Iraq. Sri Lanka.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670926">\
	 <div id="dsq-comment-header-9670926" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670926" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670926">JK Phillips</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670926" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670926" class="dsq-comment-message">Well, in NJ teachers with a master and several years experience are paid over $80k per year.  Yet, the system still sucks.  We drive 35 miles to take our children to private school - and pay $13k a year in real estate taxes.  The system sucks because they teach consistently to the lowest common denominator - it is only about standardized test scores - so reading comprehension and critical writing and thinking skills are all but gone.  Thank goodness we have the ability to bail out of a broken system.  But, I fear for the future of this country since most can;t.  The scary part is most parents are OK because their kids are getting A\'s.  But, what they don;t seem to realize is that my son was a straight A student, but no learning.  Moved him to a VERY GOOD private school, where writing, critical thinking and basics are what counts.  It rocked his world.  After a horrible first semester he is back on track and on honor roll.  But this time he worked to earn the spot.  In our public school a listtle over 1.3 of the entire class made honor roll.  Huh?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670927">\
	 <div id="dsq-comment-header-9670927" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670927" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670927" href="http://totaltransformation.wordpress.com/" target="_blank" rel="nofollow">totaltransformation</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670927" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670927" class="dsq-comment-message">Tell me about it.  I have a Master in History and couldn\'t get a job teaching Social Studies to high schoolers because I lack teaching certifications.  However, who ends up teaching that Social Studies class?  A guy called coach, whose approach to history is to read the boring textbook word for word.<br><br>So instead of teaching high schoolers in a high school, I took a job with a community college were- get this- I will be teaching high schoolers for college credit.  Explain that to me?!  It makes no sense.  It only makes sense if you understand how powerful the unions are.<br><br>I know people with Ph.D\'s who have been turned away by schools because they don\'t have a four year B.A. in education.  It is so sad it is almost funny- but it certainly isn\'t for the kids who suffer through second rate teachers.<br><br>-J. Kaiser</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670924">\
	 <div id="dsq-comment-header-9670924" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670924" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670924" href="http://www.eclecticismo.com/hhblog" target="_blank" rel="nofollow">Herschel</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670924" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670924" class="dsq-comment-message">Education is not the responsibility of the GOVERNMENT!<br><br>Paying teachers 80K a year is not the answer.<br><br>The problem with education is what happens to kids when they come home. Parents do not follow up and stay on their children to actually learn. Parents are the final authority and where the majority of issues reside with the poor state of public education system we have today.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670920">\
	 <div id="dsq-comment-header-9670920" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670920" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670920">John Seals</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670920" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670920" class="dsq-comment-message">Scoble:<br><br>So you say teachers should be paid more money and then you blast unions?<br><br>How are they supposed to improve their lot? Wait for management/school districts to increase pay/benefits out of the kindness of their hearts?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670921">\
	 <div id="dsq-comment-header-9670921" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670921" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670921">Carla</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670921" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670921" class="dsq-comment-message">Jobs speaks out and everyone is listening. I have read all of the blogs posted to date. As a life-time teacher, I have a background from which to speak (if anyone will listen). 1)I knew what I was getting into (i.e. lower wages) for the sake of educating learners. However, wages have not kept up with inflation. Hmmm. 2)I work an average 50 hours a week. Two years ago when I had thirty fifth grade students, that number increased to nearly 60 hours a week at times, which just about exhausted me and my family 3)Parents play a large role in the outcome of education for their children. For example, when considering how well children perform on tests, the testing giant ETS claims that 90% of test performance can be explained by 5 factors: the number of days pupils are absent, the number of hours children watch TV, the number of pages they read for homework, the quality and quantity of reading matter in their homes, and the number of parents in their homes. A teacher can only control the quality of the instruction in the classroom. Yes, a teacher can influence parent involvement with their children, but ultimately, the parent chooses. I believe that parents are the ultimate influence of their child\'s education. Lucky the parent who moves up the economic scale and has more choice available to them and knows how to manuveur systems 4) Whether you want to believe it or not, public education is political. Not only do teachers need to be involved with current research (reading, trying out new techniques, classwork, etc.), they need to be writing and speaking with their representatives. It is easy for a teacher to feel overwhelmed with decision makers who are not working alongside them in the classrrom.  5) Teachers pay for the own education their entire lifetime. That comes out of their yearly wages. Their is no education fund to support continuing education. They are the fund. 6)Technology plays a large role in today\'s world, but is only as good as the teacher who knows how to use it. More work needs to be done in that arena. And then there is the factor of updating technology. With technology changing every few years, who will pay for the upgrades and shifts of equipment, software, training, etc.<br><br>These are some of the things on my mind while reading the blogs. It makes my blood-pressure rise when reading comments from influential Americans who may not be intimately involved with schools. Only when people get their "feet wet" so to speak, will change happen because teachers will continue to teach. It is their profession and obsession. By the way, in the public school district in which I work, I am currently on a peer assistance team working with a union teacher of 7 seven years who has had two years of below proficient rating. Five professionals (two principals, two classroom teachers, one Title 1 administrator) are helping her meet standards. We have been meeting with since Oct. Since that time, a plan was drafted with the teachers input. The plan states which teaching standards must be brought up to proficient levels in order to meet profiency according to her principal. There have been classroom observations, individual conferences, etc. to help the teacher move towards proficiency. They are being meet with the assistance of her peers. Ultimately, her principal will determine the outcome based on her performance. So far, the forum is working to help  "bad teacher\'s" performance. I would agree with the person who said bad teachers may be those who need improved training and education.<br><br>My final comment is this. Get involved with your local schools and local politicians. Every has that right in a democracy. You can influence change. Imagine influencing the lives of millions!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670918">\
	 <div id="dsq-comment-header-9670918" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670918" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670918" href="http://totaltransformation.wordpress.com/" target="_blank" rel="nofollow">totaltransformation</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670918" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670918" class="dsq-comment-message">"The plan states which teaching standards must be brought up to proficient levels in order to meet profiency according to her principal"<br><br>John, I am curious, what happens if she fails to meet these standards?  Will the union allow the school to fire her?  Will she be transferred to another school?<br>The procedure sounds good IF after an unsuccessful attempt at helping her she could face termination for failure.<br><br>-J. Kaiser</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670916">\
	 <div id="dsq-comment-header-9670916" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670916" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670916" href="http://www.tabletpcquestions.com/" target="_blank" rel="nofollow">Layne</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670916" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670916" class="dsq-comment-message">Carla,<br><br>I support your efforts to teach but there are funds for teachers to improve themselves.<br><br>"Teachers pay for the own education their entire lifetime. That comes out of their yearly wages. Their is no education fund to support continuing education."<br><br>There are numerous funding sources for a teacher\'s education. My teaching certification program was paid, the support program for beginning teachers was paid, as well as many professional development workshops for keeping the certification continues to be paid. New teachers in some states receive tax credits. Plus, some districts will pay signing bonuses for certified teachers. Teachers looking for housing assistance can even get zero down loans. Teachers also receive numerous discounts on products. For example, I received a 150 dollar discount on a cell phone because of my teaching job. Book stores provide discounts because of my job.<br><br>BTW: Two years of allowing a teacher in the classroom to teach, who fails to meet standards, is two years too long. The principal is trying to be too cautious about documentation and therefore has weak decision making abilities. Tell the teacher they have 1 week to get it together - quit hugging and pampering. Give the person the time to submit lesson plans with proper standards or face termination. Period. If the teacher fails then the kids will be better off with someone else.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670908">\
	 <div id="dsq-comment-header-9670908" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670908" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670908">Matt Stoller</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670908" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670908" class="dsq-comment-message">Here\'s a perspective that <a href="http://www.intelligentdiscontent.com/reform/steve-jobs-attacks-unions-teachers.html" rel="nofollow">you may not have heard.</a><br><br><blockquote>Jobs\' basic argument is that schools hire bad teachers and that they can\'t be replaced because of union policies. What might surprise you is that, to some extent, I agree with him. It does seem crazy that a person can achieve tenure after three years, and I have no doubt that many union leaders are more interested in protecting teachers than in protecting quality education. Unfortunately, that\'s as far as Jobs argument goes in terms of making sense. He argues that principals need to be able to hire and fire quality people, ignoring that principals and school administrators are often the cause of the problem, and among the least qualified people working in schools . What sounds like a common sense solution, giving principals more power, ignores their frequent lack of qualification and the simple fact that they HIRED the bad teachers that Jobs condemns. Doesn\'t that suggest they might not be very skilled at evaulating employees?<br><br>Jobs\' easy answer is just sloganeering, but one that is occuring in enough places to cause concern. Rather than focusing on systemic inequity, violence, family structure, or the host of social ills that are contributing to failures in American education, let\'s blame the unions. No one likes them anyway. It\'s not a hard sell to a public that is desperately looking for answers. Personally, I am tired of teachers blaming everyone but ourselves for problems in education. We do need to take a long, hard look at our methods, effort, and technique, but if Jobs and other critics of education truly wanted to elevate this debate to a place where we can work on real improvement, they need to offer a little more sophisticated insight than "Unions bad!"</blockquote></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670906">\
	 <div id="dsq-comment-header-9670906" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670906" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670906">teacher</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670906" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670906" class="dsq-comment-message">My school\'s/city\'s background...<br><br>inner city (99% free or reduced lunch), a city where 6/100 students have a college degree after five years, the school with the highest DCFS population in the state, one of the highest AIDS rates and special education populations in the city<br><br>...yet we are expected to have all our students testing at a benchmark a wealthy white suburb meets.<br><br>I have yet to log a week less than 50+ hours.  That hourly wage doesn\'t deduct the supplies teachers pay for out of pocket.<br><br>50% Parents and Students:<br>What fails to be addressed is the students interest in education.  When students will call teachers a "bitch" or tell them to "Go fuck yourself." you will have difficulty retaining the best and the brightest.  This may only be a few students, but sexual advances and obscene comments on a regular basis is draining emotional.  You can\'t blame the unions for the students behavior.  The parents and a legal rules that allow students to engage and continue in this behavior are responsible.<br><br>I love teaching and accept the comparative low pay (I have a BS in mathematics), but I can feel the exhaustion and frustration with the system setting in.  I would accept even lower pay if it was to reduce class size.<br><br>If teaching was an easy job (John Stossel) you wouldn\'t have such high attrition rates in low income areas.  My last school had a 70+% turnover in 1 year.<br><br>Some teachers are horrible, but some become terrible when they check out.  The Unions are flawed, but teachers can be fired.  Where I am, unless tenured, you can be let go without a reason.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670905">\
	 <div id="dsq-comment-header-9670905" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670905" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670905" href="http://worstwriter.wordpress.com/" target="_blank" rel="nofollow">Tommi</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670905" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670905" class="dsq-comment-message">"Steve Jobs deserves praise for at least speaking half the truth."<br><br>Sorry. We (America) are where we are today as a society because of compromising truth.<br><br>Everything that comes out of Steve Jobs makes me cringe. He\'s nothing but the best example of America gone bad but still appearing to be "cool". Whoopee. What a jerk.<br><br>If you think the US school system is screwed, try mixing it with the German system. Here\'s a post of mine that is a bit winded, rants too much, has some bad language, is way too long, but does come full circle and provide first-hand insight into a really screwed up school system.<br><br><a href="http://worstwriter.wordpress.com/2007/01/31/when-bourgeois-women-cry-their-tears-sting/" rel="nofollow">http://worstwriter.wordpress.com/2007/01/31/whe...</a><br><br>Tommi</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670904">\
	 <div id="dsq-comment-header-9670904" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670904" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670904">joem</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670904" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670904" class="dsq-comment-message">The world is becoming ever more demanding of intellectual ability but people are not getting any smarter.  We have the same genes as our stone-age ancestors.  The schools cannot fix what nature did not choose to provide.<br><br>Sure, teachers\' unions, etc, etc, are a drag.  But this is a secondary phenomenon.  With increasing desperation, well informed, educated parents are concentrating their children in private schools or pricy suburbs - leaving the rest of the population to its fate.<br><br>Until we face up to the essential truth that children vary widely in their intellectual ability, all this discussion is futile.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670903">\
	 <div id="dsq-comment-header-9670903" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670903" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670903">Doug</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670903" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670903" class="dsq-comment-message">The only problem with your post is that unions are also responsible for what we pay teachers.  What prevents a superintendent from paying a better performing teacher more than an average teacher isn\'t politicians - it\'s the collective bargaining contracts.<br><br>There\'s also some recent research which finds hourly teacher salaries pay above average:  <a href="http://www.manhattan-institute.org/html/cr_50.htm" rel="nofollow">http://www.manhattan-institute.org/html/cr_50.htm</a>  Perhaps most surprisingly, public school teachers are paid 61% more per hour than private school teachers.<br><br>It\'s a bit disturbing to see you attack NCLB with such a broad bruch but don\'t seem to understand what it actually does.  You seem to miss that it includes nearly $3 billion to help support increased teacher salaries as well as bonuses for teachers who work with at risk students, hard to staff subjects like math, or improve student performance.<br><br>You also make the claim that NCLB is underfunded which is based on the misguided notion that "authorized" funding levels in legislation are somehow promises.  They\'re not - they\'re spending "caps."  Look back at the Clinton budget when the democrats also controlled congress and you\'ll see similar patterns where neither the president\'s budget not the congressional appropriations provided the full amount authorized.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670901">\
	 <div id="dsq-comment-header-9670901" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670901" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670901" href="http://stephenrahn.com/blog" target="_blank" rel="nofollow">Stephen Rahn</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670901" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670901" class="dsq-comment-message">Doug, your article made me laugh out loud when I read the part about "paid lunches" and "rest periods" for teachers. Please tell a 2rd grade teacher about a paid lunch when he or she has to monitor 25 7-year-olds while trying to squeeze in enough time to scarf down a sandwich him/herself. I was a high school teacher, and I ALWAYS had some sort of lunch duty or hall monitoring during my "paid lunch" and "rest period" time. I could barely find a spare minute or two to take a whiz most days. Truly hysterical.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670902">\
	 <div id="dsq-comment-header-9670902" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670902" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670902">grey clay</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670902" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670902" class="dsq-comment-message">Any discussion of performance-based compensation should address criteria to be used in evaluating performance.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670939">\
	 <div id="dsq-comment-header-9670939" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670939" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670939" href="http://stephenrahn.com/blog" target="_blank" rel="nofollow">Stephen Rahn</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670939" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670939" class="dsq-comment-message">I was not a math teacher, but I can usually see when things don\'t add up. The math from the BLS is still not adding up for me, so maybe some of you math guys can help me.<br><br>In most cases, a teacher\'s yearly contract covers approximately 190 days. For the sake of this calculation, I will go with that. If we assume the $34.06 hourly rate over 190 days (8-hour workday, which is what every place I worked in required), then the average salary should be $51,771. This is not taking into consideration ANY outside or "take home" work at all.<br><br>The problem is that I can\'t find any stat that says that the average teacher salary was that high. Most I have found are in the $46-49k range. Even if I could find that it was over 51k, that does not take into account the outside hours. I know that other professions also take work home, but it seems that the BLS isn\'t taking any into consideration at all.<br><br>Again, I am willing to listen to any numbers to help me understand this. The BLS numbers just aren\'t adding up for me. If you were to go with a 7.5 hour workday, then the numbers are believable, but that is not allowing for any take home work at all.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670942">\
	 <div id="dsq-comment-header-9670942" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670942" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670942" href="http://thinklab.typepad.com/" target="_blank" rel="nofollow">Christian</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670942" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670942" class="dsq-comment-message">Robert -- Thanks for tweaking the subject outside of the obvious K-12 echo chamber.  Jobs is going to be thrown under the bus or carried atop shoulders because we are more fixated on the either/or mudslinging rather than taking a step back and getting a bigger piece of the horizon line in our view finder.<br><br>The \'system\' of traditional public K-12 education (this is what he\'s talking about, and not colleges or private schools or kindercare programs on the weekends) is seen as an infinite ecosystem that must be saved at all costs.  Why?  Because we\'re all familiar with it, we\'ve invested insanely to get to this point, and it\'s pretty iconic.<br><br>One of the above comments offered that we still aren\'t sure if it\'s about education or socialization -- and he deserves credit for that statement. True.  And because we aren\'t really arguing similar terms, and because (this is the kicker) EVERYONE (myself included) is an \'expert\' since we attended as students (at least), everyone can see where others are to blame.  But we rarely can offer a firm foundation based on a unified purpose or a set of solutions that are valued by more than a niche audience.<br><br>What always surprises me is that when the system was born, there was NO guarantee it\'d be around 10 or 25 or 100 years later.  It was an epic risk.  A risk that offered mass literacy, mass voting access, agrarian to industrial transitions, and so much more at a time in our nation\'s history when there were very few guarantees that we\'d be a global superpower of much worth.  And for 150+ years we\'ve been insanely successful -- regardless of what was going on in society or the ugly view in the mirror we had to face (Brown v. Board of Education and 1970\'s Boston Bus Riots and Reagans \'ketchup as school veggie\' for 3 examples).  There was no previous example.  We pulled it off.  Warts and all.<br><br>But what about tomorrow?  Are we spending more time sticking fingers in watery holes or in asking what we really will need for the future?<br><br>Perhaps if we began to imagine that a) we were successful with an epic historical risk at mass proportions and put our nation in a position to chase Sputnik when that seemed so important and b) it\'s time to focus on \'learning\' in ways never before imagined for a change, rather than simply mudslinging about a system that may not have been set up to take us into the future...perhaps then and only then we might make progress other than hunting "Did you hear what Jobs said?" headlines.<br><br>Jobs shouldn\'t be thrown under the bus.  He shouldn\'t be carried atop shoulders, either.  If he was just Joe Citizen, it wouldn\'t matter. Nobody would listen.  Or oooh-n-ahhh.  It only got the press it did because \'Apple\' is named in such a way to endear itself to teachers in the first place (other than the \'knowledge\' and Eve metaphor if you\'re so inclined)...and he seemingly took a shot at those who love him so.<br><br>Ironic.  Strategic.  Whatever.<br><br>Why are we spending so much time on his comments?  Why not spend more time on John Seeley Brown and Ian Jukes and others who are trying to identify where we need to take it, rather than those who simply want to kick it in the backside from a proprietary point of view?<br><br>Just a thought.  Blaming one or another or another seems to be only rocks through windows.  Either way, we all have to clean it up and all of our property values go down.  Loud echo chamber.  But the view lacks.<br><br>Scoble -- thanks for throwing education sticks and flame together in an area not always discussed on your blog.  Brought a smile to my face when the RSS feedtruck came down the street this morning.<br><br>My ONLY question to you, Robert, at this point is:<br><br>When are you going to add a "Future of Learning" video series at PodTech?  You\'ve got a good portioin of the trends covered from India to the newly named gaming/virtual worlds channel. Perhaps the ONE thing that impacts all as we go forward -- LEARNING -- oughta grab a bit of vodcast/vloggies love as well?  (he smiles with a hint-hint, nudge-nudge).<br><br>Tell me when you and John are ready to launch \'the obvious\' and I\'d love to help connect some of the dots for you.  Considering that your neighbors-down-the-street at Edutopia (George Lucas Educational Foundation) are doing a brilliant job of cornering an educational story-telling market that you could easily get a video foothold in, perhaps there\'s even a bottom-line upside for you as well.  Perhaps (again, a smile)<br><br>Or -- he smiles -- is this post conversation just an excuse to talk about Jobs really, and to use \'education\' as conversational fodder and left-over bac-o-bits on the salad bar floor when everyone moves over to the nest \'Who link-baited who?\' controversy? (grin)<br><br>Tell me when you\'re in Texas next, my friend.  I owe you one for being such a good host in Montana last August and letting me enjoy the hot springs as you were daydreaming the video adventure you\'ve recently smacked out of the park.  Perhaps I can wrestle down a few CEO\'s and geeks for you, too!<br><br>Cheers,<br>Christian</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670934">\
	 <div id="dsq-comment-header-9670934" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670934" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670934" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670934" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670934" class="dsq-comment-message">Christian: doing a future of learning channel sounds very interesting! You interested in doing something like that?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670929">\
	 <div id="dsq-comment-header-9670929" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670929" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670929">Edward Ferron</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670929" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670929" class="dsq-comment-message">Robert, and Steve;<br><br>You make me want to go out and be a teacher (their are some good teachers working in a bad system).  Make sure you address the system and not kill the people in the process because you do not have the insight to seperate the good ones from the bad ones.  There are bad people in everything and everywhere you go, thus repeating and driving the point home about bad teachers does not help your cause.<br><br>Same thing goes for bad parents.  I am of the mind set that everyone who has influence like you Robert, you should let your money do some talking and stop waiting on the government to solve our problems.  In a country where someone has as much free enterprise start a nation of large private schools sweeping the country, where free enteprise is so available.  We spend more time in shouting matches and protest instead of taking action.<br><br>This post does make some assumptions that you are not doing anything currently so if that is not the case then I apologize, however if it is the case, that you are doing nothing, well then...<br><br>I pray for our nation, school and children...<br><br>Ed</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670907">\
	 <div id="dsq-comment-header-9670907" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670907" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670907">Bob Goldstein</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670907" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670907" class="dsq-comment-message">There isn\'t any "the" problem.  There are many interrelated issues, involving parents, students, gov regulations, and<br>sure, teachers, principals, and unions.<br><br>$80k salaries won\'t fix it. (I\'d pay, if it would.)<br>Read <a href="http://joelonsoftware.com" rel="nofollow">joelonsoftware.com</a> for essays on how to compensate programmers.  Similar ideas apply -- money is important, but the various psychic environments and rewards can be even more important.<br><br>Simplistic solutions remind me of the apocryphal<br>difference between democratic and republican<br>responses to a man drowning 50 ft off shore.<br>The republican throws out a 25ft rope and tells<br>the man to swim halfway, since it\'s good for<br>his character.  The democrat thows out 100ft<br>rope and then walks away looking to do other good deeds.<br><br>BTW, check out:<br>   <a href="http://www.donorschoose.org" rel="nofollow">www.donorschoose.org</a><br>It might not save the world, but it lets you funnel money to individual teachers for specific projects, when they can\'t get support from the schools.<br><br> bobg</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670900">\
	 <div id="dsq-comment-header-9670900" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670900" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670900" href="http://www.constantlycomplaining.com/" target="_blank" rel="nofollow">ryan l</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670900" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670900" class="dsq-comment-message">Its not the teachers or even the schools that are to blame for our educational systems lackluster performance.<br><br>It is the parents.<br><br>The entire perfomance curve is dragged down by parents that can\'t afford to invest in thier children cause there too busy just trying to figure out how to put food on the plate.<br><br>Kids that go to preschool or early childhood education of some sort are much more  likely to succeed.<br><br>Education is just like any other investment..if you start early and keep a stable input...your going to make out allright.<br><br>Unfortunately many can not afford to invest in thier children let alone a 401k.<br><br>Jobs would do better to imitate his geekie arch rival and start working on the solution to the problem instead of just bitching about it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670899">\
	 <div id="dsq-comment-header-9670899" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670899" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670899" href="http://publicsectorlaw.wordpress.com/" target="_blank" rel="nofollow">Patrick J. Fanelli, Esq.</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670899" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670899" class="dsq-comment-message">As everyone has pointed out, there is plenty of blame and credit to go around.  While I have "issues" with the unionization of teachers, those are more philosophical than practical.  There are good teachers and there are bad teachers.  There are teachers that work hard and teachers that don\'t.  That has nothing to do with unionization.<br><br>As a school law and labor law attorney, I can tell you that it is NOT, contrary to the perception of Steve Jobs and many others, impossible to fire teachers.  Are there problems (fear of litigation, etc.) that prevent it from being as easy as some would like?  Perhaps.  But it is not impossible.  Nor is it the solution, however.<br><br>I do find it interesting, however, that while <a href="http://publicsectorlaw.wordpress.com/2007/02/16/congressional-dems-introduce-free-choice-act-to-limit-free-choice/" rel="nofollow">some are trying to make it easier for individuals to exercise union rights</a>, <a href="http://publicsectorlaw.wordpress.com/2007/02/27/an-end-to-teachers-strikes-in-pa/" rel="nofollow">others are seking to limit those rights for teachers.</a><br><br>Just some food for thought.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670898">\
	 <div id="dsq-comment-header-9670898" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670898" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9670898">Leslie</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670898" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670898" class="dsq-comment-message">Just a note that charter schools are usually non union and many offer incentives for job performance and parent satisfaction or what you would call merit pay. Could this be one of the reasons that charter schools are successful in producing positive results?<br>Leslie</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670960">\
	 <div id="dsq-comment-header-9670960" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670960" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670960" href="http://foolswisdom.com/" target="_blank" rel="nofollow">Lloyd Budd</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670960" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670960" class="dsq-comment-message">A significant part of Don Dodge\'s article is that he thinks that teachers are fairly compensated, which I think is absurd!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9670961">\
	 <div id="dsq-comment-header-9670961" class="dsq-comment-header">\
	 <cite id="dsq-cite-9670961" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9670961" href="http://childcustodyguide.com/" target="_blank" rel="nofollow">Custody</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9670961" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9670961" class="dsq-comment-message">NY Times ran an article titled,“ Mothers Scrimp as State Takes Child Support.” It caught my attention because child support is a topic I write about in my book. But you may have skipped it, or not seen at it at all. Why? Because you have to connect with something on an emotional level first in order to express further interest. What you define as a“ must read” may have more to do with your career, your...</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=note_to_steve_jobs_unions_are_only_half_of_school8217s_problems&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);
			}
		}
	});
}

})();




