




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

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

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

var Dsq = new function() {
	this.container = document.getElementById('dsq-content');
	this.jsonData = {"reactions": [], "has_more_reactions": false, "users": {"07eb0d0c17c15b85bd42ff53de2ca710": {"username": "Liam", "tumblr": "", "display_name": "Liam", "url": "http://disqus.com/guest/07eb0d0c17c15b85bd42ff53de2ca710/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6c8456f815ae1533514006cd45a6553c": {"username": "Edwin", "tumblr": "", "display_name": "Edwin", "url": "http://disqus.com/guest/6c8456f815ae1533514006cd45a6553c/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "59e8c805eec5bea0f685907e44a9d23b": {"username": "Steve Drewes", "tumblr": "", "display_name": "Steve Drewes", "url": "http://disqus.com/guest/59e8c805eec5bea0f685907e44a9d23b/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "e6f6181fdc5266eb66af4268e98c2590": {"username": "Ginette", "tumblr": "", "display_name": "Ginette", "url": "http://disqus.com/guest/e6f6181fdc5266eb66af4268e98c2590/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "d4fca895532a23a94a3b640627377d28": {"username": "Gareth", "tumblr": "", "display_name": "Gareth", "url": "http://disqus.com/guest/d4fca895532a23a94a3b640627377d28/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "03ccebaddb1dc5e92670e5784e1bfbef": {"username": "Bob Emmerich", "tumblr": "", "display_name": "Bob Emmerich", "url": "http://disqus.com/guest/03ccebaddb1dc5e92670e5784e1bfbef/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "f757e9a8d092d1239bcff5a96ca4f2ce": {"username": "Steve", "tumblr": "", "display_name": "Steve", "url": "http://disqus.com/guest/f757e9a8d092d1239bcff5a96ca4f2ce/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "33b398b2646ebbbc1fc2decb00dc2e0e": {"username": "Tony", "tumblr": "", "display_name": "Tony", "url": "http://disqus.com/guest/33b398b2646ebbbc1fc2decb00dc2e0e/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "25545ba630ac6e11ee7f2f917ed5cb42": {"username": "Vishant", "tumblr": "", "display_name": "Vishant", "url": "http://disqus.com/guest/25545ba630ac6e11ee7f2f917ed5cb42/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "d8774aefb05bd47ff5c58c5ba53cfa91": {"username": "Tony", "tumblr": "", "display_name": "Tony", "url": "http://disqus.com/guest/d8774aefb05bd47ff5c58c5ba53cfa91/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "8c87418c446c0e6d80b33fb99ed18867": {"username": "kim", "tumblr": "", "display_name": "kim", "url": "http://disqus.com/guest/8c87418c446c0e6d80b33fb99ed18867/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "b7ee3d6d5224a2628e4e1c82fd079eef": {"username": "Lynne", "tumblr": "", "display_name": "Lynne", "url": "http://disqus.com/guest/b7ee3d6d5224a2628e4e1c82fd079eef/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "0329d228b46061c4b86d5c6f74be51f3": {"username": "Dave Miles", "tumblr": "", "display_name": "Dave Miles", "url": "http://disqus.com/guest/0329d228b46061c4b86d5c6f74be51f3/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "4d3e18caf0add52fd0bdb4b994021b1b": {"username": "Edwin Graham", "tumblr": "", "display_name": "Edwin Graham", "url": "http://disqus.com/guest/4d3e18caf0add52fd0bdb4b994021b1b/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "fe3a939ad27c6b0b90139b7eb902a791": {"username": "Jane", "tumblr": "", "display_name": "Jane", "url": "http://disqus.com/guest/fe3a939ad27c6b0b90139b7eb902a791/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6e7531f7943bc9da79b6e9addca5f5a3": {"username": "Chris Jaschick", "tumblr": "", "display_name": "Chris Jaschick", "url": "http://disqus.com/guest/6e7531f7943bc9da79b6e9addca5f5a3/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "977ccaa8a8ba11c2d81a9c29c33d3ed3": {"username": "owen", "tumblr": "", "display_name": "owen", "url": "http://disqus.com/guest/977ccaa8a8ba11c2d81a9c29c33d3ed3/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "4eebbbc2bada255b9138cb234c910c90": {"username": "Bob", "tumblr": "", "display_name": "Bob", "url": "http://disqus.com/guest/4eebbbc2bada255b9138cb234c910c90/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "855ba9a7d8191e672ed35f3fabc7f686": {"username": "Tom", "tumblr": "", "display_name": "Tom", "url": "http://disqus.com/guest/855ba9a7d8191e672ed35f3fabc7f686/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "0d75be2912e014f059efa405205657ac": {"username": "Rick Broussard", "tumblr": "", "display_name": "Rick Broussard", "url": "http://disqus.com/guest/0d75be2912e014f059efa405205657ac/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "5386846f3ff2f1d663f91499d82edf12": {"username": "Sylvie", "tumblr": "", "display_name": "Sylvie", "url": "http://disqus.com/guest/5386846f3ff2f1d663f91499d82edf12/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "8d0e1b8bb2716cf6e333182930d42e98": {"username": "Janice Howell", "tumblr": "", "display_name": "Janice Howell", "url": "http://disqus.com/guest/8d0e1b8bb2716cf6e333182930d42e98/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "1b548d16f94c24159ed170cb804ba193": {"username": "cameraengineer", "tumblr": "", "display_name": "cameraengineer", "url": "http://disqus.com/guest/1b548d16f94c24159ed170cb804ba193/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "ff4b5793725fd7583423704597db7744": {"username": "Onesmus Imbili", "tumblr": "", "display_name": "Onesmus Imbili", "url": "http://disqus.com/guest/ff4b5793725fd7583423704597db7744/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "9b57143c0a1f288f5b604fee5f6d0a0f": {"username": "graham hills", "tumblr": "", "display_name": "graham hills", "url": "http://disqus.com/guest/9b57143c0a1f288f5b604fee5f6d0a0f/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "7f8663397bae00fa2f104aad562c5479": {"username": "Carleigh McCabe", "tumblr": "", "display_name": "Carleigh McCabe", "url": "http://disqus.com/guest/7f8663397bae00fa2f104aad562c5479/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "c523dc768ab617fb216c9def9769a7b0": {"username": "Ian Bell", "tumblr": "", "display_name": "Ian Bell", "url": "http://disqus.com/guest/c523dc768ab617fb216c9def9769a7b0/", "registered": false, "linkedin": "", "blog": "http://www.digitaltrends.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "9196915cfd45ff2dfc4b521fdc6daccc": {"username": "Rod Letts", "tumblr": "", "display_name": "Rod Letts", "url": "http://disqus.com/guest/9196915cfd45ff2dfc4b521fdc6daccc/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "e1ebee782c5362f7173a1dd8444b8c3e": {"username": "Serg", "tumblr": "", "display_name": "Serg", "url": "http://disqus.com/guest/e1ebee782c5362f7173a1dd8444b8c3e/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "ef0de923d21bb005abba45cbe64755c8": {"username": "Steve Schaut", "tumblr": "", "display_name": "Steve Schaut", "url": "http://disqus.com/guest/ef0de923d21bb005abba45cbe64755c8/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "1dd9c9d4a73b922e1acd8da811336023": {"username": "Susan", "tumblr": "", "display_name": "Susan", "url": "http://disqus.com/guest/1dd9c9d4a73b922e1acd8da811336023/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "e96bf5f0e5a93dc0d333dbc7a20bc4d5": {"username": "ken Russel-Jones", "tumblr": "", "display_name": "ken Russel-Jones", "url": "http://disqus.com/guest/e96bf5f0e5a93dc0d333dbc7a20bc4d5/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "5d94b900bf2bd860978d96f199bf4576": {"username": "Chris", "tumblr": "", "display_name": "Chris", "url": "http://disqus.com/guest/5d94b900bf2bd860978d96f199bf4576/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "b47aa1ccbd535f531526b1c30aefd780": {"username": "Jules", "tumblr": "", "display_name": "Jules", "url": "http://disqus.com/guest/b47aa1ccbd535f531526b1c30aefd780/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "7c9b5142d7aa2d96bc69bd67c0ab7bfd": {"username": "David", "tumblr": "", "display_name": "David", "url": "http://disqus.com/guest/7c9b5142d7aa2d96bc69bd67c0ab7bfd/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "47ae94879ffc5e372c2044f70f54afd1": {"username": "sam chicken", "tumblr": "", "display_name": "sam chicken", "url": "http://disqus.com/guest/47ae94879ffc5e372c2044f70f54afd1/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "f0e11297ead741f76bbe69a725e1a08b": {"username": "Howard Gourley", "tumblr": "", "display_name": "Howard Gourley", "url": "http://disqus.com/guest/f0e11297ead741f76bbe69a725e1a08b/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3e51705ad36adcb554720a8f3ea1a316": {"username": "Mark", "tumblr": "", "display_name": "Mark", "url": "http://disqus.com/guest/3e51705ad36adcb554720a8f3ea1a316/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "fc7fba070c27e2357f5c9e47622573f7": {"username": "B. Hathaway", "tumblr": "", "display_name": "B. Hathaway", "url": "http://disqus.com/guest/fc7fba070c27e2357f5c9e47622573f7/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "36fc35c7879e3c206ba2e4837fb33773": {"username": "Phil", "tumblr": "", "display_name": "Phil", "url": "http://disqus.com/guest/36fc35c7879e3c206ba2e4837fb33773/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "d076ad8b1faa5d328fc7b069fc3c7ab6": {"username": "Vanessa", "tumblr": "", "display_name": "Vanessa", "url": "http://disqus.com/guest/d076ad8b1faa5d328fc7b069fc3c7ab6/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3ffa8197c49f3891cbb89000a9a1cdb6": {"username": "Pat", "tumblr": "", "display_name": "Pat", "url": "http://disqus.com/guest/3ffa8197c49f3891cbb89000a9a1cdb6/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "15ac3fbf44c88c491334a67f903bd662": {"username": "Rafael M", "tumblr": "", "display_name": "Rafael M", "url": "http://disqus.com/guest/15ac3fbf44c88c491334a67f903bd662/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "c7755da2fe5bd43de0e21b0dc9e660b0": {"username": "maniny", "tumblr": "", "display_name": "maniny", "url": "http://disqus.com/guest/c7755da2fe5bd43de0e21b0dc9e660b0/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "cce0f58c80a214cc0352178892d655a4": {"username": "Margaret Mc", "tumblr": "", "display_name": "Margaret Mc", "url": "http://disqus.com/guest/cce0f58c80a214cc0352178892d655a4/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "90ea30bb3195dd9fff4cf1bdf896a23e": {"username": "A George", "tumblr": "", "display_name": "A George", "url": "http://disqus.com/guest/90ea30bb3195dd9fff4cf1bdf896a23e/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "dba1e683401b30e2440ef409a2be7ab5": {"username": "Steve McNeil", "tumblr": "", "display_name": "Steve McNeil", "url": "http://disqus.com/guest/dba1e683401b30e2440ef409a2be7ab5/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://mediacdn.disqus.com/1001/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}}, "forum": {"use_media": true, "name": "Digital Trends", "streaming_realtime": false, "url": "digitaltrends", "allow_anon_post": true, "reactions_enabled": true, "reply_position": 1, "show_avatar": true, "allow_anon_votes": true, "disqus_auth_disabled": false}, "realtime_enabled": true, "request": {"username": "", "is_global_moderator": false, "sharing": {}, "sort": 4, "forum": "digitaltrends", "is_initial_load": true, "is_authenticated": false, "timestamp": "2010-02-10_00:41:30", "remote_domain": "", "page": 1, "is_moderator": false, "display_username": "", "points": null, "subscribe_on_post": 2, "moderator_can_edit": false, "is_remote": false, "is_verified": false, "missing_perm": null, "remote_domain_name": ""}, "realtime_paused": false, "posts": {"25245568": {"up_voted": false, "ip": "", "has_replies": false, "message": "My 18 month old Nikon 5400 just started to have imaging problems. The problem is identical to the other Nikons with a service advisory. I have to beleive this camera also has the defective SONY CCD. My dilema is wether to repair it or buy a new one. This is my last Nikon.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-07_00:20:59", "killed": false, "user_key": "90ea30bb3195dd9fff4cf1bdf896a23e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245569": {"up_voted": false, "ip": "", "has_replies": false, "message": "This needs to be esculated to someone higher on the food chain, I contacted Nikon USA today, went through the contless steps of turning on and off my camera removing the memory card, etc. Nikon stated that I will need to send this in,  then be left wondering if I will have to pay for this?  Let alone look for my \"Proof of Purchase.\"  Great Customer Service Nikon!<br  /><br><br  /><br>Regards<br  /><br>Tom", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-18_16:07:08", "killed": false, "user_key": "855ba9a7d8191e672ed35f3fabc7f686", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245570": {"up_voted": false, "ip": "", "has_replies": false, "message": "An update on my Nikon 5400. I finally sent my camera to Nikon Service and they have agreed to fix it at no charge. Bottom line, even though Nikon does not  have a service advisory on the 5400, I beleive they will fix it for free since it&#039;s a known CCD issue. I retract my comment on not purchasing another Nikon.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-29_14:31:46", "killed": false, "user_key": "90ea30bb3195dd9fff4cf1bdf896a23e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245571": {"up_voted": false, "ip": "", "has_replies": false, "message": "AGeorge, i&#039;d appreciate some guidance on your repair experience.  who did you contact? how? i see nothing about this on the nikon site. i dearly loved my 5400 until it let me down this past weekend at the beach. yeah it was hot and humid, apparently perfect for melting CCDs.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-30_10:51:30", "killed": false, "user_key": "977ccaa8a8ba11c2d81a9c29c33d3ed3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245572": {"up_voted": false, "ip": "", "has_replies": false, "message": "-in response to cameraengineer&#039;s comments - Jan 23rd, 2007 at 6:30 AM. <br  /><br><br  /><br>i have a JVC GR-DX95EK DV cam. The image is horizontally streaky. is this a problem with the sony chip? should i contact JVC or Sony? <br  /><br>The camera is way out of warinty. <br  /><br>Any ideas? Thank you for your help.<br  />", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-01-26_04:21:57", "killed": false, "user_key": "07eb0d0c17c15b85bd42ff53de2ca710", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245573": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hello,<br  /><br>I have a canon Ixus 700, one night i was using it with no problem and the day after, when I wanted to look at the pictures taken, the screen was just white, impossible to replay anything. Then I tried to shoot pictures, same problem, the screen wouldn&#039;t show anything.<br  /><br>I&#039;m going to contact Canon, and I hope they&#039;ll do something about it. My camera is only 18 months old.<br  /><br>Anybody having that camera experiencing the same problem?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-01-28_02:22:47", "killed": false, "user_key": "5386846f3ff2f1d663f91499d82edf12", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245574": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have a sony DSC P12, that I bought in 2003. Since the whole of last year I didn&#039;t use it bescause the same problem mentioned above. Now since I am not in position of the receit as prove purchase what must do. Where should I send it for repair since I am not residing the in the country were I bought it.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-01-29_20:13:03", "killed": false, "user_key": "ff4b5793725fd7583423704597db7744", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245575": {"up_voted": false, "ip": "", "has_replies": false, "message": "Image is blurry!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-02-08_13:14:54", "killed": false, "user_key": "0d75be2912e014f059efa405205657ac", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245576": {"up_voted": false, "ip": "", "has_replies": false, "message": "Image is blurry", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-02-08_13:14:54", "killed": false, "user_key": "0d75be2912e014f059efa405205657ac", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245577": {"up_voted": false, "ip": "", "has_replies": false, "message": "I find it interesting how this is a year old story from 2005 but many of these comments are from late 2006 and early 2007. I have a JVC GR-D33US which just developed this problem yesterday. Here&#039;s a link to JVCs site:<br  /><br> <a href=\"http://www.jvcservice.com/service/custnoticecamcorder.asp?ReqType=CCD\" title=\"http://www.jvcservice.com/service/custnoticecamcorder.asp?ReqType=CCD\" target=\"_blank\" rel=\"nofollow\">http://www.jvcservice.com/service/custnoticecamcor...</a>", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-02-25_04:26:13", "killed": false, "user_key": "03ccebaddb1dc5e92670e5784e1bfbef", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245578": {"up_voted": false, "ip": "", "has_replies": false, "message": "i have the problem with my jvc camera but i live in the UK. the site says US only, is it a us manufacture problem?<br  /><br>cheers<br  /><br>liam", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-02-25_11:11:52", "killed": false, "user_key": "07eb0d0c17c15b85bd42ff53de2ca710", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245579": {"up_voted": false, "ip": "", "has_replies": false, "message": "I purchase a konica minolta dimage e40 digital camera in April, 2005 and in November, 2006 the camera shows distorted pictures.  I have asked Sony if this camera is also under warranty since they took over Konica and they said \"no\" because it wasn&#039;t one that is listed.  It appears to me that the camera also has a faulty ccd and they are not willing to warranty this one.  Not sure why they wouldn&#039;t as this is not good for Sony&#039;s reputation.  All Konica Minolta products should be under warranty and not just some.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-03-13_14:43:11", "killed": false, "user_key": "8c87418c446c0e6d80b33fb99ed18867", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245580": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have a Nikon 5700  that has the same problems as expressed by others. Black screen with flickering lines running through it.<br  /><br>I have not used the camera for several months due to this problem. I( am encouraged by the feedback from other Nikon 5700 owners.<br  /><br>I will contact the Nikon repair facility on the 19th of March.<br  /><br>Ed Graham<br  /><br><br  /><br>I hope they are accepting responsibility for this fiasco CCD and will make repairs for free.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-03-17_13:24:40", "killed": false, "user_key": "4d3e18caf0add52fd0bdb4b994021b1b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245582": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have the camera Sony DSC F-717. About one year ago it started doing the same thing. I didn&#039;t know what happened. Now I guess the problem is a defective CCD.<br  /><br>Where should I send it for repair? I live in Tulsa, Oklahoma. Thanks!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-03-18_07:58:35", "killed": false, "user_key": "e1ebee782c5362f7173a1dd8444b8c3e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245583": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have the camera Sony DSC F-717. About one year ago it started doing the same thing. I didn&#039;t know what happened. Now I guess the problem is a defective CCD.<br  /><br>Where should I send it for repair? I live in Tulsa, Oklahoma.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-03-18_07:58:35", "killed": false, "user_key": "e1ebee782c5362f7173a1dd8444b8c3e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245584": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hey, I&#039;v found some information for repair my SONY-DSC717. If you need it, you can check it here:<br  /><br> <a href=\"http://www.sonystyle.com/is-bin/INTERSHOP.enfinity/eCS/Store/en/-/USD/SY_ViewStatic-Start?page=%2fstatic/legalNotice/legalNotice#faq\" title=\"http://www.sonystyle.com/is-bin/INTERSHOP.enfinity/eCS/Store/en/-/USD/SY_ViewStatic-Start?page=%2fstatic/legalNotice/legalNotice#faq\" target=\"_blank\" rel=\"nofollow\">http://www.sonystyle.com/is-bin/INTERSHOP.enfinity...</a><br  /><br>or<br  /><br> <a href=\"http://esupport.sony.com/perl/news-item.pl?template=EN&news_id=118\" title=\"http://esupport.sony.com/perl/news-item.pl?template=EN&news_id=118\" target=\"_blank\" rel=\"nofollow\">http://esupport.sony.com/perl/news-item.pl?templat...</a>", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-03-18_09:00:26", "killed": false, "user_key": "e1ebee782c5362f7173a1dd8444b8c3e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245585": {"up_voted": false, "ip": "", "has_replies": false, "message": "Has anyone had this problem with a HP Photosmart 935 ?<br  /><br><br  /><br>Thanks", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-03-21_01:18:44", "killed": false, "user_key": "f757e9a8d092d1239bcff5a96ca4f2ce", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245586": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have a Canon Digital IXUS IIs. A nice purplish haze on the lcd with the pics to prove it. This explains why the Canon site was so ******* helpful. Jerks.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-06-03_10:34:10", "killed": false, "user_key": "7f8663397bae00fa2f104aad562c5479", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245587": {"up_voted": false, "ip": "", "has_replies": false, "message": "My Sony DSC-F717 has developed the CCD fault.<br  /><br>I have contacted Sony Australia and will post the outcome of this dilemma. Otherwise a great camera.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-06-10_15:27:52", "killed": false, "user_key": "9196915cfd45ff2dfc4b521fdc6daccc", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245589": {"up_voted": false, "ip": "", "has_replies": false, "message": "My Nikon Coolpix 5700 started producing the strange pics with the white lines through it a couple of months ago & I kept putting it off to get repaired as I thought it would cost me a fortune. Took it to the Nikon repair centre (Camera Clinic) in Collingwood (Melb, Australia) and they immediately told me it was a fault with the image sensor and they will repair it free of charge. Why didn&#039;t I go there earlier!!? LOL Great Service :-)", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-06-18_20:42:44", "killed": false, "user_key": "d076ad8b1faa5d328fc7b069fc3c7ab6", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245591": {"up_voted": false, "ip": "", "has_replies": false, "message": "Fuji Finepix S7000 - July 5, 2007  Today the CCD on the camera developed horizontal white lines, and then big distortions like waves with fringe.  Purple and green when saved.  The warranty has expired. Does anyone know if it can be repaired, or how much it costs?  <br  /><br>Thanks for any info at all, Barb<br  />", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-07-06_04:00:48", "killed": false, "user_key": "fc7fba070c27e2357f5c9e47622573f7", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245593": {"up_voted": false, "ip": "", "has_replies": false, "message": "My Sony DSC-F717 camera had a CCD failure. Sony Australia sent my to their service agents here in Melbourne and the CCD was replaced at no charge. I agreed to pay $80 for a clean and general service while the camera was dissasembled. The work was carried out as agreed and the camera is working really well, I would like to thank Sony and European Electronics for their prompt and professional service, (not always easy to get in this day and age). Rod Letts", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-07-10_17:14:11", "killed": false, "user_key": "9196915cfd45ff2dfc4b521fdc6daccc", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245595": {"up_voted": false, "ip": "", "has_replies": false, "message": "My Nikon Coolpix 5400 developed this fault with purple lines across the screen. Contacted Nikon and they responded in less than an hour with offer to repair for free and also sent this link. <br  /><br><br  /><br><a href=\"https://nikoneurope-en.custhelp.com/cgi-bin/nikoneurope_en.cfg/php/enduser/std_adp.php?p_faqid=20603&p_created=1167746942%3Cbr\" rel=\"nofollow\">https://nikoneurope-en.custhelp.com/cgi-bin/nik...</a>  /&gt;", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-01-20_05:12:30", "killed": false, "user_key": "36fc35c7879e3c206ba2e4837fb33773", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": 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}, "25245596": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have a Sony DSC-F717 Cyber-Shot That just sitting in the closet it now just has a blur on the LCD, sometimes will show picture taken at a earlier time. Help Howard", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-07-29_12:14:35", "killed": false, "user_key": "f0e11297ead741f76bbe69a725e1a08b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245597": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have a Konica Minolta A1 bought May 2004  worked well until last November.  Didn&#039;t take in for repair until May of this year.  Then learned of the CCD problem.  Mine does not take photos and shows black screen.  But it is able to show previous photos on the memory card. Sent to local repair shop who sent back telling me part not available.  Then tried Sony who sent to Florida who also sent it back with comment UNREPAIRED DUE TO PARTS N/A.  But no one will tell me what part is not working and why they quit making parts for a camera that cost me over $800 Canadian less than 4 years ago.  How do I find out if it is the CCD or another part?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-09-19_11:24:49", "killed": false, "user_key": "b7ee3d6d5224a2628e4e1c82fd079eef", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": 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}, "25245598": {"up_voted": false, "ip": "", "has_replies": false, "message": "Canon powershot s230 failed while camping in hot humid environment - distorted images with blotches/waves of purple/green hues - known good images will display normally on screen. Was going to discard camera but decided to google problem and ended up at canon web site (USA) they have advisory for this CCD failure.  I communicated by email at <a href=\"mailto:carecenter@cits.canon.com\" rel=\"nofollow\">carecenter@cits.canon.com</a> (they also have 800 number) response was quick and they sent prepaid label thru email - they will repair and pay for shipping, regardless of warrenty or proof of purchase.  I received repair number for tracking and estimate is 7-10 days - I am sort of hoping they will just send new camera as I have heard this may happen.  Include battery/sd card as per instructions on repair order.  Many major brands are affected by this sensor failure especially apparently in hot humid environments - so check online before you throw out you digital camera. Hope this helps, Janice", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-08-30_00:44:21", "killed": false, "user_key": "8d0e1b8bb2716cf6e333182930d42e98", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245599": {"up_voted": false, "ip": "", "has_replies": false, "message": "I had the exact same problem as Janice. Canon Powershot S230. Same procedure, got free shipping label, they said they would fix it and return it. Finally got it shipped back to find they replaced it with a refurbished SD630. I can&#039;t complain. It&#039;s a 3 year newer camera. Only problem is the SD630 uses SD memory instead of compact flash, so I had to buy a bigger SD memory, although it came with a 16MB SD card and battery, etc. Anyway, great customer service. I&#039;d definitely buy Canon again!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-08-30_20:17:09", "killed": false, "user_key": "4eebbbc2bada255b9138cb234c910c90", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245600": {"up_voted": false, "ip": "", "has_replies": false, "message": "In response to Bob on Aug 31st, 2007 at 12:17 AM<br  /><br>Did it take long to get camera returned?<br  /><br>Took a look at the SD630 - it sure looks like a nicer camera than the S230 - except for the plastic case.  Hope they replace mine for this one.  Happy shooting.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-08-31_07:37:58", "killed": false, "user_key": "8d0e1b8bb2716cf6e333182930d42e98", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245601": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have a Konica Minolta A1.  I rarely use the camera but when I do I need it.  Last year the problem with the bad CCD chip showed up in my camera.  I did not know of the CCD chip problem at the time.  A few months later I decided to see if I could get the camera fixed and was made aware of the defective CCD. I guess living in AZ it took longer to show up. <br  /><br>My problem is that I was never notified of this and now that I try to get it fixed, Sony says it will cost me $211 (flat fee).<br  /><br>It seems there was some settlement and the date for free fixes has lapsed.<br  /><br>Well I was not notified and I did not agree to the settlement.  Anyone know of another path to get the camera fixed?  I&#039;m looking at small claims court with the defendant being Konica Minolta but they are in Japan.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-08-29_07:52:43", "killed": false, "user_key": "3e51705ad36adcb554720a8f3ea1a316", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": 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}, "25245603": {"up_voted": false, "ip": "", "has_replies": false, "message": "Re B Hathaway&#039;s Fuji S7000 problem: I seem to have resolved an identical problem by fully discharginging the Ni-MH re-chargeable batteries through the camera facility then re charging/discharging them again. Hope this works for you.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-11-16_04:53:02", "killed": false, "user_key": "9b57143c0a1f288f5b604fee5f6d0a0f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245606": {"up_voted": false, "ip": "", "has_replies": false, "message": "Re Barbs problem with the Fuji S7000: if re-chargeable Ni-MH batteries are being used discharge them using the camera facilities and then re-charge/discharge/re-charge them. This worked for me, good luck.<br  /><br><br  /><br>Regards<br  /><br><br  /><br>Fenman", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-11-16_04:53:02", "killed": false, "user_key": "9b57143c0a1f288f5b604fee5f6d0a0f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245608": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have a canon  PowerShot A70 that I purchased new  that  I dropped several days after purchasing back in 2004. The camera has worked flawlessly up until a few weeks ago when it started with the faulty CCD symptoms. The camera is in very good condition with the exception of a small crack in the case and now I wonder if Canon will tell me that this issue is due to the camera being dropped and not with the faulty CCD. Anyone have any advise?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-11-19_02:22:24", "killed": false, "user_key": "33b398b2646ebbbc1fc2decb00dc2e0e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245609": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have a canon  PowerShot A70 that I purchased new  that  I dropped several days after purchasing back in 2004. The camera has worked flawlessly up until a few weeks ago when it started with the faulty CCD symptoms. The camera is in very good condition with the exception of a small crack in the case and now I wonder if Canon will tell me that this issue is due to the camera being dropped and not with the faulty CCD. Anyone have any advise?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-11-19_02:22:24", "killed": false, "user_key": "33b398b2646ebbbc1fc2decb00dc2e0e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245610": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have a canon  PowerShot A70 that I purchased new  that  I dropped several days after purchasing back in 2004. The camera has worked flawlessly up until a few weeks ago when it started with the faulty CCD symptoms. The camera is in very good condition with the exception of a small crack in the case and now I wonder if Canon will tell me that this issue is due to the camera being dropped and not with the faulty CCD. Anyone have any advise?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-11-19_02:22:24", "killed": false, "user_key": "33b398b2646ebbbc1fc2decb00dc2e0e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245611": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have a canon  PowerShot A70 that I purchased new  that  I dropped several days after purchasing back in 2004. The camera has worked flawlessly up until a few weeks ago when it started with the faulty CCD symptoms. The camera is in very good condition with the exception of a small crack in the case and now I wonder if Canon will tell me that this issue is due to the camera being dropped and not with the faulty CCD. Anyone have any advise?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-11-19_02:22:24", "killed": false, "user_key": "33b398b2646ebbbc1fc2decb00dc2e0e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245612": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thanks for this informative thread and keeping it alive - my IXUS 500 CCD recently failed after a humid and hot trip in Phuket.  I now have purple lines across the top eighth of the image.  I went to the Canon pages and was offered the option to take my Canon to a repairer for free and they will repair:<br  /><br><br  /><br>\"Thank you for using one of our Canon products.<br  /><br>It has been found, that in rare case, some of the CCDs, used in Canon digital camera and digital video cameras, have a problem that causes abnormal image output.<br  /><br><br  /><br>We apologise for any inconvenience this may have caused. Canon will offer free repairs where an error is caused by this malfunction.<br  /><br><br  /><br>Canon would like to advise our customers of the details of this issue and our policy for handling it.<br  /><br><br  /><br>Problem details: <br  /><br>Among the CCDs used in the affected products, it has been confirmed that in extremely rare cases, under high-temperature/high-humidity environments, some of the internal wiring comes off.<br  /><br><br  /><br>If this defect occurs, the signal is not output from the CCD correctly when in shooting mode. This results in image abnormalities such as: <br  /><br>Images do not appear<br  /><br>Image colors are abnormal<br  /><br>Images appear distorted<br  /><br>These symptoms can be confirmed on the LCD monitor.<br  /><br>Solution: <br  /><br>We kindly request users who have confirmed these symptoms to contact the nearest Canon Service Centre.<br  /><br><br  /><br>Free repairs will be made for affected products in cases where it has been confirmed that the internal CCD wiring has come off.<br  /><br>Last modified date: 07-Jun-07\"<br  /><br><br  /><br>Thank you again - I&#039;m off to a Canon repairer to hopefully get my otherwise solid IXUS fixed!<br  /><br><br  /><br>cheers<br  /><br>G", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-16_03:41:46", "killed": false, "user_key": "d4fca895532a23a94a3b640627377d28", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": 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}, "25245613": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have had two cameras fail because of a black screen.  The first one was my Sony DSC-F717 Cyber-Shot Sony sent a shipping label and it was sent to Texas for repair. I was happy when it was returned as I really liked the camera.  I They repaired it June 2007.  June 2008 same problem Black screen on both the View finder and the LCD Screen which renders the camera useless.  Sony sent me a shipping label and the camera was returned June 3 2008 twenty nine pictures later the same problem.  Called Sony and they told me to take the battery out and push the reset button and I did and the camera worked for 10 minutes and the  black screen appeared again.  Sent the camera back for the third time and was promised a new replacement camera but since they didn&#039;t make the Sony DSC-F717 Cyber-Shot they would call me and tell me what type of camera they&#039;d sent.  I just got a UPS notification and they are shipping the camera back for the third time.  I don&#039;t think they are replacing the sensor chip with a redesigned part I think they are using the same bad chips.<br  /><br><br  /><br><br  /><br>The second camera I purchased in Oregon when the my Sony DSC-F717 Cyber-Shot failed the first time.   My husband and I had taken our two grandchildren for a once in a life time trip for us with these two grandchildren from Pa to Oregon in a camper.  So when the camera failed I purchased a Canon Poweshot S3IS.  I used it but for the remainder of the trip and when I got home and researched the Sony and found out about the trouble I contacted and that is when I sent my Sony back.  So I have been using the Sony and Canon switching back and forth with the cameras.  I have had this camera for about 18 months and last week when the Sony was in for the third time I went to use my Canon only to find it also was useless as it had a blacek screen.  I contacted Canon and was told they&#039;d send me a label.  Just got a response from Canon,  They  will repair it for $155.82 or get a refurbished one for $169.00.<br  /><br><br  /><br>I think they all need to stand behind their products<br  /><br>Pat<br  /><br>C <br  />", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-14_05:32:27", "killed": false, "user_key": "3ffa8197c49f3891cbb89000a9a1cdb6", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": 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}, "25245614": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thank you for the article which has helped me understand the cause of  streaky dark pictures, missing images and strong wide purple green casts on my Sony Cyber-shot DSC-T1 5.0MP camera.  <br  /><br><br  /><br>The large number of cameras affected by the faulty CCD image sensor may help my pursuit of repairs from Sony in Australia.<br  />", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-03-13_06:16:01", "killed": false, "user_key": "fe3a939ad27c6b0b90139b7eb902a791", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": 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}, "25245615": {"up_voted": false, "ip": "", "has_replies": false, "message": "My Canon IXUS IIs went faulty in August, unable to take new pics (strippy lines) but playback of old pics okay.<br  /><br><br  /><br>Saw the product advisory on the Canon product support web site so took Camera to authorised repair centre in Colchester.<br  /><br><br  /><br>They got in touch within a couple of weeks, unable to repair due to lack of replacement sensors, so offered a refurbished IXUS 70, replacement, free of charge!<br  /><br><br  /><br>Very happy! 7.1Mp camera, more features, looks brand new. Didn&#039;t cost a penny.<br  /><br><br  /><br>Would definitely buy Canon again!! <br  /><br><br  />", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-10-04_02:35:46", "killed": false, "user_key": "5d94b900bf2bd860978d96f199bf4576", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": 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}, "25245616": {"up_voted": false, "ip": "", "has_replies": false, "message": "My Canon IXUS IIs went faulty in August, unable to take new pics (strippy lines) but playback of old pics okay.<br  /><br><br  /><br>Saw the product advisory on the Canon product support web site so took Camera to authorised repair centre in Colchester.<br  /><br><br  /><br>They got in touch within a couple of weeks, unable to repair due to lack of replacement sensors, so offered a refurbished IXUS 70, replacement, free of charge!<br  /><br><br  /><br>Very happy! 7.1Mp camera, more features, looks brand new. Didn&#039;t cost a penny.<br  /><br><br  /><br>Would definitely buy Canon again!! <br  /><br><br  />", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-10-04_02:35:46", "killed": false, "user_key": "5d94b900bf2bd860978d96f199bf4576", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": 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}, "25245617": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi I have a Canon Powershot A70 which started getting lines across it and if you took the picture while it was like that they came out on the picture.  This was a while ago. But if you left it for about 5 minutes and tried again it went right. This gradually got worse and now it is all across all of the screen. We decided as we only use it occasionally to get another from ebay and when we started looking we found loads on there being sold for spares with the same fault. I did a search and came across this web site.  Did anyone get their Canon camera repaired and were they charged. Any further help on this please!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-04-06_10:37:13", "killed": false, "user_key": "cce0f58c80a214cc0352178892d655a4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": 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}, "25245542": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have a digital camera bearing the \"Medion\" brand name.  The camera uses a 4.1 MP Sony sensor chip which has failed.  Medion, unlike reputable manufacturers, has opted to ignore this Sony chip problem.  It&#039;s policy is that if the camera is over a year old they don&#039;t want to hear about it.  Any suggestions?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2005-12-10_14:44:01", "killed": false, "user_key": "59e8c805eec5bea0f685907e44a9d23b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "4 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245543": {"up_voted": false, "ip": "", "has_replies": false, "message": "Tell Meridion that you will report them to the BBB and the Attorney General. That will turn some heads ;)", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2005-12-10_16:26:39", "killed": false, "user_key": "c523dc768ab617fb216c9def9769a7b0", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "4 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245544": {"up_voted": false, "ip": "", "has_replies": false, "message": "This is an update to my comments dated 18 Dec 06 (5:15 pm). I received my Nikon 5400 in the mail last week and it is working again flawlessly. I have put it through its paces for the last 6 days and it works like it just came off the assembly line. Nikon will stand by thier product and make the repair \"Complimentary\" provided you stick by your guns. Power to the consumer!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-01-23_01:30:01", "killed": false, "user_key": "dba1e683401b30e2440ef409a2be7ab5", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245545": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have a problem with my Canon Digital IXUS II. The problem is that the image that i want to take out is not appearing on the LCD screen. However, the previous photos that i have taken can be viewed on the replay mode. Is this a sensor problem? Can you please advise on this situation?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-01-25_15:37:13", "killed": false, "user_key": "7c9b5142d7aa2d96bc69bd67c0ab7bfd", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245546": {"up_voted": false, "ip": "", "has_replies": false, "message": "hi folks<br  /><br>the problem with imager breakdown is on a truly<br  /><br>massive scale i have replaced hundreds of them<br  /><br>in various brands of movie and still camera.<br  /><br>the worst offenders seem to be sony canon jvc<br  /><br>minolta, panasonic to a lesser extent and various others.<br  /><br>some manufactures seem happy to let their service repair agents do the work others doggedly want all of them back to repair themselves.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-01-17_23:58:46", "killed": false, "user_key": "1b548d16f94c24159ed170cb804ba193", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245547": {"up_voted": false, "ip": "", "has_replies": false, "message": "Same problem with Nikon 5400. Answare from Nikon service europe-have to pay 160 pounds.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-01-16_09:18:02", "killed": false, "user_key": "c7755da2fe5bd43de0e21b0dc9e660b0", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245548": {"up_voted": false, "ip": "", "has_replies": false, "message": "My Sony DSC f-717 started doing the same thing.  Sending it off to Sony today.  I&#039;ve removed the battery, memory card, straps, lens cover, etc.<br  /><br><br  /><br>I&#039;m not sure if they are going to send me mine back, repaired, or send me another unit already repaired. <br  /><br><br  /><br>Fingers crossed.   Mines in excellent condition otherwise.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-01-16_09:28:30", "killed": false, "user_key": "6c8456f815ae1533514006cd45a6553c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245549": {"up_voted": false, "ip": "", "has_replies": false, "message": "Same problem showed up on my Panasonic <br  /><br>NV-GS200 The local authorised repairer replaced the chip at no charge after approval from Panasonic.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-01-13_21:25:30", "killed": false, "user_key": "d8774aefb05bd47ff5c58c5ba53cfa91", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245553": {"up_voted": false, "ip": "", "has_replies": false, "message": "Regarding the 5400 dead CCD issue:<br  /><br><br  /><br>I too contacted Nikon USA Support.  They asked that I send in the camera. I was then informed that it would be $150 to repair (via their very cool support website that allows one to check on the status of their camera).<br  /><br><br  /><br>I responded with several links to sites discussing the 5400/dead CCD issue, as well as several links to dead 5400&#039;s on eBay that had the same symptoms. I told them that there was clearly a problem with the 5400 CCDs and that the repair ought to be free.  <br  /><br><br  /><br>Support sent me a note saying that the 5400 is not part of the Service Advisory Program.  <br  /><br><br  /><br>I responded with the links again (plus a few more) and requested that I be escalated to a higher level before I sought 3rd-party assistance.  <br  /><br><br  /><br>They sent me back word that the camera would be repaired free of charge in the interest of good customer relations.  They did repair the camera and shipped it back - no charge.<br  /><br><br  /><br>Do your research, be polite, be persistent.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-01-09_08:35:39", "killed": false, "user_key": "b47aa1ccbd535f531526b1c30aefd780", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245555": {"up_voted": false, "ip": "", "has_replies": false, "message": "Can anyone say when this fault was first made public?<br  /><br>My Nikon 5700 has just developed the same problem and I&#039;m pursuing this with the seller under UK Trading Standards, so far, the firm doesn&#039;t want to know and deny all knowledge of this problem claiming they have sold hundreds without a single complaint. I bet!<br  /><br>krj", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-01-08_17:55:47", "killed": false, "user_key": "e96bf5f0e5a93dc0d333dbc7a20bc4d5", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245556": {"up_voted": false, "ip": "", "has_replies": false, "message": "Only today I received an answer from Nikon France, they ask me 201,79 \u20ac to repair, but I don&#039;t know that they will do, it&#039;s a fixed rate.<br  /><br>The life of this camera is two years", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-01-03_04:00:18", "killed": false, "user_key": "e6f6181fdc5266eb66af4268e98c2590", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245557": {"up_voted": false, "ip": "", "has_replies": false, "message": "I too have an 18 month old Nikon CP-5400 with the same black image/no image problem most likely due to a defective CCD.  It seems this is beyond a common problem with this camera from looking at various camera forums. I believe a class action suit is in order as I don&#039;t want to pay $170 back to Nikon for their making a defective camera.....I was a previous Minolta owner on the SLR side, but now that they have sold the camera business to Sony I may have to consider Canon as Sony and Nikon don;&#039;t seem to stand behind their product lines.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-01-02_05:21:33", "killed": false, "user_key": "47ae94879ffc5e372c2044f70f54afd1", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245558": {"up_voted": false, "ip": "", "has_replies": false, "message": "my very well cared for little used nikon coolpix 5400 recently started producing pictures that are just a lot of horizontal lines. I phoned nikon about this they were not helpful and insisted that they did not have any problems with this model. DO YOU KNOW OF ANY PROBLEMS WITH THIS MODEL", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-12-30_00:13:52", "killed": false, "user_key": "0329d228b46061c4b86d5c6f74be51f3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245561": {"up_voted": false, "ip": "", "has_replies": false, "message": "My FujiFilm F700 is one on the list as well. Purchased 2 years ago this month, the CCD went bad on me one week before Christmas. I called Fuji and they told me to send it in. My serial # is not in the range of the bad chips but it is the same exact problem. Hopefully they&#039;ll fix it. The camera has been great up to the chip going bad. I could use this camera for another few years as it has everything that I need. Do you have any feedback as to lifespan of the new CCD chips?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-12-29_02:50:05", "killed": false, "user_key": "15ac3fbf44c88c491334a67f903bd662", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245562": {"up_voted": false, "ip": "", "has_replies": false, "message": "I shipped my Nikon coolpix off to Nikon about 8 days ago and I received a letter advising me the estimated repair would cost $170.00. I call their tool free number and complained to the service representative that I was well aware of the problems Nikon and Sony were having with the CCDs and that I wanted my camera repaired at not charge. Of course the service rep said he could not promise anything however my concerns would be relayed to the appropriate management for resolution. I for one will definitley vote with my dollars if Nikon (a multi-millon dollar conglomerate) refuses to make the repair at no charge to me. Hopefully Nikon is not going the way of some other legendary manufactures who try to survive on their name only versus backing up their product when they know there is a possible defect in the manufacturing process (i.e. bad/defective CCDs).", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-12-18_10:15:25", "killed": false, "user_key": "dba1e683401b30e2440ef409a2be7ab5", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245563": {"up_voted": false, "ip": "", "has_replies": false, "message": "I am experiencing the same problem with my 18 month old camera. I call Nikon and ref Ans. ID 13688. Even though its the exact same they will not honor and fix. I think it is time to initiate a class action suit against Nikon.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-12-02_22:38:41", "killed": false, "user_key": "6e7531f7943bc9da79b6e9addca5f5a3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245564": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi, My 18 month old 5400 coolpix also started displaying the same CCD symptoms. Per advice from Nikon support, I sent the camera for evaluation and now they are asking me for $173 for repairs. I have seen several users report on imaging forums that they managed to get Nikon to fix their 5400 for free for the same CCD issue. Whom should we contact? Whats the process to be followed. It is ironic that Nikon is asking us to pay for faulty parts that were put in our camera&#039;s.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-29_11:06:18", "killed": false, "user_key": "25545ba630ac6e11ee7f2f917ed5cb42", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245565": {"up_voted": false, "ip": "", "has_replies": false, "message": "I own a Nikon Coolpix 5400, which has started showing the exact same imaging problems as other camera makes using Sony CCDs. But NIKON FRANCE says us that it&#039;s not in the list. Are we sure that the CCD is the same as the sony Cybershot DSC-V1. Where we can find this information.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-29_06:03:57", "killed": false, "user_key": "e6f6181fdc5266eb66af4268e98c2590", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245566": {"up_voted": false, "ip": "", "has_replies": false, "message": "Gentlemen, I am also going through this with Nikon in regards to my Coolpix 5400.  I called them, was given information to send the camera in advising them that I did not have the proof the purchase as it was gift.  Sent the camera in exactly the way the told me to, recieved my &#039;service order&#039; stating I did not send the flash card or the battery (which I did because I was told to) and the cost to me will be $162.50.  I called them back and now have to wait to find out if they will repair/replace the camera under warranty.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-19_22:05:02", "killed": false, "user_key": "1dd9c9d4a73b922e1acd8da811336023", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "25245567": {"up_voted": false, "ip": "", "has_replies": false, "message": "I own a Nikon Coolpix 5400, which has started showing the exact same imaging problems as other camera makes using Sony CCDs. This camera uses the same SuperHAD (Hole Accumulation Diode) 1/1.8\", 5.2 MP CCD as does the Sony Cybershot DSC-V1 camera (which is listed as an affected product). However, the Nikon service advisory does NOT include the Coolpix 5400 camera in there list of cameras in the service advisory). So Nikon will not authorize a CCD replacement, but told me to send my camera in for \"evaluation\".<br  /><br><br  /><br>With all the cover-up and no RECALL announcement, how can I trust Nikon with this \"evaluation\", when they can instead blame something else and charge me for repairs?<br  /><br><br  /><br>I tried contacting Sony, but if it&#039;s not one of their cameras, they won&#039;t even send me a replacement CCD (which is just as well--it might be from the same defective batches).<br  /><br><br  /><br>Frustrating!<br  /><br><br  /><br>Which camera manufacturere are there that do NOT, never have, and never will use Sony CCDs?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-08-27_06:51:21", "killed": false, "user_key": "ef0de923d21bb005abba45cbe64755c8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "user_voted": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}}, "integration": {"receiver_url": "", "theme": 4, "hide_user_votes": true, "reply_position": true, "disqus_logo": false}, "uploads_url": "http://media.disqus.com/uploads", "thread": {"total_posts": 0, "paginate": false, "per_page": 0, "slug": "faulty_sony_ccds_fail_in_dozens_of_cameras", "offset_posts": 0, "num_pages": 1, "days_alive": 0, "realtime_paused": true, "id": 44036312, "pagination_type": "append", "num_posts": 61, "closed": false, "queued": false, "killed": false, "moderate_all": false}, "reactions_limit": 10, "context": {"show_reply": true, "use_fb_connect": true, "forum_facebook_key": "f9e449f58a02107dc99306f0819d288c", "use_yahoo": true, "subscribed": false, "use_twitter_signin": true, "use_openid": true, "realtime_speed": 5000}, "mediaembed": [], "reactions_start": 0, "settings": {"debug": false, "disqus_url": "http://disqus.com", "media_url": "http://mediacdn.disqus.com/1001"}, "media_url": "http://mediacdn.disqus.com/1001"};
	/* */ 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.SHARE_THIS_COMMENT_ON = "Share this comment on";
	this.TWEET_THIS_COMMENT = "Tweet this comment";
	this.SHARE_ON_NEWSFEED = "Share on news feed";
	this.SEND_UPDATE_TO_YAHOO = "Share via Yahoo! Updates";
	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.IN_REPLY_TO = "in reply to";
	this.SETTINGS = "Settings";
	this.MODERATOR_OPTIONS = "Moderator options: ";
	this.MODERATE_OPTIONS = "Moderate Options";
	this.HELP = "Help";
	this.CONTACT_SUPPORT = "Contact Support";
	this.LIKED_THIS = 'liked this';
	this.MORE = 'more';

  // 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 liked'
				: '%(num)s liked'
			), {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 = '1b374b7fe75c917a243e3d3b29a114ad';
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 (/MSIE/.test(navigator.userAgent) && 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);
	};

	var cookieFailure = function(post_id) {
		Dsq.Templates.cookieFailure(post_id);
	};

	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,
		'cookieFailure': cookieFailure,
		'reload': function() { window.location.reload(); }
	});

	this.url = Dsq.Urls.REPLY +
		'?' + (new Date()).getTime() +
		'&f=digitaltrends' +
		'&t=faulty_sony_ccds_fail_in_dozens_of_cameras' +
		'&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.commentCount = function() {
		var total_posts, num_posts, offset_posts;

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

		if (total_posts) {
			if (Dsq.jsonData.thread.pagination_type == 'num') {
				num_posts = (offset_posts+1) + '-' + (offset_posts+num_posts);
			}
			return Dsq.FmtStrings.SHOWING_COMMENTS_FULL(total_posts, num_posts);
		} else {
			return Dsq.FmtStrings.SHOWING_COMMENTS_WITHOUT_PAGINATION(num_posts);
		}
	}
	
	this.header = function() {
		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>';
			}
		}

		html += ' \
		<div id="dsq-comments-title"> \
			<h3>' + Dsq.Templates.commentCount() + '</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://mediacdn.disqus.com/1001/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://mediacdn.disqus.com/1001/images/embed/bullet-feed.png" alt="" /> \
				<a href="http://digitaltrends.disqus.com/faulty_sony_ccds_fail_in_dozens_of_cameras/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();

		if (Dsq.jsonData.realtime_enabled && !Dsq.jsonData.forum.streaming_realtime) {
			html += '<div style="display: none" class="dsq-realtime-alert"></div>';
		}

		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" class="dsq-realtime-alert"></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>';
		html += '<a href="#" onclick="Dsq.Thread.showHelp(); return false;">' + Dsq.Strings.HELP + '</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_name + '</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 class="dsq-request-user-stat"><big>' + Dsq.jsonData.request.comments_count + '</big> <span id="dsq-request-user-stats-comments' + pid + '">' + (Dsq.jsonData.request.comments_count == 1 ? 'comment' : 'comments') + '</span></span> \
							<span class="dsq-request-user-stat"><big>' + Dsq.jsonData.request.likes_count + '</big> <span id="dsq-request-user-stats-liked' + pid + '">' + (Dsq.jsonData.request.likes_count == 1 ? 'liked' : 'liked') + '</span></span> \
							<span class="dsq-request-user-stat"><big>' + Dsq.jsonData.request.points + '</big> <span id="dsq-request-user-stats-points' + pid + '">' + (Dsq.jsonData.request.points == 1 ? 'point' : 'points') + '</span></span> \
						</td> \
					</tr> \
				</table> \
			</div> \
			';
			return html;
		};

		var _loginOptions = function() {
			var html;
			html = ' \
			<div id="dsq-authenticate' + pid + '" 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://mediacdn.disqus.com/1001/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://mediacdn.disqus.com/1001/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://mediacdn.disqus.com/1001/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://mediacdn.disqus.com/1001/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://mediacdn.disqus.com/1001/images/themes/narcissus/login-yahoo.png" /></a></li>' : '')
				+ '</ul> \
			</div> \
			';
			return html;
		};
		
		var _sharingOptions = function() {
			var html = '';

			for (var s in Dsq.jsonData.request.sharing) {
                if (Dsq.jsonData.request.sharing.hasOwnProperty(s)) {
                    var service = Dsq.jsonData.request.sharing[s];

    				if (service) {
    					var checked = service.auto === true || (Dsq.jsonData.request.remote_domain == s);


						var updateLabel = (s == 'twitter' || s == 'facebook');

    					if (service.enabled) {
    						html += ' \
    						<div> \
    							<input type="checkbox" id="dsq-sharing-' + s + pid + '" ' + (checked ? 'checked=true' : '') 
    							+ (updateLabel ? 'onclick="Dsq.Templates.updateSharingLabel(this, ' + post_id + ')"' : '' ) 
    							+ ' /> \
    							<label for="dsq-sharing-' + s + pid + '"> \
    								<img src="' + Dsq.jsonData.settings.media_url + '/images/v3/icon/16/' + s + '.png"> ' + Dsq.Strings.SHARE_ON + ' <span>' + s + '</span>'
    							+ '</label> \
    						</div>';
    					}
    				}
                }
			} // for
			
			html += (Dsq.jsonData.request.is_remote ? '' : '<div><a href="' + Dsq.jsonData.settings.disqus_url + '/profile/connections/" target="_blank" class="dsq-configure-options">' + Dsq.Strings.CONFIGURE_OPTIONS + '...</a></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://mediacdn.disqus.com/1001/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-menu"> \
								<label class="dsq-subscribe-label"> \
									<input id="dsq-subscribe-on-post' + pid + '" type="checkbox"' + (Dsq.jsonData.request.subscribe_on_post ? 'checked="true"' : '') + '/> '
									+ Dsq.Strings.SUBSCRIBE_TO_ALL_COMMENTS_BY_EMAIL 
								+ '</label> \
							</div> \
						</td> \
					</tr> \
				</table> \
			</div>'
			: '')
			+ '<div class="dsq-post-footer"> \
				<div class="dsq-sharing-options" ' + (!display_sharing_options ? 'style="display:none;"' : '') + '>'
				+ (Dsq.jsonData.request.is_remote
					? (display_sharing_options ? _sharingOptions() : '')
					: '<button type="button" class="dsq-button-small" onfocus="document.getElementById(\'dsq-post-button' + pid + '\').focus();"> \
							<span class="dsq-share-on">' + Dsq.Strings.SHARE_ON
								+ '&nbsp;<input id="dsq-sharing-twitter-label' + pid + '" type="checkbox" disabled="true" ' + (Dsq.jsonData.request.sharing['twitter'] && Dsq.jsonData.request.sharing['twitter'].auto ? 'checked="true"' : '') + '><img src="' + Dsq.jsonData.settings.media_url + '/images/v3/icon/16/twitter.png">&nbsp;\
								<input id="dsq-sharing-facebook-label' + pid + '" type="checkbox" disabled="true" ' + (Dsq.jsonData.request.sharing['facebook'] && Dsq.jsonData.request.sharing['facebook'].auto ? 'checked="true"' : '') + '><img src="' + Dsq.jsonData.settings.media_url + '/images/v3/icon/16/facebook.png"> \
							</span> \
							<span class="dsq-share-on-label">' + Dsq.Strings.SHARE_THIS_COMMENT_ON + '...</span> \
						</button> \
						<div class="dsq-panel">' + _sharingOptions() + '</div>')
					+ '</div>'
				+ '<button type="button" class="dsq-button" id="dsq-post-button' + pid + '" onclick="Dsq.Templates.postComment(' + post_id + ', this, false)"><span>' 
				+ (Dsq.jsonData.forum.allow_anon_post || Dsq.jsonData.request.is_authenticated
				    ? (Dsq.Strings.POST_AS + ' ' + (Dsq.jsonData.request.display_username
					                                ? Dsq.jsonData.request.display_username
					                                : Dsq.Strings.GUEST))
					: 'Login and Post')
				+ '</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>' // dsq-post-footer
			+ '</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://mediacdn.disqus.com/1001/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 onclick="Dsq.Post.showParent(' + _meta.parent_post_id + '); return false" href="#comment-' + _meta.parent_post_id + '" title="Jump to comment">' + Dsq.Strings.IN_REPLY_TO + ' ' + parent_display_name + '</a>'
			: '')
		+ '</td> \
		</tr> \
		</table> \
		';
		
		html += Dsq.Templates.showPostLikes(post_id);
		
		return html;
	};

	this.showPostLikes = function(post_id) {
		var html = '';
		var total_likes = Dsq.jsonData.posts[post_id].points;
		var user = Dsq.jsonData.posts[post_id].user_voted;
		var expand_likes = (total_likes > 1);

		if (total_likes) {
			html += ' \
			<div class="dsq-sub-header"> \
			<table> \
			    <tbody> \
    				<tr> \
    					<td class="dsq-sub-header-right"> \
    					<span class="dsq-user-like">';

    		if (Dsq.jsonData.integration.hide_user_votes) {

    		    html += '<span id="dsq-like-pts-"' + post_id + '">'
    		            + total_likes + ' ' + Dsq.Utils.pluralize(total_likes, 'person', 'people')
    		            + '</span> ' + Dsq.Strings.LIKED_THIS + '.';
    		} else {
    		    html += (user ? '<a href="' + Dsq.jsonData.settings.disqus_url + '/' + user.username + '" target="_blank"> \
    		            <img src="' + user.avatar_url + '" class="dsq-user-like-avatar" alt="" /></a>' : '');

    			html += (expand_likes ? '<a href="#" onclick="Dsq.Templates.showUserVotes(' + post_id + '); return false">' : '')
    			        + (user ? 
                        (user.display_name ? user.display_name : user.username) 
                        : '')
    					+ '<span id="dsq-like-pts-' + post_id + '">'
    					+ (user ? 
    					(expand_likes ? ' and ' + (total_likes - 1) + ' ' + Dsq.Strings.MORE : '') 
    					: total_likes + ' ' + Dsq.Utils.pluralize(total_likes, 'person', 'people'))
    					+ '</span> ' + Dsq.Strings.LIKED_THIS + '.'
    					+ (expand_likes ? '</a>' : '');
    		}
	
    		html += '</span></td></tr> \
				    </tbody> \
			    </table> \
		    </div>';
		}
		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://mediacdn.disqus.com/1001/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.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://mediacdn.disqus.com/1001/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://mediacdn.disqus.com/1001/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://mediacdn.disqus.com/1001/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).checked ? 2 : 0));
			} 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, text) {
		var body = Dsq.$('dsq-comment-body-' + post_id);
		var message = Dsq.$('dsq-comment-message-' + post_id);
		var mediaembed = Dsq.$('dsq-media-embed-' + post_id);

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


			message.style.display = 'none';
			if (mediaembed) mediaembed.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 + '">' + text + '</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';
			if (mediaembed) mediaembed.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.Utils.execScript(Dsq.Urls.GET_COMMENT_MESSAGE + '?post=' + 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="' + Dsq.jsonData.settings.disqus_url + '/comments/moderate/' + Dsq.jsonData.forum.url + '" 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://mediacdn.disqus.com/1001/images/loading-small.gif">';
		
		if(el_clicked) {
			Dsq.Templates.setLoadingButton(el_clicked);
		}
		
		Dsq.Utils.execScript('http://disqus.com/forums/digitaltrends/thread.js'
			+ '?slug='	+ 'faulty_sony_ccds_fail_in_dozens_of_cameras'
			+ '&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://mediacdn.disqus.com/1001/images/loading-small.gif">';
			}
			Dsq.Utils.execScript('http://disqus.com/forums/digitaltrends/vote.js'
				+ '?post_id='    + id
				+ '&vote='        + vote);
		} else {
			Dsq.Popup.login('To rate, please log in');
		}
	};

	this.showUserVotes = function(post_id) {
		Dsq.Utils.execScript('http://disqus.com/forums/digitaltrends/show_user_votes.js'
			+ '?post_id='    + post_id
		);	
	};

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

		var user_vote_is_displayed = Dsq.jsonData.posts[post_id].user_voted;
		var update_text;
		
		Dsq.jsonData.posts[post_id].points += 1;
		
		if (user_vote_is_displayed) {
		    update_text = ' and ' + (points-1 || 1) + ' more';
		} else { 

		    update_text = points + ' ' + Dsq.Utils.pluralize(points, 'person', 'people');
		}
		
		if (Dsq.$('dsq-like-pts-' + post_id)) {
			Dsq.$('dsq-like-pts-' + post_id).innerHTML = update_text;
		}

		if(vote) {
			Dsq.$('dsq-like-' + post_id).innerHTML = 'You liked this.&nbsp;&nbsp;';
		}
	};
	
	this.updateSharingLabel = function(el, post_id) {
		var label = el.id.replace('-' + post_id, '');
		label += '-label' + (post_id ? '-' + post_id : '');
		Dsq.$(label).checked = (el.checked ? 'true' : '');				
	};




	this.onPaginate = function() {

		Dsq.$('dsq-comments-title').innerHTML = '<h3>' + Dsq.Templates.commentCount() + '</h3>';
	};

	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, true, 'dsq-popup-unapproved');
		}

		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://digitaltrends.disqus.com/faulty_sony_ccds_fail_in_dozens_of_cameras/reply.html';
	this.REQUEST_USER_PROFILE = '/AnonymousUser/';
	this.REQUEST_USER_AVATAR = 'http://mediacdn.disqus.com/1001/images/noavatar92.png';
  this.GET_COMMENT_MESSAGE = 'http://digitaltrends.disqus.com/get_comment_message.js';
};
// 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.gecko = navigator.userAgent.indexOf('Gecko') >= 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) {
		document.cookie = name+"="+value+"; 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) {
		var date = new Date();
		date.setTime(date.getTime()+(-1*24*60*60*1000));
		document.cookie = name+"=;expires="+date.toGMTString()+"; path=/";
	};

	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.');
		}
	};
	
	this.getFileDirectory = function(user_id, name) {
		var dir_a, dir_b;

		if (name === undefined ) {
			var name = 'uploads';
		}
		
		if (user_id >= 32117) {
			dir_a = user_id / 10000;
			dir_b = user_id % 10000;
			
			return Dsq.jsonData.settings.media_url + '/' + name + '/users/' + dir_a + '/' + dir_b;
		} else {
			return Dsq.jsonData.settings.media_url + '/' + name + '/users/' + user_id;
		}
	};

};
// 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(stat, text) { return '<span class="dsq-profile-stat-' + stat + '"><big>' + text + '</big></span>'; };
			var _no_comments = _genhtml('comments', Dsq.FmtStrings.NUMBER_OF_COMMENTS(_cache.comments_count));
			var _no_likes = _genhtml('liked', Dsq.FmtStrings.NUMBER_OF_LIKES(_cache.likes_count));
			var _no_points = _genhtml('points', 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

		Dsq.Popup.position();
		
		// 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.helpLogin = function() {
		
		var html = ' \
			<p>In order to properly log you in, your browser needs to accept cookies from all domains.</p> \
			<p>Open up Settings > Privacy. Then, make sure <strong>Accept cookies from sites</strong> is checked. Also, make sure <strong>Accept third-party cookies</strong> is checked as well.</p> \
			<p>After closing your settings, you may try logging in again.</p> \
			<p>Optional: If you would rather add an exception just for Disqus, click "Exceptions..." and add disqus.com as an allowed domain.</p> \
		';

		this.popModal(html, 'Help: Enabling cookies');
	};

	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/digitaltrends/_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://mediacdn.disqus.com/1001/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';

		Dsq.Popup.activePopup = {
			'el' : popup,
			'id' : post_id,
			'type': type,
			'linkClicked' : false
		};
		
		Dsq.Popup.position();
		
	};
	
	this.position = function() {
		
		if (!Dsq.Popup.activePopup) {
			return false;
		}
		
		var popup = Dsq.Popup.activePopup.el;
		
		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';

	};

	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">61</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://digitaltrends.disqus.com/faulty_sony_ccds_fail_in_dozens_of_cameras/latest.rss"><img src="http://mediacdn.disqus.com/1001/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://digitaltrends.disqus.com/faulty_sony_ccds_fail_in_dozens_of_cameras/">Community Page</a>&nbsp;&nbsp;&nbsp;</span>\
	 <span class="dsq-item-subscribe">\
	 <img src="http://mediacdn.disqus.com/1001/images/embed/email.png" style="width:12px;height:12px;vertical-align:middle">\
	 <span id="dsq-subscribe">\
	 <a href="#" onclick="Dsq.Thread.subscribe(1); return false">Subscribe by email</a>\
	 </span>\
	 </span>\
	 </div>\
	 <div id="dsq-alerts">\
	 </div>\
		';

		

		
		if (Dsq.jsonData.request.is_moderator) { 
			html = ' \
			<div class="dsq-alert-message dsq-upgrade-message"> \
				<strong>Disqus upgrade available.</strong> Hi ' + Dsq.jsonData.request.display_username + ', this message is being displayed to you because you are a moderator of this site. <a href="#" onclick="Dsq.$(\'dsq-upgrade-message\').style.display=\'block\';this.style.display=\'none\';return false">Click here for details.</a> \
				<div style="display:none; margin-top:10px;" id="dsq-upgrade-message"> \
					A new theme is available with added features. <a href="http://disqus.com/comments/settings/' + Dsq.jsonData.forum.url + '/?p=customize">To change your theme, click here</a> and choose the theme Narcissus. \
					If you do not upgrade, you are missing out on features such as: real-time commenting, new sign-in integrations, and an upgrade interface. \
				</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>\
	 <button type="button" class="dsq-button-small dsq-paginate-all-button" onclick="Dsq.Thread.paginate(Dsq.jsonData.request.page + 1, this, 0);">Show all 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://digitaltrends.disqus.com/faulty_sony_ccds_fail_in_dozens_of_cameras/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.cookieFailure = function(post_id) {
		if (Dsq.jsonData.request.is_authenticated || !Dsq.Utils.gecko) {
			// If the user is logged in, we can ignore the cookie failure.
			return;
		}

		var pid = post_id ? '-' + post_id : '';
		var dsq_auth = Dsq.$('dsq-authenticate' + pid);
		var cookie_warning = document.createElement('div');
		cookie_warning.innerHTML = ' \
			<p class="dsq-alert-message dsq-error"> \
				<strong>Warning:</strong> A browser setting is preventing you from logging in. <a href="#" onclick="Dsq.Popup.helpLogin(); return false">Fix this setting to log in</a>. \
			</p>';
		dsq_auth.appendChild(cookie_warning);
	};

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

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

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

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

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

		return '<h3 class="dsq-h3-reactions">Reactions</h3><ul id="dsq-reactions" class="dsq-reactions">' + html + '</ul>';
	};
	
	this.missingPermissions = function() {
		return '';
	};

	//
	// Post
	//

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

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

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

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

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

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

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

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

		return ''
			+ (_meta.author_is_moderator
				? '<img class="dsq-mod-star" src="http://mediacdn.disqus.com/1001/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 Digital Trends" onclick="Dsq.Popup.helpBadges(); return false">Optional:</a> \
								 \
								<img class="dsq-login-icon" src="http://mediacdn.disqus.com/1001/images/dsq-favicon-16x16.png" alt="" /> \
								<a id="dsq-reply-login-' + post_id + '" href="http://disqus.com/profile/login/?next=article:44036312" 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://mediacdn.disqus.com/1001/images/twitter-signin-icon.png" alt="" /> \
									<a href="#" onclick="Dsq.Twitter.startTwitterConnect(); return false">Sign-in</a> \
								 \
								&nbsp;or&nbsp; \
									 <img src="http://mediacdn.disqus.com/1001/images/openid-login-icon.png" alt="" /> \
									 <a href="#" onclick="Dsq.OpenID.requestURL(); return false">OpenID</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'				: 'digitaltrends',
			't'				: 'faulty_sony_ccds_fail_in_dozens_of_cameras',
			// 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://mediacdn.disqus.com/1001/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://mediacdn.disqus.com/1001/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://mediacdn.disqus.com/1001/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://mediacdn.disqus.com/1001/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);
			}

			// insert post as a sibling after dsq-append-post-{id}
			node.parentNode.insertBefore(div, node.nextSibling);
		}
	};

	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://mediacdn.disqus.com/1001/images/loading-small.gif">';
            }

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

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

	this.showParent = function(id) {
		var author = Dsq.$('dsq-author-user-' + id).innerHTML;
		var post = Dsq.$('dsq-comment-message-' + id).innerHTML;
		
		post += '<br /><br /><a href="#comment-' + id + '">Jump to comment</a>';
		
		Dsq.Popup.popModal(post, author + ' said...', id);
	}

	this.report = function(id, confirmed) {
		if(confirmed) {
			Dsq.Utils.postToUrl('http://disqus.com/forums/digitaltrends/faulty_sony_ccds_fail_in_dozens_of_cameras/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://mediacdn.disqus.com/1001/images/loading-small.gif">';
		
		if(el_clicked) {
			el_clicked.style.display = 'none';
		}
		
		Dsq.Utils.execScript('http://disqus.com/forums/digitaltrends/thread.js'
			+ '?slug='	+ 'faulty_sony_ccds_fail_in_dozens_of_cameras'
			+ '&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/digitaltrends/thread.js'
			+ '?slug='	+ 'faulty_sony_ccds_fail_in_dozens_of_cameras'
			+ '&sort='	+ sort
			+ '&title='
			+ '&'		+ disqus_date.getTime();

		Dsq.$('dsq-comments').innerHTML = '<img src="http://mediacdn.disqus.com/1001/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/digitaltrends/subscribe.js'
				+'?status=' 	+ status
				+ '&slug='		+ 'faulty_sony_ccds_fail_in_dozens_of_cameras'
				+ '&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 = '<div class="dsq-moderate-options"> \
					<span id="dsq-thread-settings-status" class="dsq-options-status"></span> \
						<table class="dsq-moderator-settings"> \
							<tr> \
								<td><strong>Automatic Closing</strong></td> \
								<td>Do not allow comments after <input size="3" id="dsq-thread-days-alive" value="' + Dsq.jsonData.thread.days_alive + '" type="text" /> days. Using 0 days will disable this feature.<br /><br /> \
								<p class="dsq-form-actions"><button type="button" onclick="Dsq.Thread.updateDaysAlive();" class="dsq-button-small"><span>Save</span></button></p> \
								</td> \
							</tr> \
							<tr> \
								<td class="last"><strong>Moderate all comments</strong></td> \
								<td class="last"><input type="radio" id="dsq-thread-moderate-all" name="moderate_all_comments" value="1" ' + (Dsq.jsonData.thread.moderate_all ? 'checked="true"' : '') + ' />\
										<label><strong>Yes</strong>, moderators must approve all comments before they are published.</label> <br/><br/>\
										<input type="radio" name="moderate_all_comments" value="0" ' + (Dsq.jsonData.thread.moderate_all ? '' : 'checked="true"') + ' />\
										<label><strong>No</strong>, comments don\'t need to be approved before they are published.<label>\
										<p class="dsq-form-actions"><button type="button" onclick="Dsq.Thread.updateModerateAll();" class="dsq-button-small"><span>Save</span></button></p> \
								</td> \
							</tr> \
						</table> \
					</div> \
					Go to the main <a href="' + Dsq.jsonData.settings.disqus_url + '/comments/settings/' + Dsq.jsonData.forum.url + '" target="_blank">settings page</a> for more options.'
					+ '';

		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="' + Dsq.jsonData.settings.disqus_url + '/comments/moderate-threads/' + Dsq.jsonData.forum.url + '" target="_blank">moderate panel</a> for more options.</p>';
      Dsq.Popup.popModal(html, Dsq.Strings.MODERATE_OPTIONS);
  };

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

		var html = '<ul class="dsq-thread-help">';

		if (Dsq.jsonData.forum.reactions_enabled) {
			html += '<li><a href="#" onclick="Dsq.Reaction.reportMissingReactions(); return false;">'
						+ Dsq.Strings.REPORT_MISSING_REACTIONS
						+ '</a> \
						<p>Are you expecting Reactions for this thread, but do not see them? Select this option to tell the system to search again.</p> \
						</li>';
		}

		html += '<li> \
			<a href="' + Dsq.jsonData.settings.disqus_url + '/help/" target="_blank">' + Dsq.Strings.CONTACT_SUPPORT + '</a> \
			<p>For any other issues, please let us know.</p> \
			</li> \
		';
		html += '</ul>';
		Dsq.Popup.popModal(html, Dsq.Strings.HELP);
	};

	this.showMediaEmbed = function() {
			var wrapper = '<div id="dsq-media-embed-%(post)s" class="dsq-media-embed">'
												+ '<h4>Attached files</h4>'
									+ '</div>';
      var thumbnail = '<a href="#" onclick="Dsq.Thread.expandMediaEmbed(%(pos)s); return false;">'
                        + '<img src="%(imgurl)s" style="width:75px;height:75px;"/>'
                    + '</a>';

			var getElement = function(postid) {
					var el = document.getElementById('dsq-media-embed-' + postid);
					if (el) return el;
					var parent = document.getElementById('dsq-comment-body-' + postid);
					parent.innerHTML += Dsq.Utils.interpolate(wrapper, {'post': postid});
					return getElement(postid);
			};

			for (var i = 0, media; media = Dsq.jsonData.mediaembed[i]; i++) {
					var el = getElement(media['post']);
					switch(media['type']) {
					case 1: // Image
              el.innerHTML += Dsq.Utils.interpolate(thumbnail,
									{'pos': i, 'imgurl': Dsq.jsonData.uploads_url + '/' + media['metadata']['thumbnail'] + '/cached75.jpg'});
							break;
					case 2: // YouTube
					case 4: // Flickr
							el.innerHTML += Dsq.Utils.interpolate(thumbnail,
									{'pos': i, 'imgurl': media['metadata']['thumbnail']});
					}
			}
	};

	this.expandMediaEmbed = function(pos) {
			var youtube_embed = '<div style="width:480px;height:385px;"><object width="480" height="385">'
													+ '<param name="movie" value="http://www.youtube.com/v/%(videoid)s&hl=en_US&fs=1&"></param>'
													+ '<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>'
													+ '<embed src="http://www.youtube.com/v/%(videoid)s&hl=en_US&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed>'
												+ '</object></div>';

			var media = Dsq.jsonData.mediaembed[pos];
			var html = '';

			switch(media['type']) {
			case 1: // Image
					html = '<p><img src="' + media['location'] + '" onload="Dsq.Popup.position();" /></p>';
					html += '<p><a href="' + media['location'] + '" target="_blank">Original</a></p>';
					break;
			case 2: // YouTube
					html = Dsq.Utils.interpolate(youtube_embed, {'videoid': media['location']});
					break;
			case 4: // Flickr
					html = '<p><img src="' + media['metadata']['medium'] + '" onload="Dsq.Popup.position();" /></p>';
					html += '<p><a href="' + media['metadata']['url'] + '" target="_blank">Original</a></p>';
			}

			Dsq.Popup.popModal(html, 'Attached file', null, true, 'dsq-media-embed');
	};

	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/digitaltrends/update_days_alive.js', {days:days,thread:Dsq.jsonData.thread.id});
		  status.innerHTML = 'Saved!';
		  window.setTimeout(function() { status.innerHTML = ''; }, 1000);
	};

	this.updateModerateAll = function() {
			var value = (Dsq.$('dsq-thread-moderate-all').checked ? 1 : 0);
		  var status = Dsq.$('dsq-thread-settings-status');
			Dsq.Utils.postToUrl('http://disqus.com/forums/digitaltrends/update_moderate_all.js', {value:value,thread:Dsq.jsonData.thread.id});
			status.innerHTML = 'Saved!';
			window.setTimeout(function() { status.innerHTML = ''; }, 1000);
	};

  this.toggleClosed = function() {
      Dsq.Utils.postToUrl('http://disqus.com/forums/digitaltrends/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/digitaltrends/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() {
		var alerts = Dsq.Utils.getElementsByClassName(Dsq.$('dsq-content'), 'div', 'dsq-realtime-alert');		
		for (var i = 0; i < alerts.length; i++) {
			
			alerts[i].style.display = new_posts.length ? 'block' : 'none';
			alerts[i].innerHTML = new_posts.length
			+ ' new '
			+ Dsq.Utils.pluralize(new_posts.length, 'comment', 'comments')
			+ Dsq.Utils.pluralize(new_posts.length, ' was', ' were')
			+ ' just posted.';
			
			alerts[i].innerHTML += ' <a href="#" onclick="Dsq.Realtime.show(); return false">(' + Dsq.Strings.SHOW + ')</a>';
		}
	}

	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) {
				updateNewPostCount();
			}
			if (Dsq.jsonData.thread.realtime_rate == 0 || Dsq.jsonData.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/44036312/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/digitaltrends/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/digitaltrends/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://mediacdn.disqus.com/1001/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-25245542">\
	 <div id="dsq-comment-header-25245542" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245542" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245542">Steve Drewes</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245542" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245542" class="dsq-comment-message">I have a digital camera bearing the "Medion" brand name.  The camera uses a 4.1 MP Sony sensor chip which has failed.  Medion, unlike reputable manufacturers, has opted to ignore this Sony chip problem.  It&#039;s policy is that if the camera is over a year old they don&#039;t want to hear about it.  Any suggestions?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245543">\
	 <div id="dsq-comment-header-25245543" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245543" class="dsq-comment-cite">\
	 <a id="dsq-author-user-25245543" href="http://www.digitaltrends.com/" target="_blank" rel="nofollow">Ian Bell</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245543" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245543" class="dsq-comment-message">Tell Meridion that you will report them to the BBB and the Attorney General. That will turn some heads ;)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245567">\
	 <div id="dsq-comment-header-25245567" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245567" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245567">Steve Schaut</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245567" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245567" class="dsq-comment-message">I own a Nikon Coolpix 5400, which has started showing the exact same imaging problems as other camera makes using Sony CCDs. This camera uses the same SuperHAD (Hole Accumulation Diode) 1/1.8", 5.2 MP CCD as does the Sony Cybershot DSC-V1 camera (which is listed as an affected product). However, the Nikon service advisory does NOT include the Coolpix 5400 camera in there list of cameras in the service advisory). So Nikon will not authorize a CCD replacement, but told me to send my camera in for "evaluation".<br  /><br><br  /><br>With all the cover-up and no RECALL announcement, how can I trust Nikon with this "evaluation", when they can instead blame something else and charge me for repairs?<br  /><br><br  /><br>I tried contacting Sony, but if it&#039;s not one of their cameras, they won&#039;t even send me a replacement CCD (which is just as well--it might be from the same defective batches).<br  /><br><br  /><br>Frustrating!<br  /><br><br  /><br>Which camera manufacturere are there that do NOT, never have, and never will use Sony CCDs?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245568">\
	 <div id="dsq-comment-header-25245568" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245568" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245568">A George</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245568" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245568" class="dsq-comment-message">My 18 month old Nikon 5400 just started to have imaging problems. The problem is identical to the other Nikons with a service advisory. I have to beleive this camera also has the defective SONY CCD. My dilema is wether to repair it or buy a new one. This is my last Nikon.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245569">\
	 <div id="dsq-comment-header-25245569" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245569" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245569">Tom</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245569" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245569" class="dsq-comment-message">This needs to be esculated to someone higher on the food chain, I contacted Nikon USA today, went through the contless steps of turning on and off my camera removing the memory card, etc. Nikon stated that I will need to send this in,  then be left wondering if I will have to pay for this?  Let alone look for my "Proof of Purchase."  Great Customer Service Nikon!<br  /><br><br  /><br>Regards<br  /><br>Tom</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245570">\
	 <div id="dsq-comment-header-25245570" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245570" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245570">AGeorge</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245570" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245570" class="dsq-comment-message">An update on my Nikon 5400. I finally sent my camera to Nikon Service and they have agreed to fix it at no charge. Bottom line, even though Nikon does not  have a service advisory on the 5400, I beleive they will fix it for free since it&#039;s a known CCD issue. I retract my comment on not purchasing another Nikon.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245571">\
	 <div id="dsq-comment-header-25245571" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245571" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245571">owen</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245571" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245571" class="dsq-comment-message">AGeorge, i&#039;d appreciate some guidance on your repair experience.  who did you contact? how? i see nothing about this on the nikon site. i dearly loved my 5400 until it let me down this past weekend at the beach. yeah it was hot and humid, apparently perfect for melting CCDs.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245566">\
	 <div id="dsq-comment-header-25245566" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245566" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245566">Susan</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245566" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245566" class="dsq-comment-message">Gentlemen, I am also going through this with Nikon in regards to my Coolpix 5400.  I called them, was given information to send the camera in advising them that I did not have the proof the purchase as it was gift.  Sent the camera in exactly the way the told me to, recieved my &#039;service order&#039; stating I did not send the flash card or the battery (which I did because I was told to) and the cost to me will be $162.50.  I called them back and now have to wait to find out if they will repair/replace the camera under warranty.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245565">\
	 <div id="dsq-comment-header-25245565" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245565" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245565">Ginette</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245565" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245565" class="dsq-comment-message">I own a Nikon Coolpix 5400, which has started showing the exact same imaging problems as other camera makes using Sony CCDs. But NIKON FRANCE says us that it&#039;s not in the list. Are we sure that the CCD is the same as the sony Cybershot DSC-V1. Where we can find this information.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245564">\
	 <div id="dsq-comment-header-25245564" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245564" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245564">Vishant</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245564" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245564" class="dsq-comment-message">Hi, My 18 month old 5400 coolpix also started displaying the same CCD symptoms. Per advice from Nikon support, I sent the camera for evaluation and now they are asking me for $173 for repairs. I have seen several users report on imaging forums that they managed to get Nikon to fix their 5400 for free for the same CCD issue. Whom should we contact? Whats the process to be followed. It is ironic that Nikon is asking us to pay for faulty parts that were put in our camera&#039;s.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245563">\
	 <div id="dsq-comment-header-25245563" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245563" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245563">Chris Jaschick</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245563" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245563" class="dsq-comment-message">I am experiencing the same problem with my 18 month old camera. I call Nikon and ref Ans. ID 13688. Even though its the exact same they will not honor and fix. I think it is time to initiate a class action suit against Nikon.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245562">\
	 <div id="dsq-comment-header-25245562" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245562" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245562">Steve McNeil</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245562" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245562" class="dsq-comment-message">I shipped my Nikon coolpix off to Nikon about 8 days ago and I received a letter advising me the estimated repair would cost $170.00. I call their tool free number and complained to the service representative that I was well aware of the problems Nikon and Sony were having with the CCDs and that I wanted my camera repaired at not charge. Of course the service rep said he could not promise anything however my concerns would be relayed to the appropriate management for resolution. I for one will definitley vote with my dollars if Nikon (a multi-millon dollar conglomerate) refuses to make the repair at no charge to me. Hopefully Nikon is not going the way of some other legendary manufactures who try to survive on their name only versus backing up their product when they know there is a possible defect in the manufacturing process (i.e. bad/defective CCDs).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245561">\
	 <div id="dsq-comment-header-25245561" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245561" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245561">Rafael M</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245561" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245561" class="dsq-comment-message">My FujiFilm F700 is one on the list as well. Purchased 2 years ago this month, the CCD went bad on me one week before Christmas. I called Fuji and they told me to send it in. My serial # is not in the range of the bad chips but it is the same exact problem. Hopefully they&#039;ll fix it. The camera has been great up to the chip going bad. I could use this camera for another few years as it has everything that I need. Do you have any feedback as to lifespan of the new CCD chips?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245558">\
	 <div id="dsq-comment-header-25245558" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245558" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245558">Dave Miles</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245558" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245558" class="dsq-comment-message">my very well cared for little used nikon coolpix 5400 recently started producing pictures that are just a lot of horizontal lines. I phoned nikon about this they were not helpful and insisted that they did not have any problems with this model. DO YOU KNOW OF ANY PROBLEMS WITH THIS MODEL</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245557">\
	 <div id="dsq-comment-header-25245557" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245557" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245557">sam chicken</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245557" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245557" class="dsq-comment-message">I too have an 18 month old Nikon CP-5400 with the same black image/no image problem most likely due to a defective CCD.  It seems this is beyond a common problem with this camera from looking at various camera forums. I believe a class action suit is in order as I don&#039;t want to pay $170 back to Nikon for their making a defective camera.....I was a previous Minolta owner on the SLR side, but now that they have sold the camera business to Sony I may have to consider Canon as Sony and Nikon don;&#039;t seem to stand behind their product lines.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245556">\
	 <div id="dsq-comment-header-25245556" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245556" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245556">Ginette</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245556" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245556" class="dsq-comment-message">Only today I received an answer from Nikon France, they ask me 201,79 € to repair, but I don&#039;t know that they will do, it&#039;s a fixed rate.<br  /><br>The life of this camera is two years</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245555">\
	 <div id="dsq-comment-header-25245555" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245555" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245555">ken Russel-Jones</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245555" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245555" class="dsq-comment-message">Can anyone say when this fault was first made public?<br  /><br>My Nikon 5700 has just developed the same problem and I&#039;m pursuing this with the seller under UK Trading Standards, so far, the firm doesn&#039;t want to know and deny all knowledge of this problem claiming they have sold hundreds without a single complaint. I bet!<br  /><br>krj</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245553">\
	 <div id="dsq-comment-header-25245553" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245553" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245553">Jules</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245553" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245553" class="dsq-comment-message">Regarding the 5400 dead CCD issue:<br  /><br><br  /><br>I too contacted Nikon USA Support.  They asked that I send in the camera. I was then informed that it would be $150 to repair (via their very cool support website that allows one to check on the status of their camera).<br  /><br><br  /><br>I responded with several links to sites discussing the 5400/dead CCD issue, as well as several links to dead 5400&#039;s on eBay that had the same symptoms. I told them that there was clearly a problem with the 5400 CCDs and that the repair ought to be free.  <br  /><br><br  /><br>Support sent me a note saying that the 5400 is not part of the Service Advisory Program.  <br  /><br><br  /><br>I responded with the links again (plus a few more) and requested that I be escalated to a higher level before I sought 3rd-party assistance.  <br  /><br><br  /><br>They sent me back word that the camera would be repaired free of charge in the interest of good customer relations.  They did repair the camera and shipped it back - no charge.<br  /><br><br  /><br>Do your research, be polite, be persistent.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245549">\
	 <div id="dsq-comment-header-25245549" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245549" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245549">Tony</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245549" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245549" class="dsq-comment-message">Same problem showed up on my Panasonic <br  /><br>NV-GS200 The local authorised repairer replaced the chip at no charge after approval from Panasonic.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245547">\
	 <div id="dsq-comment-header-25245547" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245547" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245547">maniny</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245547" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245547" class="dsq-comment-message">Same problem with Nikon 5400. Answare from Nikon service europe-have to pay 160 pounds.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245548">\
	 <div id="dsq-comment-header-25245548" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245548" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245548">Edwin</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245548" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245548" class="dsq-comment-message">My Sony DSC f-717 started doing the same thing.  Sending it off to Sony today.  I&#039;ve removed the battery, memory card, straps, lens cover, etc.<br  /><br><br  /><br>I&#039;m not sure if they are going to send me mine back, repaired, or send me another unit already repaired. <br  /><br><br  /><br>Fingers crossed.   Mines in excellent condition otherwise.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245546">\
	 <div id="dsq-comment-header-25245546" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245546" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245546">cameraengineer</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245546" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245546" class="dsq-comment-message">hi folks<br  /><br>the problem with imager breakdown is on a truly<br  /><br>massive scale i have replaced hundreds of them<br  /><br>in various brands of movie and still camera.<br  /><br>the worst offenders seem to be sony canon jvc<br  /><br>minolta, panasonic to a lesser extent and various others.<br  /><br>some manufactures seem happy to let their service repair agents do the work others doggedly want all of them back to repair themselves.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245544">\
	 <div id="dsq-comment-header-25245544" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245544" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245544">Steven McNeil</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245544" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245544" class="dsq-comment-message">This is an update to my comments dated 18 Dec 06 (5:15 pm). I received my Nikon 5400 in the mail last week and it is working again flawlessly. I have put it through its paces for the last 6 days and it works like it just came off the assembly line. Nikon will stand by thier product and make the repair "Complimentary" provided you stick by your guns. Power to the consumer!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245545">\
	 <div id="dsq-comment-header-25245545" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245545" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245545">David</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245545" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245545" class="dsq-comment-message">I have a problem with my Canon Digital IXUS II. The problem is that the image that i want to take out is not appearing on the LCD screen. However, the previous photos that i have taken can be viewed on the replay mode. Is this a sensor problem? Can you please advise on this situation?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245572">\
	 <div id="dsq-comment-header-25245572" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245572" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245572">Liam</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245572" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245572" class="dsq-comment-message">-in response to cameraengineer&#039;s comments - Jan 23rd, 2007 at 6:30 AM. <br  /><br><br  /><br>i have a JVC GR-DX95EK DV cam. The image is horizontally streaky. is this a problem with the sony chip? should i contact JVC or Sony? <br  /><br>The camera is way out of warinty. <br  /><br>Any ideas? Thank you for your help.<br  /></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245573">\
	 <div id="dsq-comment-header-25245573" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245573" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245573">Sylvie</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245573" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245573" class="dsq-comment-message">Hello,<br  /><br>I have a canon Ixus 700, one night i was using it with no problem and the day after, when I wanted to look at the pictures taken, the screen was just white, impossible to replay anything. Then I tried to shoot pictures, same problem, the screen wouldn&#039;t show anything.<br  /><br>I&#039;m going to contact Canon, and I hope they&#039;ll do something about it. My camera is only 18 months old.<br  /><br>Anybody having that camera experiencing the same problem?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245574">\
	 <div id="dsq-comment-header-25245574" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245574" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245574">Onesmus Imbili</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245574" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245574" class="dsq-comment-message">I have a sony DSC P12, that I bought in 2003. Since the whole of last year I didn&#039;t use it bescause the same problem mentioned above. Now since I am not in position of the receit as prove purchase what must do. Where should I send it for repair since I am not residing the in the country were I bought it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245576">\
	 <div id="dsq-comment-header-25245576" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245576" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245576">Rick Broussard</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245576" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245576" class="dsq-comment-message">Image is blurry</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245575">\
	 <div id="dsq-comment-header-25245575" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245575" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245575">Rick Broussard</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245575" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245575" class="dsq-comment-message">Image is blurry!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245577">\
	 <div id="dsq-comment-header-25245577" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245577" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245577">Bob Emmerich</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245577" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245577" class="dsq-comment-message">I find it interesting how this is a year old story from 2005 but many of these comments are from late 2006 and early 2007. I have a JVC GR-D33US which just developed this problem yesterday. Here&#039;s a link to JVCs site:<br  /><br> <a href="http://www.jvcservice.com/service/custnoticecamcorder.asp?ReqType=CCD" title="http://www.jvcservice.com/service/custnoticecamcorder.asp?ReqType=CCD" target="_blank" rel="nofollow">http://www.jvcservice.com/service/custnoticecamcor...</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245578">\
	 <div id="dsq-comment-header-25245578" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245578" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245578">Liam</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245578" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245578" class="dsq-comment-message">i have the problem with my jvc camera but i live in the UK. the site says US only, is it a us manufacture problem?<br  /><br>cheers<br  /><br>liam</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245579">\
	 <div id="dsq-comment-header-25245579" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245579" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245579">kim</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245579" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245579" class="dsq-comment-message">I purchase a konica minolta dimage e40 digital camera in April, 2005 and in November, 2006 the camera shows distorted pictures.  I have asked Sony if this camera is also under warranty since they took over Konica and they said "no" because it wasn&#039;t one that is listed.  It appears to me that the camera also has a faulty ccd and they are not willing to warranty this one.  Not sure why they wouldn&#039;t as this is not good for Sony&#039;s reputation.  All Konica Minolta products should be under warranty and not just some.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245580">\
	 <div id="dsq-comment-header-25245580" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245580" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245580">Edwin Graham</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245580" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245580" class="dsq-comment-message">I have a Nikon 5700  that has the same problems as expressed by others. Black screen with flickering lines running through it.<br  /><br>I have not used the camera for several months due to this problem. I( am encouraged by the feedback from other Nikon 5700 owners.<br  /><br>I will contact the Nikon repair facility on the 19th of March.<br  /><br>Ed Graham<br  /><br><br  /><br>I hope they are accepting responsibility for this fiasco CCD and will make repairs for free.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245582">\
	 <div id="dsq-comment-header-25245582" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245582" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245582">Serg</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245582" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245582" class="dsq-comment-message">I have the camera Sony DSC F-717. About one year ago it started doing the same thing. I didn&#039;t know what happened. Now I guess the problem is a defective CCD.<br  /><br>Where should I send it for repair? I live in Tulsa, Oklahoma. Thanks!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245583">\
	 <div id="dsq-comment-header-25245583" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245583" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245583">Serg</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245583" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245583" class="dsq-comment-message">I have the camera Sony DSC F-717. About one year ago it started doing the same thing. I didn&#039;t know what happened. Now I guess the problem is a defective CCD.<br  /><br>Where should I send it for repair? I live in Tulsa, Oklahoma.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245584">\
	 <div id="dsq-comment-header-25245584" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245584" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245584">Serg</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245584" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245584" class="dsq-comment-message">Hey, I&#039;v found some information for repair my SONY-DSC717. If you need it, you can check it here:<br  /><br> <a href="http://www.sonystyle.com/is-bin/INTERSHOP.enfinity/eCS/Store/en/-/USD/SY_ViewStatic-Start?page=%2fstatic/legalNotice/legalNotice#faq" title="http://www.sonystyle.com/is-bin/INTERSHOP.enfinity/eCS/Store/en/-/USD/SY_ViewStatic-Start?page=%2fstatic/legalNotice/legalNotice#faq" target="_blank" rel="nofollow">http://www.sonystyle.com/is-bin/INTERSHOP.enfinity...</a><br  /><br>or<br  /><br> <a href="http://esupport.sony.com/perl/news-item.pl?template=EN&news_id=118" title="http://esupport.sony.com/perl/news-item.pl?template=EN&news_id=118" target="_blank" rel="nofollow">http://esupport.sony.com/perl/news-item.pl?templat...</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245585">\
	 <div id="dsq-comment-header-25245585" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245585" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245585">Steve</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245585" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245585" class="dsq-comment-message">Has anyone had this problem with a HP Photosmart 935 ?<br  /><br><br  /><br>Thanks</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245586">\
	 <div id="dsq-comment-header-25245586" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245586" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245586">Carleigh McCabe</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245586" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245586" class="dsq-comment-message">I have a Canon Digital IXUS IIs. A nice purplish haze on the lcd with the pics to prove it. This explains why the Canon site was so ******* helpful. Jerks.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245587">\
	 <div id="dsq-comment-header-25245587" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245587" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245587">Rod Letts</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245587" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245587" class="dsq-comment-message">My Sony DSC-F717 has developed the CCD fault.<br  /><br>I have contacted Sony Australia and will post the outcome of this dilemma. Otherwise a great camera.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245589">\
	 <div id="dsq-comment-header-25245589" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245589" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245589">Vanessa</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245589" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245589" class="dsq-comment-message">My Nikon Coolpix 5700 started producing the strange pics with the white lines through it a couple of months ago & I kept putting it off to get repaired as I thought it would cost me a fortune. Took it to the Nikon repair centre (Camera Clinic) in Collingwood (Melb, Australia) and they immediately told me it was a fault with the image sensor and they will repair it free of charge. Why didn&#039;t I go there earlier!!? LOL Great Service :-)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245591">\
	 <div id="dsq-comment-header-25245591" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245591" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245591">B. Hathaway</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245591" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245591" class="dsq-comment-message">Fuji Finepix S7000 - July 5, 2007  Today the CCD on the camera developed horizontal white lines, and then big distortions like waves with fringe.  Purple and green when saved.  The warranty has expired. Does anyone know if it can be repaired, or how much it costs?  <br  /><br>Thanks for any info at all, Barb<br  /></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245593">\
	 <div id="dsq-comment-header-25245593" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245593" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245593">Rod Letts</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245593" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245593" class="dsq-comment-message">My Sony DSC-F717 camera had a CCD failure. Sony Australia sent my to their service agents here in Melbourne and the CCD was replaced at no charge. I agreed to pay $80 for a clean and general service while the camera was dissasembled. The work was carried out as agreed and the camera is working really well, I would like to thank Sony and European Electronics for their prompt and professional service, (not always easy to get in this day and age). Rod Letts</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245596">\
	 <div id="dsq-comment-header-25245596" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245596" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245596">Howard Gourley</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245596" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245596" class="dsq-comment-message">I have a Sony DSC-F717 Cyber-Shot That just sitting in the closet it now just has a blur on the LCD, sometimes will show picture taken at a earlier time. Help Howard</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245598">\
	 <div id="dsq-comment-header-25245598" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245598" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245598">Janice Howell</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245598" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245598" class="dsq-comment-message">Canon powershot s230 failed while camping in hot humid environment - distorted images with blotches/waves of purple/green hues - known good images will display normally on screen. Was going to discard camera but decided to google problem and ended up at canon web site (USA) they have advisory for this CCD failure.  I communicated by email at <a href="mailto:carecenter@cits.canon.com" rel="nofollow">carecenter@cits.canon.com</a> (they also have 800 number) response was quick and they sent prepaid label thru email - they will repair and pay for shipping, regardless of warrenty or proof of purchase.  I received repair number for tracking and estimate is 7-10 days - I am sort of hoping they will just send new camera as I have heard this may happen.  Include battery/sd card as per instructions on repair order.  Many major brands are affected by this sensor failure especially apparently in hot humid environments - so check online before you throw out you digital camera. Hope this helps, Janice</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245599">\
	 <div id="dsq-comment-header-25245599" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245599" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245599">Bob</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245599" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245599" class="dsq-comment-message">I had the exact same problem as Janice. Canon Powershot S230. Same procedure, got free shipping label, they said they would fix it and return it. Finally got it shipped back to find they replaced it with a refurbished SD630. I can&#039;t complain. It&#039;s a 3 year newer camera. Only problem is the SD630 uses SD memory instead of compact flash, so I had to buy a bigger SD memory, although it came with a 16MB SD card and battery, etc. Anyway, great customer service. I&#039;d definitely buy Canon again!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245600">\
	 <div id="dsq-comment-header-25245600" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245600" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245600">Janice Howell</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245600" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245600" class="dsq-comment-message">In response to Bob on Aug 31st, 2007 at 12:17 AM<br  /><br>Did it take long to get camera returned?<br  /><br>Took a look at the SD630 - it sure looks like a nicer camera than the S230 - except for the plastic case.  Hope they replace mine for this one.  Happy shooting.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245606">\
	 <div id="dsq-comment-header-25245606" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245606" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245606">graham hills</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245606" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245606" class="dsq-comment-message">Re Barbs problem with the Fuji S7000: if re-chargeable Ni-MH batteries are being used discharge them using the camera facilities and then re-charge/discharge/re-charge them. This worked for me, good luck.<br  /><br><br  /><br>Regards<br  /><br><br  /><br>Fenman</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245603">\
	 <div id="dsq-comment-header-25245603" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245603" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245603">graham hills</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245603" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245603" class="dsq-comment-message">Re B Hathaway&#039;s Fuji S7000 problem: I seem to have resolved an identical problem by fully discharginging the Ni-MH re-chargeable batteries through the camera facility then re charging/discharging them again. Hope this works for you.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245608">\
	 <div id="dsq-comment-header-25245608" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245608" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245608">Tony</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245608" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245608" class="dsq-comment-message">I have a canon  PowerShot A70 that I purchased new  that  I dropped several days after purchasing back in 2004. The camera has worked flawlessly up until a few weeks ago when it started with the faulty CCD symptoms. The camera is in very good condition with the exception of a small crack in the case and now I wonder if Canon will tell me that this issue is due to the camera being dropped and not with the faulty CCD. Anyone have any advise?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245611">\
	 <div id="dsq-comment-header-25245611" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245611" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245611">Tony</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245611" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245611" class="dsq-comment-message">I have a canon  PowerShot A70 that I purchased new  that  I dropped several days after purchasing back in 2004. The camera has worked flawlessly up until a few weeks ago when it started with the faulty CCD symptoms. The camera is in very good condition with the exception of a small crack in the case and now I wonder if Canon will tell me that this issue is due to the camera being dropped and not with the faulty CCD. Anyone have any advise?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245610">\
	 <div id="dsq-comment-header-25245610" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245610" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245610">Tony</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245610" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245610" class="dsq-comment-message">I have a canon  PowerShot A70 that I purchased new  that  I dropped several days after purchasing back in 2004. The camera has worked flawlessly up until a few weeks ago when it started with the faulty CCD symptoms. The camera is in very good condition with the exception of a small crack in the case and now I wonder if Canon will tell me that this issue is due to the camera being dropped and not with the faulty CCD. Anyone have any advise?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245609">\
	 <div id="dsq-comment-header-25245609" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245609" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245609">Tony</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245609" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245609" class="dsq-comment-message">I have a canon  PowerShot A70 that I purchased new  that  I dropped several days after purchasing back in 2004. The camera has worked flawlessly up until a few weeks ago when it started with the faulty CCD symptoms. The camera is in very good condition with the exception of a small crack in the case and now I wonder if Canon will tell me that this issue is due to the camera being dropped and not with the faulty CCD. Anyone have any advise?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245614">\
	 <div id="dsq-comment-header-25245614" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245614" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245614">Jane</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245614" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245614" class="dsq-comment-message">Thank you for the article which has helped me understand the cause of  streaky dark pictures, missing images and strong wide purple green casts on my Sony Cyber-shot DSC-T1 5.0MP camera.  <br  /><br><br  /><br>The large number of cameras affected by the faulty CCD image sensor may help my pursuit of repairs from Sony in Australia.<br  /></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245617">\
	 <div id="dsq-comment-header-25245617" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245617" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245617">Margaret Mc</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245617" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245617" class="dsq-comment-message">Hi I have a Canon Powershot A70 which started getting lines across it and if you took the picture while it was like that they came out on the picture.  This was a while ago. But if you left it for about 5 minutes and tried again it went right. This gradually got worse and now it is all across all of the screen. We decided as we only use it occasionally to get another from ebay and when we started looking we found loads on there being sold for spares with the same fault. I did a search and came across this web site.  Did anyone get their Canon camera repaired and were they charged. Any further help on this please!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245613">\
	 <div id="dsq-comment-header-25245613" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245613" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245613">Pat</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245613" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245613" class="dsq-comment-message">I have had two cameras fail because of a black screen.  The first one was my Sony DSC-F717 Cyber-Shot Sony sent a shipping label and it was sent to Texas for repair. I was happy when it was returned as I really liked the camera.  I They repaired it June 2007.  June 2008 same problem Black screen on both the View finder and the LCD Screen which renders the camera useless.  Sony sent me a shipping label and the camera was returned June 3 2008 twenty nine pictures later the same problem.  Called Sony and they told me to take the battery out and push the reset button and I did and the camera worked for 10 minutes and the  black screen appeared again.  Sent the camera back for the third time and was promised a new replacement camera but since they didn&#039;t make the Sony DSC-F717 Cyber-Shot they would call me and tell me what type of camera they&#039;d sent.  I just got a UPS notification and they are shipping the camera back for the third time.  I don&#039;t think they are replacing the sensor chip with a redesigned part I think they are using the same bad chips.<br  /><br><br  /><br><br  /><br>The second camera I purchased in Oregon when the my Sony DSC-F717 Cyber-Shot failed the first time.   My husband and I had taken our two grandchildren for a once in a life time trip for us with these two grandchildren from Pa to Oregon in a camper.  So when the camera failed I purchased a Canon Poweshot S3IS.  I used it but for the remainder of the trip and when I got home and researched the Sony and found out about the trouble I contacted and that is when I sent my Sony back.  So I have been using the Sony and Canon switching back and forth with the cameras.  I have had this camera for about 18 months and last week when the Sony was in for the third time I went to use my Canon only to find it also was useless as it had a blacek screen.  I contacted Canon and was told they&#039;d send me a label.  Just got a response from Canon,  They  will repair it for $155.82 or get a refurbished one for $169.00.<br  /><br><br  /><br>I think they all need to stand behind their products<br  /><br>Pat<br  /><br>C <br  /></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245612">\
	 <div id="dsq-comment-header-25245612" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245612" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245612">Gareth</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245612" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245612" class="dsq-comment-message">Thanks for this informative thread and keeping it alive - my IXUS 500 CCD recently failed after a humid and hot trip in Phuket.  I now have purple lines across the top eighth of the image.  I went to the Canon pages and was offered the option to take my Canon to a repairer for free and they will repair:<br  /><br><br  /><br>"Thank you for using one of our Canon products.<br  /><br>It has been found, that in rare case, some of the CCDs, used in Canon digital camera and digital video cameras, have a problem that causes abnormal image output.<br  /><br><br  /><br>We apologise for any inconvenience this may have caused. Canon will offer free repairs where an error is caused by this malfunction.<br  /><br><br  /><br>Canon would like to advise our customers of the details of this issue and our policy for handling it.<br  /><br><br  /><br>Problem details: <br  /><br>Among the CCDs used in the affected products, it has been confirmed that in extremely rare cases, under high-temperature/high-humidity environments, some of the internal wiring comes off.<br  /><br><br  /><br>If this defect occurs, the signal is not output from the CCD correctly when in shooting mode. This results in image abnormalities such as: <br  /><br>Images do not appear<br  /><br>Image colors are abnormal<br  /><br>Images appear distorted<br  /><br>These symptoms can be confirmed on the LCD monitor.<br  /><br>Solution: <br  /><br>We kindly request users who have confirmed these symptoms to contact the nearest Canon Service Centre.<br  /><br><br  /><br>Free repairs will be made for affected products in cases where it has been confirmed that the internal CCD wiring has come off.<br  /><br>Last modified date: 07-Jun-07"<br  /><br><br  /><br>Thank you again - I&#039;m off to a Canon repairer to hopefully get my otherwise solid IXUS fixed!<br  /><br><br  /><br>cheers<br  /><br>G</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245601">\
	 <div id="dsq-comment-header-25245601" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245601" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245601">Mark</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245601" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245601" class="dsq-comment-message">I have a Konica Minolta A1.  I rarely use the camera but when I do I need it.  Last year the problem with the bad CCD chip showed up in my camera.  I did not know of the CCD chip problem at the time.  A few months later I decided to see if I could get the camera fixed and was made aware of the defective CCD. I guess living in AZ it took longer to show up. <br  /><br>My problem is that I was never notified of this and now that I try to get it fixed, Sony says it will cost me $211 (flat fee).<br  /><br>It seems there was some settlement and the date for free fixes has lapsed.<br  /><br>Well I was not notified and I did not agree to the settlement.  Anyone know of another path to get the camera fixed?  I&#039;m looking at small claims court with the defendant being Konica Minolta but they are in Japan.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245597">\
	 <div id="dsq-comment-header-25245597" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245597" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245597">Lynne</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245597" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245597" class="dsq-comment-message">I have a Konica Minolta A1 bought May 2004  worked well until last November.  Didn&#039;t take in for repair until May of this year.  Then learned of the CCD problem.  Mine does not take photos and shows black screen.  But it is able to show previous photos on the memory card. Sent to local repair shop who sent back telling me part not available.  Then tried Sony who sent to Florida who also sent it back with comment UNREPAIRED DUE TO PARTS N/A.  But no one will tell me what part is not working and why they quit making parts for a camera that cost me over $800 Canadian less than 4 years ago.  How do I find out if it is the CCD or another part?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245615">\
	 <div id="dsq-comment-header-25245615" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245615" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245615">Chris</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245615" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245615" class="dsq-comment-message">My Canon IXUS IIs went faulty in August, unable to take new pics (strippy lines) but playback of old pics okay.<br  /><br><br  /><br>Saw the product advisory on the Canon product support web site so took Camera to authorised repair centre in Colchester.<br  /><br><br  /><br>They got in touch within a couple of weeks, unable to repair due to lack of replacement sensors, so offered a refurbished IXUS 70, replacement, free of charge!<br  /><br><br  /><br>Very happy! 7.1Mp camera, more features, looks brand new. Didn&#039;t cost a penny.<br  /><br><br  /><br>Would definitely buy Canon again!! <br  /><br><br  /></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245616">\
	 <div id="dsq-comment-header-25245616" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245616" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245616">Chris</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245616" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245616" class="dsq-comment-message">My Canon IXUS IIs went faulty in August, unable to take new pics (strippy lines) but playback of old pics okay.<br  /><br><br  /><br>Saw the product advisory on the Canon product support web site so took Camera to authorised repair centre in Colchester.<br  /><br><br  /><br>They got in touch within a couple of weeks, unable to repair due to lack of replacement sensors, so offered a refurbished IXUS 70, replacement, free of charge!<br  /><br><br  /><br>Very happy! 7.1Mp camera, more features, looks brand new. Didn&#039;t cost a penny.<br  /><br><br  /><br>Would definitely buy Canon again!! <br  /><br><br  /></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-25245595">\
	 <div id="dsq-comment-header-25245595" class="dsq-comment-header">\
	 <cite id="dsq-cite-25245595" class="dsq-comment-cite">\
	 <span id="dsq-author-user-25245595">Phil</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-25245595" class="dsq-comment-body">\
	 <div id="dsq-comment-message-25245595" class="dsq-comment-message">My Nikon Coolpix 5400 developed this fault with purple lines across the screen. Contacted Nikon and they responded in less than an hour with offer to repair for free and also sent this link. <br  /><br><br  /><br><a href="https://nikoneurope-en.custhelp.com/cgi-bin/nikoneurope_en.cfg/php/enduser/std_adp.php?p_faqid=20603&p_created=1167746942%3Cbr" rel="nofollow">https://nikoneurope-en.custhelp.com/cgi-bin/nik...</a>  /&gt;</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=digitaltrends&t=faulty_sony_ccds_fail_in_dozens_of_cameras&to_redirect=' + encodeURIComponent(window.location) + '&ifrs=' + encodeURIComponent(disqus_iframe_css);
			}
		}
	}

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

	


Dsq.Thread.showMediaEmbed();


	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 = 'f9e449f58a02107dc99306f0819d288c';
			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);
			}
		}
	});
}

})();




