




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": "Some phone lust. The Nokia N97: the ultimate Facebook device, Cumming the second quarter of 2009. http://is.gd/9QUV", "author_name": "MattJhsn", "source_url": "http://www.backtype.com/search?q=http%3A//scobleizer.com/2008/12/02/nokia-n97-the-ultimate-facebook-device/", "id": 1401859, "get_service_url": "http://twitter.com/", "title": "", "url": "http://twitter.com/MattJhsn/statuses/1288194217", "source": "backtype", "get_service_name": "twitter", "avatar_url": "http://s3.amazonaws.com/twitter_production/profile_images/81486356/with_rachel_normal.jpg", "author_url": "", "date_created": "9 months ago", "retweets": []}, {"body": "\"Nokia just announced the N97. I got a chance to play with it last night and realized they have built the ultimate Facebook device. Now, I\u2019m sure, lots of you will wonder how it compares to the iPhone. Well, for a Facebook user it isn\u2019t even close: the new Nokia device wins hands down. Why? Let\u2019s compare\"", "author_name": "Kol Tregaskes", "source_url": "http://www.ubervu.com/conversations/scobleizer.com/2008/12/02/nokia-n97-the-ultimate-facebook-device/", "id": 1067764, "get_service_url": "http://friendfeed.com/", "title": "", "url": "http://friendfeed.com/e/c4d11fdf-8da0-4bf0-89d4-b665b8f3d1a4#cb057e2c-3861-4c56-8cd6-e83af884e310", "source": "ubervu", "get_service_name": "friendfeed", "avatar_url": "http://friendfeed.com/koltregaskes/picture?size=large", "author_url": "", "date_created": "1 year ago", "retweets": []}, {"body": "This might just well be my next phone", "author_name": "Josch", "source_url": "http://www.ubervu.com/conversations/scobleizer.com/2008/12/02/nokia-n97-the-ultimate-facebook-device/", "id": 1067765, "get_service_url": "http://friendfeed.com/", "title": "", "url": "http://friendfeed.com/e/8fd41e1b-6faf-cfff-1f70-28daa2ec3fa3#2fced306-600e-40ab-9316-cd234444715f", "source": "ubervu", "get_service_name": "friendfeed", "avatar_url": "http://friendfeed.com/josch/picture?size=large", "author_url": "", "date_created": "1 year ago", "retweets": []}, {"body": "This might just well be my next phone", "author_name": "Beth Kanter", "source_url": "http://www.ubervu.com/conversations/scobleizer.com/2008/12/02/nokia-n97-the-ultimate-facebook-device/", "id": 1067766, "get_service_url": "http://friendfeed.com/", "title": "", "url": "http://friendfeed.com/e/fe789881-e47f-d76b-b72e-aa88d776db2f#1873636a-0f87-443c-8245-44aa4ed5d91d", "source": "ubervu", "get_service_name": "friendfeed", "avatar_url": "http://friendfeed.com/kanter/picture?size=large", "author_url": "", "date_created": "1 year ago", "retweets": []}, {"body": "please never share anything from that fatass douchebag scoble.", "author_name": "Steven Eckelberry", "source_url": "http://www.ubervu.com/conversations/scobleizer.com/2008/12/02/nokia-n97-the-ultimate-facebook-device/", "id": 1067767, "get_service_url": "http://friendfeed.com/", "title": "", "url": "http://friendfeed.com/e/7fc6431d-be82-7b6a-2fcf-8c29caed0336#6b492564-c27a-48a0-905c-6d4440d17505", "source": "ubervu", "get_service_name": "friendfeed", "avatar_url": "http://friendfeed.com/stevene/picture?size=large", "author_url": "", "date_created": "1 year ago", "retweets": []}, {"body": "1.It does 16:9 video. The iPhone doesn\u2019t even do video. So, how can you go to a Daft Punk concert and record it to taunt your friends? 2. It has a 5 megapixel camera. The iPhone only has 2, and the quality isn\u2019t even close. The camera also has a dual LED.", "author_name": "Nokia Conversations", "source_url": "http://www.ubervu.com/conversations/scobleizer.com/2008/12/02/nokia-n97-the-ultimate-facebook-device/", "id": 1067768, "get_service_url": "http://friendfeed.com/", "title": "", "url": "http://friendfeed.com/e/557058f2-079b-7cfc-8c32-d2c9148af8cc#26fabc2a-dba5-43d0-8143-934713d9cd28", "source": "ubervu", "get_service_name": "friendfeed", "avatar_url": "http://friendfeed.com/nokiaconversations/picture?size=large", "author_url": "", "date_created": "1 year ago", "retweets": []}], "has_more_reactions": false, "users": {"e4f1e65ccbeb6499b20f717024f4b8a9": {"username": "kai_hiwatari", "tumblr": "", "display_name": "kai_hiwatari", "url": "http://disqus.com/guest/e4f1e65ccbeb6499b20f717024f4b8a9/", "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": ""}, "9581ae454ebb905e557118e4ed5bb410": {"username": "Nick", "tumblr": "", "display_name": "Nick", "url": "http://disqus.com/guest/9581ae454ebb905e557118e4ed5bb410/", "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": ""}, "dahowlett": {"username": "dahowlett", "tumblr": "", "display_name": "dahowlett", "url": "http://disqus.com/dahowlett/", "registered": true, "linkedin": "", "blog": "http://www.dahowlett.com", "remote_domain": null, "points": 2, "facebook": "http://www.facebook.com/dahowlett", "avatar": "http://media.disqus.com/uploads/users/1740/avatar92.jpg", "delicious": "dahowlett", "is_remote": false, "verified": true, "flickr": "dahowlett", "twitter": "", "remote_domain_name": ""}, "dc597f0b6eecec522153d76b76e3e47a": {"username": "Abhi", "tumblr": "", "display_name": "Abhi", "url": "http://disqus.com/guest/dc597f0b6eecec522153d76b76e3e47a/", "registered": false, "linkedin": "", "blog": "http://www.vritti.net/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "tinusguichelaar": {"username": "tinusguichelaar", "tumblr": "", "display_name": "Tinus", "url": "http://disqus.com/tinusguichelaar/", "registered": true, "linkedin": "in/tinusg ", "blog": "http://tinus.guichelaar.info", "remote_domain": null, "points": 4, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/21266/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "77d9789f5e49ccc88ad0f3a7e9f4f905": {"username": "benjaminvallen1", "tumblr": "", "display_name": "benjaminvallen1", "url": "http://disqus.com/guest/77d9789f5e49ccc88ad0f3a7e9f4f905/", "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": ""}, "984b6a5676f13c217bd01d0a07d9e89f": {"username": "Vajra", "tumblr": "", "display_name": "Vajra", "url": "http://disqus.com/guest/984b6a5676f13c217bd01d0a07d9e89f/", "registered": false, "linkedin": "", "blog": "http://Wesak.blogspot.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "a6cce1aaa1e8b47e88e9baebe0406162": {"username": "cgrassi", "tumblr": "", "display_name": "cgrassi", "url": "http://disqus.com/guest/a6cce1aaa1e8b47e88e9baebe0406162/", "registered": false, "linkedin": "", "blog": "http://www.mobnotes.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3553f5e0db0fd1ec4e40a932a2d8f5b3": {"username": "Robert Scoble", "tumblr": "", "display_name": "Robert Scoble", "url": "http://disqus.com/guest/3553f5e0db0fd1ec4e40a932a2d8f5b3/", "registered": false, "linkedin": "", "blog": "http://scobleizer.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/4069/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "7dace36f0d4dc90295466dce5b65f6f5": {"username": "David Geller", "tumblr": "", "display_name": "David Geller", "url": "http://disqus.com/guest/7dace36f0d4dc90295466dce5b65f6f5/", "registered": false, "linkedin": "", "blog": "http://www.eyejot.com/users/davidg", "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": ""}, "4024414175e4a5dd8a53b49ee5b0245a": {"username": "Don", "tumblr": "", "display_name": "Don", "url": "http://disqus.com/guest/4024414175e4a5dd8a53b49ee5b0245a/", "registered": false, "linkedin": "", "blog": "http://bestfoot.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": ""}, "194346e53f4b0d0c47e7d9aa36483c4a": {"username": "Harish", "tumblr": "", "display_name": "Harish", "url": "http://disqus.com/guest/194346e53f4b0d0c47e7d9aa36483c4a/", "registered": false, "linkedin": "", "blog": "http://hv23.tumblr.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": ""}, "3571d4966ac3275b77f2bf43bf09552f": {"username": "Andrew Mason", "tumblr": "", "display_name": "Andrew Mason", "url": "http://disqus.com/guest/3571d4966ac3275b77f2bf43bf09552f/", "registered": false, "linkedin": "", "blog": "http://www.didigetthingsdone.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": ""}, "4155af04965240046e23c690feb74538": {"username": "Sitten Spynne", "tumblr": "", "display_name": "Sitten Spynne", "url": "http://disqus.com/guest/4155af04965240046e23c690feb74538/", "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": ""}, "958cd09d84251727f49cf55fbb810960": {"username": "G-Rock", "tumblr": "", "display_name": "G-Rock", "url": "http://disqus.com/guest/958cd09d84251727f49cf55fbb810960/", "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": ""}, "51517ac8bee225fcda1031f354f99338": {"username": "Chris Abraham", "tumblr": "", "display_name": "Chris Abraham", "url": "http://disqus.com/guest/51517ac8bee225fcda1031f354f99338/", "registered": false, "linkedin": "", "blog": "http://ahllc.eu/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/20/6624/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "7f6291e8344b594235e57b843fc05d9b": {"username": "Christopher Coulter", "tumblr": "", "display_name": "Christopher Coulter", "url": "http://disqus.com/guest/7f6291e8344b594235e57b843fc05d9b/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "012b63e82863b30f15f50cf435c2f61f": {"username": "spare parts HP", "tumblr": "", "display_name": "spare parts HP", "url": "http://disqus.com/guest/012b63e82863b30f15f50cf435c2f61f/", "registered": false, "linkedin": "", "blog": "http://www.mmionline.net/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "4d1e83aeed1c0613520cb1a0531896b6": {"username": "Jim Connolly", "tumblr": "", "display_name": "Jim Connolly", "url": "http://disqus.com/guest/4d1e83aeed1c0613520cb1a0531896b6/", "registered": false, "linkedin": "", "blog": "http://jimsmarketingblog.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/70/9414/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "9810afc3d42f60e023414789e9e5b823": {"username": "KELLY", "tumblr": "", "display_name": "KELLY", "url": "http://disqus.com/guest/9810afc3d42f60e023414789e9e5b823/", "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": ""}, "c30a8f8b7bd52f78f02a3cc5a8f2f4aa": {"username": "Tomi Itkonen", "tumblr": "", "display_name": "Tomi Itkonen", "url": "http://disqus.com/guest/c30a8f8b7bd52f78f02a3cc5a8f2f4aa/", "registered": false, "linkedin": "", "blog": "http://www.raindropper.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": ""}, "6625370ffa42f6c3f82d88c4bce53fc9": {"username": "Simon Brocklehurst", "tumblr": "", "display_name": "Simon Brocklehurst", "url": "http://disqus.com/guest/6625370ffa42f6c3f82d88c4bce53fc9/", "registered": false, "linkedin": "", "blog": "http://www.psynixis.com/blog/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3fb7510bd58bf9a4a6d853012445f8dc": {"username": "Ruby &quot;Online Training&quot; Mein", "tumblr": "", "display_name": "Ruby &quot;Online Training&quot; Mein", "url": "http://disqus.com/guest/3fb7510bd58bf9a4a6d853012445f8dc/", "registered": false, "linkedin": "", "blog": "http://www.aot.edu.au/", "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": ""}, "d42e7096a208fe1f45af790b2ec89111": {"username": "deskapahendri", "tumblr": "", "display_name": "deskapahendri", "url": "http://disqus.com/guest/d42e7096a208fe1f45af790b2ec89111/", "registered": false, "linkedin": "", "blog": "http://www.deskapahendri.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": ""}, "36069ab0588e5cb09321031f154c923c": {"username": "Mele", "tumblr": "", "display_name": "Mele", "url": "http://disqus.com/guest/36069ab0588e5cb09321031f154c923c/", "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": ""}, "5bda6c05723e27e32f5432c1fb12cb90": {"username": "Rahul kumar", "tumblr": "", "display_name": "Rahul kumar", "url": "http://disqus.com/guest/5bda6c05723e27e32f5432c1fb12cb90/", "registered": false, "linkedin": "", "blog": "http://Rahulkumar.posterous.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": ""}, "f01e87df20badced862f109ca2db0d44": {"username": "@Fresyes", "tumblr": "", "display_name": "@Fresyes", "url": "http://disqus.com/guest/f01e87df20badced862f109ca2db0d44/", "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": ""}, "e9d42f1daf99c4838ac7a3b81da33503": {"username": "Rocci", "tumblr": "", "display_name": "Rocci", "url": "http://disqus.com/guest/e9d42f1daf99c4838ac7a3b81da33503/", "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": ""}, "5c93bb5c4c48fb750c45bd8863227cf2": {"username": "john", "tumblr": "", "display_name": "john", "url": "http://disqus.com/guest/5c93bb5c4c48fb750c45bd8863227cf2/", "registered": false, "linkedin": "", "blog": "http://www.nzmobiles.com/phones/34-nokia/61-the-new-nokia-n97-.html", "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": ""}, "199699749b340fa7853180cf20845d49": {"username": "Guru", "tumblr": "", "display_name": "Guru", "url": "http://disqus.com/guest/199699749b340fa7853180cf20845d49/", "registered": false, "linkedin": "", "blog": "http://www.gadgetguild.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": ""}, "c786a39e3ffc24fc27027729dcf0c874": {"username": "Nokia N97", "tumblr": "", "display_name": "Nokia N97", "url": "http://disqus.com/guest/c786a39e3ffc24fc27027729dcf0c874/", "registered": false, "linkedin": "", "blog": "http://www.zahipedia.com/2008/12/02/nokia-n97-unleashes-next-gen-cellular-technology/", "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": ""}, "4b0b4ce1e9ca8b5804a670a878e3e29f": {"username": "Erik", "tumblr": "", "display_name": "Erik", "url": "http://disqus.com/guest/4b0b4ce1e9ca8b5804a670a878e3e29f/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/80/823/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "795a0ccf41b7e567eb9489ee4fbeb548": {"username": "wonder", "tumblr": "", "display_name": "wonder", "url": "http://disqus.com/guest/795a0ccf41b7e567eb9489ee4fbeb548/", "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": ""}, "f18484f7d6bf080d7a91e4fa288a0f7e": {"username": "Marin", "tumblr": "", "display_name": "Marin", "url": "http://disqus.com/guest/f18484f7d6bf080d7a91e4fa288a0f7e/", "registered": false, "linkedin": "", "blog": "http://informationweek.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": ""}, "1b7c12e7a1422249d2dea6ef74ba1c2d": {"username": "William", "tumblr": "", "display_name": "William", "url": "http://disqus.com/guest/1b7c12e7a1422249d2dea6ef74ba1c2d/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/189/4257/avatar92.jpg", "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": ""}, "a30a5924f9976bd898f3b8d6d458ccb4": {"username": "Duke", "tumblr": "", "display_name": "Duke", "url": "http://disqus.com/guest/a30a5924f9976bd898f3b8d6d458ccb4/", "registered": false, "linkedin": "", "blog": "http://www.textonphone.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": ""}, "3a7d2c00581d993a4e60ff85e2f5c2af": {"username": "fluxincap", "tumblr": "", "display_name": "fluxincap", "url": "http://disqus.com/guest/3a7d2c00581d993a4e60ff85e2f5c2af/", "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": ""}, "danieldevon": {"username": "danieldevon", "tumblr": "", "display_name": "danieldevon", "url": "http://disqus.com/danieldevon/", "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": ""}, "2225c3caf59fd7277499dfa9f9730f53": {"username": "Ryan Merket", "tumblr": "", "display_name": "Ryan Merket", "url": "http://disqus.com/guest/2225c3caf59fd7277499dfa9f9730f53/", "registered": false, "linkedin": "", "blog": "http://www.ryanmerket.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": ""}, "a28f439bf8e83a10dbc12ab35d5ec553": {"username": "Henrik", "tumblr": "", "display_name": "Henrik", "url": "http://disqus.com/guest/a28f439bf8e83a10dbc12ab35d5ec553/", "registered": false, "linkedin": "", "blog": "http://www.stiepel.net/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "e47427ccad6a0622a39864909d4534cd": {"username": "Robin Maxwell", "tumblr": "", "display_name": "Robin Maxwell", "url": "http://disqus.com/guest/e47427ccad6a0622a39864909d4534cd/", "registered": false, "linkedin": "", "blog": "http://www.nokian97.350.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": ""}, "8a7d87f0ade4a4ac5b633ed5064cf92f": {"username": "Jonathan", "tumblr": "", "display_name": "Jonathan", "url": "http://disqus.com/guest/8a7d87f0ade4a4ac5b633ed5064cf92f/", "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": ""}, "94159529b4d726d39a07b426f9d801da": {"username": "hkiphone", "tumblr": "", "display_name": "hkiphone", "url": "http://disqus.com/guest/94159529b4d726d39a07b426f9d801da/", "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": ""}, "5e3e8f0c3113f13c12780eaa93f4d547": {"username": "sbwoodside", "tumblr": "", "display_name": "sbwoodside", "url": "http://disqus.com/guest/5e3e8f0c3113f13c12780eaa93f4d547/", "registered": false, "linkedin": "", "blog": "http://simonwoodside.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": ""}, "68b5fbb1fa7b4b4586526ca527b60840": {"username": "Luca Conti", "tumblr": "", "display_name": "Luca Conti", "url": "http://disqus.com/guest/68b5fbb1fa7b4b4586526ca527b60840/", "registered": false, "linkedin": "", "blog": "http://luca.wordpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "a4be320afa74962d86835a235cd653db": {"username": "zato", "tumblr": "", "display_name": "zato", "url": "http://disqus.com/guest/a4be320afa74962d86835a235cd653db/", "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": ""}, "12ebc877054c4aae7f78970af735f04d": {"username": "christexaport", "tumblr": "", "display_name": "christexaport", "url": "http://disqus.com/guest/12ebc877054c4aae7f78970af735f04d/", "registered": false, "linkedin": "", "blog": "http://www.symbian-freak.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": ""}, "c715a8e13b61791f35d6969919b0f822": {"username": "Andrew", "tumblr": "", "display_name": "Andrew", "url": "http://disqus.com/guest/c715a8e13b61791f35d6969919b0f822/", "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": ""}, "5b8c5dc06249b26f39da521cab77efd5": {"username": "pwb", "tumblr": "", "display_name": "pwb", "url": "http://disqus.com/guest/5b8c5dc06249b26f39da521cab77efd5/", "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": ""}, "314d85ff0fea59a92d0681a4b352fa55": {"username": "will", "tumblr": "", "display_name": "will", "url": "http://disqus.com/guest/314d85ff0fea59a92d0681a4b352fa55/", "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": ""}, "0dde49590af300b5abfce43b2d149ee1": {"username": "DaveW", "tumblr": "", "display_name": "DaveW", "url": "http://disqus.com/guest/0dde49590af300b5abfce43b2d149ee1/", "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": ""}, "5f67f4ecc725c421226d179fd98815d4": {"username": "Charles Ju", "tumblr": "", "display_name": "Charles Ju", "url": "http://disqus.com/guest/5f67f4ecc725c421226d179fd98815d4/", "registered": false, "linkedin": "", "blog": "http://charlesju.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": ""}, "0e0e7f8d2d5505c06f658d46c0c0eb70": {"username": "Robert", "tumblr": "", "display_name": "Robert", "url": "http://disqus.com/guest/0e0e7f8d2d5505c06f658d46c0c0eb70/", "registered": false, "linkedin": "", "blog": "http://www.propdata.co.za/", "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": ""}, "coolfx35": {"username": "coolfx35", "tumblr": "", "display_name": "coolfx35", "url": "http://disqus.com/coolfx35/", "registered": true, "linkedin": "", "blog": "", "remote_domain": null, "points": 3, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "03cee97039cb99b70a4ca24dc62ea509": {"username": "Joao B", "tumblr": "", "display_name": "Joao B", "url": "http://disqus.com/guest/03cee97039cb99b70a4ca24dc62ea509/", "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": ""}, "43965985fd0c7a37466370db6005a25d": {"username": "james", "tumblr": "", "display_name": "james", "url": "http://disqus.com/guest/43965985fd0c7a37466370db6005a25d/", "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": ""}, "1bb6c5f0888156811533f295de95d8dd": {"username": "Arnold - Mr.Gadget", "tumblr": "", "display_name": "Arnold - Mr.Gadget", "url": "http://disqus.com/guest/1bb6c5f0888156811533f295de95d8dd/", "registered": false, "linkedin": "", "blog": "http://www.mrgadget.com.au/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/10/4602/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "5011b84d77f1ade96303478096807a36": {"username": "Steffen", "tumblr": "", "display_name": "Steffen", "url": "http://disqus.com/guest/5011b84d77f1ade96303478096807a36/", "registered": false, "linkedin": "", "blog": "http://de-de.facebook.com/people/Steffen-Nork/549441374", "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": ""}, "9a01df6ee749d5943a39f4772efbbe6f": {"username": "\u0e2b\u0e32\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e19", "tumblr": "", "display_name": "\u0e2b\u0e32\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e19", "url": "http://disqus.com/guest/9a01df6ee749d5943a39f4772efbbe6f/", "registered": false, "linkedin": "", "blog": "http://whoaddme.wordpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "1783d32f5116badd34b717860f00b8d8": {"username": "Guest", "tumblr": "", "display_name": "Guest", "url": "http://disqus.com/guest/1783d32f5116badd34b717860f00b8d8/", "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": ""}, "d90c2d87b8068364b3fbe91ea979e039": {"username": "thekiwiguy", "tumblr": "", "display_name": "thekiwiguy", "url": "http://disqus.com/guest/d90c2d87b8068364b3fbe91ea979e039/", "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": ""}, "e398a8e1ff08d6bbb22cce998b944cbb": {"username": "Jennifer", "tumblr": "", "display_name": "Jennifer", "url": "http://disqus.com/guest/e398a8e1ff08d6bbb22cce998b944cbb/", "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": ""}, "b6c1028fc3f24edb78ebcd4255940f16": {"username": "danielmcvicar", "tumblr": "", "display_name": "danielmcvicar", "url": "http://disqus.com/guest/b6c1028fc3f24edb78ebcd4255940f16/", "registered": false, "linkedin": "", "blog": "http://www.magmawave.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": ""}, "philippss": {"username": "philippss", "tumblr": "", "display_name": "philippss", "url": "http://disqus.com/philippss/", "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": ""}, "cfe8a6bbbef7ad57ac58b59d422a64b9": {"username": "Oscar", "tumblr": "", "display_name": "Oscar", "url": "http://disqus.com/guest/cfe8a6bbbef7ad57ac58b59d422a64b9/", "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": ""}, "033010748ed04c38a145db21b456999a": {"username": "babecast", "tumblr": "", "display_name": "babecast", "url": "http://disqus.com/guest/033010748ed04c38a145db21b456999a/", "registered": false, "linkedin": "", "blog": "http://www.babecast.org/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "48eb9d654a30e6922d2997fe4f878bee": {"username": "JimmyJet", "tumblr": "", "display_name": "JimmyJet", "url": "http://disqus.com/guest/48eb9d654a30e6922d2997fe4f878bee/", "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": ""}, "n97owner": {"username": "n97owner", "tumblr": "", "display_name": "n97owner", "url": "http://disqus.com/n97owner/", "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": ""}}, "forum": {"use_media": true, "name": "Scobleizer", "streaming_realtime": true, "url": "scobleizer", "allow_anon_post": true, "reactions_enabled": true, "reply_position": 1, "show_avatar": true, "allow_anon_votes": false, "disqus_auth_disabled": false}, "realtime_enabled": true, "request": {"username": "", "is_global_moderator": false, "sharing": {}, "sort": 4, "forum": "scobleizer", "is_initial_load": true, "is_authenticated": false, "timestamp": "2009-12-17_04:44:45", "remote_domain": "", "page": 1, "is_moderator": false, "display_username": "", "points": null, "subscribe_on_post": 2, "moderator_can_edit": false, "is_remote": false, "is_verified": false, "missing_perm": "locked"}, "realtime_paused": false, "posts": {"9712128": {"up_voted": false, "ip": "", "has_replies": false, "message": "Quite good informative post", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_12:37:54", "killed": false, "user_key": "199699749b340fa7853180cf20845d49", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712129": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi guys, may i ask something?<br>I wondering, how come, there is advertising sell these n97, since Nokia have not launched it yet in store?<br>They offers around 300-450USD.<br>Anybody can help me to explain?<br>Thanx", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-14_16:11:36", "killed": false, "user_key": "795a0ccf41b7e567eb9489ee4fbeb548", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712130": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi guys, i just wondering, a lot of advertising there, offering this N97. They sell it on 300-450USD.<br>Is it true, since Nokia haven't launced it in store, how these people can sell it?<br>I'm really don't understand, can somebody help me to explain? Thank You.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-14_16:06:43", "killed": false, "user_key": "795a0ccf41b7e567eb9489ee4fbeb548", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712131": {"up_voted": false, "ip": "", "has_replies": false, "message": "hey everyone :) Now my personal experiences with the iphone (cause i have it) are great...they got a new update so it now has turn by turn with the new google maps so one problem solved....the battery thing for hours is crap my phone can fully charge like in an hour and a half its the battery bar is red....and things like video apple can update that soon enough they get updates like very couple months....and who knows by spring appl might even have a new iphone with better stuff than it has now....<br><br>Basicly im saying that the phone world never stops once one person comes out with something evrybody likes all the other companies follow it...(thats how touch screen came into view)....now thats just my opinion<br><br>ps...not much of apple fan but the iphone rocks and the n97 rocks to but i cant wait till spring :(", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-14_13:24:49", "killed": false, "user_key": "36069ab0588e5cb09321031f154c923c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712132": {"up_voted": false, "ip": "", "has_replies": false, "message": "WOW Finally N97 is to be released..Puremobile Says Coming Soon Can it be??????????????<br><br>I was really waiting to get this lovely phone and when i get it from puremobile it would be really AMAZING!!!!!!!!!<br><br>I am really waiting to place an order here <a href=\"http://www.puremobile.com/Nokia/Nokia-N97-White-GSM-Phone/\" rel=\"nofollow\">http://www.puremobile.com/Nokia/Nokia-N97-White...</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-14_06:37:27", "killed": false, "user_key": "9810afc3d42f60e023414789e9e5b823", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712133": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"Availabilty? Second quarter of 2009.\"<br><br>So this is a pure paper lounch, a marketing event, without a buy able product for one year. That are 1 or 2 generations in mobile development...<br><br>But every scobleized blogger jumps on the train because Nokia gives them a prototype to play with.<br><br>The next iPhone generation will be on the market by this time.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-03_05:07:31", "killed": false, "user_key": "4b0b4ce1e9ca8b5804a670a878e3e29f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712134": {"up_voted": false, "ip": "", "has_replies": false, "message": "Nokia wins anyway because you can buy the phone without a contract. ;)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-03_07:08:47", "killed": false, "user_key": "033010748ed04c38a145db21b456999a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712135": {"up_voted": false, "ip": "", "has_replies": false, "message": "Excellent  Nokia N97 -<br><br>best of the best<br><br>Nokia is rocking", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-03_23:44:27", "killed": false, "user_key": "c786a39e3ffc24fc27027729dcf0c874", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712136": {"up_voted": false, "ip": "", "has_replies": false, "message": "It's the keyboard, stupid. Main reason I will never use iPhone as my #1 device. Of course, Apple will never adopt this form factor, and RIM missed it. More thoughts: <a href=\"http://simonwoodside.com/weblog/2008/12/4/nokia_n97_the_form_factor/\" rel=\"nofollow\">http://simonwoodside.com/weblog/2008/12/4/nokia...</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-04_16:26:57", "killed": false, "user_key": "5e3e8f0c3113f13c12780eaa93f4d547", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712137": {"up_voted": false, "ip": "", "has_replies": false, "message": "This is a great phone. It rocks.<br><br><a href=\"http://www.nzmobiles.com/phones/34-nokia/61-the-new-nokia-n97-.html\" rel=\"nofollow\">http://www.nzmobiles.com/phones/34-nokia/61-the...</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-08_03:41:14", "killed": false, "user_key": "5c93bb5c4c48fb750c45bd8863227cf2", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712138": {"up_voted": false, "ip": "", "has_replies": false, "message": "haaaa, i'll definitely be one of the first to have an unlocked version.  As soon as its available here <a href=\"http://www.puremobile.com/Nokia/Nokia-N97-White-GSM-Phone/\" rel=\"nofollow\">http://www.puremobile.com/Nokia/Nokia-N97-White...</a><br><br>I really can't wait, never been this anxious for a cellphone.  Qwerty and touch in a Nokia....wow", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-11_09:56:27", "killed": false, "user_key": "e9d42f1daf99c4838ac7a3b81da33503", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712139": {"up_voted": false, "ip": "", "has_replies": false, "message": "hi guys,<br>The Nokia N97 captivates you with its innovative technology and revolutionary features. The impressive slider concept and cutting-edge design of the Nokia N97 make it an absolute fashion accessory.<br>For more visit <a href=\"http://www.nokian97.350.com/\" rel=\"nofollow\">http://www.nokian97.350.com/</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-01-08_04:00:33", "killed": false, "user_key": "e47427ccad6a0622a39864909d4534cd", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "11 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712140": {"up_voted": false, "ip": "", "has_replies": false, "message": "Oh i just say wow! Facebook is AMAZING! :)<br>now i used iphone i think iphone is the best mobile phone :)<br>i like it.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-01-23_09:41:47", "killed": false, "user_key": "9a01df6ee749d5943a39f4772efbbe6f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "10 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}, "9712141": {"up_voted": false, "ip": "", "has_replies": false, "message": "For me, this phone is close to perfection but there is one thing that would make it perfect -&gt; Is there an extra camera for video calling? (otherwise i will just go for the Sony Ericsson x1).<br><br>Thanks!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-01-13_02:45:14", "killed": false, "user_key": "cfe8a6bbbef7ad57ac58b59d422a64b9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "11 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712142": {"up_voted": false, "ip": "", "has_replies": false, "message": "Its really being nail biting waiting for N97 to be released, puremobile says coming soon Can it be????????????????????<br><br><a href=\"http://www.puremobile.com/Nokia/Nokia-N97-White-GSM-Phone/\" rel=\"nofollow\">http://www.puremobile.com/Nokia/Nokia-N97-White...</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-02-02_15:38:27", "killed": false, "user_key": "e398a8e1ff08d6bbb22cce998b944cbb", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "10 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}, "15759375": {"up_voted": false, "ip": "", "has_replies": false, "message": "Nokia N97 is a most attractive 3G Smartphone comes in black and white colour casing. It designed nokia, for  many business & entertainment users suit today's mobile phone users. If you plan to buy this phone you can compare various nokia N97 contact deals <a href=\"http://www.askphone.co.uk/nokia-n97-contract.html\" rel=\"nofollow\">http://www.askphone.co.uk/nokia-n97-contract.html</a> and buy cheapest.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-09-02_09:54:49", "killed": false, "user_key": "danieldevon", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "3 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}, "9613788": {"up_voted": false, "ip": "", "has_replies": false, "message": "The N97 looks great. Is it going to be sold unlocked to any carrier in the US? I might trade in my iphone for this, since the n97 has better specs: <br><a href=\"http://www.clashem.com/phones.php?id1=1179&id2=2\" rel=\"nofollow\">http://www.clashem.com/phones.php?id1=1179&id2=2</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-05-20_23:06:55", "killed": false, "user_key": "43965985fd0c7a37466370db6005a25d", "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}, "19702966": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have a Nokia N97 and I'm VERY disappointed. Nokia made promises and came out with a useless device. It's firmware software is FULL of bugs, it's extremely slow, freezes, Skype is still not included but they said that the Nokia N97 will be shipped with Skype. The worst thing is that Nokia lied and lies about the N97. What they do is simply not telling the truth about their buggy device. I am very disappointed. I've always had Nokia phones, but I'm sure this is my last Nokia phone. Bugs and lies - this is what you can get from Nokia. If you planned to buy an N97, forget it. It sounds great what Nokia tells about the device, but the device is useless.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-10-09_18:11:52", "killed": false, "user_key": "n97owner", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "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}, "15335933": {"up_voted": false, "ip": "", "has_replies": false, "message": "I hold no blind loyalty to N97, nor did I to my 9210, 9300, or 9500.<br>But while I have a N97 in my pocket I'll remain true to the Brotherhood.<br><br>My N97 is my best friend.<br><br>My relationship is currently on hold while I accustom myself to everything that the N97 can offer me. So far, I haven't put it down.<br><br>I'm getting married in 7 days and hope to have grown up by then. If not, my N97 will be with me at the top table and I'll mention him in my Wedding Speech.<br><br>Love is such a fickle thing.<br><br>See you around <a href=\"http://www.nokian97forum.com\" rel=\"nofollow\">http://www.nokian97forum.com</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-08-24_21:57:52", "killed": false, "user_key": "coolfx35", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "3 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}, "11959229": {"up_voted": false, "ip": "", "has_replies": false, "message": "great can open at any time FB", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-07-01_00:05:31", "killed": false, "user_key": "012b63e82863b30f15f50cf435c2f61f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "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}, "13873473": {"up_voted": false, "ip": "", "has_replies": false, "message": "Nice article about the Nokia N97   article..I am going to buy the Nokia Nseries for that i am going to sell the Nokia 6060 Model Mobile For that i want to unlock the Mobile From the T-Mobile US network I found the Free Unlocking code in the site &lt;a href=\"http://www.unlock-free.com/\"http://www.unlock-free.com/</a> after Unlocking it & i will sell the Mobile & buy Nokia N97 Mobile ..It's My Dream.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2009-08-04_06:20:57", "killed": false, "user_key": "philippss", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "4 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}, "9712073": {"up_voted": false, "ip": "", "has_replies": false, "message": "G-Rock: I didn't realize that you can upgrade your camera with a software upgrade. I really need to show you the difference in picture quality between Nokia devices and the iPhone again. It's pretty extreme. But, you should read my post from Monday. I made exactly your point.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_06:16:24", "killed": false, "user_key": "3553f5e0db0fd1ec4e40a932a2d8f5b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712074": {"up_voted": false, "ip": "", "has_replies": false, "message": "Nokia has worldwide distribution in every consumer electronics retail shop.<br>Apple not exactly.<br>That will make a difference.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_06:18:29", "killed": false, "user_key": "0db98812ba49c3aaa71b585930520966", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712075": {"up_voted": false, "ip": "", "has_replies": false, "message": "Picture: <a href=\"http://conversations.nokia.com/.a/6a00d834574c6e69e201053630d120970c-800wi\" rel=\"nofollow\">http://conversations.nokia.com/.a/6a00d834574c6...</a><br><br>Press release: <a href=\"http://conversations.nokia.com/home/2008/12/nokia-n97-marks-evolutionary-milestone-for-nseries-and-mobilekind.html\" rel=\"nofollow\">http://conversations.nokia.com/home/2008/12/nok...</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_03:42:09", "killed": false, "user_key": "7dace36f0d4dc90295466dce5b65f6f5", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712076": {"up_voted": false, "ip": "", "has_replies": false, "message": "This looks great but I'm going to stick to my iPhone. I see more long term development on the iPhone and most of the ways you suggest the N97 to be better are things that can be solved by software updates. Turn by turn directions, video and copy paste are examples. Now it's just time for Apple to realize the gardens wall must open and certain applications should make the app store (QIK) and that certain features should be developed if all other<br>competitors have it such as copy paste which Blackberries, G1 and now Nokia all have", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_03:56:04", "killed": false, "user_key": "5bda6c05723e27e32f5432c1fb12cb90", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712077": {"up_voted": false, "ip": "", "has_replies": false, "message": "Okay, seriously \u2013 the only advantages that count are the video recording capability and maybe the turn-by-turn navigation.<br>All other stuff will be available shortly with an other software update. That the iPhone is a whole platform with 1000s of games and applications seems to be forgotten by the author.<br>But sure, most propably it is a good device but there is a LOT mission in order to be really comparable to an iPhone. It's not the features that make a device good, because features are all too often just software. And the rest? Who needs more than a 2MPX Camera in the phone? And even if you want one, it won't be the dealbreaker.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_06:13:05", "killed": false, "user_key": "958cd09d84251727f49cf55fbb810960", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712078": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, of course you can't increase the camera's quality by a software update (\"[...] all too often just software. And the rest?\"). And yes, point taken, the quality of the photos of the iPhone's camera is the bare minimum you can accept.<br><br>Oh, and it was supposed to mean \"[...] a LOT missing [...]\" not mission. Where's the coffee? :-)<br><br>Thanks for the tip, I'll read your Monday article!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_06:24:02", "killed": false, "user_key": "958cd09d84251727f49cf55fbb810960", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712079": {"up_voted": false, "ip": "", "has_replies": false, "message": "You missed the most important issue ... are you locked into AT&amp;T?  that is the biggest hang-up with i-phones for many, especially when that service isn't all that swell in many places.  So answer the real question: who have they partnered with or who will engage this N97 phone?<br><br>Sprint does some Nokia, cingular, t-mobile?  The real next advance will be a cell phone that works with every carrier -- in fact one that works with two carriers so that your personal and work phones go on one device.  Does this already exist ... probably, I just haven't looked for or seen it yet.<br><br>I don't get facebook still ... I know I'm in the minority (or old).  But the \"kids\" do get it ... it gets more traffic than google I read the other day.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_07:35:29", "killed": false, "user_key": "4024414175e4a5dd8a53b49ee5b0245a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712080": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thanks Robert, great overview of the device.  Like the well done comparison to iPhone.<br><br>These devices are finally incorporating primary device requirements like decent video, interface with social-networking enablers in a user friendly-efficient manner.<br><br>In that they are now maturing, I see about 2 to 4 years down the road and these devices will become pervasive among the mass market. A handful of device makers be it Nokia, Samsung, Apple, etc. will likely be the device leaders, but one or two breakouts may occur.<br><br>A big chink to pervasiveness of mobile technology in my book remains the mind numbing attempt at lock-in by providers, attempting to deep-six alternative delivery methods using 'white-space,' and so called 'bandwidth hog' caps put in place by ISP's.  This remains the real bottleneck going forward, not the technology for these device types.  In the U.S., I predict heated 'conversations' at the political and regulatory level will take place, beginning in 2009.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_07:59:01", "killed": false, "user_key": "48eb9d654a30e6922d2997fe4f878bee", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712081": {"up_voted": false, "ip": "", "has_replies": false, "message": "I replaced my lifelong Blackberry use and my Blackberry 8800 with a Nokia N95 8GB.<br><br>7 months later I'm back to a Blackberry Bold because I can't go without a full QWERTY keyboard.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_08:19:27", "killed": false, "user_key": "03cee97039cb99b70a4ca24dc62ea509", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712082": {"up_voted": false, "ip": "", "has_replies": false, "message": "Does this mean that Nokia has recovered (at least some) of its mojo?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_08:56:28", "killed": false, "user_key": "dahowlett", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712083": {"up_voted": false, "ip": "", "has_replies": false, "message": "@ William you can not compare the iPhone with this device. To completely different things. This is in the league of a computer and uses a different processor: It can range anywhere between: 600MHz to greater than 1GHz <a href=\"http://www.arm.com/products/CPUs/ARM_Cortex-A8.html\" rel=\"nofollow\">http://www.arm.com/products/CPUs/ARM_Cortex-A8....</a> Personally I believe Nokia will make it run in the 1GHz range..<br><br>The iPhone is using a much earlier processor from ARM. Also 5mp, full video support. Anyone who sees the specs and thinks the iPhone is superior does this based on look and feel but no hard facts.. Also where is the VOIP client in the iPhone?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_09:01:13", "killed": false, "user_key": "1783d32f5116badd34b717860f00b8d8", "has_been_anonymized": true, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712084": {"up_voted": false, "ip": "", "has_replies": false, "message": "Robert, did you check how the Flash player works on N97 - are there any performance issues?<br><br>[yeah yeah, I should ask these questions on FriendFeed or Twitter...]", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_08:34:55", "killed": false, "user_key": "c30a8f8b7bd52f78f02a3cc5a8f2f4aa", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712085": {"up_voted": false, "ip": "", "has_replies": false, "message": "Sure it looks nice on paper, although quite expensive and big.  When N97 hits the market iPhone has been already 2 years on the market, iPhone 3G one.<br><br>We'll see how the third party software development for the wide screen S60 devices takes off and how the Nokia App Store works, those are the things that make iPhone the iPhone.<br><br>Thank good Nokia finally got it's act together, it was last of the big manufacturers to have a touchscreen phone in the lineup (5800 XpressMusic, out nowish). To tell the truth, Nokia is two years late, I hope they do well, but only the specs do not make the phone. It is the experience.<br><br>Any news on multitouch?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_09:41:32", "killed": false, "user_key": "8a7d87f0ade4a4ac5b633ed5064cf92f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712086": {"up_voted": false, "ip": "", "has_replies": false, "message": "does it also come with a phone?  :)<br><br><br>Personally for me a quality camera is one reason I love my N95 8GB.<br><br>Someone mentioned windows mobile platform in the comments, but surely it must be Symbian?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_09:59:02", "killed": false, "user_key": "314d85ff0fea59a92d0681a4b352fa55", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712087": {"up_voted": false, "ip": "", "has_replies": false, "message": "First off, Scobez, GOOD FIRST LOOK! I had thought the N97 would be a slider with a rotating camera like the N90, similar to the Chinese clone seen on Symbian-Freak. Nokia surely kept a lid on this one.<br><br>@ Andrew Mason,<br>I assume you had an N95-1. I say this because it lacked enough memory to make the browser useful. The N95 8gb fixed all that, and Facebook is exactly like on a desktop. No need for any silly app. I can't believe you went iPhone just for Facebook. Do Facebook videos play, etc? They do in the latest N95 firmware and browser. Even the new S40 dumbphones. Let this be a lesson. You gave up the best content creation device of its time for the simpleton iPhone?? I guess... Hope you're back soon.<br><br>Robert seems to be the only real geek phone/tech reviewer besides me. No self respecting techie would use an iPhone as a main device over any Nokia smartphone. Its mainly Americans that don't have access or experience to know just what these phones can do. S60 is the closest thing to a desktop PC OS for your mobile! Robert speaks for us geeks. The iPhone is for our mothers and the less tech savvy. Why would a geek need a simple device? Who wants simple at the expense of features. All those iFools, that's who.<br><br>@ Tinus,<br>You say the iPhone 3G will be a year old when this comes out. The N80 is even older and outspecs the iPhone! The problem is unless they can sell in America, all most know is the iPhone. Nokia has had the best, most powerful, best selling media smartphones for nearly 3 years straight. The Nseries is and has been the pinnacle of mobile computing. They always have done more than an iPhone. The iPhone never sold more, did more, or anything else compared to Nokia smartphones.<br><br>@ Simon Brockelhurst,<br>Nokia smartphones have always had the ability for users to update or debrand the phones firmware at will from the PC. Just use the Nokia Software Updater. You can even switch from branded to unbranded at will.<br><br>The networks never upgraded your firmware unless it was a branded firmware, and I highly suggest using the more powerful generic unlocked firmware instead. Branded means its missing features most times. And its not like the iPhone. Updates are more frequent and add actual feature updates. I remember when we got Flash in the browser in an update. This is the level of improvement to expect from Nokia. Apple is still lacking MMS, video capture, and multitasking YEARS LATER! If you sit and think, there really is no iPhone advantage, and never was.<br><br>@ Rahul kumar,<br>You see more long term development?? How old is the iPhone platform? Symbian is over 10 years old! How many developers and what languages are available for the iPhone? Symbian developers use more languages to code than anything close, with Flashlite, Ruby, c++, Python, Qt, Mscript, Java, .net, and other languages. So applications will be more diverse and useful. It sounds like you've never used an S60 device full of apps. Its like comparing a Dell PC to a Fischer Price toy.<br><br>Development on the iPhone hasn't been very agile. Look at the development and progression from the N95 to this device. Now look from the iPhone I to the iPhone 3G. What developments?? I think the leader is clear...<br><br>By the way, most of the ways this device eats the iPhone were existent on previous Nokia smartphones since 2006. We've always had full turn by turn navigation, with offline maps for using them even with no phone service or web connection. We had high quality video capture since the N90, which came out in 2006 with a dedicated button for copy and paste (so its not \"and now Nokia has copy and paste\". They've had it all along!), professional optics, and a better camera than the current iPhone! If the N90 had WiFi, it'd be an iPhone killer too. (I think it is anyway...)<br><br>@ William,<br>The iPhone 3G is $675 contract free, and has an extra data fee on contract. The N97 is about $649 contract free, and since its available unlocked like all Nokias, the carrier can't know what device you have to add a higher data charge, so it'll be $19 a month data on at&amp;t, $25 a month on T-MobileUSA. Subsidized pricing should be similar between the iPhone and this, although the iPhone has some pretty heavy subsidies. Its ok to pay more for the best device on the market, which this is by far.<br><br>@ pwb,<br>The iPhone has had two versions, yet Nokia smartphones have been the best sellers the entire time. How can a simplistic iPhone blow away the best devices on the market? It hasn't happened yet, even without Nokia doing comparative marketing to expose the iPhones weakness. Try downloading something while checking your Facebook page, editing music, and making a movie. I can do all these things at once...even on my 2 year old N90! Try again, Apple. And we type so much because its a content consumption AND creation device, the big difference between Nokia and Apple. Apple eats dinner, but Nokia hunts, catches, cooks, and eats that same meal, and even serves up a nice plate for your iPhone. Too bad you can't receive via bluetooth, like 2 year old Nokias, and even a 4 year old Motorola Razr.<br><br>@ G-Rock,<br>Unless you've used a Nokia Nseries, you can't realize the myriads of advantages over an iPhone. Multitasking is number one. I can run 20 or 30 apps at once on my N95 8gb, so its the equivalent of 25 iPhones! Also, image capture, web browsing with Flash in the browser just like on a desktop, offline maps, open APIs, true TV-out that shows everything on the phone screen, actual keys, more useful apps, better freeware, open multimedia format support, online gaming, faster more powerful TI OMAP hardware, larger developer community, open source OS, copy and paste, etc...<br><br>These advantages have been around since before there was an iPhone. You just let Engadget and Boy Genius Report decide what you buy, instead of trying it yourself. How has Apple been about adding features so far? Besides Street View on Google Maps, which is a free download on most phones anyway (just like the iPhone-like simplistic static image browser, Opera Mini), what improvements have been realized from iPhone I to 3G? I can mention the improvements my N95 saw and blow your mind.<br><br>Robert is very aware of the thousands of iPhone apps and games. He's also aware of the more apps, and more powerful games available for S60. The N95 8gb and other devices have such powerful graphics chips, we can run ports of Quake I, II, III, AND Doom right on the device as smoothly as on a PC. And we had motion games first. The iPhone is a toy in comparison.<br><br>The fact is many people want a real camera with DVD quality video capture. Really, if you can get one for the same price as an iPhone (they both are ~$650 unsubsidized) with all the features missing from the iPhone since day one, why wouldn't you? That's called loyalty to a fault, my friend. And if its not the features that make the phone, what does? The look? Lol! Its thin. Ok, I get it. But what can it do? If it does little and just looks good, its useless for productivity, and is just an overpriced PMP.<br><br>@ Don,<br>Carrier considerations are still an issue. Even unlocked Nokia smartphones meant for America only get 3G on at&amp;t, a tragedy. I've written various articles about this on Symbian-Freak in the \"Free American 3G\" series of articles. Nokia needs to better support the American carriers. That's why the iPhone sells so well here, because you can barely find Nokia's high end stuff here. Outside America, everyone knows Nokia is king. Half of the iPhone's sales are domestic. Put Nokia in the mix and fewer iPhones get sold.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_10:12:08", "killed": false, "user_key": "12ebc877054c4aae7f78970af735f04d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712088": {"up_voted": false, "ip": "", "has_replies": false, "message": "As nice as the N97 is, it is still made by Nokia.<br><br>Do not forget that Nokia removed the GPS tracking feature that shipped with the first N95's with their firmware update. They stole a paid for feature from their customers.<br><br>NEVER EVER BUY FROM A COMPANY THAT STEALS FEATURES BACK THAT THEIR CUSTOMERS HAD PAID FOR!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_10:18:04", "killed": false, "user_key": "0dde49590af300b5abfce43b2d149ee1", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712089": {"up_voted": false, "ip": "", "has_replies": false, "message": "N95 had all that, video, camera, keyboard... N97 is trying to copy iPhone with touch screen and finger flicks... Not innovative, just one more product coming from a company that has been out-innovated and can't pull itself together. They have a great marketing machine but they will be reduced to selling to China and India until people over there discover iPhone and Android. Bad phone as all other Nokia phones. Crammed with features with no usability and plenty of confusion. Ovi, Mash, whatever...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_10:33:15", "killed": false, "user_key": "a30a5924f9976bd898f3b8d6d458ccb4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712090": {"up_voted": false, "ip": "", "has_replies": false, "message": "how big is the hard drive? thats a biggie for me.....", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_12:19:26", "killed": false, "user_key": "d90c2d87b8068364b3fbe91ea979e039", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712091": {"up_voted": false, "ip": "", "has_replies": false, "message": "I think Robert makes some technical excellent points about the N97 but I don't think it's going to be the iPhone killer.  For one thing Apple has managed to make some kind \"cool\" cache out it's products that Nokia hasn't been able to do for sometime.  And people want the cool products.<br><br>I for one will try my hardest to never buy Apple products, but that's because I'm a tech geek.  I hate the fact that I can't \"seem\" to own an Apple product. If I can't change the battery myself then I won't be buying it.  Apple has created an innovative product but it's also one of the worst for consumers because they have lock you into their system - as well as charging you up the wazoo for it.<br><br>My wife like's Apple products and would get the iPhone but she won't because she knows that she won't use 70% of the features.<br><br>The iPhone will certainly have a good market share and even if it does become top dog it won't last long because Apple treats it's customers like crap.  Nokia won't defeat the iPhone, especially in the US, because they can't build any kind of \"coo\" cache.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-03_09:15:02", "killed": false, "user_key": "3a7d2c00581d993a4e60ff85e2f5c2af", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712092": {"up_voted": false, "ip": "", "has_replies": false, "message": "The device is one thing, but what I found most interesting in this post was Scoble's focus on the phone as a Facebook tool. I see this firsthand, as well, from my vantage point as a college student-- the importance of Facebook for the under-25 generation cannot be overstated.<br>Another clear paradigm shift has taken place- building phones to suit specific applications (or, more basically, the general functionality of social applications), as opposed to building your web services based on the specs of phones.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_04:00:08", "killed": false, "user_key": "194346e53f4b0d0c47e7d9aa36483c4a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712093": {"up_voted": false, "ip": "", "has_replies": false, "message": "Correction: 550 EUR not $550", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_04:01:44", "killed": false, "user_key": "9581ae454ebb905e557118e4ed5bb410", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712094": {"up_voted": false, "ip": "", "has_replies": false, "message": "I love my N95 and plan on grabbing the N96. Now I hunger for the N97. A keyboard is key.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_04:05:12", "killed": false, "user_key": "51517ac8bee225fcda1031f354f99338", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712095": {"up_voted": false, "ip": "", "has_replies": false, "message": "550 euro (+ VAT) Robert :-)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_04:09:05", "killed": false, "user_key": "68b5fbb1fa7b4b4586526ca527b60840", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712096": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thanks for your insights on the Nokia N97 Scobez. Makes me wonder who'll even pick up the Nokia N96 that hasn't even hit the shelves in Australia yet?!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_04:10:19", "killed": false, "user_key": "1bb6c5f0888156811533f295de95d8dd", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712097": {"up_voted": false, "ip": "", "has_replies": false, "message": "Speaking of which... blogging about the N97 and tagging the post with N97..? ;-)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_04:11:09", "killed": false, "user_key": "5011b84d77f1ade96303478096807a36", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712098": {"up_voted": false, "ip": "", "has_replies": false, "message": "heheh, that's for being smart ass: N95 I meant. =D", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_04:15:05", "killed": false, "user_key": "5011b84d77f1ade96303478096807a36", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712099": {"up_voted": false, "ip": "", "has_replies": false, "message": "I'm not an apple fanboy, far from it, but this Nokia sounds more expensive (with contract) than the iPhone 3G, and iPhone 3G may have been replaced by Apple to something more comparable by then too.<br><br>Still, it's good to have some competion. Keeps Apple on it's toes.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_04:15:42", "killed": false, "user_key": "1b7c12e7a1422249d2dea6ef74ba1c2d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712100": {"up_voted": false, "ip": "", "has_replies": false, "message": "Just had a look at the Nokia press info, can I say formfactor and other features remind me very much of the Xperia X1 from Sony I got just last week?<br><br>QWERTY keyboard, wide-screen, touchscreen, A-GPS, it's all there.<br><br>On the other hand, Windows Mobile might be a downside for some. I'm still having to get used to it after using Nokia Communicators (9100, 9210, 9500) with Symbian for years. But for me personally, this N97 comes too late...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_04:35:32", "killed": false, "user_key": "a28f439bf8e83a10dbc12ab35d5ec553", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712101": {"up_voted": false, "ip": "", "has_replies": false, "message": "Looks like a very nice device. The iPhone UI and app platform still blow it away and I suspect iPhone hardware specs will close the gap in 3Q09. The iPhone's keyboard is surely inferior but why are you typing so much?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_05:04:24", "killed": false, "user_key": "5b8c5dc06249b26f39da521cab77efd5", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712102": {"up_voted": false, "ip": "", "has_replies": false, "message": "Good points Robert. But Apple could fix some of your points with a software upgrade.<br>Video, turn-by-turn and copy and paste, could be done via firmware update.<br>did you notice in 2.2 how much they add to Google Maps?<br>Overall I think iPhone is still superior.<br>The FB native application rocks in iPhone.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_05:30:34", "killed": false, "user_key": "a6cce1aaa1e8b47e88e9baebe0406162", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712103": {"up_voted": false, "ip": "", "has_replies": false, "message": "Man this sounds awesome! Just when I thought the battle was down to the Bold &amp; iPhone 3G. I doubt I could wait till '09 Summer though.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_06:00:21", "killed": false, "user_key": "dc597f0b6eecec522153d76b76e3e47a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712104": {"up_voted": false, "ip": "", "has_replies": false, "message": "Looks like a  nice piece of tech. Heres the only prob: the Iphone is now cheaper than the N97 is going to be. Is that extra stuff worth the price? If you wait until the price drops to $330, then the Apple response will probably already be out and it will be even better than the N97. So, where does it stop? If you've got money to blow on this stuff, cool. But not all of us can buy each new beautiful piece of tech that comes along with a $600 price tag.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-03_10:52:19", "killed": false, "user_key": "77d9789f5e49ccc88ad0f3a7e9f4f905", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712105": {"up_voted": false, "ip": "", "has_replies": false, "message": "The N96 even looks better than the iPhone.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-03_12:19:12", "killed": false, "user_key": "e4f1e65ccbeb6499b20f717024f4b8a9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712106": {"up_voted": false, "ip": "", "has_replies": false, "message": "I still have my N95 right now.... my phone works well. But seeing that new and cool N97, I'll try to get one when it's out to the market. :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-03_00:17:24", "killed": false, "user_key": "3fb7510bd58bf9a4a6d853012445f8dc", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712107": {"up_voted": false, "ip": "", "has_replies": false, "message": "thanks for info,  iphone or n97 ?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_23:00:51", "killed": false, "user_key": "d42e7096a208fe1f45af790b2ec89111", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712108": {"up_voted": false, "ip": "", "has_replies": false, "message": "it looks cool..I want one.Thanks.<br>Also is there any food left, the dinner looks delicious.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_21:33:26", "killed": false, "user_key": "b6c1028fc3f24edb78ebcd4255940f16", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712109": {"up_voted": false, "ip": "", "has_replies": false, "message": "This is the reason, I have avoided all iPhone hype, like it, but it's not a workhorse and impossible to type, N97 is everything ever. I love the iPod touch however, just doesn't fit the phone concept for me.<br><br>But 'Facebook device' is hardly good marketing...and N97 is an expensive loaded kitchen sink phone, mass market appeal it will have not. I like it, but then if you are hot on it, I might have doubts.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_20:58:16", "killed": false, "user_key": "7f6291e8344b594235e57b843fc05d9b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712110": {"up_voted": false, "ip": "", "has_replies": false, "message": "@ Charles Yu,<br>I'll try your itype app, but on idlehands app, I did manage to get 50wpm. :)<br><br>I have a friend who works in Marketing for Nokia, and he's always banging on about how great Nokia phones are..... and then begs me to let him play SuperMonkeyBall on my iPhone.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_20:18:27", "killed": false, "user_key": "94159529b4d726d39a07b426f9d801da", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712111": {"up_voted": false, "ip": "", "has_replies": false, "message": "@christexaport<br><br>Your website says it all.. your a Symbian freak, therefore your job is likely to convince me that my iPhone is worthless. Honestly, a camera for you and for Scoble might be the greatest thing in the world, but for me I need applications that are relative to what a teenager needs (I'm 17). Facebook, Youtube, Myspace, IM are all on the iPhone and web browsing on Safari I find is satisfactory if not great.<br><br>and...your right I've never used a S60 device before. I was locked onto Verizon previously, which happens to not sell any higher end Nokia phone, and neither does AT&amp;T, at least this was the case when I bought my 3G. I might be wrong. Nokia has an issue with getting these phones for relatively attractive prices ($199/$299) and onto carriers here in America. I can't look at Scoble toying with the phone, and other tech blogs and consider the phone is for me. The only opportunity I've got to mess around with a Nokia is when I visit India. They (Nokia) happen to be dominant there, and everyone has a nice S60 phone. Not so much the story here in America. They aren't widely available where I live, and there prices aren't attractive.<br><br>Regarding Apps, I'm not a developer so I can't give tell you exactly which platform is easier to develop on, though from all the programming languages you mentioned, S60 would be a choice. And as you say on your site: \"S60's Download! Application does not offer very well known or unknown &amp; powerful applications, utilities, nor support the entrepreneur/student programmer.\"<br><br>The App Store does.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_19:16:18", "killed": false, "user_key": "5bda6c05723e27e32f5432c1fb12cb90", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712112": {"up_voted": false, "ip": "", "has_replies": false, "message": "Good Job, Robert! You've really got all the Apple-hating Microsoft gamer-nerds excited!! \"The ultimate Facebook device\" !!!! HAHAHAHAHA!!!!! For who?? GAMER NERDS??? Like you?? HAHAHAHA!!!  Who told you to call it \"The ultimate Facebook device\"? Is that the anti-Apple selling strategy this time?? It's a lot better than \"welcome to the social\"!! HAHAHAHA!!! But who are these nerds going to call? Their LAN party buddies? What would they do with a Facebook account??  HAHAHAHA!!!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_17:08:38", "killed": false, "user_key": "a4be320afa74962d86835a235cd653db", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712113": {"up_voted": false, "ip": "", "has_replies": false, "message": "Great Post Scob, but I must kindly disagree.<br><br>I'm going to repost a blog post I orginally started as a comment to your post, so I hope you don't mind. If people want to see the blog post in all its glory, please go here: <a href=\"http://is.gd/9VwH\" rel=\"nofollow\">http://is.gd/9VwH</a><br><br>--<br><br>There is a lot of buzz today about the iPhone \"killer\", Nokia's N97 at Nokia's annual conference for themselves, Nokia World . As much as I would like Apple to get some real competitors, this is not it.<br><br>Here are 3 reasons why:<br><br>1. Price Point. This phone is priced to start at $700, the iPhone is priced at $200. Granted, post-subsidies it might come down to $350, but given two very similar phones, I think most people will still opt for the iPhone.<br><br>2. App store. The Nokia phone is allowing 3rd party developers to distribute applications through their traditional \"Download\" application. What this lacks is 1. deep integration into the phone and 2. a way to pay for applications. Might I suggest doing some sort of partnership with PayPal or Amazon?<br><br>3. Size. Bigger, fatter, heavier.<br><br>This is starting to get pathetic. The Blackberry Storm was a let-down, the G-Phone was a flop, and now even Nokia is completely paralized by a phone that was created almost 2 years ago. Come on guys, get your act together. If we want a mobile revolution, we're going to need everyone to chip in. Here is what everyone that wants a shot at Apple needs to do:<br><br>1. Worship developers.<br><br>None of the other big mobile manufacturers have a viable app store. Right now, the user has to know how to physically go around and find applications on their own. This is horrible, the reason why the iPhone App Store is so successful is because it caters to impulse buying and downloading. To one-up the iPhone App Store, the rest of you guys (Blackberry, Windows, Android, and Symbian) need to come together and create an app store and distribution channel together. You need partnerships with every payment processing service; PayPal, Amazon, and Google. It's not hard guys, stop being lazy and innovate.<br><br>2. Break the price point.<br><br>The only reason why Palm is still in the game is because they broke the $100 barrier. These smart phones need to be f-ing FREE. We do not need a 5 megapixel camera in our phone, we need internet connectivity at an affordable price point. Make the iPhone the premium product, not your own entry-level competitors.<br><br>3. Touch Screen EVERYTHING<br><br>Stop with the QWERTY junk. The iPhone touch screen is far superior to tacticle feedback. Like Henry Ford said, \"If I asked what people wanted, they would have said faster horses.\" Apple succeeds because it knows that people are stupid and are going to want stupid features, like a keyboard. If you use my application, iType (shameless plug), you can see that people can get up to 40 WPM (my co-founder) on the iPhone, that's without spelling correction. Given that it is highly possible to type well on a touch screen and that screen space is the biggest value-add to any mobile device, it is STUPIDLY obvious that you need to switch off the tacticle keyboard.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_14:37:56", "killed": false, "user_key": "5f67f4ecc725c421226d179fd98815d4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712114": {"up_voted": false, "ip": "", "has_replies": false, "message": "Good stuff Robert. Just wanted to point out the the 550 mark was in Euros I believe. So it's more like 7 hundo American", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_15:54:19", "killed": false, "user_key": "f18484f7d6bf080d7a91e4fa288a0f7e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712115": {"up_voted": false, "ip": "", "has_replies": false, "message": "It's amusing to me to see companies try to compete with Apple on features. In the iPod days all the pundits thought that not having an FM radio was a heinous omission and so all the wannabes like Zune and Sansa proudly announced their iPod knock-offs had FM radios. Turns out that nobody cares about having an FM radio in their media player because the content and audio quality sucks compared to listening to mp3 files.<br><br>The same will be true for all these features. Apple will add the ones that make sense like copy-and-paste and turn-by-turn and ignore the rest (video calls, physical keyboard) and they will still kick Nokia's and Google's butt.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_15:55:51", "killed": false, "user_key": "c715a8e13b61791f35d6969919b0f822", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712116": {"up_voted": false, "ip": "", "has_replies": false, "message": "@Christexaport,<br>Sorry I have to say this \u2013\u00a0I wonder how can anyone be so wrong.<br><br>First, running x apps in the background doesn't make a phone better by the factor x.<br><br>Next, I seriously doubt it that there is any mobile browser on the planet that does a better job than the one on the iPhone. By \"better job\" I mean the speed of rendering the website, the accuracy of rendering it and of course the network speed. Of course I haven't seen what the N97's browser is capable of, but there has never been a browser, especially not from Nokia, that did rendering any good. Yes, it may be able to display Flash content (FlashLite?) but, seriously, I missed that feature exactly one time in over a year I use my iPhone.<br><br>\"More useful apps\" \u2013\u00a0did you have a clown for breakfast? You've got to be kidding me.<br><br>\"better freeware\" - did you have a clown for breakfast? You've got to be kidding me.<br><br>\"open multimedia format support\" - what's not open at mp3, mpeg4, h.264, ...?<br><br>\"larger developer community\" - did you have a clown for breakfast? You've got to be kidding me. I happen to work in the mobile gaming industry and I'm afraid to say you don't seem to have a clue what you are talking about. Developers for S60 are really rare. Why is that? Because noone buys apps/games for S60. Why is that? Because in general they don't increase productivity or deliver any fun.<br><br>\"online gaming\" \u2013 this is a concept that has failed for years now. No matter which (mobile!) platform. Here's why: Latency of the networks at live games, boredom with turn-based games. Besides, you could create (and I'm sure there are already such games) online games with the iPhone. And\u00a0why wouldn't you be able to in the first place?<br><br>The improvements between 1st iPhone and 3G are indeed not too big. There's GPS, another (yes, cheaper) case and 3G support. Still, after a few hours with the iPhone I couldn't believe I was satisfied with a Nokia or a SonyEricsson just a short time before. I won't trade it in for anything in the next year(s). Just a stunning device that doesn't make you angry but does its job.<br>By the way the biggest improvements were simply put into the iPhone by firmware update, which is why I won't let copy/paste count as a good argument against. This is about to come and noone doubts it. Yes, it's annoying not having this feature right now.<br><br>There are neither more nor more powerful games for S60. And games don't perform like on a PC. This is so not true, I can't even say how not true that is. Sorry dude.<br><br>Then, DVD quality is studio quality which a phone's camera won't be able to perform in this century. Not having a video recording app is still sad and annoying, yes.<br><br>Show me a Nokia with accelerometer sensor that was on the market before the iPhone was. I can just recall a Samsung which fantastically failed in the market.<br><br>So, why would I buy an iPhone instead of an S60 device? Well, basically because I won't get a heart attack while using it. Sadly enough I still have to deal with all these rubbish devices in the office. Cruel world.<br>Oh, and I can sync all my music directly from iTunes, just by pressing a button. And it syncs my adress book and my calendar without having to install this unutterable software called Nokia PC Suite (which basically noone gets ever to work) and even the apps and games that I bought. If I delete an app on the phone, I can just re-get it by checking a box and synching the phone. Which is not as rip-offish as in the normal market.<br><br>Of course, features make a product great. But this discussion is not about features, it's about the platform a device is based on and about what developers are able to do with this platforms in order to supply features (such as the facebook app for the iPhone or Super Monkey Ball or one of the other 10k apps and games).<br>Is a blogging application a feature of a phone? I don't think so. It's software that some people want and some don't. Nokia has a device in the market which is advertised with something like \"integrated blogging features\". How sad is this?<br><br>And of course it's also the look. I like the iPhone and yes, I like the design of the N97. I think it's one of the greatest devices in the market. But it won't be a so called \"iPhone-Killer\". Check out the G1 and with a little sense of taste, you'll have to admit that this is not a beatiful device by any means.<br><br>So long,<br>G-Rock", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_13:26:28", "killed": false, "user_key": "958cd09d84251727f49cf55fbb810960", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712117": {"up_voted": false, "ip": "", "has_replies": false, "message": "I don't see a little piece of fruit on it or hipsters on TV telling me how all the other pretentious little boys will have one.  I'm willing to bet this will join the legions of excellent consumer electronics that delivered more features for a lower price but failed to overcome Apple's marketing.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_13:34:01", "killed": false, "user_key": "4155af04965240046e23c690feb74538", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712118": {"up_voted": false, "ip": "", "has_replies": false, "message": "@ christexaport<br><br>Whoa, that was the biggest dose of fanboyism since Amiga fanboys. And I thought the Apple clan was bad.<br><br>Product is more than the spec sheet, really. You claim to be able to browse, edit film and do some other stuff at the same time on E90. Good for you, last time I checked the E90 could not even handle the browsing properly. Byw the facebook app for iPhone is quite sexy.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_14:12:05", "killed": false, "user_key": "8a7d87f0ade4a4ac5b633ed5064cf92f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712119": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ah... could it actually be better than the iPhone?  Most likely.  Then again some would call me an Apple hater, but I just hate the way Apple lock all their devices into their own software.  Anyhow...<br><br>The QWERTY keyboard is always a winner.  The ability to change batteries is also key.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_03:26:40", "killed": false, "user_key": "0e0e7f8d2d5505c06f658d46c0c0eb70", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712120": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hello Robert,<br>The N97 sounds like a useful device - I'm still using a 12-month old N95 and LOVE it.<br><br>Thanks for the heads-up and for persevering with their crap wi-fi :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_03:32:27", "killed": false, "user_key": "4d1e83aeed1c0613520cb1a0531896b6", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712121": {"up_voted": false, "ip": "", "has_replies": false, "message": "Second quarter 2009? The iPhone 3G will be a year old by then.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_03:32:28", "killed": false, "user_key": "tinusguichelaar", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712122": {"up_voted": false, "ip": "", "has_replies": false, "message": "Sounds interesting. Anxious to see more details!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_03:39:08", "killed": false, "user_key": "7dace36f0d4dc90295466dce5b65f6f5", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712123": {"up_voted": false, "ip": "", "has_replies": false, "message": "The BIG question is: has Nokia adopted Apple's strategy of taking central control over updates to the OS?  The point is: every mobile phone, especially high-end phones, is riddled both with bugs and isn't feature-complete when new.  Everyone knows this.  So, if Nokia is keeping on with its same old business model of letting the network operators control the device (aka forget about getting any updates to fix bugs/add new features), then no matter what the the phone itself is like, it simply won't compete with iPhone effectively.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_03:39:43", "killed": false, "user_key": "6625370ffa42f6c3f82d88c4bce53fc9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712124": {"up_voted": false, "ip": "", "has_replies": false, "message": "How big is it?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_03:26:34", "killed": false, "user_key": "984b6a5676f13c217bd01d0a07d9e89f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712125": {"up_voted": false, "ip": "", "has_replies": false, "message": "I will be eager to take a look at these. I had and liked the N95 but since moved to the iPhone. The Facebook app on the iPhone is great and it will be hard to beat, even for the N97.<br><br>The good thing is that the iPhone has made everybody else raise their bar, thanks Apple!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_03:19:21", "killed": false, "user_key": "3571d4966ac3275b77f2bf43bf09552f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712126": {"up_voted": false, "ip": "", "has_replies": false, "message": "Sounds amazing! Thanks for the updates", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_03:21:39", "killed": false, "user_key": "f01e87df20badced862f109ca2db0d44", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9712127": {"up_voted": false, "ip": "", "has_replies": false, "message": "Nice man!<br><br>So when you say the buttons are \"protruding\" do you mean on the touchscreen?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2008-12-02_03:23:01", "killed": false, "user_key": "2225c3caf59fd7277499dfa9f9730f53", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 year ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}}, "integration": {"receiver_url": "", "theme": 4, "reply_position": true, "disqus_logo": false}, "timer": {"timer_url": "http://localhost:8005", "thread_id": "18348136", "user_id": "anonymous", "forum_id": "125200", "hash": -3114300030683398301}, "thread": {"total_posts": 0, "paginate": false, "per_page": 0, "slug": "nokia_n97_the_ultimate_facebook_device", "num_pages": 1, "days_alive": 0, "realtime_paused": true, "id": 18348136, "num_posts": 76, "closed": true, "queued": false, "killed": false}, "reactions_limit": 10, "context": {"show_reply": false, "use_fb_connect": true, "forum_facebook_key": "faaf467d0f47abde553c3b8e0e1b3570", "use_yahoo": false, "subscribed": false, "use_twitter_signin": true, "use_openid": false, "realtime_speed": 5000}, "reactions_start": 0, "settings": {"debug": false, "disqus_url": "http://disqus.com", "media_url": "http://media.disqus.com"}, "media_url": "http://media.disqus.com"};
	/* */ this.jsonData.cookie_messages = {"user_created": null, "post_has_profile": null, "post_twitter": null, "post_not_approved": null}; this.jsonData.session = {"url": null, "name": null, "email": null}; /* */

	
	this.curPageId = 'dsq-comments';

	this.frames = {};
};

var disqus_popup_reference = null;

if(typeof DsqLocal == 'undefined') {
	DsqLocal = {};
}



/**
 * Dsq.Strings: UI strings
 */
Dsq.Strings = new function() {
	this.ADD_NEW_COMMENT = "Add New Comment";
	this.LOG_INTO_DISQUS = "Log into DISQUS";
	this.USE_MEDIA = "Use Media";
	this.LOGOUT = "Logout";
	this.SHARING_OPTIONS = "Sharing options";
	this.SHARE_ON = "Share on";
	this.TWEET_THIS_COMMENT = "Tweet this comment";
	this.SHARE_ON_NEWSFEED = "Share on news feed";
	this.SEND_UPDATE_TO_YAHOO = "Send update to Yahoo!";
	this.REBLOG_ON = "Reblog on";
	this.CONFIGURE_OPTIONS = "Configure options";
	this.POST_AS = "Post as";
	this.SORT_BY = "Sort by";
	this.SUBSCRIBE_BY_EMAIL = "Subscribe by email";
	this.SUBSCRIBE_BY_RSS = "Subscribe by RSS";
	this.POPULAR_NOW = "Popular now";
	this.BEST_RATING = "Best Rating";
	this.NEWEST_FIRST = "Newest first";
	this.OLDEST_FIRST = "Oldest first";
	this.HIGHLIGHTED = "Highlighted";
	this.UNSUBSCRIBE = "Unsubscribe";
	this.REQUIRED = "Required";
	this.OPTIONAL = "Optional";
	this.YOU_ARE_COMMENTING_AS_A = "You are commenting as a";
	this.LOGIN_BELOW = "Login below";
	this.PLEASE_LOGIN_BELOW_TO_COMMENT = "Please login below to comment.";
	this.SUBSCRIBE_TO_ALL_COMMENTS_BY_EMAIL = "Subscribe to all comments by email";
	this.DO_NOT_SUBSCRIBE_TO_COMMENTS = "Do not subscribe to comments";
	this.REALTIME_UPDATING_IS = "Real-time updating is";
	this.ENABLED = "enabled";
	this.PAUSED = "paused";
	this.PAUSE = "Pause";
	this.RESUME = "Resume";
	this.SHOW = "Show";
	this.JUST_NOW = "Just now";
	this.REPLY = "Reply";
	this.EDIT = "Edit";
	this.FLAG = "Flag";
	this.MODERATE = "Moderate";
	this.CANCEL = "Cancel";
	this.REPLYING_TO = "Replying to";
	this.REPORT_MISSING_REACTIONS = "Report missing reactions";
	this.POST_A_COMMENT = "Post a comment";
	this.FLAG_INAPPROPRIATE_COMMENT = "Flag inappropriate comment";
	this.FLAGGED = "Flagged";
	this.NO = "No";
	this.YES = "Yes";
	this.NEVER_MIND = "Never mind";
	this.ARE_YOU_SURE_YOU_WOULD_LIKE_TO_REPORT_THIS_COMMENT_TO_A_MODERATOR = "Are you sure you would like to report this comment to a moderator";
	this.THIS_WILL_FLAG_COMMENTS_FOR_MODERATORS_TO_TAKE_ACTION = "This will flag comments for moderators to take action";
	this.TO_RATE_PLEASE_LOG_IN = "To rate, please log in";
	this.JUST_A_MOMENT = "Just a moment...";
	this.GUEST = "Guest";
	this.NAME = "Name";
	this.EMAIL = "Email";
  this.WEBSITE = "Website";
  this.SETTINGS = "Settings";
  this.MODERATOR_OPTIONS = "Moderator options: ";
  this.MODERATE_OPTIONS = "Moderate Options";

  // Thread moderator actions
  this.CLOSE_THREAD = "Close thread";
  this.OPEN_THREAD = "Open thread";
  this.REMOVE_THREAD = "Remove thread";
  this.RESTORE_THREAD = "Restore thread";
  this.ACTIONS = "Actions";
};
// Dsq.Strings

/**
 * Dsq.FmtStrings: functions that return interpolated UI strings
 */
Dsq.FmtStrings = new function() {
	// Seems we have to use named interpolation for Django to translate. Investigate more.
	this.LOGGED_IN_AS = function(username) {
		return Dsq.Utils.interpolate('Logged in as %(username)s', {username:username});
	};

	this.LOGOUT_FROM = function(disqus) {
		return Dsq.Utils.interpolate('Logout from %(disqus)s', {disqus:disqus});
	};

	this.SHOWING_COMMENTS_FULL = function(total, num) {
		if (num === 1) {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> of <span id='dsq-total-posts'>%(total)s</span> comment", {num:num, total:total});
		} else {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> of <span id='dsq-total-posts'>%(total)s</span> comments", {num:num, total:total});
		}
	};

	this.SHOWING_COMMENTS_WITHOUT_PAGINATION = function(num) {
		if (num === 1) {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> comment", {num:num});
		} else {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> comments", {num:num});
		}
	};

	this.NUMBER_OF_COMMENTS = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s comment'
				: '%(num)s comments'
			), {num:num});
	};

	this.NUMBER_OF_LIKES = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s like'
				: '%(num)s likes'
			), {num:num});
	};

	this.NUMBER_OF_POINTS = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s point'
				: '%(num)s points'
			), {num:num});
	};
};
// Dsq.FmtStrings





Dsq.CSRF_TOKEN = 'a2d140c59df8cd4ce27a20e0829cacd8';
Dsq.COMMENTS_RE = /(<li.*?id="?dsq-comment-(\d+)"?.*?>)((?:.|\s)*?)(<\/li>)/gim;
Dsq.POST_RE = /(<div.*?id="?dsq-comment-header-(\d+)"?.*?>)((?:.|\s)*?)(<\/div>)\s*(<div.*?class="?dsq-comment-body"?.*?>)((?:.|\s)*)(<\/div>)/gim;
Dsq.POST_BODY_RE = /\s*(<div.*?id="?dsq-comment-message-(\d+)"?.*?>)((?:.|\s)*)(<\/div>)/gim;
// HACK: Safari ends with "-->" while other browsers end with "--&gt;" as expected.
Dsq.MEDIA_POST_RE = /&lt;!--\[(.*?)\]--(?:>|&gt;)/gim;



var FragmentPacket = function(reader, writer, writer_url, is_child, receiveCallback) {
	var that = this;
	this.reader = reader;
	this.writer = writer;
	this.writer_url = writer_url;

	this.is_child = is_child || false;
	this.receiveCallback = receiveCallback;

	this._lastHash = null;

	this._accumMsg = '';

	this._lastSeqno = 0;

	this.MAX_DATA_LEN	= 1024;

	this.WAIT_TIME		= 10;

	this.READY		= 0x1;
	this.WRITING	= 0x2;
	this.FIN		= 0x4;
	this.ACK		= 0x8;

};

FragmentPacket.prototype.createListener = function() {
	var that = this;
	var listener = function() {
		that.recv();
	};
	return window.setInterval(listener, 10);
};

FragmentPacket.prototype.log = function(msg) {



};

FragmentPacket.prototype.recv = function() {
	var hash;
	if (/MSIE/.test(navigator.userAgent)) {

		hash = this.reader.name;
	} else {

		var hashIndex = this.reader.location.href.indexOf('#');
		if (hashIndex == -1) {
			return;
		}
		hash = this.reader.location.href.substring(hashIndex+1);
	}
	var flags = parseInt(hash.substring(0, 4), 10);
	var seqno = parseInt(hash.substring(4, 24), 10);
	var data  = hash.substring(24);

	if (this._lastHash !== hash) {
		this._lastHash = hash;
		this.log('recv: ' + hash);

		this.log(' flags: ' + flags);
		this.log(' seqno: ' + seqno + ' len: ' + hash.substring(4, 24).length + ' (' + hash.substring(4, 24) + ')');
		this.log(' data: ' + data + ' len: ' + data.length);

		this._lastSeqno = seqno;

		if (flags & this.WRITING) {
			this._accumMsg += data;
			this.sendFlag(this.ACK, seqno);
			if (flags & this.FIN) {
				this.log('recv finished: ' + decodeURIComponent(this._accumMsg));
				this.receiveCallback(decodeURIComponent(this._accumMsg));

				this._accumMsg = '';

				this.sendFlag(this.READY | this.ACK, this._lastSeqno);
			}
		}
	}

	return {
		flags: flags,
		seqno: seqno,
		data: data
	};
};

FragmentPacket.prototype.sendRawPacket = function(packet) {
	if (/MSIE/.test(navigator.userAgent)) {
		this.writer.name = packet;
	} else {

		this.writer.location.href = this.writer_url + '#' + packet;
	}

};

FragmentPacket.prototype.sendFlag = function(flag, seqno) {
	this.sendRawPacket(this._zerofill(flag, 4) + this._zerofill(seqno, 20));
};

FragmentPacket.prototype.send = function(msg) {
	this._send(0, encodeURIComponent(msg));
};

FragmentPacket.prototype._send = function(packetNum, msg) {
	var that = this;
	var recvBuf = this.recv();

	if (packetNum === 0) {

		if (!(recvBuf.flags & this.READY)) {
			this.log('client is not ready, waiting...');
			window.setTimeout(function() { that._send(packetNum, msg); }, this.WAIT_TIME);
			return;
		}
	} else {

		if (!( (recvBuf.flags & this.ACK) && (recvBuf.seqno === this._lastSeqno) )) {
			this.log('waiting for ack from client...');
			window.setTimeout(function() { that._send(packetNum, msg); }, this.WAIT_TIME);
			return;
		} else {
			this.log('received ack: ' + this._lastSeqno + ' ' + recvBuf.seqno);
		}
	}

	var flags = this.WRITING;
	var num_packets = Math.ceil(msg.length / this.MAX_DATA_LEN);
	this.log('num_packets: ' + num_packets);

	if (num_packets === packetNum) {

		this.log('message successfully sent!');
		this.sendFlag(this.READY | this.ACK, this._lastSeqno);
		return true;
	}

	this._lastSeqno++;

	if (packetNum == num_packets-1) {
		flags |= this.FIN;
	}

	var data = msg.substring(packetNum * this.MAX_DATA_LEN, (packetNum+1) * this.MAX_DATA_LEN);
	var packet = this._zerofill(flags, 4) + this._zerofill(this._lastSeqno, 20) + data;

	this.log('sending raw packet: ' + packet);
	this.sendRawPacket(packet);

	return this._send(packetNum + 1, msg);
};

FragmentPacket.prototype._zerofill = function(num, width) {
	var retval = num.toString();
	var retval_len = retval.length;
	for (var i = 0; i < width - retval_len; i++) {
		retval = '0' + retval;
	}
	return retval;
};

var PostMessagePacket = function(receiver, receiveCallback, id, receiverId) {
	var that = this;
	this.receiver = receiver;
	this.receiveCallback = receiveCallback;
	this.id = id;


	this.receiverId = receiverId;
};

PostMessagePacket.prototype.createListener = function() {
	var that = this;

	var listener = function(e) {

		if (!that.id) {
			that.id = e.data;
			return;
		}


		var id = e.data.split(';')[0];
		if (id !== that.id) {
			return;
		}
		var data = e.data.substring(e.data.indexOf(';') + 1);

		that.receiveCallback(data);
	};

	if (typeof window.attachEvent == 'function') {
		window.attachEvent('onmessage', listener);
	} else if (typeof window.addEventListener == 'function') {
		window.addEventListener('message', listener, false);
	} else {
		throw new Error('No method found to create event listener for PostMessagePacket.');
	}
};

PostMessagePacket.prototype.send = function(msg) {



	var needs_reget = false;
	try {
		if (typeof this.receiver.id == 'undefined' || typeof this.receiver.postMessage == 'undefined') {
			needs_reget = true;
		}
	} catch(e) {


	}
	if (needs_reget && typeof this.receiverId != 'undefined') {
		this.receiver = document.getElementById(this.receiverId).contentWindow;
	}

	var packet;
	if (!msg) {

		packet = this.id;
	} else {
		packet = this.id + ';' + msg;
	}
	this.receiver.postMessage(packet, '*');
};

PostMessagePacket._last_unique_id = null;
PostMessagePacket._get_unique_id = function() {
	var id = (new Date()).getTime();
	if (id == PostMessagePacket._last_unique_id) {
		id++;
	}
	PostMessagePacket._last_unique_id = id;
	return id.toString();
};

var JsonRpc = function() {

	this.ids = {};

	this.objectToJSON = function(obj) {
		var json = '';
		var results = [];

		if (obj === undefined || obj === null) {
			return 'null';
		}

		switch (obj.constructor) {
			case Object:
				for (var property in obj) {
					if (obj.hasOwnProperty(property)) {
						results.push(this.objectToJSON(property) + ': ' + this.objectToJSON(obj[property]));
					}
				}
				json = '{' + results.join(', ') + '}';
				break;
			case Array:
				for (var i = 0; i < obj.length; i++) {
					results.push(this.objectToJSON(obj[i]));
				}
				json = '[' + results.join(', ') + ']';
				break;
			case Number:
			case Boolean:
				json = obj.toString();
				break;
			case String:

				var specialChars = {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '\\': '\\\\'};

				json = obj.replace(/[\x00-\x1f\\]/g, function(match) {
					var ch = specialChars[match];
					return ch ? ch : '\\u00' + match.charCodeAt().toPaddedString(2, 16);
				});

				json = '"' + json.replace(/"/g, '\\"') + '"';
				break;
			default:

				json = 'null';
				break;
		}

		return json;
	};

	this.createHandler = function(send_func, registered_funcs) {
		var that = this;
		var handler = function(message) {

			try {
				var rpc = eval('(' + message + ')');
			} catch(e) {
				alert('bad JSON: ' + message);
				return;
			}
			if (rpc.method) {

				if (!registered_funcs[rpc.method]) {
					return;
				}

				var retval = registered_funcs[rpc.method].apply(null, rpc.params);
				if (rpc.id) {
					var response = {
						result: retval,
						error: null,	// TODO
						id: rpc.id
					};
					send_func(that.objectToJSON(response));
				}
			} else if(rpc.result) {

				if (!that.ids[rpc.id]) {
					return;
				}

				that.ids[rpc.id](rpc.result);
				delete that.ids[rpc.id];
			}
		};
		return handler;
	};

	this.execute = function(send_func, method, params, response_callback) {
		response_callback = response_callback || null;
		var id = (response_callback) ? (new Date()).getTime() : null;

		var request = {
			method: method,
			params: params,
			id: id
		};

		send_func(this.objectToJSON(request));

		if (id) {
			this.ids[id] = response_callback;
		}
	};
};
JsonRpc = new JsonRpc();

var ParentMessenger = function(childUrl, receiverUrl, container, receiveCallback) {


	if (navigator.userAgent.indexOf('Safari') >= 0 && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf('Version/') + 8), 10) == 3) {
		throw new Error("unsupported.");
	} else if (window.opera) {
		throw new Error("unsupported.");
	}



	if (!receiverUrl &&
		navigator.userAgent.indexOf('Gecko') >= 0 &&
		parseFloat(navigator.userAgent.slice(navigator.userAgent.indexOf('rv:') + 3, navigator.userAgent.indexOf('rv:') + 6)) < 1.9) {
		throw new Error("unsupported.");
	}


	if (/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent)) {


		if (document.domain == window.location.hostname) {
			receiverUrl = '';
		}
	}

	var that = this;
	this.childUrl = childUrl;
	this.receiverUrl = receiverUrl;
	this.container = container || document.body;

	this.packetHandler = null;


	this._ready = false;
	this._error = false;


	var _createReceiverForFragmentPacket = function() {

		that.receiver = document.createElement('iframe');
		that.receiver.src = receiverUrl;
		that.receiver.id = 'receiver_' + (new Date()).getTime();
		that.receiver.name = that.receiver.id;

		that.receiver.frameBorder = '0';
		that.receiver.frameSpacing = '0';
		that.receiver.style.borderStyle = 'none';

		var receiver_onload = function() {
			var receiver = document.getElementById(that.receiver.id).contentWindow;

			try {
				receiver.document.body.innerHTML = '';
			} catch(e) {

				that._error = true;
			}
			receiver.document.body.style.padding = '0px';
			receiver.document.body.style.margin = '0px';

			var child = receiver.document.createElement('iframe');
			child.id = 'child';
			child.name = 'child';
			child.src = that.childUrl;

			child.frameBorder = '0';
			child.frameSpacing = '0';
			child.style.borderStyle = 'none';
			child.style.width = '100%';
			child.style.height = '100%';
			receiver.document.body.appendChild(child);

			that.child = receiver.document.getElementById('child').contentWindow;
			that.receiver = receiver;

			that.packetHandler = new FragmentPacket(that.receiver, that.child, that.childUrl, false, receiveCallback);

			that._listener = that.packetHandler.createListener();

			that.packetHandler.sendFlag(that.packetHandler.READY, 0);

			that._ready = true;
		};

		that.receiver.onreadystatechange = function() {
			if (this.readyState == 'complete') {
				receiver_onload();
			}
		};

		that.receiver.onload = receiver_onload;







		if (Dsq.Utils.ie) {
			if (that.container.clientWidth === 0) {

				var _waitForWidth = function() {
					if (that.container.clientWidth > 0) {
						Dsq.Utils.fixIframesIE(that.container.id);
					} else {
						window.setTimeout(_waitForWidth, 100);
					}
				};
				_waitForWidth();

				that._once = false;
				that.receiver.onresize = function() {
					if (!that._once) {
						Dsq.Utils.fixIframesIE(that.container.id);
					}
					that._once = true;
				};
			}
		}

		that.container.appendChild(that.receiver);
	};


	var _createReceiverForPostMessage = function() {

		var receiver_onload = function() {

			that.packetHandler.send();
			that._ready = true;
		};

		var id = PostMessagePacket._get_unique_id();
		var receiverId = 'child_' + id;


		ParentMessenger['_receiver_onload_' + receiverId] = receiver_onload;

		that.container.innerHTML += '<iframe ' +
			'src="' + childUrl + '" ' +
			'id="' + receiverId + '" ' +
			'name="' + receiverId + '" ' +
			'onload="ParentMessenger._receiver_onload_' + receiverId +'();" ' +
			'></iframe>';

		that.receiver = document.getElementById(receiverId).contentWindow;
		that.packetHandler = new PostMessagePacket(that.receiver, receiveCallback, id, receiverId);
		that._listener = that.packetHandler.createListener();
	};

	if (typeof window.postMessage == 'function') {
		_createReceiverForPostMessage();
	} else {
		_createReceiverForFragmentPacket();
	}

};

ParentMessenger.prototype.sendMessage = function(message) {
	var that = this;
	if (!this._ready) {

		window.setTimeout(function() { that.sendMessage(message); }, 10);
		return;
	}
	this.packetHandler.send(message);
	return true;
};

Dsq.NewFrames = function(url) {
	this.url = url;
};

Dsq.NewFrames.prototype.init = function(onFailure) {
	var that = this;

	try {
		this.messenger = new ParentMessenger(this.url, Dsq.jsonData.integration.receiver_url, this.container, this.receive_callback);
	} catch(e) {
		if (typeof onFailure == 'function') {
			onFailure();
		}
	}

	if (typeof onFailure == 'function') {
		var iId = window.setInterval(function() {
			if (typeof that.messenger == 'undefined') {
				window.clearInterval(iId);
				return;
			}
			if (that.messenger._ready) {
				window.clearInterval(iId);
			} else if (that.messenger._error) {
				window.clearInterval(iId);
				onFailure();
			}
		}, 10);
	}
};

Dsq.NewFrames.prototype._execute = function(method, args, callback) {
	var that = this;
	if (typeof that.messenger == 'undefined') {
		return false;
	}
	JsonRpc.execute(
		function(msg) { that.messenger.sendMessage(msg); },
		method,
		args || [],
		callback);
	return true;
};

Dsq.ReplyFrame = function(container, parent_post_id) {
	var that = this;
	this.container = container;
	this.parent_post_id = parent_post_id;

	var sendFunc = function(msg) {

		Dsq.Debug.log('Dsq.ReplyFrame.sendFunc');
		that.messenger.sendMessage(msg);
	};


	var postComment_onSuccess = function(response) {
		Dsq.jsonData.posts[response.message.id] = response.message.post_meta;
		if (!Dsq.jsonData.users[response.message.post_meta.user_key]) {
			Dsq.jsonData.users[response.message.post_meta.user_key] = response.message.user_meta;
		}


		var reply_position = (typeof(disqus_insert_wrt_sort) == 'undefined' 
			? (Dsq.jsonData.forum.reply_position ? -1 : null) 
			: (Dsq.jsonData.request.sort == 2 ? null : -1));
		
		if (response.message.post_meta.approved) {
			Dsq.Post.insert(response.message.post_meta.parent_post_id || reply_position, response.message.id, response.message.post_meta.message);
		}

		Dsq.Templates.postComment_onSuccess(response, parent_post_id, response.message.id);
	};

	var postComment_onFailure = function(response) {
		Dsq.Popup.popModal(response.message, 'Error');
		Dsq.Templates.postComment_onFailure(response, parent_post_id, response.message.id);
	};

	var editComment_onSuccess = function(response) {
		var post_id = parent_post_id;
		var message = Dsq.$('dsq-comment-message-' + post_id);
		
		message.innerHTML = response.message;
		Dsq.Templates.toggleEdit(post_id);
		Dsq.Templates.setLoadingButton(false);
	};
	
	var editComment_onFailure = function(response) {
		var post_id = parent_post_id;
		
		Dsq.Popup.popModal('Sorry, there was an error editing this comment.', 'Edit Error');
		Dsq.Templates.toggleEdit(post_id);
		Dsq.Templates.setLoadingButton(false);
	};

	var getUserByEmail_onSuccess = function(response) {
		var msg = response.message;
		var fields = Dsq.Templates.getFormFields(parent_post_id);

		if (msg.username) {

			Dsq.Templates.lightboxAuthenticate(parent_post_id, 'login', {
				'username': msg.username,
				'display_name': msg.display_name,
				'avatar_url': msg.avatar_url,
				'verified': msg.verified,
				'email': fields.email.value
			});
		} else {

			Dsq.Templates.lightboxAuthenticate(parent_post_id, 'register');
		}
	};

	var validateAuth_onSuccess = function(response, auth_choice) {
		Dsq.Templates.postComment(parent_post_id, null, true, auth_choice);
	};

	var validateAuth_onFailure = function(response, auth_choice) {
		var pid = parent_post_id ? '-' + parent_post_id : '';
		var msg = response.message;

		if (auth_choice == 'register') {
			var fields = ['email', 'username', 'password'];

			for (var i = 0; i < fields.length; i++) {
				var field = fields[i];
				var errorDiv = Dsq.$('dsq-' + field + '-errors' + pid);

				if (msg[field]) {
					errorDiv.innerHTML = msg[field];
				} else {
					errorDiv.innerHTML = '';
				}
			}
		} else if (auth_choice == 'login') {
			Dsq.$('dsq-lightbox-errors' + pid).innerHTML = '<p>We couldn\'t log you in. Please verify your login.</p>';
		}
		
		Dsq.Templates.setLoadingButton(false);
	};

	this.receive_callback = JsonRpc.createHandler(sendFunc, {
		'postComment.onSuccess': postComment_onSuccess,
		'postComment.onFailure': postComment_onFailure,
		'editComment.onSuccess': editComment_onSuccess,
		'editComment.onFailure': editComment_onFailure,		
		'getUserByEmail.onSuccess': getUserByEmail_onSuccess,
		'validateAuth.onSuccess': validateAuth_onSuccess,
		'validateAuth.onFailure': validateAuth_onFailure,
		'reload': function() { window.location.reload(); }
	});

	this.url = Dsq.Urls.REPLY +
		'?' + (new Date()).getTime() +
		'&f=scobleizer' +
		'&t=nokia_n97_the_ultimate_facebook_device' +
		'&ff=' + Dsq.Thread.ff +
		'&default_text=' + encodeURIComponent(disqus_default_text) +
		'&ifrs=' + encodeURIComponent(disqus_iframe_css);
	if (this.parent_post_id) {
		this.url += '&parent_post=' + this.parent_post_id;
	}
};

Dsq.ReplyFrame.prototype = new Dsq.NewFrames(Dsq.ReplyFrame.url);

Dsq.ReplyFrame.prototype.post = function(author_name, author_email, author_url, authenticate, sharing_services, subscribe) {
	this._execute('postComment', [author_name, author_email, author_url, authenticate, sharing_services, subscribe]);
};

Dsq.ReplyFrame.prototype.edit = function(post_id, message) {
	this._execute('editComment', [post_id, message]);
};

Dsq.ReplyFrame.prototype.setState = function(parent_post_id, depth) {
	this._execute('setState', [parent_post_id, depth]);
};

Dsq.ReplyFrame.prototype.getUserByEmail = function(email) {
	this._execute('getUserByEmail', [email]);
};

Dsq.ReplyFrame.prototype.validateAuth = function(auth_choice, email, username, password) {
	this._execute('validateAuth', [auth_choice, email, username, password]);
};

Dsq.ReplyFrame.prototype.authenticateFacebook = function(session, forum_url) {
	this._execute('authenticateFacebook', [session, forum_url]);
};

	Dsq.Facebook = function() {
	var that = this;

	var handleSessionData = function(session) {

		var forum_url = Dsq.jsonData.forum.url;




		if (typeof disqus_facebook_forum != 'undefined') {
			forum_url = disqus_facebook_forum;
		}
		Dsq.frames.reply_0.authenticateFacebook(session, forum_url);
	};

	var onLogin = function() {
		FB.Connect.getSignedPublicSessionData(handleSessionData);
	};

	this.login = function() {
		FB.Connect.requireSession(onLogin, true);
	};
};
Dsq.Facebook = new Dsq.Facebook();


	






Dsq.Themes = {};

Dsq.Themes.narcissus = new function() {
	this.addPostContainer = 'dsq-form-area';
	this.textareaContainer = 'dsq-textarea-wrapper';



	
	this.header = function() {
		var comments_count, total_posts, num_posts;
		var html = '';
		var missing_perm_tmpl;

		if (Dsq.jsonData.request.missing_perm) {
			missing_perm_tmpl = Dsq.Templates.missingPermissions();
			if (missing_perm_tmpl) {
				html += '<div class="dsq-missing-permissions">' + missing_perm_tmpl + '</div>';
			}
		}

		total_posts = Dsq.jsonData.thread.total_posts;
		num_posts = Dsq.jsonData.thread.num_posts;

		if (total_posts) {
			comments_count = Dsq.FmtStrings.SHOWING_COMMENTS_FULL(total_posts, num_posts);
		} else {
			comments_count = Dsq.FmtStrings.SHOWING_COMMENTS_WITHOUT_PAGINATION(num_posts);
		}

		html += ' \
		<div id="dsq-comments-title"> \
			<h3>' + comments_count + '</h3> \
		</div> \
		';

		html += ' \
		<div class="dsq-options"> \
			<span class="dsq-item-sort">'
				+ Dsq.Strings.SORT_BY + ' \
				<select id="dsq-sort-select" onchange="Dsq.Thread.sortBy(this.value);"> \
					<option value="hot" ' + (Dsq.jsonData.request.sort == 4 ? 'selected="selected"' : '') + '>' + Dsq.Strings.POPULAR_NOW + '</option> \
					<option value="best" ' + (Dsq.jsonData.request.sort == 3 ? 'selected="selected"' : '') + '>' + Dsq.Strings.BEST_RATING + '</option> \
					<option value="newest" ' + (Dsq.jsonData.request.sort == 2 ? 'selected="selected"' : '') + '>' + Dsq.Strings.NEWEST_FIRST + '</option> \
					<option value="oldest" ' + (Dsq.jsonData.request.sort == 1 ? 'selected="selected"' : '') + '>' + Dsq.Strings.OLDEST_FIRST + '</option> \
				</select> \
				&nbsp; \
			</span> \
			<span class="dsq-subscribe-email"> \
				<img src="http://media.disqus.com/images/embed/email.png" style="width:12px;height:12px;vertical-align:middle"> \
				<span id="dsq-subscribe">'
					+ (Dsq.jsonData.context.subscribed
						? '<a href="#" onclick="Dsq.Thread.subscribe(0); return false">' + Dsq.Strings.UNSUBSCRIBE + '</a>'
						: '<a href="#" onclick="Dsq.Thread.subscribe(1); return false">' + Dsq.Strings.SUBSCRIBE_BY_EMAIL + '</a>')
				+ '</span> \
			</span> \
			<span class="dsq-subscribe-rss" style="width:12px;height:12px;vertical-align:middle"> \
				<img src="http://media.disqus.com/images/embed/bullet-feed.png" alt="" /> \
				<a href="http://scobleizer.disqus.com/nokia_n97_the_ultimate_facebook_device/latest.rss">' + Dsq.Strings.SUBSCRIBE_BY_RSS + '</a> \
			</span> \
		</div> \
		';

		
		

		return html;

	};
	
	this.footer = function() {
		var html = '';

		html += Dsq.Templates.pagination();

		
		
			html += Dsq.Templates.realtime();
			html += Dsq.Templates.showThreadSettings();
			html += Dsq.Templates.postBox();

		html += Dsq.Templates.reactions();

		
			html += Dsq.Templates.trackbacks();
		


		if (Dsq.jsonData.request.is_global_moderator) {
 			html += ' \
				<div class="dsq-global-moderator-extras">'
					+ '<strong>shortname:</strong> ' + Dsq.jsonData.forum.url
					+ '<strong>thread id:</strong> ' + Dsq.jsonData.thread.id
					+ '<strong>thread slug:</strong> ' + Dsq.jsonData.thread.slug
				+ '</div> \
			';
		}

		return html;
	};
	
	this.realtime = function() {
		var html = '';
		
		if (Dsq.jsonData.realtime_enabled) {
			html += '<div id="dsq-realtime-options" class="dsq-options">'
					 + Dsq.Strings.REALTIME_UPDATING_IS + ' <strong id="dsq-realtime-status" style="text-transform: lowercase">' + Dsq.Strings.ENABLED + '</strong>. \
					 <a href="#" id="dsq-realtime-toggle" style="text-transform: capitalize"></a> \
					</div>';
		}

		if (!Dsq.jsonData.forum.streaming_realtime) {
			html += ' \
				<div style="display: none" id="dsq-realtime-alert" class="dsq-realtime-alert"><span id="dsq-realtime-queued"></span> <a href="#" id="dsq-realtime-show"></a></div> \
			';
		}
		
		return html;
	};

	this.showThreadSettings = function() {
		if (!Dsq.jsonData.request.is_moderator) {
			return '';
		}

		html = '<div id="dsq-thread-settings" class="dsq-thread-settings">' + Dsq.Strings.MODERATOR_OPTIONS;
		html += '<a href="#" onclick="Dsq.Thread.showSettings(); return false;">' + Dsq.Strings.SETTINGS + '</a>';
		html += '<a href="#" onclick="Dsq.Thread.showModeratorActions(); return false;">' + Dsq.Strings.MODERATE + '</a>';
		if (Dsq.jsonData.forum.reactions_enabled && Dsq.jsonData.reactions.length === 0) {
			html += '<a href="#" onclick="Dsq.Reaction.reportMissingReactions(); return false;">'
						+ Dsq.Strings.REPORT_MISSING_REACTIONS
						+ '</a>';
		}
		html +='</div>';

		return html;
	};

	this.postBox = function(post_id, use_fallback_iframe) {


		var html;
		var display_sharing_options = Dsq.jsonData.request.is_authenticated;

		if (!Dsq.jsonData.request.is_authenticated && Dsq.jsonData.forum.disqus_auth_disabled && !Dsq.jsonData.forum.allow_anon_post) {
			return '';
		}
		
		if (Dsq.jsonData.request.is_remote) {


			if (!Dsq.jsonData.request.sharing.hasOwnProperty(Dsq.jsonData.request.remote_domain)) {
				display_sharing_options = false;
			}
		}
		
		if (post_id) {
			var _meta = Dsq.jsonData.posts[post_id];
			var userData = Dsq.jsonData['users'][_meta.user_key];				
		}
		
		var pid = post_id ? '-' + post_id : '';

		var _requestUserInfo = function() {
			var html;



			var user_has_email = false;

			html = '<div class="dsq-request-user-info"> <!-- // If authenticated --> \
				<a href="' + Dsq.jsonData.settings.disqus_url + Dsq.Urls.LOGOUT + '?ctkn=' + Dsq.CSRF_TOKEN + '" class="dsq-request-user-logout">' + Dsq.Strings.LOGOUT + '</a> \
				<table> \
					<tr> \
						<td rowspan="2">'
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '<a href="' + Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE + '">' : '')
								+ '<img src="' + Dsq.Urls.REQUEST_USER_AVATAR + '" width="48" height="48" class="dsq-request-user-avatar">'
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '</a>' : '')
						+ '</td> \
						<td class="dsq-request-user-name">'
								+ (Dsq.jsonData.request.is_remote
									 ? '<span class="dsq-badge-small dsq-badge-' + Dsq.jsonData.request.remote_domain + '">' + Dsq.jsonData.request.remote_domain + '</span>'
									 : (Dsq.jsonData.request.is_verified
											? '<span class="dsq-badge-small dsq-badge-verified">Verified</span>'
											: '<span class="dsq-badge-small dsq-badge-registered">Registered</span>'))
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? ' <a href="' + Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE + '">' : '') 
								+ Dsq.jsonData.request.display_username 
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '</a>' : '')
							+  (Dsq.jsonData.request.is_remote && user_has_email ? ' <small>(<a href="#" onclick="Dsq.Popup.remoteAccountSettings(); return false;">change settings</a>)</small>' : '')
							+  (!Dsq.jsonData.request.is_remote && !Dsq.jsonData.forum.disqus_auth_disabled ? ' <small>(<a href="' + Dsq.jsonData.settings.disqus_url + '/profile/info/" target="_blank">change name</a> or <a href="' + Dsq.jsonData.settings.disqus_url + '/profile/avatar/" target="_blank">picture</a>)</small>' : '')
						+ '</td> \
					</tr> \
					<tr> \
						<td class="dsq-request-user-stats"> \
							<span><big>' + Dsq.jsonData.request.comments_count + '</big> ' + (Dsq.jsonData.request.comments_count == 1 ? 'comment' : 'comments') + '</span> \
							<span><big>' + Dsq.jsonData.request.likes_count + '</big> ' + (Dsq.jsonData.request.likes_count == 1 ? 'like' : 'likes') + '</span> \
							<span><big>' + Dsq.jsonData.request.points + '</big> ' + (Dsq.jsonData.request.points == 1 ? 'point' : 'points') + '</span> \
						</td> \
					</tr> \
				</table> \
			</div> \
			';
			return html;
		};

		var _loginOptions = function() {
			var html;
			html = ' \
			<div class="dsq-authenticate"> \
				<p class="dsq-autheneticate-copy">'
				+ (Dsq.jsonData.forum.allow_anon_post
					? Dsq.Strings.YOU_ARE_COMMENTING_AS_A + ' <a class="dsq-help" title="Click for more information" href="#" onclick="Dsq.Popup.helpBadges(); return false">Guest</a>. ' + Dsq.Strings.OPTIONAL + ': ' + Dsq.Strings.LOGIN_BELOW + '.'
					: Dsq.Strings.REQUIRED + ': ' + Dsq.Strings.PLEASE_LOGIN_BELOW_TO_COMMENT + '.')
				+ '</p> \
				<ul class="dsq-login-buttons">'
					+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Popup.login(); return false"><img src="http://media.disqus.com/images/themes/narcissus/login-disqus.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_fb_connect ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Facebook.login(); return false;"><img src="http://media.disqus.com/images/themes/narcissus/login-facebook.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_twitter_signin ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Twitter.startTwitterConnect(); return false"><img src="http://media.disqus.com/images/themes/narcissus/login-twitter.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_openid ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.OpenID.requestURL(); return false" ><img src="http://media.disqus.com/images/themes/narcissus/login-openid.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_yahoo ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Yahoo.startYahooConnect(); return false"><img src="http://media.disqus.com/images/themes/narcissus/login-yahoo.gif" /></a></li>' : '')
				+ '</ul> \
			</div> \
			';
			return html;
		};

		if (!Dsq.jsonData.context.show_reply) {


			if (!Dsq.jsonData.request.is_authenticated) {



				return '<div id="dsq-form-area" style="display:none"><div id="dsq-textarea-wrapper"></div></div>' + _loginOptions();
			} else {
				return '';
			}
		}

		html = ' \
		<div id="' + (post_id 
			? 'dsq-reply-post-' + post_id
			: 'dsq-new-post')
		 	+ '" class="dsq-post-area"> \
			<div class="dsq-dc-logo"> \
				<a href="http://disqus.com/comments" target="_blank"><img src="http://media.disqus.com/images/themes/narcissus/disqus-logo.png"></a> \
			</div>'
			+ (post_id 
				? '<h3>' + Dsq.Strings.REPLYING_TO + ' ' + userData.display_name + '</h3>'
				: '<h3>' + Dsq.Strings.ADD_NEW_COMMENT + '</h3>')
			+ (Dsq.jsonData.request.is_authenticated 
				? _requestUserInfo()
				: _loginOptions() )
			+ '<div id="dsq-form-area' + pid + '">'
			+ '<div class="dsq-textarea"> \
				<div class="dsq-textarea-wrapper" id="dsq-textarea-wrapper' + pid + '"></div> \
			</div>'
			+ (!Dsq.jsonData.request.is_authenticated
			? ' \
			<div class="dsq-post-fields"> \
				<table> \
					<tr> \
						<td class="dsq-post-fields-left"><div class="dsq-input-wrapper"><input id="dsq-field-name' + pid + '" type="text" value="' + (disqus_def_name ? disqus_def_name : (Dsq.jsonData.session.name ? Dsq.jsonData.session.name : Dsq.Strings.NAME + '" class="dsq-placeholder')) + '" onfocus="Dsq.Templates.handlePlaceholder(event, this, \'name\')" onblur="Dsq.Templates.handlePlaceholder(event, this, \'name\')" /></div></td> \
						<td class="dsq-post-fields-right"><div class="dsq-input-wrapper"><input id="dsq-field-website' + pid + '" type="text" value="' + (Dsq.jsonData.session.url ? Dsq.jsonData.session.url : Dsq.Strings.WEBSITE + ' (' + Dsq.Strings.OPTIONAL.toLowerCase() + ')" class="dsq-placeholder') + '" onfocus="Dsq.Templates.handlePlaceholder(event, this, \'website\')" onblur="Dsq.Templates.handlePlaceholder(event, this, \'website\')" /></div></td> \
					</tr> \
					<tr> \
						<td class="dsq-post-fields-left"><div class="dsq-input-wrapper"><input id="dsq-field-email' + pid + '" type="text" value="' + (disqus_def_email ? disqus_def_email : (Dsq.jsonData.session.email ? Dsq.jsonData.session.email : Dsq.Strings.EMAIL + '" class="dsq-placeholder')) + '" onfocus="Dsq.Templates.handlePlaceholder(event, this, \'email\')" onblur="Dsq.Templates.handlePlaceholder(event, this, \'email\')" /></div></td> \
						<td class="dsq-post-fields-right"> \
							<div class="dsq-subscribe"> \
								<a href="#" onclick="Dsq.Templates.chooseSubscribe(' + post_id + '); return false" class="dsq-subscribe-menu"><span id="dsq-subscribe-select' + pid + '">' + (Dsq.jsonData.request.subscribe_on_post ? Dsq.Strings.SUBSCRIBE_TO_ALL_COMMENTS_BY_EMAIL : Dsq.Strings.DO_NOT_SUBSCRIBE_TO_COMMENTS) + '</span> <small>&#9660;</small></a> \
								<ul class="dsq-panel" id="dsq-subscribe-menu' + pid + '"> \
									<li><a href="#" onclick="Dsq.Templates.setSubscribe(2, this, ' + post_id + '); return false">' + Dsq.Strings.SUBSCRIBE_TO_ALL_COMMENTS_BY_EMAIL + '</a></li> \
									<li><a href="#" onclick="Dsq.Templates.setSubscribe(0, this, ' + post_id + '); return false">' + Dsq.Strings.DO_NOT_SUBSCRIBE_TO_COMMENTS + '</a></li> \
								</ul> \
								<input id="dsq-subscribe-on-post' + pid + '" type="hidden" value="' + Dsq.jsonData.request.subscribe_on_post + '" /> \
							</div> \
						</td> \
					</tr> \
				</table> \
			</div>'
			: '')
			+ '<div class="dsq-post-footer"> \
				<div class="dsq-sharing-options" ' + (!display_sharing_options ? 'style="display:none;"' : '') + '> \
					<button type="button" class="dsq-button-small" onfocus="document.getElementById(\'dsq-post-button' + pid + '\').focus();"><span>' + Dsq.Strings.SHARING_OPTIONS + ' <small>&#9660;</small></span></button> \
					<div class="dsq-panel"> '
						+ (Dsq.jsonData.request.sharing.twitter !== undefined
								&& Dsq.jsonData.request.sharing.twitter.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-twitter' + pid + '"'
								  + (Dsq.jsonData.request.sharing.twitter.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-twitter' + pid + '">' + Dsq.Strings.SHARE_ON + ' Twitter</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.facebook
								&& (Dsq.jsonData.request.sharing.facebook.enabled === true ||
										(Dsq.jsonData.request.is_remote && Dsq.jsonData.request.remote_domain == 'facebook'))
							? '<div><input type="checkbox" id="dsq-sharing-facebook' + pid + '"'
									+ (Dsq.jsonData.request.sharing.facebook.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-facebook' + pid + '">' + Dsq.Strings.SHARE_ON + ' Facebook</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.yahoo !== undefined
								&& Dsq.jsonData.request.sharing.yahoo.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-yahoo' + pid + '"'
									+ (Dsq.jsonData.request.sharing.yahoo.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-yahoo' + pid + '">' + Dsq.Strings.SHARE_ON + ' Yahoo!</label> \
								</div>'
							: '')
						+ (Dsq.jsonData.request.sharing.tumblr !== undefined
								&& Dsq.jsonData.request.sharing.tumblr.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-tumblr' + pid + '"'
									+ (Dsq.jsonData.request.sharing.tumblr.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-tumblr' + pid + '">' + Dsq.Strings.SHARE_ON + ' Tumblr</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.wordpress !== undefined
								&& Dsq.jsonData.request.sharing.wordpress.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-wordpress' + pid + '"'
									+ (Dsq.jsonData.request.sharing.wordpress.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-wordpress' + pid + '">' + Dsq.Strings.SHARE_ON + ' Wordpress</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.movabletype !== undefined
							  && Dsq.jsonData.request.sharing.movabletype.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-movabletype' + pid + '"'
									+ (Dsq.jsonData.request.sharing.movabletype.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-movabletype' + pid + '">' + Dsq.Strings.SHARE_ON + ' Movable Type</label> \
							   </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.typepad !== undefined
							  && Dsq.jsonData.request.sharing.typepad.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-typepad' + pid + '"'
									+ (Dsq.jsonData.request.sharing.typepad.auto === true ? 'checked=true' : '') + '/> \
								  <label for="dsq-sharing-typepad' + pid + '">' + Dsq.Strings.SHARE_ON + ' TypePad</label> \
							   </div>'
							: '')
						+ '<div><a href="' + Dsq.jsonData.settings.disqus_url + '/profile/connections/" target="_blank" class="dsq-configure-options">' + Dsq.Strings.CONFIGURE_OPTIONS + '</a></div>'
					+ '</div> \
				</div>'
				+ '<button type="button" class="dsq-button" id="dsq-post-button' + pid + '" onclick="Dsq.Templates.postComment(' + post_id + ', this, false)"><span>' + Dsq.Strings.POST_AS + ' '
				+ (Dsq.jsonData.request.display_username
					? Dsq.jsonData.request.display_username
					: Dsq.Strings.GUEST)
				+ '</span></button>'
				+ (post_id
					? '<button type="button" class="dsq-button" id="dsq-cancel-button' + pid + '" onclick="Dsq.Post.toggleReply(' + post_id +', this)"><span>' + Dsq.Strings.CANCEL + '</span></button>'
					: '')
			+ '</div>'
			+ '</div>' // end dsq-form-area
		+ '</div> \
		';
		
		return html;
	};




	this.appendPost = function(post_id) {
		var html = '<div id="dsq-append-post-' + post_id + '"></div>';
		return html;
	};

	this.postPrependHeader = function(post_id) {
		var html;
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		
		html = ' \
		<table> \
			<tr> \
				<td id="dsq-header-avatar-' + post_id + '" class="dsq-header-avatar" onmouseover="Dsq.Post.dropProfile(' + post_id + ')"> \
					<a id="dsq-avatar-' + post_id + '" class="dsq-avatar" href="' + userData.url + '" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">'
					+ (Dsq.jsonData.forum.show_avatar
					? '<img src="' + Dsq.jsonData.users[_meta.user_key].avatar + '" alt="" />'
					: '')
				+ '</a> \
				</td> \
				<td class="dsq-comment-header-meta"> \
		';

		
		return html;
	};
	
	this.postAppendHeader = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var html;
		var parent_display_name = '';
		
		if(_meta.parent_post_id) {

			var _parent_meta = Dsq.jsonData.posts[_meta.parent_post_id];

			if (_parent_meta) {
				var parentUserData = Dsq.jsonData['users'][_parent_meta.user_key];
				parent_display_name = parentUserData.display_name;
			}
		}

		html = ' \
		<img src="http://media.disqus.com/images/themes/narcissus/moderator.png" class="dsq-moderator-star" title="Moderator" /> \
		<span class="dsq-comment-header-time"><a href="#comment-' + post_id + '" onclick="Dsq.Popup.permalink(' + post_id + ')" title="Permalink">' + (_meta.is_realtime ? Dsq.Strings.JUST_NOW : _meta.date) + '</a></span> '
		+ (_meta.parent_post_id && parent_display_name
			? '<a href="#comment-' + _meta.parent_post_id + '" title="Jump to comment">in reply to ' + parent_display_name + '</a>'
			: '')
		+ '</td> \
		<td id="dsq-like-pts-' + post_id + '" class="dsq-comment-header-likes">'
		+ (_meta.points
			? _meta.points + Dsq.Utils.pluralize(_meta.points, ' person', ' people') + ' liked this.'
			: '')
		+ '</td> \
		</tr> \
		</table> \
		';
		return html;
	};

	this.preBody = function(post_id) {
		var html = '';
		return html;
	};

	this.postFooter = function(post_id) {
		var html;
		var _meta = Dsq.jsonData.posts[post_id];
		if(_meta.killed || !_meta.approved) { return ''; }
		
		html = ' \
		<div class="dsq-comment-footer" id="dsq-comment-footer-' + post_id + '"> \
			<div class="dsq-comment-footer-left">'
				+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator
					? '<a href="#" onclick="Dsq.Templates.moderateOptions(' + post_id+ '); return false">' + Dsq.Strings.MODERATE + '</a>'
					: '')
				+ '<a href="#" id="dsq-post-report-' + post_id + '" class="dsq-post-report" onclick="Dsq.Post.report(' + post_id + ', false); return false;">' + Dsq.Strings.FLAG + '</a> \
			</div> \
			<div class="dsq-comment-footer-right">'
				+ (_meta.votable 
					? '<span id="dsq-like-' + post_id + '" class="dsq-like">'
					+ (!_meta.up_voted
						? '<button type="button" class="dsq-button-small" onclick="Dsq.Post.rate(this, ' + post_id + ', 1)" >Like</button>'
						: 'You liked this.&nbsp;&nbsp;')
					+ '</span>'
					: '')
				+ (_meta.can_reply && !_meta.has_replies && _meta.from_request_user
					? '<button type="button" class="dsq-button-small dsq-post-edit" onclick="Dsq.Post.edit(this, ' + post_id + ')" >' + Dsq.Strings.EDIT + '</button>'
					: '')
				+ (_meta.can_reply
					? '<span class="dsq-comment-footer-reply" id="dsq-comment-footer-reply-' + post_id + '" onclick="Dsq.Post.toggleReply(' + post_id +', this)"> \
						<button type="button" class="dsq-button-small">' + Dsq.Strings.REPLY + '</button> \
						<button type="button" class="dsq-comment-footer-reply-tab">' + Dsq.Strings.REPLY + '</button><span></span> \
					</span>'
					: '')
			+ '</div> \
		</div> \
		';
		
		return html;
	};



	
	this.showRetweets = function(id, limit, element_id /* Optional */) {
		var source, html = '';

		for (var i = 0, reaction; reaction = Dsq.jsonData.reactions[i]; i++) {
			if (reaction.id === id) {
				source = reaction.retweets;
			}
		}

		if (source) {
			if (limit === 0) {
				limit = source.length;
			}

			for (var j = 0; j < limit; j++) {
				var rt = source[j];
				html += '<a href="' + rt.url + '">' + rt.author_name + '</a>'	+ ((j === (limit - 1)) ? '.' : ', ');
			}
		}

		if (element_id === undefined) {
			return html;
		}

		var element = document.getElementById(element_id);
		element.innerHTML = html;
		return element;
	};

	this.showMoreReactions = function(reactions, has_more, start, limit) {
		var link = document.getElementById('dsq-show-more-reactions');
		var container = link.parentNode;
		container.removeChild(link);

		for (var i = 0, reaction; reaction = reactions[i]; i++) {
			var el = Dsq.Templates.generateReactionHTML(reaction);
			if (el) {
				container.innerHTML += el;
			}
		}

		if (has_more) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = start;
			var l = limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			container.innerHTML += '<li id="dsq-show-more-reactions" class="dsq-show-more-reactions"><button type="button" class="dsq-button-small" onclick="' + handler + '">Show more reactions</button></li>';
		}
	};

	this.generateReactionHTML = function(reaction) {
		if (reaction.body === null || reaction.body == '') {
			return;
		}

		if (reaction.author_name === '') {
			reaction.author_name = '&nbsp;';
		}

		if (reaction.url === '') {
			reaction.url = reaction.get_service_url;
		}

		var item = '<li class="dsq-comment dsq-reaction" id="dsq-reaction-' + reaction.id + '">'
			+ '<div class="dsq-comment-header"> \
			<table> \
			<tr> \
			<td class="dsq-header-avatar"> \
			';

		if (reaction.author_url && reaction.author_url !== '') {
			item += '<a target="_blank" href="' + reaction.author_url +'" class="dsq-avatar">';
		}

		if (reaction.avatar_url && reaction.avatar_url !== '') {
			item += '<img src="' + reaction.avatar_url + '"/>';
		} else {

			item += '<img src="' + Dsq.jsonData.media_url + '/images/noavatar92.png"/>';
		}

		var service_icon = (reaction.get_service_name == 'trackback' || reaction.get_service_name == 'pingback' ? 'rss' : reaction.get_service_name.replace(' ', ''));
		item += (reaction.author_url && reaction.author_url !== ''
				? '</a>'
				: '')
			+ '</td>'
			+ '<td><cite class="dsq-comment-cite">' + reaction.author_name + '</cite> <span class="dsq-comment-header-time">' + reaction.date_created + '</span></td>'
			+ '<td class="dsq-comment-header-likes"></td>'
			+ '</tr></table></div>' // end dsq-comment-header
			+ '<div class="dsq-reaction-header" \
				<table> \
					<tr> \
						<td class="dsq-reaction-header-left">'
							+ '<img class="dsq-service-icon" src="' + Dsq.jsonData.media_url + '/images/reactions/services/' + service_icon + '.png" />'
							+ ' From <a class="dsq-service-name" target="_blank" href="' + reaction.url + '">' + reaction.get_service_name + '</a> '
							+ 'via <a href="' + reaction.source_url + '">' + (reaction.source == 'backtype' ? 'BackType' : 'UberVU') + '</a>'
						+ '</td>'
						+ '<td class="dsq-reaction-header-right">';

			if(reaction.retweets) {
				var num_retweets = reaction.retweets.length;
				if (num_retweets > 0) {
					if (num_retweets == 1) {
						item += 'One more retweet from <a href="' + reaction.retweets[0].url + '">'  + reaction.retweets[0].author_name + '</a>';
					} else {
						item += (num_retweets + ' more retweets from ');
						item += '<span id="dsq-reaction-retweets-' + reaction.id + '">';
						var n_tweets = (num_retweets > 3) ? 3 : num_retweets;
						item += Dsq.Templates.showRetweets(reaction.id, n_tweets);
						if (n_tweets != num_retweets) {
							item += '</span> <a onclick="Dsq.Templates.showRetweets(' + reaction.id + ', 0, \'dsq-reaction-retweets-' + reaction.id + '\');'
								+ 'this.parentNode.removeChild(this); return false;" href="#">Show all</a>';
						}
					}
				}
			}	
			item += '</td></tr> \
			</table> \
			</div>' // end dsq-reaction-header
			+ '<div class="dsq-comment-body"> \
				<div class="dsq-comment-message">' + reaction.body + '</div>'
			+ '</div> \
			<div class="dsq-comment-footer"> \
				<div class="dsq-comment-footer-left"> \
				</div>'
				+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator 
					? ' \
					<div class="dsq-comment-footer-right"> \
						<button type="button" class="dsq-button-small dsq-hide-reaction" onclick="Dsq.Reaction.hide(' + reaction.id + ')">Hide</button> \
					</div>'
					: '')
			+ '</div>'
		item += '</li>'; /* Reaction HTML ends */
		return item;
	};

	this.reactions = function() {
		var html, reaction;

		if (Dsq.jsonData.reactions === undefined || Dsq.jsonData.reactions.length === 0) {
			return '';
		}

		html = '';
		for (var i = 0; reaction = Dsq.jsonData.reactions[i]; i++) {
			var item = Dsq.Templates.generateReactionHTML(reaction);
			if (item) {
				html += item;
			}
		}

		if (Dsq.jsonData.has_more_reactions) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = Dsq.jsonData.reactions_start;
			var l = Dsq.jsonData.reactions_limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			html += '<li id="dsq-show-more-reactions" class="dsq-show-more-reactions"><button type="button" class="dsq-button-small" onclick="' + handler + '">Show more reactions</button></li>';
		}

		return '<h3 id="dsq-reactions-title" class="dsq-h3-reactions">Reactions</h3><ul id="dsq-reactions" class="dsq-reactions">' + html + '</ul>';
	};
	
	this._popupGeneric = function(content) {
		return ' \
		<div class="dsq-popup-container"> \
			<table> \
				<tbody> \
					<tr> \
						<td class="dsq-popup-tl"></td><td class="dsq-popup-b"></td><td class="dsq-popup-tr"></td> \
					</tr> \
					<tr> \
						<td class="dsq-popup-b"></td> \
						<td class="dsq-popup-body"> \
							<div class="dsq-popup-content"> \
								<div class="dsq-popup-title"> \
									<button type="button" class="dsq-button-small" style="float:right" onclick="Dsq.Popup._closePopup(null, true)">Close</button>'
									+ content['header'] 
								+ '</div>'
								+ content['body']
							+ '</div> \
							<div class="powered-by"><a href="http://disqus.com/comments/">Powered by <img src="http://media.disqus.com/images/embed/disqus-logo.png" alt="Disqus Comments" style="margin-bottom:-5px" /></a></div> \
						</td> \
						<td class="dsq-popup-b"></td> \
					</tr> \
					<tr> \
						<td class="dsq-popup-bl"></td><td class="dsq-popup-b"></td><td class="dsq-popup-br"></td> \
					</tr> \
				</tbody> \
			</table> \
		</div> \
		';
	};



	
	this.chooseSubscribe = function(post_id) {

		var pid = post_id ? '-' + post_id : '';
		var menu = Dsq.$('dsq-subscribe-menu' + pid);
		
		menu.style.display = menu.style.display == 'block' ? 'none' : 'block';
		
	};
	
	this.setSubscribe = function(value, el, post_id) {

		var pid = post_id ? '-' + post_id : '';
		var input = Dsq.$('dsq-subscribe-on-post' + pid);
		var select = Dsq.$('dsq-subscribe-select' + pid);
		var menu = Dsq.$('dsq-subscribe-menu' + pid);
		
		select.innerHTML = el.innerHTML;
		input.value = value;
		this.chooseSubscribe(post_id);
	};
	
	this.getFormFields = function(post_id) {

		var fields = {};
		var pid = post_id ? '-' + post_id : '';
		var name = Dsq.$('dsq-field-name' + pid);
		var email = Dsq.$('dsq-field-email' + pid);
		var website = Dsq.$('dsq-field-website' + pid);
		var username = Dsq.$('dsq-field-username' + pid);
		var password = Dsq.$('dsq-field-password' + pid);

		fields = {
			'name': name,
			'email': email,
			'website': website,
			'username': username,
			'password': password
		}
		
		return fields;
	}
	
	this.validateFields = function(post_id) {
		
		if(Dsq.jsonData.request.is_authenticated) { return true; }
		
		var fields = Dsq.Templates.getFormFields(post_id);
		
		var nameField = fields.name;
		var websiteField = fields.website;
		var emailField = fields.email;
		
		websiteField.value = (websiteField.value == Dsq.Templates.placeholder['website']) ? '' : websiteField.value;
		
		var v = [{

			validator: Dsq.Validators.name,
			value: nameField.value
		}, {

			validator: Dsq.Validators.email,
			value: emailField.value
		}, {

			validator: Dsq.Validators.url,
			value: websiteField.value
		}];
		
		return Dsq.Validators.validate(v, function(e) { Dsq.Popup.popModal(e, 'Oops...') } );
	};
	
	this.checkExistingUser = function(post_id) {
		var fields = Dsq.Templates.getFormFields(post_id);		
		Dsq.Popup.loading(post_id);
		
		if (post_id) {
			Dsq.frames['reply_' + post_id].getUserByEmail(fields.email.value);
		} else {
			Dsq.frames['reply_0'].getUserByEmail(fields.email.value);
		}
	};

	this.validateAuth = function(el_clicked, post_id, auth_choice) {
		var fields = Dsq.Templates.getFormFields(post_id);
		var email = fields.email ? fields.email.value : '';
		var username = fields.username ? fields.username.value : '';
		var password = fields.password ? fields.password.value : '';
		
		Dsq.Templates.setLoadingButton(el_clicked, post_id);
		
		if (post_id) {
			Dsq.frames['reply_' + post_id].validateAuth(auth_choice, email, username, password);
		} else {
			Dsq.frames['reply_0'].validateAuth(auth_choice, email, username, password);
		}
	};

	this.lightboxUpdateEmail = function(post_id, new_email) {
		var fields = Dsq.Templates.getFormFields(post_id);
		fields.email.value = new_email;
	};

	this.lightboxAuthenticate = function(post_id, auth_choice, auth_data) {
		var title, body;
		var pid = post_id ? '-' + post_id : '';

		if(typeof(auth_data) == 'undefined') {
			var auth_data = Dsq.Templates.getFormFields(post_id);
		}

		d = auth_data;

		switch(auth_choice) {
			case 'register':
				var suggestedUsername = d.name.value.replace(/[^a-zA-Z0-9-]/g,'').toLowerCase();
			
				title = Dsq.jsonData.forum.allow_anon_post ? 'Optional:' : 'Required:';
				title += ' Register a <img src="http://media.disqus.com/images/embed/disqus-profile.png" alt=Disqus Profile" />';

				body = ' \
				<ul class="dsq-lightbox-register-reasons"> \
				<li>Verify your comments</li> \
				<li>Edit and delete comments</li> \
				<li>Manage comments and replies</li> \
				</ul> \
				';

				body += ' \
				<div class="dsq-lightbox-auth-fields"> \
					<table> \
						<tr> \
							<td>Email</td> \
							<td><input type="text" value="' + d.email.value + '" onchange="Dsq.Templates.lightboxUpdateEmail(' + post_id + ', this.value)" /><div id="dsq-email-errors' + pid + '"></div></td> \
						</tr> \
						<tr> \
							<td>Username</td> \
							<td><input id="dsq-field-username' + pid + '" type="text" value="' + suggestedUsername + '"/><div id="dsq-username-errors' + pid + '"></div></td> \
						</tr> \
						<tr> \
							<td>Password</td> \
							<td><input id="dsq-field-password' + pid + '" type="password" /><div id="dsq-password-errors' + pid + '"></div></td> \
						</tr> \
					</table> \
					<div class="dsq-lightbox-switch-auth"><a href="#" onclick="Dsq.Templates.lightboxAuthenticate(' + post_id + ',\'login\'); return false">Login instead</a></div> \
				</div> \
				<div id="dsq-lightbox-errors' + pid + '" class="dsq-lightbox-errors"></div> \
				<div class="dsq-lightbox-submit"> \
					<div class="dsq-lightbox-auth-post"><button type="button" class="dsq-button" onclick="Dsq.Templates.validateAuth(this, ' + post_id + ',\'' + auth_choice + '\')">Register and Post comment</button></div>'
					+ (Dsq.jsonData.forum.allow_anon_post
						? '<div class="dsq-lightbox-auth-skip"><button type="button" class="dsq-button-small" onclick="Dsq.Templates.postComment(' + post_id + ', this, true)">Just post as a Guest</button></div>'
						: '')
				+ '</div> \
				';
				break;
			case 'login':
				title = Dsq.jsonData.forum.allow_anon_post ? 'Optional:' : 'Required:';
				title += ' Login to your <img src="http://media.disqus.com/images/embed/disqus-profile.png" alt=Disqus Profile" />';
				body = '';
				
				if(d.avatar_url) {
					body += '<div class="dsq-lightbox-recognized"><table><tr>';
					body += '<td><img src="' + d.avatar_url + '" alt="" /></td>';
					body += '<td><span class="dsq-badge ' + (d.verified ? 'dsq-badge-verified' : 'dsq-badge-registered') + '">' + (d.verified ? 'Verified' : 'Registered') + '</span></td>';
					body += '<td>Hey <strong>' + d.display_name + '</strong>, is that you? Login below to claim this comment.';
					body += '</tr></table></div>';
				}

				body += ' \
				<div class="dsq-lightbox-auth-fields"> \
					<table> \
						<tr> \
							<td>Username or Email</td> \
							<td><input id="dsq-field-username' + pid + '" type="text" value="' + (d.avatar_url ? d.username : '') + '" /></td> \
						</tr> \
						<tr> \
							<td>Password <a href="http://disqus.com/forgot" target="_blank">(cannot log in?)</a></td> \
							<td><input id="dsq-field-password' + pid + '" type="password" /></td> \
						</tr> \
					</table> \
					<div class="dsq-lightbox-switch-auth"><a href="#" onclick="Dsq.Templates.lightboxAuthenticate(' + post_id + ',\'register\'); return false">Register instead</a></div> \
				</div> \
				<div id="dsq-lightbox-errors' + pid + '" class="dsq-lightbox-errors"></div> \
				<div class="dsq-lightbox-submit"> \
					<div class="dsq-lightbox-auth-post"><button type="button" class="dsq-button" onclick="Dsq.Templates.validateAuth(this, ' + post_id + ',\'' + auth_choice + '\')">Login and Post comment</button></div>'
					+ (Dsq.jsonData.forum.allow_anon_post
						? '<div class="dsq-lightbox-auth-skip"><button type="button" class="dsq-button-small" onclick="Dsq.Templates.postComment(' + post_id + ', this, true)">Just post as a Guest</button></div>'
						: '')
				+ '</div> \
				';
				break;
			default:
				break;
		}
		Dsq.Popup.lightbox(body, title, post_id);
		Dsq.$('dsq-field-username' + pid).focus();
	};
	
	this.buttonsToRestore = [];
	this.setLoadingButton = function(btn, post_id) {
		var pid = post_id ? '-' + post_id : '';
		if (btn) {

			var loadingBtn = document.createElement('button');
			loadingBtn.id = btn.id + '-loading';
			loadingBtn.innerHTML = '<img src="http://media.disqus.com/images/loading-lite.gif" alt="" /> ' + Dsq.Strings.JUST_A_MOMENT;
			loadingBtn.className = btn.className + ' dsq-post-loading';
			btn.parentNode.appendChild(loadingBtn);
			btn.style.display = 'none';
			var cancelBtn = Dsq.$('dsq-cancel-button' + pid);
			if(cancelBtn) { cancelBtn.style.display = 'none'; this.buttonsToRestore.push(cancelBtn); }
			this.buttonsToRestore.push(btn);
		} else {

			var buttons = this.buttonsToRestore;
			for(var i = 0; i < buttons.length; i++) {
				buttons[i].style.display = 'inline';
				Dsq.Utils.deleteNode(Dsq.$(buttons[i].id + '-loading'));
			}
		}
		
	};

	this.postComment = function(post_id, el_clicked, force, auth_choice) {
		var append_id = post_id ? '-' + post_id : '';
		var fields = Dsq.Templates.getFormFields(post_id);

		if (Dsq.Templates.validateFields(post_id)) {

			if (!Dsq.jsonData.request.is_authenticated && !force &&
				((!Dsq.Utils.readCookie('skipped_auth') && !disqus_skip_auth && !Dsq.jsonData.forum.disqus_auth_disabled) || !Dsq.jsonData.forum.allow_anon_post)) {
				Dsq.Templates.checkExistingUser(post_id);
				return false;
			}
			var params = [];
			if (!Dsq.jsonData.request.is_authenticated) {
				params.push(fields.name.value,
					fields.email.value,
					fields.website.value);

				if (auth_choice == 'login' || auth_choice == 'register') {
					params.push({
						auth_choice: auth_choice,
						username: fields.username.value,
						password: fields.password.value,
						email: fields.email.value
					});
				} else {
					params.push(null);
				}

				params.push(null /* sharing options */, Dsq.$('dsq-subscribe-on-post' + append_id).value);
			} else {
				var service_checked = function(name) {
					var el = Dsq.$('dsq-sharing-' + name + append_id);
					return (el !== null && el.checked === true) ? '1' : '0';
				};
				params.push(null, null, null, null, {
					tw: service_checked('twitter'),
					fb: service_checked('facebook'),
					tr: service_checked('tumblr'),
					wp: service_checked('wordpress'),
					mt: service_checked('movabletype'),
					tp: service_checked('typepad'),
					yh: service_checked('yahoo')
				});
			}

			var frame = Dsq.frames['reply_' + (post_id ? post_id : 0)];
			frame.post.apply(frame, params);

			if (el_clicked) {
				Dsq.Templates.setLoadingButton(el_clicked, post_id);
			}
			
			if (force) {
				Dsq.Utils.createCookie('skipped_auth', true);	
			}
			
		} else {
			return false;
		}
	};

	this.editComment = function(el_clicked, post_id) {
		var edited_message = Dsq.$('dsq-edit-textarea-' + post_id).value;

		Dsq.Templates.setLoadingButton(el_clicked, post_id);
		Dsq.frames['edit_' + post_id].edit(post_id, edited_message);
	};

	this.toggleEdit = function(post_id) {
		var body = Dsq.$('dsq-comment-body-' + post_id);
		var message = Dsq.$('dsq-comment-message-' + post_id);

		if (!Dsq.Post.stateEditToggled[post_id]) {


			message.style.display = 'none';
			if (Dsq.$('dsq-edit-' + post_id)) {
				Dsq.$('dsq-edit-' + post_id).style.display = 'block';
			} else {

				var edit_area = document.createElement('div');
				edit_area.id = 'dsq-edit-' + post_id;
				edit_area.className = 'dsq-edit dsq-textarea';
				edit_area.innerHTML = ' \
				<div class="dsq-textarea-wrapper"> \
					<textarea class="dsq-edit-textarea" id="dsq-edit-textarea-' + post_id + '">' + message.innerHTML + '</textarea> \
				</div> \
				<div class="dsq-save-edit"> \
					<button type="button" onclick="Dsq.Templates.editComment(this, ' + post_id + ')" class="dsq-button-small">Save Edit</button> \
				</div> \
				<div id="dsq-edit-iframe-' + post_id + '" style="display: none"></div> \
				';

				body.appendChild(edit_area);

				if (!Dsq.frames['edit_' + post_id]) {
					var _meta = Dsq.jsonData.posts[post_id];
					Dsq.frames['edit_' + post_id] = new Dsq.ReplyFrame(Dsq.$('dsq-edit-iframe-' + post_id), post_id);
					Dsq.frames['edit_' + post_id].init();
					Dsq.frames['edit_' + post_id].setState(post_id, _meta.depth);
				}
			}
		} else {

			message.style.display = 'block';
			Dsq.$('dsq-edit-' + post_id).style.display = 'none';
		}
		
		Dsq.Post.stateEditToggled[post_id] = !Dsq.Post.stateEditToggled[post_id];
	};
	
	this.edit = function(el, post_id) {

		Dsq.Templates.toggleEdit(post_id);
	};

	this.toggleReply = function(post_id, button) {
		
		if(!this.stateReplyToggled[post_id]) {

			if (Dsq.$('dsq-reply-post-' + post_id)) {
				Dsq.$('dsq-append-post-' + post_id).style.display = 'block';
			} else {
				Dsq.$('dsq-append-post-' + post_id).innerHTML = Dsq.Templates.postBox(post_id);
				var container = Dsq.$('dsq-textarea-wrapper-' + post_id);
				if (!Dsq.frames['reply_' + post_id] && container) {
					var _meta = Dsq.jsonData.posts[post_id];
					Dsq.frames['reply_' + post_id] = new Dsq.ReplyFrame(container, post_id);
					Dsq.frames['reply_' + post_id].init(function() {

						Dsq.$('dsq-append-post-' + post_id).innerHTML = Dsq.Templates.postBox(post_id, true);
						Dsq.$('dsq-form-area-' + post_id).innerHTML = '';

						var theme = (typeof disqus_frame_theme == 'undefined') ? 'default' : disqus_frame_theme;
						Dsq.Iframes.showReplyIframeInContainer(Dsq.$('dsq-form-area-' + post_id), post_id, {theme: theme});

					});
					Dsq.frames['reply_' + post_id].setState(post_id, _meta.depth);
				}
			}
			Dsq.$('dsq-append-post-' + post_id).className = 'dsq-append-post';
			Dsq.$('dsq-comment-footer-reply-' + post_id).className = 'dsq-comment-footer-reply-active';
			
		} else {

			Dsq.$('dsq-append-post-' + post_id).style.display = 'none';
			Dsq.$('dsq-append-post-' + post_id).className = '';
			Dsq.$('dsq-comment-footer-reply-' + post_id).className = 'dsq-comment-footer-reply';
		}
		
		this.stateReplyToggled[post_id] = !this.stateReplyToggled[post_id];

		if(Dsq.Utils.ie && this.stateReplyToggled[post_id]) {

		}

		Dsq.Events.fire(Dsq.Events.REPLY_IFRAME_TOGGLED, {
			postId: post_id,
			opened: this.stateReplyToggled[post_id]
		});
	};
	
	this.moderateOptions = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		
		if(!Dsq.jsonData.request.is_moderator && !Dsq.jsonData.request.is_global_moderator) { return false; }

		var html;
		
		html = ' \
		<div class="dsq-moderate-options"> \
		<table>'
		+ (_meta.email ? '<tr><td>Email</td><td>' + _meta.email + '</td></tr>' : '')
		+ (_meta.ip ? '<tr><td>IP address</td><td>' + _meta.ip + '</td></tr>' : '')
		+ '<tr> \
			<td>Actions</td> \
			<td><ul>'
			+ (Dsq.jsonData.request.moderator_can_edit
				? '<li><a href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); Dsq.Popup._closePopup(null, true); return false;">Edit Comment</a></li>'
				: '')
			+ '<li><a href="#" onclick="Dsq.Post.removePost(' + post_id + ', 1); Dsq.Popup._closePopup(null, true); return false;">Delete Comment</a></li> \
			<li><a href="#" onclick="Dsq.Post.reportSpam(' + post_id + '); Dsq.Popup._closePopup(null, true); return false;">Mark Spam</a></li> \
			<li><a href="#" onclick="Dsq.Popup.blacklist(' + post_id + '); return false">Block User</a></li> \
			</ul></td> \
			</table> \
		</div> \
		';
		
		html += '<p>Go to the full <a href="http://disqus.com/comments/moderate/" target="_blank">moderate panel</a> for more options.</p>';
		
		return Dsq.Popup.popModal(html, 'Moderate Options', post_id);
	};
	
	this.placeholder = {
		'class': 'dsq-placeholder',
		'name': Dsq.Strings.NAME,
		'email': Dsq.Strings.EMAIL,
		'website': Dsq.Strings.WEBSITE + ' (' + Dsq.Strings.OPTIONAL.toLowerCase() + ')'
	};
	
	this.handlePlaceholder = function(evt, el, key) {
		var placeholder = Dsq.Templates.placeholder[key];
		var className = Dsq.Templates.placeholder['class'];
		
		switch(evt.type) {
			case 'focus':
				if(el.value == placeholder) {
					el.value = '';
					el.className = '';
				}
				break;

			case 'blur':
				if(el.value == '') {
					el.value = placeholder;
					el.className = className;
				}
				break;
			default:
				break;
		}
	};
	
	this.paginate = function(page, el_clicked) {

		var extra_params = '';

		if(typeof disqus_per_page != 'undefined') {
			extra_params += '&per_page=' + disqus_per_page;
		}
		if(typeof disqus_sort != 'undefined') {
			extra_params += '&sort=' + disqus_sort;
		}

		Dsq.$('dsq-pagination').innerHTML += '<img src="http://media.disqus.com/images/loading-small.gif">';
		
		if(el_clicked) {
			Dsq.Templates.setLoadingButton(el_clicked);
		}
		
		Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/thread.js'
			+ '?slug='	+ 'nokia_n97_the_ultimate_facebook_device'
			+ '&p='		+ page
			+ extra_params);
	};
	
	
	this.rate = function(el, id, vote) {


		if(Dsq.jsonData.request.is_authenticated || Dsq.jsonData.forum.allow_anon_votes) {
			if(vote == 1) {
				Dsq.$('dsq-like-' + id).innerHTML = '<img src="http://media.disqus.com/images/loading-small.gif">';
			}
			Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/vote.js'
				+ '?post_id='    + id
				+ '&vote='        + vote);
		} else {
			Dsq.Popup.login('To rate, please log in');
		}
	};

	this.voted = function(post_id, points, vote) {

		Dsq.$('dsq-like-pts-' + post_id).innerHTML = points + Dsq.Utils.pluralize(points, ' person', ' people') + ' liked this.';

		if(vote) {
			Dsq.$('dsq-like-' + post_id).innerHTML = 'You liked this.&nbsp;&nbsp;';
		}
	};




	this.postComment_onSuccess = function(response, parent_post_id, post_id) {
		var approved = response.message.post_meta.approved;

		if (parent_post_id) {
			Dsq.Post.toggleReply(parent_post_id);
		}

		Dsq.Popup._closePopup(null, true);
		
		if (approved) {
			Dsq.Post.incrementPostCount();
			Dsq.Post.outlineComment(post_id);
		} else {			
			var unapproved_msg = 'Thanks for posting!\
	 Your comment must be approved by a moderator before appearing here.\
			';
			Dsq.Popup.popModal(unapproved_msg, 'Comment awaiting approval', post_id);
		}

		var sharing_results = response.message.sharing_results;
		var sharing_errors = '';
		for (var service in sharing_results) {
			if (sharing_results.hasOwnProperty(service) === true) {
				if (sharing_results[service].error === true) {
					sharing_errors += service + ', ';
				}
			}
		}

		if (sharing_results.facebook && sharing_results.facebook.callback) {
			FB.ensureInit(function() {
				FB.Connect.streamPublish('', sharing_results.facebook.attachment);
			});
		}

		if (sharing_errors !== '') {
			var message = 'Your comment was posted, but there were errors sharing with the following connections: ';
			message += sharing_errors.replace(/,\s$/, '');
			message += '<p><a href="' + Dsq.jsonData.settings.disqus_url + '/profile/connections" target="_blank">Configure your connections here</a></p>'
			Dsq.Popup.popModal(message, 'Sharing options');
		}

		Dsq.Templates.setLoadingButton(false);
	};

	this.postComment_onFailure = function(response, parent_post_id, post_id) {

		Dsq.Templates.setLoadingButton(false);
	};
};




// TODO: It might be faster to use string methods to find all <li (...) </li> blocks and pass to Dsq.PostHandler manually.
Dsq.CommentsHandler = function(str, head, post_id, content, tail, offset, s) {
	var prepend_post = Dsq.Templates.prependPost(post_id);
	var append_post = Dsq.Templates.appendPost(post_id);

	content = content.replace(Dsq.POST_RE, Dsq.PostHandler);
	Dsq.Templates.postLoopCounter++;
	head = Dsq.Templates.Filters.commentContainer(post_id, head);
	return prepend_post + head + content + tail + append_post;
};

Dsq.PostHandler = function(str, h_head, post_id, h_content, h_tail, b_head, b_content, b_tail, offset, s) {
	var prepend_header = Dsq.Templates.postPrependHeader(post_id);
	var append_header = Dsq.Templates.postAppendHeader(post_id);
	var prepend_body = Dsq.Templates.preBody(post_id);
	var append_body = Dsq.Templates.postBody(post_id);
	var append_footer = Dsq.Templates.postFooter(post_id);

	b_content = b_content.replace(Dsq.POST_BODY_RE, Dsq.PostBodyHandler);
	return h_head + prepend_header + h_content + append_header + h_tail + b_head + prepend_body + b_content + append_body + b_tail + append_footer;
};

Dsq.PostBodyHandler = function(str, head, post_id, content, tail, offset, s) {
	content = Dsq.Templates.Filters.commentContent(post_id, content);
	return head + content + tail;
};

Dsq.MediaPostHandler = function(str, args, offset, s) {
	args = args.split(' ');
	if(args[0] == 'seesmic') {
		return '<br />' + Dsq.Templates.mediaSeesmic(args[1], args[2]);
	}
	return '';
};


/**
 * Shorcuts
 */
Dsq.$ = function(element) { return document.getElementById(element); };
Dsq.$b = document.body || document.getElementsByTagName('body')[0];


/**
 * Dsq.Debug: Logging functions.
 */

Dsq.Debug = new function() {this.log=function(s){};this.profile=function(f){if(typeof f == 'function')return f();else return eval(f);};};


/**
 * Dsq.Urls: URL paths
 */
Dsq.Urls = new function() {
	this.LOGIN = '/profile/login/';
	this.LOGOUT = '/logout/';
	this.REPLY = 'http://scobleizer.disqus.com/nokia_n97_the_ultimate_facebook_device/reply.html';
	this.REQUEST_USER_PROFILE = '/AnonymousUser/';
	this.REQUEST_USER_AVATAR = 'http://media.disqus.com/images/noavatar92.png';
};
// Dsq.Urls

/**
 * Dsq.Validators: Validation for form fields
 */
Dsq.Validators = new function() {
	this.VALID_EMAIL_RE = /^[a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*\@(([a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*)+\.[a-z]{2,}|([0-9]+\.){3}[0-9]+)$/i;
	this.name = function(name) {
		var error = false;

		if(typeof Dsq.Templates.placeholder !== 'undefined' &&
		   name == Dsq.Templates.placeholder.name) {
			error = true;
		}
		if(name.length <= 1) {
			error = true;
		}

		if(error) {
			return "Please enter a name to comment.";
		} else {
			return true;
		}
	};
	this.email = function(addr) {
		if(Dsq.Validators.VALID_EMAIL_RE.test(addr)) {
			return true;
		} else {
			return "Please enter a valid email to comment.";
		}
	};
	this.url = function(addr) {
		if(!addr || addr.indexOf('.') != -1) {
			return true;
		} else {
			return "Please check your website URL (this field is optional).";
		}
	};

	this.validate = function(bulk_validation, failure_callback) {
		failure_callback = failure_callback || function(e){ alert(e); };

		for(var i = 0; i < bulk_validation.length; i++) {
			v = bulk_validation[i];
			ret = v.validator(v.value);
			if(ret !== true) {
				failure_callback(ret);
				return false;
			}
		}
		return true;
	};
};

/**
 * Dsq.Utils: Generic utility functions.
 */
Dsq.Utils = new function() {
	this.ie = /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
	this.ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;
	this.ie6 = (!window.XMLHttpRequest) ? true: false;
	this.webkit = navigator.userAgent.indexOf('AppleWebKit/') >= 0;
	this.gebiFromElementCollectionCache = {};
	this._styleSheet = null;

	this.gebiFromElement = function(el, id, tag) {
		// This only method only helps IE.
		if(!this.ie) {
			return Dsq.$(id);
		} else {
			var cacheKey = el.id + '-' + tag;
			tag = tag || 'div';
			if(typeof this.gebiFromElementCollectionCache[cacheKey] != 'undefined') {
				collection = this.gebiFromElementCollectionCache[cacheKey];
			} else {
				collection = el.getElementsByTagName(tag);
				this.gebiFromElementCollectionCache[cacheKey] = collection;
			}

			for(var i = 0; i < collection.length; i++) {
				if(collection[i].id == id) {
					return collection[i];
				}
			}
			return null;
		}
	};

	this.execOnReady = function(func) {
		var node = document.createElement('document:ready');
		try {
			node.doScroll('left');
			func();
			node = null;
		} catch(err) {
			setTimeout(function() { Dsq.Utils.execOnReady(func); }, 10);
		}
	};


	// Courtesy of http://www.quirksmode.org/js/cookies.html
	this.createCookie = function(name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	};

	this.readCookie = function(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	};

	this.eraseCookie = function(name) {
		Dsq.Utils.createCookie(name,"",-1);
	};

	this.deleteNode = function(node) {
		if(node) {
			this.deleteChildren(node);
			if(typeof node.outerHTML != 'undefined') { node.outerHTML = ''; }
			else if(node.parentNode) { node.parentNode.removeChild(node); }
			delete node;
		}
	};

	this.deleteChildren = function(node) {
		if(node) {
			for(var x = node.childNodes.length-1; x >= 0; x--) {
				var childNode = node.childNodes[x];
				if(childNode.hasChildNodes()) { this.deleteChildren(childNode); }
				if(typeof childNode.outerHTML != 'undefined') { childNode.outerHTML = ''; }
				else node.removeChild(childNode);
				delete childNode;
			}
		}
	};

	this.findPos = function(obj) {
		var curleft = 0;
		var curtop = 0;
		if (obj.offsetParent) {
			do {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			} while (obj = obj.offsetParent);
		}
		return [curleft,curtop];
	};

	this.getWindowSize = function() {
		var windowWidth = -1;
		var windowHeight = -1;

		if(typeof(window.innerWidth) == 'number') { //Non-IE
			windowWidth = window.innerWidth;
			windowHeight = window.innerHeight;
		} else if(document.documentElement) { // IE 6+ in 'standards compliant mode'
			windowWidth = document.documentElement.clientWidth || document.body.clientWidth;
			windowHeight = document.documentElement.clientHeight || document.body.clientHeight;
		}

		return [windowWidth, windowHeight];
	}

	this.getScrollPos = function() {
		var scrollWidth, scrollTop;

		if(document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollWidth)) {
			scrollWidth = document.documentElement.scrollWidth;
			// IE is weird here.  If no doctype is provided, document.body.scrollTop is 0,
			// otherwise document.documentElement.scrollTop is 0.
			scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
		} else if(document.body.scrollTop && document.body.scrollWidth) {
			scrollWidth = document.body.scrollWidth;
			scrollTop = document.body.scrollTop;
		}

		return [scrollWidth, scrollTop];
	}

	this.addEventListener = function(instance, eventName, listener) {
		var listenerFn = listener;
		if (instance.addEventListener) {
			instance.addEventListener(eventName, listenerFn, false);
		} else if (instance.attachEvent) {
			listenerFn = function() {
				listener(window.event);
			};
			instance.attachEvent("on" + eventName, listenerFn);
		} else {
			throw new Error("Event registration not supported");
		}
		return {
			instance: instance,
			name: eventName,
			listener: listenerFn
		};
	};

	this.removeEventListener = function(event) {
		var instance = event.instance;
		if (instance.removeEventListener) {
			instance.removeEventListener(event.name, event.listener, false);
		} else if (instance.detachEvent) {
			instance.detachEvent("on" + event.name, event.listener);
		}
	};

	this.fixIframesIE = function(id) {
		var disqusThread = Dsq.$(disqus_container_id);
		var iframes = disqusThread.getElementsByTagName('iframe');

		if(id) {
			var container = Dsq.$(id);
		} else {
			var container = Dsq.$('dsq-content');
		}

		for(i = 0; i < iframes.length; i++) {
			if (container) {
				iframes[i].style.width = container.offsetWidth;
			}
		}
	};

	this.getElementsByClassName = function(oElm, strTagName, strClassName) {
	/* Credit: Jonathan Snook [http://www.snook.ca/jonathan], Robert Nyman [http://www.robertnyman.com] */
		var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
		var arrReturnElements = new Array();
		strClassName = strClassName.replace(/\-/g, "\\-");
		var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
		var oElement;
		for(var i = 0; i < arrElements.length; i++) {
			oElement = arrElements[i];
			if(oRegExp.test(oElement.className)) {
				arrReturnElements.push(oElement);
			}
		}
		return (arrReturnElements);
	};

	this.postToUrl = function(url, post_data, opt_redirect) {
		var form = document.createElement('form');
		var iframe_container = document.createElement('div');
		var id = 'dsq-temp-iframe-' + (new Date()).getTime();

		form.method = 'POST';
		form.action = url;
		if (!opt_redirect) {
			form.target = id;
		}
		iframe_container.innerHTML = '<iframe style="display:none" name="' + id + '" id="' + id + '"></iframe>';

		for(var key in post_data) {
			if(post_data.hasOwnProperty(key)) {
				var input = document.createElement('input');
				input.name = key;
				input.type = 'hidden';
				input.value = post_data[key];

				form.appendChild(input);
			}
		}

		Dsq.$b.appendChild(iframe_container);
		Dsq.$b.appendChild(form);
		form.submit();
	};

	// Strips integer id from id of element in the form ('some-id-###')
	this.extractId = function(e) {
		var chunks = e.id.split('-');
		if(chunks.length <= 1) {
			return 0;
		} else {
			var retval = parseInt(chunks[chunks.length-1]);
			return !isNaN(retval) ? retval : null;
		}
	};

	this.getStyle = function(el, styleProp) {
		if(el.currentStyle) {
			var y = el.currentStyle[styleProp];
		} else if(window.getComputedStyle) {
			var y = document.defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);
		}

		if(y == 'transparent' || y == '') {
			this.getStyle(el.parentNode, styleProp);
		} else {
			return y;
		}
	};

	this.execScript = function(url, append_qs, container) {
		var script = document.createElement('script');
		append_qs = typeof append_qs == 'undefined' ? true : append_qs;
		container = container || Dsq.container;

		if(append_qs) {
			var j = (url.indexOf('?') >= 0) ? '&' : '?';
			url += j + (new Date()).getTime();
		}
		script.type = 'text/javascript';
		script.charset = 'UTF-8';
		script.src = url;
		container.appendChild(script);
		return script;
	};

	this.pluralize = function(num, singular, plural) {
		return (num != 1) ? plural || 's' : singular || '';
	};

	this.getRequestParams = function(queryString /* optional */) {
		var pairs, tuple;
		var params = {};

		queryString = queryString || window.location.search.substring(1);
		pairs = queryString.split('&');

		for (var i = 0, pair; pair = pairs[i]; i++) {
			tuple = pair.split('=');
			params[tuple[0]] = (tuple[1] || true);
		}

		return params;
	};

	this.addCssRule = function(selector, styleText, index) {
		var stylesheet;
		index = index || 0;

		if(!this._styleSheet) {
			var styleEl = document.createElement('style');
			document.getElementsByTagName('head')[0].appendChild(styleEl);
			this._styleSheet = styleEl.sheet;
			if(!this._styleSheet) {
				// IE does not like our newly created stylesheet.
				this._styleSheet = document.styleSheets[document.styleSheets.length-1];
			}
		}
		stylesheet = this._styleSheet;

		if(stylesheet.insertRule) {
			var ruleText = selector + ' { ' + styleText + ' }';
			if(index == -1) {
				index = stylesheet.cssRules.length;
			}
			stylesheet.insertRule(ruleText, index);
		} else if(stylesheet.addRule) {
			stylesheet.addRule(selector, styleText, index);
		}
	};

	this.forEachIn = function(obj, callback) {
		for(var key in obj) {
			if(obj.hasOwnProperty(key)) {
				callback(key, obj[key]);
			}
		}
	};

	this._interpolateGlobalContext = {
		// values that get used a lot and are global to the request
		'profile_url': Dsq.Urls.REQUEST_USER_PROFILE,

		'disqus_url': Dsq.jsonData.settings.disqus_url,
		'media_url': Dsq.jsonData.settings.media_url,
		'request_username': Dsq.jsonData.request.username,
		'request_display_username': Dsq.jsonData.request.display_username,
		'forum_name': Dsq.jsonData.forum.name
	};

	this.renderFromContextStack = function(key, contexts) {
		// Returns the first instance of `key` in the array of objects `contexts` or else ''
		for (var i=0; i<contexts.length; i++) {
			if (contexts[i][key] !== undefined) {
				return String(contexts[i][key]);
			}
		}
		throw new Error('key ' + key + ' not found in context');
	};

	var that = this;
	this.interpolate = function(fmt, opt_localContext) {
		// Interpolate `fmt` named-format string with an assumed global context.
		// Based on `interpolate` in django.views.i18n
		var contextStack = [opt_localContext || {}, that._interpolateGlobalContext];
		return fmt.replace(/%\(\w+\)s/g, function(match){
			return that.renderFromContextStack(match.slice(2,-2), contextStack);
		});
	};

	this.stripTags = function(s) {
		// Removes HTML tags from `s`
		return s.replace(/(<([^>]+)>)/g,"");

	};

	this.assert = function(b) {
		if (!b) {
			throw new Error('Assertion error.');
		}
	};

};
// Dsq.Utils

/**
 * Dsq.Popup: Popup helper functions.
 */
Dsq.Popup = new function() {
	this.timeHide = new Array();
	this.timeShow = new Array();
	this.activePopup = {};
	this.profileCache = {};
	this.statusCache = {};

	this.showTimer = function(post_id) {
		// clear the hide timer
		clearTimeout(this.timeHide[post_id]);

		// start the timer
		if(!Dsq.Popup.profileIsOn && !Dsq.Thread.adminIsOn) {
			this.timeShow[post_id] = setTimeout("Dsq.Popup.popProfile(\"" + post_id + "\")", 400);
		}
	};

	this.hideTimer = function(post_id) {
		// clear the show timer
		clearTimeout(this.timeShow[post_id]);
	};

	this.updateProfile = function(username) {
		// Callback from /embed/profile.js
		if (this.statusCache[username]) {
			var statusEl = Dsq.$('dsq-profile-status-' + username);
			statusEl.innerHTML = this.statusCache[username];
			statusEl.style.display = 'block';
		}

		if (this.profileCache[username]) {
			var _cache = this.profileCache[username];

			var _genhtml = function(text) { return '<span><big>' + text + '</big></span>'; };
			var _no_comments = _genhtml(Dsq.FmtStrings.NUMBER_OF_COMMENTS(_cache.comments_count));
			var _no_likes = _genhtml(Dsq.FmtStrings.NUMBER_OF_LIKES(_cache.likes_count));
			var _no_points = _genhtml(Dsq.FmtStrings.NUMBER_OF_POINTS(_cache.points));

			var statsEl = Dsq.$('dsq-popup-profile-user-stats-' + username);
			statsEl.innerHTML = '';

			if (Dsq.jsonData.users[username].registered) {
				statsEl.innerHTML = _no_comments + _no_likes;
			}
			statsEl.innerHTML += _no_points;

			var activeSites = '';
			for (var i = 0; i < _cache.active_sites.length; i++) {
				var site = _cache.active_sites[i];
				activeSites += '<li><a href="' + site.url + '"> \
					<img src="' + site.favicon + '"/ width="16" height="16"/></a>\
					<a href="' + site.url + '">' + site.name + '</a></li>';
			}
			if (activeSites !== '') {
				Dsq.$('dsq-popup-profile-active-sites-' + username).innerHTML = activeSites;
			} else {
				Dsq.$('dsq-popup-profile-active-sites-' + username).innerHTML = 'This site.';
			}

			var moderatedSites = '';
			for (var i = 0; i < _cache.moderated_sites.length; i++) {
				var site = _cache.moderated_sites[i];
				moderatedSites += '<li><a href="' + site.url + '"> \
					<img src="' + site.favicon + '"/ width="16" height="16"/></a>\
					<a href="' + site.url + '">' + site.name + '</a></li>';
			}
			if (moderatedSites !== '') {
				Dsq.$('dsq-popup-profile-moderated-' + username).innerHTML = moderatedSites;
			} else {
				Dsq.$('dsq-popup-profile-moderated-wrapper-' + username).innerHTML = '';
			}
		}

		// Reposition popup after full HTML is rendered
		if(Dsq.Popup.activePopup && Dsq.Popup.activePopup.el) {
			Dsq.Popup.initPopup(Dsq.Popup.activePopup.el, Dsq.Popup.activePopup.id, Dsq.Popup.activePopup.type);
		}

	};

	this.showCookieMsgs = function() {
		var title = '';
		var message = '';
		var numAlerts = 0;

		Dsq.Utils.forEachIn(Dsq.jsonData.cookie_messages, function(k, v) {
			if (!v) return;

			switch(k) {
				// Cookie: Twitter
				case 'post_twitter':
					if (v === 'error') {
						title = 'Twitter Error!';
						message += '<li id="dsq-msg-twitter-error">Oops, we couldn\'t tweet this comment. Please check your <a href="http://disqus.com/account/services">account settings</a>.</li>';
					} else {
						var _msg = v.split(':');
						title = 'Tweeted!';
						message += '<li id="dsq-msg-twitter-success">Your comment was successfully tweeted. <a href="http://twitter.com/' + _msg[0] + '/status/' + _msg[1] + '">Click here to view the tweet</a>.</li>';
					}
					break;
				// Cookie: Unapproved Post
				case 'post_not_approved':
					title = 'Comment awaiting approval by a moderator';
					message += '<li id="dsq-msg-post-not-approved">Your comment must be approved by a moderator before appearing here.</li>';
					break;
				// Cookie: Profile Found
				case 'post_has_profile':
					title = 'Use your existing commenter profile';
					message += '<li id="dsq-msg-post-has-profile">You have just posted your commment as a <span class="dsq-badge-guest">Guest</span>, but you may already have a <span class="logo-disqus">Disqus</span> Profile.<br /><br /><a href="http://disqus.com/claim">Log in and claim this comment!</a></li>';
					break;
				case 'user_created':
					var _data = v.split(':');
					title = 'Profile created!';
					message += '<li id="dsq-msg-user-created">You have just created a <span class="logo-disqus">Disqus</span> Profile, the best way to claim, manage, and track your comments all over the web. \
					<br /><br />A confirmation is being sent to <strong>' + _data[1] + '</strong>. Please check for this email in order to verify your profile. \
					<ul class="dsq-list-tick"> \
						<li>Your username is <strong>' + _data[0] +'</strong>. <a href="http://disqus.com/people/' + _data[0] + '/" target="_blank">Click here to view your public profile</a>.</li> \
						<li>Be sure to set your profile picture, as well as connect your <span class="dsq-badge-facebook">Facebook</span> and <span class="dsq-badge-twitter">Twitter</span> accounts. <a href="http://disqus.com/account/" target="_blank">Click here for account settings</a>.</li> \
					</ul> \
					</li>'
					break;
				default:
					break;
			}
			numAlerts++;
		});

		if(numAlerts > 1) {
			message = '<ul class="dsq-list-bluebullet">' + message;
			message += '</ul>';
			title = 'Thanks for posting!';
		}
		if(numAlerts > 0) {
			if(typeof(disqus_cookie_msgs) == 'function') {
				disqus_cookie_msgs(message, title);
			} else {
				Dsq.Popup.popModal(message, title);
			}
		}
	};

	this.helpBadges = function(post_id) {
		var html = ' \
			<ul class="dsq-popup-help"> \
				<li><span class="dsq-badge dsq-badge-verified">Verified</span> has a <span class="logo-disqus">Disqus</span> Profile with a confirmed email address.</li> \
				<li><span class="dsq-badge dsq-badge-registered">Registered</span> has a <span class="logo-disqus">Disqus</span> Profile, but has not yet confirmed his or her email address.</li> \
				<li><span class="dsq-badge dsq-badge-guest">Guest</span> is not logged in with any account and has not claimed his or her comments.</li> \
				<li class="dsq-help-otheraccts">Other accounts</li> \
				<li><span class="dsq-badge dsq-badge-facebook">Facebook</span> is using his or her Facebook profile via Facebook Connect.</li> \
				<li><span class="dsq-badge dsq-badge-twitter">Twitter</span> is using his or her Twitter profile via Twitter Sign-in.</li> \
				<li><span class="dsq-badge dsq-badge-openid">OpenID</span> is using his or her OpenID.</li> \
			</ul> \
		';

		this.popModal(html, 'Help: Types of Commenters', post_id);
		return;
	};

	this.permalink = function(post_id) {
		var header = 'Link to this comment';
		var body = '<strong>You are anchored to</strong>:<br />' + document.location.protocol + '//' + document.location.host + document.location.pathname + document.location.search + '#comment-' + post_id;

		this.popModal(body, header, post_id);
	};

	this.login = function(header, body) {
		var h = header || 'Login or Register';
		var b = body || '';
		b += Dsq.Templates.frameLogin({id: 'dsq-popup-login'});
		b += '</iframe>'; // HACK: Sometimes there is something funky with the IFRAME SRC that causes no end tag
		this.popModal(b, h, null, true, 'dsq-popup-login');
	};

	this.blacklist = function(id) {
		var _meta = Dsq.jsonData.posts[id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		var title = 'Add to Blacklist';
		var message = ' \
		Adding this person to the blacklist will block him or her from commenting on this site. Check the following types that you would like to add to the blacklist:'
		+ (userData['registered'] ?
			'<div class="dsq-blacklist-option"> \
				<input id="dsq-blacklist-username" type="checkbox" checked> \
				<label for="dsq-blacklist-username"><strong>Username</strong>: ' + userData['username'] + '</label> \
			</div>'
			: '')
		+ (_meta.email ?
			'<div class="dsq-blacklist-option"> \
				<input id="dsq-blacklist-email" type="checkbox" checked> \
				<label for="dsq-blacklist-email"><strong>Email address</strong>: ' + _meta.email + '</label> \
			</div>'
			: '')
		+ '<div class="dsq-blacklist-option"> \
			<input id="dsq-blacklist-ip" type="checkbox" onclick="Dsq.$(\'dsq-blacklist-ip-warning\').style.display=\'block\'"> \
			<label for="dsq-blacklist-ip"><strong>IP address</strong>: ' + _meta.ip + '</label> \
		</div> \
		';

		message += ' \
			<p id="dsq-blacklist-ip-warning" style="display:none">	\
				Note: Blocking this person\'s IP address may also unintentionally prevent others, who share his/her IP address, from commenting on this site. \
				This may include people who are sharing the same computer, living in the same house, or using the same Internet provider. Only block an IP address as a last resort. \
			</p> \
		';

		message += ' \
			<p style="text-align:center"><button type="button" onclick="Dsq.Post.blockUser(' + id + '); this.disabled=true; this.innerHTML=\'Just one moment...\'">Add to Blacklist</button></p> \
		';

		Dsq.Popup.popModal(message, title);
	};

	this.remoteAccountSettings = function() {
		var body = '';
		// Set up IFrame.
		var params = {};
		var base_url = 'http://disqus.com/forums/scobleizer/_auth/embed/remote_settings/';
		var attributes = {id: 'dsq-popup-account-settings'};
		if (typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}

		body = Dsq.Templates._frameGeneric(base_url, params, attributes);
		this.popModal(body, 'Account Settings', null, true, 'dsq-popup-account-settings');
	};

	this.popModal = function(message, title, post_id, use_listener, extra_classes) {
		var container = document.createElement('div');
		var header, body;

		Dsq.Popup._closePopup(null, true);

		if(typeof(title) == 'undefined') { title = ''; }
		if(typeof(use_listener) == 'undefined') { use_listener = true; }

		if(post_id) {
			container.id = 'dsq-popup-message-' + post_id;
		} else {
			container.id = 'dsq-popup-message';
		}

		header = title;
		body = message;

		container.innerHTML = Dsq.Templates.popupModal(header, body);
		Dsq.Popup.initPopup(container, post_id, 'message', extra_classes);
		if(use_listener) {
			Dsq.Popup.popupListener = Dsq.Utils.addEventListener(document, 'mouseup', Dsq.Popup._closePopup);
		}
	};

	this.popAlert = this.popModal;

	this.loading = function(post_id) {
		var title = Dsq.Strings.JUST_A_MOMENT;
		var body = '<div style="text-align:center; padding: 5px 0 10px 0"><img src="http://media.disqus.com/images/loading.gif" alt="" /></div>'
		Dsq.Popup.lightbox(body, title, post_id);
	};

	this.lightbox = function(message, title, post_id) {
		// Wraps Dsq.Popup.popModal

		var overlay = document.createElement('div');
		overlay.id = 'dsq-overlay';
		overlay.className = 'dsq-overlay';
		Dsq.$b.appendChild(overlay);
		
		Dsq.Popup.popModal(message, title, post_id, false, 'dsq-lightbox');
	};

	this.popProfile = function(post_id, userKey) {
		var post = Dsq.jsonData['posts'][post_id];
		if (post && post.has_been_anonymized) {
			Dsq.Popup.popModal('This message was anonymized by its previous owner.', 'Anonymized', post_id);
			return;
		}

		if(post_id) {
			userKey = Dsq.jsonData['posts'][post_id].user_key;	
		}
		var userData = Dsq.jsonData['users'][userKey];
		var elId = 'dsq-popup-profile-' + userKey;
		var container = document.createElement('div');

		if(this.activePopup.el) {
			this._closePopup(null, true);
			if(this.activePopup.linkClicked) {
				this.activePopup.linkClicked = false;
				return;
			}
		}

		container.id = elId;
		container.innerHTML = Dsq.Templates.popupProfile(userKey);

		this.initPopup(container, post_id, 'profile');
		this.popupListener = Dsq.Utils.addEventListener(document, 'mouseup', this._closePopup);

		if(!this.profileCache[userKey]) {
			Dsq.Utils.execScript('http://disqus.com/embed/profile.js'
				+ '?username=' + userKey
				+ '&anon=' + (userData['registered'] ? 0 : 1)
				+ '&f=' + Dsq.jsonData['request'].forum);
		} else {
			this.updateProfile(userKey);
		}
	};

	this._closePopup = function(e, force) {
		var activePopup = Dsq.Popup.activePopup.el;
		var id = Dsq.Popup.activePopup.id;
		var link = 'dsq-avatar-' + id; // HACK: Specific to profile toggle target

		// HACK: This event should be gone if there is no active popup.
		if(!activePopup) {
			return;
		}
		if(force || !Dsq.Popup.isClicked(e, activePopup.id)) {
			// TODO: This is breaking iE?
			if(Dsq.Popup.popupListener) {
				Dsq.Utils.removeEventListener(Dsq.Popup.popupListener);
			}
			
			// Kill overlay
			var overlay = Dsq.$('dsq-overlay');
			if(overlay) { Dsq.Utils.deleteNode(overlay); }
			
			try {
				Dsq.Utils.deleteNode(activePopup);
			} catch(e) {
				// HACK: IE6 throws an error when using deleteNode() with a node containing a <table> in the html.
				activePopup.parentNode.removeChild(activePopup);
			}
			Dsq.Popup.activePopup = {};
		}

		if(!force && Dsq.Popup.isClicked(e, link)) {
 			Dsq.Popup.activePopup.linkClicked = true;
		}

	};

	this.initPopup = function(popup, post_id, type, extra_classes) {
		popup.className = 'dsq-popup dsq-popup-' + type + ' ' + (extra_classes ? extra_classes : '');
		if(Dsq.Utils.ie6 || Dsq.Utils.ie7) {
			// HACK: We can't modify the body before it's ready, so we need
			//       to use an IE-safe "DOMReady" workaround before loading
			//       our popup.
			Dsq.Utils.execOnReady(function() {Dsq.$b.appendChild(popup); });
		} else {
			Dsq.$b.appendChild(popup);
		}

		popup.style.display = 'block';

		var xPos = (Dsq.Utils.getWindowSize()[0] - popup.offsetWidth) / 2;
		var yPos = (Dsq.Utils.getWindowSize()[1] - popup.offsetHeight) / 2;

		if(Dsq.Utils.ie6) {
			yPos += Dsq.Utils.getScrollPos()[1];
		}

		popup.style.left = xPos + 'px';
		popup.style.top = yPos + 'px';

		Dsq.Popup.activePopup = {
			'el' : popup,
			'id' : post_id,
			'type': type,
			'linkClicked' : false
		};
	};

	this.isClicked = function(e, id) {
		var t = e.target || e.srcElement;
		while(t && t.parentNode) {
			if(t.id == id) {
				return true;
			}

			t = t.parentNode;
		}
		return false;
	};
};
// Dsq.Popup

/**
 * Dsq.Templates
 */
Dsq.Templates = new function() {
	/*
	 * Counter keeping track of the number of posts iterated over.
	 */
	this.postLoopCounter = 0;
	this.filters = {};
	this.addPostContainer = 'dsq-post-add';
	this.textareaContainer = 'dsq-post-add';

	this.registerTemplate = function(name, func) {
		this['$$_' + name] = func;

		if(typeof DsqLocal.Filters != 'undefined'
		&& typeof DsqLocal.Filters[name] == 'function') {
			// Push filters to this.filters to unify code.
			this.filters[name] = this.filters[name] || [];
			this.filters[name].push(DsqLocal.Filters[name]);
		}

		this[name] = function() {
			var ret;

			if(typeof DsqLocal.Templates != 'undefined'
			&& typeof DsqLocal.Templates[name] == 'function') {
				ret = DsqLocal.Templates[name].apply(this, arguments);
			}

			if(ret === undefined) {
				ret = this['$$_' + name].apply(this, arguments);
			}

			if(this.filters[name]) {
				var args = [ret];

				args.push.apply(args, arguments);
				for(var i = 0; i < this.filters[name].length; i++) {
					ret = this.filters[name][i].apply(this, args);
				}
			}

			return ret;
		};
	};

	this.registerFilter = function(name, func) {
		this.filters[name] = this.filters[name] || [];
		this.filters[name].push(func);
	};

	/**
	 * Dsq.Templates.Filters
	 */
	this.Filters = new function() {
		this.commentContainer = function(post_id, s) {
			var _meta = Dsq.jsonData.posts[post_id];
			var classes = [];
			if(Dsq.jsonData.request.page > 1) {
				classes.push('dsq-append');
			}

			//
			// Extra classes used for custom themes
			//

			if(_meta.depth) {
				classes.push('dsq-comment-child', 'dsq-depth-' + _meta.depth, 'dsq-parent-is-' + _meta.parent_post_id);
			}


			//

			if(_meta.author_is_creator) {
				// TODO: We need to deprecate the "special" class since it is not properly prefixed.
				classes.push('special', 'dsq-special');
			}
			if(_meta.author_is_moderator) {
				classes.push('dsq-moderator');
			}
			classes.push(['dsq-odd', 'dsq-even'][Dsq.Templates.postLoopCounter % 2]);

			s = s.substring(0, s.lastIndexOf('>'));
			return s + ' class="dsq-comment ' + classes.join(' ') + '" style="margin-left:' + _meta.depth*30 + 'px">';
		};

		this.commentContent = function(post_id, s) {
			var _meta = Dsq.jsonData.posts[post_id];
			if (_meta.killed) {
				return '<em>Comment removed.</em>';
			} else if (!_meta.approved) {
				return '<em>This comment was flagged for review.</em>';
			}

			s = s.replace(Dsq.MEDIA_POST_RE, Dsq.MediaPostHandler);
			return s;
		};
	};

	//
	// Thread
	//
	// TODO: These need to be stripped of all Django template tags.

	this.authPost = function() {
		if (!Dsq.jsonData.context.show_reply) {
			return '';
		}
		var result = [];
		result = result.concat([
				'<div id="dsq-auth"',
						Dsq.jsonData.integration.reply_position ? 'class="dsq-auth-bottom"' : '',
						'>',
					'<div class="dsq-by">',
						'<a href="http://disqus.com" target="_blank">',
							(Dsq.jsonData.integration.disqus_logo ?
								Dsq.Utils.interpolate('<img src="%(media_url)s/images/embed/by-disqus.png" alt="discussion by DISQUS">') :
								Dsq.Utils.interpolate('<img src="%(media_url)s/images/embed/dsq-button-120x19.png" alt="discussion by DISQUS">')
							),
						'</a>',
					'</div>',
					'<div class="dsq-auth-header">',
						'<h3 id="dsq-add-new-comment" class="dsq-h3-addcomment">',
								Dsq.Strings.ADD_NEW_COMMENT,
						'</h3>',
						'<div id="dsq-login">',
						(!Dsq.jsonData.request.is_authenticated && Dsq.jsonData.forum.allow_anon_post
								? '<p class="dsq-login-message" id="dsq-login-message">You are commenting as a <a class="dsq-help" title="Click for more information" href="#" onclick="Dsq.Popup.helpBadges(); return false">Guest</a>. You may select one to log into:</p>'
								: '')
		]);
		if (!Dsq.jsonData.request.is_authenticated) {
			result = result.concat([
							Dsq.Utils.interpolate(
								'<a id="dsq-login-toggle" href="%(disqus_url)s%(login_url)s?next=article:%(thread_id)s" onclick="Dsq.Popup.login(); return false"><img class="dsq-login-icon" src="%(media_url)s/images/dsq-profile-btn.png" title="%(log_into)s" alt="%(log_into)s"/></a>',
								{login_url: Dsq.Urls.LOGIN, thread_id: Dsq.jsonData.thread.id, log_into: Dsq.Strings.LOG_INTO_DISQUS}
								),
							'&nbsp; ',
							(Dsq.jsonData.context.use_fb_connect ?
								'<div id="dsq-fbc-login" onlogin="DisqusFbcParentController.onLogin()" size="medium" background="light" length="short" style="display:inline; margin-right:7px"></div>' :
								''
							),
							(Dsq.jsonData.context.use_twitter_signin ?
								Dsq.Utils.interpolate(
									'<div id="dsq-twitter-login" class="dsq-twitter-login" onclick="Dsq.Twitter.startTwitterConnect();" style="display:inline; cursor: pointer"><img src="%(media_url)s/images/twitter-signin-short.png" style="margin-right:7px" /></div>', {}) : ''),
							(Dsq.jsonData.context.use_openid ?
								Dsq.Utils.interpolate(
									'<div id="dsq-openid-login" class="dsq-openid-login" onclick="Dsq.OpenID.requestURL();" style="display:inline; cursor:pointer;"><img src="%(media_url)s/images/openid-login-button.png"/></div>', {}
								) : '')
			]);
		}
		result = result.concat([
						'</div>', // dsq-login
					'</div>', // dsq-auth-header
					'<div id="dsq-authenticated" class="dsq-authenticated" ',
						Dsq.jsonData.request.is_authenticated ? 'style="display:block"' : '',
						'>',
						'<div class="dsq-authenticated-pic">',
								Dsq.Utils.interpolate('<a href="%(url)s" title="%(request_display_username)s">' +
																			'<img class="dsq-post-avatar" src="%(avatar_url)s" alt="" /></a>',
																			{avatar_url: Dsq.Urls.REQUEST_USER_AVATAR,
																			url: (Dsq.jsonData.request.is_remote
																					 ? Dsq.jsonData.request.url
																					 : Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE) }),
						'</div>',
						'<div class="dsq-authenticated-info">',
							'<ul>',
								'<li>',
									(Dsq.jsonData.request.is_remote
										? Dsq.FmtStrings.LOGGED_IN_AS(
												Dsq.Utils.interpolate('<a href="%(url)s" title="%(request_display_username)s">%(request_display_username)s</a>', {url:Dsq.jsonData.request.url})
										  )
										: Dsq.FmtStrings.LOGGED_IN_AS(
												Dsq.Utils.interpolate('<a href="%(disqus_url)s%(profile_url)s" title="%(request_display_username)s">%(request_display_username)s</a>')
											)
									),
								'</li>',
								'<li class="logout">',
									(!Dsq.jsonData.request.is_remote
										? Dsq.Utils.interpolate('<img class="dsq-login-icon" src="%(media_url)s/images/dsqicon12.png" alt="%(logged_in_as)s"/>&nbsp',
											{logged_in_as: Dsq.FmtStrings.LOGGED_IN_AS(Dsq.jsonData.request.display_username)})
										: ''),

									(!Dsq.jsonData.request.is_remote
										? Dsq.Utils.interpolate('<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="%(logout_from_disqus)s">',
											{logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN, logout_from_disqus: Dsq.FmtStrings.LOGOUT_FROM('DISQUS')})
										: ((Dsq.jsonData.request.remote_domain == 'twitter')
												? Dsq.Utils.interpolate('using Twitter (<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="Logout">Logout</a>)',
												 {logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN})
												: ((Dsq.jsonData.request.remote_domain == 'openid')
													 ? Dsq.Utils.interpolate('using OpenID (<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="Logout">Logout</a>)',
													 {logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN})
													 : ''
													)
											)
									),

									(!Dsq.jsonData.request.is_remote ? Dsq.FmtStrings.LOGOUT_FROM('<span class="logo-disqus">DISQUS</span>') : ''),
									'</a>',
								'</li>',
							'</ul>',
						'</div>',
					'</div>'
		]);
		if (Dsq.jsonData.context.use_fb_connect) {
			result = result.concat([
					'<div id="dsq-fbc-authenticated" class="dsq-authenticated">',
						'<div id="dsq-fbc-profilepic" class="dsq-authenticated-pic" uid="loggedinuser" type="FB.XFBML.ProfilePic" size="square" facebook-logo="true"></div>',
						'<div class="dsq-authenticated-info">',
							'<ul>',
								'<li>',
									'Logged in as <span id="dsq-fbc-name" uid="loggedinuser" type="FB.XFBML.Name" linked="true" useyou="false"></span>',
								'</li>',
								'<li class="logout">using Facebook Connect <a href="#" onclick="javascript:DisqusFbcParentController.logout();return false;">(Logout)</a></li>',
							'</ul>',
						'</div>',
					'</div>'
			]);
		}
		result = result.concat([
				'</div>', // dsq-auth
				'<div id="dsq-toolbar-items">',
				'</div>'
		]);
		result = result.concat([
					//
					//
					//
				((!Dsq.jsonData.forum.allow_anon_post && !Dsq.jsonData.request.is_authenticated) ?
					// Needs to be translated:
					('<p id="dsq-no-anon-msg">Required: Please log into <span class="logo-disqus">Disqus</span> ' +
					(Dsq.jsonData.context.use_fb_connect ? 'or connect with Facebook ' : '') +
					(Dsq.jsonData.context.use_twitter_signin ? 'or sign in with Twitter ' : '') +
					(Dsq.jsonData.context.use_openid ? 'or sign in using OpenID ' : '') +
					Dsq.Utils.interpolate('to comment on <strong>%(forum_name)s</strong>.</p>')) :
					''
				),
				'<div id="dsq-post-add"></div>',
				'<div style="margin:10px 0">',
				((Dsq.jsonData.forum.use_media) ?
						'<a href="#" id="dsq-media-link" onclick="Dsq.Post.showMenu(this, false, \'media\'); return false">' + Dsq.Strings.USE_MEDIA + ' <small>&#9660;</small></a>' :
						''),
				'</div>'
		]);
		return result.join('');
	};


	this.header = function() {

		var html = '\<h3 id="dsq-comments-count" class="dsq-h3-commentcount">\
	 <span id="dsq-num-posts">76</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://scobleizer.disqus.com/nokia_n97_the_ultimate_facebook_device/latest.rss"><img src="http://media.disqus.com/images/embed/bullet-feed.png"></a>\
	 </span>\
	 </h3>\
	 <div id="dsq-options" style="margin:15px 0">\
	 <span class="dsq-item-sort">\
	 Sort by\
	 <select id="dsq-sort-select" onchange="Dsq.Thread.sortBy(this.value);">\
	 <option value="hot" selected="selected">Popular now</option>\
	 <option value="best" >Best Rating</option>\
	 <option value="newest" >Newest first</option>\
	 <option value="oldest" >Oldest first</option>\
	 </select>\
	 &nbsp;\
	 </span>\
	 <span class="dsq-item-cp"><a href="http://scobleizer.disqus.com/nokia_n97_the_ultimate_facebook_device/">Community Page</a>&nbsp;&nbsp;&nbsp;</span>\
	 <span class="dsq-item-subscribe">\
	 <img src="http://media.disqus.com/images/embed/email.png" style="width:12px;height:12px;vertical-align:middle">\
	 <span id="dsq-subscribe">\
	 <a href="#" onclick="Dsq.Thread.subscribe(1); return false">Subscribe by email</a>\
	 </span>\
	 </span>\
	 </div>\
	 <div id="dsq-alerts">\
	 <p>Comments for this page are closed.</p>\
	 </div>\
		';

		

		
		if (Dsq.jsonData.request.is_moderator) { 
			html = ' \
			<div class="dsq-alert-message dsq-upgrade-message"> \
				<strong>Disqus upgrade available.</strong> Hi ' + Dsq.jsonData.request.display_username + ', this message is being displayed to you because you are a moderator of this site. <a href="#" onclick="Dsq.$(\'dsq-upgrade-message\').style.display=\'block\';this.style.display=\'none\';return false">Click here for details.</a> \
				<div style="display:none; margin-top:10px;" id="dsq-upgrade-message"> \
					A new theme is available with added features. <a href="http://disqus.com/comments/settings/' + Dsq.jsonData.forum.url + '/?p=customize">To change your theme, click here</a> and choose the theme Narcissus. \
					If you do not upgrade, you are missing out on features such as: real-time commenting, new sign-in integrations, and an upgrade interface. \
					<strong>This message will automatically go away in one week.</strong> \
				</div> \
			</div> \
			' + html; 
		}
		return html;
	};

	this.footer = function() {
		var html = Dsq.Templates.pagination();

		
			html += Dsq.Templates.authPost();
		

		html += Dsq.Templates.reactions();

		
			html += Dsq.Templates.trackbacks();
		

		return html;
	};

	this.pagination = function() {
		var html = '';
		
		if (Dsq.$('dsq-pagination')) { Dsq.$('dsq-pagination').innerHTML = ''; }
		if (!Dsq.jsonData.thread.paginate) { return ''; }

		//
		// TODO: num_paginator still uses the template tag for pagination, 
		// 		while append_paginator does it all in JavaScript.
		//		This should all be in JavaScript.
		//

		if (Dsq.jsonData.thread.num_pages > 1 && Dsq.jsonData.request.page < Dsq.jsonData.thread.num_pages) {
			html = ' \<a class="dsq-paginate-append-text" href="#" onclick="Dsq.Thread.paginate(Dsq.jsonData.request.page + 1, this); return false">Show more comments...</a>\
	 <button type="button" class="dsq-button-small dsq-paginate-append-button" onclick="Dsq.Thread.paginate(Dsq.jsonData.request.page + 1, this);">Load more comments</button>\
			';
		}
		
		if (Dsq.$('dsq-pagination')) {
			Dsq.$('dsq-pagination').innerHTML = html;
			return '';
		} else {
			return '<div id="dsq-pagination" class="dsq-pagination">' + html + '</div>';
		}
	};

	this.trackbacks = function() {
		var html = '';

		if(typeof DsqLocal != 'undefined' && DsqLocal.trackback_url && DsqLocal.trackbacks) {
			var trackbacks = DsqLocal.trackbacks;
			var trackback_url = DsqLocal.trackback_url;
		} else {
			var trackbacks = [
			
			
			];
			var trackback_url = 'http://scobleizer.disqus.com/nokia_n97_the_ultimate_facebook_device/trackback/';
		}

		html += '<div class="dsq-item-trackback">Trackback URL&nbsp;&nbsp;<input class="dsq-trackback-url" onclick="this.select()" readonly="true" value="' + trackback_url + '"></div>';

		if(trackbacks.length) {
			html += '<ul id="dsq-references">'
			for(var i = 0; i < trackbacks.length; i++) {
				var trackback = trackbacks[i];
				html += '<li><cite><a href="' + trackback.author_url + '" rel="nofollow">' + trackback.author_name + '</a></cite> \
						<p class="dsq-meta">' + trackback.date + '</p> \
						<p class="dsq-content">' + trackback.excerpt + '</p></li>';
			}
			html += '</ul>';
			html = '<h3 class="dsq-h3-trackbacks">Trackbacks</h3>' + html;
		}

		return html;
	}

	this.showRetweets = function(id, limit, element_id /* Optional */) {
		var source, html = '';

		for (var i = 0, reaction; reaction = Dsq.jsonData.reactions[i]; i++) {
			if (reaction.id === id) {
				source = reaction.retweets;
			}
		}

		if (source) {
			if (limit === 0) {
				limit = source.length;
			}

			for (var j = 0; j < limit; j++) {
				var rt = source[j];
				html += '<a href="' + rt.url + '">' + rt.author_name + '</a>'	+ ((j === (limit - 1)) ? '.' : ', ');
			}
		}

		if (element_id === undefined) {
			return html;
		}

		var element = document.getElementById(element_id);
		element.innerHTML = html;
		return element;
	};

	this.showMoreReactions = function(reactions, has_more, start, limit) {
		var link = document.getElementById('dsq-show-more-reactions');
		var container = link.parentNode;
		container.removeChild(link);

		for (var i = 0, reaction; reaction = reactions[i]; i++) {
			var el = Dsq.Templates.generateReactionHTML(reaction);
			if (el) {
				container.innerHTML += el;
			}
		}

		if (has_more) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = start;
			var l = limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			container.innerHTML += '<li id="dsq-show-more-reactions"><a href="#" onclick="' + handler + '">Show more reactions</a></li>';
		}
	};

	this.generateReactionHTML = function(reaction) {
		if (reaction.body === null || reaction.body == '') {
			return;
		}

		if (reaction.author_name === '') {
			reaction.author_name = '&nbsp;';
		}

		if (reaction.url === '') {
			reaction.url = reaction.get_service_url;
		}

		/* Reaction HTML begins */
		var item = '<li class="dsq-reaction" id="dsq-reaction-' + reaction.id + '">'
			+ '<div class="dsq-reaction-header">'
			+ '<div class="dsq-header-avatar">';

		if (reaction.author_url && reaction.author_url !== '') {
			item += '<a target="_blank" href="' + reaction.author_url +'">';
		} else {
			item += '<a target="_blank" href="#" onclick="return false;">';
		}

		if (reaction.avatar_url && reaction.avatar_url !== '') {
			item += '<img src="' + reaction.avatar_url + '"/>';
		} else {
			item += '<img src="' + Dsq.jsonData.media_url + '/images/noavatar32.png"/>';
		}

		var service_icon = (reaction.get_service_name == 'trackback' || reaction.get_service_name == 'pingback' ? 'rss' : reaction.get_service_name.replace(' ', ''));
		item += '<img class="dsq-service-icon" src="' + Dsq.jsonData.media_url + '/images/reactions/services/' + service_icon + '.png"/>'
			+ '</a></div>'
			+ '<cite><span>' + reaction.author_name + '</span></cite>'
			+ '<span class="dsq-header-meta"><a class="dsq-header-time">' + reaction.date_created + '</a></span>'
			+ '</div><div class="dsq-reaction-body">'
			+ '<div class="dsq-reaction-message">' + reaction.body + '</div>'
			+ '<div class="dsq-reaction-footer">From <a class="dsq-service-name" target="_blank" href="' + reaction.url + '">' + reaction.get_service_name + '</a> '
			+ 'via <a href="' + reaction.source_url + '">' + (reaction.source == 'backtype' ? 'BackType' : 'UberVU') + '</a>'
			+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator ? '&nbsp;&bull;&nbsp;<a class="dsq-hide-reaction" href="#" onclick="Dsq.Reaction.hide(' + reaction.id + '); return false;">Hide</a>' : '') + '</div></div>';

		if(reaction.retweets) {
			var num_retweets = reaction.retweets.length;
			if (num_retweets > 0) {
				item += '<div class="dsq-reaction-retweets">';
				if (num_retweets == 1) {
					item += 'One more retweet from <a href="' + reaction.retweets[0].url + '">'  + reaction.retweets[0].author_name + '</a>';
				} else {
					item += (num_retweets + ' more retweets from ');

					item += '<span id="dsq-reaction-retweets-' + reaction.id + '">';
					var n_tweets = (num_retweets > 15) ? 15 : num_retweets;
					item += Dsq.Templates.showRetweets(reaction.id, n_tweets);

					if (n_tweets != num_retweets) {
						item += '</span> <a onclick="Dsq.Templates.showRetweets(' + reaction.id + ', 0, \'dsq-reaction-retweets-' + reaction.id + '\');'
							+ 'this.parentNode.removeChild(this); return false;" href="#">Show all</a>';
					}
				}
				item += '</div>';
			}
		}

		item += '</li>'; /* Reaction HTML ends */
		return item;
	};

	this.reactions = function() {
		var html, reaction;

		if (Dsq.jsonData.reactions === undefined || Dsq.jsonData.reactions.length === 0) {
			return '';
		}

		html = '';
		for (var i = 0; reaction = Dsq.jsonData.reactions[i]; i++) {
			var item = Dsq.Templates.generateReactionHTML(reaction);
			if (item) {
				html += item;
			}
		}

		if (Dsq.jsonData.has_more_reactions) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = Dsq.jsonData.reactions_start;
			var l = Dsq.jsonData.reactions_limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			html += '<li id="dsq-show-more-reactions"><a href="#" onclick="' + handler + '">Show more reactions</a></li>';
		}

		return '<h3 class="dsq-h3-reactions">Reactions</h3><ul id="dsq-reactions" class="dsq-reactions">' + html + '</ul>';
	};
	
	this.missingPermissions = function() {
		return '	<p>Comments for this page are closed.</p>\n';
	};

	//
	// Post
	//

	this.prependPost = function(post_id) {
		var html = '<div id="comment-' + post_id + '"></div>';
		return html;
	};

	this.appendPost = function(post_id) {
		var html = '<div id="dsq-comment-reply-' + post_id + '"></div>';
		return html;
	};

	this.postPrependHeader = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];

		var _includeServices = function() {
			var userServices = Dsq.Post.getUserServices(null, post_id);
			var html = '';
			var hiddenThreshold = 3; // Define # of services to show before stuffing them in hidden div

			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == hiddenThreshold
					? '<li id="dsq-drop-hidden-' + post_id +'" class="dsq-drop-hidden"><ul>'
					: '')
				+ '<li class="dsq-drop-services"> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank"> \
						<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '">'
					+ userServices[i].name
					+ '</a> \
				</li>';
			}

			if(i >= hiddenThreshold) {
				html += '</ul></li> \
				<li id="dsq-drop-more-' + post_id + '" class="dsq-drop-more"><a href="#" onclick="Dsq.Post.dropProfileMore(this, '+ post_id + '); return false"><small>&#9660;</small></a></li> \
				';
			}
			return html;
		};

		return ' \
			<div class="dsq-header-avatar" id="dsq-header-avatar-' + post_id + '" onmouseover="Dsq.Post.dropProfile(' + post_id + ')"> \
				<a id="dsq-avatar-' + post_id + '" class="dsq-avatar" href="' + userData.url + '" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">'
			+ (Dsq.jsonData.forum.show_avatar
				? '<img src="' + Dsq.jsonData.users[_meta.user_key].avatar + '" alt="" />'
				: '')
			+ '</a>'
			+ '</div> \
		';
	};

	this.postAppendHeader = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];

		return ''
			+ (_meta.author_is_moderator
				? '<img class="dsq-mod-star" src="http://media.disqus.com/images/bullet-star.png" title="Moderator" alt="" />'
				: '')
			+ '<span class="dsq-header-meta"> \
				<a id="dsq-time-' + post_id + '" class="dsq-header-time" href="#comment-' + post_id + '" title="Permalink">' + _meta.date + '</a> \
			</span>';
	};

	this.preBody = function(post_id) {
		return '';
	}

	this.postBody = function(post_id) {
		// TODO: Deprecate flagging conditional
		var _meta = Dsq.jsonData.posts[post_id];
		return ''
			+ (_meta.edited
				? '<p class="dsq-editedtxt">(Edited by a moderator)</p>'
				: '')
			;
	};

	this.postFooter = function(post_id) {
		// TODO: Use media should be conditional
		var _meta = Dsq.jsonData.posts[post_id];
		if(_meta.killed) { return ''; }

		return ' \
			<div class="dsq-comment-footer" id="dsq-comment-footer-' + post_id + '"> \
				<div id="dsq-points-' + post_id + '" class="dsq-likedtxt">'
				+ (_meta.points
					? _meta.points + Dsq.Utils.pluralize(_meta.points, ' person', ' people') + ' liked this comment.'
					: '')
				+ '</div>'
				+ '<ul class="dsq-comment-options dsq-list-style">'
				+ (_meta.votable
					? '<li class="dsq-list-first dsq-rate" id="dsq-rate-cont-' + post_id + '">'
					+ (!_meta.up_voted
						? '<a href="#" onclick="Dsq.Post.rate(this, ' + post_id + ', 1); return false;">Like</a>'
						: 'You liked this.') + '</li>'
					: '')
				+ '<li class="dsq-report' + (!_meta.votable ? ' dsq-list-first' : '') + '" id="dsq-post-report-' + post_id + '"><a href="#" class="dsq-post-report" onclick="Dsq.Post.report(' + post_id + ', false); return false;">Report</a></li> \
				</ul> \
				<ul class="dsq-list-style">'
				+ (_meta.can_reply
					? '<li class="dsq-list-first"><a href="#" id="dsq-reply-link-' + post_id +'" onclick="Dsq.Post.toggleReply(this, ' + post_id +'); return false;">Reply</a></li>'
					: '')
				+ (_meta.can_reply && !_meta.has_replies && _meta.from_request_user
					? '<li id="dsq-edit-el-' + post_id + '"><a id="dsq-edit-link-' + post_id + '" href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); return false;">Edit</a></li>'
					: '')
				+ '<li class="' + (!_meta.can_reply ? 'dsq-list-first' : '') + '" id="dsq-more-el-' + post_id + '"><a id="dsq-more-link-' + post_id + '" href="#" onclick="Dsq.Post.showMenu(this, ' + post_id + ', \'more\'); return false">More <small>&#9660;</small></a></li>'
				+ (Dsq.jsonData.forum.use_media
					? '<li id="dsq-media-el-' + post_id +'" style="display:none"><a id="dsq-media-link-' + post_id + '" href="#" onclick="Dsq.Post.showMenu(this, ' + post_id + ', \'media\'); return false">Use Media <small>&#9660;</small></a></li>'
					: '')
				+ '</ul>'
				+ '<div id="dsq-reply-bar-' + post_id + '" class="dsq-reply-bar" style="display:none"> \
						<div id="dsq-reply-bar-items-' + post_id + '" class="dsq-reply-bar-items"> \
						</div> \
						<div id="dsq-reply-bar-auth-' + post_id + '" class="dsq-reply-bar-auth"> \
							 \
								 \
								 	<a href="#" class="dsq-help dsq-reply-req-opt" title="You are commenting as a Guest. You may choose to log into an existing DISQUS Profile, your Facebook, Twitter or OpenID account to comment on Scobleizer" onclick="Dsq.Popup.helpBadges(); return false">Optional:</a> \
								 \
								<img class="dsq-login-icon" src="http://media.disqus.com/images/dsq-favicon-16x16.png" alt="" /> \
								<a id="dsq-reply-login-' + post_id + '" href="http://disqus.com/profile/login/?next=article:18348136" onclick="Dsq.Popup.login(); return false">Login</a> \
								 \
									&nbsp;or&nbsp; \
									<img class="fb_login_image" src="http://static.ak.fbcdn.net/images/fbconnect/login-buttons/connect_light_small_short.gif" alt="Facebook Connect"/> \
									<a href="#" onclick="FB.Connect.requireSession(DisqusFbcParentController.onLogin); return false;">Connect</a> \
								 \
								&nbsp;or&nbsp; \
									<img src="http://media.disqus.com/images/twitter-signin-icon.png" alt="" /> \
									<a href="#" onclick="Dsq.Twitter.startTwitterConnect(); return false">Sign-in</a> \
								 \
								 \
							 \
						</div> \
					</div> \
					<div id="dsq-reply-' + post_id + '"></div> \
			</div> \
		';
	};

	//
	// Iframes
	//

	this._makeAttributes = function(attributes) {
		// Makes a tag attributes string out of an object.
		// Caller is responsible for making sure nothing needs to be escaped.
		var result = [];
		for (key in attributes) {
			result.push(' ' + key + '="' + attributes[key] + '"');
		}
		result = result.join('');
		return result;
	};

	this._frameGeneric = function(base_url, params, attributes) {
		if(typeof(disqus_callback_params) == 'undefined') {
			disqus_callback_params = '';
		}

		var default_params = {
			// TODO: These should be moved to Dsq.jsonData.
			'f'				: 'scobleizer',
			't'				: 'nokia_n97_the_ultimate_facebook_device',
			// Do we need encodeURIComponent here?
			'ifrs'			: encodeURIComponent(disqus_iframe_css),
			'to_redirect'	: encodeURIComponent(window.location),
			'cbp'			: disqus_callback_params,
			'ff'			: Dsq.Thread.ff,
			'fc'			: Dsq.Thread.fc,
			'ac'			: Dsq.Thread.ac,
			'default_text'	: disqus_default_text
		};

		base_url += '?' + (new Date()).getTime();
		// Add params to default_params.
		if(params) {
			for(var key in params) {
				if(params.hasOwnProperty(key)) {
					default_params[key] = encodeURIComponent(params[key]);
				}
			}
		}
		// Build querystring.
		for(var key in default_params) {
			if(default_params[key] && default_params.hasOwnProperty(key)) {
				base_url += '&' + key + '=' + default_params[key];
			}
		}

		return [
			'<iframe marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0"',
			(' allowtransparency="true" src="' + base_url + '"'),
			this._makeAttributes(attributes),
			'</iframe>'].join('');
	};

	this.frameLogin = function(opt_attributes) {
		var params = {};
		var base_url = 'http://disqus.com/embed/login.html';
		var attributes = opt_attributes || {};
		attributes['class'] = 'dsq-post-login';

		if(typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}
		return this._frameGeneric(base_url, params, attributes);
	};

	this.frameReply = function(post_id, extra_params, attributes) {
		// Returns the HTML for a reply iframe. Called by Dsq.Iframes.setReplyIframeToContainer
		var _meta = (typeof post_id != 'undefined') ? Dsq.jsonData.posts[post_id] : false;
		var base_url = Dsq.Urls.REPLY;
		var params = {
			'def_email'		: disqus_def_email,
			'def_name'		: disqus_def_name
		};
		if(extra_params) {
			for(var key in extra_params) {
				if(extra_params.hasOwnProperty(key)) {
					params[key] = extra_params[key];
				}
			}
		}
		if(_meta) {
			params['parent_post'] = post_id;
		}
		if(typeof disqus_per_page != 'undefined') {
			params['per_page'] = disqus_per_page;
		}
		if(typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}
		if(Dsq.jsonData.request.is_authenticated) {
			attributes['class'] += '-authenticated';
		}
		return this._frameGeneric(base_url, params, attributes);
	};

	this.frameEdit = function(post_id) {
		var _meta = (typeof post_id != 'undefined') ? Dsq.jsonData.posts[post_id] : false;
		var base_url = 'http://disqus.com/embed/edit.html';
		var params = {
			'p' : post_id
		};
		return this._frameGeneric(base_url, params, {'class': 'dsq-post-edit', 'name': 'dsq-edit_' + post_id + '-frame'});
	};

	//
	// Menus
	//

	this.menuMore = function(post_id) {
		// TODO: "Remove post" button should hide menu.
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		return ' \
			<li><a href="#comment-' + post_id + '" onclick="Dsq.Popup.permalink(' + post_id + ')">Link</a></li> \
			<li><a href="#" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">Profile</a></li>'
	+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator
		? '	<li class="dsq-menu-sep"></li>' + (_meta.email ? '<li class="dsq-admin-email">' + _meta.email + '</li>' : '')
		+ '	<li class="dsq-admin-ip">' + _meta.ip + '</li> \
			<li class="dsq-menu-sep"></li>'
		+ (Dsq.jsonData.request.moderator_can_edit
			? ' <li class="dsq-admin-edit"><a href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); return false;">Edit Comment</a></li>'
			: '')
		+ ' <li class="dsq-remove"><a href="#" onclick="Dsq.Post.removePost(' + post_id + ', 1); return false;">Remove Comment</a></li> \
			<li class="dsq-report-spam"><a href="#" onclick="Dsq.Post.reportSpam(' + post_id + '); return false;">Mark Spam</a></li> \
			<li class="dsq-block-user"><a href="#" onclick="Dsq.Popup.blacklist(' + post_id + '); return false">Block User</a></li>'
		: '');
	};

	this.menuMedia = function(post_id) {
		return ' \
			<li><a href="#" onclick="Dsq.Post.toggleMediaReply(this, ' + post_id + ', \'seesmic\'); return false;">Record video</a></li> \
		';
	};

	this.dropProfile = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];

		var _includeServices = function() {
			var userServices = Dsq.Post.getUserServices(null, post_id);
			var html = '';
			var hiddenThreshold = 3; // Define # of services to show before stuffing them in hidden div

			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == hiddenThreshold
					? '<li id="dsq-drop-hidden-' + post_id +'" class="dsq-drop-hidden"><ul>'
					: '')
				+ '<li class="dsq-drop-services"> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank"> \
						<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '">'
					+ userServices[i].name
					+ '</a> \
				</li>';
			}

			if(i >= hiddenThreshold) {
				html += '</ul></li> \
				<li id="dsq-drop-more-' + post_id + '" class="dsq-drop-more"><a href="#" onclick="Dsq.Post.dropProfileMore(this, '+ post_id + '); return false"><small>&#9660;</small></a></li> \
				';
			}
			return html;
		};


		var menu = '<li class="dsq-drop-showlnk"><a href="#" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">Expand &#8663;</a></li>';
		var pointsMessage = '';
		if (userData['registered']) {
			pointsMessage = 'with ' + userData['points'] + ' points (more points are better).';
		}

		if (userData['is_remote']) {
			var domain = userData['remote_domain_name'];
			menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' is a ' + domain + ' user ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
			menu += '<span class="dsq-badge-' + domain.toLowerCase() + '">' + domain + '</span></li>';
		} else if (userData['registered']) {
			if (userData['verified']) {
				menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has a verified commenter profile ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
				menu += '<span class="dsq-badge-verified">Verified</span></li>';
			} else {
				menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has a registered, but unverified, commenter profile ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
				menu += '<span class="dsq-badge-registered">Registered</span></li>';
			}
		} else {
			menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has not claimed this commenter profile." onclick="Dsq.Popup.helpBadges()"><span class="dsq-badge-guest">Guest</span></li>';
		}

		menu += _includeServices();
		return menu;
	};

	//
	// Popups
	//

	this._popupGeneric = function(content) {
		return ' \
		<div class="dsq-popup-content"> \
			<div class="dsq-popup-top"></div> \
			<div class="dsq-popup-body" class="clearfix"> \
				<div class="dsq-popup-body-padding"> \
					<div class="dsq-popup-header"> \
						<a class="dsq-close-link" href="#" onclick="Dsq.Popup._closePopup(null, true); return false"><img src="http://media.disqus.com/images/modal-close.png" alt="" /></a>'
						+ content['header']
					+ '</div>'
					+ content['body']
					+ '<div class="powered-by"><a href="http://disqus.com/comments/">Powered by <img src="http://media.disqus.com/images/embed/disqus-logo.png" alt="Disqus Comments" style="margin-bottom:-5px" /></a></div> \
				</div> <!-- padding --> \
			</div> <!-- body --> \
			<div class="dsq-popup-bottom"></div> \
		</div> \
		';
	};

	this.popupProfile = function(user_key) {
		var userServices = Dsq.Post.getUserServices(user_key, null);
		var userData = Dsq.jsonData['users'][user_key];
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		var _includeServices = function() {
			var html = '';
			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == 0
					? '<h4>Connections</h4><ul>'
					: '')
				+ '<li> \
					<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '" title="' + userServices[i].name.toLowerCase() + '" /> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank">'
					+ userServices[i].name
					+ '</a> \
				</li>'
				+ (i+1 == userServices.length ? '</ul>' : '');
			}
			return html;
		};

		headerHtml = ' \
			<table> \
				<tr> \
					<td> \
						<a class="dsq-profile-userurl" href="' + userData.url + '"><img class="dsq-popup-profile-avatar" src="' + userData['avatar'] + '" alt="" /></a> \
					</td> \
					<td> \
						<div class="dsq-popup-profile-user"> \
							<h3>' + userData['display_name'] + '</h3> \
							<div class="dsq-popup-profile-user-stats" id="dsq-popup-profile-user-stats-' + user_key + '">Loading...</div> \
						</div> \
					</td> \
				</tr> \
			</table> \
		';

		bodyHtml = ' \
			<div class="dsq-popup-profile-state"> \
				This is a&nbsp;<span class="'
					+ (userData['registered']
						? (userData['verified']
							? ' dsq-badge-verified'
							: (userData['is_remote']
								? ' dsq-badge-' + userData['remote_domain_name'].toLowerCase()
								: ' dsq-badge-registered')
							)
							: ' dsq-badge-guest') + '">'
			+ (userData['registered']
				? (userData['verified']
					? 'Verified'
					: (userData['is_remote']
						 ? userData['remote_domain_name']
						 : 'Registered')
					)
				: 'Guest')
			+ '</span>&nbsp;commenter profile.'
			+ '&nbsp;<a class="dsq-profile-userurl" href="' + userData.url + '"><strong>View more comments </strong></a>'
			+ (!userData['points']
				? '<p class="dsq-popup-notice">If this is you, <a href="http://disqus.com/profile" target="_blank">claim it now</a> to manage your comments.</p>'
				: '')
			+ ((userData['registered'] && !userData['verified'] && (Dsq.jsonData.request.username && (Dsq.jsonData.request.username == userData['username'])) && !userData['is_remote'])
				? '<p class="dsq-popup-notice"><strong>Alert</strong>: You have not verified this account. <a href="http://disqus.com/verify">Verify it now.</a></p>'
				: '')
			+ '</div> \
			<div id="dsq-profile-status-' + user_key + '" class="dsq-popup-profile-status" style="display:none"></div> \
			<div class="dsq-popup-profile-snapshot"> \
				<table> \
					<tr> \
						<td> \
							<div id="dsq-popup-profile-active-sites-wrapper-' + user_key + '"> \
								<h4>Most active sites</h4> \
								<ul id="dsq-popup-profile-active-sites-' + user_key + '"> \
									<li>Loading...</li> \
								</ul> \
							</div> \
						</td> \
						<td>'
							+ _includeServices()
							+ '<div id="dsq-popup-profile-moderated-wrapper-' + user_key + '"> \
								<h4>Moderator of</h4> \
								<ul id="dsq-popup-profile-moderated-' + user_key + '"> \
									<li>Loading...</li> \
								</ul> \
							</div> \
						</td> \
					</tr> \
				</table> \
			</div> \
			';

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.popupReblog = function() {
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		headerHtml = ' \
			<cite><span>Reblog this comment</span></cite> \
		';

		bodyHtml = ' \
			<div id="dsq-reblog-form" class="dsq-reblog-form"> \
			</div> \
		';

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.popupModal = function(title, message) {
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		headerHtml = ' \
			<h3>' + title + '</h3> \
		';

		bodyHtml = message;

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.alertContent = function(name, post_id) {
		var alert = {
			'post_not_approved': {
				'title': 'Comment awaiting approval by a moderator',
				'message': 'Thanks for posting. Your comment must be approved by a moderator before appearing here.'
			},
			'post_has_profile': {
				'title': 'Use your existing commenter profile',
				'message': 'You have just posted your commment as a <span class="dsq-badge dsq-badge-guest">Guest</span>, but you may already have a <span class="dsq-badge dsq-badge-registered">Registered</span> commenter profile.<br /><br /><a href="http://disqus.com/claim">Log in and claim this comment!</a>'
			}
		};
		return alert[name] || false;
	};

	//
	// Actions
	//

	this.voted = function(post_id, points, vote) {
		// Update number of points
		Dsq.$('dsq-points-' + post_id).innerHTML = points + Dsq.Utils.pluralize(points, ' person', ' people') + ' liked this comment.';

		// Update link text
		if(vote) {
			Dsq.$('dsq-rate-cont-' + post_id).innerHTML = 'You liked this.';
		}
	};

	this.subscribed = function(status) {
		var title, message;

		if(status) {
			title = 'Subscribed!';
			message = 'You have subscribed to this comment thread. New comments will be sent directly to your email inbox, where you may read and respond by email.';
			Dsq.$('dsq-subscribe').innerHTML = ' \
				<a href="#" onclick="Dsq.Thread.subscribe(0); return false">Unsubscribe</a> \
			';
		} else {
			title = 'Unsubscribed';
			message = 'You have unsubscribed to this comment thread. New comments will no longer be sent to your email inbox.';
			Dsq.$('dsq-subscribe').innerHTML = ' \
				<a href="#" onclick="Dsq.Thread.subscribe(1); return false">Subscribe by email</a> \
			';
		}

		Dsq.Popup.popModal(message, title);

	};
	
	this.highlighted = function() {
		Dsq.Popup.popModal('This comment has been highlighted.', 'Highlighted comment');
	};

	//
	// Media
	//

	this.mediaSeesmic = function(id, thumb) {
		return ' \
			<div id="dsq-seesmic-' + id + '_preview" class="dsq-seesmic-preview"><a href="http://www.seesmic.com/video/' + id + '" target="_blank" class="see_link">&nbsp;</a> \
				<div style="display:block;width:160px; height:120px; border:none; background-image:url(http://t.seesmic.com/thumbnail/' + thumb + ')"> \
					<div id="dsq-seesmic-' + id + '_hide" class="seePlayOverlay" style="display:none;"><img onclick="see_play_video(\'' + id + '\',false)" src="http://media.disqus.com/images/seesmic/stopOverlay.png" width="50" height="50" style="cursor:pointer; cursor:hand; padding-top: 30px; padding-left: 50px" alt="" /></div> \
					<div id="dsq-seesmic-' + id + '_show" class="seePlayOverlay"><img onclick="see_play_video(\'' + id + '\',true)" src="http://media.disqus.com/images/seesmic/playOverlay.png" width="50" height="50" style="cursor:pointer; cursor:hand; border:none; padding-top: 30px; padding-left: 50px" alt="" /></div> \
				</div> \
			</div> \
			<div id="' + id + '_content" style="display:block; width:100%; padding-top:5px"></div> \
		';
	};

	//
	// Callbacks
	//

	this.postComment_onSuccess = function(parent_post_id) {
		// Increment post count
		var num_posts = Dsq.$('dsq-num-posts');
		var total_posts = Dsq.$('dsq-total-posts');
		
		if (num_posts) { 
			num_posts.innerHTML = parseInt(num_posts.innerHTML) + 1;
		}
		if (total_posts) { 
			total_posts.innerHTML = parseInt(total_posts.innerHTML) + 1;
		}
	};
};
// Dsq.Templates


/**
 * Dsq.Post
 */
Dsq.Post = new function() {
	this.openedMenu = {};
	this.menuEventListener = null;
	this.stateReplyToggled = {};
	this.stateEditToggled = {};
	this.stateRecordLink = {};

	/**
	 * Inserts a new post into the document.
	 *
	 * @param after_id {Number}	Insert a post before specified id.  If after_id
	 *							evaluates to false, then post in the front.  If
	 *							after_id is -1, post at the end.
	 */
	this.insert = function(after_id, id, message, author) {
		// Skeleton template from thread_posts.html.
		var skeleton = ' \
			<li id="dsq-comment-%(id)s"> \
				<div id="dsq-comment-header-%(id)s" class="dsq-comment-header"> \
					<cite id="dsq-cite-%(id)s" class="dsq-comment-cite"> \
						<a id="dsq-author-user-%(id)s" href="%(author_url)s" target="_blank" rel="nofollow">%(author_name)s</a> \
					</cite> \
				</div> \
				<div id="dsq-comment-body-%(id)s" class="dsq-comment-body"> \
					<div id="dsq-comment-message-%(id)s" class="dsq-comment-message">%(message)s</div> \
				</div> \
			</li> \
		';
		var _meta = Dsq.jsonData.posts[id];
		var _user_meta = Dsq.jsonData.users[_meta.user_key];
		var markup = Dsq.Utils.interpolate(skeleton, {
			id: id,
			message: message,
			author_url: _user_meta.blog,
			author_name: _user_meta.display_name
		});
		var div = document.createElement('div');
		markup = markup.replace(Dsq.COMMENTS_RE, Dsq.CommentsHandler);
		div.innerHTML = markup;

		if (after_id === -1) {
			Dsq.$('dsq-comments').appendChild(div);
		} else if (!after_id) {
			Dsq.$('dsq-comments').insertBefore(div, Dsq.$('dsq-comments').firstChild);
		} else if (Dsq.$('dsq-comment-' + after_id)) {
			// Get next node after "after_id", so we can insert before it.
			// If "after_id" is the last comment, the target node is the
			// last node.
			
			// var append_post_id = Dsq.Templates.appendPost(after_id).replace('<div id="','').replace('"></div>', '');
			var append_post_id = 'dsq-append-post-' + after_id;
			var node = Dsq.$(append_post_id);
			while (node = node.nextSibling) {
				if (!node || node.nodeType == 1) { // 1 == Node.ELEMENT_NODE
					break;
				}
			}
			if (!node) {
				node = Dsq.$(append_post_id);
			}
			node.parentNode.insertBefore(div, node);
		}
	};

	this.incrementPostCount = function() {
		
		var num_posts = Dsq.$('dsq-num-posts');
		var total_posts = Dsq.$('dsq-total-posts');

		if (num_posts) {
			num_posts.innerHTML = parseInt(num_posts.innerHTML, 10) + 1;
		}
		if (total_posts) {
			total_posts.innerHTML = parseInt(total_posts.innerHTML, 10) + 1;
		}
	}
	
	this.outlineComment = function(post_id) {
		Dsq.$('dsq-comment-' + post_id).className += ' dsq-comment-outline';
		setTimeout("(function () { Dsq.Post.clearOutlineComment(" + post_id + ") })()", 3000);
	};
	
	this.clearOutlineComment = function(post_id) {
		Dsq.$('dsq-comment-' + post_id).className = Dsq.$('dsq-comment-' + post_id).className.replace('dsq-comment-outline', '');
	};

	this.showMenu = function(el, id, name) {
		var anchorPos = Dsq.Utils.findPos(el);
		var menu = document.createElement('ul');

		if(this.openedMenu) {
			if(this.openedMenu.linkClicked) {
				this.openedMenu.linkClicked = false;
				return;
			}
		}

		switch(name) {
			case 'more':
				menu.innerHTML = Dsq.Templates.menuMore(id);
				break;
			case 'media':
				menu.innerHTML = Dsq.Templates.menuMedia(id);
				break;
			default:
				break;
		}

		// Add menu to document body
		menu.id = 'dsq-menu-' + id;
		menu.className = 'dsq-menu';
		Dsq.$b.appendChild(menu);

		// Position and show
		anchorPos[1] += 15;
		menu.style.left = anchorPos[0] + 'px';
		menu.style.top = anchorPos[1] + 'px';
		menu.style.display = 'block';

		// Set global reference
		this.openedMenu = {
			'el' : menu,
			'id' : id,
			'name' : name,
			'linkClicked' : false
		};

		// Set listener
		this.menuEventListener = Dsq.Utils.addEventListener(document, 'mouseup', this._hideMenu);
	};

	this._hideMenu = function(e) {
		var el = e.target || e.srcElement;
		var openedMenu = Dsq.Post.openedMenu.el;
		var id = Dsq.Post.openedMenu.id;

		if(!id) {
			var link = 'dsq-' + Dsq.Post.openedMenu.name + '-link';
		} else {
			var link = 'dsq-' + Dsq.Post.openedMenu.name + '-link-' + id;
		}

		if(!openedMenu) {
			return;
		}

		if(!Dsq.Popup.isClicked(e, openedMenu.id)) {
			openedMenu.style.display = 'none';
			Dsq.Utils.removeEventListener(Dsq.Post.menuEventListener);
			Dsq.Utils.deleteNode(openedMenu);

		} else {
			// Hide the menu if a link was clicked inside the menu.  We can't
			// completely remove the menu until the onclick event on the link
			// fires, but the menuEventListener will prevent multiple menus
			// from polluting the DOM.
			if(el && typeof el.href != 'undefined') {
				openedMenu.style.display = 'none';
				Dsq.Post.openedMenu.el = null;
			}
		}

		if(Dsq.Popup.isClicked(e, link)) {
 			Dsq.Post.openedMenu.linkClicked = true;
		}
	};


	this.getUserServices = function(user_key, id) {
		if(!user_key && id) {
			var _meta = Dsq.jsonData.posts[id];
			user_key = _meta.user_key;
		}
		var userData = Dsq.jsonData['users'][user_key];
		var userServices = [];

		// Keep a full list of supported services. This is the order they will display in the drop-profile.
		// Each service must have a corresponding case in _buildServiceUrl()
		var supportedServices = ['blog', 'twitter', 'facebook', 'tumblr'];

		function _buildServiceUrl(serviceName) {
			var data = userData[serviceName];
			var services = {
				blog:		function(d) { return d; },
				twitter:	function(d) { return d; },
				facebook:	function(d) { return d; },
				tumblr:		function(d) { return 'http://' + d + '.tumblr.com'; }
			};
			return services[serviceName](data);
		}

		for(var i = 0; i < supportedServices.length; i++) {
			if(userData[supportedServices[i]]) {
				var serviceUrl = _buildServiceUrl(supportedServices[i]);
				userServices.push({'name' : supportedServices[i], 'url' : serviceUrl});
			}
		}
		return userServices;
	}

	this.dropProfile = function(id) {
		var dp = Dsq.$('dsq-drop-profile-' + id);

		// IE6 needs JS to display/hide. All other browsers use CSS.
		if(dp) {
			if(Dsq.Utils.ie6) dp.style.display = (dp.style.display == 'inline') ? 'none' : 'inline';
			return false;
		} else {
			dp = document.createElement('ul');
		}

		dp.id = 'dsq-drop-profile-' + id;
		dp.className = 'dsq-drop-profile';

		if(Dsq.Utils.ie6) { dp.style.display = 'inline'; }

		var container = Dsq.$('dsq-header-avatar-' + id);
		dp.innerHTML = Dsq.Templates.dropProfile(id);
		container.appendChild(dp);
	};

	this.dropProfileMore = function(el, id) {
		var hiddenItems = Dsq.$('dsq-drop-hidden-' + id);

		hiddenItems.style.display = 'inline';
		el.parentNode.style.display = 'none';
	};

	this._updateReplyLinks = function(el, id) {
		// Update "reply / cancel" links based on state.
		var displayDict = {};

		if(id) {
			if(this.stateReplyToggled[id]) {
				el.innerHTML = 'Cancel';
				displayDict['media'] = 'inline';
				displayDict['edit'] = 'none';
			} else {
				el.innerHTML = 'Reply';
				displayDict['media'] = 'none';
				displayDict['edit'] = 'inline';
			}
		}

		for(var key in displayDict) {
			if(displayDict.hasOwnProperty(key)) {
				var	linkEl = Dsq.$('dsq-' + key + '-el-' + id),
					spacer = Dsq.$('dsq-' + key + '-spacer-' + id);

				if(linkEl) {
					linkEl.style.display = displayDict[key];
					if(spacer) spacer.style.display = displayDict[key];
				}
			}
		}
	};

	this._updateMediaLinks = function(el, id) {
		// Update "use media / cancel" links based on state.
		var appendId = (id) ? ('-' + id) : '';
		var link = Dsq.$('dsq-media-link' + appendId);

		if(this.stateRecordLink[id]) {
			link.innerHTML = 'Cancel Media';
			link.onclick = function() { Dsq.Post.toggleMediaReply(link, id); return false; };
		} else {
			link.innerHTML = 'Use Media <small>&#9660;</small>';
			link.onclick = function() { Dsq.Post.showMenu(link, id, 'media'); return false; };
		}
	};

	this.toggleReply = function(el, id) {
		// Create reply IFrame
		if (window.disqus_use_postmessage) {
			if (!this.stateReplyToggled[id]) {
				Dsq.$('dsq-reply-' + id).style.display = 'block';
				Dsq.$('dsq-reply-bar-' + id).style.display = 'block';
				// Create IFrame if it doesn't exist.
				if (!Dsq.frames['reply_' + id]) {
					var _meta = Dsq.jsonData.posts[id];
					Dsq.frames['reply_' + id] = new Dsq.ReplyFrame(Dsq.$('dsq-reply-frame-' + id), id);
					Dsq.frames['reply_' + id].init();
					Dsq.frames['reply_' + id].setState(id, _meta.depth);
				}
			} else {
				Dsq.$('dsq-reply-' + id).style.display = 'none';
				Dsq.$('dsq-reply-bar-' + id).style.display = 'none';
			}
		} else {
			// DEPRECATED
			if(!this.stateReplyToggled[id]) {
				// Reply toolbar
				Dsq.$('dsq-reply-bar-' + id).style.display = 'block';
				Dsq.Iframes.showReplyIframeInContainerIfAllowed(Dsq.$('dsq-reply-' + id), id);
			} else {
				Dsq.$('dsq-reply-bar-' + id).style.display = 'none';
				Dsq.Iframes.hideAllInContainer(Dsq.$('dsq-reply-' + id));
				if(this.stateRecordLink[id]) {
					// HACK: Cancel media before canceling self.
					this.toggleMediaReply(Dsq.$('dsq-media-link-' + id), id);
				}
			}
		}

		this.stateReplyToggled[id] = !this.stateReplyToggled[id];
		this._updateReplyLinks(el, id);

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE('dsq-reply-' + id); }

		Dsq.Events.fire(Dsq.Events.REPLY_IFRAME_TOGGLED, {
			postId: id,
			opened: this.stateReplyToggled[id]
		});
	};

	this.toggleMediaReply = function(el, id, xtype) {
		id = id || 0;
		if(id) {
			var container = Dsq.$('dsq-reply-' + id);
		} else {
			var container = Dsq.$('dsq-post-add');
		}

		if(!this.stateRecordLink[id]) {
			Dsq.Iframes.showReplyIframeInContainer(container, id, {xtype:xtype}, 'dsq-post-video');
		} else {
			Dsq.Iframes.showReplyIframeInContainer(container, id);
		}
		this.stateRecordLink[id] = !this.stateRecordLink[id];
		this._updateMediaLinks(el, id);

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
	};

	this.edit = function(el, id) {
		Dsq.$('dsq-comment-message-' + id).innerHTML = Dsq.Templates.frameEdit(id);
		el.parentNode.style.display = 'none';
		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE('dsq-comment-message-' + id); }
	};

    this.rate = function(el, id, vote) {
		if(Dsq.jsonData.request.is_authenticated || Dsq.jsonData.forum.allow_anon_votes) {
			if(vote == 1) {
                Dsq.$('dsq-rate-cont-' + id).innerHTML = '<img src="http://media.disqus.com/images/loading-small.gif">';
            }

            Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/vote.js'
                + '?post_id='    + id
                + '&vote='        + vote);

		} else {
			Dsq.Popup.login(Dsq.Strings.TO_RATE_PLEASE_LOG_IN);
		}
    };

	this.report = function(id, confirmed) {
		if(confirmed) {
			Dsq.Utils.postToUrl('http://disqus.com/forums/scobleizer/nokia_n97_the_ultimate_facebook_device/post_report/', {'post_id': id});
			Dsq.Popup.popModal('Thank you. This comment has been flagged for moderator attention.', 'Successfully flagged');
			Dsq.Utils.deleteNode(Dsq.$('dsq-post-report-' + id));
		} else {
			var title = Dsq.Strings.FLAG_INAPPROPRIATE_COMMENT;
			var message = Dsq.Strings.ARE_YOU_SURE_YOU_WOULD_LIKE_TO_REPORT_THIS_COMMENT_TO_A_MODERATOR + '? \
			<br /><br /> \
			<button type="button" onclick="Dsq.Popup._closePopup(null, true)"><strong>' + Dsq.Strings.NO + '</strong>, ' + Dsq.Strings.NEVER_MIND + '</button>&nbsp;&nbsp;&nbsp;<button type="button" onclick="Dsq.Post.report(' + id + ', true);"><strong>' + Dsq.Strings.YES + '</strong>, ' + Dsq.Strings.FLAG_INAPPROPRIATE_COMMENT + '</button><br /><br />'
			+ Dsq.Strings.THIS_WILL_FLAG_COMMENTS_FOR_MODERATORS_TO_TAKE_ACTION + '. \
			';

			Dsq.Popup.popModal(message, title, id);
		}
	};



	this.showAlert = function(id, msg) {
		var msgEl = Dsq.$('dsq-comment-message-' + id);
		var alert = '<div class="dsq-comment-alert">' + msg + '</div>';

		msgEl.innerHTML = alert + msgEl.innerHTML;
	};

};
// Dsq.Post


/**
 * Dsq.Thread
 */
Dsq.Thread = new function() {
	this.fc = null;
	this.ff = null;
	this.ac = null;

	
	this.adminIsOn = false;

	
	
	

	this.hlComment = null;
	this.hlCommentClass = null;

	this.getNextComment = function(el) {
		var start_id = el.id;
		while(el = el.nextSibling) {
			if(el.id && el.id.indexOf('dsq-comment-') != -1 && el.id != start_id) {
				return el;
			}
		}
		return null;
	};

	this.getActiveCommentId = function() {
		if (document.URL.indexOf('#comment-') >= 0) {
			var anchor = document.URL.slice(document.URL.indexOf('#') + 1);
			return anchor.replace('comment-', '');
		}
		return null;
	};

	this.highlightAnchor = function() {
		var i = this.getActiveCommentId();
		if (i == null) return false;
		var id = 'dsq-comment-' + i;
		var hash = window.location.hash;

		// Toggle the hash incase the comment isn't available when the page loads
		// for WebKit-based browsers.
		if (Dsq.Utils.webkit) {
			window.location.hash = '';
			window.location.hash = hash;
		}

		this.hlComment = Dsq.$(id);
		// Adding this conditional guard pending #289
		if (!this.hlComment) {
			return;
		}
		this.hlCommentClass = this.hlComment.className;
		this.hlComment.className += ' dsq-hl-anchor';

		setTimeout("Dsq.Thread.highlightClear()", 3000);
	};

	this.highlightClear = function() {
		if (!this.hlComment) {
			return;
		}
		this.hlComment.className = this.hlCommentClass;
	};

	this.login = function(toggle) {
		// toggle id is #dsq-reply-login-[id]
		var postId;
		if(toggle.id.indexOf('dsq-reply-login') != -1) {
			postId = toggle.id.slice(16);
			var container = Dsq.$('dsq-reply-' + postId);
		} else {
			var container = Dsq.$('dsq-post-add');
		}

		if(toggle) {
			if(toggle.className == 'dsq-login-active') {
				Dsq.Iframes.showReplyIframeInContainerIfAllowed(container, postId);
				toggle.className = '';
			} else {
				Dsq.Iframes.showLoginIframeInContainer(container, postId);
				toggle.className = 'dsq-login-active';
			}
		} else {
			Dsq.Iframes.showLoginIframeInContainer(container, postId);
		}

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
	};


	this.paginate = function(page, el_clicked, per_page) {
		// Use extra_params to pass any override parameters that we need to persist.
		var extra_params = '';

		// "Per page" can either be overriden by providing it as an argument
		// (per-call) or setting the disqus_per_page override variable (global).
		if(typeof per_page == 'undefined') {
			per_page = null;
		}
		if(typeof disqus_per_page != 'undefined' && per_page === null) {
			per_page = disqus_per_page;
		}

		if(typeof disqus_sort != 'undefined') {
			extra_params += '&sort=' + disqus_sort;
		}
		if(per_page !== null) {
			extra_params += '&per_page=' + per_page;
		}

		Dsq.$('dsq-pagination').innerHTML += '<img src="http://media.disqus.com/images/loading-small.gif">';
		
		if(el_clicked) {
			el_clicked.style.display = 'none';
		}
		
		Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/thread.js'
			+ '?slug='	+ 'nokia_n97_the_ultimate_facebook_device'
			+ '&p='		+ page
			+ extra_params);
	};

	this.sortBy = function(sort) {
		var disqus_script = document.createElement('script');
		var disqus_date = new Date();

		if (location.hash != '') {
			location.hash = '#disqus_thread';
		}

		if(typeof(disqus_url) == 'undefined') {
			disqus_url = disqus_href;
		}
		disqus_script.type = 'text/javascript';
		disqus_script.src = 'http://disqus.com/forums/scobleizer/thread.js'
			+ '?slug='	+ 'nokia_n97_the_ultimate_facebook_device'
			+ '&sort='	+ sort
			+ '&title='
			+ '&'		+ disqus_date.getTime();

		Dsq.$('dsq-comments').innerHTML = '<img src="http://media.disqus.com/images/loading.gif">';
		Dsq.container.appendChild(disqus_script);
	};

	this.subscribe = function(status, email) {
		// `status` is an int -- 1 to subscribe, 0 to unsubscribe
		if(Dsq.jsonData.request.is_authenticated || email) {
			// If authenticated user OR anonymous email provided

			if(email) {
				Dsq.Popup._closePopup(null, true);
			}

			Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/subscribe.js'
				+'?status=' 	+ status
				+ '&slug='		+ 'nokia_n97_the_ultimate_facebook_device'
				+ '&email=' 	+ encodeURIComponent(email));

		} else if(!email) {
			// If anonymous user and no email has been provided yet, prompt for email

			var title = 'Subscribe to this comment thread';
			var message = ' \
				New comments will be sent directly to your email inbox! \
				<div class="dsq-subscribe-submit"> \
					<p><strong>Enter your email address below.</strong></p> \
					<input type="text" id="dsq-subscribe-email"> \
					<button type="button" onclick="Dsq.Thread.subscribe(1, Dsq.$(\'dsq-subscribe-email\').value)">Subscribe</button> \
				</div> \
			';

			Dsq.Popup.popModal(message, title);
		}
	};

	this.showSettings = function() {
		if (!Dsq.jsonData.request.is_moderator) {
			return;
		}

		/* The form has to be re-designed when more options will come out. */
		var html = 'Automatically close comments after <input size="3" id="dsq-thread-days-alive" value="' + Dsq.jsonData.thread.days_alive + '" type="text" /> days. Existing comments will still be displayed.<br /><br />(Using 0 days will disable this feature)<br /><br />'
								 + '<button type="button" onclick="Dsq.Thread.updateDaysAlive();" class="dsq-button-small"><span>Save</span></button>'
								 + '<span id="dsq-thread-settings-status" class="dsq-options-status"></span>';

		Dsq.Popup.popModal(html, 'Settings');
	};

  this.showModeratorActions = function() {
      if (!Dsq.jsonData.request.is_moderator) {
          return;
      }

      var html = '<div class="dsq-moderate-options"><table><tr>' +
                 '<td>' + Dsq.Strings.ACTIONS + '</td><td><ul>';
      html += '<li><a href="#" onclick="Dsq.Thread.toggleClosed(); return false;">' +
              (Dsq.jsonData.thread.closed ? Dsq.Strings.OPEN_THREAD : Dsq.Strings.CLOSE_THREAD) +
              '</a></li>';
      html += '<li><a href="#" onclick="Dsq.Thread.toggleKilled(); return false;">' +
              (Dsq.jsonData.thread.killed ? Dsq.Strings.RESTORE_THREAD : Dsq.Strings.REMOVE_THREAD) +
              '</a></li>';
      html += '</ul></td></tr></table></div>' +
              '<p>Go to the full <a href="http://disqus.com/comments/moderate-threads/" target="_blank">moderate panel</a> for more options.</p>';
      Dsq.Popup.popModal(html, Dsq.Strings.MODERATE_OPTIONS);
  };

	this.updateDaysAlive = function() {
		  var days = Dsq.$('dsq-thread-days-alive').value;
		  var status = Dsq.$('dsq-thread-settings-status');
		  Dsq.Utils.postToUrl('http://disqus.com/forums/scobleizer/update_days_alive.js', {days:days,thread:Dsq.jsonData.thread.id});
		  status.innerHTML = 'Saved!';
		  window.setTimeout(function() { status.innerHTML = ''; }, 1000);
	};

  this.toggleClosed = function() {
      Dsq.Utils.postToUrl('http://disqus.com/forums/scobleizer/toggle_thread_closed.js', {thread:Dsq.jsonData.thread.id});
      window.setTimeout(function() { window.location.reload(); }, 500);
  };

  this.toggleKilled = function() {
      Dsq.Utils.postToUrl('http://disqus.com/forums/scobleizer/toggle_thread_killed.js', {thread:Dsq.jsonData.thread.id});
      window.setTimeout(function() { window.location.reload(); }, 500);
  };
};
// Dsq.Thread

Dsq.Events = function() {
	var obj = {};

	// Private
	var handlers = {};
	var getHandlers = function(event) {
		if (handlers[event] === undefined) {
			handlers[event] = [];
		}
		return handlers[event];
	};

	// Public
	// Value keys : postId, node, xtype
	obj.REPLY_IFRAME_CREATED = 1;
	// Value keys : postId, opened
	obj.REPLY_IFRAME_TOGGLED = 2;
	obj.fire = function(event, opt_value) {
		if (!event) {
			throw new Error('Unknown event');
		}
		var value = opt_value || {};
		for (var i=0; i<getHandlers(event).length; i++) {
			getHandlers(event)[i](value);
		}
	};
	obj.addHandler = function(event, callback) {
		getHandlers(event).push(callback);
	};

	return obj;
}();

/**
 * Dsq.Realtime
 */
Dsq.Realtime = new function() {
	var initialized = false;
	var interval = null;
	var last_checked = Dsq.jsonData.request.timestamp;
	var new_posts = [];
	var ongoing_request = false;
	var prev_script = null;

	function updateNewPostCount() {
		Dsq.$('dsq-realtime-alert').style.display = new_posts.length ? 'block' : 'none';

		Dsq.$('dsq-realtime-queued').innerHTML = new_posts.length
		+ ' new '
		+ Dsq.Utils.pluralize(new_posts.length, 'comment', 'comments')
		+ Dsq.Utils.pluralize(new_posts.length, ' was', ' were')
		+ ' just posted.';

		Dsq.$('dsq-realtime-show').innerHTML = '(' + Dsq.Strings.SHOW + ')';
	}

	function insertNewPosts() {
		var post_id = null;
		var after_id = Dsq.$('dsq-sort-select').value === 'oldest' ? -1 : null;

		for (var i=0; i<new_posts.length; i++) {
			post_id = new_posts[i];
			Dsq.Post.insert(after_id, post_id, Dsq.jsonData.posts[post_id].message);
			Dsq.Post.incrementPostCount();
			Dsq.Post.outlineComment(post_id);
		}
		new_posts = [];
	}

	this.enableInterval = function() {
		interval = setInterval(Dsq.Realtime.check, Dsq.jsonData.context.realtime_speed);
		Dsq.$('dsq-realtime-status').innerHTML = Dsq.Strings.ENABLED;
		Dsq.$('dsq-realtime-toggle').innerHTML = '(' + Dsq.Strings.PAUSE + ')';
	}

	this.disableInterval = function() {
		if (interval) {
			clearInterval(interval);
			interval = null;
		}
		Dsq.$('dsq-realtime-status').innerHTML = Dsq.Strings.PAUSED;
		Dsq.$('dsq-realtime-toggle').innerHTML = '(' + Dsq.Strings.RESUME + ')';
	}

	this.toggleInterval = function() {
		if (!interval) {
			Dsq.Realtime.enableInterval();
		} else {
			Dsq.Realtime.disableInterval();
		}
		return false;
	}

	this.initialize = function() {
		if (!initialized) {
			initialized = true;
			Dsq.$('dsq-realtime-toggle').onclick = this.toggleInterval;
			if (!Dsq.jsonData.forum.streaming_realtime) {
				Dsq.$('dsq-realtime-show').onclick = this.show;
				updateNewPostCount();
			}
			if (Dsq.jsonData.thread.realtime_paused) {
				Dsq.Realtime.disableInterval();
			} else {
				Dsq.Realtime.enableInterval();
			}
		}
	}

	this.show = function() {
		insertNewPosts();
		updateNewPostCount();
		return false;
	}

	this.check = function() {
		if (!ongoing_request && Dsq.jsonData.realtime_enabled) {
			if (prev_script) {
				prev_script.parentNode.removeChild(prev_script);
			}
			ongoing_request = true;
			prev_script = Dsq.Utils.execScript('http://disqus.com/forums/18348136/realtime.js?timestamp=' + last_checked);
		}
	};

	this.update = function(timestamp, posts, users) {
		ongoing_request = false;
		last_checked = timestamp;

		if (users) {
			for (var user_id in users) {
				if (users.hasOwnProperty(user_id)) {
					if (!Dsq.jsonData.users[user_id]) {
						Dsq.jsonData.users[user_id] = users[user_id];
					}
				}
			}
		}

		if (posts) {
			for (var post_id in posts) {
				if (posts.hasOwnProperty(post_id)) {
					if (!Dsq.jsonData.posts[post_id]) {
						Dsq.jsonData.posts[post_id] = posts[post_id];
						new_posts.push(post_id);
					}
				}
			}

			if (Dsq.jsonData.forum.streaming_realtime) {
				insertNewPosts();
			} else {
				updateNewPostCount();
			}
		}
	};

}();

// DEPRECATED
Dsq.Iframes = function() {
	// Different style of object from the above. Hoping to switch to this for some reason.
	var obj = {};

	// Private
	var showIframeInContainer = function(container, id, markup) {
		// Look through container for iframes, hiding them, except show one that matches id
		// If none of them matched id, create a new iframe using markup and insert it.
		// Returns the iframe node if and only if it was newly created.
		var found = false;
		for (var i=0; i<container.childNodes.length; i++) {
			var child = container.childNodes[i];
			if (child.nodeName == 'IFRAME') {
				if (child.id == id) {
					child.style.display = 'block';
					found = true;
				} else {
					child.style.display = 'none';
				}
			}
		}
		if (found) {
			return;
		}
		// The iframe wasn't found, so construct it and add it to the container.
		// Don't use innerHTML because it might reload iframes
		var div = document.createElement('div');
		div.innerHTML = markup;
		var iframe = div.childNodes[0];
		div.removeChild(iframe);
		container.appendChild(iframe);
		return iframe;
	};

	// Public
	obj.makeReplyIframeId = function(opt_postId, opt_xtype) {
		var id = 'dsq-post-add-iframe';
		if (opt_xtype) {
			id += '-' + opt_xtype;
		}
		if (opt_postId) {
			id += '-' + opt_postId;
		}
		return id;
	};
	obj.makeLoginIframeId = function(opt_postId) {
		if (!opt_postId) {
			return 'dsq-login-iframe';
		}
		return 'dsq-login-iframe-' + opt_postId;
	};
	obj.makeReplyIframeName = function(opt_postId, opt_xtype) {
		var name = 'dsq-reply-frame';
		if (opt_xtype) {
			name += '-' + opt_xtype;
		}
		if (opt_postId) {
			name += '-' + opt_postId;
		}
		return name;
	};
	obj.showReplyIframeInContainer = function(container, opt_postId, opt_extraParams, opt_className) {
		// Construct the id so we can check if it's already present.
		// Hide any other iframes we find, and show this one if it's found.
		var params = opt_extraParams || {};
		// use xtype in the id and name so we can distinguish media replies from text replies:
		var id = Dsq.Iframes.makeReplyIframeId(opt_postId, params.xtype);
		var name = Dsq.Iframes.makeReplyIframeName(opt_postId, params.xtype);
		var attributes = {
			'id': id,
			'name': name,
			'class': opt_className || 'dsq-post-reply'
			};
		var markup = Dsq.Templates.frameReply(opt_postId, opt_extraParams, attributes);
		var iframe = showIframeInContainer(container, id, markup);
		// It was newly created
		if (iframe) {
			Dsq.Events.fire(Dsq.Events.REPLY_IFRAME_CREATED, {
				postId: opt_postId,
				node: iframe,
				xtype: params.xtype
			});
		}
	};
	obj.showLoginIframeInContainer = function(container, opt_postId) {
		var id = Dsq.Iframes.makeLoginIframeId(opt_postId);
		var markup = Dsq.Templates.frameLogin({id: id});
		showIframeInContainer(container, id, markup);
	};
	obj.showReplyIframeInContainerIfAllowed = function(container, opt_postId) {
		if (Dsq.jsonData.context.show_reply) {
			obj.showReplyIframeInContainer(container, opt_postId);
		} else {
			obj.hideAllInContainer(container);
		}
	};
	obj.hideAllInContainer = function(container) {
		for (var i=0; i<container.childNodes.length; i++) {
			var child = container.childNodes[i];
			if (child.nodeName == 'IFRAME') {
				child.style.display = 'none';
			}
		}
	};

	return obj;
}();

Dsq.Twitter = new function() {
	var that = this;

	this.startTwitterConnect = function() {
		var popupParams = 'location=0,status=0,width=800,height=400';
		that._twitterWindow = window.open(Dsq.jsonData.settings.disqus_url + '/_ax/twitter/begin/', 'twitterWindow', popupParams);
		that._twitterInterval = window.setInterval(that.completeTwitterConnect, 1000);
	};

	this.completeTwitterConnect = function() {
		if (that._twitterWindow.closed) {
			window.clearInterval(that._twitterInterval);
			window.location.reload();
		}
	};
};

Dsq.Yahoo = new function() {
	var that = this;

	this.startYahooConnect = function() {
		var popupParams = 'location=0,status=0,width=800,height=400';
		that._yahooWindow = window.open(Dsq.jsonData.settings.disqus_url + '/_ax/yahoo/begin/', 'yahooWindow', popupParams);
		that._yahooInterval = window.setInterval(that.completeYahooConnect, 1000);
	};

	this.completeYahooConnect = function() {
		if (that._yahooWindow.closed) {
			window.clearInterval(that._yahooInterval);
			window.location.reload();
		}
	};
};

Dsq.OpenID = new function() {
	var that = this;

	this.requestURL = function() {
		var message = '<table class="dsq-openid-form"><tr><td style="vertical-align:top;" rowspan="2"><img src="' + Dsq.jsonData.settings.media_url + '/images/openid-icon-100x100.png" /></td>';
		message += '<td><label for="dsq-openid-url">OpenID URL:</label></td><td><input type="text" id="dsq-openid-url" /></td></tr>';
		message += '<tr><td><label for="dsq-openid-username">Display name:</label></td><td><input type="text" id="dsq-openid-username" /></td></tr>';
		message += '<tr><td class="dsq-openid-submit" colspan="3"><input type="button" value="Sign in" onclick="Dsq.OpenID.startConnect();" /></td></tr>';
		message += "</table>";

		Dsq.Popup.popModal(message, 'Sign in using OpenID');
	};

	this.startConnect = function() {
		var isblank = function(str) {
			return /^\s*$/.test(str);
		};

		var openid_url = Dsq.$('dsq-openid-url').value;
		var username = Dsq.$('dsq-openid-username').value;

		if (isblank(openid_url)) {
			return;
		}

		var popupParams = 'location=0,status=0,width=800,height=500';
		var url = Dsq.jsonData.settings.disqus_url + '/_ax/openid/begin/' + '?url=' + encodeURIComponent(openid_url) + '&username=' + encodeURIComponent(username);
		that._openidWindow = window.open(url, 'openidWindow', popupParams);
		that._openidInterval = window.setInterval(that.completeConnect, 1000);
	};

	this.completeConnect = function() {
		if (that._openidWindow.closed) {
			window.clearInterval(that._openidInterval);
			window.location.reload();
		}
	};
};

Dsq.Reaction = new function() {
	var that = this;

	this.hide = function(id) {
		Dsq.Utils.execScript('http://disqus.com/forums/scobleizer/hidereaction.js?' + 'reaction_id=' + id);
	};

	this.reportMissingReactions = function() {
		if (!Dsq.jsonData.request.is_moderator || !Dsq.jsonData.forum.reactions_enabled) {
			return;
		}

		if (Dsq.jsonData.thread.queued) {
			Dsq.Popup.popModal('Your report has been received. The system will automatically search for new reactions; if any are found, they will be displayed on this comment thread.<br/><br/>Thank&nbsp;you.',
												 'Reported missing reactions');
			return;
		}

		Dsq.Utils.execScript(Dsq.jsonData.settings.disqus_url + '/forums/scobleizer/queueurl.js');
	};
};

Dsq.CNN = function() {
	var obj = {};

	obj.authenticate = function() {
		var url = Dsq.jsonData.settings.disqus_url + "/saml/cnn/try/";
		Dsq.Utils.postToUrl(url, {'target': document.location}, true);
	};

	return obj;
}();


if(Dsq.Utils.ie6) {
	(function() {
		DSQ_HEADER_AVATAR_RE = /<div class="dsq-header-avatar"(.*?)>/gim;
		Dsq.Templates.registerFilter('postPrependHeader', function(html, post_id) {
			// Add "onmouseout" for dsq-header-avatar for dropProfile
			// functionality since IE6 cannot use :hover.
			function _headerAvatarReplace(content, inner, _unused, html) {
				return '<div class="dsq-header-avatar" '
					+ inner
					+ ' onmouseout="Dsq.Post.dropProfile(' + post_id + ')">';
			}
			html = html.replace(DSQ_HEADER_AVATAR_RE, _headerAvatarReplace);
			return html;
		});
	})();
}





	// TODO: Move Seesmic code outside of the main script.  Don't let this script clobber the global namespace.
	if(typeof seesmic == 'undefined') { var seesmic = {}; }
	seesmic.widget = new function () {
		this.callback = function (data) {
			playerVersion = data.disqusplayer;
		};
	};

	
	var scriptEl = document.createElement('script');
	scriptEl.setAttribute('type', 'text/javascript');
	scriptEl.setAttribute('src', 'http://seesmic.com/version.js?callback=seesmic.widget.callback');
	document.getElementsByTagName('head')[0].appendChild(scriptEl);

	
	var scriptEl = document.createElement('script');
	scriptEl.setAttribute('type', 'text/javascript');
	scriptEl.setAttribute('src', 'http://media.disqus.com/javascript/library/swfobject.js');
	document.getElementsByTagName('head')[0].appendChild(scriptEl);

	function see_play_video(_videoUri, _add) {
		var swf = !!playerVersion ? playerVersion : 'http://seesmic.com/embeds/StandalonePlayer.swf';

		flashcontentDiv = Dsq.$(_videoUri + '_content');
		previewDiv = Dsq.$('dsq-seesmic-' + _videoUri + '_preview');
		hideDiv = Dsq.$('dsq-seesmic-' + _videoUri + '_hide');
		showDiv = Dsq.$('dsq-seesmic-' + _videoUri + '_show');
		if(_add) {
			// push flash widget
			var so = new SWFObject(swf, 'sotester', '300', '270', '9', '#000000');
			so.addVariable('video', _videoUri);
			so.addParam('allowFullScreen', 'true');
			so.addParam('allowScriptAccess','always');
			so.useExpressInstall('swfobject/expressinstall.swf');
			so.write(_videoUri + '_content');

			previewDiv.style.display = 'none';
			hideDiv.style.display = 'block';
			showDiv.style.display = 'none';
		}
		else {
			flashcontentDiv.innerHTML = '';
			previewDiv.style.display = 'block';
			hideDiv.style.display = 'none';
			showDiv.style.display = 'block';
		}
	};





(function() {
	//
	// Load theme.  This overrides the base templates with template functions
	// from the respective themes.
	//
	if (Dsq.jsonData.integration.theme == 4) {
		var theme = 'narcissus';
		// HACK: Set variable on window to use post message.
		window.disqus_use_postmessage = true;

		
		for(var prop in Dsq.Themes[theme]) {
			if(Dsq.Themes[theme] && Dsq.Themes[theme].hasOwnProperty(prop)) {
				Dsq.Templates[prop] = Dsq.Themes[theme][prop];
			}
		}
		
		for(var prop in Dsq.Post) {
			if(Dsq.Themes[theme] && Dsq.Themes[theme].hasOwnProperty(prop)) {
				Dsq.Post[prop] = Dsq.Themes[theme][prop];
			}
		}
	}

	//
	// Register templates.  This must be done after all themes are loaded.
	//
	Dsq.Templates.registerTemplate('authPost', Dsq.Templates.authPost);
	Dsq.Templates.registerTemplate('header', Dsq.Templates.header);
	Dsq.Templates.registerTemplate('footer', Dsq.Templates.footer);
	Dsq.Templates.registerTemplate('trackbacks', Dsq.Templates.trackbacks);
	Dsq.Templates.registerTemplate('reactions', Dsq.Templates.reactions);
	Dsq.Templates.registerTemplate('prependPost', Dsq.Templates.prependPost);
	Dsq.Templates.registerTemplate('appendPost', Dsq.Templates.appendPost);
	Dsq.Templates.registerTemplate('postPrependHeader', Dsq.Templates.postPrependHeader);
	Dsq.Templates.registerTemplate('postAppendHeader', Dsq.Templates.postAppendHeader);
	Dsq.Templates.registerTemplate('preBody', Dsq.Templates.preBody);
	Dsq.Templates.registerTemplate('postBody', Dsq.Templates.postBody);
	Dsq.Templates.registerTemplate('postFooter', Dsq.Templates.postFooter);
	Dsq.Templates.registerTemplate('_popupGeneric', Dsq.Templates._popupGeneric);
	Dsq.Templates.registerTemplate('voted', Dsq.Templates.voted);
	Dsq.Templates.registerTemplate('popupProfile', Dsq.Templates.popupProfile);
	Dsq.Templates.registerTemplate('postBox', Dsq.Templates.postBox);
	Dsq.Templates.registerTemplate('pagination', Dsq.Templates.pagination);
	Dsq.Templates.registerTemplate('postComment_onSuccess', Dsq.Templates.postComment_onSuccess);

})();

Dsq.container.className = "clearfix";
Dsq.container.innerHTML = ' \
<ul id="dsq-comments">\
	 <li id="dsq-comment-9712125">\
	 <div id="dsq-comment-header-9712125" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712125" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712125" href="http://www.didigetthingsdone.com/" target="_blank" rel="nofollow">Andrew Mason</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712125" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712125" class="dsq-comment-message">I will be eager to take a look at these. I had and liked the N95 but since moved to the iPhone. The Facebook app on the iPhone is great and it will be hard to beat, even for the N97.<br><br>The good thing is that the iPhone has made everybody else raise their bar, thanks Apple!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712126">\
	 <div id="dsq-comment-header-9712126" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712126" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712126">@Fresyes</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712126" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712126" class="dsq-comment-message">Sounds amazing! Thanks for the updates</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712127">\
	 <div id="dsq-comment-header-9712127" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712127" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712127" href="http://www.ryanmerket.com/" target="_blank" rel="nofollow">Ryan Merket</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712127" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712127" class="dsq-comment-message">Nice man!<br><br>So when you say the buttons are "protruding" do you mean on the touchscreen?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712124">\
	 <div id="dsq-comment-header-9712124" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712124" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712124" href="http://Wesak.blogspot.com/" target="_blank" rel="nofollow">Vajra</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712124" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712124" class="dsq-comment-message">How big is it?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712119">\
	 <div id="dsq-comment-header-9712119" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712119" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712119" href="http://www.propdata.co.za/" target="_blank" rel="nofollow">Robert</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712119" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712119" class="dsq-comment-message">Ah... could it actually be better than the iPhone?  Most likely.  Then again some would call me an Apple hater, but I just hate the way Apple lock all their devices into their own software.  Anyhow...<br><br>The QWERTY keyboard is always a winner.  The ability to change batteries is also key.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712120">\
	 <div id="dsq-comment-header-9712120" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712120" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712120" href="http://jimsmarketingblog.com/" target="_blank" rel="nofollow">Jim Connolly</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712120" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712120" class="dsq-comment-message">Hello Robert,<br>The N97 sounds like a useful device - I\'m still using a 12-month old N95 and LOVE it.<br><br>Thanks for the heads-up and for persevering with their crap wi-fi :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712121">\
	 <div id="dsq-comment-header-9712121" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712121" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712121" href="http://tinus.guichelaar.info" target="_blank" rel="nofollow">Tinus</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712121" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712121" class="dsq-comment-message">Second quarter 2009? The iPhone 3G will be a year old by then.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712122">\
	 <div id="dsq-comment-header-9712122" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712122" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712122" href="http://www.eyejot.com/users/davidg" target="_blank" rel="nofollow">David Geller</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712122" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712122" class="dsq-comment-message">Sounds interesting. Anxious to see more details!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712123">\
	 <div id="dsq-comment-header-9712123" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712123" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712123" href="http://www.psynixis.com/blog/" target="_blank" rel="nofollow">Simon Brocklehurst</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712123" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712123" class="dsq-comment-message">The BIG question is: has Nokia adopted Apple\'s strategy of taking central control over updates to the OS?  The point is: every mobile phone, especially high-end phones, is riddled both with bugs and isn\'t feature-complete when new.  Everyone knows this.  So, if Nokia is keeping on with its same old business model of letting the network operators control the device (aka forget about getting any updates to fix bugs/add new features), then no matter what the the phone itself is like, it simply won\'t compete with iPhone effectively.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712075">\
	 <div id="dsq-comment-header-9712075" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712075" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712075" href="http://www.eyejot.com/users/davidg" target="_blank" rel="nofollow">David Geller</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712075" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712075" class="dsq-comment-message">Picture: <a href="http://conversations.nokia.com/.a/6a00d834574c6e69e201053630d120970c-800wi" rel="nofollow">http://conversations.nokia.com/.a/6a00d834574c6...</a><br><br>Press release: <a href="http://conversations.nokia.com/home/2008/12/nokia-n97-marks-evolutionary-milestone-for-nseries-and-mobilekind.html" rel="nofollow">http://conversations.nokia.com/home/2008/12/nok...</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712076">\
	 <div id="dsq-comment-header-9712076" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712076" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712076" href="http://Rahulkumar.posterous.com/" target="_blank" rel="nofollow">Rahul kumar</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712076" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712076" class="dsq-comment-message">This looks great but I\'m going to stick to my iPhone. I see more long term development on the iPhone and most of the ways you suggest the N97 to be better are things that can be solved by software updates. Turn by turn directions, video and copy paste are examples. Now it\'s just time for Apple to realize the gardens wall must open and certain applications should make the app store (QIK) and that certain features should be developed if all other<br>competitors have it such as copy paste which Blackberries, G1 and now Nokia all have</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712092">\
	 <div id="dsq-comment-header-9712092" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712092" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712092" href="http://hv23.tumblr.com/" target="_blank" rel="nofollow">Harish</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712092" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712092" class="dsq-comment-message">The device is one thing, but what I found most interesting in this post was Scoble\'s focus on the phone as a Facebook tool. I see this firsthand, as well, from my vantage point as a college student-- the importance of Facebook for the under-25 generation cannot be overstated.<br>Another clear paradigm shift has taken place- building phones to suit specific applications (or, more basically, the general functionality of social applications), as opposed to building your web services based on the specs of phones.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712093">\
	 <div id="dsq-comment-header-9712093" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712093" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712093">Nick</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712093" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712093" class="dsq-comment-message">Correction: 550 EUR not $550</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712094">\
	 <div id="dsq-comment-header-9712094" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712094" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712094" href="http://ahllc.eu/" target="_blank" rel="nofollow">Chris Abraham</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712094" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712094" class="dsq-comment-message">I love my N95 and plan on grabbing the N96. Now I hunger for the N97. A keyboard is key.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712095">\
	 <div id="dsq-comment-header-9712095" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712095" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712095" href="http://luca.wordpress.com/" target="_blank" rel="nofollow">Luca Conti</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712095" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712095" class="dsq-comment-message">550 euro (+ VAT) Robert :-)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712096">\
	 <div id="dsq-comment-header-9712096" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712096" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712096" href="http://www.mrgadget.com.au/" target="_blank" rel="nofollow">Arnold - Mr.Gadget</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712096" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712096" class="dsq-comment-message">Thanks for your insights on the Nokia N97 Scobez. Makes me wonder who\'ll even pick up the Nokia N96 that hasn\'t even hit the shelves in Australia yet?!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712097">\
	 <div id="dsq-comment-header-9712097" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712097" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712097" href="http://de-de.facebook.com/people/Steffen-Nork/549441374" target="_blank" rel="nofollow">Steffen</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712097" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712097" class="dsq-comment-message">Speaking of which... blogging about the N97 and tagging the post with N97..? ;-)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712098">\
	 <div id="dsq-comment-header-9712098" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712098" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712098" href="http://de-de.facebook.com/people/Steffen-Nork/549441374" target="_blank" rel="nofollow">Steffen</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712098" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712098" class="dsq-comment-message">heheh, that\'s for being smart ass: N95 I meant. =D</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712099">\
	 <div id="dsq-comment-header-9712099" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712099" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712099">William</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712099" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712099" class="dsq-comment-message">I\'m not an apple fanboy, far from it, but this Nokia sounds more expensive (with contract) than the iPhone 3G, and iPhone 3G may have been replaced by Apple to something more comparable by then too.<br><br>Still, it\'s good to have some competion. Keeps Apple on it\'s toes.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712100">\
	 <div id="dsq-comment-header-9712100" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712100" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712100" href="http://www.stiepel.net/" target="_blank" rel="nofollow">Henrik</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712100" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712100" class="dsq-comment-message">Just had a look at the Nokia press info, can I say formfactor and other features remind me very much of the Xperia X1 from Sony I got just last week?<br><br>QWERTY keyboard, wide-screen, touchscreen, A-GPS, it\'s all there.<br><br>On the other hand, Windows Mobile might be a downside for some. I\'m still having to get used to it after using Nokia Communicators (9100, 9210, 9500) with Symbian for years. But for me personally, this N97 comes too late...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712101">\
	 <div id="dsq-comment-header-9712101" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712101" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712101">pwb</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712101" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712101" class="dsq-comment-message">Looks like a very nice device. The iPhone UI and app platform still blow it away and I suspect iPhone hardware specs will close the gap in 3Q09. The iPhone\'s keyboard is surely inferior but why are you typing so much?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712102">\
	 <div id="dsq-comment-header-9712102" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712102" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712102" href="http://www.mobnotes.com/" target="_blank" rel="nofollow">cgrassi</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712102" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712102" class="dsq-comment-message">Good points Robert. But Apple could fix some of your points with a software upgrade.<br>Video, turn-by-turn and copy and paste, could be done via firmware update.<br>did you notice in 2.2 how much they add to Google Maps?<br>Overall I think iPhone is still superior.<br>The FB native application rocks in iPhone.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712103">\
	 <div id="dsq-comment-header-9712103" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712103" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712103" href="http://www.vritti.net/" target="_blank" rel="nofollow">Abhi</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712103" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712103" class="dsq-comment-message">Man this sounds awesome! Just when I thought the battle was down to the Bold &amp; iPhone 3G. I doubt I could wait till \'09 Summer though.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712077">\
	 <div id="dsq-comment-header-9712077" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712077" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712077">G-Rock</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712077" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712077" class="dsq-comment-message">Okay, seriously – the only advantages that count are the video recording capability and maybe the turn-by-turn navigation.<br>All other stuff will be available shortly with an other software update. That the iPhone is a whole platform with 1000s of games and applications seems to be forgotten by the author.<br>But sure, most propably it is a good device but there is a LOT mission in order to be really comparable to an iPhone. It\'s not the features that make a device good, because features are all too often just software. And the rest? Who needs more than a 2MPX Camera in the phone? And even if you want one, it won\'t be the dealbreaker.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712073">\
	 <div id="dsq-comment-header-9712073" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712073" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712073" href="http://scobleizer.com/" target="_blank" rel="nofollow">Robert Scoble</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712073" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712073" class="dsq-comment-message">G-Rock: I didn\'t realize that you can upgrade your camera with a software upgrade. I really need to show you the difference in picture quality between Nokia devices and the iPhone again. It\'s pretty extreme. But, you should read my post from Monday. I made exactly your point.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712074">\
	 <div id="dsq-comment-header-9712074" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712074" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712074" href="http://www.leadsexplorer.com/" target="_blank" rel="nofollow">Engago Team</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712074" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712074" class="dsq-comment-message">Nokia has worldwide distribution in every consumer electronics retail shop.<br>Apple not exactly.<br>That will make a difference.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712078">\
	 <div id="dsq-comment-header-9712078" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712078" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712078">G-Rock</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712078" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712078" class="dsq-comment-message">Robert, of course you can\'t increase the camera\'s quality by a software update ("[...] all too often just software. And the rest?"). And yes, point taken, the quality of the photos of the iPhone\'s camera is the bare minimum you can accept.<br><br>Oh, and it was supposed to mean "[...] a LOT missing [...]" not mission. Where\'s the coffee? :-)<br><br>Thanks for the tip, I\'ll read your Monday article!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712079">\
	 <div id="dsq-comment-header-9712079" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712079" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712079" href="http://bestfoot.com/" target="_blank" rel="nofollow">Don</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712079" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712079" class="dsq-comment-message">You missed the most important issue ... are you locked into AT&amp;T?  that is the biggest hang-up with i-phones for many, especially when that service isn\'t all that swell in many places.  So answer the real question: who have they partnered with or who will engage this N97 phone?<br><br>Sprint does some Nokia, cingular, t-mobile?  The real next advance will be a cell phone that works with every carrier -- in fact one that works with two carriers so that your personal and work phones go on one device.  Does this already exist ... probably, I just haven\'t looked for or seen it yet.<br><br>I don\'t get facebook still ... I know I\'m in the minority (or old).  But the "kids" do get it ... it gets more traffic than google I read the other day.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712080">\
	 <div id="dsq-comment-header-9712080" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712080" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712080">JimmyJet</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712080" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712080" class="dsq-comment-message">Thanks Robert, great overview of the device.  Like the well done comparison to iPhone.<br><br>These devices are finally incorporating primary device requirements like decent video, interface with social-networking enablers in a user friendly-efficient manner.<br><br>In that they are now maturing, I see about 2 to 4 years down the road and these devices will become pervasive among the mass market. A handful of device makers be it Nokia, Samsung, Apple, etc. will likely be the device leaders, but one or two breakouts may occur.<br><br>A big chink to pervasiveness of mobile technology in my book remains the mind numbing attempt at lock-in by providers, attempting to deep-six alternative delivery methods using \'white-space,\' and so called \'bandwidth hog\' caps put in place by ISP\'s.  This remains the real bottleneck going forward, not the technology for these device types.  In the U.S., I predict heated \'conversations\' at the political and regulatory level will take place, beginning in 2009.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712081">\
	 <div id="dsq-comment-header-9712081" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712081" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712081">Joao B</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712081" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712081" class="dsq-comment-message">I replaced my lifelong Blackberry use and my Blackberry 8800 with a Nokia N95 8GB.<br><br>7 months later I\'m back to a Blackberry Bold because I can\'t go without a full QWERTY keyboard.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712084">\
	 <div id="dsq-comment-header-9712084" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712084" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712084" href="http://www.raindropper.com/" target="_blank" rel="nofollow">Tomi Itkonen</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712084" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712084" class="dsq-comment-message">Robert, did you check how the Flash player works on N97 - are there any performance issues?<br><br>[yeah yeah, I should ask these questions on FriendFeed or Twitter...]</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712082">\
	 <div id="dsq-comment-header-9712082" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712082" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712082" href="http://www.dahowlett.com" target="_blank" rel="nofollow">dahowlett</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712082" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712082" class="dsq-comment-message">Does this mean that Nokia has recovered (at least some) of its mojo?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712083">\
	 <div id="dsq-comment-header-9712083" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712083" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712083">Guest</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712083" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712083" class="dsq-comment-message">@ William you can not compare the iPhone with this device. To completely different things. This is in the league of a computer and uses a different processor: It can range anywhere between: 600MHz to greater than 1GHz <a href="http://www.arm.com/products/CPUs/ARM_Cortex-A8.html" rel="nofollow">http://www.arm.com/products/CPUs/ARM_Cortex-A8....</a> Personally I believe Nokia will make it run in the 1GHz range..<br><br>The iPhone is using a much earlier processor from ARM. Also 5mp, full video support. Anyone who sees the specs and thinks the iPhone is superior does this based on look and feel but no hard facts.. Also where is the VOIP client in the iPhone?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712085">\
	 <div id="dsq-comment-header-9712085" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712085" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712085">Jonathan</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712085" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712085" class="dsq-comment-message">Sure it looks nice on paper, although quite expensive and big.  When N97 hits the market iPhone has been already 2 years on the market, iPhone 3G one.<br><br>We\'ll see how the third party software development for the wide screen S60 devices takes off and how the Nokia App Store works, those are the things that make iPhone the iPhone.<br><br>Thank good Nokia finally got it\'s act together, it was last of the big manufacturers to have a touchscreen phone in the lineup (5800 XpressMusic, out nowish). To tell the truth, Nokia is two years late, I hope they do well, but only the specs do not make the phone. It is the experience.<br><br>Any news on multitouch?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712086">\
	 <div id="dsq-comment-header-9712086" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712086" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712086">will</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712086" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712086" class="dsq-comment-message">does it also come with a phone?  :)<br><br><br>Personally for me a quality camera is one reason I love my N95 8GB.<br><br>Someone mentioned windows mobile platform in the comments, but surely it must be Symbian?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712087">\
	 <div id="dsq-comment-header-9712087" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712087" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712087" href="http://www.symbian-freak.com/" target="_blank" rel="nofollow">christexaport</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712087" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712087" class="dsq-comment-message">First off, Scobez, GOOD FIRST LOOK! I had thought the N97 would be a slider with a rotating camera like the N90, similar to the Chinese clone seen on Symbian-Freak. Nokia surely kept a lid on this one.<br><br>@ Andrew Mason,<br>I assume you had an N95-1. I say this because it lacked enough memory to make the browser useful. The N95 8gb fixed all that, and Facebook is exactly like on a desktop. No need for any silly app. I can\'t believe you went iPhone just for Facebook. Do Facebook videos play, etc? They do in the latest N95 firmware and browser. Even the new S40 dumbphones. Let this be a lesson. You gave up the best content creation device of its time for the simpleton iPhone?? I guess... Hope you\'re back soon.<br><br>Robert seems to be the only real geek phone/tech reviewer besides me. No self respecting techie would use an iPhone as a main device over any Nokia smartphone. Its mainly Americans that don\'t have access or experience to know just what these phones can do. S60 is the closest thing to a desktop PC OS for your mobile! Robert speaks for us geeks. The iPhone is for our mothers and the less tech savvy. Why would a geek need a simple device? Who wants simple at the expense of features. All those iFools, that\'s who.<br><br>@ Tinus,<br>You say the iPhone 3G will be a year old when this comes out. The N80 is even older and outspecs the iPhone! The problem is unless they can sell in America, all most know is the iPhone. Nokia has had the best, most powerful, best selling media smartphones for nearly 3 years straight. The Nseries is and has been the pinnacle of mobile computing. They always have done more than an iPhone. The iPhone never sold more, did more, or anything else compared to Nokia smartphones.<br><br>@ Simon Brockelhurst,<br>Nokia smartphones have always had the ability for users to update or debrand the phones firmware at will from the PC. Just use the Nokia Software Updater. You can even switch from branded to unbranded at will.<br><br>The networks never upgraded your firmware unless it was a branded firmware, and I highly suggest using the more powerful generic unlocked firmware instead. Branded means its missing features most times. And its not like the iPhone. Updates are more frequent and add actual feature updates. I remember when we got Flash in the browser in an update. This is the level of improvement to expect from Nokia. Apple is still lacking MMS, video capture, and multitasking YEARS LATER! If you sit and think, there really is no iPhone advantage, and never was.<br><br>@ Rahul kumar,<br>You see more long term development?? How old is the iPhone platform? Symbian is over 10 years old! How many developers and what languages are available for the iPhone? Symbian developers use more languages to code than anything close, with Flashlite, Ruby, c++, Python, Qt, Mscript, Java, .net, and other languages. So applications will be more diverse and useful. It sounds like you\'ve never used an S60 device full of apps. Its like comparing a Dell PC to a Fischer Price toy.<br><br>Development on the iPhone hasn\'t been very agile. Look at the development and progression from the N95 to this device. Now look from the iPhone I to the iPhone 3G. What developments?? I think the leader is clear...<br><br>By the way, most of the ways this device eats the iPhone were existent on previous Nokia smartphones since 2006. We\'ve always had full turn by turn navigation, with offline maps for using them even with no phone service or web connection. We had high quality video capture since the N90, which came out in 2006 with a dedicated button for copy and paste (so its not "and now Nokia has copy and paste". They\'ve had it all along!), professional optics, and a better camera than the current iPhone! If the N90 had WiFi, it\'d be an iPhone killer too. (I think it is anyway...)<br><br>@ William,<br>The iPhone 3G is $675 contract free, and has an extra data fee on contract. The N97 is about $649 contract free, and since its available unlocked like all Nokias, the carrier can\'t know what device you have to add a higher data charge, so it\'ll be $19 a month data on at&amp;t, $25 a month on T-MobileUSA. Subsidized pricing should be similar between the iPhone and this, although the iPhone has some pretty heavy subsidies. Its ok to pay more for the best device on the market, which this is by far.<br><br>@ pwb,<br>The iPhone has had two versions, yet Nokia smartphones have been the best sellers the entire time. How can a simplistic iPhone blow away the best devices on the market? It hasn\'t happened yet, even without Nokia doing comparative marketing to expose the iPhones weakness. Try downloading something while checking your Facebook page, editing music, and making a movie. I can do all these things at once...even on my 2 year old N90! Try again, Apple. And we type so much because its a content consumption AND creation device, the big difference between Nokia and Apple. Apple eats dinner, but Nokia hunts, catches, cooks, and eats that same meal, and even serves up a nice plate for your iPhone. Too bad you can\'t receive via bluetooth, like 2 year old Nokias, and even a 4 year old Motorola Razr.<br><br>@ G-Rock,<br>Unless you\'ve used a Nokia Nseries, you can\'t realize the myriads of advantages over an iPhone. Multitasking is number one. I can run 20 or 30 apps at once on my N95 8gb, so its the equivalent of 25 iPhones! Also, image capture, web browsing with Flash in the browser just like on a desktop, offline maps, open APIs, true TV-out that shows everything on the phone screen, actual keys, more useful apps, better freeware, open multimedia format support, online gaming, faster more powerful TI OMAP hardware, larger developer community, open source OS, copy and paste, etc...<br><br>These advantages have been around since before there was an iPhone. You just let Engadget and Boy Genius Report decide what you buy, instead of trying it yourself. How has Apple been about adding features so far? Besides Street View on Google Maps, which is a free download on most phones anyway (just like the iPhone-like simplistic static image browser, Opera Mini), what improvements have been realized from iPhone I to 3G? I can mention the improvements my N95 saw and blow your mind.<br><br>Robert is very aware of the thousands of iPhone apps and games. He\'s also aware of the more apps, and more powerful games available for S60. The N95 8gb and other devices have such powerful graphics chips, we can run ports of Quake I, II, III, AND Doom right on the device as smoothly as on a PC. And we had motion games first. The iPhone is a toy in comparison.<br><br>The fact is many people want a real camera with DVD quality video capture. Really, if you can get one for the same price as an iPhone (they both are ~$650 unsubsidized) with all the features missing from the iPhone since day one, why wouldn\'t you? That\'s called loyalty to a fault, my friend. And if its not the features that make the phone, what does? The look? Lol! Its thin. Ok, I get it. But what can it do? If it does little and just looks good, its useless for productivity, and is just an overpriced PMP.<br><br>@ Don,<br>Carrier considerations are still an issue. Even unlocked Nokia smartphones meant for America only get 3G on at&amp;t, a tragedy. I\'ve written various articles about this on Symbian-Freak in the "Free American 3G" series of articles. Nokia needs to better support the American carriers. That\'s why the iPhone sells so well here, because you can barely find Nokia\'s high end stuff here. Outside America, everyone knows Nokia is king. Half of the iPhone\'s sales are domestic. Put Nokia in the mix and fewer iPhones get sold.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712088">\
	 <div id="dsq-comment-header-9712088" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712088" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712088">DaveW</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712088" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712088" class="dsq-comment-message">As nice as the N97 is, it is still made by Nokia.<br><br>Do not forget that Nokia removed the GPS tracking feature that shipped with the first N95\'s with their firmware update. They stole a paid for feature from their customers.<br><br>NEVER EVER BUY FROM A COMPANY THAT STEALS FEATURES BACK THAT THEIR CUSTOMERS HAD PAID FOR!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712089">\
	 <div id="dsq-comment-header-9712089" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712089" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712089" href="http://www.textonphone.com/" target="_blank" rel="nofollow">Duke</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712089" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712089" class="dsq-comment-message">N95 had all that, video, camera, keyboard... N97 is trying to copy iPhone with touch screen and finger flicks... Not innovative, just one more product coming from a company that has been out-innovated and can\'t pull itself together. They have a great marketing machine but they will be reduced to selling to China and India until people over there discover iPhone and Android. Bad phone as all other Nokia phones. Crammed with features with no usability and plenty of confusion. Ovi, Mash, whatever...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712090">\
	 <div id="dsq-comment-header-9712090" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712090" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712090">thekiwiguy</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712090" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712090" class="dsq-comment-message">how big is the hard drive? thats a biggie for me.....</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712128">\
	 <div id="dsq-comment-header-9712128" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712128" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712128" href="http://www.gadgetguild.com/" target="_blank" rel="nofollow">Guru</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712128" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712128" class="dsq-comment-message">Quite good informative post</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712116">\
	 <div id="dsq-comment-header-9712116" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712116" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712116">G-Rock</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712116" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712116" class="dsq-comment-message">@Christexaport,<br>Sorry I have to say this – I wonder how can anyone be so wrong.<br><br>First, running x apps in the background doesn\'t make a phone better by the factor x.<br><br>Next, I seriously doubt it that there is any mobile browser on the planet that does a better job than the one on the iPhone. By "better job" I mean the speed of rendering the website, the accuracy of rendering it and of course the network speed. Of course I haven\'t seen what the N97\'s browser is capable of, but there has never been a browser, especially not from Nokia, that did rendering any good. Yes, it may be able to display Flash content (FlashLite?) but, seriously, I missed that feature exactly one time in over a year I use my iPhone.<br><br>"More useful apps" – did you have a clown for breakfast? You\'ve got to be kidding me.<br><br>"better freeware" - did you have a clown for breakfast? You\'ve got to be kidding me.<br><br>"open multimedia format support" - what\'s not open at mp3, mpeg4, h.264, ...?<br><br>"larger developer community" - did you have a clown for breakfast? You\'ve got to be kidding me. I happen to work in the mobile gaming industry and I\'m afraid to say you don\'t seem to have a clue what you are talking about. Developers for S60 are really rare. Why is that? Because noone buys apps/games for S60. Why is that? Because in general they don\'t increase productivity or deliver any fun.<br><br>"online gaming" – this is a concept that has failed for years now. No matter which (mobile!) platform. Here\'s why: Latency of the networks at live games, boredom with turn-based games. Besides, you could create (and I\'m sure there are already such games) online games with the iPhone. And why wouldn\'t you be able to in the first place?<br><br>The improvements between 1st iPhone and 3G are indeed not too big. There\'s GPS, another (yes, cheaper) case and 3G support. Still, after a few hours with the iPhone I couldn\'t believe I was satisfied with a Nokia or a SonyEricsson just a short time before. I won\'t trade it in for anything in the next year(s). Just a stunning device that doesn\'t make you angry but does its job.<br>By the way the biggest improvements were simply put into the iPhone by firmware update, which is why I won\'t let copy/paste count as a good argument against. This is about to come and noone doubts it. Yes, it\'s annoying not having this feature right now.<br><br>There are neither more nor more powerful games for S60. And games don\'t perform like on a PC. This is so not true, I can\'t even say how not true that is. Sorry dude.<br><br>Then, DVD quality is studio quality which a phone\'s camera won\'t be able to perform in this century. Not having a video recording app is still sad and annoying, yes.<br><br>Show me a Nokia with accelerometer sensor that was on the market before the iPhone was. I can just recall a Samsung which fantastically failed in the market.<br><br>So, why would I buy an iPhone instead of an S60 device? Well, basically because I won\'t get a heart attack while using it. Sadly enough I still have to deal with all these rubbish devices in the office. Cruel world.<br>Oh, and I can sync all my music directly from iTunes, just by pressing a button. And it syncs my adress book and my calendar without having to install this unutterable software called Nokia PC Suite (which basically noone gets ever to work) and even the apps and games that I bought. If I delete an app on the phone, I can just re-get it by checking a box and synching the phone. Which is not as rip-offish as in the normal market.<br><br>Of course, features make a product great. But this discussion is not about features, it\'s about the platform a device is based on and about what developers are able to do with this platforms in order to supply features (such as the facebook app for the iPhone or Super Monkey Ball or one of the other 10k apps and games).<br>Is a blogging application a feature of a phone? I don\'t think so. It\'s software that some people want and some don\'t. Nokia has a device in the market which is advertised with something like "integrated blogging features". How sad is this?<br><br>And of course it\'s also the look. I like the iPhone and yes, I like the design of the N97. I think it\'s one of the greatest devices in the market. But it won\'t be a so called "iPhone-Killer". Check out the G1 and with a little sense of taste, you\'ll have to admit that this is not a beatiful device by any means.<br><br>So long,<br>G-Rock</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712117">\
	 <div id="dsq-comment-header-9712117" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712117" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712117">Sitten Spynne</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712117" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712117" class="dsq-comment-message">I don\'t see a little piece of fruit on it or hipsters on TV telling me how all the other pretentious little boys will have one.  I\'m willing to bet this will join the legions of excellent consumer electronics that delivered more features for a lower price but failed to overcome Apple\'s marketing.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712118">\
	 <div id="dsq-comment-header-9712118" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712118" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712118">Jonathan</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712118" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712118" class="dsq-comment-message">@ christexaport<br><br>Whoa, that was the biggest dose of fanboyism since Amiga fanboys. And I thought the Apple clan was bad.<br><br>Product is more than the spec sheet, really. You claim to be able to browse, edit film and do some other stuff at the same time on E90. Good for you, last time I checked the E90 could not even handle the browsing properly. Byw the facebook app for iPhone is quite sexy.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712113">\
	 <div id="dsq-comment-header-9712113" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712113" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712113" href="http://charlesju.com/" target="_blank" rel="nofollow">Charles Ju</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712113" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712113" class="dsq-comment-message">Great Post Scob, but I must kindly disagree.<br><br>I\'m going to repost a blog post I orginally started as a comment to your post, so I hope you don\'t mind. If people want to see the blog post in all its glory, please go here: <a href="http://is.gd/9VwH" rel="nofollow">http://is.gd/9VwH</a><br><br>--<br><br>There is a lot of buzz today about the iPhone "killer", Nokia\'s N97 at Nokia\'s annual conference for themselves, Nokia World . As much as I would like Apple to get some real competitors, this is not it.<br><br>Here are 3 reasons why:<br><br>1. Price Point. This phone is priced to start at $700, the iPhone is priced at $200. Granted, post-subsidies it might come down to $350, but given two very similar phones, I think most people will still opt for the iPhone.<br><br>2. App store. The Nokia phone is allowing 3rd party developers to distribute applications through their traditional "Download" application. What this lacks is 1. deep integration into the phone and 2. a way to pay for applications. Might I suggest doing some sort of partnership with PayPal or Amazon?<br><br>3. Size. Bigger, fatter, heavier.<br><br>This is starting to get pathetic. The Blackberry Storm was a let-down, the G-Phone was a flop, and now even Nokia is completely paralized by a phone that was created almost 2 years ago. Come on guys, get your act together. If we want a mobile revolution, we\'re going to need everyone to chip in. Here is what everyone that wants a shot at Apple needs to do:<br><br>1. Worship developers.<br><br>None of the other big mobile manufacturers have a viable app store. Right now, the user has to know how to physically go around and find applications on their own. This is horrible, the reason why the iPhone App Store is so successful is because it caters to impulse buying and downloading. To one-up the iPhone App Store, the rest of you guys (Blackberry, Windows, Android, and Symbian) need to come together and create an app store and distribution channel together. You need partnerships with every payment processing service; PayPal, Amazon, and Google. It\'s not hard guys, stop being lazy and innovate.<br><br>2. Break the price point.<br><br>The only reason why Palm is still in the game is because they broke the $100 barrier. These smart phones need to be f-ing FREE. We do not need a 5 megapixel camera in our phone, we need internet connectivity at an affordable price point. Make the iPhone the premium product, not your own entry-level competitors.<br><br>3. Touch Screen EVERYTHING<br><br>Stop with the QWERTY junk. The iPhone touch screen is far superior to tacticle feedback. Like Henry Ford said, "If I asked what people wanted, they would have said faster horses." Apple succeeds because it knows that people are stupid and are going to want stupid features, like a keyboard. If you use my application, iType (shameless plug), you can see that people can get up to 40 WPM (my co-founder) on the iPhone, that\'s without spelling correction. Given that it is highly possible to type well on a touch screen and that screen space is the biggest value-add to any mobile device, it is STUPIDLY obvious that you need to switch off the tacticle keyboard.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712114">\
	 <div id="dsq-comment-header-9712114" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712114" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712114" href="http://informationweek.com/" target="_blank" rel="nofollow">Marin</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712114" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712114" class="dsq-comment-message">Good stuff Robert. Just wanted to point out the the 550 mark was in Euros I believe. So it\'s more like 7 hundo American</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712115">\
	 <div id="dsq-comment-header-9712115" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712115" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712115">Andrew</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712115" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712115" class="dsq-comment-message">It\'s amusing to me to see companies try to compete with Apple on features. In the iPod days all the pundits thought that not having an FM radio was a heinous omission and so all the wannabes like Zune and Sansa proudly announced their iPod knock-offs had FM radios. Turns out that nobody cares about having an FM radio in their media player because the content and audio quality sucks compared to listening to mp3 files.<br><br>The same will be true for all these features. Apple will add the ones that make sense like copy-and-paste and turn-by-turn and ignore the rest (video calls, physical keyboard) and they will still kick Nokia\'s and Google\'s butt.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712112">\
	 <div id="dsq-comment-header-9712112" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712112" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712112">zato</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712112" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712112" class="dsq-comment-message">Good Job, Robert! You\'ve really got all the Apple-hating Microsoft gamer-nerds excited!! "The ultimate Facebook device" !!!! HAHAHAHAHA!!!!! For who?? GAMER NERDS??? Like you?? HAHAHAHA!!!  Who told you to call it "The ultimate Facebook device"? Is that the anti-Apple selling strategy this time?? It\'s a lot better than "welcome to the social"!! HAHAHAHA!!! But who are these nerds going to call? Their LAN party buddies? What would they do with a Facebook account??  HAHAHAHA!!!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712111">\
	 <div id="dsq-comment-header-9712111" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712111" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712111">Rahul Kumar</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712111" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712111" class="dsq-comment-message">@christexaport<br><br>Your website says it all.. your a Symbian freak, therefore your job is likely to convince me that my iPhone is worthless. Honestly, a camera for you and for Scoble might be the greatest thing in the world, but for me I need applications that are relative to what a teenager needs (I\'m 17). Facebook, Youtube, Myspace, IM are all on the iPhone and web browsing on Safari I find is satisfactory if not great.<br><br>and...your right I\'ve never used a S60 device before. I was locked onto Verizon previously, which happens to not sell any higher end Nokia phone, and neither does AT&amp;T, at least this was the case when I bought my 3G. I might be wrong. Nokia has an issue with getting these phones for relatively attractive prices ($199/$299) and onto carriers here in America. I can\'t look at Scoble toying with the phone, and other tech blogs and consider the phone is for me. The only opportunity I\'ve got to mess around with a Nokia is when I visit India. They (Nokia) happen to be dominant there, and everyone has a nice S60 phone. Not so much the story here in America. They aren\'t widely available where I live, and there prices aren\'t attractive.<br><br>Regarding Apps, I\'m not a developer so I can\'t give tell you exactly which platform is easier to develop on, though from all the programming languages you mentioned, S60 would be a choice. And as you say on your site: "S60\'s Download! Application does not offer very well known or unknown &amp; powerful applications, utilities, nor support the entrepreneur/student programmer."<br><br>The App Store does.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712110">\
	 <div id="dsq-comment-header-9712110" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712110" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712110">hkiphone</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712110" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712110" class="dsq-comment-message">@ Charles Yu,<br>I\'ll try your itype app, but on idlehands app, I did manage to get 50wpm. :)<br><br>I have a friend who works in Marketing for Nokia, and he\'s always banging on about how great Nokia phones are..... and then begs me to let him play SuperMonkeyBall on my iPhone.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712109">\
	 <div id="dsq-comment-header-9712109" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712109" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712109">Christopher Coulter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712109" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712109" class="dsq-comment-message">This is the reason, I have avoided all iPhone hype, like it, but it\'s not a workhorse and impossible to type, N97 is everything ever. I love the iPod touch however, just doesn\'t fit the phone concept for me.<br><br>But \'Facebook device\' is hardly good marketing...and N97 is an expensive loaded kitchen sink phone, mass market appeal it will have not. I like it, but then if you are hot on it, I might have doubts.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712108">\
	 <div id="dsq-comment-header-9712108" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712108" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712108" href="http://www.magmawave.com/" target="_blank" rel="nofollow">danielmcvicar</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712108" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712108" class="dsq-comment-message">it looks cool..I want one.Thanks.<br>Also is there any food left, the dinner looks delicious.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712107">\
	 <div id="dsq-comment-header-9712107" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712107" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712107" href="http://www.deskapahendri.com/" target="_blank" rel="nofollow">deskapahendri</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712107" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712107" class="dsq-comment-message">thanks for info,  iphone or n97 ?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712106">\
	 <div id="dsq-comment-header-9712106" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712106" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712106" href="http://www.aot.edu.au/" target="_blank" rel="nofollow">Ruby &quot;Online Training&quot; Mein</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712106" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712106" class="dsq-comment-message">I still have my N95 right now.... my phone works well. But seeing that new and cool N97, I\'ll try to get one when it\'s out to the market. :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712133">\
	 <div id="dsq-comment-header-9712133" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712133" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712133">Erik</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712133" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712133" class="dsq-comment-message">"Availabilty? Second quarter of 2009."<br><br>So this is a pure paper lounch, a marketing event, without a buy able product for one year. That are 1 or 2 generations in mobile development...<br><br>But every scobleized blogger jumps on the train because Nokia gives them a prototype to play with.<br><br>The next iPhone generation will be on the market by this time.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712134">\
	 <div id="dsq-comment-header-9712134" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712134" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712134" href="http://www.babecast.org/" target="_blank" rel="nofollow">babecast</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712134" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712134" class="dsq-comment-message">Nokia wins anyway because you can buy the phone without a contract. ;)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712091">\
	 <div id="dsq-comment-header-9712091" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712091" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712091">fluxincap</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712091" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712091" class="dsq-comment-message">I think Robert makes some technical excellent points about the N97 but I don\'t think it\'s going to be the iPhone killer.  For one thing Apple has managed to make some kind "cool" cache out it\'s products that Nokia hasn\'t been able to do for sometime.  And people want the cool products.<br><br>I for one will try my hardest to never buy Apple products, but that\'s because I\'m a tech geek.  I hate the fact that I can\'t "seem" to own an Apple product. If I can\'t change the battery myself then I won\'t be buying it.  Apple has created an innovative product but it\'s also one of the worst for consumers because they have lock you into their system - as well as charging you up the wazoo for it.<br><br>My wife like\'s Apple products and would get the iPhone but she won\'t because she knows that she won\'t use 70% of the features.<br><br>The iPhone will certainly have a good market share and even if it does become top dog it won\'t last long because Apple treats it\'s customers like crap.  Nokia won\'t defeat the iPhone, especially in the US, because they can\'t build any kind of "coo" cache.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712104">\
	 <div id="dsq-comment-header-9712104" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712104" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712104">benjaminvallen1</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712104" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712104" class="dsq-comment-message">Looks like a  nice piece of tech. Heres the only prob: the Iphone is now cheaper than the N97 is going to be. Is that extra stuff worth the price? If you wait until the price drops to $330, then the Apple response will probably already be out and it will be even better than the N97. So, where does it stop? If you\'ve got money to blow on this stuff, cool. But not all of us can buy each new beautiful piece of tech that comes along with a $600 price tag.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712105">\
	 <div id="dsq-comment-header-9712105" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712105" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712105">kai_hiwatari</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712105" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712105" class="dsq-comment-message">The N96 even looks better than the iPhone.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712135">\
	 <div id="dsq-comment-header-9712135" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712135" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712135" href="http://www.zahipedia.com/2008/12/02/nokia-n97-unleashes-next-gen-cellular-technology/" target="_blank" rel="nofollow">Nokia N97</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712135" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712135" class="dsq-comment-message">Excellent  Nokia N97 -<br><br>best of the best<br><br>Nokia is rocking</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712136">\
	 <div id="dsq-comment-header-9712136" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712136" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712136" href="http://simonwoodside.com/" target="_blank" rel="nofollow">sbwoodside</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712136" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712136" class="dsq-comment-message">It\'s the keyboard, stupid. Main reason I will never use iPhone as my #1 device. Of course, Apple will never adopt this form factor, and RIM missed it. More thoughts: <a href="http://simonwoodside.com/weblog/2008/12/4/nokia_n97_the_form_factor/" rel="nofollow">http://simonwoodside.com/weblog/2008/12/4/nokia...</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712137">\
	 <div id="dsq-comment-header-9712137" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712137" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712137" href="http://www.nzmobiles.com/phones/34-nokia/61-the-new-nokia-n97-.html" target="_blank" rel="nofollow">john</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712137" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712137" class="dsq-comment-message">This is a great phone. It rocks.<br><br><a href="http://www.nzmobiles.com/phones/34-nokia/61-the-new-nokia-n97-.html" rel="nofollow">http://www.nzmobiles.com/phones/34-nokia/61-the...</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712138">\
	 <div id="dsq-comment-header-9712138" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712138" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712138">Rocci</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712138" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712138" class="dsq-comment-message">haaaa, i\'ll definitely be one of the first to have an unlocked version.  As soon as its available here <a href="http://www.puremobile.com/Nokia/Nokia-N97-White-GSM-Phone/" rel="nofollow">http://www.puremobile.com/Nokia/Nokia-N97-White...</a><br><br>I really can\'t wait, never been this anxious for a cellphone.  Qwerty and touch in a Nokia....wow</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712132">\
	 <div id="dsq-comment-header-9712132" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712132" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712132">KELLY</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712132" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712132" class="dsq-comment-message">WOW Finally N97 is to be released..Puremobile Says Coming Soon Can it be??????????????<br><br>I was really waiting to get this lovely phone and when i get it from puremobile it would be really AMAZING!!!!!!!!!<br><br>I am really waiting to place an order here <a href="http://www.puremobile.com/Nokia/Nokia-N97-White-GSM-Phone/" rel="nofollow">http://www.puremobile.com/Nokia/Nokia-N97-White...</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712131">\
	 <div id="dsq-comment-header-9712131" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712131" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712131">Mele</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712131" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712131" class="dsq-comment-message">hey everyone :) Now my personal experiences with the iphone (cause i have it) are great...they got a new update so it now has turn by turn with the new google maps so one problem solved....the battery thing for hours is crap my phone can fully charge like in an hour and a half its the battery bar is red....and things like video apple can update that soon enough they get updates like very couple months....and who knows by spring appl might even have a new iphone with better stuff than it has now....<br><br>Basicly im saying that the phone world never stops once one person comes out with something evrybody likes all the other companies follow it...(thats how touch screen came into view)....now thats just my opinion<br><br>ps...not much of apple fan but the iphone rocks and the n97 rocks to but i cant wait till spring :(</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712130">\
	 <div id="dsq-comment-header-9712130" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712130" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712130">wonder</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712130" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712130" class="dsq-comment-message">Hi guys, i just wondering, a lot of advertising there, offering this N97. They sell it on 300-450USD.<br>Is it true, since Nokia haven\'t launced it in store, how these people can sell it?<br>I\'m really don\'t understand, can somebody help me to explain? Thank You.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712129">\
	 <div id="dsq-comment-header-9712129" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712129" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712129">wonder</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712129" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712129" class="dsq-comment-message">Hi guys, may i ask something?<br>I wondering, how come, there is advertising sell these n97, since Nokia have not launched it yet in store?<br>They offers around 300-450USD.<br>Anybody can help me to explain?<br>Thanx</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712139">\
	 <div id="dsq-comment-header-9712139" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712139" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712139" href="http://www.nokian97.350.com/" target="_blank" rel="nofollow">Robin Maxwell</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712139" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712139" class="dsq-comment-message">hi guys,<br>The Nokia N97 captivates you with its innovative technology and revolutionary features. The impressive slider concept and cutting-edge design of the Nokia N97 make it an absolute fashion accessory.<br>For more visit <a href="http://www.nokian97.350.com/" rel="nofollow">http://www.nokian97.350.com/</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712141">\
	 <div id="dsq-comment-header-9712141" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712141" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712141">Oscar</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712141" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712141" class="dsq-comment-message">For me, this phone is close to perfection but there is one thing that would make it perfect -&gt; Is there an extra camera for video calling? (otherwise i will just go for the Sony Ericsson x1).<br><br>Thanks!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712140">\
	 <div id="dsq-comment-header-9712140" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712140" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9712140" href="http://whoaddme.wordpress.com/" target="_blank" rel="nofollow">หาเพื่อน</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712140" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712140" class="dsq-comment-message">Oh i just say wow! Facebook is AMAZING! :)<br>now i used iphone i think iphone is the best mobile phone :)<br>i like it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9712142">\
	 <div id="dsq-comment-header-9712142" class="dsq-comment-header">\
	 <cite id="dsq-cite-9712142" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9712142">Jennifer</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9712142" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9712142" class="dsq-comment-message">Its really being nail biting waiting for N97 to be released, puremobile says coming soon Can it be????????????????????<br><br><a href="http://www.puremobile.com/Nokia/Nokia-N97-White-GSM-Phone/" rel="nofollow">http://www.puremobile.com/Nokia/Nokia-N97-White...</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9613788">\
	 <div id="dsq-comment-header-9613788" class="dsq-comment-header">\
	 <cite id="dsq-cite-9613788" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9613788">james</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9613788" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9613788" class="dsq-comment-message">The N97 looks great. Is it going to be sold unlocked to any carrier in the US? I might trade in my iphone for this, since the n97 has better specs: <br><a href="http://www.clashem.com/phones.php?id1=1179&id2=2" rel="nofollow">http://www.clashem.com/phones.php?id1=1179&id2=2</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-11959229">\
	 <div id="dsq-comment-header-11959229" class="dsq-comment-header">\
	 <cite id="dsq-cite-11959229" class="dsq-comment-cite">\
	 <a id="dsq-author-user-11959229" href="http://www.mmionline.net/" target="_blank" rel="nofollow">spare parts HP</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-11959229" class="dsq-comment-body">\
	 <div id="dsq-comment-message-11959229" class="dsq-comment-message">great can open at any time FB</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-13873473">\
	 <div id="dsq-comment-header-13873473" class="dsq-comment-header">\
	 <cite id="dsq-cite-13873473" class="dsq-comment-cite">\
	 <span id="dsq-author-user-13873473">philippss</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-13873473" class="dsq-comment-body">\
	 <div id="dsq-comment-message-13873473" class="dsq-comment-message">Nice article about the Nokia N97   article..I am going to buy the Nokia Nseries for that i am going to sell the Nokia 6060 Model Mobile For that i want to unlock the Mobile From the T-Mobile US network I found the Free Unlocking code in the site &lt;a href="http://www.unlock-free.com/"http://www.unlock-free.com/</a> after Unlocking it & i will sell the Mobile & buy Nokia N97 Mobile ..It\'s My Dream.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-15335933">\
	 <div id="dsq-comment-header-15335933" class="dsq-comment-header">\
	 <cite id="dsq-cite-15335933" class="dsq-comment-cite">\
	 <span id="dsq-author-user-15335933">coolfx35</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-15335933" class="dsq-comment-body">\
	 <div id="dsq-comment-message-15335933" class="dsq-comment-message">I hold no blind loyalty to N97, nor did I to my 9210, 9300, or 9500.<br>But while I have a N97 in my pocket I\'ll remain true to the Brotherhood.<br><br>My N97 is my best friend.<br><br>My relationship is currently on hold while I accustom myself to everything that the N97 can offer me. So far, I haven\'t put it down.<br><br>I\'m getting married in 7 days and hope to have grown up by then. If not, my N97 will be with me at the top table and I\'ll mention him in my Wedding Speech.<br><br>Love is such a fickle thing.<br><br>See you around <a href="http://www.nokian97forum.com" rel="nofollow">http://www.nokian97forum.com</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-15759375">\
	 <div id="dsq-comment-header-15759375" class="dsq-comment-header">\
	 <cite id="dsq-cite-15759375" class="dsq-comment-cite">\
	 <span id="dsq-author-user-15759375">danieldevon</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-15759375" class="dsq-comment-body">\
	 <div id="dsq-comment-message-15759375" class="dsq-comment-message">Nokia N97 is a most attractive 3G Smartphone comes in black and white colour casing. It designed nokia, for  many business & entertainment users suit today\'s mobile phone users. If you plan to buy this phone you can compare various nokia N97 contact deals <a href="http://www.askphone.co.uk/nokia-n97-contract.html" rel="nofollow">http://www.askphone.co.uk/nokia-n97-contract.html</a> and buy cheapest.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-19702966">\
	 <div id="dsq-comment-header-19702966" class="dsq-comment-header">\
	 <cite id="dsq-cite-19702966" class="dsq-comment-cite">\
	 <span id="dsq-author-user-19702966">n97owner</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-19702966" class="dsq-comment-body">\
	 <div id="dsq-comment-message-19702966" class="dsq-comment-message">I have a Nokia N97 and I\'m VERY disappointed. Nokia made promises and came out with a useless device. It\'s firmware software is FULL of bugs, it\'s extremely slow, freezes, Skype is still not included but they said that the Nokia N97 will be shipped with Skype. The worst thing is that Nokia lied and lies about the N97. What they do is simply not telling the truth about their buggy device. I am very disappointed. I\'ve always had Nokia phones, but I\'m sure this is my last Nokia phone. Bugs and lies - this is what you can get from Nokia. If you planned to buy an N97, forget it. It sounds great what Nokia tells about the device, but the device is useless.</div>\
	 </div>\
	 </li>\
	 </ul>\
';

(function() {
	
	





Dsq.Debug.profile(function() {
	if(Dsq.jsonData.request.page == 1 && Dsq.jsonData.request.is_initial_load) {
		Dsq.container.innerHTML = Dsq.Templates.header() + Dsq.container.innerHTML + Dsq.Templates.footer();
	}
	Dsq.$(Dsq.curPageId).innerHTML = Dsq.$(Dsq.curPageId).innerHTML.replace(Dsq.COMMENTS_RE, Dsq.CommentsHandler);
}); // Dsq.Debug.Profile

// HACK: Resetting cache because we're done with.
Dsq.Utils.gebiFromElementCollectionCache = null;


	
	
	var dsq_styleEl = document.getElementById(disqus_container_id);
	var dsq_anchorEl = document.getElementsByTagName('a')[0];
	
	Dsq.Thread.fc = Dsq.Utils.getStyle(dsq_styleEl, 'color');
	if(dsq_anchorEl) { Dsq.Thread.ac = Dsq.Utils.getStyle(dsq_anchorEl, 'color'); }
	Dsq.Thread.ff = Dsq.Utils.getStyle(dsq_styleEl, (Dsq.Utils.ie || window.opera ? 'fontFamily' : 'font-family'));
	// For Safari / Opera: strip quotes.
	Dsq.Thread.ff = Dsq.Thread.ff.replace(/['"]/g, '');
	Dsq.Thread.fc = encodeURIComponent(Dsq.Thread.fc);
	Dsq.Thread.ac = encodeURIComponent(Dsq.Thread.ac);
	Dsq.Thread.ff = encodeURIComponent(Dsq.Thread.ff);

	
	
	
	if(Dsq.$(Dsq.Templates.addPostContainer)) {
		// TODO: Check to see if theme uses postmessage.
		if (window.disqus_use_postmessage) {
			Dsq.frames['reply_0'] = new Dsq.ReplyFrame(Dsq.$(Dsq.Templates.textareaContainer));
			Dsq.frames['reply_0'].init(function() {
				// Use fallback iframe
				Dsq.$(Dsq.Templates.addPostContainer).innerHTML = '';
				var theme = (typeof disqus_frame_theme == 'undefined') ? 'default' : disqus_frame_theme;
				Dsq.Iframes.showReplyIframeInContainer(Dsq.$(Dsq.Templates.addPostContainer), null, {theme: theme});
				// if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
			});
		} else {
			// DEPRECATED
			Dsq.Iframes.showReplyIframeInContainer(Dsq.$('dsq-post-add'));
		}
	}

	
	

	
	if(document.location.hash != '') {
		document.location.hash = document.location.hash.substring(1);
	}

	Dsq.Popup.showCookieMsgs();

	
	if(document.location.search != '' && location.hash != '#disqus_thread') {
		var reply_id = Dsq.Utils.getRequestParams().dsq;
		if(reply_id) { document.location.hash = 'comment-' + reply_id; }
	}

	
	if((typeof OB_Script != 'undefined') && (typeof OB_versionNum != 'undefined')) {
		if(navigator.userAgent.indexOf("Firefox") != -1) {
			if(window.frames['dsq-reply-frame']) {
				window.frames['dsq-reply-frame'].location = Dsq.Urls.REPLY + (new Date()).getTime() + '&f=scobleizer&t=nokia_n97_the_ultimate_facebook_device&to_redirect=' + encodeURIComponent(window.location) + '&ifrs=' + encodeURIComponent(disqus_iframe_css);
			}
		}
	}

	if (Dsq.jsonData.integration.theme == 4) {
		if (Dsq.jsonData.realtime_enabled) {
			Dsq.Realtime.initialize();
		}
	}

	



	window.ExecuteWhen = (function () {
	var obj = {}
	
	// Private
	var running = false;
	var timer = null;
	var pending = [];
	var startTimer = function() {
		running = true;
		timer = setInterval(obj.heartBeat, 100);
	};
	var stopTimer = function() {
		running = false;
		clearInterval(timer);
	};
	
	// Public
	obj.add = function (condition, code) {
		pending.push([condition,code]);
		this.heartBeat(); //!
		if (!running) {
			startTimer();
		}
	};
	obj.heartBeat = function() {
		if (!pending.length) {
			stopTimer();
		}
		var newPending = [];
		for (var i=0; i<pending.length; i++) {
			var cond = pending[i][0];
			var code = pending[i][1];
			// FIXME: if cond or code throw an error, they never get removed from pending
			if (cond()){
				code();
			}
			else {
				newPending.push([cond, code]);
			}
		}
		pending = newPending;
	};
	return obj;
})();

// also used in embed_thread.js:
window.fbIsReady = function () {return window.FB && FB.init;};
// NOTE: This script gets executed again without threadEl
//       set when we are loaded again as the fbc_receiver.
//       In this case, we don't need the hidden container.

if(!window.FB || !FB.init) {
	if(window.Dsq && Dsq.container) {
		// container is not present when init.js is loaded from an xd-receiver iframe; in this case,
		// we don't need the FB_HiddenContainer anyway.
		var fbDiv = document.createElement('div');
		fbDiv.id = "FB_HiddenContainer";	// Required or else FeatureLoader will execute a document.write.
		fbDiv.style.position = 'absolute';	// This is intentionally not setting display to none as this breaks
		fbDiv.style.top = '-10000px';		// Flash in Safari.
		fbDiv.style.left = '-10000px';
		fbDiv.style.width = '0px';
		fbDiv.style.height = '0px';
		Dsq.container.appendChild(fbDiv);
	}
	var fbJS = document.createElement('script');
	fbJS.type = "text/javascript";
	fbJS.src = "http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php";
	document.getElementsByTagName('head')[0].appendChild(fbJS);

	ExecuteWhen.add(window.fbIsReady,
		function () {
			// HACK: This is a workaround FBC's single domain limitation by
			//		 allowing sites to create multiple forums with different
			//		 Facebook API keys.  This must be used in conjunction with
			//		 disqus_facebook_forum (see authenticateFacebook).
			var facebook_api_key = 'faaf467d0f47abde553c3b8e0e1b3570';
			if (typeof disqus_facebook_api_key != 'undefined') {
				facebook_api_key = disqus_facebook_api_key;
			}

			FB.init(facebook_api_key, window.facebookXdReceiverPath || null,
				{fetchSignedPublicSessionData: true});
		});
}


	


if(typeof(disqus_callback) == 'function') {
	var callback_params = Dsq.Utils.getRequestParams()['dsq_cbp'] || null;

	// We don't care about any errors in third-party code
	try {
		disqus_callback(callback_params);
	} catch (x) {
		if (typeof(console) != 'undefined' && typeof(console.log) == 'function') {
			// But it would be nice to let developers know about them
			console.log(x);
		}
		// pass
	}

	// HACK: We don't know if the callback wraps our container, which may
	// possibly result in a new DOM element.
	Dsq.container = document.getElementById('dsq-content');
}

// Global event handler for narcissus.
if (Dsq.jsonData.integration.theme == 4) {
	var g = Dsq.Utils.ie ? document : window;
	Dsq.Utils.addEventListener(g, 'keydown', function(event) {
		// Handle "enter" key on input for post box.
		if ((event.keyCode || event.which) == 13) {
			var target = Dsq.Utils.ie ? event.srcElement : event.target;
			// For Safari bug, detect text node.
			if (target.nodeType == 3) {
				target = target.parentNode;
			}

			if (target.nodeName == 'INPUT' &&
				target.parentNode.className == 'dsq-input-wrapper') {
				var postId = Dsq.Utils.extractId(target);
				Dsq.Templates.postComment(postId, this, false);
			}
		}
	});
}

})();




