




if (typeof(disqus_iframe_css) == 'undefined') {
	disqus_iframe_css = '';
}
if (typeof(disqus_def_name) == 'undefined') {
	disqus_def_name = '';
}
if (typeof(disqus_def_email) == 'undefined') {
	disqus_def_email = '';
}
if (typeof(disqus_skip_auth) == 'undefined') {
	disqus_skip_auth = false;
}
if (typeof(disqus_default_text) == 'undefined') {
	disqus_default_text = 'Type your comment here.';
}

(function(){
	
	var ie = document.uniqueID
		&& document.compatMode
		&& !window.XMLHttpRequest
		&& document.execCommand ;

	try {
		if(!!ie) {
			document.execCommand("BackgroundImageCache", false, true);
		}
	} catch(e) {};
})();

var Dsq = new function() {
	this.container = document.getElementById('dsq-content');
	this.jsonData = {"reactions": [{"body": "@johnolilly you've probably seen this, but http://bit.ly/i4XxL", "author_name": "sayrer", "id": 2202336, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/sayrer/statuses/2748035172", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://s3.amazonaws.com/twitter_production/profile_images/307344509/n689041897_896270_5881_normal.jpg", "author_url": "", "date_created": "4 months ago", "retweets": [{"url": "http://twitter.com/sayrer/status/2748035172", "author_name": "sayrer"}]}, {"body": "Mooie quote  http://bit.ly/J3o9r) in dit bericht: Gebruikers ontevreden over netbooks http://tinyurl.com/kpty8j (via @Brightsite)", "author_name": "PeterKerkhof", "id": 1693698, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/PeterKerkhof/statuses/2308460446", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://s3.amazonaws.com/twitter_production/profile_images/262544279/Bijsnij2_normal.jpg", "author_url": "", "date_created": "5 months ago", "retweets": [{"url": "http://twitter.com/PeterKerkhof/status/2308460446", "author_name": "PeterKerkhof"}]}, {"body": "ouch.  #netbooks  http://bit.ly/mfqo3", "author_name": "james_novak", "id": 1693699, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/james_novak/statuses/1652218707", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://s3.amazonaws.com/twitter_production/profile_images/92779296/IMG_0248_normal.JPG", "author_url": "", "date_created": "7 months ago", "retweets": []}, {"body": "Apple\u2019s Tim Cook: Why don\u2019t we make netbooks? Because they suck: http://bit.ly/J3o9r", "author_name": "tcarothers", "id": 1693700, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/tcarothers/statuses/1625049330", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://s3.amazonaws.com/twitter_production/profile_images/90024347/Untitled_normal.png", "author_url": "", "date_created": "7 months ago", "retweets": []}, {"body": "http://bit.ly/myiA1 -   Apple\u2019s Tim Cook: Why don\u2019t we make netbooks? Because they suck \u00bb VentureBeat", "author_name": "hot_linkz_test", "id": 1693701, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/hot_linkz_test/statuses/1618890883", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://s3.amazonaws.com/twitter_production/profile_images/135182442/zeimusu_Fire_Icon_normal.png", "author_url": "", "date_created": "7 months ago", "retweets": []}, {"body": "ROFL - http://tinyurl.com/cs5ex8 you won't make a decent netbook 'cause you're too greedy", "author_name": "sharovatov", "id": 1693702, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/sharovatov/statuses/1602555248", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://s3.amazonaws.com/twitter_production/profile_images/140907429/getImage23_normal.jpg", "author_url": "", "date_created": "7 months ago", "retweets": []}, {"body": "Apple\u2019s Tim Cook: Why don\u2019t we make netbooks? Becaus... http://bit.ly/Itfml #postrank #entrepreneur", "author_name": "pr_entrepreneur", "id": 1693703, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/pr_entrepreneur/statuses/1601312369", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://s3.amazonaws.com/twitter_production/profile_images/136393832/twopic_Entrepreneurship_normal.png", "author_url": "", "date_created": "7 months ago", "retweets": []}, {"body": "Apple\u2019s Tim Cook: Why don\u2019t we make netbooks? Because the... http://bit.ly/Itfml #postrank #startup", "author_name": "pr_startup", "id": 1693704, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/pr_startup/statuses/1601155745", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://s3.amazonaws.com/twitter_production/profile_images/136494029/pr_startup_normal.png", "author_url": "", "date_created": "7 months ago", "retweets": []}], "has_more_reactions": true, "users": {"349aa1b28fcadb834c08a9a7636ce70d": {"username": "Mac Chick", "tumblr": "", "display_name": "Mac Chick", "url": "http://disqus.com/guest/349aa1b28fcadb834c08a9a7636ce70d/", "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": ""}, "1ce253ea6f3e2c787024affae60a5816": {"username": "Chris", "tumblr": "", "display_name": "Chris", "url": "http://disqus.com/guest/1ce253ea6f3e2c787024affae60a5816/", "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": ""}, "koovus": {"username": "koovus", "tumblr": "floozyspeak", "display_name": "floozyspeak", "url": "http://disqus.com/koovus/", "registered": true, "linkedin": "", "blog": "http://www.twitter.com/floozyspeak", "remote_domain": null, "points": 1, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/6377/avatar92.jpg", "delicious": "koovus", "is_remote": false, "verified": false, "flickr": "jimmydan", "twitter": "", "remote_domain_name": ""}, "anthonyha": {"username": "anthonyha", "tumblr": "", "display_name": "Anthony Ha", "url": "http://disqus.com/anthonyha/", "registered": true, "linkedin": "", "blog": "http://www.venturebeat.com", "remote_domain": null, "points": 7, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/3/4392/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "1f76b2098efe2491d19ba6710507f6b6": {"username": "luke", "tumblr": "", "display_name": "luke", "url": "http://disqus.com/guest/1f76b2098efe2491d19ba6710507f6b6/", "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": ""}, "e25e1ded7a4b7d3e0b53331f3bc3efb7": {"username": "evoisard", "tumblr": "", "display_name": "evoisard", "url": "http://disqus.com/guest/e25e1ded7a4b7d3e0b53331f3bc3efb7/", "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": ""}, "facebook-691270740": {"username": "facebook-691270740", "tumblr": "", "display_name": "Jeffrey McManus", "url": "http://disqus.com/facebook-691270740/", "registered": true, "linkedin": "", "blog": "http://www.facebook.com/people/Jeffrey-McManus/691270740", "remote_domain": 1, "points": 6, "facebook": "http://www.facebook.com/people/Jeffrey-McManus/691270740", "avatar": "http://media.disqus.com/uploads/users/17/7443/avatar92.jpg", "delicious": "", "is_remote": true, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": "Facebook"}, "4790d312a04edaba97cb5002b3efcce2": {"username": "\u0421\u0442\u0430\u043d\u0438\u0441\u043b\u0430\u0432", "tumblr": "", "display_name": "\u0421\u0442\u0430\u043d\u0438\u0441\u043b\u0430\u0432", "url": "http://disqus.com/guest/4790d312a04edaba97cb5002b3efcce2/", "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": ""}, "edsion007": {"username": "edsion007", "tumblr": "", "display_name": "edsion007", "url": "http://disqus.com/edsion007/", "registered": true, "linkedin": "", "blog": "", "remote_domain": null, "points": 1, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "e644cfe73e124ce5a2409b59cb9b8416": {"username": "Apple development center", "tumblr": "", "display_name": "Apple development center", "url": "http://disqus.com/guest/e644cfe73e124ce5a2409b59cb9b8416/", "registered": false, "linkedin": "", "blog": "http://www.appledevelopmentcenter.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": ""}, "39fc818efbcd83356123ed8bb61994f4": {"username": "Scott", "tumblr": "", "display_name": "Scott", "url": "http://disqus.com/guest/39fc818efbcd83356123ed8bb61994f4/", "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": ""}, "1544f81dc294645069124b3bb4e844b6": {"username": "Philip", "tumblr": "", "display_name": "Philip", "url": "http://disqus.com/guest/1544f81dc294645069124b3bb4e844b6/", "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": ""}, "Rayek": {"username": "Rayek", "tumblr": "", "display_name": "Rayek", "url": "http://disqus.com/Rayek/", "registered": true, "linkedin": "", "blog": "", "remote_domain": null, "points": 1, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "8d89c3087cc6cb98793ab7c0f5658c56": {"username": "Lemonade", "tumblr": "", "display_name": "Lemonade", "url": "http://disqus.com/guest/8d89c3087cc6cb98793ab7c0f5658c56/", "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": ""}, "df395b21cf3126cf309e11a02348b0bf": {"username": "Christopher Francis O&#39;Donnell", "tumblr": "", "display_name": "Christopher Francis O&#39;Donnell", "url": "http://disqus.com/guest/df395b21cf3126cf309e11a02348b0bf/", "registered": false, "linkedin": "", "blog": "http://chrisodonnell.name", "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": ""}, "1587729ac2a844f11786702a2c7c0537": {"username": "Jeff", "tumblr": "", "display_name": "Jeff", "url": "http://disqus.com/guest/1587729ac2a844f11786702a2c7c0537/", "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": ""}, "3487a92f657dbeb5a99695281d969951": {"username": "Kevin", "tumblr": "", "display_name": "Kevin", "url": "http://disqus.com/guest/3487a92f657dbeb5a99695281d969951/", "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": ""}, "ffc5fa9ae07f03722e93283719aab869": {"username": "Anne H", "tumblr": "", "display_name": "Anne H", "url": "http://disqus.com/guest/ffc5fa9ae07f03722e93283719aab869/", "registered": false, "linkedin": "", "blog": "http://www.timeatlas.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": ""}, "d4e5c1152a5e3d024d325bd638b27833": {"username": "Colonel Mac", "tumblr": "", "display_name": "Colonel Mac", "url": "http://disqus.com/guest/d4e5c1152a5e3d024d325bd638b27833/", "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": ""}, "slehman805": {"username": "slehman805", "tumblr": "", "display_name": "slehman805", "url": "http://disqus.com/slehman805/", "registered": true, "linkedin": "", "blog": "", "remote_domain": null, "points": 1, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3828f6f2c493ceb483f41915a4e06e12": {"username": "Sam Spade", "tumblr": "", "display_name": "Sam Spade", "url": "http://disqus.com/guest/3828f6f2c493ceb483f41915a4e06e12/", "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": ""}, "FritzS": {"username": "FritzS", "tumblr": "", "display_name": "FritzS", "url": "http://disqus.com/FritzS/", "registered": true, "linkedin": "", "blog": "", "remote_domain": null, "points": 1, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "4117f2b3bd5320fa5d6bd6a37f42933d": {"username": "Stjones", "tumblr": "", "display_name": "Stjones", "url": "http://disqus.com/guest/4117f2b3bd5320fa5d6bd6a37f42933d/", "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": ""}, "78021f405fd86cb044c53ffb6ca96bea": {"username": "Richard", "tumblr": "", "display_name": "Richard", "url": "http://disqus.com/guest/78021f405fd86cb044c53ffb6ca96bea/", "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": ""}, "4db63fad375896063d2d8c85ca43a0b8": {"username": "DreyZ", "tumblr": "", "display_name": "DreyZ", "url": "http://disqus.com/guest/4db63fad375896063d2d8c85ca43a0b8/", "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": ""}, "8daac3593690c3211e0303bb6c3f082d": {"username": "Andrew", "tumblr": "", "display_name": "Andrew", "url": "http://disqus.com/guest/8daac3593690c3211e0303bb6c3f082d/", "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": ""}, "87d30edb4183a4c3c371e349316020d8": {"username": "horus", "tumblr": "", "display_name": "horus", "url": "http://disqus.com/guest/87d30edb4183a4c3c371e349316020d8/", "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": ""}, "d0e4a619b87f3d67bd4e48c6bf0d405c": {"username": "Dean", "tumblr": "", "display_name": "Dean", "url": "http://disqus.com/guest/d0e4a619b87f3d67bd4e48c6bf0d405c/", "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": ""}, "0db98812ba49c3aaa71b585930520966": {"username": "Engago team", "tumblr": "", "display_name": "Engago team", "url": "http://disqus.com/guest/0db98812ba49c3aaa71b585930520966/", "registered": false, "linkedin": "", "blog": "http://www.LEADSExplorer.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": ""}, "93f7849c796ea4d5983358f4457b7c69": {"username": "shadfurman", "tumblr": "", "display_name": "shadfurman", "url": "http://disqus.com/guest/93f7849c796ea4d5983358f4457b7c69/", "registered": false, "linkedin": "", "blog": "http://shadfurman.mymangosteen.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": ""}, "954d5fad34ce5fd97f969a96f6d27996": {"username": "MeanEYE", "tumblr": "", "display_name": "MeanEYE", "url": "http://disqus.com/guest/954d5fad34ce5fd97f969a96f6d27996/", "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": ""}, "37eb727246043f981a6608935752b900": {"username": "Peter Antypas", "tumblr": "", "display_name": "Peter Antypas", "url": "http://disqus.com/guest/37eb727246043f981a6608935752b900/", "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": ""}, "0b69520a4bfa728861f61de1c5dbeba6": {"username": "Timm", "tumblr": "", "display_name": "Timm", "url": "http://disqus.com/guest/0b69520a4bfa728861f61de1c5dbeba6/", "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": ""}, "1b90a6cd52061bf30fe9135dd9bc5879": {"username": "Darryl", "tumblr": "", "display_name": "Darryl", "url": "http://disqus.com/guest/1b90a6cd52061bf30fe9135dd9bc5879/", "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": ""}, "8c8e8faf58ce805ffe4a4204a7a36f74": {"username": "Nick D", "tumblr": "", "display_name": "Nick D", "url": "http://disqus.com/guest/8c8e8faf58ce805ffe4a4204a7a36f74/", "registered": false, "linkedin": "", "blog": "http://www.tweetieandthebrain.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": ""}, "1090dcfab3361ae020731e77d89ced28": {"username": "Darren", "tumblr": "", "display_name": "Darren", "url": "http://disqus.com/guest/1090dcfab3361ae020731e77d89ced28/", "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": ""}, "709650cab7748e7de9730f133d3ff697": {"username": "sdfasdf", "tumblr": "", "display_name": "sdfasdf", "url": "http://disqus.com/guest/709650cab7748e7de9730f133d3ff697/", "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": ""}, "87de9db9cbf11b97419bc3f1c1e0b0c9": {"username": "Tom", "tumblr": "", "display_name": "Tom", "url": "http://disqus.com/guest/87de9db9cbf11b97419bc3f1c1e0b0c9/", "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": ""}, "41ceab1eab2c6e9ac7c6a4f0b9925af1": {"username": "Sheynberg", "tumblr": "", "display_name": "Sheynberg", "url": "http://disqus.com/guest/41ceab1eab2c6e9ac7c6a4f0b9925af1/", "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": ""}, "b284d98f3b643e6da525bd68cac9b215": {"username": "Peter Webb", "tumblr": "", "display_name": "Peter Webb", "url": "http://disqus.com/guest/b284d98f3b643e6da525bd68cac9b215/", "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": ""}, "d57ed6df6a0d6913b638e031526144a9": {"username": "ccsa exams", "tumblr": "", "display_name": "ccsa exams", "url": "http://disqus.com/guest/d57ed6df6a0d6913b638e031526144a9/", "registered": false, "linkedin": "", "blog": "http://www.real-exams.com/CCSA.htm", "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": ""}, "89cf89acfe773cb6c768d4f51fdf1618": {"username": "SimBob", "tumblr": "", "display_name": "SimBob", "url": "http://disqus.com/guest/89cf89acfe773cb6c768d4f51fdf1618/", "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": ""}, "c04d39c2adaa2a0c8035357013e42086": {"username": "Jimmy", "tumblr": "", "display_name": "Jimmy", "url": "http://disqus.com/guest/c04d39c2adaa2a0c8035357013e42086/", "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": ""}, "100d07328ea8ab9b26fba49e28027d86": {"username": "Johnny", "tumblr": "", "display_name": "Johnny", "url": "http://disqus.com/guest/100d07328ea8ab9b26fba49e28027d86/", "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": ""}, "4f64c9f81bb0d4ee969aaf7b4a5a6f40": {"username": "Name", "tumblr": "", "display_name": "Name", "url": "http://disqus.com/guest/4f64c9f81bb0d4ee969aaf7b4a5a6f40/", "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": ""}, "043e04d8d000cd53a63ea3d4df683669": {"username": "Claude", "tumblr": "", "display_name": "Claude", "url": "http://disqus.com/guest/043e04d8d000cd53a63ea3d4df683669/", "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": ""}, "d08a0f36a911e72720bf73f98613d188": {"username": "Keoz", "tumblr": "", "display_name": "Keoz", "url": "http://disqus.com/guest/d08a0f36a911e72720bf73f98613d188/", "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": ""}, "746986c4311cf2892a2db86b50b5fe91": {"username": "enrique santa cruz", "tumblr": "", "display_name": "enrique santa cruz", "url": "http://disqus.com/guest/746986c4311cf2892a2db86b50b5fe91/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}}, "forum": {"use_media": true, "name": "VentureBeat", "streaming_realtime": false, "url": "venturebeat", "allow_anon_post": true, "reactions_enabled": true, "reply_position": 1, "show_avatar": true, "allow_anon_votes": false, "disqus_auth_disabled": false}, "realtime_enabled": false, "request": {"username": "", "is_global_moderator": false, "sharing": {}, "sort": 4, "forum": "venturebeat", "is_initial_load": true, "is_authenticated": false, "timestamp": "2009-12-01_11:27:21", "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": null}, "realtime_paused": false, "posts": {"8601920": {"up_voted": false, "ip": "", "has_replies": false, "message": "We are the Borg. You will be assimilated. Resistance is futile...<br><br>LoL, who gives a f**k about Apple. All these Mac users just keep braging about what they  bought and how much they paid for it (like it matters). Do you people need ego boost or something? I just don't get it... if you like using Macs just USE them, don't go around and brag to everyone... you are being such a /b/.<br><br>About this article... well :D I see it this way... market is way to big for Apple or any other company to dominate alone. If they don't make netbooks someone else will. Consumers have demands and whoever satisfies those demands earns money. I don't think, except for those iMustBragAboutMyMac type of people, many care if it's a Mac or Asus or any other. If it is doing it's job and doesn't cost an arm and a leg... well who gives a damn.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_06:13:59", "killed": false, "user_key": "954d5fad34ce5fd97f969a96f6d27996", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8611478": {"up_voted": false, "ip": "", "has_replies": false, "message": "Given recent rumors/news, seems clear Apple is working on something \"netbookish\".  But, knowing how Apple works, my guess is they will completely rethink what a \"netbook\" is and come out with something groundbreaking.  Look what they did with the cell phone.  They didn't just make another cell phone.  They completely redefined what a cell phone could be.  My guess is they will do the same with netbooks.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_12:36:31", "killed": false, "user_key": "d0e4a619b87f3d67bd4e48c6bf0d405c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8591110": {"up_voted": false, "ip": "", "has_replies": true, "message": "im writing this on a carbon fibre TZ.<br><br>awesome lightweight notebook. Im a software developer & its my only computer. 8 hour battery life, lighter than the air, 11\" screen ultraportable, great keyboard, LCD backlit screen (years before apple), dvd writer, dual core - its great.<br><br>dont know which you had - but either you're wrong or it was a different model.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-22_20:33:28", "killed": false, "user_key": "8c8e8faf58ce805ffe4a4204a7a36f74", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 6, "is_first_child": true, "email": "", "parent_post_id": 8589104, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "18445392": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hmmm<a href=\"http://www.crazyuggs.co.uk\" rel=\"nofollow\">.</a>.<a href=\"http://dragonara.net/ddos-protection.html\" rel=\"nofollow\">.</a> why it has to do with twitter so much?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-10-03_22:28:03", "killed": false, "user_key": "edsion007", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "1 month ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8609801": {"up_voted": false, "ip": "", "has_replies": false, "message": "Oh, maybe because you can get a very usable netbook for $300 or so, while the cheapest Air is $1,800?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_11:44:09", "killed": false, "user_key": "1ce253ea6f3e2c787024affae60a5816", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 8595141, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "8609677": {"up_voted": false, "ip": "", "has_replies": true, "message": "Why there are no more concords? they were for the elite, great experience, the best airplane ever built and also the fastest one ever, why people prefered the jumbo? because of the price, everything reduces to that. The hunger for power will stay with the people that really needs it and its willing to pay for it, the rest of the mortals that use word processing, spread sheet and web surfing will find out that they can have that at halfe the price. Apple shouldn't treat the price saver crowd like morons just because they can't create a cheap product that won't embarass them.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_11:40:11", "killed": false, "user_key": "746986c4311cf2892a2db86b50b5fe91", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8611600": {"up_voted": false, "ip": "", "has_replies": true, "message": "OMFG a developer with a netbook? you cant be serius! i could not imagine programming in visual studio with that crap of screen i need at least 22\" and well that crap of memory i dont think is for a real world developer no offense", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_12:40:08", "killed": false, "user_key": "d08a0f36a911e72720bf73f98613d188", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 4, "is_first_child": false, "email": "", "parent_post_id": 8591110, "depth": 2, "points": 0, "author_is_creator": false, "is_realtime": false}, "8595091": {"up_voted": false, "ip": "", "has_replies": false, "message": "You mean LED backlit, I think.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-22_23:30:21", "killed": false, "user_key": "df395b21cf3126cf309e11a02348b0bf", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 8591110, "depth": 2, "points": 0, "author_is_creator": false, "is_realtime": false}, "8602390": {"up_voted": false, "ip": "", "has_replies": false, "message": "Apple can bash netbooks all the want what they cannot debate however is that netbooks and the consumer have met and synergized over the past 12 months.  So despite them not being an optimal user experience, the consumer has spoken and netbooks are in.  Failing to recognize is classic hard headed Apple and as such they will not sell macs like they used to until they get back on the same page with the consumer.<br><br>Enjoy the ipod, iphone sales while you can, eventually Apple will need to make something new and it wont move in this economy at the $2k + price tag.  <br><br>Apple typically does pretty well with education market as well, and I see that slipping away from them even further as more and more people embrace the cloud and netbook computing.  <br><br>I hope more and more people create their own hackintoshes, and i think android has a good chance to make for a decent netbook OS.  Netbooks have a place in the consumer mind set, most are the second laptop, or the travel laptop, or the one i like to use for basic stuff and the web which hello is in everything these days.  <br><br>Apple's loss and they will feel it.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_07:07:38", "killed": false, "user_key": "koovus", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16433011": {"up_voted": false, "ip": "", "has_replies": false, "message": "Im a college student and I use a HP mini with 2GB Ram \"upgraded\" 1.6 Ghz proccessor and 160GB harddrive, I love it because I got sick of lugging my Compaq laptop around, It works great for taking notes, and working on  code for my proggramming class. I play Warcraft II and Warcraft III and other older games on it no prob, im not trying to play WoW on it but I can't wait until nvidias new chipset comes out because it will help bridge the gap in the graphics aspect of laptop vs netbook.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-09-11_14:11:39", "killed": false, "user_key": "3487a92f657dbeb5a99695281d969951", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "20673306": {"up_voted": false, "ip": "", "has_replies": false, "message": "That's really what it comes down to.  Netbooks are cheap primarily because they are made with cheaper components than workhorse laptops, not because they are smaller or anything else.  Making things cheaply or half-assed isn't Apple's thing, so they don't make netbooks.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-10-20_22:11:52", "killed": false, "user_key": "Rayek", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "1 month ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 8589104, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "8630045": {"up_voted": false, "ip": "", "has_replies": false, "message": "Whoops, sorry about that, my connection to the webcast wasn't that great. I'll fix.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_18:55:58", "killed": false, "user_key": "anthonyha", "has_been_anonymized": false, "edited": false, "author_is_moderator": true, "from_request_user": false, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 8601980, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "8615237": {"up_voted": false, "ip": "", "has_replies": false, "message": "One word: denial.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_14:34:48", "killed": false, "user_key": "043e04d8d000cd53a63ea3d4df683669", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8595233": {"up_voted": false, "ip": "", "has_replies": true, "message": "I'm an Ubuntu Eee 901 user and I find this really funny. I'm a developer and I write and compile about 90% of my code now on my netbook because it is portable, super small, and gets amazing battery life. Netbooks are far from underpowered and mine is amazingly well built. My 901 is built as solid as a tank while still remaining the smallest computer I have ever seen. I run Compiz with all the bells and whistles turned on and can even play games like Alice and Max Payne in Wine with no lag (I was curious how far I could push it). For 99% of the tasks I do daily, including work, my netbook suits me perfectly.<br><br>The only problem at the moment is the ridiculous software set-ups they ship with. The first thing I had to do when I got my 901 was strip out the crappy OS. It's only a matter of manufacturers figuring out how to configure their machines.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-22_23:36:58", "killed": false, "user_key": "3828f6f2c493ceb483f41915a4e06e12", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 4, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8595494": {"up_voted": false, "ip": "", "has_replies": false, "message": "I would purchase an Apple netbook or tablet in an instant. I already have a macbook and an iPhone, but there are some times when I would choose to use the netbook over the other two devices.  I think with Apples experience with touch screens they could really create a new kind of premium netbook or tablet.  But I do agree with others in that it will likely cost much more than those netbooks that are currently available.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-22_23:40:31", "killed": false, "user_key": "e644cfe73e124ce5a2409b59cb9b8416", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8612145": {"up_voted": false, "ip": "", "has_replies": false, "message": "I dont like macs i think they suck but they are in demand and they have won respect because of the good decisions and products they make, i respect more apple for this decision because the netbooks are only a rush in the heads of people its not gonna last for long, or at least netbooks will be a 1/6 or 1/8 of market share", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_12:58:05", "killed": false, "user_key": "d08a0f36a911e72720bf73f98613d188", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 8600187, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "8767531": {"up_voted": false, "ip": "", "has_replies": false, "message": "Why the heck software development would imply MS Visual Studio? If you're in real world, as you say, you might well have to be in the field doing some modifications on the fly in your code in a production system, with a simple editor and a couple of shell windows. Of course you might no be programming for MS Windows environment...<br><br>Sure a netbook would be very minimal, but it would allow you to do your work whilst an iPhone would be unusable for that. I'll buy one, one of these days...", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-28_03:03:01", "killed": false, "user_key": "e25e1ded7a4b7d3e0b53331f3bc3efb7", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 8611600, "depth": 3, "points": 0, "author_is_creator": false, "is_realtime": false}, "8616562": {"up_voted": false, "ip": "", "has_replies": false, "message": "@Keoz. Go read Christensen's \"The Innovator's Dilemma\" and \"The Innovator's Solution\". You might understand something about the tech business and the process of disruption.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_15:21:50", "killed": false, "user_key": "37eb727246043f981a6608935752b900", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8612655": {"up_voted": false, "ip": "", "has_replies": true, "message": "And that's to worry about for the IT industry that people dont want anything else than just \"browsing\" and deacelerating the hardware technology because people dont want anything else they are happy browsing", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_13:13:24", "killed": false, "user_key": "d08a0f36a911e72720bf73f98613d188", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 1, "is_first_child": true, "email": "", "parent_post_id": 8611932, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "8589104": {"up_voted": false, "ip": "", "has_replies": true, "message": "It's about time, I'm so sick of hearing about these miniature netbooks. I had one of those tiny vaios a few years back, what a piece of junk.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-22_19:19:00", "killed": false, "user_key": "1587729ac2a844f11786702a2c7c0537", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 9, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8594609": {"up_voted": false, "ip": "", "has_replies": true, "message": "Quite frankly, I'm glad that Apple is ignoring -- nay, insulting -- the netbook market. Because it's going to leave the field wide open for other manufacturers and Microsoft to eat Apple's lunch. Netbooks don't suck. Apple simply doesn't understand that the market trend has moved away from high-powered premium laptops to small, portable, near-disposable computers.  This isn't the Apple business model, so of course they're going to react negatively. But it's like criticizing gravity. Or the speed of light. Netbooks are happening NOW -- and the fact that Apple is responding at all to criticism for lack of a product in that space indicates that they care. Even though they won't admit it. Let's see how they do next quarter.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-22_23:06:35", "killed": false, "user_key": "87de9db9cbf11b97419bc3f1c1e0b0c9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8602290": {"up_voted": false, "ip": "", "has_replies": true, "message": "Yes, they do have small screens, as does my phone but I'm not disappointed about it, I just use it for what I bought it for.<br>I fire up my Blackberry and enjoy the lifestyle software on there, sure it doesn't look as polished as the high quality software that's available for Windows but I don't expect it to be.<br>I can quickly check email, Facebook, pick up Skype calls, search Google or use the Yahoo suite. It's very productive and saves me carrying a laptop around.<br><br>I mean come on, it's like saying all TV's are cr*p because they just don't give the cinema experience. That's true but I don't need to be in the cinema to catch up on the news :/", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_06:55:21", "killed": false, "user_key": "1090dcfab3361ae020731e77d89ced28", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "11663923": {"up_voted": false, "ip": "", "has_replies": false, "message": "The MacBook Air seems like a good alternative. <br><br>I have to disagree with Tim's comments:  \"\u201cWhen I look at netbooks, I see cramped keyboards, terrible software, junky hardware, very small screens.\"  Except for the hardware and software is he not describing the iPhone? People watch videos on their iPhone so why not a 10\" screen?  The hardware and software of an Apple Net-Book should not be an issue since it would be designed by Apple and loaded with Apple software.<br><br>I see nothing wrong with adding a second MacBook Air to the line up with a decreased screen size.  There is still room to decrease the screen size around the MacBook Air keyboard.<br><br>But maybe Apple has something else up their sleeves like a MacBook Touch.  And while you're at it, why not build all that iPhone functionality right in to it making it the first on the go Cellular Laptop bringing the world of mobile communications and computing together.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-06-24_05:26:15", "killed": false, "user_key": "slehman805", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "5 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8612432": {"up_voted": false, "ip": "", "has_replies": false, "message": "Really? where do you do that you need a good broadband connection to do that, the remote or cloud computing is not mature yet for that to be as a real good user experience, anyway the screen is too small for real world computing netbooks are not desinged for that use i think", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_13:06:55", "killed": false, "user_key": "d08a0f36a911e72720bf73f98613d188", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 8601832, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "8601273": {"up_voted": false, "ip": "", "has_replies": true, "message": "\"cracked keyboards, terrible software, junky hardware, very small screens. It\u2019s just not a good consumer experience\"!!<br><br>This guy is talking out of his a*se! Take the Samsung NC10, a quality piece of kit that is selling like hotcakes. People buy and use netbooks because they mainly want access to the web and email. For this you do not need some ridiculous overbearing o/s like Vista. Linux or XP do the job just fine. For speculation sake if Apple made a netbook, what would they choose to run on it? Certainly not XP, not linux, that leaves them with....?<br><br>Let's face it, if it wasn't for the iPod & iPhone, Apple would be in deep sh*t right now, so slagging off small and portable devices is very contradictory. Anyway who cares if they don't want to make them, as somebody else suggested they would be way over priced.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_05:03:08", "killed": false, "user_key": "8d89c3087cc6cb98793ab7c0f5658c56", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8643386": {"up_voted": false, "ip": "", "has_replies": true, "message": "You mean you downloaded a trial or illegal copy of Visual Studio and now think you're a real developer? I'm sure your mum is very proud.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-24_07:21:38", "killed": false, "user_key": "1544f81dc294645069124b3bb4e844b6", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": 8612050, "depth": 2, "points": 0, "author_is_creator": false, "is_realtime": false}, "24102047": {"up_voted": false, "ip": "", "has_replies": false, "message": "Is this guy nutty or something?  Sure, netbooks are cramped and have terrible software and yada yada yada, but guess why. BECAUSE THEY AREN'T MACS!  They are horrible PC's, you know, Mac's mortal enemy? Why does this guy think that Mac can't make an EXCELLENT netbook?  He doesn't even seem willing to try.  I just got my netbook today - an Asus PC - and as expected it's slow as a turtle and basically crap, but it's my only option as far as having a netbook because this clown thinks they're goofy.  The reason I bought a netbook (used on Ebay, $122) is because I'm afraid of carrying my $2000 Mac around a big city that's known for stealing bags that even look like they MIGHT contain a laptop. And for a stinky PC, $122 is more than I'm willing to spend.  But if Mac made a netbook, I'd be first in line to buy it and it would be small enough to carry around without worrying. Apple needs to get with the program, I just saw on the news 5 minutes ago that the number one item in demand this Black Friday is...duh, a netbook!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-11-25_18:04:03", "killed": false, "user_key": "349aa1b28fcadb834c08a9a7636ce70d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "5 days ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8621628": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"what a piece of junk.\"<br><br>The Acer Aspire One that I use as a server running Windows XP runs solidly. The only reboots have been in the middle of the night on \"Patch Tuesday\". It is not a piece of junk.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_17:57:57", "killed": false, "user_key": "FritzS", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 8589104, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "8614078": {"up_voted": false, "ip": "", "has_replies": false, "message": "You, sir, have made the best comment yet.<br><br>\"I just use it for what I bought it for.\"<br><br>Most of the individuals commenting in here - like \"Keoz\" - seem to think that their idea of \"good\" is the only one.<br><br>It's a breath of fresh air to see someone who understands the concept of task-oriented tangibles; buy the right tool for the right job.  It's why I develop in both PHP and ASP, both C# and Java, and why I run both Linux and Windows.  Sometimes, the right tool for one job isn't the right tool for another job.<br><br>Netbooks have their place - as the market has already stated, quite clearly.  Asus is making a sufficient profit to warrant releasing additional models within that space.    The netbook may at some point take over for the Notebook, just as the notebook may at some point take over for the desktop...  or.. it may not.  Either way.. who cares? Buy the tool you need to get the job done.<br><br>Cheers to you, Darren. Thanks for being a voice of reason in a crowd all spewing bullshit. ;)", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_13:58:28", "killed": false, "user_key": "1b90a6cd52061bf30fe9135dd9bc5879", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 8602290, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "8601664": {"up_voted": false, "ip": "", "has_replies": true, "message": "So instead of accepting that they are LOOSERS and  have no chance against Microsoft, they say that every Notebook is a crap, and from that, I can come to the conclusion that every one that uses a notebook is a fool. Thanks Apple. <br><br>No Wonder, after 25 years, we see  every time a reborned MAC, and no wonder, it is allways the best OS and the Best Company. Instead, it is te biggest shit OS. And no wonder that after 25 fivce years, it has only 5% of share.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_05:43:55", "killed": false, "user_key": "4f64c9f81bb0d4ee969aaf7b4a5a6f40", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 2, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8610898": {"up_voted": false, "ip": "", "has_replies": true, "message": "Apple speaks with the authority of a company that understands user interfaces and usability better than anyone on the planet, one only has to look at the cellphone industry and the rut they were in before Apple changed the game. Their main observation then as well, was: cramped user input, lousy screen resolution, underpowered, OS nonexistent or poorly implemented, no ecosystem (J2ME was and still is a joke). I could also mention the sad state of the MP3 player industry before their entrance.<br><br>So this doesn't mean they won't come up with a competing product, in fact they may well blow the doors off the current fledgling market with a compelling user interface and usability...they are just holding their fire.<br><br>As to a skinny, color Newton, I fail to understand where you would keep such a device, no matter how sexy. In giant pant pockets? Overcoat pockets? Briefcase? What happens when it rings?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_12:17:41", "killed": false, "user_key": "0b69520a4bfa728861f61de1c5dbeba6", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8595141": {"up_voted": false, "ip": "", "has_replies": true, "message": "I'm not seeing a practical use for a netbook. It's still way too big to fit in you pocket, and if you're carrying a bag anyway, why not stick an Air, or in my case, a Pro, in there? For me, buying a netbook for my work would be like buying a Honda Civic to go off-roading. Just not a good idea.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-22_23:32:50", "killed": false, "user_key": "df395b21cf3126cf309e11a02348b0bf", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 4, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8598241": {"up_voted": false, "ip": "", "has_replies": false, "message": "@Christopher: <br><br>It's simple: The AIR is simply too expensive for most people.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_00:55:44", "killed": false, "user_key": "c04d39c2adaa2a0c8035357013e42086", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8612300": {"up_voted": false, "ip": "", "has_replies": false, "message": "yeah people who does not do other thing but reading mail and \"browsing\" (what do you browse little lightweight \"pages\"?)  well these people area really out of sync with how the world is changing, computers are becoming the more and more the common denominator of every thing using netbooks instead of empowered computers means go back to stone age, i dont think people just reading mail and browsing is very productive in this world", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_13:03:03", "killed": false, "user_key": "d08a0f36a911e72720bf73f98613d188", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 8601273, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "8589516": {"up_voted": false, "ip": "", "has_replies": false, "message": "Netbooks are popular because of portability and price.  No, they're not high powered machines.  Their purpose is for basic computing.  However, since Apple makes quality hardware, they are missing out on a big market segment.  There are plenty of Apple fans that would love to have an Apple netbook that fits into a small bag or purse.  Otherwise people wouldn't go out of their way to hackintosh netbooks.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-22_19:34:20", "killed": false, "user_key": "39fc818efbcd83356123ed8bb61994f4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8634189": {"up_voted": false, "ip": "", "has_replies": false, "message": "Keoz, mate, all I've read from you is pure verbal diarrhoea.  As both Darren and Daryl have said \"just use it for what you bought it for\".  THAT'S PERFECT!!!<br><br>You believe that people reading emails and web-browsing are still in the \"stone age\", then both you and I and everybody else who has entered in a comment must be cave-men, since we're all currently web-browsing.  Whether we're using $4,000 Mac Book/laptop or $300 netbook, we're still all browsing.<br><br>From all the comments that you've entered, it appears you're the type of person who will buy a Ferrari for inner-city driving.  WHAT A JOKE!!!!  As Daryl stated, buy the right tool for the right job.  An over-powered 22\" laptop may not suit a business man that is constantly travelling (interstate or overseas) and only requires to perform simple tasks such as emailing, web-browsing, contact management, document proposal writing, etc.<br>Peter Webb is be a good example.  He bought the right tool for his purpose.  He uses the netbook mainly as a \"workstation\" (for lack of a better work) to remote into dedicated machines to perform tasks.  You replied to his comment stating \"...where do you do that you need a good broadband connection...\"  Have you heard of wireless internet or are you still in the \"stone age\"?<br>Friends of mine are currently back-packing overseas and they managed to purchase a netbook for about $250.  It's PERFECT for them.  All they use it for is emailing, web-browsing, Facebook and to Skype to their friends and family back home (in Australia).  If they loose the netbook, it wouldn't set them back as much as if they lost a $2,500 Laptop.  Also, with the amount and size of bags they have, it is much easier for them to pack a 11\" netbook rather than a 21\" Laptop.  You keep on talking about \"the real world\".  Well, if you spend time with real people rather than computers all day then you'd realise people such as Peter Webb, Darren, Daryl, Andrew and others commenting here ARE real people with REAL views.<br><br>Personally I'm not a huge fan of netbooks, but I agree with Peter Webb, Darren and Daryl.  Buy the right tool for the right purpose whether that is for document writing, remote access, emailing, web-browsing, etc.  That doesn't necessarily mean that you're \"...deacelerating the hardware technology...\"  you're simply not paying for excessive hardware that you wouldn't use.<br>For example, would you use a helicopter just to go 2 minutes down the street to shop for groceries?  You would probably say yes... the technology is newer, the hardware is more durable and it's 10 times as fast.  Mate, that's a bit of a joke isn't it?!?<br><br>Andrew has a very good point.  It seems that Apple's business model is to ensure high-end technology at a price, hence them having a hard time trying to fathom the concept of selling a netbook style of device for $300.  Perhaps in the near future they may introduce a device that is under $1000 to compete in this unique market space.<br>Time will tell.<br><br>Thanks.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_21:12:27", "killed": false, "user_key": "4db63fad375896063d2d8c85ca43a0b8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 8612655, "depth": 2, "points": 0, "author_is_creator": false, "is_realtime": false}, "8591054": {"up_voted": false, "ip": "", "has_replies": false, "message": "Apple you dont need to make a netbook - just make something *portable* (think vaio TZ). Doesnt have to be cheap - just small (air is 13\", thats huge).", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-22_20:31:09", "killed": false, "user_key": "8c8e8faf58ce805ffe4a4204a7a36f74", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8601040": {"up_voted": false, "ip": "", "has_replies": false, "message": "Why all the fuss just because Apple has said they won't make something.<br>Apple doesn\u2019t know how to make good printers, doesn\u2019t know how to make good document management systems, doesn\u2019t know how to make many products other companies make successfully.<br><br>It's very easy to say \"we don't make netbooks because they suck\", that's just flippant and shows a disregard for anything not branded Apple, rather childish really.<br>I think you will find that netbooks are just one of those products that Apple would struggle with. Netbooks are all about form over function, often bought by companies with strict budgets and buying guidelines so it\u2019s not as easy to sell the same product as everyone else for more money on the grounds that it looks prettier.<br><br>Apple needs to either come up with something different, find a new niche it can still charge top money for a novelty product for or continue to focus on non professional markets. It\u2019s a bit like the iPhone, a very pretty phone which I love, great for home use but it\u2019s no Blackberry for commercial use.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_04:38:21", "killed": false, "user_key": "1090dcfab3361ae020731e77d89ced28", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8769105": {"up_voted": false, "ip": "", "has_replies": false, "message": "Damn, are you a chatbot, Keoz???<br>Your comments are like from a poorly made (Visual Studio+Visual Basic?) AI.  So previsible, with so limited knowledge base...", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-04-28_05:57:02", "killed": false, "user_key": "e25e1ded7a4b7d3e0b53331f3bc3efb7", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 8612342, "depth": 2, "points": 0, "author_is_creator": false, "is_realtime": false}, "8616146": {"up_voted": false, "ip": "", "has_replies": true, "message": "Sounds to me like Visual Studio is the problem here, not the netbook.<br><br>You shouldn't *need* a 22 inch screen to make software.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_15:06:30", "killed": false, "user_key": "facebook-691270740", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 2, "is_first_child": false, "email": "", "parent_post_id": 8611600, "depth": 3, "points": 0, "author_is_creator": false, "is_realtime": false}, "24423010": {"up_voted": false, "ip": "", "has_replies": false, "message": "But maybe Apple has something else up their sleeves like a MacBook Touch. And while you're at it, why not build all that iPhone functionality right in to it making it the first on the go Cellular Laptop bringing the world of mobile communications and computing together.<br>I agree with that.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-12-01_05:10:29", "killed": false, "user_key": "d57ed6df6a0d6913b638e031526144a9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 hours ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8597717": {"up_voted": false, "ip": "", "has_replies": false, "message": "Oh, believe me, I'd be using Ubuntu if the interface was a bit more likeable. IMHO, it's counterintuitive.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_00:21:19", "killed": false, "user_key": "df395b21cf3126cf309e11a02348b0bf", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 8595233, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "8617559": {"up_voted": false, "ip": "", "has_replies": false, "message": "\u0414\u0430 \u043d\u0438\u0445\u0440\u0435\u043d\u0430! \u041d\u0435\u0442\u0431\u0443\u043a\u0438 \u0442\u043e\u0436\u0435 \u043a\u043b\u0430\u0441\u0441\u043d\u0430\u044f \u0432\u0435\u0449\u044c! \u0422\u0430\u043a-\u0442\u043e", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_15:54:02", "killed": false, "user_key": "4790d312a04edaba97cb5002b3efcce2", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8611932": {"up_voted": false, "ip": "", "has_replies": true, "message": "How hard is it to understand? Netbooks are cheap and cheerful. They get the job of browsing done, and little else. They fill a niche of people who don't want to do any more than that and just want something for $300.<br><br>What Apple are saying is you can't produce a machine for $300 without it being cheaply made and poorly spec'd. This is not the business model for any of Apple's other products. So why should they compromise now? Starbucks could sell you a coffee for $0.50 but it would taste like crap - you know it, they know it. So why expect them to?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_12:50:48", "killed": false, "user_key": "8daac3593690c3211e0303bb6c3f082d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 2, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8707258": {"up_voted": false, "ip": "", "has_replies": false, "message": "why bother with a netbook at all, Apple practically created this small laptop  craze with the air, the cd drive less wireless connectivity. If you want an apple netbook, the air is the closest you are going to get. <br><br>Also, if new macbook's are too expencive, you can always get a powerbook g3, ibook g3 or god forbid a clamshell ibook (the blue/orange ones) off ebay for like 60\u00a3 ish", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-26_14:43:26", "killed": false, "user_key": "87d30edb4183a4c3c371e349316020d8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8611808": {"up_voted": false, "ip": "", "has_replies": false, "message": "Actually what's the market share of netbooks? i dont think netbooks will be the market trend in the next years, basic computing is somenthing very few people need these days, almost everyone who has a netbook have a pc because they cant do everything with a netbook", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_12:47:05", "killed": false, "user_key": "d08a0f36a911e72720bf73f98613d188", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 8594609, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "8614113": {"up_voted": false, "ip": "", "has_replies": false, "message": "And... assuming I could possibly understand what you just said... the main factor for buying a netbook isnt the weight... its the price and functionality you get with that price... The size is simply a plus", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_13:59:38", "killed": false, "user_key": "100d07328ea8ab9b26fba49e28027d86", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 8611943, "depth": 2, "points": 0, "author_is_creator": false, "is_realtime": false}, "8616546": {"up_voted": false, "ip": "", "has_replies": true, "message": "Spoken like someone who's never had to deal with legacy code.<br><br>Welcome to the real world. We shouldn't *need* to do quite a lot, but reality has its way and so we must.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_15:21:18", "killed": false, "user_key": "89cf89acfe773cb6c768d4f51fdf1618", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": 8616146, "depth": 4, "points": 0, "author_is_creator": false, "is_realtime": false}, "8769043": {"up_voted": false, "ip": "", "has_replies": false, "message": "ha ha ha, I'm wondering about Keoz's age too. He should not have a wide developer experience. Apparently, he thinks development = Windows+MSVS on a computer at home. With Visual Basic, or maybe C# I guess :-)<br><br>Your world is quite narrow, Keoz!<br><br>Anyway if he thinks he's unable to code without a truck full of displays, quad-core computers, but with minimal environment, he'll be in trouble in his future developer's life...<br>Sure I prefer my dual-head workstation in my office, but I'd be happy to have a netbook always ready in my suitecase  not to have to think about taking my bulky notebook's bag with me each time I have to go debugging by customers.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-04-28_05:50:07", "killed": false, "user_key": "e25e1ded7a4b7d3e0b53331f3bc3efb7", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 8643386, "depth": 3, "points": 0, "author_is_creator": false, "is_realtime": false}, "8632564": {"up_voted": false, "ip": "", "has_replies": false, "message": "while it does seem to be a trend for Apple (Steve Jobs) to dismiss a product line or technology only to release it months later, it doesn't seem like Apple to follow the pack and release a netbook after so many other companies have already gotten into them (not unless they become a defacto standard, like laptops are now) however, I would need a product about twice as large as the iPod Touch to consider it usable on a daily basis. I have considered getting one as a hand held gaming device (its the only hand held \"gaming device \" thats caught my interest) but thats a lot to pay for a toy that I wouldn't have time to play that often... so it would be more of a party piece. I think as Mac tablet could be viable, they would probably actually make one that was usable which is more than I can say for all the ones I've tried.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_20:17:30", "killed": false, "user_key": "93f7849c796ea4d5983358f4457b7c69", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8611943": {"up_voted": false, "ip": "", "has_replies": true, "message": "I agree what you do need to carry a netbook LOL a big bag indeed for ladys or a medium back pack for men i dont thinks thats protable and don't tell me you carry it in your pocket! haha, if i carry a backpack well i will carry a medium sized notebook that does not weight too much, i think with these comments that the main factor for buying a netbook is the weight! we are becoming lazy people! omg", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_12:51:25", "killed": false, "user_key": "d08a0f36a911e72720bf73f98613d188", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 2, "is_first_child": false, "email": "", "parent_post_id": 8595141, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "8601832": {"up_voted": false, "ip": "", "has_replies": true, "message": "Netbooks are not basic computers.<br><br>Netbooks are designed for two things. Firstly, for casual web browsing. Secondly and most importantly, for running remote desktop connections such as RDC/VPN and Citrix, where they just act as a remote screen and keyboard. I can sit in an airport departure lounge and run Visual Studio on my home computer in one window and run database extracts on work machine in another. <br><br>I haven't even installed any programs on my netbook, if I want to use Word I just use it to hop onto a box with Word.<br><br>Bloody brilliant idea.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_06:04:32", "killed": false, "user_key": "b284d98f3b643e6da525bd68cac9b215", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8620777": {"up_voted": false, "ip": "", "has_replies": false, "message": "Cramped keyboard? Tiny screen? Who cares! I was asked to set up a web and mail server for our consulting group. Using an Acer netbook and open source software I spent $300 and got a server that handles 10,000 hits and a couple hundred e-mails a day, has 5 hour battery backup,  and only draws 12 watts of power. Let's hear it for the Intel Atom processor, only available in netbooks.<br><br>Remember that Java was first thought to be only for applets, but came into its own with servlets. I see netbooks moving the same way: from client to server.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_17:29:07", "killed": false, "user_key": "FritzS", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8594923": {"up_voted": false, "ip": "", "has_replies": false, "message": "I already have a Mac netbook.  It's called the Dell Mini 9 and, personally, I'm glad Apple isn't making one because this thing cost me about 1/4 of what they would charge.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-22_23:21:45", "killed": false, "user_key": "d4e5c1152a5e3d024d325bd638b27833", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8694976": {"up_voted": false, "ip": "", "has_replies": false, "message": "This is very sad. We have all of desktop PCs, a netbook and an Apple iMac (lovely machine and OS).  Apple has quite obviously lost the plot if this is what the top brass are thinking -- remember a fish rots from the head!<br><br>Apple should do a survey of what ordinary people are doing with netbooks.  Apple are missing a huge opportunity here. End of story. iPHones and iPods may be doing well; but Macbooks are not doing well relative to ALL the PC laptops and netbooks combined.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-25_21:53:16", "killed": false, "user_key": "78021f405fd86cb044c53ffb6ca96bea", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8612050": {"up_voted": false, "ip": "", "has_replies": true, "message": "Another one who thinks is a real world developer haha thank god there are too many of these developers whose software is written with a notepad so they cant compete with the rest of us", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_12:54:55", "killed": false, "user_key": "d08a0f36a911e72720bf73f98613d188", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 2, "is_first_child": false, "email": "", "parent_post_id": 8595233, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "8602994": {"up_voted": false, "ip": "", "has_replies": false, "message": "\u201ca portable device that is smaller than its current laptop computers but bigger than the iPhone or iPod Touch.\u201d - that would be the Newton, no?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_07:49:48", "killed": false, "user_key": "4117f2b3bd5320fa5d6bd6a37f42933d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8593395": {"up_voted": false, "ip": "", "has_replies": false, "message": "This is so stupid. My Asus 1000 He rocks, with the 280 atom. Sure, I am not going to be playing 3d games on it, but it fits just my needs and certainly does not suck", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-22_22:08:54", "killed": false, "user_key": "709650cab7748e7de9730f133d3ff697", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8592116": {"up_voted": false, "ip": "", "has_replies": false, "message": "I think  there is a market for the devices that isn't covered by an iPhone or Touch. They aren't all cheap in terms of quality either. I suspect they will create a device but may be waiting to see what develops with Android on these devices.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-22_21:12:27", "killed": false, "user_key": "ffc5fa9ae07f03722e93283719aab869", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8630087": {"up_voted": false, "ip": "", "has_replies": false, "message": "If everything reduces to price, then why are there so many MacBook owners? Of course price is important, but let's not get carried away here.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_18:57:49", "killed": false, "user_key": "anthonyha", "has_been_anonymized": false, "edited": false, "author_is_moderator": true, "from_request_user": false, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 8609677, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "8612342": {"up_voted": false, "ip": "", "has_replies": true, "message": "LOL yeah \"netbook users are loosers\" haha happy \"only browsing and emailing\"", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_13:04:29", "killed": false, "user_key": "d08a0f36a911e72720bf73f98613d188", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 1, "is_first_child": true, "email": "", "parent_post_id": 8601664, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "8612562": {"up_voted": false, "ip": "", "has_replies": false, "message": "Exactly people dont know about user experience they are lack of IT culture, they just want to see a 90's user experience on their netbooks that is what sucks with netbooks too", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_13:10:51", "killed": false, "user_key": "d08a0f36a911e72720bf73f98613d188", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 8610898, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "8600187": {"up_voted": false, "ip": "", "has_replies": true, "message": "According to Apple the market is buying products that suck.<br>Products that are in demand and suck don't last long.<br>Netbooks are now in demand since more than one year. Thus probably they don't suck.<br><br>Maybe Product Management at Apple sucks as they made a big mistake?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_03:17:43", "killed": false, "user_key": "0db98812ba49c3aaa71b585930520966", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8601980": {"up_voted": false, "ip": "", "has_replies": true, "message": "Tim Cook didn't say netbooks have 'cracked keyboards', he said netbooks tend to have *cramped* keyboards. This is true, most netbooks do not have full-size keyboards.<br><br>Furthermore, netbooks do have very small screens. If a notebook has a 13\" screen, it's not a netbook. One can even say that netbooks have junky hardware compared to full-featured notebooks; for example, an Atom-processor isn't as fast as a Core 2 Duo processor.<br><br>'Terrible software' is subjective of course, but it's clear that most netbooks don't run Vista or OS X Leopard well. Netbooks also don't come with the full suite of high-quality lifestyle and productivity software that Apple ships with their notebooks.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_06:21:39", "killed": false, "user_key": "41ceab1eab2c6e9ac7c6a4f0b9925af1", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8618109": {"up_voted": false, "ip": "", "has_replies": false, "message": "I think the problem is Keoz assumes that everyone programs in Visual Studio to be a real world developer, which is a silly and narrow view of the real world of development.  The best answer is that it depends...  I certainly like huge monitors (not laptops at all) for some development and in other cases I simply need vim/emacs/text-only-editor-of-your-choice.<br><br>so... it depends.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_16:10:34", "killed": false, "user_key": "1f76b2098efe2491d19ba6710507f6b6", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 8616546, "depth": 5, "points": 0, "author_is_creator": false, "is_realtime": false}, "8614015": {"up_voted": false, "ip": "", "has_replies": false, "message": "Uhhhh.... What?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-23_13:56:14", "killed": false, "user_key": "100d07328ea8ab9b26fba49e28027d86", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 8611943, "depth": 2, "points": 0, "author_is_creator": false, "is_realtime": false}}, "integration": {"receiver_url": "", "theme": 4, "reply_position": true, "disqus_logo": true}, "timer": {"timer_url": "http://localhost:8005", "thread_id": "16433636", "user_id": "anonymous", "forum_id": "7041", "hash": -8966660337588187689}, "thread": {"days_alive": 0, "slug": "apple8217s_tim_cook_why_don8217t_we_make_netbooks_because_they_suck", "paginate": false, "num_pages": 1, "num_posts": 66, "per_page": 0, "total_posts": 0, "realtime_paused": false, "id": 16433636, "queued": false}, "reactions_limit": 10, "context": {"show_reply": true, "use_fb_connect": true, "forum_facebook_key": "547225e2dda46ccfdec279a9a44a0074", "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: ";
};
// 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 = '4f0bfca82e06c976a1efdd7c783a5fd0';
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=venturebeat' +
		'&t=apple8217s_tim_cook_why_don8217t_we_make_netbooks_because_they_suck' +
		'&ff=' + Dsq.Thread.ff +
		'&default_text=' + 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://disqus.com/forums/venturebeat/apple8217s_tim_cook_why_don8217t_we_make_netbooks_because_they_suck/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>';
		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>'))
							+ ' <a href="' + Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE + '">' + Dsq.jsonData.request.display_username + '</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"> \
				<form action="." method="GET" onsubmit="Dsq.Templates.postComment(' + post_id + ', this, false); return false;"> \
				<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">Subscribe to all comments by email</a></li> \
									<li><a href="#" onclick="Dsq.Templates.setSubscribe(0, this, ' + post_id + '); return false">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> \
				</form> \
			</div>'
			: '')
			+ '<div class="dsq-post-footer"> \
				<div class="dsq-sharing-options" ' + (!display_sharing_options ? 'style="display:none;"' : '') + '> \
					<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 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 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 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 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 class="dsq-button-small">' + Dsq.Strings.REPLY + '</button> \
						<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 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 ' + (reaction.source == 'backtype' ? '<a href="http://backtype.com/">BackType</a>' : '<a href="' + reaction.source_url + '">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 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 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 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 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 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 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 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="" /> 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 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/venturebeat/thread.js'
			+ '?slug='	+ 'apple8217s_tim_cook_why_don8217t_we_make_netbooks_because_they_suck'
			+ '&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/venturebeat/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://disqus.com/forums/venturebeat/apple8217s_tim_cook_why_don8217t_we_make_netbooks_because_they_suck/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 {
			return parseInt(chunks[chunks.length-1]);
		}
	};

	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 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/venturebeat/_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">66</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://disqus.com/forums/venturebeat/apple8217s_tim_cook_why_don8217t_we_make_netbooks_because_they_suck/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://disqus.com/forums/venturebeat/apple8217s_tim_cook_why_don8217t_we_make_netbooks_because_they_suck/">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">\
	 </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 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 = [
			
			
			{
				'author_name':	'Amazons neuer Kindle \x2D bald auch Apple eBook Reader?',
				'author_url':	'http://www.early\x2Dadopter.info/2009/05/amazons\x2Dneuer\x2Dkindle\x2Dbald\x2Dauch\x2Dapple\x2Debook\x2Dreader/',
				'date':			'7 months ago',
				'excerpt':		'\x0A\x0AIn den USA läuft das Geschäft mit den eBook Readern sehr gut. Sogar so gut, dass Amazons kühnste Erwartungen der Kindle\x2DVerkaufszahlen übertroffen wurden und bereits in dieser Woche ein weiterer Kindle mit deutlich größerem Display vorgestellt ...'
			},
			
			];
			var trackback_url = 'http://disqus.com/forums/venturebeat/apple8217s_tim_cook_why_don8217t_we_make_netbooks_because_they_suck/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 ' + (reaction.source == 'backtype' ? '<a href="http://backtype.com/">BackType</a>' : '<a href="' + reaction.source_url + '">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 '';
	};

	//
	// 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 VentureBeat" 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:16433636" 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'				: 'venturebeat',
			't'				: 'apple8217s_tim_cook_why_don8217t_we_make_netbooks_because_they_suck',
			// 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/venturebeat/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/venturebeat/apple8217s_tim_cook_why_don8217t_we_make_netbooks_because_they_suck/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 onclick="Dsq.Popup._closePopup(null, true)"><strong>' + Dsq.Strings.NO + '</strong>, ' + Dsq.Strings.NEVER_MIND + '</button>&nbsp;&nbsp;&nbsp;<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/venturebeat/thread.js'
			+ '?slug='	+ 'apple8217s_tim_cook_why_don8217t_we_make_netbooks_because_they_suck'
			+ '&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/venturebeat/thread.js'
			+ '?slug='	+ 'apple8217s_tim_cook_why_don8217t_we_make_netbooks_because_they_suck'
			+ '&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/venturebeat/subscribe.js'
				+'?status=' 	+ status
				+ '&slug='		+ 'apple8217s_tim_cook_why_don8217t_we_make_netbooks_because_they_suck'
				+ '&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 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 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.updateDaysAlive = function() {
		var days = Dsq.$('dsq-thread-days-alive').value;
		var status = Dsq.$('dsq-thread-settings-status');
		Dsq.Utils.postToUrl('http://disqus.com/forums/venturebeat/update_days_alive.js', {days:days,thread:Dsq.jsonData.thread.id});
		status.innerHTML = 'Saved!';
		window.setTimeout(function() { status.innerHTML = ''; }, 1000);
	};
};
// 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/16433636/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/venturebeat/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/venturebeat/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-8589104">\
	 <div id="dsq-comment-header-8589104" class="dsq-comment-header">\
	 <cite id="dsq-cite-8589104" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8589104">Jeff</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8589104" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8589104" class="dsq-comment-message">It\'s about time, I\'m so sick of hearing about these miniature netbooks. I had one of those tiny vaios a few years back, what a piece of junk.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8591110">\
	 <div id="dsq-comment-header-8591110" class="dsq-comment-header">\
	 <cite id="dsq-cite-8591110" class="dsq-comment-cite">\
	 <a id="dsq-author-user-8591110" href="http://www.tweetieandthebrain.com" target="_blank" rel="nofollow">Nick D</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8591110" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8591110" class="dsq-comment-message">im writing this on a carbon fibre TZ.<br><br>awesome lightweight notebook. Im a software developer & its my only computer. 8 hour battery life, lighter than the air, 11" screen ultraportable, great keyboard, LCD backlit screen (years before apple), dvd writer, dual core - its great.<br><br>dont know which you had - but either you\'re wrong or it was a different model.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8595091">\
	 <div id="dsq-comment-header-8595091" class="dsq-comment-header">\
	 <cite id="dsq-cite-8595091" class="dsq-comment-cite">\
	 <a id="dsq-author-user-8595091" href="http://chrisodonnell.name" target="_blank" rel="nofollow">Christopher Francis O&#39;Donnell</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8595091" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8595091" class="dsq-comment-message">You mean LED backlit, I think.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8611600">\
	 <div id="dsq-comment-header-8611600" class="dsq-comment-header">\
	 <cite id="dsq-cite-8611600" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8611600">Keoz</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8611600" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8611600" class="dsq-comment-message">OMFG a developer with a netbook? you cant be serius! i could not imagine programming in visual studio with that crap of screen i need at least 22" and well that crap of memory i dont think is for a real world developer no offense</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8616146">\
	 <div id="dsq-comment-header-8616146" class="dsq-comment-header">\
	 <cite id="dsq-cite-8616146" class="dsq-comment-cite">\
	 <a id="dsq-author-user-8616146" href="http://www.facebook.com/people/Jeffrey-McManus/691270740" target="_blank" rel="nofollow">Jeffrey McManus</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8616146" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8616146" class="dsq-comment-message">Sounds to me like Visual Studio is the problem here, not the netbook.<br><br>You shouldn\'t *need* a 22 inch screen to make software.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8616546">\
	 <div id="dsq-comment-header-8616546" class="dsq-comment-header">\
	 <cite id="dsq-cite-8616546" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8616546">SimBob</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8616546" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8616546" class="dsq-comment-message">Spoken like someone who\'s never had to deal with legacy code.<br><br>Welcome to the real world. We shouldn\'t *need* to do quite a lot, but reality has its way and so we must.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8618109">\
	 <div id="dsq-comment-header-8618109" class="dsq-comment-header">\
	 <cite id="dsq-cite-8618109" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8618109">luke</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8618109" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8618109" class="dsq-comment-message">I think the problem is Keoz assumes that everyone programs in Visual Studio to be a real world developer, which is a silly and narrow view of the real world of development.  The best answer is that it depends...  I certainly like huge monitors (not laptops at all) for some development and in other cases I simply need vim/emacs/text-only-editor-of-your-choice.<br><br>so... it depends.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8767531">\
	 <div id="dsq-comment-header-8767531" class="dsq-comment-header">\
	 <cite id="dsq-cite-8767531" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8767531">evoisard</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8767531" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8767531" class="dsq-comment-message">Why the heck software development would imply MS Visual Studio? If you\'re in real world, as you say, you might well have to be in the field doing some modifications on the fly in your code in a production system, with a simple editor and a couple of shell windows. Of course you might no be programming for MS Windows environment...<br><br>Sure a netbook would be very minimal, but it would allow you to do your work whilst an iPhone would be unusable for that. I\'ll buy one, one of these days...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8621628">\
	 <div id="dsq-comment-header-8621628" class="dsq-comment-header">\
	 <cite id="dsq-cite-8621628" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8621628">FritzS</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8621628" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8621628" class="dsq-comment-message">"what a piece of junk."<br><br>The Acer Aspire One that I use as a server running Windows XP runs solidly. The only reboots have been in the middle of the night on "Patch Tuesday". It is not a piece of junk.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-20673306">\
	 <div id="dsq-comment-header-20673306" class="dsq-comment-header">\
	 <cite id="dsq-cite-20673306" class="dsq-comment-cite">\
	 <span id="dsq-author-user-20673306">Rayek</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-20673306" class="dsq-comment-body">\
	 <div id="dsq-comment-message-20673306" class="dsq-comment-message">That\'s really what it comes down to.  Netbooks are cheap primarily because they are made with cheaper components than workhorse laptops, not because they are smaller or anything else.  Making things cheaply or half-assed isn\'t Apple\'s thing, so they don\'t make netbooks.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8589516">\
	 <div id="dsq-comment-header-8589516" class="dsq-comment-header">\
	 <cite id="dsq-cite-8589516" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8589516">Scott</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8589516" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8589516" class="dsq-comment-message">Netbooks are popular because of portability and price.  No, they\'re not high powered machines.  Their purpose is for basic computing.  However, since Apple makes quality hardware, they are missing out on a big market segment.  There are plenty of Apple fans that would love to have an Apple netbook that fits into a small bag or purse.  Otherwise people wouldn\'t go out of their way to hackintosh netbooks.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8591054">\
	 <div id="dsq-comment-header-8591054" class="dsq-comment-header">\
	 <cite id="dsq-cite-8591054" class="dsq-comment-cite">\
	 <a id="dsq-author-user-8591054" href="http://www.tweetieandthebrain.com" target="_blank" rel="nofollow">Nick D</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8591054" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8591054" class="dsq-comment-message">Apple you dont need to make a netbook - just make something *portable* (think vaio TZ). Doesnt have to be cheap - just small (air is 13", thats huge).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8592116">\
	 <div id="dsq-comment-header-8592116" class="dsq-comment-header">\
	 <cite id="dsq-cite-8592116" class="dsq-comment-cite">\
	 <a id="dsq-author-user-8592116" href="http://www.timeatlas.com" target="_blank" rel="nofollow">Anne H</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8592116" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8592116" class="dsq-comment-message">I think  there is a market for the devices that isn\'t covered by an iPhone or Touch. They aren\'t all cheap in terms of quality either. I suspect they will create a device but may be waiting to see what develops with Android on these devices.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8593395">\
	 <div id="dsq-comment-header-8593395" class="dsq-comment-header">\
	 <cite id="dsq-cite-8593395" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8593395">sdfasdf</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8593395" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8593395" class="dsq-comment-message">This is so stupid. My Asus 1000 He rocks, with the 280 atom. Sure, I am not going to be playing 3d games on it, but it fits just my needs and certainly does not suck</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8594609">\
	 <div id="dsq-comment-header-8594609" class="dsq-comment-header">\
	 <cite id="dsq-cite-8594609" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8594609">Tom</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8594609" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8594609" class="dsq-comment-message">Quite frankly, I\'m glad that Apple is ignoring -- nay, insulting -- the netbook market. Because it\'s going to leave the field wide open for other manufacturers and Microsoft to eat Apple\'s lunch. Netbooks don\'t suck. Apple simply doesn\'t understand that the market trend has moved away from high-powered premium laptops to small, portable, near-disposable computers.  This isn\'t the Apple business model, so of course they\'re going to react negatively. But it\'s like criticizing gravity. Or the speed of light. Netbooks are happening NOW -- and the fact that Apple is responding at all to criticism for lack of a product in that space indicates that they care. Even though they won\'t admit it. Let\'s see how they do next quarter.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8611808">\
	 <div id="dsq-comment-header-8611808" class="dsq-comment-header">\
	 <cite id="dsq-cite-8611808" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8611808">Keoz</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8611808" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8611808" class="dsq-comment-message">Actually what\'s the market share of netbooks? i dont think netbooks will be the market trend in the next years, basic computing is somenthing very few people need these days, almost everyone who has a netbook have a pc because they cant do everything with a netbook</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8594923">\
	 <div id="dsq-comment-header-8594923" class="dsq-comment-header">\
	 <cite id="dsq-cite-8594923" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8594923">Colonel Mac</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8594923" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8594923" class="dsq-comment-message">I already have a Mac netbook.  It\'s called the Dell Mini 9 and, personally, I\'m glad Apple isn\'t making one because this thing cost me about 1/4 of what they would charge.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8595141">\
	 <div id="dsq-comment-header-8595141" class="dsq-comment-header">\
	 <cite id="dsq-cite-8595141" class="dsq-comment-cite">\
	 <a id="dsq-author-user-8595141" href="http://chrisodonnell.name" target="_blank" rel="nofollow">Christopher Francis O&#39;Donnell</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8595141" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8595141" class="dsq-comment-message">I\'m not seeing a practical use for a netbook. It\'s still way too big to fit in you pocket, and if you\'re carrying a bag anyway, why not stick an Air, or in my case, a Pro, in there? For me, buying a netbook for my work would be like buying a Honda Civic to go off-roading. Just not a good idea.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8609801">\
	 <div id="dsq-comment-header-8609801" class="dsq-comment-header">\
	 <cite id="dsq-cite-8609801" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8609801">Chris</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8609801" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8609801" class="dsq-comment-message">Oh, maybe because you can get a very usable netbook for $300 or so, while the cheapest Air is $1,800?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8611943">\
	 <div id="dsq-comment-header-8611943" class="dsq-comment-header">\
	 <cite id="dsq-cite-8611943" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8611943">Keoz</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8611943" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8611943" class="dsq-comment-message">I agree what you do need to carry a netbook LOL a big bag indeed for ladys or a medium back pack for men i dont thinks thats protable and don\'t tell me you carry it in your pocket! haha, if i carry a backpack well i will carry a medium sized notebook that does not weight too much, i think with these comments that the main factor for buying a netbook is the weight! we are becoming lazy people! omg</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8614015">\
	 <div id="dsq-comment-header-8614015" class="dsq-comment-header">\
	 <cite id="dsq-cite-8614015" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8614015">Johnny</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8614015" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8614015" class="dsq-comment-message">Uhhhh.... What?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8614113">\
	 <div id="dsq-comment-header-8614113" class="dsq-comment-header">\
	 <cite id="dsq-cite-8614113" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8614113">Johnny</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8614113" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8614113" class="dsq-comment-message">And... assuming I could possibly understand what you just said... the main factor for buying a netbook isnt the weight... its the price and functionality you get with that price... The size is simply a plus</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8595233">\
	 <div id="dsq-comment-header-8595233" class="dsq-comment-header">\
	 <cite id="dsq-cite-8595233" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8595233">Sam Spade</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8595233" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8595233" class="dsq-comment-message">I\'m an Ubuntu Eee 901 user and I find this really funny. I\'m a developer and I write and compile about 90% of my code now on my netbook because it is portable, super small, and gets amazing battery life. Netbooks are far from underpowered and mine is amazingly well built. My 901 is built as solid as a tank while still remaining the smallest computer I have ever seen. I run Compiz with all the bells and whistles turned on and can even play games like Alice and Max Payne in Wine with no lag (I was curious how far I could push it). For 99% of the tasks I do daily, including work, my netbook suits me perfectly.<br><br>The only problem at the moment is the ridiculous software set-ups they ship with. The first thing I had to do when I got my 901 was strip out the crappy OS. It\'s only a matter of manufacturers figuring out how to configure their machines.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8597717">\
	 <div id="dsq-comment-header-8597717" class="dsq-comment-header">\
	 <cite id="dsq-cite-8597717" class="dsq-comment-cite">\
	 <a id="dsq-author-user-8597717" href="http://chrisodonnell.name" target="_blank" rel="nofollow">Christopher Francis O&#39;Donnell</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8597717" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8597717" class="dsq-comment-message">Oh, believe me, I\'d be using Ubuntu if the interface was a bit more likeable. IMHO, it\'s counterintuitive.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8612050">\
	 <div id="dsq-comment-header-8612050" class="dsq-comment-header">\
	 <cite id="dsq-cite-8612050" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8612050">Keoz</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8612050" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8612050" class="dsq-comment-message">Another one who thinks is a real world developer haha thank god there are too many of these developers whose software is written with a notepad so they cant compete with the rest of us</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8643386">\
	 <div id="dsq-comment-header-8643386" class="dsq-comment-header">\
	 <cite id="dsq-cite-8643386" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8643386">Philip</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8643386" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8643386" class="dsq-comment-message">You mean you downloaded a trial or illegal copy of Visual Studio and now think you\'re a real developer? I\'m sure your mum is very proud.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8769043">\
	 <div id="dsq-comment-header-8769043" class="dsq-comment-header">\
	 <cite id="dsq-cite-8769043" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8769043">evoisard</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8769043" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8769043" class="dsq-comment-message">ha ha ha, I\'m wondering about Keoz\'s age too. He should not have a wide developer experience. Apparently, he thinks development = Windows+MSVS on a computer at home. With Visual Basic, or maybe C# I guess :-)<br><br>Your world is quite narrow, Keoz!<br><br>Anyway if he thinks he\'s unable to code without a truck full of displays, quad-core computers, but with minimal environment, he\'ll be in trouble in his future developer\'s life...<br>Sure I prefer my dual-head workstation in my office, but I\'d be happy to have a netbook always ready in my suitecase  not to have to think about taking my bulky notebook\'s bag with me each time I have to go debugging by customers.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8595494">\
	 <div id="dsq-comment-header-8595494" class="dsq-comment-header">\
	 <cite id="dsq-cite-8595494" class="dsq-comment-cite">\
	 <a id="dsq-author-user-8595494" href="http://www.appledevelopmentcenter.com" target="_blank" rel="nofollow">Apple development center</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8595494" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8595494" class="dsq-comment-message">I would purchase an Apple netbook or tablet in an instant. I already have a macbook and an iPhone, but there are some times when I would choose to use the netbook over the other two devices.  I think with Apples experience with touch screens they could really create a new kind of premium netbook or tablet.  But I do agree with others in that it will likely cost much more than those netbooks that are currently available.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8598241">\
	 <div id="dsq-comment-header-8598241" class="dsq-comment-header">\
	 <cite id="dsq-cite-8598241" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8598241">Jimmy</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8598241" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8598241" class="dsq-comment-message">@Christopher: <br><br>It\'s simple: The AIR is simply too expensive for most people.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8600187">\
	 <div id="dsq-comment-header-8600187" class="dsq-comment-header">\
	 <cite id="dsq-cite-8600187" class="dsq-comment-cite">\
	 <a id="dsq-author-user-8600187" href="http://www.LEADSExplorer.com" target="_blank" rel="nofollow">Engago team</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8600187" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8600187" class="dsq-comment-message">According to Apple the market is buying products that suck.<br>Products that are in demand and suck don\'t last long.<br>Netbooks are now in demand since more than one year. Thus probably they don\'t suck.<br><br>Maybe Product Management at Apple sucks as they made a big mistake?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8612145">\
	 <div id="dsq-comment-header-8612145" class="dsq-comment-header">\
	 <cite id="dsq-cite-8612145" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8612145">Keoz</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8612145" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8612145" class="dsq-comment-message">I dont like macs i think they suck but they are in demand and they have won respect because of the good decisions and products they make, i respect more apple for this decision because the netbooks are only a rush in the heads of people its not gonna last for long, or at least netbooks will be a 1/6 or 1/8 of market share</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8601040">\
	 <div id="dsq-comment-header-8601040" class="dsq-comment-header">\
	 <cite id="dsq-cite-8601040" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8601040">Darren</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8601040" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8601040" class="dsq-comment-message">Why all the fuss just because Apple has said they won\'t make something.<br>Apple doesn’t know how to make good printers, doesn’t know how to make good document management systems, doesn’t know how to make many products other companies make successfully.<br><br>It\'s very easy to say "we don\'t make netbooks because they suck", that\'s just flippant and shows a disregard for anything not branded Apple, rather childish really.<br>I think you will find that netbooks are just one of those products that Apple would struggle with. Netbooks are all about form over function, often bought by companies with strict budgets and buying guidelines so it’s not as easy to sell the same product as everyone else for more money on the grounds that it looks prettier.<br><br>Apple needs to either come up with something different, find a new niche it can still charge top money for a novelty product for or continue to focus on non professional markets. It’s a bit like the iPhone, a very pretty phone which I love, great for home use but it’s no Blackberry for commercial use.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8601273">\
	 <div id="dsq-comment-header-8601273" class="dsq-comment-header">\
	 <cite id="dsq-cite-8601273" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8601273">Lemonade</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8601273" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8601273" class="dsq-comment-message">"cracked keyboards, terrible software, junky hardware, very small screens. It’s just not a good consumer experience"!!<br><br>This guy is talking out of his a*se! Take the Samsung NC10, a quality piece of kit that is selling like hotcakes. People buy and use netbooks because they mainly want access to the web and email. For this you do not need some ridiculous overbearing o/s like Vista. Linux or XP do the job just fine. For speculation sake if Apple made a netbook, what would they choose to run on it? Certainly not XP, not linux, that leaves them with....?<br><br>Let\'s face it, if it wasn\'t for the iPod & iPhone, Apple would be in deep sh*t right now, so slagging off small and portable devices is very contradictory. Anyway who cares if they don\'t want to make them, as somebody else suggested they would be way over priced.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8612300">\
	 <div id="dsq-comment-header-8612300" class="dsq-comment-header">\
	 <cite id="dsq-cite-8612300" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8612300">Keoz</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8612300" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8612300" class="dsq-comment-message">yeah people who does not do other thing but reading mail and "browsing" (what do you browse little lightweight "pages"?)  well these people area really out of sync with how the world is changing, computers are becoming the more and more the common denominator of every thing using netbooks instead of empowered computers means go back to stone age, i dont think people just reading mail and browsing is very productive in this world</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8601664">\
	 <div id="dsq-comment-header-8601664" class="dsq-comment-header">\
	 <cite id="dsq-cite-8601664" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8601664">Name</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8601664" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8601664" class="dsq-comment-message">So instead of accepting that they are LOOSERS and  have no chance against Microsoft, they say that every Notebook is a crap, and from that, I can come to the conclusion that every one that uses a notebook is a fool. Thanks Apple. <br><br>No Wonder, after 25 years, we see  every time a reborned MAC, and no wonder, it is allways the best OS and the Best Company. Instead, it is te biggest shit OS. And no wonder that after 25 fivce years, it has only 5% of share.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8612342">\
	 <div id="dsq-comment-header-8612342" class="dsq-comment-header">\
	 <cite id="dsq-cite-8612342" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8612342">Keoz</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8612342" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8612342" class="dsq-comment-message">LOL yeah "netbook users are loosers" haha happy "only browsing and emailing"</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8769105">\
	 <div id="dsq-comment-header-8769105" class="dsq-comment-header">\
	 <cite id="dsq-cite-8769105" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8769105">evoisard</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8769105" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8769105" class="dsq-comment-message">Damn, are you a chatbot, Keoz???<br>Your comments are like from a poorly made (Visual Studio+Visual Basic?) AI.  So previsible, with so limited knowledge base...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8601832">\
	 <div id="dsq-comment-header-8601832" class="dsq-comment-header">\
	 <cite id="dsq-cite-8601832" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8601832">Peter Webb</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8601832" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8601832" class="dsq-comment-message">Netbooks are not basic computers.<br><br>Netbooks are designed for two things. Firstly, for casual web browsing. Secondly and most importantly, for running remote desktop connections such as RDC/VPN and Citrix, where they just act as a remote screen and keyboard. I can sit in an airport departure lounge and run Visual Studio on my home computer in one window and run database extracts on work machine in another. <br><br>I haven\'t even installed any programs on my netbook, if I want to use Word I just use it to hop onto a box with Word.<br><br>Bloody brilliant idea.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8612432">\
	 <div id="dsq-comment-header-8612432" class="dsq-comment-header">\
	 <cite id="dsq-cite-8612432" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8612432">Keoz</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8612432" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8612432" class="dsq-comment-message">Really? where do you do that you need a good broadband connection to do that, the remote or cloud computing is not mature yet for that to be as a real good user experience, anyway the screen is too small for real world computing netbooks are not desinged for that use i think</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8601920">\
	 <div id="dsq-comment-header-8601920" class="dsq-comment-header">\
	 <cite id="dsq-cite-8601920" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8601920">MeanEYE</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8601920" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8601920" class="dsq-comment-message">We are the Borg. You will be assimilated. Resistance is futile...<br><br>LoL, who gives a f**k about Apple. All these Mac users just keep braging about what they  bought and how much they paid for it (like it matters). Do you people need ego boost or something? I just don\'t get it... if you like using Macs just USE them, don\'t go around and brag to everyone... you are being such a /b/.<br><br>About this article... well :D I see it this way... market is way to big for Apple or any other company to dominate alone. If they don\'t make netbooks someone else will. Consumers have demands and whoever satisfies those demands earns money. I don\'t think, except for those iMustBragAboutMyMac type of people, many care if it\'s a Mac or Asus or any other. If it is doing it\'s job and doesn\'t cost an arm and a leg... well who gives a damn.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8601980">\
	 <div id="dsq-comment-header-8601980" class="dsq-comment-header">\
	 <cite id="dsq-cite-8601980" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8601980">Sheynberg</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8601980" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8601980" class="dsq-comment-message">Tim Cook didn\'t say netbooks have \'cracked keyboards\', he said netbooks tend to have *cramped* keyboards. This is true, most netbooks do not have full-size keyboards.<br><br>Furthermore, netbooks do have very small screens. If a notebook has a 13" screen, it\'s not a netbook. One can even say that netbooks have junky hardware compared to full-featured notebooks; for example, an Atom-processor isn\'t as fast as a Core 2 Duo processor.<br><br>\'Terrible software\' is subjective of course, but it\'s clear that most netbooks don\'t run Vista or OS X Leopard well. Netbooks also don\'t come with the full suite of high-quality lifestyle and productivity software that Apple ships with their notebooks.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8630045">\
	 <div id="dsq-comment-header-8630045" class="dsq-comment-header">\
	 <cite id="dsq-cite-8630045" class="dsq-comment-cite">\
	 <a id="dsq-author-user-8630045" href="http://www.venturebeat.com" target="_blank" rel="nofollow">Anthony Ha</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8630045" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8630045" class="dsq-comment-message">Whoops, sorry about that, my connection to the webcast wasn\'t that great. I\'ll fix.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8602290">\
	 <div id="dsq-comment-header-8602290" class="dsq-comment-header">\
	 <cite id="dsq-cite-8602290" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8602290">Darren</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8602290" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8602290" class="dsq-comment-message">Yes, they do have small screens, as does my phone but I\'m not disappointed about it, I just use it for what I bought it for.<br>I fire up my Blackberry and enjoy the lifestyle software on there, sure it doesn\'t look as polished as the high quality software that\'s available for Windows but I don\'t expect it to be.<br>I can quickly check email, Facebook, pick up Skype calls, search Google or use the Yahoo suite. It\'s very productive and saves me carrying a laptop around.<br><br>I mean come on, it\'s like saying all TV\'s are cr*p because they just don\'t give the cinema experience. That\'s true but I don\'t need to be in the cinema to catch up on the news :/</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8614078">\
	 <div id="dsq-comment-header-8614078" class="dsq-comment-header">\
	 <cite id="dsq-cite-8614078" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8614078">Darryl</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8614078" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8614078" class="dsq-comment-message">You, sir, have made the best comment yet.<br><br>"I just use it for what I bought it for."<br><br>Most of the individuals commenting in here - like "Keoz" - seem to think that their idea of "good" is the only one.<br><br>It\'s a breath of fresh air to see someone who understands the concept of task-oriented tangibles; buy the right tool for the right job.  It\'s why I develop in both PHP and ASP, both C# and Java, and why I run both Linux and Windows.  Sometimes, the right tool for one job isn\'t the right tool for another job.<br><br>Netbooks have their place - as the market has already stated, quite clearly.  Asus is making a sufficient profit to warrant releasing additional models within that space.    The netbook may at some point take over for the Notebook, just as the notebook may at some point take over for the desktop...  or.. it may not.  Either way.. who cares? Buy the tool you need to get the job done.<br><br>Cheers to you, Darren. Thanks for being a voice of reason in a crowd all spewing bullshit. ;)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8602390">\
	 <div id="dsq-comment-header-8602390" class="dsq-comment-header">\
	 <cite id="dsq-cite-8602390" class="dsq-comment-cite">\
	 <a id="dsq-author-user-8602390" href="http://www.twitter.com/floozyspeak" target="_blank" rel="nofollow">floozyspeak</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8602390" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8602390" class="dsq-comment-message">Apple can bash netbooks all the want what they cannot debate however is that netbooks and the consumer have met and synergized over the past 12 months.  So despite them not being an optimal user experience, the consumer has spoken and netbooks are in.  Failing to recognize is classic hard headed Apple and as such they will not sell macs like they used to until they get back on the same page with the consumer.<br><br>Enjoy the ipod, iphone sales while you can, eventually Apple will need to make something new and it wont move in this economy at the $2k + price tag.  <br><br>Apple typically does pretty well with education market as well, and I see that slipping away from them even further as more and more people embrace the cloud and netbook computing.  <br><br>I hope more and more people create their own hackintoshes, and i think android has a good chance to make for a decent netbook OS.  Netbooks have a place in the consumer mind set, most are the second laptop, or the travel laptop, or the one i like to use for basic stuff and the web which hello is in everything these days.  <br><br>Apple\'s loss and they will feel it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8602994">\
	 <div id="dsq-comment-header-8602994" class="dsq-comment-header">\
	 <cite id="dsq-cite-8602994" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8602994">Stjones</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8602994" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8602994" class="dsq-comment-message">“a portable device that is smaller than its current laptop computers but bigger than the iPhone or iPod Touch.” - that would be the Newton, no?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8609677">\
	 <div id="dsq-comment-header-8609677" class="dsq-comment-header">\
	 <cite id="dsq-cite-8609677" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8609677">enrique santa cruz</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8609677" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8609677" class="dsq-comment-message">Why there are no more concords? they were for the elite, great experience, the best airplane ever built and also the fastest one ever, why people prefered the jumbo? because of the price, everything reduces to that. The hunger for power will stay with the people that really needs it and its willing to pay for it, the rest of the mortals that use word processing, spread sheet and web surfing will find out that they can have that at halfe the price. Apple shouldn\'t treat the price saver crowd like morons just because they can\'t create a cheap product that won\'t embarass them.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8630087">\
	 <div id="dsq-comment-header-8630087" class="dsq-comment-header">\
	 <cite id="dsq-cite-8630087" class="dsq-comment-cite">\
	 <a id="dsq-author-user-8630087" href="http://www.venturebeat.com" target="_blank" rel="nofollow">Anthony Ha</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8630087" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8630087" class="dsq-comment-message">If everything reduces to price, then why are there so many MacBook owners? Of course price is important, but let\'s not get carried away here.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8610898">\
	 <div id="dsq-comment-header-8610898" class="dsq-comment-header">\
	 <cite id="dsq-cite-8610898" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8610898">Timm</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8610898" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8610898" class="dsq-comment-message">Apple speaks with the authority of a company that understands user interfaces and usability better than anyone on the planet, one only has to look at the cellphone industry and the rut they were in before Apple changed the game. Their main observation then as well, was: cramped user input, lousy screen resolution, underpowered, OS nonexistent or poorly implemented, no ecosystem (J2ME was and still is a joke). I could also mention the sad state of the MP3 player industry before their entrance.<br><br>So this doesn\'t mean they won\'t come up with a competing product, in fact they may well blow the doors off the current fledgling market with a compelling user interface and usability...they are just holding their fire.<br><br>As to a skinny, color Newton, I fail to understand where you would keep such a device, no matter how sexy. In giant pant pockets? Overcoat pockets? Briefcase? What happens when it rings?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8612562">\
	 <div id="dsq-comment-header-8612562" class="dsq-comment-header">\
	 <cite id="dsq-cite-8612562" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8612562">Keoz</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8612562" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8612562" class="dsq-comment-message">Exactly people dont know about user experience they are lack of IT culture, they just want to see a 90\'s user experience on their netbooks that is what sucks with netbooks too</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8611478">\
	 <div id="dsq-comment-header-8611478" class="dsq-comment-header">\
	 <cite id="dsq-cite-8611478" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8611478">Dean</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8611478" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8611478" class="dsq-comment-message">Given recent rumors/news, seems clear Apple is working on something "netbookish".  But, knowing how Apple works, my guess is they will completely rethink what a "netbook" is and come out with something groundbreaking.  Look what they did with the cell phone.  They didn\'t just make another cell phone.  They completely redefined what a cell phone could be.  My guess is they will do the same with netbooks.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8611932">\
	 <div id="dsq-comment-header-8611932" class="dsq-comment-header">\
	 <cite id="dsq-cite-8611932" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8611932">Andrew</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8611932" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8611932" class="dsq-comment-message">How hard is it to understand? Netbooks are cheap and cheerful. They get the job of browsing done, and little else. They fill a niche of people who don\'t want to do any more than that and just want something for $300.<br><br>What Apple are saying is you can\'t produce a machine for $300 without it being cheaply made and poorly spec\'d. This is not the business model for any of Apple\'s other products. So why should they compromise now? Starbucks could sell you a coffee for $0.50 but it would taste like crap - you know it, they know it. So why expect them to?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8612655">\
	 <div id="dsq-comment-header-8612655" class="dsq-comment-header">\
	 <cite id="dsq-cite-8612655" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8612655">Keoz</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8612655" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8612655" class="dsq-comment-message">And that\'s to worry about for the IT industry that people dont want anything else than just "browsing" and deacelerating the hardware technology because people dont want anything else they are happy browsing</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8634189">\
	 <div id="dsq-comment-header-8634189" class="dsq-comment-header">\
	 <cite id="dsq-cite-8634189" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8634189">DreyZ</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8634189" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8634189" class="dsq-comment-message">Keoz, mate, all I\'ve read from you is pure verbal diarrhoea.  As both Darren and Daryl have said "just use it for what you bought it for".  THAT\'S PERFECT!!!<br><br>You believe that people reading emails and web-browsing are still in the "stone age", then both you and I and everybody else who has entered in a comment must be cave-men, since we\'re all currently web-browsing.  Whether we\'re using $4,000 Mac Book/laptop or $300 netbook, we\'re still all browsing.<br><br>From all the comments that you\'ve entered, it appears you\'re the type of person who will buy a Ferrari for inner-city driving.  WHAT A JOKE!!!!  As Daryl stated, buy the right tool for the right job.  An over-powered 22" laptop may not suit a business man that is constantly travelling (interstate or overseas) and only requires to perform simple tasks such as emailing, web-browsing, contact management, document proposal writing, etc.<br>Peter Webb is be a good example.  He bought the right tool for his purpose.  He uses the netbook mainly as a "workstation" (for lack of a better work) to remote into dedicated machines to perform tasks.  You replied to his comment stating "...where do you do that you need a good broadband connection..."  Have you heard of wireless internet or are you still in the "stone age"?<br>Friends of mine are currently back-packing overseas and they managed to purchase a netbook for about $250.  It\'s PERFECT for them.  All they use it for is emailing, web-browsing, Facebook and to Skype to their friends and family back home (in Australia).  If they loose the netbook, it wouldn\'t set them back as much as if they lost a $2,500 Laptop.  Also, with the amount and size of bags they have, it is much easier for them to pack a 11" netbook rather than a 21" Laptop.  You keep on talking about "the real world".  Well, if you spend time with real people rather than computers all day then you\'d realise people such as Peter Webb, Darren, Daryl, Andrew and others commenting here ARE real people with REAL views.<br><br>Personally I\'m not a huge fan of netbooks, but I agree with Peter Webb, Darren and Daryl.  Buy the right tool for the right purpose whether that is for document writing, remote access, emailing, web-browsing, etc.  That doesn\'t necessarily mean that you\'re "...deacelerating the hardware technology..."  you\'re simply not paying for excessive hardware that you wouldn\'t use.<br>For example, would you use a helicopter just to go 2 minutes down the street to shop for groceries?  You would probably say yes... the technology is newer, the hardware is more durable and it\'s 10 times as fast.  Mate, that\'s a bit of a joke isn\'t it?!?<br><br>Andrew has a very good point.  It seems that Apple\'s business model is to ensure high-end technology at a price, hence them having a hard time trying to fathom the concept of selling a netbook style of device for $300.  Perhaps in the near future they may introduce a device that is under $1000 to compete in this unique market space.<br>Time will tell.<br><br>Thanks.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8615237">\
	 <div id="dsq-comment-header-8615237" class="dsq-comment-header">\
	 <cite id="dsq-cite-8615237" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8615237">Claude</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8615237" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8615237" class="dsq-comment-message">One word: denial.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8616562">\
	 <div id="dsq-comment-header-8616562" class="dsq-comment-header">\
	 <cite id="dsq-cite-8616562" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8616562">Peter Antypas</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8616562" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8616562" class="dsq-comment-message">@Keoz. Go read Christensen\'s "The Innovator\'s Dilemma" and "The Innovator\'s Solution". You might understand something about the tech business and the process of disruption.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8617559">\
	 <div id="dsq-comment-header-8617559" class="dsq-comment-header">\
	 <cite id="dsq-cite-8617559" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8617559">Станислав</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8617559" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8617559" class="dsq-comment-message">Да нихрена! Нетбуки тоже классная вещь! Так-то</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8620777">\
	 <div id="dsq-comment-header-8620777" class="dsq-comment-header">\
	 <cite id="dsq-cite-8620777" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8620777">FritzS</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8620777" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8620777" class="dsq-comment-message">Cramped keyboard? Tiny screen? Who cares! I was asked to set up a web and mail server for our consulting group. Using an Acer netbook and open source software I spent $300 and got a server that handles 10,000 hits and a couple hundred e-mails a day, has 5 hour battery backup,  and only draws 12 watts of power. Let\'s hear it for the Intel Atom processor, only available in netbooks.<br><br>Remember that Java was first thought to be only for applets, but came into its own with servlets. I see netbooks moving the same way: from client to server.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8632564">\
	 <div id="dsq-comment-header-8632564" class="dsq-comment-header">\
	 <cite id="dsq-cite-8632564" class="dsq-comment-cite">\
	 <a id="dsq-author-user-8632564" href="http://shadfurman.mymangosteen.com/" target="_blank" rel="nofollow">shadfurman</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8632564" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8632564" class="dsq-comment-message">while it does seem to be a trend for Apple (Steve Jobs) to dismiss a product line or technology only to release it months later, it doesn\'t seem like Apple to follow the pack and release a netbook after so many other companies have already gotten into them (not unless they become a defacto standard, like laptops are now) however, I would need a product about twice as large as the iPod Touch to consider it usable on a daily basis. I have considered getting one as a hand held gaming device (its the only hand held "gaming device " thats caught my interest) but thats a lot to pay for a toy that I wouldn\'t have time to play that often... so it would be more of a party piece. I think as Mac tablet could be viable, they would probably actually make one that was usable which is more than I can say for all the ones I\'ve tried.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8694976">\
	 <div id="dsq-comment-header-8694976" class="dsq-comment-header">\
	 <cite id="dsq-cite-8694976" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8694976">Richard</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8694976" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8694976" class="dsq-comment-message">This is very sad. We have all of desktop PCs, a netbook and an Apple iMac (lovely machine and OS).  Apple has quite obviously lost the plot if this is what the top brass are thinking -- remember a fish rots from the head!<br><br>Apple should do a survey of what ordinary people are doing with netbooks.  Apple are missing a huge opportunity here. End of story. iPHones and iPods may be doing well; but Macbooks are not doing well relative to ALL the PC laptops and netbooks combined.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8707258">\
	 <div id="dsq-comment-header-8707258" class="dsq-comment-header">\
	 <cite id="dsq-cite-8707258" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8707258">horus</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8707258" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8707258" class="dsq-comment-message">why bother with a netbook at all, Apple practically created this small laptop  craze with the air, the cd drive less wireless connectivity. If you want an apple netbook, the air is the closest you are going to get. <br><br>Also, if new macbook\'s are too expencive, you can always get a powerbook g3, ibook g3 or god forbid a clamshell ibook (the blue/orange ones) off ebay for like 60£ ish</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-11663923">\
	 <div id="dsq-comment-header-11663923" class="dsq-comment-header">\
	 <cite id="dsq-cite-11663923" class="dsq-comment-cite">\
	 <span id="dsq-author-user-11663923">slehman805</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-11663923" class="dsq-comment-body">\
	 <div id="dsq-comment-message-11663923" class="dsq-comment-message">The MacBook Air seems like a good alternative. <br><br>I have to disagree with Tim\'s comments:  "“When I look at netbooks, I see cramped keyboards, terrible software, junky hardware, very small screens."  Except for the hardware and software is he not describing the iPhone? People watch videos on their iPhone so why not a 10" screen?  The hardware and software of an Apple Net-Book should not be an issue since it would be designed by Apple and loaded with Apple software.<br><br>I see nothing wrong with adding a second MacBook Air to the line up with a decreased screen size.  There is still room to decrease the screen size around the MacBook Air keyboard.<br><br>But maybe Apple has something else up their sleeves like a MacBook Touch.  And while you\'re at it, why not build all that iPhone functionality right in to it making it the first on the go Cellular Laptop bringing the world of mobile communications and computing together.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16433011">\
	 <div id="dsq-comment-header-16433011" class="dsq-comment-header">\
	 <cite id="dsq-cite-16433011" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16433011">Kevin</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16433011" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16433011" class="dsq-comment-message">Im a college student and I use a HP mini with 2GB Ram "upgraded" 1.6 Ghz proccessor and 160GB harddrive, I love it because I got sick of lugging my Compaq laptop around, It works great for taking notes, and working on  code for my proggramming class. I play Warcraft II and Warcraft III and other older games on it no prob, im not trying to play WoW on it but I can\'t wait until nvidias new chipset comes out because it will help bridge the gap in the graphics aspect of laptop vs netbook.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-18445392">\
	 <div id="dsq-comment-header-18445392" class="dsq-comment-header">\
	 <cite id="dsq-cite-18445392" class="dsq-comment-cite">\
	 <span id="dsq-author-user-18445392">edsion007</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-18445392" class="dsq-comment-body">\
	 <div id="dsq-comment-message-18445392" class="dsq-comment-message">Hmmm<a href="http://www.crazyuggs.co.uk" rel="nofollow">.</a>.<a href="http://dragonara.net/ddos-protection.html" rel="nofollow">.</a> why it has to do with twitter so much?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-24102047">\
	 <div id="dsq-comment-header-24102047" class="dsq-comment-header">\
	 <cite id="dsq-cite-24102047" class="dsq-comment-cite">\
	 <span id="dsq-author-user-24102047">Mac Chick</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-24102047" class="dsq-comment-body">\
	 <div id="dsq-comment-message-24102047" class="dsq-comment-message">Is this guy nutty or something?  Sure, netbooks are cramped and have terrible software and yada yada yada, but guess why. BECAUSE THEY AREN\'T MACS!  They are horrible PC\'s, you know, Mac\'s mortal enemy? Why does this guy think that Mac can\'t make an EXCELLENT netbook?  He doesn\'t even seem willing to try.  I just got my netbook today - an Asus PC - and as expected it\'s slow as a turtle and basically crap, but it\'s my only option as far as having a netbook because this clown thinks they\'re goofy.  The reason I bought a netbook (used on Ebay, $122) is because I\'m afraid of carrying my $2000 Mac around a big city that\'s known for stealing bags that even look like they MIGHT contain a laptop. And for a stinky PC, $122 is more than I\'m willing to spend.  But if Mac made a netbook, I\'d be first in line to buy it and it would be small enough to carry around without worrying. Apple needs to get with the program, I just saw on the news 5 minutes ago that the number one item in demand this Black Friday is...duh, a netbook!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-24423010">\
	 <div id="dsq-comment-header-24423010" class="dsq-comment-header">\
	 <cite id="dsq-cite-24423010" class="dsq-comment-cite">\
	 <a id="dsq-author-user-24423010" href="http://www.real-exams.com/CCSA.htm" target="_blank" rel="nofollow">ccsa exams</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-24423010" class="dsq-comment-body">\
	 <div id="dsq-comment-message-24423010" class="dsq-comment-message">But maybe Apple has something else up their sleeves like a MacBook Touch. And while you\'re at it, why not build all that iPhone functionality right in to it making it the first on the go Cellular Laptop bringing the world of mobile communications and computing together.<br>I agree with that.</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=venturebeat&t=apple8217s_tim_cook_why_don8217t_we_make_netbooks_because_they_suck&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 = '547225e2dda46ccfdec279a9a44a0074';
			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');
}

})();




