




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": {"add01ac37bcdc2445a4ff0ea748ac624": {"username": "salmon bayer", "tumblr": "", "display_name": "salmon bayer", "url": "http://disqus.com/guest/add01ac37bcdc2445a4ff0ea748ac624/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "1b611674c1bce23db7d5f1b13ff490cd": {"username": "Richy", "tumblr": "", "display_name": "Richy", "url": "http://disqus.com/guest/1b611674c1bce23db7d5f1b13ff490cd/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "654e5753d5ee6cff3a3945cf12312418": {"username": "Laura", "tumblr": "", "display_name": "Laura", "url": "http://disqus.com/guest/654e5753d5ee6cff3a3945cf12312418/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "5fa4ec61a2ccf1c0b7bfdf3cfa133dc3": {"username": "m", "tumblr": "", "display_name": "m", "url": "http://disqus.com/guest/5fa4ec61a2ccf1c0b7bfdf3cfa133dc3/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "0d628cfc8d68ff6abb74a98c16741315": {"username": "Free Ballard 4 Real", "tumblr": "", "display_name": "Free Ballard 4 Real", "url": "http://disqus.com/guest/0d628cfc8d68ff6abb74a98c16741315/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "5ad57822a6812a9a7732f51f14b8ca64": {"username": "Richy", "tumblr": "", "display_name": "Richy", "url": "http://disqus.com/guest/5ad57822a6812a9a7732f51f14b8ca64/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3082374389efb0446bd18c1e59e99120": {"username": "linda", "tumblr": "", "display_name": "linda", "url": "http://disqus.com/guest/3082374389efb0446bd18c1e59e99120/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "76937764a69fa13217e23e023618a5ea": {"username": "Mario ", "tumblr": "", "display_name": "Mario ", "url": "http://disqus.com/guest/76937764a69fa13217e23e023618a5ea/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "173f09953e3cb4e4e31eae9f9152f93a": {"username": "pattr", "tumblr": "", "display_name": "pattr", "url": "http://disqus.com/guest/173f09953e3cb4e4e31eae9f9152f93a/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "5b8abab8a8e92d61737d0f8d1bc6fdfb": {"username": "Trix", "tumblr": "", "display_name": "Trix", "url": "http://disqus.com/guest/5b8abab8a8e92d61737d0f8d1bc6fdfb/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "af15d6e6fbc721fbede260179f6e4085": {"username": "randi", "tumblr": "", "display_name": "randi", "url": "http://disqus.com/guest/af15d6e6fbc721fbede260179f6e4085/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "72f2500c0d6ffc57eddbfcb0fd7609e8": {"username": "hilda", "tumblr": "", "display_name": "hilda", "url": "http://disqus.com/guest/72f2500c0d6ffc57eddbfcb0fd7609e8/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "f4969482a514dd24c2ef7adac384a2c1": {"username": "Reba", "tumblr": "", "display_name": "Reba", "url": "http://disqus.com/guest/f4969482a514dd24c2ef7adac384a2c1/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3f933ddf1ef164fbcdf4dea0779adf55": {"username": "Barfly", "tumblr": "", "display_name": "Barfly", "url": "http://disqus.com/guest/3f933ddf1ef164fbcdf4dea0779adf55/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "leavinglasballard": {"username": "leavinglasballard", "tumblr": "", "display_name": "leavinglasballard", "url": "http://disqus.com/leavinglasballard/", "registered": true, "linkedin": "", "blog": "", "remote_domain": null, "points": 26, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/40/235/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "18d41efbdce67a02689ed781ee681aa4": {"username": "Sad to see...", "tumblr": "", "display_name": "Sad to see...", "url": "http://disqus.com/guest/18d41efbdce67a02689ed781ee681aa4/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "d0c2ed5e324c78746e93f8552c66961e": {"username": "Aka", "tumblr": "", "display_name": "Aka", "url": "http://disqus.com/guest/d0c2ed5e324c78746e93f8552c66961e/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6f60f634b2673648c374e86eca939ef2": {"username": "Kathleen Cozens", "tumblr": "", "display_name": "Kathleen Cozens", "url": "http://disqus.com/guest/6f60f634b2673648c374e86eca939ef2/", "registered": false, "linkedin": "", "blog": "http://www.ballardcamera.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "Mondoman": {"username": "Mondoman", "tumblr": "", "display_name": "Mondoman", "url": "http://disqus.com/Mondoman/", "registered": true, "linkedin": "", "blog": "", "remote_domain": null, "points": 40, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "gooner": {"username": "gooner", "tumblr": "", "display_name": "gooner", "url": "http://disqus.com/gooner/", "registered": true, "linkedin": "", "blog": "", "remote_domain": null, "points": 17, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "13d2da715c36fd75e36a028e7201dd53": {"username": "pedal steel", "tumblr": "", "display_name": "pedal steel", "url": "http://disqus.com/guest/13d2da715c36fd75e36a028e7201dd53/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "d95eb2dd6e1e4411b2e39eb72461161c": {"username": "Billy the Kid", "tumblr": "", "display_name": "Billy the Kid", "url": "http://disqus.com/guest/d95eb2dd6e1e4411b2e39eb72461161c/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "a942be961905735cac935146ab1d22dc": {"username": "Old Camera &amp; Film Dog", "tumblr": "", "display_name": "Old Camera &amp; Film Dog", "url": "http://disqus.com/guest/a942be961905735cac935146ab1d22dc/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "0481d3ddf0af5db3fc5654e1cfdefd9f": {"username": "Blue Dog 505", "tumblr": "", "display_name": "Blue Dog 505", "url": "http://disqus.com/guest/0481d3ddf0af5db3fc5654e1cfdefd9f/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "ninaf": {"username": "ninaf", "tumblr": "", "display_name": "ninaf", "url": "http://disqus.com/ninaf/", "registered": true, "linkedin": "", "blog": "http://ninaforsyth.org", "remote_domain": null, "points": 5, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/27/5007/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "7e492acf49df5f0bd71bae545279fd7a": {"username": "Eileen", "tumblr": "", "display_name": "Eileen", "url": "http://disqus.com/guest/7e492acf49df5f0bd71bae545279fd7a/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "2c298eb22d7457b4d636a6c144fbc551": {"username": "Alfred", "tumblr": "", "display_name": "Alfred", "url": "http://disqus.com/guest/2c298eb22d7457b4d636a6c144fbc551/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6270ef4ddf193ca24e5fc01607332d05": {"username": "Grubby Ballard", "tumblr": "", "display_name": "Grubby Ballard", "url": "http://disqus.com/guest/6270ef4ddf193ca24e5fc01607332d05/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "1b9aaa71fa757c74ebb9ad9183ba94b4": {"username": "Mike", "tumblr": "", "display_name": "Mike", "url": "http://disqus.com/guest/1b9aaa71fa757c74ebb9ad9183ba94b4/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3ec54145c8b540ed721b3a2bc3725c03": {"username": "Watergirl", "tumblr": "", "display_name": "Watergirl", "url": "http://disqus.com/guest/3ec54145c8b540ed721b3a2bc3725c03/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "260b45c7dd359786d9c2034c1d9bde56": {"username": "Norm Gregory", "tumblr": "", "display_name": "Norm Gregory", "url": "http://disqus.com/guest/260b45c7dd359786d9c2034c1d9bde56/", "registered": false, "linkedin": "", "blog": "http://normgregory.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "17245cd554280bc5997da25a602d60d6": {"username": "MaryW", "tumblr": "", "display_name": "MaryW", "url": "http://disqus.com/guest/17245cd554280bc5997da25a602d60d6/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6fe0cd04717c0c92a4b7892fcf8a298a": {"username": "Jana", "tumblr": "", "display_name": "Jana", "url": "http://disqus.com/guest/6fe0cd04717c0c92a4b7892fcf8a298a/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "b062735b817c557407689f66033b0adc": {"username": "BallardMallard", "tumblr": "", "display_name": "BallardMallard", "url": "http://disqus.com/guest/b062735b817c557407689f66033b0adc/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3d4d9f2f8e12976e6e105344a383862c": {"username": "Grubby Ballard", "tumblr": "", "display_name": "Grubby Ballard", "url": "http://disqus.com/guest/3d4d9f2f8e12976e6e105344a383862c/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3ad69bcb934e309a54de32ddf14862d6": {"username": "Race Bannon", "tumblr": "", "display_name": "Race Bannon", "url": "http://disqus.com/guest/3ad69bcb934e309a54de32ddf14862d6/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "21bef89f982094f7272782a90da93f2d": {"username": "Frantic Freddie", "tumblr": "", "display_name": "Frantic Freddie", "url": "http://disqus.com/guest/21bef89f982094f7272782a90da93f2d/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "Silvergoth": {"username": "Silvergoth", "tumblr": "", "display_name": "Silver", "url": "http://disqus.com/Silvergoth/", "registered": true, "linkedin": "", "blog": "http://picasaweb.google.com/silverone", "remote_domain": null, "points": 111, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/27/2964/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "Silvergoth", "twitter": "", "remote_domain_name": ""}, "chopper_74": {"username": "chopper_74", "tumblr": "", "display_name": "chopper_74", "url": "http://disqus.com/chopper_74/", "registered": true, "linkedin": "", "blog": "", "remote_domain": null, "points": 168, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/27/6180/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "fec52287d82ab7ebf714b1b88fca6baa": {"username": "SPG", "tumblr": "", "display_name": "SPG", "url": "http://disqus.com/guest/fec52287d82ab7ebf714b1b88fca6baa/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "b2e8654a5594712d964895b0578108d8": {"username": "glenn", "tumblr": "", "display_name": "glenn", "url": "http://disqus.com/guest/b2e8654a5594712d964895b0578108d8/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3b18d98962cc80414b753c878b65f223": {"username": "TriXie", "tumblr": "", "display_name": "TriXie", "url": "http://disqus.com/guest/3b18d98962cc80414b753c878b65f223/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "c6035b3a60eb177ba7163236c90d60d9": {"username": "Terry Parkhurst", "tumblr": "", "display_name": "Terry Parkhurst", "url": "http://disqus.com/guest/c6035b3a60eb177ba7163236c90d60d9/", "registered": false, "linkedin": "", "blog": "http://www.partsandpeople.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "07d5ff852d53c953b744405b15ebc179": {"username": "jj", "tumblr": "", "display_name": "jj", "url": "http://disqus.com/guest/07d5ff852d53c953b744405b15ebc179/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "fc5227c70c47a9cc103d741d35f3e17b": {"username": "Outlaw Josey Wales", "tumblr": "", "display_name": "Outlaw Josey Wales", "url": "http://disqus.com/guest/fc5227c70c47a9cc103d741d35f3e17b/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "DocHicklin": {"username": "DocHicklin", "tumblr": "", "display_name": "DocHicklin", "url": "http://disqus.com/DocHicklin/", "registered": true, "linkedin": "", "blog": "", "remote_domain": null, "points": 1, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "2c114297d961797cde9a1977f05ea5ef": {"username": "Sharon", "tumblr": "", "display_name": "Sharon", "url": "http://disqus.com/guest/2c114297d961797cde9a1977f05ea5ef/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "cf4cc09f1d97a19e8c31b0b7000aaffd": {"username": "David Quigg", "tumblr": "", "display_name": "David Quigg", "url": "http://disqus.com/guest/cf4cc09f1d97a19e8c31b0b7000aaffd/", "registered": false, "linkedin": "", "blog": "http://www.flickr.com/photos/quiggphoto/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}}, "forum": {"use_media": false, "name": "My Ballard", "streaming_realtime": false, "url": "myballard", "allow_anon_post": true, "reactions_enabled": false, "reply_position": 0, "show_avatar": true, "allow_anon_votes": false, "disqus_auth_disabled": false}, "realtime_enabled": false, "request": {"username": "", "is_global_moderator": false, "sharing": {}, "sort": 1, "forum": "myballard", "is_initial_load": true, "is_authenticated": false, "timestamp": "2009-12-04_08:15:24", "remote_domain": "", "page": 1, "is_moderator": false, "display_username": "", "points": null, "subscribe_on_post": 2, "moderator_can_edit": false, "is_remote": false, "is_verified": false, "missing_perm": null}, "realtime_paused": false, "posts": {"9511939": {"up_voted": false, "ip": "", "has_replies": true, "message": "Billy are you an angry kid?  Either way you're kind of funny and I  completely agree. And try getting that junk out of the owner's hands at a deal price, I think he's waiting for the dust to turn to gold. He'll be stuck with hundreds of plastic film cameras, thousands of lens filters and a lots of neato stickers.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-18_17:18:23", "killed": false, "user_key": "fc5227c70c47a9cc103d741d35f3e17b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 2, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9473027": {"up_voted": false, "ip": "", "has_replies": true, "message": "I think to blame this soley on the digital photo is completely short sighted. The fact of the matter is businesses have to adapt or they go out of business. Simple economics. The store front is dated and unwelcoming.  Instead of blaming the evils of technology how about adapting? Keeping up with the times? The store front is ominous at best. Windows are covered up and not inviting.  The store needed a makeover at a minimum. How about offering classes or having open houses to explain the wonders of film photography? <br><br>Yes it is sad to lose a local business. But please dont blame this all on the economy or the evils of digital photography.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_12:55:56", "killed": false, "user_key": "173f09953e3cb4e4e31eae9f9152f93a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 2, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 1, "author_is_creator": false, "is_realtime": false}, "9460996": {"up_voted": false, "ip": "", "has_replies": true, "message": "For future processing. film shooters please visit our friends at 60 minute photo on Capital Hill. Our business community is very small and most labs are in the same state as we were. Protect who is left if you want to see film processing in Seattle.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-16_21:09:59", "killed": false, "user_key": "6f60f634b2673648c374e86eca939ef2", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 2, "is_first_child": true, "email": "", "parent_post_id": 9460568, "depth": 1, "points": 1, "author_is_creator": false, "is_realtime": false}, "9493569": {"up_voted": false, "ip": "", "has_replies": false, "message": "Selling stamps at a camera shop? What a brilliant business model! If only I had known the junky camera shop on Market was the place to go to get 42 cent stamps! Is the Post Office was the place to go get a Leica M8?", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-18_09:53:19", "killed": false, "user_key": "21bef89f982094f7272782a90da93f2d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 9486855, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "9460871": {"up_voted": false, "ip": "", "has_replies": true, "message": "I'll miss their little post office and wonder if there will be a new Market St. location for it.  It was super convenient and no long lines.  Are the scrapbooking things on sale too?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-16_20:59:18", "killed": false, "user_key": "72f2500c0d6ffc57eddbfcb0fd7609e8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 3, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9472265": {"up_voted": false, "ip": "", "has_replies": true, "message": "Went in once and thought it was a used bric-a-brac shop selling 20 yr old cameras (and I'm not talking Leicas) on the side. Service was non-existent. <br><br>Another biz no one should be surprised failed. Adapt or die.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_12:12:52", "killed": false, "user_key": "d95eb2dd6e1e4411b2e39eb72461161c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 2, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9479383": {"up_voted": false, "ip": "", "has_replies": true, "message": "totally agree.  Ballard Camera went to the pits long ago. Some of the folks there are very nice & friendly...but the quality sucked over & over again.<br><br>I too like to support local businesses - but these guys did just not know how to do it right. <br><br>Indeed, just spending a little effort in the appearance of the place would helped get foot traffic in the door & perhaps build a sales base in something. But their attention to quality in their products (film printing/processing esp.) truly reflected in how they presented themselves to the world. I used to frequent BC often, but eventually gave up on the poor quality & crappy overall shopping experience.<br><br>I predicted to myself about a year ago that BC wouldn't make it thru 2009 - surprised it actually happened that quickly.<br><br>It's a shame they just didn't have good business sense to cater to the photo-enthusiast customer. <br><br>Good Luck to Monica & Kathleen.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_16:56:34", "killed": false, "user_key": "add01ac37bcdc2445a4ff0ea748ac624", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 1, "is_first_child": true, "email": "", "parent_post_id": 9473027, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "9460237": {"up_voted": false, "ip": "", "has_replies": false, "message": "Got speed?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-16_20:05:41", "killed": false, "user_key": "2c298eb22d7457b4d636a6c144fbc551", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9569636": {"up_voted": false, "ip": "", "has_replies": false, "message": "I too am very sad to see Ballard Camera closing.  I worked for Similian Lab, Kodalux Processing Lab, Lerner Processing Lab, Kodak Premium Processing, Qualex and even Fuji Processing Lab over the past ...few/many years, depending how old you are.  And I have dealt with Bruce and Ballard Camera for all of those years, they were and in my opinion still one of the BEST camera shops in Washington.  Unfortunatly they are not the first and will NOT be the last to close.  I am truly blown away and disgusted by the negative and ignorant comments being made by Billy, Salmon, Race and Outlaw, have any of you been in the REAL world lately?  Ritz Camera has just filed Chapter 11 and they are closing 300 of their 700 storefronts (most of them in WA.) Kodak, which I would consider to be a fairly \"connected\" company has closed ALL of their film processing labs.  With Kodaks closures I am sure we will see even more independant photo shops closing, because they do not have the equipment in house to process film.  So Billy, what do YOU, the almighty, think about that, GROW UP and have a little \"empathy\" (look the word up you might learn something) for your neighbor.   Bruce, Kathleen, Monica you all WILL be missed by MANY!!! Take care and best wishes for your future.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-20_04:04:46", "killed": false, "user_key": "6fe0cd04717c0c92a4b7892fcf8a298a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "20940551": {"up_voted": false, "ip": "", "has_replies": false, "message": "Gee- ballard camera is closed. why did they accept my online order oct. 3 ,2009 then ? is this their standard quality of service ?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-10-24_15:11:08", "killed": false, "user_key": "b2e8654a5594712d964895b0578108d8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "1 month ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9525905": {"up_voted": false, "ip": "", "has_replies": false, "message": "People who use old western tough guy names on blogs to hide from the real world tend to be pricks. Pricks tend to rub people the wrong way thus probably explains why you had a bad experience.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-19_00:22:11", "killed": false, "user_key": "5ad57822a6812a9a7732f51f14b8ca64", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 9511939, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "9521810": {"up_voted": false, "ip": "", "has_replies": false, "message": "Once they get to know you they are fine. They are more for Old Ballard people, not yuppies.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-18_22:40:57", "killed": false, "user_key": "0d628cfc8d68ff6abb74a98c16741315", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 9511939, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "9479031": {"up_voted": false, "ip": "", "has_replies": false, "message": "Funny, Golden City says they are breaking all sales records. Wonder why....", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_16:33:43", "killed": false, "user_key": "0d628cfc8d68ff6abb74a98c16741315", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 9477699, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "9498644": {"up_voted": false, "ip": "", "has_replies": false, "message": "aw man, this one hurts. i bought all my scrapbooking supplies and mailed all my ebay crap there. such is life i suppose. good luck to them.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-18_12:43:54", "killed": false, "user_key": "leavinglasballard", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9564186": {"up_voted": false, "ip": "", "has_replies": true, "message": "No, but if you come flitting in after cashing in you're dotcom stock, snapping you're fingers and expect everyone to drop everything because an almighty new Ballard condo owner has arrived, good luck. Nobody is impressed, trust me. <br><br>Old Ballard people tend to be more into waiting on other Old Ballard people first. Normally, because they want to catch up with eachother and are old friends. I have shot the breeze with the Ballard camera crew many times myself. They are cool.<br><br>If you don't like it, well tough luck. Old Ballard people are not here to babysit the new balard condo owners or the transients they brought with them. If you can't figure out what you need at a basic camera store, buy the crap online at <a href=\"http://amazon.com\" rel=\"nofollow\">amazon.com</a>.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-20_00:25:39", "killed": false, "user_key": "0d628cfc8d68ff6abb74a98c16741315", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 2, "is_first_child": false, "email": "", "parent_post_id": 9556833, "depth": 2, "points": 0, "author_is_creator": false, "is_realtime": false}, "9498909": {"up_voted": false, "ip": "", "has_replies": false, "message": "Way to kick'em when they're down!", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-18_12:53:34", "killed": false, "user_key": "1b611674c1bce23db7d5f1b13ff490cd", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 9471461, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "9597729": {"up_voted": false, "ip": "", "has_replies": false, "message": "I didn't see this post and stumbled upon the sale by coincidence! It's dangerous! I accidentally bought several (more) old cameras! Don't tell my boyfriend. ;-)", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-20_15:23:09", "killed": false, "user_key": "Silvergoth", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9526615": {"up_voted": false, "ip": "", "has_replies": false, "message": "So very very sorry to hear this - and to all the naysayers - we had all of our digital photos developed at BC, and purchased our last digital camera from them.  The quality was fantastic compared to other places around town, and as a mom, I *loved* the convenience of being able to upload photos in the middle of the night, and then just drive down the next day or two to get them.  Plus loved the white border options!   More than anything, I *loved* the friendly service - they always remembered my name, and knew my kids just by sight - not to mention the Halloween photos.  Only good shot we got one year....<br><br> I am so sorry to hear they are going, and can't imagine where I will go now...  Any chance you'll maintain a web only store????", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-19_00:45:33", "killed": false, "user_key": "18d41efbdce67a02689ed781ee681aa4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9505316": {"up_voted": false, "ip": "", "has_replies": false, "message": "I sure nobody will be saying this about you when you die, you're important.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-18_16:25:03", "killed": false, "user_key": "1b611674c1bce23db7d5f1b13ff490cd", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 9479975, "depth": 2, "points": 0, "author_is_creator": false, "is_realtime": false}, "9466918": {"up_voted": false, "ip": "", "has_replies": false, "message": "this is too bad. i hate locally owned business not being able to make it. <br><br>i have a serious question though.  did they not want to get into the digital game? <br><br>i went in to their shop 2 weeks ago looking to buy a new digital camera but they had not a single one. <br><br>i can appreciate if this was a 'philisophical' stance that they took b/c digital will never replicate what a skilled photographer can accomplish with film, but given the ease of use and sheer demand for digital, it seems that they should have embraced it. the revenue from that would have allowed them to service their true love for film. <br><br>anyway, i am sure i only have part of the story, i was just surprised they had no digital camera's for sale.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_02:41:27", "killed": false, "user_key": "gooner", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9479975": {"up_voted": false, "ip": "", "has_replies": true, "message": "What breed is that? Badly run, dumpy businesses with dusty and dated products that you could find cheaper online in 10 seconds and be spared their 'what do you want' service? What a loss. I'm crushed.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_17:37:29", "killed": false, "user_key": "d95eb2dd6e1e4411b2e39eb72461161c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 1, "is_first_child": true, "email": "", "parent_post_id": 9474044, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "9499049": {"up_voted": false, "ip": "", "has_replies": false, "message": "it strikes me as funny all these comments about ballard camera's poor business model. THEY'VE BEEN AROUND 61 YEARS!! sounds like they knew what they were doing to me. nothing lasts forever, but they had a damn fine run.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-18_12:57:47", "killed": false, "user_key": "leavinglasballard", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9462315": {"up_voted": false, "ip": "", "has_replies": true, "message": "We will truly miss you.  My kids have a photo from every Halloween taken in front of your store, what a cool community service THAT was!!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-16_22:20:21", "killed": false, "user_key": "2c114297d961797cde9a1977f05ea5ef", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": 9460959, "depth": 2, "points": 0, "author_is_creator": false, "is_realtime": false}, "9561773": {"up_voted": false, "ip": "", "has_replies": false, "message": "Monica, Bruce and Kathleen-<br>From the day I came in asking what kind of film to get for our daughter's birth to seeing her picture in your store window I always thought you'd be that friendly 'just stop in to chat' and talk kids place.  I'm so sad you're leaving.  Good luck to all of you and may you find success in your next endeavor.  Keep in touch.  Laura/Sarah/Chris", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-19_22:24:11", "killed": false, "user_key": "654e5753d5ee6cff3a3945cf12312418", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9472174": {"up_voted": false, "ip": "", "has_replies": false, "message": "I'm so sad. I shoot digital but this lab did a fabulous job at printing my pro photos. I was thrilled to find someone in the neighborhood I could count on. I also suggested the lab to my photography clients. I don't know where to get my prints now?<br><br>And it was where my kids got their first passport photos! I recall the staff being very patient and helpful. <br><br>Can you move to a smaller space and survive? Plenty of empty storefronts around here.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_12:07:25", "killed": false, "user_key": "7e492acf49df5f0bd71bae545279fd7a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9479216": {"up_voted": false, "ip": "", "has_replies": false, "message": "Moonphoto on Greenwood Ave...classy service...top quality.  They really know their stuff.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_16:45:25", "killed": false, "user_key": "add01ac37bcdc2445a4ff0ea748ac624", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 9462347, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "9468340": {"up_voted": false, "ip": "", "has_replies": false, "message": "digital is not all that great.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_06:04:42", "killed": false, "user_key": "af15d6e6fbc721fbede260179f6e4085", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9500086": {"up_voted": false, "ip": "", "has_replies": false, "message": "I've worked with B&W film for 25+ years and love the printing but outsources the film development over the years and I love a local interdependently owned shop and will always try them first...<br><br>Unfortunately I am not surprised with the closing, digital is taking it's toll for one, but there is more. <br><br>The rude and wrong (with an arrogant, we are always right, you know nothing attitude) I have experienced over and over at Ballard camera has astonished me. <br><br>I've been outright insulted in this shop over 4 times in the past 15 years, always kicking myself after I decided to give them another chance. <br><br>The last straw was telling me a fact I knew was correct was told rudely I was _wrong_. Well, I was not and found a much friendlier answer online with perfect results.<br><br>The time before that was an old roll of film that I wanted developed..instead of 'wasting' their time by humoring me and developing the roll, an employee exposed the roll right there in front of me. I was aghast and so were a few other customers. The roll BTW was for an old 4x5 camera, I had two rolls and thank goodness I didn't reveal the other...I was able to have it processed over at the U and it turned out FINE, even being 15 years old and forgotten about with the older camera equipment (yes, guess what I *do* know how to store my film).<br><br>Their **attitude** and service sucked...BIG TIME..Still kicking myself that I accepted their abusive attitude 4 times. Just because I'm not a professional doesn't mean I don't know my stuff OR that I deserve to be treated in such disrespectful ways. Still pissed & wish I could sue for that roll of film they exposed, but I's guess that's why they are closing shop. Bye bye.<br><br>Go to the U folks, you'll enjoy them a whole lot more.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-18_13:36:15", "killed": false, "user_key": "a942be961905735cac935146ab1d22dc", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9462839": {"up_voted": false, "ip": "", "has_replies": false, "message": "This is a loss for those of us who shoot black & white film. If you haven't spent hours dodging and burning, you don't get it.  <br><br>There is still Panda Labs for my contact sheets, and there is Bill at Camera Techs with whom to have intelligent equipment conversations with, but Ballard Camera's closing indicates a sign of a lost art. <br><br>/sigh", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-16_23:07:26", "killed": false, "user_key": "5fa4ec61a2ccf1c0b7bfdf3cfa133dc3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9479224": {"up_voted": false, "ip": "", "has_replies": true, "message": "Sad to see all the vacant store fronts on Market from the loss of our long-term independant  businesses.   I'll miss Ballard Camera.  It was where my parents had film developed from their little Brownie camera many years ago.  <br><br>Good luck to the owners and staff.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_16:45:35", "killed": false, "user_key": "17245cd554280bc5997da25a602d60d6", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 4, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9476148": {"up_voted": false, "ip": "", "has_replies": false, "message": "Video killed the radio star. I recall a few years ago when Camera Techs had the discarded 1.3 MP Nikon DSLRs that had been used by the Seahawks photog. They were already over-expensive boat anchors. Today you can get better resolution with some cell phone cameras.<br><br>I really hated giving up my Canon 1n two years ago, having been pretty much forced into a 5D by the events I was shooting. But the reverse work flow sucks. Now I spend ungodly hours of my life sitting in front of a computer, playing dweeb-tweak with Photoshop. Fine for e-mail, but it's not photography. <br><br>With the demise of Ivey there are few option left, especially of you want pro quality prints. I did use Capitol Hill Photo for years, as well as Pro-Lab (RIP), Ivey (RIP) and Price (RIP). If Price had fixed their cockamamie credit card machine I would have done a lot more with them. I still have the 10 boxes of paper they were going to use for my 100 rolls of contacts five years ago. They got lazy, they're gone. The few times I shopped at Ballard the service was non-chalant at best and the prices weren't competitive. RIP.<br><br>These days I take my stuff to Panda. Good people, good work.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_14:25:14", "killed": false, "user_key": "3b18d98962cc80414b753c878b65f223", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9484429": {"up_voted": false, "ip": "", "has_replies": false, "message": "ditto on BC not keeping up with the times, I used to go there alot but guit about 2 yrs ago when their service got lousy, and they did not seem to care about their regulars.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_22:59:02", "killed": false, "user_key": "07d5ff852d53c953b744405b15ebc179", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 9482729, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "9498944": {"up_voted": false, "ip": "", "has_replies": false, "message": "Wow Billy - you must be important.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-18_12:54:43", "killed": false, "user_key": "1b611674c1bce23db7d5f1b13ff490cd", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 9472265, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "9462465": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thanks for the pointer; best wishes to your family's future endeavors!", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-16_22:35:33", "killed": false, "user_key": "Mondoman", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 9460996, "depth": 2, "points": 1, "author_is_creator": false, "is_realtime": false}, "9524242": {"up_voted": false, "ip": "", "has_replies": true, "message": "I have a question for all the people kicking someone when they are down.  Is there any businesses in Ballard you like? I know you get great service at Fred Meyer, or Target, or Costco but is there any local businesses you like?  Or is it too hard to say anything nice when your soapbox is so high?  <br><br>You know, I think you are all right.  It will be better to have a empty building there and the people who worked for them oh f em' they can just get unemployment right?  I am not into photography so I never really went in there but I think it says huge volumes about you when you attack someone when they are already down.  Did your mom never teach you to keep you mouth shut if you have nothing nice to say? or does human kindness not apply unless your homeless?  I mean WTF is wrong with you? You think you are being cleaver, funny, or trying to make sure someone does not shop at a store where you think the people working there didn't shove their nose up your rear end far enough?  Can you find help at Costco? can you find someone at Target that knows where ANYTHING is? Can you find anyone at Freddie's to help you? <br>I find it disgusting that people think it is ok to hide behind their computers like little kids and say things they would NEVER have the balls to say in person.  I know it is just a few people but how do you think it makes the owners and people who worked their feel? <br><br>To end my post:<br>TO Ballard Camara, I never shopped there, but that's because I don't take photos.  I am sure life will hold alot of fun and exciting adventures for you all and wish you the best of luck.  Only the ones who never give up succeed.<br><br>N-", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-18_23:05:42", "killed": false, "user_key": "0481d3ddf0af5db3fc5654e1cfdefd9f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9477699": {"up_voted": false, "ip": "", "has_replies": true, "message": "Not to kick someone while they are down. But I do have to echo some of the comments about the service. The few times I went in service was practically non existent, so I went down the street to the camera shop next to the theater, whose service has always been stellar to me. <br><br>Best of luck in your next adventure.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_15:04:16", "killed": false, "user_key": "f4969482a514dd24c2ef7adac384a2c1", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9461319": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thanks, Kathleen.  Yep.  Shop locally.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-16_21:34:36", "killed": false, "user_key": "5b8abab8a8e92d61737d0f8d1bc6fdfb", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 9460996, "depth": 2, "points": 1, "author_is_creator": false, "is_realtime": false}, "9587784": {"up_voted": false, "ip": "", "has_replies": false, "message": "I am surprised Ballard Camera has held on for so long.  At the end of 1996, Benco Photo was closed in Tacoma.  Benco processed film overnight for all Safeway stores in five states (Washington, Oregon, Idaho, Montana and Alaska).  I was proud to be a part of this amazing quality operation.  Back then, the digital revolution was just beginning to rival 35mm quality.  The writing was on the wall when it was announced that we were all to be laid off by years end.  Now, over 12 years later, I don't know of anyone using film based cameras.  With high quality 24 Megapixel digital cameras available, film is simply obsolete.  Safeway made the right business choice to close Benco years ago, but the pain of that decision in human suffering still stings today.  Wishing Ballard Camera and their employees all the best for a job well done.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-20_11:56:00", "killed": false, "user_key": "1b9aaa71fa757c74ebb9ad9183ba94b4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9462347": {"up_voted": false, "ip": "", "has_replies": true, "message": "About six months ago, when Michael Jay Taylor was shutting down Price Photo and selling film for pennies on the dollars, much as I love black-and-white, I balked to buy any. <br><br>\"Where can you get it processed, anymore?\" I asked, more as a rhetorical question than one requiring an answer. <br><br>Mike replied, \"Ballard Photo.\" <br><br>Now we won't have Ballard Photo to do that anymore. <br><br>Price Photo had been in the neighborhood just north of the University district and south of the Roosevelt district, since the mid-1930s. Mike's dad had bought it from the Price family in 1963. Like Ballard Camera, it too had acquired an annex of USPS (U.S. Postal Service). <br><br>Losing photo shops, where people got advice on how to make their photos better, meet others aspiring to do the same, to the point of really trying to make it an art, as well as a craft, is now on the verge of being lost. <br><br>Having moved up to Maple Leaf, I find the two camera-driven shops in the Northgate Mall of uneven quality. <br><br>Tall's is run by a guy who, when I applied there for work late last year, didn't seem to care about my experience as a Photographer's Mate in the USN. When I mentioned wanting to get some film processed, at first he said no; but then, admitted he could get it done, \"but it takes a week, since I send it out.\"<br><br>The man at Tall's seemed evasive and unfriendly - about most everything. <br><br>I gave up on getting work with Tall's and took some film up to Kit's Camera, aka Ritz. The film processing was all right; but the push is on digital. Most people who come into Kit's wouldn't know who Ansel Adams or Henri Cartier-Bresson were, if you asked them. <br><br>But at least the folks at Kit's seemed courteous and didn't treat me like yesterday's news. Heck, I might even apply for work there - if they'll accept my application.  - Terry Parkhurst", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-16_22:23:53", "killed": false, "user_key": "c6035b3a60eb177ba7163236c90d60d9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9501646": {"up_voted": false, "ip": "", "has_replies": false, "message": "Another satisfied customer. <br><br>When I saw the 'junk' sign I figured it was just a regular day if business at Ballard Camera.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-18_14:27:02", "killed": false, "user_key": "d95eb2dd6e1e4411b2e39eb72461161c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9512271": {"up_voted": false, "ip": "", "has_replies": false, "message": "Billy the Dbag, Not every store is perfect for everyone, but unless they tried to rip you off or spit in your food, you should keep it to yourself when they're closing up their business. This is a community blog of people who all live in the neighborhood and not an American Idol trashtalking forum where you can pretend that there aren't real people on the other end. This is a story about real people, your neighbors, who are now shutting down a business that's been a part of the community for decades. I'm sorry some employee didn't smile widely enough for you, but really do you have to crap on them now?<br>I've been in to Ballard Camera a few times for this and that over the years and found them to be perfectly nice and fairly priced. Sad to see them go and best wishes on their next endeavor.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-18_17:31:06", "killed": false, "user_key": "fec52287d82ab7ebf714b1b88fca6baa", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 9472265, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "9462864": {"up_voted": false, "ip": "", "has_replies": false, "message": "and @ Terry Parkhurst - Henri Cartier-Bresson, \"waiting for the decisive moment...\"", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-16_23:09:09", "killed": false, "user_key": "5fa4ec61a2ccf1c0b7bfdf3cfa133dc3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9466322": {"up_voted": false, "ip": "", "has_replies": false, "message": "Halloween turned out to be one of our best public service things that we ever did. <br><br>I remember the first year that we took pictures and gave out stickers instead of candy. The parents were so appreciative I was really surprised. <br><br>Then 8 years ago I became a parent myself and realized the benefit of one less piece of candy in the bag ( for my sake & the kids).<br><br>Bruce, Monica and I have watched so many families grow up with halloween pictures every year. <br>It is amazing to see how the kids changed and the parents got so creative with the costumes. <br>There was everything from a bath tub and shower to candy bars and train engineers.<br> Halloween was such a special time for all our families.<br> Thank You Ballard families for making it memorable.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_01:27:17", "killed": false, "user_key": "6f60f634b2673648c374e86eca939ef2", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 9462315, "depth": 3, "points": 3, "author_is_creator": false, "is_realtime": false}, "9459799": {"up_voted": false, "ip": "", "has_replies": true, "message": "Well, that's a bummer. That block needs a stimulus package...", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-16_19:46:16", "killed": false, "user_key": "chopper_74", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9460568": {"up_voted": false, "ip": "", "has_replies": true, "message": "Not all of us have gone digital.  I'll truly miss this place.  That block does seem to have more than it's fair share of problems.  Sad.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-16_20:31:17", "killed": false, "user_key": "5b8abab8a8e92d61737d0f8d1bc6fdfb", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 3, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9463001": {"up_voted": false, "ip": "", "has_replies": false, "message": "Moon photo on Greenwood still open. Kits camera was closed last time I was at Northgate. <br>As a traditional retouch artist, digital put me out of business,too, after 20 plus years.  People are so used to photoshop that most don't even realize that hand retouching on film and prints ever even existed. Sigh.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-16_23:20:52", "killed": false, "user_key": "d0c2ed5e324c78746e93f8552c66961e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9460959": {"up_voted": false, "ip": "", "has_replies": true, "message": "Yes the scrapbooks, stickers and all are on sale. Come check it all out.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-16_21:06:43", "killed": false, "user_key": "6f60f634b2673648c374e86eca939ef2", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 2, "is_first_child": true, "email": "", "parent_post_id": 9460871, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "9528107": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"I don't take photos\"<br><br>But I thought they were on the Post Office business? This is so confusing.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-19_02:28:49", "killed": false, "user_key": "3d4d9f2f8e12976e6e105344a383862c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 9524242, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "9564258": {"up_voted": false, "ip": "", "has_replies": false, "message": "I personally think it had the best service on Market Street. Maybe you are just clueless and looking for somebody to wipe your behind. If you don't know anything about photography, get a book. They are not runing a day care center for newbies. The developing was the best you will find, which Is why I always had mine done there, even if it cost slightly more. The people in there will talk circles around anyone on this blog when it comes to photography.... Dumbasses", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-20_00:30:45", "killed": false, "user_key": "0d628cfc8d68ff6abb74a98c16741315", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 9549923, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "9549923": {"up_voted": false, "ip": "", "has_replies": true, "message": "\"They are more for Old Ballard people, not yuppies.\"<br><br>So why should we be sorry they folded?<br><br>And since when does Old Ballard = run down, rude businesses with out of date offerings?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-19_16:46:46", "killed": false, "user_key": "3f933ddf1ef164fbcdf4dea0779adf55", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 5, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9566052": {"up_voted": false, "ip": "", "has_replies": false, "message": "They were there 61 years. Longer than almost anyone in Ballard. They were for serious photographers, who were in the store all the time. Trust me, I spent plenty of money there. The problem with you electronics store people, is you think only about having a saleman kiss your butt, as you buy the most expensive camera in the place, but are clueless how to use it. Do you even know how much the machine they use to develope film is worth at Ballard Camera? It's far from outdated, believe me.<br><br>But, I know plenty of Old Ballard business people who were perfectly happy before the new Ballard people showed up, and many are finally free from your abuse. Who cares that you had some dumb job at Microsoft or some porn site and can now buy a camera and condo that you will lose in a year once you are laid off. Those people are experts at what they do, and your spoiled brats that fell into cushy jobs after moving out of Mommys house that are being shipped over seas. But, you dont even have the life experience to know it, or understand how annoying you are to us in Ballard.<br><br>Maybe if you asked an intelligent question at Ballard Camera, they would not have treated you as the hobbyist you are, wasting everyones time that works there and holding up the line with your nonsense.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-20_00:46:52", "killed": false, "user_key": "0d628cfc8d68ff6abb74a98c16741315", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 9564283, "depth": 4, "points": 0, "author_is_creator": false, "is_realtime": false}, "9471461": {"up_voted": false, "ip": "", "has_replies": true, "message": "Ballard had lousy service. I don't know how many times they screwed up my order. Then they had lots of attitude if you mentioned anything. Glad to see this on go", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_11:23:51", "killed": false, "user_key": "13d2da715c36fd75e36a028e7201dd53", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9486855": {"up_voted": false, "ip": "", "has_replies": true, "message": "When I was there two weeks ago, I heard the staff conversing about how they had way too many booklets of 42 cent stamps that they would struggle to sell after the new 44 cent stamps were introduced this past week.<br><br>Hey everyone, go buy some of their 42 cent stamps along with some 2 cent books from the post office.  Help your neighbor out a little.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-18_02:19:11", "killed": false, "user_key": "b062735b817c557407689f66033b0adc", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9482729": {"up_voted": false, "ip": "", "has_replies": true, "message": "I went in a few times, the clutter and poor service turned me away.<br><br>Sorry to see local business go, but I don't blame Corp giants for this ones demise.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_21:02:44", "killed": false, "user_key": "3ad69bcb934e309a54de32ddf14862d6", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9528170": {"up_voted": false, "ip": "", "has_replies": false, "message": "Look, I'm not going to pretend Ballard Camera is perfect. But the shop was good to me in key ways that really counted. They were, for example, the perfect antidote to the treatment I got down the street at Camera Techs on my very first day of owning a digital SLR.<br><br>I'd practically bounced in the door of Camera Techs, totally giddy to find a lens that would team up with my brand-new camera body to form a functioning camera. The employee behind the counter got this stricken look on his face. He asked me if there was any way -- any possible way whatsoever -- to go and get my money back for my new camera. See, he liked Canons. I'd purchased a camera made by some fly-by-night operation called Nikon. Therefore, apparently, my judgment and my camera were pure crap. I left Camera Techs with no lens, totally dejected, doubting myself and my camera. I staggered off and got a cup of coffee at Cugini.<br><br>When I regained my bearings, I went to Ballard Camera. They hadn't sold me my new camera. But they'd processed a lot of my film as I re-learned how to shoot over the previous couple of years. They congratulated me on my new digital camera and helped me find a wonderful used lens. The lens still works great. So does the camera, which -- despite the fact it's merely a Nikon -- has literally never failed me. <br><br>Whatever else the critics want to pile on and say now about Ballard Camera, I found the shop consistently kind and encouraging. You can see that spirit in these very comments, as Kathleen Cozens reminisces about Halloweens past and tries to steer former customers to one of the local, independent shops that's still standing.<br><br>It's worth noting, too, that Kathleen used her real name here. The people spewing the worst of the nastiness here used pseudonyms. I don't doubt that their problems with Ballard Camera are sincere. I just doubt they'd chose to be quite so caustic if they had to attach their own names to their words. This interplay between venom and anonymity is probably my least favorite thing about the Web.<br><br>Best of luck to Kathleen and the other people behind Ballard Camera.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-19_02:33:33", "killed": false, "user_key": "cf4cc09f1d97a19e8c31b0b7000aaffd", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9461485": {"up_voted": false, "ip": "", "has_replies": false, "message": "So sorry to hear this. We'll miss you.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-16_21:36:53", "killed": false, "user_key": "3ec54145c8b540ed721b3a2bc3725c03", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 9459799, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "9512573": {"up_voted": false, "ip": "", "has_replies": false, "message": "There is a long list of photo labs that have gone under in the past few years. Some of these did everything you mentioned but still couldn't make it. In fact all but a handfull are gone. <br>Camera stores have been hurting for years from online competition. When Amazon and Best Buy can sell the same camera at a retail price that is lower than your little store's wholesale cost how are you going to compete let alone make a profit?<br>Ballard Camera has hung on as a neighborhood institution for years and just because you think you know the magic formula to do it, doesn't mean that the reality is so. I think they could have dumped a million bucks into it, but they'd still be closing and have a million less to show for it.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-18_17:41:29", "killed": false, "user_key": "fec52287d82ab7ebf714b1b88fca6baa", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 9479383, "depth": 2, "points": 0, "author_is_creator": false, "is_realtime": false}, "9556833": {"up_voted": false, "ip": "", "has_replies": true, "message": "You can see how yuppies are destroying Ballard by insisting on clean, well-organized shops, stuffed with new cameras and shinny things. Whatever happened to the joy of digging through piles of old stock in a drab and dreary shop looking for what u need all by yourself?<br><br>Only yuppies want good service, nice products and competitive prices.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-19_19:40:08", "killed": false, "user_key": "6270ef4ddf193ca24e5fc01607332d05", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 3, "is_first_child": true, "email": "", "parent_post_id": 9549923, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "9518903": {"up_voted": false, "ip": "", "has_replies": true, "message": "So apparently your ONE visit left an impression. I've been shopping there for a number of years. I have bought 2 NEW digital cameras from them and use every one of their other services. <br> I do like the people and the family atmosphere. If there was something they didn't have, they gladly ordered it for me. As I'm sure they would have done for you. Even the overstocked overstaffed overpriced big guys have to order things at times. <br> Billy if you do get the opportunity to remove your head from your ass you will see that a community will be impacted, jobs will be lost and an era of locally owned craftsman style businesses will lose another member.  I hope you are still gainfully employed because if I ever find out you aren't...I won't care.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-18_20:42:32", "killed": false, "user_key": "3082374389efb0446bd18c1e59e99120", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 2, "is_first_child": false, "email": "", "parent_post_id": 9480434, "depth": 2, "points": 0, "author_is_creator": false, "is_realtime": false}, "9480434": {"up_voted": false, "ip": "", "has_replies": true, "message": "Wow, a Brownie. From my one visit I'd guess Brownie technolgy was when they stopped investing in their business.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_18:05:11", "killed": false, "user_key": "d95eb2dd6e1e4411b2e39eb72461161c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 3, "is_first_child": true, "email": "", "parent_post_id": 9479224, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "11882359": {"up_voted": false, "ip": "", "has_replies": false, "message": "As a long time customer of this great business, I have to admit that when monica sold me my cannon digital camera, my olympus hasnt been used since I got the cannon, so indeed the element of getting prints developed there just stopped. I had a friend in town with me yesterday as we were driving past and I saw the sign that said going out of business, I just gasped and thought to myself, what the hell happened there, and then I thought, dam it, I was a contributing factor to this untimely end of a great business as I looked down in my pocket and saw the cannon camera. So this is progress? Well that is controversial at best, Ballard Camera and the wonderful crew that worked there to me was one of the best business atmosphere that a customer could experience in the Ballard community, I am sure I am not alone when I say that all of them shall be sorely missed. <br><br>J. Dennis Hicklin", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-06-29_08:40:18", "killed": false, "user_key": "DocHicklin", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "5 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9481078": {"up_voted": false, "ip": "", "has_replies": false, "message": "We just moved to the neighborhood this last year and love Ballard Camera.   So friendly and nice - it is a shame.   Good luck to you!  Mario the white Schnauzer's dad.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_18:52:27", "killed": false, "user_key": "76937764a69fa13217e23e023618a5ea", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9466871": {"up_voted": false, "ip": "", "has_replies": false, "message": "*sigh*", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_02:35:47", "killed": false, "user_key": "ninaf", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9520504": {"up_voted": false, "ip": "", "has_replies": true, "message": "Craftsman? Are you kidding? Maybe you meant crapsman because  it sure was the crappiest looking shop along the ave.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-18_21:48:25", "killed": false, "user_key": "d95eb2dd6e1e4411b2e39eb72461161c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": 9518903, "depth": 3, "points": 0, "author_is_creator": false, "is_realtime": false}, "9564283": {"up_voted": false, "ip": "", "has_replies": true, "message": "Tough luck? For who, BC? Maybe if you spent more money and talked less they'd still be in business.<br><br>And you don't buy cameras  from Amazon. <a href=\"http://Adorama.com\" rel=\"nofollow\">Adorama.com</a> in  NY, no sales tax.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-20_00:32:30", "killed": false, "user_key": "21bef89f982094f7272782a90da93f2d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": 9564186, "depth": 3, "points": 0, "author_is_creator": false, "is_realtime": false}, "9474044": {"up_voted": false, "ip": "", "has_replies": true, "message": "Another member of a dying breed just died - <br>- Best to Ballard Camera's staff and future endeavors", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_14:04:01", "killed": false, "user_key": "260b45c7dd359786d9c2034c1d9bde56", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 2, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9466237": {"up_voted": false, "ip": "", "has_replies": false, "message": "terrible news", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-17_01:19:14", "killed": false, "user_key": "0d628cfc8d68ff6abb74a98c16741315", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "9549567": {"up_voted": false, "ip": "", "has_replies": false, "message": "Your name speaks volumes of your imaturity. It's not as if you actually bought something and it failed, you are basing your comments on looks. There are worse looking shops on the ave but I'm not here to bust their chops. I buy from them too. <br>You have some growing up to do. Cut the world some slack. Everyone is trying to survive right now.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-19_16:33:52", "killed": false, "user_key": "3082374389efb0446bd18c1e59e99120", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 9520504, "depth": 4, "points": 0, "author_is_creator": false, "is_realtime": false}}, "integration": {"receiver_url": null, "theme": 2, "reply_position": false, "disqus_logo": true}, "timer": {"timer_url": "http://localhost:8005", "thread_id": "18424512", "user_id": "anonymous", "forum_id": "108022", "hash": 3451115588980281151}, "thread": {"days_alive": 0, "slug": "after_61_years_ballard_camera_is_closing", "paginate": false, "num_pages": 1, "num_posts": 68, "per_page": 0, "total_posts": 0, "realtime_paused": true, "id": 18424512, "queued": false}, "reactions_limit": 10, "context": {"show_reply": true, "use_fb_connect": true, "forum_facebook_key": "29ac93bcc80e20dc00554a7b3e9cc874", "use_yahoo": false, "subscribed": false, "use_twitter_signin": false, "use_openid": false, "realtime_speed": 5000}, "reactions_start": 0, "settings": {"debug": false, "disqus_url": "http://disqus.com", "media_url": "http://media.disqus.com"}, "media_url": "http://media.disqus.com"};
	/* */ this.jsonData.cookie_messages = {"user_created": null, "post_has_profile": null, "post_twitter": null, "post_not_approved": null}; this.jsonData.session = {"url": null, "name": null, "email": null}; /* */

	
	this.curPageId = 'dsq-comments';

	this.frames = {};
};

var disqus_popup_reference = null;

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



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

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

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

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

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

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

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

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





Dsq.CSRF_TOKEN = '21bc467119200cb06806902fa8e2f5b0';
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;



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

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

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

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

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

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


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


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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

		return [windowWidth, windowHeight];
	}

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

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

		return [scrollWidth, scrollTop];
	}

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

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

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

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

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

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

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

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

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

				form.appendChild(input);
			}
		}

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

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

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

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

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

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

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

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

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

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

		return params;
	};

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

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

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

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

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

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

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

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

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

	};

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

};
// Dsq.Utils

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

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

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

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

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

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

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

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

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

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

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

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

	};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

		Dsq.Popup._closePopup(null, true);

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

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

		header = title;
		body = message;

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

	this.popAlert = this.popModal;

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

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

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

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

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

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

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

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

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

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

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

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

	};

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

		popup.style.display = 'block';

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

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

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

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

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

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

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

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

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

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

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

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

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

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

			return ret;
		};
	};

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

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

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

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


			//

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

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

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

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

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

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

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

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


	this.header = function() {

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

		
			html = Dsq.Templates.authPost() + html;
		

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

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

		

		html += Dsq.Templates.reactions();

		

		return html;
	};

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

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

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

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

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

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

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

		return html;
	}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	//
	// Post
	//

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

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

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

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

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

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

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

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

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

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

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

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

		return ' \
			<div class="dsq-comment-footer" id="dsq-comment-footer-' + post_id + '"> \
				<div id="dsq-points-' + post_id + '" class="dsq-likedtxt">'
				+ (_meta.points
					? _meta.points + Dsq.Utils.pluralize(_meta.points, ' person', ' people') + ' liked this comment.'
					: '')
				+ '</div>'
				+ '<ul class="dsq-comment-options dsq-list-style">'
				+ (_meta.votable
					? '<li class="dsq-list-first dsq-rate" id="dsq-rate-cont-' + post_id + '">'
					+ (!_meta.up_voted
						? '<a href="#" onclick="Dsq.Post.rate(this, ' + post_id + ', 1); return false;">Like</a>'
						: 'You liked this.') + '</li>'
					: '')
				+ '<li class="dsq-report' + (!_meta.votable ? ' dsq-list-first' : '') + '" id="dsq-post-report-' + post_id + '"><a href="#" class="dsq-post-report" onclick="Dsq.Post.report(' + post_id + ', false); return false;">Report</a></li> \
				</ul> \
				<ul class="dsq-list-style">'
				+ (_meta.can_reply
					? '<li class="dsq-list-first"><a href="#" id="dsq-reply-link-' + post_id +'" onclick="Dsq.Post.toggleReply(this, ' + post_id +'); return false;">Reply</a></li>'
					: '')
				+ (_meta.can_reply && !_meta.has_replies && _meta.from_request_user
					? '<li id="dsq-edit-el-' + post_id + '"><a id="dsq-edit-link-' + post_id + '" href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); return false;">Edit</a></li>'
					: '')
				+ '<li class="' + (!_meta.can_reply ? 'dsq-list-first' : '') + '" id="dsq-more-el-' + post_id + '"><a id="dsq-more-link-' + post_id + '" href="#" onclick="Dsq.Post.showMenu(this, ' + post_id + ', \'more\'); return false">More <small>&#9660;</small></a></li>'
				+ (Dsq.jsonData.forum.use_media
					? '<li id="dsq-media-el-' + post_id +'" style="display:none"><a id="dsq-media-link-' + post_id + '" href="#" onclick="Dsq.Post.showMenu(this, ' + post_id + ', \'media\'); return false">Use Media <small>&#9660;</small></a></li>'
					: '')
				+ '</ul>'
				+ '<div id="dsq-reply-bar-' + post_id + '" class="dsq-reply-bar" style="display:none"> \
						<div id="dsq-reply-bar-items-' + post_id + '" class="dsq-reply-bar-items"> \
						</div> \
						<div id="dsq-reply-bar-auth-' + post_id + '" class="dsq-reply-bar-auth"> \
							 \
								 \
								 	<a href="#" class="dsq-help dsq-reply-req-opt" title="You are commenting as a Guest. You may choose to log into an existing DISQUS Profile, your Facebook, Twitter or OpenID account to comment on My Ballard" onclick="Dsq.Popup.helpBadges(); return false">Optional:</a> \
								 \
								<img class="dsq-login-icon" src="http://media.disqus.com/images/dsq-favicon-16x16.png" alt="" /> \
								<a id="dsq-reply-login-' + post_id + '" href="http://disqus.com/profile/login/?next=article:18424512" 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> \
								 \
								 \
								 \
							 \
						</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'				: 'myballard',
			't'				: 'after_61_years_ballard_camera_is_closing',
			// Do we need encodeURIComponent here?
			'ifrs'			: encodeURIComponent(disqus_iframe_css),
			'to_redirect'	: encodeURIComponent(window.location),
			'cbp'			: disqus_callback_params,
			'ff'			: Dsq.Thread.ff,
			'fc'			: Dsq.Thread.fc,
			'ac'			: Dsq.Thread.ac,
			'default_text'	: disqus_default_text
		};

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

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

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

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

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

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

	//
	// Menus
	//

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

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

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

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

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

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


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

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

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

	//
	// Popups
	//

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

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

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

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

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

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

		return this._popupGeneric(content);
	};

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

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

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

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

		return this._popupGeneric(content);
	};

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

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

		bodyHtml = message;

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

		return this._popupGeneric(content);
	};

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

	//
	// Actions
	//

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

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

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

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

		Dsq.Popup.popModal(message, title);

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

	//
	// Media
	//

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

	//
	// Callbacks
	//

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

		if(!openedMenu) {
			return;
		}

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

};
// Dsq.Post


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

	
	this.adminIsOn = false;

	
	
	

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

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

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

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

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

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

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

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

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

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

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


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

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

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

		Dsq.$('dsq-pagination').innerHTML += '<img src="http://media.disqus.com/images/loading-small.gif">';
		
		if(el_clicked) {
			el_clicked.style.display = 'none';
		}
		
		Dsq.Utils.execScript('http://disqus.com/forums/myballard/thread.js'
			+ '?slug='	+ 'after_61_years_ballard_camera_is_closing'
			+ '&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/myballard/thread.js'
			+ '?slug='	+ 'after_61_years_ballard_camera_is_closing'
			+ '&sort='	+ sort
			+ '&title='
			+ '&'		+ disqus_date.getTime();

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

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

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

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

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

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

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

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

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

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

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

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

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

	return obj;
}();

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

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

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

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

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

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

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

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

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

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

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

	this.check = function() {
		if (!ongoing_request && Dsq.jsonData.realtime_enabled) {
			if (prev_script) {
				prev_script.parentNode.removeChild(prev_script);
			}
			ongoing_request = true;
			prev_script = Dsq.Utils.execScript('http://disqus.com/forums/18424512/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/myballard/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/myballard/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;
		});
	})();
}









(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-9459799">\
	 <div id="dsq-comment-header-9459799" class="dsq-comment-header">\
	 <cite id="dsq-cite-9459799" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9459799">chopper_74</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9459799" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9459799" class="dsq-comment-message">Well, that\'s a bummer. That block needs a stimulus package...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9461485">\
	 <div id="dsq-comment-header-9461485" class="dsq-comment-header">\
	 <cite id="dsq-cite-9461485" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9461485">Watergirl</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9461485" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9461485" class="dsq-comment-message">So sorry to hear this. We\'ll miss you.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9460237">\
	 <div id="dsq-comment-header-9460237" class="dsq-comment-header">\
	 <cite id="dsq-cite-9460237" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9460237">Alfred</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9460237" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9460237" class="dsq-comment-message">Got speed?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9460568">\
	 <div id="dsq-comment-header-9460568" class="dsq-comment-header">\
	 <cite id="dsq-cite-9460568" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9460568">Trix</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9460568" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9460568" class="dsq-comment-message">Not all of us have gone digital.  I\'ll truly miss this place.  That block does seem to have more than it\'s fair share of problems.  Sad.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9460996">\
	 <div id="dsq-comment-header-9460996" class="dsq-comment-header">\
	 <cite id="dsq-cite-9460996" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9460996" href="http://www.ballardcamera.com/" target="_blank" rel="nofollow">Kathleen Cozens</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9460996" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9460996" class="dsq-comment-message">For future processing. film shooters please visit our friends at 60 minute photo on Capital Hill. Our business community is very small and most labs are in the same state as we were. Protect who is left if you want to see film processing in Seattle.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9461319">\
	 <div id="dsq-comment-header-9461319" class="dsq-comment-header">\
	 <cite id="dsq-cite-9461319" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9461319">Trix</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9461319" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9461319" class="dsq-comment-message">Thanks, Kathleen.  Yep.  Shop locally.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9462465">\
	 <div id="dsq-comment-header-9462465" class="dsq-comment-header">\
	 <cite id="dsq-cite-9462465" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9462465">Mondoman</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9462465" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9462465" class="dsq-comment-message">Thanks for the pointer; best wishes to your family\'s future endeavors!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9460871">\
	 <div id="dsq-comment-header-9460871" class="dsq-comment-header">\
	 <cite id="dsq-cite-9460871" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9460871">hilda</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9460871" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9460871" class="dsq-comment-message">I\'ll miss their little post office and wonder if there will be a new Market St. location for it.  It was super convenient and no long lines.  Are the scrapbooking things on sale too?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9460959">\
	 <div id="dsq-comment-header-9460959" class="dsq-comment-header">\
	 <cite id="dsq-cite-9460959" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9460959" href="http://www.ballardcamera.com/" target="_blank" rel="nofollow">Kathleen Cozens</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9460959" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9460959" class="dsq-comment-message">Yes the scrapbooks, stickers and all are on sale. Come check it all out.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9462315">\
	 <div id="dsq-comment-header-9462315" class="dsq-comment-header">\
	 <cite id="dsq-cite-9462315" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9462315">Sharon</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9462315" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9462315" class="dsq-comment-message">We will truly miss you.  My kids have a photo from every Halloween taken in front of your store, what a cool community service THAT was!!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9466322">\
	 <div id="dsq-comment-header-9466322" class="dsq-comment-header">\
	 <cite id="dsq-cite-9466322" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9466322" href="http://www.ballardcamera.com/" target="_blank" rel="nofollow">Kathleen Cozens</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9466322" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9466322" class="dsq-comment-message">Halloween turned out to be one of our best public service things that we ever did. <br><br>I remember the first year that we took pictures and gave out stickers instead of candy. The parents were so appreciative I was really surprised. <br><br>Then 8 years ago I became a parent myself and realized the benefit of one less piece of candy in the bag ( for my sake & the kids).<br><br>Bruce, Monica and I have watched so many families grow up with halloween pictures every year. <br>It is amazing to see how the kids changed and the parents got so creative with the costumes. <br>There was everything from a bath tub and shower to candy bars and train engineers.<br> Halloween was such a special time for all our families.<br> Thank You Ballard families for making it memorable.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9462347">\
	 <div id="dsq-comment-header-9462347" class="dsq-comment-header">\
	 <cite id="dsq-cite-9462347" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9462347" href="http://www.partsandpeople.com/" target="_blank" rel="nofollow">Terry Parkhurst</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9462347" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9462347" class="dsq-comment-message">About six months ago, when Michael Jay Taylor was shutting down Price Photo and selling film for pennies on the dollars, much as I love black-and-white, I balked to buy any. <br><br>"Where can you get it processed, anymore?" I asked, more as a rhetorical question than one requiring an answer. <br><br>Mike replied, "Ballard Photo." <br><br>Now we won\'t have Ballard Photo to do that anymore. <br><br>Price Photo had been in the neighborhood just north of the University district and south of the Roosevelt district, since the mid-1930s. Mike\'s dad had bought it from the Price family in 1963. Like Ballard Camera, it too had acquired an annex of USPS (U.S. Postal Service). <br><br>Losing photo shops, where people got advice on how to make their photos better, meet others aspiring to do the same, to the point of really trying to make it an art, as well as a craft, is now on the verge of being lost. <br><br>Having moved up to Maple Leaf, I find the two camera-driven shops in the Northgate Mall of uneven quality. <br><br>Tall\'s is run by a guy who, when I applied there for work late last year, didn\'t seem to care about my experience as a Photographer\'s Mate in the USN. When I mentioned wanting to get some film processed, at first he said no; but then, admitted he could get it done, "but it takes a week, since I send it out."<br><br>The man at Tall\'s seemed evasive and unfriendly - about most everything. <br><br>I gave up on getting work with Tall\'s and took some film up to Kit\'s Camera, aka Ritz. The film processing was all right; but the push is on digital. Most people who come into Kit\'s wouldn\'t know who Ansel Adams or Henri Cartier-Bresson were, if you asked them. <br><br>But at least the folks at Kit\'s seemed courteous and didn\'t treat me like yesterday\'s news. Heck, I might even apply for work there - if they\'ll accept my application.  - Terry Parkhurst</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9479216">\
	 <div id="dsq-comment-header-9479216" class="dsq-comment-header">\
	 <cite id="dsq-cite-9479216" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9479216">salmon bayer</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9479216" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9479216" class="dsq-comment-message">Moonphoto on Greenwood Ave...classy service...top quality.  They really know their stuff.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9462839">\
	 <div id="dsq-comment-header-9462839" class="dsq-comment-header">\
	 <cite id="dsq-cite-9462839" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9462839">m</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9462839" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9462839" class="dsq-comment-message">This is a loss for those of us who shoot black & white film. If you haven\'t spent hours dodging and burning, you don\'t get it.  <br><br>There is still Panda Labs for my contact sheets, and there is Bill at Camera Techs with whom to have intelligent equipment conversations with, but Ballard Camera\'s closing indicates a sign of a lost art. <br><br>/sigh</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9462864">\
	 <div id="dsq-comment-header-9462864" class="dsq-comment-header">\
	 <cite id="dsq-cite-9462864" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9462864">m</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9462864" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9462864" class="dsq-comment-message">and @ Terry Parkhurst - Henri Cartier-Bresson, "waiting for the decisive moment..."</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9463001">\
	 <div id="dsq-comment-header-9463001" class="dsq-comment-header">\
	 <cite id="dsq-cite-9463001" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9463001">Aka</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9463001" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9463001" class="dsq-comment-message">Moon photo on Greenwood still open. Kits camera was closed last time I was at Northgate. <br>As a traditional retouch artist, digital put me out of business,too, after 20 plus years.  People are so used to photoshop that most don\'t even realize that hand retouching on film and prints ever even existed. Sigh.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9466237">\
	 <div id="dsq-comment-header-9466237" class="dsq-comment-header">\
	 <cite id="dsq-cite-9466237" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9466237">Free Ballard 4 Real</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9466237" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9466237" class="dsq-comment-message">terrible news</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9466871">\
	 <div id="dsq-comment-header-9466871" class="dsq-comment-header">\
	 <cite id="dsq-cite-9466871" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9466871" href="http://ninaforsyth.org" target="_blank" rel="nofollow">ninaf</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9466871" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9466871" class="dsq-comment-message">*sigh*</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9466918">\
	 <div id="dsq-comment-header-9466918" class="dsq-comment-header">\
	 <cite id="dsq-cite-9466918" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9466918">gooner</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9466918" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9466918" class="dsq-comment-message">this is too bad. i hate locally owned business not being able to make it. <br><br>i have a serious question though.  did they not want to get into the digital game? <br><br>i went in to their shop 2 weeks ago looking to buy a new digital camera but they had not a single one. <br><br>i can appreciate if this was a \'philisophical\' stance that they took b/c digital will never replicate what a skilled photographer can accomplish with film, but given the ease of use and sheer demand for digital, it seems that they should have embraced it. the revenue from that would have allowed them to service their true love for film. <br><br>anyway, i am sure i only have part of the story, i was just surprised they had no digital camera\'s for sale.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9468340">\
	 <div id="dsq-comment-header-9468340" class="dsq-comment-header">\
	 <cite id="dsq-cite-9468340" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9468340">randi</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9468340" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9468340" class="dsq-comment-message">digital is not all that great.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9471461">\
	 <div id="dsq-comment-header-9471461" class="dsq-comment-header">\
	 <cite id="dsq-cite-9471461" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9471461">pedal steel</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9471461" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9471461" class="dsq-comment-message">Ballard had lousy service. I don\'t know how many times they screwed up my order. Then they had lots of attitude if you mentioned anything. Glad to see this on go</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9498909">\
	 <div id="dsq-comment-header-9498909" class="dsq-comment-header">\
	 <cite id="dsq-cite-9498909" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9498909">Richy</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9498909" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9498909" class="dsq-comment-message">Way to kick\'em when they\'re down!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9472174">\
	 <div id="dsq-comment-header-9472174" class="dsq-comment-header">\
	 <cite id="dsq-cite-9472174" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9472174">Eileen</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9472174" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9472174" class="dsq-comment-message">I\'m so sad. I shoot digital but this lab did a fabulous job at printing my pro photos. I was thrilled to find someone in the neighborhood I could count on. I also suggested the lab to my photography clients. I don\'t know where to get my prints now?<br><br>And it was where my kids got their first passport photos! I recall the staff being very patient and helpful. <br><br>Can you move to a smaller space and survive? Plenty of empty storefronts around here.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9472265">\
	 <div id="dsq-comment-header-9472265" class="dsq-comment-header">\
	 <cite id="dsq-cite-9472265" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9472265">Billy the Kid</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9472265" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9472265" class="dsq-comment-message">Went in once and thought it was a used bric-a-brac shop selling 20 yr old cameras (and I\'m not talking Leicas) on the side. Service was non-existent. <br><br>Another biz no one should be surprised failed. Adapt or die.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9498944">\
	 <div id="dsq-comment-header-9498944" class="dsq-comment-header">\
	 <cite id="dsq-cite-9498944" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9498944">Richy</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9498944" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9498944" class="dsq-comment-message">Wow Billy - you must be important.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9512271">\
	 <div id="dsq-comment-header-9512271" class="dsq-comment-header">\
	 <cite id="dsq-cite-9512271" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9512271">SPG</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9512271" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9512271" class="dsq-comment-message">Billy the Dbag, Not every store is perfect for everyone, but unless they tried to rip you off or spit in your food, you should keep it to yourself when they\'re closing up their business. This is a community blog of people who all live in the neighborhood and not an American Idol trashtalking forum where you can pretend that there aren\'t real people on the other end. This is a story about real people, your neighbors, who are now shutting down a business that\'s been a part of the community for decades. I\'m sorry some employee didn\'t smile widely enough for you, but really do you have to crap on them now?<br>I\'ve been in to Ballard Camera a few times for this and that over the years and found them to be perfectly nice and fairly priced. Sad to see them go and best wishes on their next endeavor.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9473027">\
	 <div id="dsq-comment-header-9473027" class="dsq-comment-header">\
	 <cite id="dsq-cite-9473027" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9473027">pattr</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9473027" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9473027" class="dsq-comment-message">I think to blame this soley on the digital photo is completely short sighted. The fact of the matter is businesses have to adapt or they go out of business. Simple economics. The store front is dated and unwelcoming.  Instead of blaming the evils of technology how about adapting? Keeping up with the times? The store front is ominous at best. Windows are covered up and not inviting.  The store needed a makeover at a minimum. How about offering classes or having open houses to explain the wonders of film photography? <br><br>Yes it is sad to lose a local business. But please dont blame this all on the economy or the evils of digital photography.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9479383">\
	 <div id="dsq-comment-header-9479383" class="dsq-comment-header">\
	 <cite id="dsq-cite-9479383" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9479383">salmon bayer</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9479383" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9479383" class="dsq-comment-message">totally agree.  Ballard Camera went to the pits long ago. Some of the folks there are very nice & friendly...but the quality sucked over & over again.<br><br>I too like to support local businesses - but these guys did just not know how to do it right. <br><br>Indeed, just spending a little effort in the appearance of the place would helped get foot traffic in the door & perhaps build a sales base in something. But their attention to quality in their products (film printing/processing esp.) truly reflected in how they presented themselves to the world. I used to frequent BC often, but eventually gave up on the poor quality & crappy overall shopping experience.<br><br>I predicted to myself about a year ago that BC wouldn\'t make it thru 2009 - surprised it actually happened that quickly.<br><br>It\'s a shame they just didn\'t have good business sense to cater to the photo-enthusiast customer. <br><br>Good Luck to Monica & Kathleen.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9512573">\
	 <div id="dsq-comment-header-9512573" class="dsq-comment-header">\
	 <cite id="dsq-cite-9512573" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9512573">SPG</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9512573" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9512573" class="dsq-comment-message">There is a long list of photo labs that have gone under in the past few years. Some of these did everything you mentioned but still couldn\'t make it. In fact all but a handfull are gone. <br>Camera stores have been hurting for years from online competition. When Amazon and Best Buy can sell the same camera at a retail price that is lower than your little store\'s wholesale cost how are you going to compete let alone make a profit?<br>Ballard Camera has hung on as a neighborhood institution for years and just because you think you know the magic formula to do it, doesn\'t mean that the reality is so. I think they could have dumped a million bucks into it, but they\'d still be closing and have a million less to show for it.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9474044">\
	 <div id="dsq-comment-header-9474044" class="dsq-comment-header">\
	 <cite id="dsq-cite-9474044" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9474044" href="http://normgregory.com/" target="_blank" rel="nofollow">Norm Gregory</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9474044" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9474044" class="dsq-comment-message">Another member of a dying breed just died - <br>- Best to Ballard Camera\'s staff and future endeavors</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9479975">\
	 <div id="dsq-comment-header-9479975" class="dsq-comment-header">\
	 <cite id="dsq-cite-9479975" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9479975">Billy the Kid</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9479975" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9479975" class="dsq-comment-message">What breed is that? Badly run, dumpy businesses with dusty and dated products that you could find cheaper online in 10 seconds and be spared their \'what do you want\' service? What a loss. I\'m crushed.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9505316">\
	 <div id="dsq-comment-header-9505316" class="dsq-comment-header">\
	 <cite id="dsq-cite-9505316" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9505316">Richy</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9505316" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9505316" class="dsq-comment-message">I sure nobody will be saying this about you when you die, you\'re important.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9476148">\
	 <div id="dsq-comment-header-9476148" class="dsq-comment-header">\
	 <cite id="dsq-cite-9476148" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9476148">TriXie</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9476148" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9476148" class="dsq-comment-message">Video killed the radio star. I recall a few years ago when Camera Techs had the discarded 1.3 MP Nikon DSLRs that had been used by the Seahawks photog. They were already over-expensive boat anchors. Today you can get better resolution with some cell phone cameras.<br><br>I really hated giving up my Canon 1n two years ago, having been pretty much forced into a 5D by the events I was shooting. But the reverse work flow sucks. Now I spend ungodly hours of my life sitting in front of a computer, playing dweeb-tweak with Photoshop. Fine for e-mail, but it\'s not photography. <br><br>With the demise of Ivey there are few option left, especially of you want pro quality prints. I did use Capitol Hill Photo for years, as well as Pro-Lab (RIP), Ivey (RIP) and Price (RIP). If Price had fixed their cockamamie credit card machine I would have done a lot more with them. I still have the 10 boxes of paper they were going to use for my 100 rolls of contacts five years ago. They got lazy, they\'re gone. The few times I shopped at Ballard the service was non-chalant at best and the prices weren\'t competitive. RIP.<br><br>These days I take my stuff to Panda. Good people, good work.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9477699">\
	 <div id="dsq-comment-header-9477699" class="dsq-comment-header">\
	 <cite id="dsq-cite-9477699" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9477699">Reba</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9477699" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9477699" class="dsq-comment-message">Not to kick someone while they are down. But I do have to echo some of the comments about the service. The few times I went in service was practically non existent, so I went down the street to the camera shop next to the theater, whose service has always been stellar to me. <br><br>Best of luck in your next adventure.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9479031">\
	 <div id="dsq-comment-header-9479031" class="dsq-comment-header">\
	 <cite id="dsq-cite-9479031" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9479031">Free Ballard 4 Real</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9479031" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9479031" class="dsq-comment-message">Funny, Golden City says they are breaking all sales records. Wonder why....</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9479224">\
	 <div id="dsq-comment-header-9479224" class="dsq-comment-header">\
	 <cite id="dsq-cite-9479224" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9479224">MaryW</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9479224" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9479224" class="dsq-comment-message">Sad to see all the vacant store fronts on Market from the loss of our long-term independant  businesses.   I\'ll miss Ballard Camera.  It was where my parents had film developed from their little Brownie camera many years ago.  <br><br>Good luck to the owners and staff.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9480434">\
	 <div id="dsq-comment-header-9480434" class="dsq-comment-header">\
	 <cite id="dsq-cite-9480434" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9480434">Billy the Kid</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9480434" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9480434" class="dsq-comment-message">Wow, a Brownie. From my one visit I\'d guess Brownie technolgy was when they stopped investing in their business.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9518903">\
	 <div id="dsq-comment-header-9518903" class="dsq-comment-header">\
	 <cite id="dsq-cite-9518903" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9518903">linda</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9518903" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9518903" class="dsq-comment-message">So apparently your ONE visit left an impression. I\'ve been shopping there for a number of years. I have bought 2 NEW digital cameras from them and use every one of their other services. <br> I do like the people and the family atmosphere. If there was something they didn\'t have, they gladly ordered it for me. As I\'m sure they would have done for you. Even the overstocked overstaffed overpriced big guys have to order things at times. <br> Billy if you do get the opportunity to remove your head from your ass you will see that a community will be impacted, jobs will be lost and an era of locally owned craftsman style businesses will lose another member.  I hope you are still gainfully employed because if I ever find out you aren\'t...I won\'t care.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9520504">\
	 <div id="dsq-comment-header-9520504" class="dsq-comment-header">\
	 <cite id="dsq-cite-9520504" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9520504">Billy the Kid</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9520504" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9520504" class="dsq-comment-message">Craftsman? Are you kidding? Maybe you meant crapsman because  it sure was the crappiest looking shop along the ave.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9549567">\
	 <div id="dsq-comment-header-9549567" class="dsq-comment-header">\
	 <cite id="dsq-cite-9549567" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9549567">Linda</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9549567" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9549567" class="dsq-comment-message">Your name speaks volumes of your imaturity. It\'s not as if you actually bought something and it failed, you are basing your comments on looks. There are worse looking shops on the ave but I\'m not here to bust their chops. I buy from them too. <br>You have some growing up to do. Cut the world some slack. Everyone is trying to survive right now.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9481078">\
	 <div id="dsq-comment-header-9481078" class="dsq-comment-header">\
	 <cite id="dsq-cite-9481078" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9481078">Mario </span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9481078" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9481078" class="dsq-comment-message">We just moved to the neighborhood this last year and love Ballard Camera.   So friendly and nice - it is a shame.   Good luck to you!  Mario the white Schnauzer\'s dad.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9482729">\
	 <div id="dsq-comment-header-9482729" class="dsq-comment-header">\
	 <cite id="dsq-cite-9482729" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9482729">Race Bannon</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9482729" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9482729" class="dsq-comment-message">I went in a few times, the clutter and poor service turned me away.<br><br>Sorry to see local business go, but I don\'t blame Corp giants for this ones demise.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9484429">\
	 <div id="dsq-comment-header-9484429" class="dsq-comment-header">\
	 <cite id="dsq-cite-9484429" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9484429">jj</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9484429" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9484429" class="dsq-comment-message">ditto on BC not keeping up with the times, I used to go there alot but guit about 2 yrs ago when their service got lousy, and they did not seem to care about their regulars.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9486855">\
	 <div id="dsq-comment-header-9486855" class="dsq-comment-header">\
	 <cite id="dsq-cite-9486855" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9486855">BallardMallard</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9486855" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9486855" class="dsq-comment-message">When I was there two weeks ago, I heard the staff conversing about how they had way too many booklets of 42 cent stamps that they would struggle to sell after the new 44 cent stamps were introduced this past week.<br><br>Hey everyone, go buy some of their 42 cent stamps along with some 2 cent books from the post office.  Help your neighbor out a little.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9493569">\
	 <div id="dsq-comment-header-9493569" class="dsq-comment-header">\
	 <cite id="dsq-cite-9493569" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9493569">Frantic Freddie</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9493569" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9493569" class="dsq-comment-message">Selling stamps at a camera shop? What a brilliant business model! If only I had known the junky camera shop on Market was the place to go to get 42 cent stamps! Is the Post Office was the place to go get a Leica M8?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9498644">\
	 <div id="dsq-comment-header-9498644" class="dsq-comment-header">\
	 <cite id="dsq-cite-9498644" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9498644">leavinglasballard</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9498644" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9498644" class="dsq-comment-message">aw man, this one hurts. i bought all my scrapbooking supplies and mailed all my ebay crap there. such is life i suppose. good luck to them.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9499049">\
	 <div id="dsq-comment-header-9499049" class="dsq-comment-header">\
	 <cite id="dsq-cite-9499049" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9499049">leavinglasballard</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9499049" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9499049" class="dsq-comment-message">it strikes me as funny all these comments about ballard camera\'s poor business model. THEY\'VE BEEN AROUND 61 YEARS!! sounds like they knew what they were doing to me. nothing lasts forever, but they had a damn fine run.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9500086">\
	 <div id="dsq-comment-header-9500086" class="dsq-comment-header">\
	 <cite id="dsq-cite-9500086" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9500086">Old Camera &amp; Film Dog</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9500086" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9500086" class="dsq-comment-message">I\'ve worked with B&W film for 25+ years and love the printing but outsources the film development over the years and I love a local interdependently owned shop and will always try them first...<br><br>Unfortunately I am not surprised with the closing, digital is taking it\'s toll for one, but there is more. <br><br>The rude and wrong (with an arrogant, we are always right, you know nothing attitude) I have experienced over and over at Ballard camera has astonished me. <br><br>I\'ve been outright insulted in this shop over 4 times in the past 15 years, always kicking myself after I decided to give them another chance. <br><br>The last straw was telling me a fact I knew was correct was told rudely I was _wrong_. Well, I was not and found a much friendlier answer online with perfect results.<br><br>The time before that was an old roll of film that I wanted developed..instead of \'wasting\' their time by humoring me and developing the roll, an employee exposed the roll right there in front of me. I was aghast and so were a few other customers. The roll BTW was for an old 4x5 camera, I had two rolls and thank goodness I didn\'t reveal the other...I was able to have it processed over at the U and it turned out FINE, even being 15 years old and forgotten about with the older camera equipment (yes, guess what I *do* know how to store my film).<br><br>Their **attitude** and service sucked...BIG TIME..Still kicking myself that I accepted their abusive attitude 4 times. Just because I\'m not a professional doesn\'t mean I don\'t know my stuff OR that I deserve to be treated in such disrespectful ways. Still pissed & wish I could sue for that roll of film they exposed, but I\'s guess that\'s why they are closing shop. Bye bye.<br><br>Go to the U folks, you\'ll enjoy them a whole lot more.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9501646">\
	 <div id="dsq-comment-header-9501646" class="dsq-comment-header">\
	 <cite id="dsq-cite-9501646" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9501646">Billy the Kid</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9501646" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9501646" class="dsq-comment-message">Another satisfied customer. <br><br>When I saw the \'junk\' sign I figured it was just a regular day if business at Ballard Camera.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9511939">\
	 <div id="dsq-comment-header-9511939" class="dsq-comment-header">\
	 <cite id="dsq-cite-9511939" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9511939">Outlaw Josey Wales</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9511939" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9511939" class="dsq-comment-message">Billy are you an angry kid?  Either way you\'re kind of funny and I  completely agree. And try getting that junk out of the owner\'s hands at a deal price, I think he\'s waiting for the dust to turn to gold. He\'ll be stuck with hundreds of plastic film cameras, thousands of lens filters and a lots of neato stickers.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9521810">\
	 <div id="dsq-comment-header-9521810" class="dsq-comment-header">\
	 <cite id="dsq-cite-9521810" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9521810">Free Ballard 4 Real</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9521810" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9521810" class="dsq-comment-message">Once they get to know you they are fine. They are more for Old Ballard people, not yuppies.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9525905">\
	 <div id="dsq-comment-header-9525905" class="dsq-comment-header">\
	 <cite id="dsq-cite-9525905" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9525905">Richy</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9525905" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9525905" class="dsq-comment-message">People who use old western tough guy names on blogs to hide from the real world tend to be pricks. Pricks tend to rub people the wrong way thus probably explains why you had a bad experience.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9524242">\
	 <div id="dsq-comment-header-9524242" class="dsq-comment-header">\
	 <cite id="dsq-cite-9524242" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9524242">Blue Dog 505</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9524242" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9524242" class="dsq-comment-message">I have a question for all the people kicking someone when they are down.  Is there any businesses in Ballard you like? I know you get great service at Fred Meyer, or Target, or Costco but is there any local businesses you like?  Or is it too hard to say anything nice when your soapbox is so high?  <br><br>You know, I think you are all right.  It will be better to have a empty building there and the people who worked for them oh f em\' they can just get unemployment right?  I am not into photography so I never really went in there but I think it says huge volumes about you when you attack someone when they are already down.  Did your mom never teach you to keep you mouth shut if you have nothing nice to say? or does human kindness not apply unless your homeless?  I mean WTF is wrong with you? You think you are being cleaver, funny, or trying to make sure someone does not shop at a store where you think the people working there didn\'t shove their nose up your rear end far enough?  Can you find help at Costco? can you find someone at Target that knows where ANYTHING is? Can you find anyone at Freddie\'s to help you? <br>I find it disgusting that people think it is ok to hide behind their computers like little kids and say things they would NEVER have the balls to say in person.  I know it is just a few people but how do you think it makes the owners and people who worked their feel? <br><br>To end my post:<br>TO Ballard Camara, I never shopped there, but that\'s because I don\'t take photos.  I am sure life will hold alot of fun and exciting adventures for you all and wish you the best of luck.  Only the ones who never give up succeed.<br><br>N-</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9528107">\
	 <div id="dsq-comment-header-9528107" class="dsq-comment-header">\
	 <cite id="dsq-cite-9528107" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9528107">Grubby Ballard</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9528107" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9528107" class="dsq-comment-message">"I don\'t take photos"<br><br>But I thought they were on the Post Office business? This is so confusing.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9526615">\
	 <div id="dsq-comment-header-9526615" class="dsq-comment-header">\
	 <cite id="dsq-cite-9526615" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9526615">Sad to see...</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9526615" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9526615" class="dsq-comment-message">So very very sorry to hear this - and to all the naysayers - we had all of our digital photos developed at BC, and purchased our last digital camera from them.  The quality was fantastic compared to other places around town, and as a mom, I *loved* the convenience of being able to upload photos in the middle of the night, and then just drive down the next day or two to get them.  Plus loved the white border options!   More than anything, I *loved* the friendly service - they always remembered my name, and knew my kids just by sight - not to mention the Halloween photos.  Only good shot we got one year....<br><br> I am so sorry to hear they are going, and can\'t imagine where I will go now...  Any chance you\'ll maintain a web only store????</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9528170">\
	 <div id="dsq-comment-header-9528170" class="dsq-comment-header">\
	 <cite id="dsq-cite-9528170" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9528170" href="http://www.flickr.com/photos/quiggphoto/" target="_blank" rel="nofollow">David Quigg</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9528170" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9528170" class="dsq-comment-message">Look, I\'m not going to pretend Ballard Camera is perfect. But the shop was good to me in key ways that really counted. They were, for example, the perfect antidote to the treatment I got down the street at Camera Techs on my very first day of owning a digital SLR.<br><br>I\'d practically bounced in the door of Camera Techs, totally giddy to find a lens that would team up with my brand-new camera body to form a functioning camera. The employee behind the counter got this stricken look on his face. He asked me if there was any way -- any possible way whatsoever -- to go and get my money back for my new camera. See, he liked Canons. I\'d purchased a camera made by some fly-by-night operation called Nikon. Therefore, apparently, my judgment and my camera were pure crap. I left Camera Techs with no lens, totally dejected, doubting myself and my camera. I staggered off and got a cup of coffee at Cugini.<br><br>When I regained my bearings, I went to Ballard Camera. They hadn\'t sold me my new camera. But they\'d processed a lot of my film as I re-learned how to shoot over the previous couple of years. They congratulated me on my new digital camera and helped me find a wonderful used lens. The lens still works great. So does the camera, which -- despite the fact it\'s merely a Nikon -- has literally never failed me. <br><br>Whatever else the critics want to pile on and say now about Ballard Camera, I found the shop consistently kind and encouraging. You can see that spirit in these very comments, as Kathleen Cozens reminisces about Halloweens past and tries to steer former customers to one of the local, independent shops that\'s still standing.<br><br>It\'s worth noting, too, that Kathleen used her real name here. The people spewing the worst of the nastiness here used pseudonyms. I don\'t doubt that their problems with Ballard Camera are sincere. I just doubt they\'d chose to be quite so caustic if they had to attach their own names to their words. This interplay between venom and anonymity is probably my least favorite thing about the Web.<br><br>Best of luck to Kathleen and the other people behind Ballard Camera.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9549923">\
	 <div id="dsq-comment-header-9549923" class="dsq-comment-header">\
	 <cite id="dsq-cite-9549923" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9549923">Barfly</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9549923" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9549923" class="dsq-comment-message">"They are more for Old Ballard people, not yuppies."<br><br>So why should we be sorry they folded?<br><br>And since when does Old Ballard = run down, rude businesses with out of date offerings?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9556833">\
	 <div id="dsq-comment-header-9556833" class="dsq-comment-header">\
	 <cite id="dsq-cite-9556833" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9556833">Grubby Ballard</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9556833" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9556833" class="dsq-comment-message">You can see how yuppies are destroying Ballard by insisting on clean, well-organized shops, stuffed with new cameras and shinny things. Whatever happened to the joy of digging through piles of old stock in a drab and dreary shop looking for what u need all by yourself?<br><br>Only yuppies want good service, nice products and competitive prices.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9564186">\
	 <div id="dsq-comment-header-9564186" class="dsq-comment-header">\
	 <cite id="dsq-cite-9564186" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9564186">Free Ballard 4 Real</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9564186" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9564186" class="dsq-comment-message">No, but if you come flitting in after cashing in you\'re dotcom stock, snapping you\'re fingers and expect everyone to drop everything because an almighty new Ballard condo owner has arrived, good luck. Nobody is impressed, trust me. <br><br>Old Ballard people tend to be more into waiting on other Old Ballard people first. Normally, because they want to catch up with eachother and are old friends. I have shot the breeze with the Ballard camera crew many times myself. They are cool.<br><br>If you don\'t like it, well tough luck. Old Ballard people are not here to babysit the new balard condo owners or the transients they brought with them. If you can\'t figure out what you need at a basic camera store, buy the crap online at <a href="http://amazon.com" rel="nofollow">amazon.com</a>.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9564283">\
	 <div id="dsq-comment-header-9564283" class="dsq-comment-header">\
	 <cite id="dsq-cite-9564283" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9564283">Frantic Freddie</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9564283" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9564283" class="dsq-comment-message">Tough luck? For who, BC? Maybe if you spent more money and talked less they\'d still be in business.<br><br>And you don\'t buy cameras  from Amazon. <a href="http://Adorama.com" rel="nofollow">Adorama.com</a> in  NY, no sales tax.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9566052">\
	 <div id="dsq-comment-header-9566052" class="dsq-comment-header">\
	 <cite id="dsq-cite-9566052" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9566052">Free Ballard 4 Real</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9566052" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9566052" class="dsq-comment-message">They were there 61 years. Longer than almost anyone in Ballard. They were for serious photographers, who were in the store all the time. Trust me, I spent plenty of money there. The problem with you electronics store people, is you think only about having a saleman kiss your butt, as you buy the most expensive camera in the place, but are clueless how to use it. Do you even know how much the machine they use to develope film is worth at Ballard Camera? It\'s far from outdated, believe me.<br><br>But, I know plenty of Old Ballard business people who were perfectly happy before the new Ballard people showed up, and many are finally free from your abuse. Who cares that you had some dumb job at Microsoft or some porn site and can now buy a camera and condo that you will lose in a year once you are laid off. Those people are experts at what they do, and your spoiled brats that fell into cushy jobs after moving out of Mommys house that are being shipped over seas. But, you dont even have the life experience to know it, or understand how annoying you are to us in Ballard.<br><br>Maybe if you asked an intelligent question at Ballard Camera, they would not have treated you as the hobbyist you are, wasting everyones time that works there and holding up the line with your nonsense.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9564258">\
	 <div id="dsq-comment-header-9564258" class="dsq-comment-header">\
	 <cite id="dsq-cite-9564258" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9564258">Free Ballard 4 Real</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9564258" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9564258" class="dsq-comment-message">I personally think it had the best service on Market Street. Maybe you are just clueless and looking for somebody to wipe your behind. If you don\'t know anything about photography, get a book. They are not runing a day care center for newbies. The developing was the best you will find, which Is why I always had mine done there, even if it cost slightly more. The people in there will talk circles around anyone on this blog when it comes to photography.... Dumbasses</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9561773">\
	 <div id="dsq-comment-header-9561773" class="dsq-comment-header">\
	 <cite id="dsq-cite-9561773" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9561773">Laura</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9561773" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9561773" class="dsq-comment-message">Monica, Bruce and Kathleen-<br>From the day I came in asking what kind of film to get for our daughter\'s birth to seeing her picture in your store window I always thought you\'d be that friendly \'just stop in to chat\' and talk kids place.  I\'m so sad you\'re leaving.  Good luck to all of you and may you find success in your next endeavor.  Keep in touch.  Laura/Sarah/Chris</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9569636">\
	 <div id="dsq-comment-header-9569636" class="dsq-comment-header">\
	 <cite id="dsq-cite-9569636" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9569636">Jana</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9569636" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9569636" class="dsq-comment-message">I too am very sad to see Ballard Camera closing.  I worked for Similian Lab, Kodalux Processing Lab, Lerner Processing Lab, Kodak Premium Processing, Qualex and even Fuji Processing Lab over the past ...few/many years, depending how old you are.  And I have dealt with Bruce and Ballard Camera for all of those years, they were and in my opinion still one of the BEST camera shops in Washington.  Unfortunatly they are not the first and will NOT be the last to close.  I am truly blown away and disgusted by the negative and ignorant comments being made by Billy, Salmon, Race and Outlaw, have any of you been in the REAL world lately?  Ritz Camera has just filed Chapter 11 and they are closing 300 of their 700 storefronts (most of them in WA.) Kodak, which I would consider to be a fairly "connected" company has closed ALL of their film processing labs.  With Kodaks closures I am sure we will see even more independant photo shops closing, because they do not have the equipment in house to process film.  So Billy, what do YOU, the almighty, think about that, GROW UP and have a little "empathy" (look the word up you might learn something) for your neighbor.   Bruce, Kathleen, Monica you all WILL be missed by MANY!!! Take care and best wishes for your future.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9587784">\
	 <div id="dsq-comment-header-9587784" class="dsq-comment-header">\
	 <cite id="dsq-cite-9587784" class="dsq-comment-cite">\
	 <span id="dsq-author-user-9587784">Mike</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9587784" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9587784" class="dsq-comment-message">I am surprised Ballard Camera has held on for so long.  At the end of 1996, Benco Photo was closed in Tacoma.  Benco processed film overnight for all Safeway stores in five states (Washington, Oregon, Idaho, Montana and Alaska).  I was proud to be a part of this amazing quality operation.  Back then, the digital revolution was just beginning to rival 35mm quality.  The writing was on the wall when it was announced that we were all to be laid off by years end.  Now, over 12 years later, I don\'t know of anyone using film based cameras.  With high quality 24 Megapixel digital cameras available, film is simply obsolete.  Safeway made the right business choice to close Benco years ago, but the pain of that decision in human suffering still stings today.  Wishing Ballard Camera and their employees all the best for a job well done.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-9597729">\
	 <div id="dsq-comment-header-9597729" class="dsq-comment-header">\
	 <cite id="dsq-cite-9597729" class="dsq-comment-cite">\
	 <a id="dsq-author-user-9597729" href="http://picasaweb.google.com/silverone" target="_blank" rel="nofollow">Silver</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-9597729" class="dsq-comment-body">\
	 <div id="dsq-comment-message-9597729" class="dsq-comment-message">I didn\'t see this post and stumbled upon the sale by coincidence! It\'s dangerous! I accidentally bought several (more) old cameras! Don\'t tell my boyfriend. ;-)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-11882359">\
	 <div id="dsq-comment-header-11882359" class="dsq-comment-header">\
	 <cite id="dsq-cite-11882359" class="dsq-comment-cite">\
	 <span id="dsq-author-user-11882359">DocHicklin</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-11882359" class="dsq-comment-body">\
	 <div id="dsq-comment-message-11882359" class="dsq-comment-message">As a long time customer of this great business, I have to admit that when monica sold me my cannon digital camera, my olympus hasnt been used since I got the cannon, so indeed the element of getting prints developed there just stopped. I had a friend in town with me yesterday as we were driving past and I saw the sign that said going out of business, I just gasped and thought to myself, what the hell happened there, and then I thought, dam it, I was a contributing factor to this untimely end of a great business as I looked down in my pocket and saw the cannon camera. So this is progress? Well that is controversial at best, Ballard Camera and the wonderful crew that worked there to me was one of the best business atmosphere that a customer could experience in the Ballard community, I am sure I am not alone when I say that all of them shall be sorely missed. <br><br>J. Dennis Hicklin</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-20940551">\
	 <div id="dsq-comment-header-20940551" class="dsq-comment-header">\
	 <cite id="dsq-cite-20940551" class="dsq-comment-cite">\
	 <span id="dsq-author-user-20940551">glenn</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-20940551" class="dsq-comment-body">\
	 <div id="dsq-comment-message-20940551" class="dsq-comment-message">Gee- ballard camera is closed. why did they accept my online order oct. 3 ,2009 then ? is this their standard quality of service ?</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=myballard&t=after_61_years_ballard_camera_is_closing&to_redirect=' + encodeURIComponent(window.location) + '&ifrs=' + encodeURIComponent(disqus_iframe_css);
			}
		}
	}

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

	



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

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

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

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

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


	
		Dsq.Debug.log('Loading fbc');
		window.DisqusFbcParentController = (function (){
	var obj = {};
	
	// Private
	var rpcServer = null;
	var initted = false;
	var onInit = [];
	var user = null;
	var defaultRpcClient = null;
	var receiverUrl = "http://disqus.com/facebook-connect/xd_receiver.htm";
	var loginNode = document.getElementById('dsq-fbc-login');
	var authenticatedNode = document.getElementById('dsq-fbc-authenticated');
	var fbName = document.getElementById('dsq-fbc-name');
	var fbPic = document.getElementById('dsq-fbc-profilepic');
	var iframes = { 
		// Map of rpcServerName -> (rpcClient, iframeDomNode) pairs
		// Main Disqus iframe is added by init()
	};
	var makeRpcServerName = function(opt_postId) {
		// this method should be identical here and in iframeController factored out 
		if (opt_postId === undefined) {
			return 'disqusIframeFbcRpcServer';
		} else {
			return 'disqusIframeFbcRpcServer-' + opt_postId;
		}
	};
	var makeRpcClientName = function(opt_postId) {
		if (opt_postId === undefined) {
			return 'disqusParentFbcRpcClient';
		} else {
			return 'disqusParentFbcRpcClient-' + opt_postId;
		}
	};
	var updateFrame = function(rpcServerName) {
		var rpcClient = iframes[rpcServerName][0];
		var iframeNode = iframes[rpcServerName][1];
		rpcClient.send('setConnected', user);
		iframeNode.className = user ? 'dsq-post-reply-authenticated' : 'dsq-post-reply';
	};
	var setUser = function(userNow) {
		user = userNow;
		// pass null user data to signify logout
		var rpcServerName = null;
		for (rpcServerName in iframes) {
			updateFrame(rpcServerName);
		}
	};
	var createRpcClient = function(frameNode, opt_postId) {
		// Creates an XdRpcClient for communication with the iframe frameNode with parent comment 
		// equal to opt_postId. If this argument is undefined, creates a client for communicating with 
		// the main Disqus iframe. The XdRpcClient and frameNode are added to the "iframes" array.
		//
		// Returns the rpcServerName that the client is accessing. This name is also the index into
		// the "iframes" array.
		var ifName = Dsq.Iframes.makeReplyIframeName(opt_postId);
		var rpcServerName = makeRpcServerName(opt_postId);
		var rpcClientName = makeRpcClientName(opt_postId);
		var endpoint = new FB.XdComm.EndPoint(ifName, FB.XdComm.PageRelation.child, receiverUrl);
		var rpcClient = new FB.XdComm.XdRpcClient(rpcServerName, rpcClientName, endpoint, receiverUrl);
		iframes[rpcServerName] = [rpcClient, frameNode];
		if (window.isMashable) {
			// TODO: does this belong here?
			// Right now only Mashable needs this, because only they have a Connect button
			// inside the iframe, and that's the only iframe-> server communication
			rpcClient.send('createRpcClient', FB.XdComm.Server.singleton.get_receiverUrl());
		}
		return rpcServerName;
	};
	var postToNewsfeed = function(opt_result) {
		// Argument opt_result is an object containing values of the fb_connect_newsfeed cookies. 
		// These are `postId`, the id of the comment just posted, and `url`, the shortened link to it
		if (!opt_result) {
			return;
		}
		var activeComment = Dsq.Thread.getActiveCommentId();
		if (activeComment != opt_result.postId) {
			return;
		}
		var comment = Dsq.jsonData.posts[activeComment];
		params = {
			'site_name': Dsq.jsonData.forum.name,
			'comment_url': opt_result.url,
			'message': Dsq.Utils.stripTags(comment.message)
			};
		FB.Connect.showFeedDialog(83035958976, params, null, null, null, FB.RequireConnect.require);
	};
	var requireSession = function() {
		// Used when the iframe wants to initiate an FB Connect session
		FB.Connect.requireSession(obj.onLogin);
	};
	
	var onCreateReplyIframe = function(value) {
		if (value.xtype) {
			return;
		}
		var postId = value['postId'];
		if (!postId) {
			// We handle the main iframe separately, so in case somehow this gets called, skip it
			return;
		}
		var frameNode = value['node'];
		var rpcServerName = createRpcClient(frameNode, postId);
		updateFrame(rpcServerName);
		if(user && postId) {
			var node = document.getElementById('dsq-reply-bar-auth-' + postId);
			if (node) { // Not present in Mashable
				node.style.display = 'none';
			}
		}
	};

	// Public
	obj.onLogin = function() {
		// This is triggered either when the user connects or when they're already connected on visit
		var dsqReplyAuth = Dsq.Utils.getElementsByClassName(document, 'div', 'dsq-reply-bar-auth');
		var noAnonMsg = document.getElementById('dsq-no-anon-msg');
		
		if(noAnonMsg) { noAnonMsg.style.display = 'none'; }
		loginNode.style.display = 'none';
		for(var i=0; i<dsqReplyAuth.length; i++) {
			dsqReplyAuth[i].style.display = 'none';
		}
		
		authenticatedNode.style.display='block';
		FB.XFBML.Host.addElement(new FB.XFBML.ProfilePic(Dsq.$('dsq-fbc-profilepic')));
		FB.XFBML.Host.addElement(new FB.XFBML.Name(Dsq.$('dsq-fbc-name')));
		FB.Connect.getSignedPublicSessionData(setUser);
		
		if(document.getElementById('dsq-login-message')) {
			document.getElementById('dsq-login-message').style.display = 'none';
		}

		
		if(typeof(fbcLoginCallback) == 'function') {
			fbcLoginCallback();
		}
	};
	obj.logout = function() {
		var dsqReplyAuth = Dsq.Utils.getElementsByClassName(document, 'div', 'dsq-reply-bar-auth');
		var noAnonMsg = document.getElementById('dsq-no-anon-msg');
		
		FB.Connect.logout();
		if (!window.isMashable) {
			loginNode.style.display='inline';
		}
		
		if(noAnonMsg) { noAnonMsg.style.display = 'block'; }
		
		for(var i=0; i<dsqReplyAuth.length; i++) {
			dsqReplyAuth[i].style.display = 'block';
		}
		
		authenticatedNode.style.display='none';
		// Passing null user data to signify logout
		setUser(null);
		
		if(document.getElementById('dsq-login-message')) {
			document.getElementById('dsq-login-message').style.display = 'block';
		}
		
		if(typeof(fbcLogoutCallback) == 'function') {
			fbcLogoutCallback();
		}

		return false;
	 };
	obj.ensureInit = function(callback) {
		// If the controller hasn't already been initted, will wait until it has been before calling
		// callback; otherwise, calls it immediately. Does not attempt to call init.
		if (initted) {
			callback();
		} else {
			onInit.push(callback);
		}
	};
	obj.init = function() {
		// This method should be called after the FB scripts have loaded, FB.init has been called, 
		// and XdComm loaded.
		if (initted) {
			// I think this double init is caused by a bug with FB.ensureInit
			return;
		}
		var frameNode = Dsq.$(Dsq.Iframes.makeReplyIframeId());
		var rpcServerName = createRpcClient(frameNode);
		defaultRpcClient = iframes[rpcServerName][0];
		if (!window.isMashable) {
			FB.XFBML.Host.addElement(new FB.XFBML.LoginButton(loginNode));
		}
		Dsq.Events.addHandler(Dsq.Events.REPLY_IFRAME_CREATED, onCreateReplyIframe);
		if (Dsq.Thread.getActiveCommentId()) {
			// If there's a highlighted comment, we may have just posted, so check the cookie
			// to see if we should post to newsfeed.
			defaultRpcClient.send('queryNewsfeed', null, postToNewsfeed);
		}
		if (window.isMashable) {
			// Right now only Mashable needs this, because only they have a Connect button
			// inside the iframe, and that's the only iframe-> server communication
			var exportedMethods = {
				requireSession : {'method': requireSession}
			};
			rpcServer = new FB.XdComm.XdRpcServer('disqusParentFbcRpcServer', exportedMethods);

		}
		initted = true;
		for (var i=0; i<onInit.length; i++) {
			onInit[i]();
		}
	};

	return obj;
})();

		ExecuteWhen.add(window.fbIsReady,
			function() {
				FB.ensureInit(function () {
					DisqusFbcParentController.init();
					FB.Connect.ifUserConnected(DisqusFbcParentController.onLogin);
				});
			});
	


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

})();




