




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": {"7e88749c7231cf1dfbff84608d3bec76": {"username": "Joe", "tumblr": "", "display_name": "Joe", "url": "http://disqus.com/guest/7e88749c7231cf1dfbff84608d3bec76/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "88f11316e9792d8d9a50497b69df192a": {"username": "Jessica W", "tumblr": "", "display_name": "Jessica W", "url": "http://disqus.com/guest/88f11316e9792d8d9a50497b69df192a/", "registered": false, "linkedin": "", "blog": "http://www.pennywisefamily.blogspot.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "03efb12f89d6580632290d1610afc6c8": {"username": "scooter", "tumblr": "", "display_name": "scooter", "url": "http://disqus.com/guest/03efb12f89d6580632290d1610afc6c8/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "cd6c6885716c760402f9053f55439c01": {"username": "Rebekah", "tumblr": "", "display_name": "Rebekah", "url": "http://disqus.com/guest/cd6c6885716c760402f9053f55439c01/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "c6fb0a14c497c4d460d2747f14a99dbb": {"username": "Chris", "tumblr": "", "display_name": "Chris", "url": "http://disqus.com/guest/c6fb0a14c497c4d460d2747f14a99dbb/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "1f6eada63c2be7be101949914b083f6d": {"username": "Sara", "tumblr": "", "display_name": "Sara", "url": "http://disqus.com/guest/1f6eada63c2be7be101949914b083f6d/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "2463f1bd85aea23703f320e67d33f349": {"username": "John", "tumblr": "", "display_name": "John", "url": "http://disqus.com/guest/2463f1bd85aea23703f320e67d33f349/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "54cbe520f8bcce1a249a3bf4cd0bc25a": {"username": "Gary G", "tumblr": "", "display_name": "Gary G", "url": "http://disqus.com/guest/54cbe520f8bcce1a249a3bf4cd0bc25a/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "723889673d8d95a6a3c66c8227d9306d": {"username": "Brad Davies", "tumblr": "", "display_name": "Brad Davies", "url": "http://disqus.com/guest/723889673d8d95a6a3c66c8227d9306d/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "9892623ba149c4d4bb0f3e3d003276a5": {"username": "Sam", "tumblr": "", "display_name": "Sam", "url": "http://disqus.com/guest/9892623ba149c4d4bb0f3e3d003276a5/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "626e5a8cfcc63e74dedb30ede3faa5ac": {"username": "Bdouglass", "tumblr": "", "display_name": "Bdouglass", "url": "http://disqus.com/guest/626e5a8cfcc63e74dedb30ede3faa5ac/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3f009d72559f51e7e454b16e5d0687a1": {"username": "Brandon", "tumblr": "", "display_name": "Brandon", "url": "http://disqus.com/guest/3f009d72559f51e7e454b16e5d0687a1/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "f285a901a5a711f4e17a8ec1312a912f": {"username": "phil", "tumblr": "", "display_name": "phil", "url": "http://disqus.com/guest/f285a901a5a711f4e17a8ec1312a912f/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "9edd01ef53dd957130425bea05d8f52a": {"username": "KB", "tumblr": "", "display_name": "KB", "url": "http://disqus.com/guest/9edd01ef53dd957130425bea05d8f52a/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "5f53c0d3705c10e765e11d3c57d83338": {"username": "Suzanne", "tumblr": "", "display_name": "Suzanne", "url": "http://disqus.com/guest/5f53c0d3705c10e765e11d3c57d83338/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "0dc480c33eda687eef0a59db29aa59e3": {"username": "melodiiii", "tumblr": "", "display_name": "melodiiii", "url": "http://disqus.com/guest/0dc480c33eda687eef0a59db29aa59e3/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "7747d9c5b88ec6f94c2308baafa1d872": {"username": "Paul", "tumblr": "", "display_name": "Paul", "url": "http://disqus.com/guest/7747d9c5b88ec6f94c2308baafa1d872/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "4418bde55d23bff211a0d9e6cfdf7bc7": {"username": "Elsa", "tumblr": "", "display_name": "Elsa", "url": "http://disqus.com/guest/4418bde55d23bff211a0d9e6cfdf7bc7/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "7440f3c33226c5e7b08d2778e2ef8ead": {"username": "Emily", "tumblr": "", "display_name": "Emily", "url": "http://disqus.com/guest/7440f3c33226c5e7b08d2778e2ef8ead/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "18505357311fa8dbf5555e421293f3f4": {"username": "Brian", "tumblr": "", "display_name": "Brian", "url": "http://disqus.com/guest/18505357311fa8dbf5555e421293f3f4/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "64f448215ce3722bd33183f4826d13e1": {"username": "ratbert2003", "tumblr": "", "display_name": "ratbert2003", "url": "http://disqus.com/guest/64f448215ce3722bd33183f4826d13e1/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "cc42e3081d4a1e8aa99b01ccc3d13b35": {"username": "Cheryl", "tumblr": "", "display_name": "Cheryl", "url": "http://disqus.com/guest/cc42e3081d4a1e8aa99b01ccc3d13b35/", "registered": false, "linkedin": "", "blog": "http://www.FlamingoVilla.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "2da077f50b678f95e7290548ac8a327b": {"username": "Demetra", "tumblr": "", "display_name": "Demetra", "url": "http://disqus.com/guest/2da077f50b678f95e7290548ac8a327b/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "0dee3bb7096444e9f12cc99fa34cf6b2": {"username": "Brad", "tumblr": "", "display_name": "Brad", "url": "http://disqus.com/guest/0dee3bb7096444e9f12cc99fa34cf6b2/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6560d51df1882fc8b6ec1343c15acd3f": {"username": "Bill M.", "tumblr": "", "display_name": "Bill M.", "url": "http://disqus.com/guest/6560d51df1882fc8b6ec1343c15acd3f/", "registered": false, "linkedin": "", "blog": "http://www.questempire.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "2c060eb13ee16dd2ccfaa68a5ad3f213": {"username": "Brian", "tumblr": "", "display_name": "Brian", "url": "http://disqus.com/guest/2c060eb13ee16dd2ccfaa68a5ad3f213/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "1065997bfce904ed473b37ac1891ca01": {"username": "David", "tumblr": "", "display_name": "David", "url": "http://disqus.com/guest/1065997bfce904ed473b37ac1891ca01/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "donlevine": {"username": "donlevine", "tumblr": "", "display_name": "donlevine", "url": "http://disqus.com/donlevine/", "registered": true, "linkedin": "", "blog": "", "remote_domain": null, "points": 1, "facebook": "http://www.facebook.com/people/Donald-Levine/528185991", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "5b11bb621f572c5f731458d687443107": {"username": "Rob", "tumblr": "", "display_name": "Rob", "url": "http://disqus.com/guest/5b11bb621f572c5f731458d687443107/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "927b4148a2f42fe495ec9139b5f46b7c": {"username": "Matthew", "tumblr": "", "display_name": "Matthew", "url": "http://disqus.com/guest/927b4148a2f42fe495ec9139b5f46b7c/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "67e784116ed247892837bc55dc7452b9": {"username": "Tanner", "tumblr": "", "display_name": "Tanner", "url": "http://disqus.com/guest/67e784116ed247892837bc55dc7452b9/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "63d4e8b0d1895d64126cf9acdd6ae506": {"username": "Jack", "tumblr": "", "display_name": "Jack", "url": "http://disqus.com/guest/63d4e8b0d1895d64126cf9acdd6ae506/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "e51fe287d1526c3f14db021c963c356b": {"username": "Felix", "tumblr": "", "display_name": "Felix", "url": "http://disqus.com/guest/e51fe287d1526c3f14db021c963c356b/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "99d42abc23ffae88fabd43031727d297": {"username": "Bill C", "tumblr": "", "display_name": "Bill C", "url": "http://disqus.com/guest/99d42abc23ffae88fabd43031727d297/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "flexocc": {"username": "flexocc", "tumblr": "", "display_name": "Flexo", "url": "http://disqus.com/flexocc/", "registered": true, "linkedin": "", "blog": "http://consumerismcommentary.com/", "remote_domain": null, "points": 6, "facebook": "http://www.facebook.com/flexo", "avatar": "http://media.disqus.com/uploads/users/107/9411/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "http://twitter.com/flexo", "remote_domain_name": ""}, "1f0c08dd072f2938ad95b55b9a7bccbc": {"username": "Matt A", "tumblr": "", "display_name": "Matt A", "url": "http://disqus.com/guest/1f0c08dd072f2938ad95b55b9a7bccbc/", "registered": false, "linkedin": "", "blog": "http://tracesofgeek.blogspot.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "4906aed6d871724e82c5251ccb50b52e": {"username": "BDC", "tumblr": "", "display_name": "BDC", "url": "http://disqus.com/guest/4906aed6d871724e82c5251ccb50b52e/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "6a442f1736bb93c35ff265361b506c19": {"username": "Ken N.", "tumblr": "", "display_name": "Ken N.", "url": "http://disqus.com/guest/6a442f1736bb93c35ff265361b506c19/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "73f483676e71ad75d007f4575cd06e69": {"username": "Squawkfox", "tumblr": "", "display_name": "Squawkfox", "url": "http://disqus.com/guest/73f483676e71ad75d007f4575cd06e69/", "registered": false, "linkedin": "", "blog": "http://www.squawkfox.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "75fa2205201fc85944c51086756a2fd8": {"username": "Michael", "tumblr": "", "display_name": "Michael", "url": "http://disqus.com/guest/75fa2205201fc85944c51086756a2fd8/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "4be48e138546cc85e3056b54a4190c46": {"username": "Infidel", "tumblr": "", "display_name": "Infidel", "url": "http://disqus.com/guest/4be48e138546cc85e3056b54a4190c46/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}}, "forum": {"use_media": true, "name": "Consumerism Commentary", "streaming_realtime": false, "url": "consumerismcommentary", "allow_anon_post": true, "reactions_enabled": false, "reply_position": 1, "show_avatar": true, "allow_anon_votes": true, "disqus_auth_disabled": false}, "realtime_enabled": false, "request": {"username": "", "is_global_moderator": false, "sharing": {}, "sort": 4, "forum": "consumerismcommentary", "is_initial_load": true, "is_authenticated": false, "timestamp": "2009-11-28_23:43:07", "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": {"21961606": {"up_voted": false, "ip": "", "has_replies": false, "message": "I opened an account with Discover Bank about two months ago.  I have had nothing but trouble with it.  After opening the account, you are supposed to get a welcome kit in the mail in 7-10 days.  I took 3 weeks for me to get mine.  I was starting to wonder if my $5000 had just disappeared when I finally got a statement that showed my deposit.  However, the biggest problem I have had is with the Discover Bank website.  I submitted the application for online registration so that I could access the online banking.  You are supposed to get a response within 2-3 days.  After a week I still hadn't heard back from Discover.  I got no help from customer service.  After submitting a second application for online registration I finally received an email that said I didn't qualify for online banking.  What??  I don't understand that.  Since then I have made several more attempts to view my account online, but I've had no success.  I have finally given up.  I am closing this account as soon as the 90 days is up so that I don't have to pay the early closure fee.  The interest rate is definitely not worth the hassle for this one.  I have had my fair share of online savings accounts and I have never had this much trouble with any bank.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-11-05_13:38:02", "killed": false, "user_key": "cd6c6885716c760402f9053f55439c01", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "11/05/2009 01:38 PM", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 21317091, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "21811523": {"up_voted": false, "ip": "", "has_replies": false, "message": "Now, Beacon has stars but I am still worried. Why was going public important to their operations? I loved the bank before the transition because of the good returns an FLEX accounts. Now the pressure is on to lower interest rates to widen profit margins to produce dividends.  Risky investments are part of the malaise. Seemingly big  retirement bonuses and rigged buybacks are unsettling. The interest rates are no longer attractive with the 2 starred sword of Democles poised over the Bank. Reducing mycommitment might be wise. Am I wrong?  DL", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-11-03_18:34:26", "killed": false, "user_key": "donlevine", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "11/03/2009 06:34 PM", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 21317100, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "22262618": {"up_voted": false, "ip": "", "has_replies": false, "message": "ING Direct is the best. I've had them since I was like 17 or 18. Have multiple orange savings accts for different things, normal savings, travel fund, vehicle fund, etc. Use the electric orange as my primary checking account. Customer service is absolutely fantastic. They answer the phone within seconds and there's no ridiculous automated system to get through. Their electric orange bill pay is the easiest thing ever. I get an e-bill through ING bill pay with my Amex which makes things even easier.<br><br>I've had a wonderful experience with Amex since my parents added me to their account when I turned 16 and got my driver's license and became their personal assistant. (ugh!) Anyway, years later and I have my own AmEx card now and always had a positive experience when calling them, etc. And their website is so easy to use! My dad has like 3 amex cards and it's easy to see at a glance the balances and stuff. They've overnighted me a new card for free every time I lost it which happened a lot when I first got my parents card back in high school years. (Imagine how shocked I was when they offered to overnight a new card for free the time I \"accidentally\" dropped it on the way out from the dry cleaner's and told my parents I guess I can't pick up their stuff anymore now that my amex card is lost. that one sure backfired.) My bank back then would never overnight my debit card unless I wanted to pay $35 or something ridiculous like that. So I'm sure their online savings account customer service is superb as well.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-11-08_18:47:34", "killed": false, "user_key": "927b4148a2f42fe495ec9139b5f46b7c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "11/08/2009 06:47 PM", "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}, "21317058": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have three high interest savings accounts. I tend to move my savings around based on interest rates. The money I keep on hand in cash is generally for my emergency fund. You've listed solid savings options. :)", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-12-18_20:27:20", "killed": false, "user_key": "73f483676e71ad75d007f4575cd06e69", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "12/18/2008 08:27 PM", "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}, "21317059": {"up_voted": false, "ip": "", "has_replies": true, "message": "If I may add my two cents... I have had some TERRIBLE experiences with HSBC's customer service...its hard to get someone on the phone, several times I've been transferred to a dead line or transferred to someone who says they can't help me nor can they transfer me to anyone else.  Also, they don't keep their website current (and not just one forgotten page, several pages, linked from the homepage! inexcusable...) and its hard to find someone who knows what's current and what's not.  I'd take my money elsewhere.<br><br>That being said, I've had good experiences with GMAC and ING.  GMAC has a pretty good rate and I haven't had any problems with them.  If it had a better rate, my ING account would be my handsdown favorite... love the automation and subaccounts feature... because of the low rate though I mostly use it to fund my sharebuilder account on short notice.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-12-19_11:30:01", "killed": false, "user_key": "1f6eada63c2be7be101949914b083f6d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "12/19/2008 11:30 AM", "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}, "21317060": {"up_voted": false, "ip": "", "has_replies": true, "message": "Do you know something we don't yet about E-Trade?  Their savings account rate is 3.3%, has been for a while now.  I also have FNBO, but keep more in ETrade still just because of the slightly higher rate.  If they drop to 3.01 I'll be moving, but I can't find that anywhere on their site or recent announcements.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-12-19_14:20:44", "killed": false, "user_key": "2c060eb13ee16dd2ccfaa68a5ad3f213", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "12/19/2008 02:20 PM", "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}, "21317061": {"up_voted": false, "ip": "", "has_replies": false, "message": "Brian: Yes, E-Trade Bank's savings account interest rate will drop to 3.01% as of the end of the day today (Friday, December 19) according to my contact at the bank.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2008-12-19_14:48:36", "killed": false, "user_key": "flexocc", "has_been_anonymized": false, "edited": false, "author_is_moderator": true, "from_request_user": false, "votable": true, "date": "12/19/2008 02:48 PM", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 21317060, "depth": 1, "points": 0, "author_is_creator": true, "is_realtime": false}, "21317062": {"up_voted": false, "ip": "", "has_replies": true, "message": "Venture Bank Direct's Wise Choice Savings is still at 3.6% APY.  I emailed them this morning because I was concerned that they'd dropped their rate and that their website hadn't reflected it, but they replied and said their rate has not changed.  Which is good, it means I don't have to move my money to another account and/or create a new savings account! My Emigrant Direct American Dream Savings account dropped from 3.0% to 2.75% today, bummer!  Also my Schwab Investor checking dropped from 1.5% to 1% which is better than ING's Electric Orange: 1.5% --&gt; 0.5%.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-12-19_16:24:53", "killed": false, "user_key": "64f448215ce3722bd33183f4826d13e1", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "12/19/2008 04:24 PM", "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}, "21317063": {"up_voted": false, "ip": "", "has_replies": false, "message": "I like E*Trade, very fast transfers, i have my checking account there and love it, never had any problems.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-12-19_17:23:44", "killed": false, "user_key": "6560d51df1882fc8b6ec1343c15acd3f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "12/19/2008 05:23 PM", "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}, "21317064": {"up_voted": false, "ip": "", "has_replies": false, "message": "I'm quite happy with GMAC &amp; have the vast majority of my cash there, both in savings and CDs.  They have very good rates on both types of accounts.  I use the savings account as a funding source for Sharebuilder and so far no hiccups.  I talked to a CSR on the phone about a month ago regarding CD funding, and that went smoothly, no hassles.<br><br>I also have a HY eOne checking account at salemfivedirect dot com, and that has worked out well too.  The almost-3% rate isn't as good as some HY savings accounts, but it beats a 0% checking account elsewhere (hear me, Wamu, Wells?).  They give you checks, a cash card, and ATM rebates.  Their bill-pay is OK too.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-12-19_23:53:30", "killed": false, "user_key": "4be48e138546cc85e3056b54a4190c46", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "12/19/2008 11:53 PM", "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}, "21317065": {"up_voted": false, "ip": "", "has_replies": false, "message": "Be with GMAC for about 3 yrs. Love it , have 2 MMA at 3.25% with no min. (My college kids use ATM to withdraw money with the fee rebate automaticly at billing cycle). 1 online saving for 3.75% (most my money stay in this account). 2 CD with good rate also. Don't use bill pay, My WAMU taking care of that. I had ING before. They rate just too low now !", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-12-20_17:32:46", "killed": false, "user_key": "67e784116ed247892837bc55dc7452b9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "12/20/2008 05:32 PM", "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}, "21317066": {"up_voted": false, "ip": "", "has_replies": false, "message": "I've had an Etrade account for over six months and I really like it. Easy to deposit funds, funds are credited the same day they're desposited, and of course I can do it all online, which is nice.  I am disappointed that their rates have dropped to 3.01%, as they had the highest rate out there for about three months. Customer service is OK -- they had an issue recently where their computer system kept automatically sending out letters asking for a signature for your initial deposit. After I received the second letter I called them and they apologized, said that it was a bug. That's the only problem I've ever had. Overall I really like the account. Grow, money, grow!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-12-20_20:26:35", "killed": false, "user_key": "1f0c08dd072f2938ad95b55b9a7bccbc", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "12/20/2008 08:26 PM", "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}, "21317067": {"up_voted": false, "ip": "", "has_replies": false, "message": "I also had a very bad experience with HSBC direct. I bellieve it is the worst customer service I ever had with a bank. I love GMAC bank.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-02-24_12:48:31", "killed": false, "user_key": "9892623ba149c4d4bb0f3e3d003276a5", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "02/24/2009 12:48 PM", "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}, "21317068": {"up_voted": false, "ip": "", "has_replies": false, "message": "I'm very disappointed that E*Trade has dropped their rates to 1.95.  I open with them at 3.01, and it promptly began dropping.  Very quick and easy money transfers though.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-03-04_12:47:41", "killed": false, "user_key": "18505357311fa8dbf5555e421293f3f4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "03/04/2009 12:47 PM", "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}, "21317069": {"up_voted": false, "ip": "", "has_replies": true, "message": "Having a bad time with UFB Direct: Min Bal on accounts has jumped to $10,000  to avoid a $5.00 \"Low Balance fee\". Have had Much better times with INGdirect, Etrade, EmigrantDirect, Capitalonedirect, FBNO, Flagstar, WAMU, WescomCreditUnion, ShorebankDirect, UnionFSBDirect, ONBank IgoBanking, CNBbankDirect, AmtrustDirect.   Been looking over a Odd one called \"Redneck Bank\". It's a Real bank! Nice looking money market account for $1.00", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-03-18_23:46:54", "killed": false, "user_key": "6a442f1736bb93c35ff265361b506c19", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "03/18/2009 11:46 PM", "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}, "21317070": {"up_voted": false, "ip": "", "has_replies": true, "message": "FNBO will not allow initial account funding by electronic transfer. They will only allow mailing in a check, at which point they say that will open the account \"within 5 days.\" In other words, a week of interest that I would miss out on.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-03-26_12:50:11", "killed": false, "user_key": "c6fb0a14c497c4d460d2747f14a99dbb", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "03/26/2009 12:50 PM", "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}, "21317071": {"up_voted": false, "ip": "", "has_replies": false, "message": "Chris: FNBO Direct does allow initial account funding by electronic transfer with your routing number and account number for the funding account. It will take a few days to confirm that you own the account you would like to link, but it's faster than sending a check. In fact, when you begin the account opening process, FNBO Direct's website says:<br><br><blockquote>To fund your account electronically, you will need your current bank account and routing numbers. Please utilize an account that allows electronic deposits and withdrawals.</blockquote>", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-03-26_12:57:07", "killed": false, "user_key": "flexocc", "has_been_anonymized": false, "edited": false, "author_is_moderator": true, "from_request_user": false, "votable": true, "date": "03/26/2009 12:57 PM", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 21317070, "depth": 1, "points": 1, "author_is_creator": true, "is_realtime": false}, "21317072": {"up_voted": false, "ip": "", "has_replies": true, "message": "Some of these rates are out of date, according to RateBrain", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-09_04:03:54", "killed": false, "user_key": "723889673d8d95a6a3c66c8227d9306d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "04/09/2009 04:03 AM", "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}, "21317073": {"up_voted": false, "ip": "", "has_replies": false, "message": "I've updated the post to reflect today's rates, thanks for the reminder!", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-04-09_10:59:14", "killed": false, "user_key": "flexocc", "has_been_anonymized": false, "edited": false, "author_is_moderator": true, "from_request_user": false, "votable": true, "date": "04/09/2009 10:59 AM", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 21317072, "depth": 1, "points": 0, "author_is_creator": true, "is_realtime": false}, "21317074": {"up_voted": false, "ip": "", "has_replies": true, "message": "Just wondering if you've checked out SmartyPIg. I've been using them to save for specific goals and their rates are very very good foor a savings account. Also, they do customer support via twitter and Phone. Seriously the best banking experience I've had in a long time. No phone hold time or anything. I wish I could open a checking account with them. Just my $.02.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-25_17:40:24", "killed": false, "user_key": "88f11316e9792d8d9a50497b69df192a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "04/25/2009 05:40 PM", "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}, "21317075": {"up_voted": false, "ip": "", "has_replies": false, "message": "SmartyPig has turned out to be the worst banking experience for me. They doubled up may transfers and overdrew my bank account by $30K, thier customer support cannot answer any questions that are not the website FAQs and their real bank people are never available to answer real questions. I'm looking for somewhere to put $100K, but these folks are not proving to be worthy.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-06_13:11:41", "killed": false, "user_key": "4906aed6d871724e82c5251ccb50b52e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "05/06/2009 01:11 PM", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 21317074, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "21317076": {"up_voted": false, "ip": "", "has_replies": true, "message": "Hi ratbert2003<br><br>05/8/2009<br><br>  I also have a Venture Direct account and the current rate is now <br> 1.43 %. So, I was wondering have you found a better rate at another<br>  on-line bank?<br><br>                                                    Bill C.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-08_09:17:58", "killed": false, "user_key": "99d42abc23ffae88fabd43031727d297", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "05/08/2009 09:17 AM", "approved": true, "num_replies": 1, "is_first_child": true, "email": "", "parent_post_id": 21317062, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "21317077": {"up_voted": false, "ip": "", "has_replies": false, "message": "Bill: A number of banks listed in the article above have rates higher than 1.43%.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-08_09:56:59", "killed": false, "user_key": "flexocc", "has_been_anonymized": false, "edited": false, "author_is_moderator": true, "from_request_user": false, "votable": true, "date": "05/08/2009 09:56 AM", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 21317076, "depth": 2, "points": 0, "author_is_creator": true, "is_realtime": false}, "21317078": {"up_voted": false, "ip": "", "has_replies": false, "message": "fnbo does allow transfers...are you sure you are banking with fnbo.?", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-24_01:36:04", "killed": false, "user_key": "03efb12f89d6580632290d1610afc6c8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "05/24/2009 01:36 AM", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 21317070, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "21317079": {"up_voted": false, "ip": "", "has_replies": false, "message": "Well, started the ball rolling on getting a \"Mega Money\" account at Red Neck Bank. They seem to be able to handle the Overload on interest in a Oddly named bank and are taking new accounts again.<br><br>Ken N.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-05-24_18:46:01", "killed": false, "user_key": "6a442f1736bb93c35ff265361b506c19", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "05/24/2009 06:46 PM", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 21317069, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "21317080": {"up_voted": false, "ip": "", "has_replies": true, "message": "I completely agree. HSBC's customer service is second to none in terribility.  Absolutely horrible system to get into your account and zero accountability or knowledge of how to work their horrible system.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-26_18:50:46", "killed": false, "user_key": "0dee3bb7096444e9f12cc99fa34cf6b2", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "05/26/2009 06:50 PM", "approved": true, "num_replies": 1, "is_first_child": true, "email": "", "parent_post_id": 21317059, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "21317081": {"up_voted": false, "ip": "", "has_replies": false, "message": "We use Emigrant Direct, great customer service, APY is 1.5% right now.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-26_18:52:30", "killed": false, "user_key": "0dee3bb7096444e9f12cc99fa34cf6b2", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "05/26/2009 06:52 PM", "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}, "21317082": {"up_voted": false, "ip": "", "has_replies": true, "message": "I just tried opening an online savings account with Ally bank, but unfortunately I was denied due to my bad credit. I was extremely disappointed since I wanted to take advantage of their outstanding products.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-28_22:51:31", "killed": false, "user_key": "e51fe287d1526c3f14db021c963c356b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "05/28/2009 10:51 PM", "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}, "21317083": {"up_voted": false, "ip": "", "has_replies": false, "message": "Felix<br><br> What is your opinion on opening an on-line account with Ally Bank (formerly GMAC Bank)<br> with GM on the brink of bankruptcy?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-05-29_11:41:50", "killed": false, "user_key": "99d42abc23ffae88fabd43031727d297", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "05/29/2009 11:41 AM", "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}, "21317084": {"up_voted": false, "ip": "", "has_replies": true, "message": "Noy sure you would have any better luck with them, but American Express just started a Savings account online as well. Had to read a bit into the details file before I found that they state that there is no mininum starting account to open a account.  Have not tried it yet. Maybe next month, if funds are avaliable for me to do so.<br><br>Ken N.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-06-16_23:34:59", "killed": false, "user_key": "6a442f1736bb93c35ff265361b506c19", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "06/16/2009 11:34 PM", "approved": true, "num_replies": 1, "is_first_child": true, "email": "", "parent_post_id": 21317082, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "21317085": {"up_voted": false, "ip": "", "has_replies": true, "message": "I have been using Ally Bank for 3+ months now and have had no complaints.  Everyone I have spoken to within customer service has been very polite and easy to understand.  I have not had a problem to speak of so I can not comment on their conflict resolution... but that is not a bad thing not to be able to rate.  Only downside I have experienced is that my interest rate has dropped by a point so far, but most banks promoting the online savings accounts have done the same.  I wouldn't worry about GM's financial woes, accounts are FDIC insured.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-06-22_15:10:59", "killed": false, "user_key": "3f009d72559f51e7e454b16e5d0687a1", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "06/22/2009 03:10 PM", "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}, "21317086": {"up_voted": false, "ip": "", "has_replies": false, "message": "I was with Shorebank for the past 3 months because of the rate, but it's not worth it.  Terrible interface, slow transactions, and I have reason to have serious doubts about their security.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-06-28_13:57:49", "killed": false, "user_key": "5b11bb621f572c5f731458d687443107", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "06/28/2009 01:57 PM", "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}, "21317087": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have ETrade, ING and HSBC. I like ETrade the most because transfers are instant. But since their interest rate is lower than the other two, I only keep low balance at ETrade.  HSBC is a global bank, so is ING.  With ING and HSBC, there is a waiting period before you can move your money.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-07-01_17:43:03", "killed": false, "user_key": "7e88749c7231cf1dfbff84608d3bec76", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/01/2009 05:43 PM", "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}, "21317088": {"up_voted": false, "ip": "", "has_replies": false, "message": "Got the account open at American Express Bank. Looks good so far. Even found the ABA number so I can do transfer by ways other that the \"Inhouse\" way at american express.<br><br>Ken N.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-07-09_23:08:23", "killed": false, "user_key": "6a442f1736bb93c35ff265361b506c19", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/09/2009 11:08 PM", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 21317084, "depth": 2, "points": 0, "author_is_creator": false, "is_realtime": false}, "21317089": {"up_voted": false, "ip": "", "has_replies": false, "message": "HAs anybody else notices that the \"WaterField Bank\", UFBDirect and the National InterBank websites all link to the same online banking accounts??? Found out when trying to open accounts at one and was told \"You already have a account here????", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-07-09_23:12:31", "killed": false, "user_key": "6a442f1736bb93c35ff265361b506c19", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/09/2009 11:12 PM", "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}, "21317090": {"up_voted": false, "ip": "", "has_replies": true, "message": "Ally just lowered their savings account rate to 1.85  (it was 1.95 just yesterday).  American Express has entered the market, now offering 2% but who knows what tomorrow will bring.<br><br>I recently moved my money back to Apple Bank's Grand Yield @ 1.7 on a day when it was better than my other two (Emigrant Direct and Capital One.)  I hate to keep jumping around but what can you do when they're constantly changing?  <br><br>I thought of opening an Ally account and now I'm thinking of AmEx but I'm lazy - and with rates changing so quickly, I might just stay with Apple unless they drop.<br><br>I read that a Bankers Association complained about Ally because of their low rates yet they took some bailout money.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-07-17_21:33:03", "killed": false, "user_key": "4418bde55d23bff211a0d9e6cfdf7bc7", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/17/2009 09:33 PM", "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}, "21317091": {"up_voted": false, "ip": "", "has_replies": true, "message": "I've had ING for over 2 years now.  I believe the rate was 5% when I first opened my account.  Other than the fact that the rate keeps dropping (just like everyone else's), I think this bank is great!  I opened 2 sub-accounts for my kids.  I promised to match their savings dollar for dollar (I'm the best \"401k\" in town!).  They've really gotten into it; they love when I print off their monthly statements and they get to see their interest.  <br><br>I also got lucky about 6 months ago.  I knew rates were going down and I locked into a short term CD at 3.25% at the time.  Unfortunately, most of the short term CD rates now are lower than the savings account rates.<br><br>Does anyone have experience with Discover Bank?   They're showing 2% savings with minimum $500 to open the account, but no minimum balance after that.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-07-18_11:11:49", "killed": false, "user_key": "75fa2205201fc85944c51086756a2fd8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/18/2009 11:11 AM", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 1, "author_is_creator": false, "is_realtime": false}, "21317092": {"up_voted": false, "ip": "", "has_replies": false, "message": "I finally decided to move my money from Venture Bank Direct (now paying 1.43 %) to<br>Provident NJ Direct (paying 2.50 % as of 7/18/2009). Provident is paying 2.50 % on 10K or better for the first 3 months of the life of the account and 2.00 % there after.<br><br>I opened the Provident account on 7/14/2009 when the interest rate was 2.75 %, but<br>on 7/18/2009 the interest rate fell to 2.50 %. Better than Venture Direct.<br><br>                                                                                  Bill C.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-07-20_09:05:09", "killed": false, "user_key": "99d42abc23ffae88fabd43031727d297", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/20/2009 09:05 AM", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 1, "author_is_creator": false, "is_realtime": false}, "21317093": {"up_voted": false, "ip": "", "has_replies": false, "message": "trouble getting $ out of ShoreBank.  What's the best way?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-07-22_12:02:35", "killed": false, "user_key": "0dc480c33eda687eef0a59db29aa59e3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/22/2009 12:02 PM", "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}, "21317094": {"up_voted": false, "ip": "", "has_replies": true, "message": "How about Everbank?  They have a three-month promotional rate of 3.01% when you open an account with them.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-07-23_12:46:29", "killed": false, "user_key": "2da077f50b678f95e7290548ac8a327b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/23/2009 12:46 PM", "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}, "21317095": {"up_voted": false, "ip": "", "has_replies": true, "message": "I'm still evaluating Everbank. I'm waiting for my confirmation that they've opened my money market account. You can <a href=\"http://www.consumerismcommentary.com/tag/everbank/\" rel=\"nofollow\">follow my progress here</a> and I hope to have a review soon.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-07-23_13:51:21", "killed": false, "user_key": "flexocc", "has_been_anonymized": false, "edited": false, "author_is_moderator": true, "from_request_user": false, "votable": true, "date": "07/23/2009 01:51 PM", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": true, "is_realtime": false}, "21317096": {"up_voted": false, "ip": "", "has_replies": false, "message": "I don't have any info on EverBank, but if you are a Priority Club Member (Holiday Inn Hotels) you can gain points by opening up the bank account through Priority's website.<br><br>If anyone wants to open up a new ING account, send me your e-mail.  I'll refer you to ING through their link.  You get $25 from ING and I get $10.  Totally legit...see it on their website.  Yes, I feel like a whore, but times are tough.  <br><br>Truly, ING is a great bank!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-07-23_14:08:03", "killed": false, "user_key": "75fa2205201fc85944c51086756a2fd8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/23/2009 02:08 PM", "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}, "21317097": {"up_voted": false, "ip": "", "has_replies": false, "message": "Yes Crazy how quickly everyone seems to be dropping rates.  American Express just dropped their savings account rate to 1.85% today (7/23).  Discover Bank has been holding at 2.00%, but we'll see how long they hold with everyone else dropping.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-07-23_18:27:59", "killed": false, "user_key": "54cbe520f8bcce1a249a3bf4cd0bc25a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/23/2009 06:27 PM", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 21317090, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "21317098": {"up_voted": false, "ip": "", "has_replies": false, "message": "I just found your blog and thankful that I did.  Great information found here. <br><br>I have both an E-Trade Checking Account &amp; a Savings Account.  It made it so easy to transfer funds between the 2 accounts.  They were always available, could do everything by Internet, and a breeze to set up.  I also had 2 CD's with them and when they matured, it was a quick phone call to transfer the funds to my savings account.  E-Trade use to give great rates, but now they are .95%.  So I am now on the hunt to find a better paying savings account.<br><br>After reading many reviews and comments, I came to the conclusion to base my decision on a few factors:<br>1) Do not chase rates.  As we have seen, they can change very quickly and there is usually a hitch and hoops to jump through to catch that higher rate.<br>2) Must be easy to access and have a help line that 'people' actually answer.<br>3) Have a good, stable reputation. <br>4) I didn't want to deal with week(s) delay in setting this up, so EFT is important.  Come-on, welcome to the 21st century.    <br><br>Reviewing the <a href=\"http://bankrate.com\" rel=\"nofollow\">bankrate.com</a> site, I decided to open the new DiscoverBank Savings Account.  They offer a 2% APY with a $500 minimum.  It took a total of 10 minutes to fill out the online application, transferred my funds, and received confirmation and an account number.  They are mailing a \"Welcome Kit\" to me and then I can set up the rest of the Internet settings.  I'll let you all know if something goes badly after this point, but I am not expecting it to.  I even called the \"Help\" line and spoke with a very friendly and helpful person who answered my questions.  Their website does not tell you that you can transfer funds OUT without charges, and that they offer Bill Pay.  You can withdraw funds up to 6x/month.  <br><br>Hope this has been helpful.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-07-30_15:27:09", "killed": false, "user_key": "cc42e3081d4a1e8aa99b01ccc3d13b35", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/30/2009 03:27 PM", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 21317094, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "21317099": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have had an account everbank for  about 9 months now.  Very good experience and customer service. A live person answers phone right away unlike voice mail hell from hsbc and others", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-07-30_20:32:54", "killed": false, "user_key": "f285a901a5a711f4e17a8ec1312a912f", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/30/2009 08:32 PM", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 21317095, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "21317100": {"up_voted": false, "ip": "", "has_replies": true, "message": "Thanks for your article \"The Best Online Savings Accounts\".   You may want to consider adding Beacon Federal Bankcorp to your list.  They offer flex accounts, with consistent high yields, currently at 2.15% for 5 months.  They are FDIC insured.  However, there are 2 negative points: one must maintain a $10k minimum balance and the bank currently has a below par 2* rating.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-08-03_22:58:35", "killed": false, "user_key": "63d4e8b0d1895d64126cf9acdd6ae506", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "08/03/2009 10:58 PM", "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}, "21317101": {"up_voted": false, "ip": "", "has_replies": false, "message": "Same horrible experience with HSBC.  They screwed up my application, and after 3 weeks of trying t o get it sorted out, I just gave up.<br><br>All of their so-called customer service responses were just scripted replies that didn't even come close to solving my issue.<br><br>Not worth the time and frustration.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-08-13_20:51:29", "killed": false, "user_key": "1065997bfce904ed473b37ac1891ca01", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "08/13/2009 08:51 PM", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": 21317080, "depth": 2, "points": 0, "author_is_creator": false, "is_realtime": false}, "21317102": {"up_voted": false, "ip": "", "has_replies": false, "message": "Came across a online account called \"ReadySaver\" by the Southern Community Bank and Trust.<br>Looks interesting, but it's online only from the Carolinas. currently 2.00%apy and can open with $1.00  Anybody tried this one yet?<br><br>Ken N.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-08-17_23:07:09", "killed": false, "user_key": "6a442f1736bb93c35ff265361b506c19", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "08/17/2009 11:07 PM", "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}, "21317103": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have an ING account that I opened in 2004 and have been happy with ever since.  But now that rates have dropped to 1.4% I'm thinking of switching to a higher-yield savings.<br><br>I heard Discover Bank is 2%, but I just went to their website and the second I clicked on \"View Details\" for the Savings Accounts, my virus protection alerted me of a Trojan from their website! Now I'm cautious of using them.<br><br>Ally seems like a pretty good option.  Considering them as well.   But what do you think?  Stick with ING and wait for the rates to go back up? Or switch to a higher yield now, with the chance the rates will drop more?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-08-18_20:49:53", "killed": false, "user_key": "2463f1bd85aea23703f320e67d33f349", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "08/18/2009 08:49 PM", "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}, "21317104": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have 3 online savings -one at Emigrant - started out at 4.25%(remember THOSE days!!???)except for the rate drop they are really great,  great website and excellent customer service. HSBC is my brick and mortar bank &amp;  I am never impressed in person let alone online savings wise...opened savings when they offered a good deal for new accounts at a high rate for set number of months...then it began the slow painful plunge like all the rest and their website is a pain and all of their processes including transfers are SLOW.  Also have a GMAC/now ALLY account which has been dropping  and I am ready to move my hefty balance there to a higher yield ...again.  They are very good, great website, quick processes, excellent customer service, hate to leave... but rates are rates...so I'll keep it open and play the rate chase game! <br><br> Which brings me to SFGI- online division of Summit Community Bank/Summit FInancial Group in West Virginia - no minimum and rate has been 2.25% for several weeks- I am sure it will drop as soon as they get enough \"new money\" lured by that rate but it is FDIC insured and the parent group has a good stable track record...I just am researching them now but initially I am imopressed....anyone else use them or have an opinion?<br><br>I do not agree totally with Cheryl in terms of not chasing rates...it is a pain and of little gain sometimes BUT there is the factor that moving your money in and out to get the best yield  sends a message to the banks that keep dropping and to me that is important. If you leave it in and remain at their mercy all the time they have control not you and I don't like surrendering any more control to financial institutions than I absolutery have to. We \"shop\"  savings and prices all the time in other personal business we conduct( gas, groceries, necessities) why not banks- with the convenience of online we have no reason not to and every reason to do so if we want to.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-08-19_10:43:42", "killed": false, "user_key": "9edd01ef53dd957130425bea05d8f52a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "08/19/2009 10:43 AM", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 2, "author_is_creator": false, "is_realtime": false}, "21317105": {"up_voted": false, "ip": "", "has_replies": false, "message": "According to ING, new accounts get $25 (and I get $10 for making the referral).  Read their website and then send me your email address...I'll refer you!  They have a great website....unfortunately, their rates have dropped to 1.4% (used to be 5%).  If I can't make it interest, I might as well make it in referral fees!  Thanks!!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-08-26_23:53:02", "killed": false, "user_key": "75fa2205201fc85944c51086756a2fd8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "08/26/2009 11:53 PM", "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}, "21317106": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi-  I just stumbled upon this blog while doing a search for best online savings accounts.  I wanted to add that the American Express One card is STILL offering the best deal around.  Open an account, and they open a high-yield savings account for you along with the card.  Right now, the APY is 2.75%.  It has been 2.75% for a few months (it was originally 4.5% a year ago and then went to 3.5%).  But my sense is that it won't drop lower and will likely climb again over the next year as the recession begins to ebb.  The beauty of this account is that they ALSO deposit 1% of your total monthly spending right into your savings account.  It is \"technically\" a credit card, but I use it as I would use the Green card (ie., pay off my balance in full each month, so there is no interest).  <br><br>I typically spend somewhere between $600-$1000 a month on groceries, merchandise, etc.  That means I automatically get between $6-$10 deposited right back into my 2.75% interest bearing account.  You can also make as many deposits as you like per month and up to five withdraws per month.  <br><br>The annual fee for the card is (I think) $50.  But that's nothing really, especially if you have $5-$10 K in there.  Keep $10K in there, spend $1000 per month, pay it off so you have no interest, and you'll have an almost magical $30 put in your account by combining the interest as well as the cash back.  I've also noticed that withdraws are posted on the next day after you request them (I request funds to be sent to my regular bank on Monday, and they are there on Tuesday- though I have a credit union that is spectacular, so that may have something to do with it).<br><br>I just wanted to add y .02 as I am not seeing anyone talking about the AMEX One card anymore.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-08-31_11:47:48", "killed": false, "user_key": "5f53c0d3705c10e765e11d3c57d83338", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "08/31/2009 11:47 AM", "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}, "21317107": {"up_voted": false, "ip": "", "has_replies": false, "message": "Just opened a savings &amp; a Money Market account at Ally. That was the easiest time of opening a online account I have EVER had! I think I'm going to be here awhile...<br><br>Ken N.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-09-28_23:27:32", "killed": false, "user_key": "6a442f1736bb93c35ff265361b506c19", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "09/28/2009 11:27 PM", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 21317085, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "21317108": {"up_voted": false, "ip": "", "has_replies": false, "message": "Has anyone had positive or negative experiences with the new American Express Personal Savings at 1.85%?<br><br>Thanks", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-10-14_21:53:03", "killed": false, "user_key": "626e5a8cfcc63e74dedb30ede3faa5ac", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "10/14/2009 09:53 PM", "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}, "21317109": {"up_voted": false, "ip": "", "has_replies": false, "message": "bdouglass:  I've been with American Express Personal Savings Account (1.85% APY) for about 2 months now and I love it so far.  Account setup was very easy and straightforward.  The site is very simple and it is very easy and quick to setup external transfer accounts.  I think I'm done with HSBC for good this time.  Their 1.35% rate is no longer competitive and it took them a solid week to release my funds to American Express savings account which is unacceptable to me.  Not surprisingly the funds tend to get deducted from HSBC almost immediately so that you lose a few days of interest.  <br><br>I've tested transferring funds from American Express and it is so MUCH faster (took about 2 business days which is acceptable to me).  I'm just hoping the 1.85% is not a teaser rate and that they remain one of the top rates for a long time.  I'll keep the HSBC account open and linked just in case they have a promotion which offers a high rate on newly deposited money.  I hope my experience helps!  Good luck.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-10-21_18:19:21", "killed": false, "user_key": "7747d9c5b88ec6f94c2308baafa1d872", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "10/21/2009 06:19 PM", "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}, "21678293": {"up_voted": false, "ip": "", "has_replies": false, "message": "I have just had a horrible experience with FNBO.  I completed a transfer from Chase to my FNBO account through FNBO, and they took the funds from my Chase account TWICE.  Naturally, this resulted in an overdraft of my Chase account.  When I called, they simply said they knew of the problem, and it wasn't just me... it had happened to everyone who had made a recent transfer. They said there is nothing they can do until they figure out the problem.  They said it happens a lot... I don't know how that is supposed to make me feel better.<br><br>So now I am stuck with huge overdraft fees because FNBO screwed up, and they appear to be in no hurry to fix it.  I am closing my account as soon as I can get all of my money.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-11-02_11:23:38", "killed": false, "user_key": "7440f3c33226c5e7b08d2778e2ef8ead", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "11/02/2009 11:23 AM", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}}, "integration": {"receiver_url": "", "theme": 4, "reply_position": true, "disqus_logo": false}, "timer": {"timer_url": "http://localhost:8005", "thread_id": "42483484", "user_id": "anonymous", "forum_id": "214864", "hash": -1710514549112500529}, "thread": {"days_alive": 0, "slug": "the_best_online_savings_accounts_updated_oct_18_2009", "paginate": false, "num_pages": 1, "num_posts": 56, "per_page": 0, "total_posts": 0, "realtime_paused": true, "id": 42483484, "queued": false}, "reactions_limit": 10, "context": {"show_reply": true, "use_fb_connect": true, "forum_facebook_key": "a754e38c7443c66a17fb4f842187453e", "use_yahoo": true, "subscribed": false, "use_twitter_signin": true, "use_openid": true, "realtime_speed": 5000}, "reactions_start": 0, "settings": {"debug": false, "disqus_url": "http://disqus.com", "media_url": "http://media.disqus.com"}, "media_url": "http://media.disqus.com"};
	/* */ this.jsonData.cookie_messages = {"user_created": null, "post_has_profile": null, "post_twitter": null, "post_not_approved": null}; this.jsonData.session = {"url": null, "name": null, "email": null}; /* */

	
	this.curPageId = 'dsq-comments';

	this.frames = {};
};

var disqus_popup_reference = null;

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



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

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

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

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

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

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

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

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





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



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

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

	this._lastHash = null;

	this._accumMsg = '';

	this._lastSeqno = 0;

	this.MAX_DATA_LEN	= 1024;

	this.WAIT_TIME		= 10;

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

};

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

FragmentPacket.prototype.log = function(msg) {



};

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

		hash = this.reader.name;
	} else {

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

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

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

		this._lastSeqno = seqno;

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

				this._accumMsg = '';

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

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

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

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

};

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

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

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

	if (packetNum === 0) {

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

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

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

	if (num_packets === packetNum) {

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

	this._lastSeqno++;

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

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

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

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

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

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


	this.receiverId = receiverId;
};

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

	var listener = function(e) {

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


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

		that.receiveCallback(data);
	};

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

PostMessagePacket.prototype.send = function(msg) {



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


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

	var packet;
	if (!msg) {

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

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

var JsonRpc = function() {

	this.ids = {};

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

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

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

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

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

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

				json = 'null';
				break;
		}

		return json;
	};

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

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

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

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

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

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

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

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

		send_func(this.objectToJSON(request));

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

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


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



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


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


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

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

	this.packetHandler = null;


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


	var _createReceiverForFragmentPacket = function() {

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

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

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

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

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

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

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

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

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

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

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

			that._ready = true;
		};

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

		that.receiver.onload = receiver_onload;







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

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

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

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


	var _createReceiverForPostMessage = function() {

		var receiver_onload = function() {

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

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


		ParentMessenger['_receiver_onload_' + receiverId] = receiver_onload;

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

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

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

};

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

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

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

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

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

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

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

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

	var sendFunc = function(msg) {

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


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


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

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

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

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

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

		if (msg.username) {

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	var handleSessionData = function(session) {

		var forum_url = Dsq.jsonData.forum.url;




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

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

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


	






Dsq.Themes = {};

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



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

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

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

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

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

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

		
		

		return html;

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

		html += Dsq.Templates.pagination();

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

		html += Dsq.Templates.reactions();

		


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

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

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

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

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

		return html;
	};

	this.postBox = function(post_id, use_fallback_iframe) {


		var html;
		var display_sharing_options = Dsq.jsonData.request.is_authenticated;
		if (Dsq.jsonData.request.is_remote) {


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

		var _requestUserInfo = function() {
			var html;



			var user_has_email = false;

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

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

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


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



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

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




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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

		var service_icon = (reaction.get_service_name == 'trackback' || reaction.get_service_name == 'pingback' ? 'rss' : reaction.get_service_name.replace(' ', ''));
		item += (reaction.author_url && reaction.author_url !== ''
				? '</a>'
				: '')
			+ '</td>'
			+ '<td><cite class="dsq-comment-cite">' + reaction.author_name + '</cite> <span class="dsq-comment-header-time">' + reaction.date_created + '</span></td>'
			+ '<td class="dsq-comment-header-likes"></td>'
			+ '</tr></table></div>' // end dsq-comment-header
			+ '<div class="dsq-reaction-header" \
				<table> \
					<tr> \
						<td class="dsq-reaction-header-left">'
							+ '<img class="dsq-service-icon" src="' + Dsq.jsonData.media_url + '/images/reactions/services/' + service_icon + '.png" />'
							+ ' From <a class="dsq-service-name" target="_blank" href="' + reaction.url + '">' + reaction.get_service_name + '</a> '
							+ 'via ' + (reaction.source == 'backtype' ? '<a href="http://backtype.com/">BackType</a>' : '<a href="' + reaction.source_url + '">UberVU</a>')
						+ '</td>'
						+ '<td class="dsq-reaction-header-right">';
			
			if(reaction.retweets) {
				var num_retweets = reaction.retweets.length;
				if (num_retweets > 0) {
					if (num_retweets == 1) {
						item += 'One more retweet from <a href="' + reaction.retweets[0].url + '">'  + reaction.retweets[0].author_name + '</a>';
					} else {
						item += (num_retweets + ' more retweets from ');
						item += '<span id="dsq-reaction-retweets-' + reaction.id + '">';
						var n_tweets = (num_retweets > 3) ? 3 : num_retweets;
						item += Dsq.Templates.showRetweets(reaction.id, n_tweets);
						if (n_tweets != num_retweets) {
							item += '</span> <a onclick="Dsq.Templates.showRetweets(' + reaction.id + ', 0, \'dsq-reaction-retweets-' + reaction.id + '\');'
								+ 'this.parentNode.removeChild(this); return false;" href="#">Show all</a>';
						}
					}
				}
			}	
			item += '</td></tr> \
			</table> \
			</div>' // end dsq-reaction-header
			+ '<div class="dsq-comment-body"> \
				<div class="dsq-comment-message">' + reaction.body + '</div>'
			+ '</div> \
			<div class="dsq-comment-footer"> \
				<div class="dsq-comment-footer-left"> \
				</div>'
				+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator 
					? ' \
					<div class="dsq-comment-footer-right"> \
						<button class="dsq-button-small dsq-hide-reaction" onclick="Dsq.Reaction.hide(' + reaction.id + ')">Hide</button> \
					</div>'
					: '')
			+ '</div>'
		item += '</li>'; /* Reaction HTML ends */
		return item;
	};

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

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

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

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

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

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



	
	this.chooseSubscribe = function(post_id) {

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

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

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

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

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

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

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

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

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

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

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

		d = auth_data;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

				body.appendChild(edit_area);

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

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

		Dsq.Templates.toggleEdit(post_id);
	};

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

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

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

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

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

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

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

		}

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

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

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

		var extra_params = '';

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

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


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

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

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

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




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

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

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

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

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

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

		Dsq.Templates.setLoadingButton(false);
	};

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

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




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

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

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

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

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

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


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


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

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


/**
 * Dsq.Urls: URL paths
 */
Dsq.Urls = new function() {
	this.LOGIN = '/profile/login/';
	this.LOGOUT = '/logout/';
	this.REPLY = 'http://consumerismcommentary.disqus.com/the_best_online_savings_accounts_updated_oct_18_2009/reply.html';
	this.REQUEST_USER_PROFILE = '/AnonymousUser/';
	this.REQUEST_USER_AVATAR = 'http://media.disqus.com/uploads/forums/21/4864//avatar92.jpg';
};
// 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/consumerismcommentary/_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">56</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://consumerismcommentary.disqus.com/the_best_online_savings_accounts_updated_oct_18_2009/latest.rss"><img src="http://media.disqus.com/images/embed/bullet-feed.png"></a>\
	 </span>\
	 </h3>\
	 <div id="dsq-options" style="margin:15px 0">\
	 <span class="dsq-item-sort">\
	 Sort by\
	 <select id="dsq-sort-select" onchange="Dsq.Thread.sortBy(this.value);">\
	 <option value="hot" selected="selected">Popular now</option>\
	 <option value="best" >Best Rating</option>\
	 <option value="newest" >Newest first</option>\
	 <option value="oldest" >Oldest first</option>\
	 </select>\
	 &nbsp;\
	 </span>\
	 <span class="dsq-item-cp"><a href="http://consumerismcommentary.disqus.com/the_best_online_savings_accounts_updated_oct_18_2009/">Community Page</a>&nbsp;&nbsp;&nbsp;</span>\
	 <span class="dsq-item-subscribe">\
	 <img src="http://media.disqus.com/images/embed/email.png" style="width:12px;height:12px;vertical-align:middle">\
	 <span id="dsq-subscribe">\
	 <a href="#" onclick="Dsq.Thread.subscribe(1); return false">Subscribe by email</a>\
	 </span>\
	 </span>\
	 </div>\
	 <div id="dsq-alerts">\
	 </div>\
		';

		

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

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

		
			html += Dsq.Templates.authPost();
		

		html += Dsq.Templates.reactions();

		

		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://consumerismcommentary.disqus.com/the_best_online_savings_accounts_updated_oct_18_2009/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 Consumerism Commentary" 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:42483484" onclick="Dsq.Popup.login(); return false">Login</a> \
								 \
									&nbsp;or&nbsp; \
									<img class="fb_login_image" src="http://static.ak.fbcdn.net/images/fbconnect/login-buttons/connect_light_small_short.gif" alt="Facebook Connect"/> \
									<a href="#" onclick="FB.Connect.requireSession(DisqusFbcParentController.onLogin); return false;">Connect</a> \
								 \
								&nbsp;or&nbsp; \
									<img src="http://media.disqus.com/images/twitter-signin-icon.png" alt="" /> \
									<a href="#" onclick="Dsq.Twitter.startTwitterConnect(); return false">Sign-in</a> \
								 \
								&nbsp;or&nbsp; \
									 <img src="http://media.disqus.com/images/openid-login-icon.png" alt="" /> \
									 <a href="#" onclick="Dsq.OpenID.requestURL(); return false">OpenID</a> \
								 \
							 \
						</div> \
					</div> \
					<div id="dsq-reply-' + post_id + '"></div> \
			</div> \
		';
	};

	//
	// Iframes
	//

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

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

		var default_params = {
			// TODO: These should be moved to Dsq.jsonData.
			'f'				: 'consumerismcommentary',
			't'				: 'the_best_online_savings_accounts_updated_oct_18_2009',
			// 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/consumerismcommentary/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/consumerismcommentary/the_best_online_savings_accounts_updated_oct_18_2009/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/consumerismcommentary/thread.js'
			+ '?slug='	+ 'the_best_online_savings_accounts_updated_oct_18_2009'
			+ '&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/consumerismcommentary/thread.js'
			+ '?slug='	+ 'the_best_online_savings_accounts_updated_oct_18_2009'
			+ '&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/consumerismcommentary/subscribe.js'
				+'?status=' 	+ status
				+ '&slug='		+ 'the_best_online_savings_accounts_updated_oct_18_2009'
				+ '&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/consumerismcommentary/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/42483484/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/consumerismcommentary/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/consumerismcommentary/queueurl.js');
	};
};

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

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

	return obj;
}();


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





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

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

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

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

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

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





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

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

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

})();

Dsq.container.className = "clearfix";
Dsq.container.innerHTML = ' \
<ul id="dsq-comments">\
	 <li id="dsq-comment-21317104">\
	 <div id="dsq-comment-header-21317104" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317104" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317104">KB</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317104" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317104" class="dsq-comment-message">I have 3 online savings -one at Emigrant - started out at 4.25%(remember THOSE days!!???)except for the rate drop they are really great,  great website and excellent customer service. HSBC is my brick and mortar bank &amp;  I am never impressed in person let alone online savings wise...opened savings when they offered a good deal for new accounts at a high rate for set number of months...then it began the slow painful plunge like all the rest and their website is a pain and all of their processes including transfers are SLOW.  Also have a GMAC/now ALLY account which has been dropping  and I am ready to move my hefty balance there to a higher yield ...again.  They are very good, great website, quick processes, excellent customer service, hate to leave... but rates are rates...so I\'ll keep it open and play the rate chase game! <br><br> Which brings me to SFGI- online division of Summit Community Bank/Summit FInancial Group in West Virginia - no minimum and rate has been 2.25% for several weeks- I am sure it will drop as soon as they get enough "new money" lured by that rate but it is FDIC insured and the parent group has a good stable track record...I just am researching them now but initially I am imopressed....anyone else use them or have an opinion?<br><br>I do not agree totally with Cheryl in terms of not chasing rates...it is a pain and of little gain sometimes BUT there is the factor that moving your money in and out to get the best yield  sends a message to the banks that keep dropping and to me that is important. If you leave it in and remain at their mercy all the time they have control not you and I don\'t like surrendering any more control to financial institutions than I absolutery have to. We "shop"  savings and prices all the time in other personal business we conduct( gas, groceries, necessities) why not banks- with the convenience of online we have no reason not to and every reason to do so if we want to.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317092">\
	 <div id="dsq-comment-header-21317092" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317092" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317092">Bill C</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317092" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317092" class="dsq-comment-message">I finally decided to move my money from Venture Bank Direct (now paying 1.43 %) to<br>Provident NJ Direct (paying 2.50 % as of 7/18/2009). Provident is paying 2.50 % on 10K or better for the first 3 months of the life of the account and 2.00 % there after.<br><br>I opened the Provident account on 7/14/2009 when the interest rate was 2.75 %, but<br>on 7/18/2009 the interest rate fell to 2.50 %. Better than Venture Direct.<br><br>                                                                                  Bill C.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317091">\
	 <div id="dsq-comment-header-21317091" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317091" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317091">Michael</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317091" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317091" class="dsq-comment-message">I\'ve had ING for over 2 years now.  I believe the rate was 5% when I first opened my account.  Other than the fact that the rate keeps dropping (just like everyone else\'s), I think this bank is great!  I opened 2 sub-accounts for my kids.  I promised to match their savings dollar for dollar (I\'m the best "401k" in town!).  They\'ve really gotten into it; they love when I print off their monthly statements and they get to see their interest.  <br><br>I also got lucky about 6 months ago.  I knew rates were going down and I locked into a short term CD at 3.25% at the time.  Unfortunately, most of the short term CD rates now are lower than the savings account rates.<br><br>Does anyone have experience with Discover Bank?   They\'re showing 2% savings with minimum $500 to open the account, but no minimum balance after that.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21961606">\
	 <div id="dsq-comment-header-21961606" class="dsq-comment-header">\
	 <cite id="dsq-cite-21961606" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21961606">Rebekah</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21961606" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21961606" class="dsq-comment-message">I opened an account with Discover Bank about two months ago.  I have had nothing but trouble with it.  After opening the account, you are supposed to get a welcome kit in the mail in 7-10 days.  I took 3 weeks for me to get mine.  I was starting to wonder if my $5000 had just disappeared when I finally got a statement that showed my deposit.  However, the biggest problem I have had is with the Discover Bank website.  I submitted the application for online registration so that I could access the online banking.  You are supposed to get a response within 2-3 days.  After a week I still hadn\'t heard back from Discover.  I got no help from customer service.  After submitting a second application for online registration I finally received an email that said I didn\'t qualify for online banking.  What??  I don\'t understand that.  Since then I have made several more attempts to view my account online, but I\'ve had no success.  I have finally given up.  I am closing this account as soon as the 90 days is up so that I don\'t have to pay the early closure fee.  The interest rate is definitely not worth the hassle for this one.  I have had my fair share of online savings accounts and I have never had this much trouble with any bank.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317058">\
	 <div id="dsq-comment-header-21317058" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317058" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21317058" href="http://www.squawkfox.com/" target="_blank" rel="nofollow">Squawkfox</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317058" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317058" class="dsq-comment-message">I have three high interest savings accounts. I tend to move my savings around based on interest rates. The money I keep on hand in cash is generally for my emergency fund. You\'ve listed solid savings options. :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317059">\
	 <div id="dsq-comment-header-21317059" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317059" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317059">Sara</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317059" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317059" class="dsq-comment-message">If I may add my two cents... I have had some TERRIBLE experiences with HSBC\'s customer service...its hard to get someone on the phone, several times I\'ve been transferred to a dead line or transferred to someone who says they can\'t help me nor can they transfer me to anyone else.  Also, they don\'t keep their website current (and not just one forgotten page, several pages, linked from the homepage! inexcusable...) and its hard to find someone who knows what\'s current and what\'s not.  I\'d take my money elsewhere.<br><br>That being said, I\'ve had good experiences with GMAC and ING.  GMAC has a pretty good rate and I haven\'t had any problems with them.  If it had a better rate, my ING account would be my handsdown favorite... love the automation and subaccounts feature... because of the low rate though I mostly use it to fund my sharebuilder account on short notice.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317080">\
	 <div id="dsq-comment-header-21317080" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317080" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317080">Brad</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317080" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317080" class="dsq-comment-message">I completely agree. HSBC\'s customer service is second to none in terribility.  Absolutely horrible system to get into your account and zero accountability or knowledge of how to work their horrible system.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317101">\
	 <div id="dsq-comment-header-21317101" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317101" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317101">David</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317101" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317101" class="dsq-comment-message">Same horrible experience with HSBC.  They screwed up my application, and after 3 weeks of trying t o get it sorted out, I just gave up.<br><br>All of their so-called customer service responses were just scripted replies that didn\'t even come close to solving my issue.<br><br>Not worth the time and frustration.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317060">\
	 <div id="dsq-comment-header-21317060" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317060" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317060">Brian</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317060" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317060" class="dsq-comment-message">Do you know something we don\'t yet about E-Trade?  Their savings account rate is 3.3%, has been for a while now.  I also have FNBO, but keep more in ETrade still just because of the slightly higher rate.  If they drop to 3.01 I\'ll be moving, but I can\'t find that anywhere on their site or recent announcements.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317061">\
	 <div id="dsq-comment-header-21317061" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317061" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21317061" href="http://consumerismcommentary.com/" target="_blank" rel="nofollow">Flexo</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317061" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317061" class="dsq-comment-message">Brian: Yes, E-Trade Bank\'s savings account interest rate will drop to 3.01% as of the end of the day today (Friday, December 19) according to my contact at the bank.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317062">\
	 <div id="dsq-comment-header-21317062" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317062" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317062">ratbert2003</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317062" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317062" class="dsq-comment-message">Venture Bank Direct\'s Wise Choice Savings is still at 3.6% APY.  I emailed them this morning because I was concerned that they\'d dropped their rate and that their website hadn\'t reflected it, but they replied and said their rate has not changed.  Which is good, it means I don\'t have to move my money to another account and/or create a new savings account! My Emigrant Direct American Dream Savings account dropped from 3.0% to 2.75% today, bummer!  Also my Schwab Investor checking dropped from 1.5% to 1% which is better than ING\'s Electric Orange: 1.5% --&gt; 0.5%.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317076">\
	 <div id="dsq-comment-header-21317076" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317076" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317076">Bill C</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317076" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317076" class="dsq-comment-message">Hi ratbert2003<br><br>05/8/2009<br><br>  I also have a Venture Direct account and the current rate is now <br> 1.43 %. So, I was wondering have you found a better rate at another<br>  on-line bank?<br><br>                                                    Bill C.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317077">\
	 <div id="dsq-comment-header-21317077" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317077" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21317077" href="http://consumerismcommentary.com/" target="_blank" rel="nofollow">Flexo</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317077" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317077" class="dsq-comment-message">Bill: A number of banks listed in the article above have rates higher than 1.43%.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317063">\
	 <div id="dsq-comment-header-21317063" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317063" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21317063" href="http://www.questempire.com/" target="_blank" rel="nofollow">Bill M.</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317063" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317063" class="dsq-comment-message">I like E*Trade, very fast transfers, i have my checking account there and love it, never had any problems.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317064">\
	 <div id="dsq-comment-header-21317064" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317064" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317064">Infidel</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317064" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317064" class="dsq-comment-message">I\'m quite happy with GMAC &amp; have the vast majority of my cash there, both in savings and CDs.  They have very good rates on both types of accounts.  I use the savings account as a funding source for Sharebuilder and so far no hiccups.  I talked to a CSR on the phone about a month ago regarding CD funding, and that went smoothly, no hassles.<br><br>I also have a HY eOne checking account at salemfivedirect dot com, and that has worked out well too.  The almost-3% rate isn\'t as good as some HY savings accounts, but it beats a 0% checking account elsewhere (hear me, Wamu, Wells?).  They give you checks, a cash card, and ATM rebates.  Their bill-pay is OK too.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317065">\
	 <div id="dsq-comment-header-21317065" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317065" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317065">Tanner</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317065" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317065" class="dsq-comment-message">Be with GMAC for about 3 yrs. Love it , have 2 MMA at 3.25% with no min. (My college kids use ATM to withdraw money with the fee rebate automaticly at billing cycle). 1 online saving for 3.75% (most my money stay in this account). 2 CD with good rate also. Don\'t use bill pay, My WAMU taking care of that. I had ING before. They rate just too low now !</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317066">\
	 <div id="dsq-comment-header-21317066" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317066" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21317066" href="http://tracesofgeek.blogspot.com/" target="_blank" rel="nofollow">Matt A</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317066" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317066" class="dsq-comment-message">I\'ve had an Etrade account for over six months and I really like it. Easy to deposit funds, funds are credited the same day they\'re desposited, and of course I can do it all online, which is nice.  I am disappointed that their rates have dropped to 3.01%, as they had the highest rate out there for about three months. Customer service is OK -- they had an issue recently where their computer system kept automatically sending out letters asking for a signature for your initial deposit. After I received the second letter I called them and they apologized, said that it was a bug. That\'s the only problem I\'ve ever had. Overall I really like the account. Grow, money, grow!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317067">\
	 <div id="dsq-comment-header-21317067" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317067" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317067">Sam</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317067" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317067" class="dsq-comment-message">I also had a very bad experience with HSBC direct. I bellieve it is the worst customer service I ever had with a bank. I love GMAC bank.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317068">\
	 <div id="dsq-comment-header-21317068" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317068" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317068">Brian</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317068" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317068" class="dsq-comment-message">I\'m very disappointed that E*Trade has dropped their rates to 1.95.  I open with them at 3.01, and it promptly began dropping.  Very quick and easy money transfers though.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317069">\
	 <div id="dsq-comment-header-21317069" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317069" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317069">Ken N.</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317069" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317069" class="dsq-comment-message">Having a bad time with UFB Direct: Min Bal on accounts has jumped to $10,000  to avoid a $5.00 "Low Balance fee". Have had Much better times with INGdirect, Etrade, EmigrantDirect, Capitalonedirect, FBNO, Flagstar, WAMU, WescomCreditUnion, ShorebankDirect, UnionFSBDirect, ONBank IgoBanking, CNBbankDirect, AmtrustDirect.   Been looking over a Odd one called "Redneck Bank". It\'s a Real bank! Nice looking money market account for $1.00</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317079">\
	 <div id="dsq-comment-header-21317079" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317079" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317079">Ken N.</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317079" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317079" class="dsq-comment-message">Well, started the ball rolling on getting a "Mega Money" account at Red Neck Bank. They seem to be able to handle the Overload on interest in a Oddly named bank and are taking new accounts again.<br><br>Ken N.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317070">\
	 <div id="dsq-comment-header-21317070" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317070" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317070">Chris</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317070" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317070" class="dsq-comment-message">FNBO will not allow initial account funding by electronic transfer. They will only allow mailing in a check, at which point they say that will open the account "within 5 days." In other words, a week of interest that I would miss out on.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317071">\
	 <div id="dsq-comment-header-21317071" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317071" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21317071" href="http://consumerismcommentary.com/" target="_blank" rel="nofollow">Flexo</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317071" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317071" class="dsq-comment-message">Chris: FNBO Direct does allow initial account funding by electronic transfer with your routing number and account number for the funding account. It will take a few days to confirm that you own the account you would like to link, but it\'s faster than sending a check. In fact, when you begin the account opening process, FNBO Direct\'s website says:<br><br><blockquote>To fund your account electronically, you will need your current bank account and routing numbers. Please utilize an account that allows electronic deposits and withdrawals.</blockquote></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317078">\
	 <div id="dsq-comment-header-21317078" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317078" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317078">scooter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317078" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317078" class="dsq-comment-message">fnbo does allow transfers...are you sure you are banking with fnbo.?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317072">\
	 <div id="dsq-comment-header-21317072" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317072" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317072">Brad Davies</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317072" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317072" class="dsq-comment-message">Some of these rates are out of date, according to RateBrain</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317073">\
	 <div id="dsq-comment-header-21317073" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317073" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21317073" href="http://consumerismcommentary.com/" target="_blank" rel="nofollow">Flexo</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317073" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317073" class="dsq-comment-message">I\'ve updated the post to reflect today\'s rates, thanks for the reminder!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317074">\
	 <div id="dsq-comment-header-21317074" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317074" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21317074" href="http://www.pennywisefamily.blogspot.com/" target="_blank" rel="nofollow">Jessica W</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317074" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317074" class="dsq-comment-message">Just wondering if you\'ve checked out SmartyPIg. I\'ve been using them to save for specific goals and their rates are very very good foor a savings account. Also, they do customer support via twitter and Phone. Seriously the best banking experience I\'ve had in a long time. No phone hold time or anything. I wish I could open a checking account with them. Just my $.02.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317075">\
	 <div id="dsq-comment-header-21317075" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317075" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317075">BDC</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317075" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317075" class="dsq-comment-message">SmartyPig has turned out to be the worst banking experience for me. They doubled up may transfers and overdrew my bank account by $30K, thier customer support cannot answer any questions that are not the website FAQs and their real bank people are never available to answer real questions. I\'m looking for somewhere to put $100K, but these folks are not proving to be worthy.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317081">\
	 <div id="dsq-comment-header-21317081" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317081" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317081">Brad</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317081" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317081" class="dsq-comment-message">We use Emigrant Direct, great customer service, APY is 1.5% right now.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317082">\
	 <div id="dsq-comment-header-21317082" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317082" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317082">Felix</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317082" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317082" class="dsq-comment-message">I just tried opening an online savings account with Ally bank, but unfortunately I was denied due to my bad credit. I was extremely disappointed since I wanted to take advantage of their outstanding products.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317084">\
	 <div id="dsq-comment-header-21317084" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317084" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317084">Ken N.</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317084" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317084" class="dsq-comment-message">Noy sure you would have any better luck with them, but American Express just started a Savings account online as well. Had to read a bit into the details file before I found that they state that there is no mininum starting account to open a account.  Have not tried it yet. Maybe next month, if funds are avaliable for me to do so.<br><br>Ken N.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317088">\
	 <div id="dsq-comment-header-21317088" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317088" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317088">Ken N.</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317088" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317088" class="dsq-comment-message">Got the account open at American Express Bank. Looks good so far. Even found the ABA number so I can do transfer by ways other that the "Inhouse" way at american express.<br><br>Ken N.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317083">\
	 <div id="dsq-comment-header-21317083" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317083" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317083">Bill C</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317083" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317083" class="dsq-comment-message">Felix<br><br> What is your opinion on opening an on-line account with Ally Bank (formerly GMAC Bank)<br> with GM on the brink of bankruptcy?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317085">\
	 <div id="dsq-comment-header-21317085" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317085" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317085">Brandon</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317085" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317085" class="dsq-comment-message">I have been using Ally Bank for 3+ months now and have had no complaints.  Everyone I have spoken to within customer service has been very polite and easy to understand.  I have not had a problem to speak of so I can not comment on their conflict resolution... but that is not a bad thing not to be able to rate.  Only downside I have experienced is that my interest rate has dropped by a point so far, but most banks promoting the online savings accounts have done the same.  I wouldn\'t worry about GM\'s financial woes, accounts are FDIC insured.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317107">\
	 <div id="dsq-comment-header-21317107" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317107" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317107">Ken N.</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317107" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317107" class="dsq-comment-message">Just opened a savings &amp; a Money Market account at Ally. That was the easiest time of opening a online account I have EVER had! I think I\'m going to be here awhile...<br><br>Ken N.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317086">\
	 <div id="dsq-comment-header-21317086" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317086" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317086">Rob</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317086" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317086" class="dsq-comment-message">I was with Shorebank for the past 3 months because of the rate, but it\'s not worth it.  Terrible interface, slow transactions, and I have reason to have serious doubts about their security.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317087">\
	 <div id="dsq-comment-header-21317087" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317087" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317087">Joe</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317087" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317087" class="dsq-comment-message">I have ETrade, ING and HSBC. I like ETrade the most because transfers are instant. But since their interest rate is lower than the other two, I only keep low balance at ETrade.  HSBC is a global bank, so is ING.  With ING and HSBC, there is a waiting period before you can move your money.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317089">\
	 <div id="dsq-comment-header-21317089" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317089" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317089">Ken N.</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317089" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317089" class="dsq-comment-message">HAs anybody else notices that the "WaterField Bank", UFBDirect and the National InterBank websites all link to the same online banking accounts??? Found out when trying to open accounts at one and was told "You already have a account here????</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317090">\
	 <div id="dsq-comment-header-21317090" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317090" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317090">Elsa</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317090" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317090" class="dsq-comment-message">Ally just lowered their savings account rate to 1.85  (it was 1.95 just yesterday).  American Express has entered the market, now offering 2% but who knows what tomorrow will bring.<br><br>I recently moved my money back to Apple Bank\'s Grand Yield @ 1.7 on a day when it was better than my other two (Emigrant Direct and Capital One.)  I hate to keep jumping around but what can you do when they\'re constantly changing?  <br><br>I thought of opening an Ally account and now I\'m thinking of AmEx but I\'m lazy - and with rates changing so quickly, I might just stay with Apple unless they drop.<br><br>I read that a Bankers Association complained about Ally because of their low rates yet they took some bailout money.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317097">\
	 <div id="dsq-comment-header-21317097" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317097" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317097">Gary G</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317097" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317097" class="dsq-comment-message">Yes Crazy how quickly everyone seems to be dropping rates.  American Express just dropped their savings account rate to 1.85% today (7/23).  Discover Bank has been holding at 2.00%, but we\'ll see how long they hold with everyone else dropping.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317093">\
	 <div id="dsq-comment-header-21317093" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317093" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317093">melodiiii</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317093" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317093" class="dsq-comment-message">trouble getting $ out of ShoreBank.  What\'s the best way?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317094">\
	 <div id="dsq-comment-header-21317094" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317094" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317094">Demetra</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317094" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317094" class="dsq-comment-message">How about Everbank?  They have a three-month promotional rate of 3.01% when you open an account with them.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317098">\
	 <div id="dsq-comment-header-21317098" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317098" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21317098" href="http://www.FlamingoVilla.com/" target="_blank" rel="nofollow">Cheryl</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317098" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317098" class="dsq-comment-message">I just found your blog and thankful that I did.  Great information found here. <br><br>I have both an E-Trade Checking Account &amp; a Savings Account.  It made it so easy to transfer funds between the 2 accounts.  They were always available, could do everything by Internet, and a breeze to set up.  I also had 2 CD\'s with them and when they matured, it was a quick phone call to transfer the funds to my savings account.  E-Trade use to give great rates, but now they are .95%.  So I am now on the hunt to find a better paying savings account.<br><br>After reading many reviews and comments, I came to the conclusion to base my decision on a few factors:<br>1) Do not chase rates.  As we have seen, they can change very quickly and there is usually a hitch and hoops to jump through to catch that higher rate.<br>2) Must be easy to access and have a help line that \'people\' actually answer.<br>3) Have a good, stable reputation. <br>4) I didn\'t want to deal with week(s) delay in setting this up, so EFT is important.  Come-on, welcome to the 21st century.    <br><br>Reviewing the <a href="http://bankrate.com" rel="nofollow">bankrate.com</a> site, I decided to open the new DiscoverBank Savings Account.  They offer a 2% APY with a $500 minimum.  It took a total of 10 minutes to fill out the online application, transferred my funds, and received confirmation and an account number.  They are mailing a "Welcome Kit" to me and then I can set up the rest of the Internet settings.  I\'ll let you all know if something goes badly after this point, but I am not expecting it to.  I even called the "Help" line and spoke with a very friendly and helpful person who answered my questions.  Their website does not tell you that you can transfer funds OUT without charges, and that they offer Bill Pay.  You can withdraw funds up to 6x/month.  <br><br>Hope this has been helpful.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317095">\
	 <div id="dsq-comment-header-21317095" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317095" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21317095" href="http://consumerismcommentary.com/" target="_blank" rel="nofollow">Flexo</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317095" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317095" class="dsq-comment-message">I\'m still evaluating Everbank. I\'m waiting for my confirmation that they\'ve opened my money market account. You can <a href="http://www.consumerismcommentary.com/tag/everbank/" rel="nofollow">follow my progress here</a> and I hope to have a review soon.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317099">\
	 <div id="dsq-comment-header-21317099" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317099" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317099">phil</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317099" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317099" class="dsq-comment-message">I have had an account everbank for  about 9 months now.  Very good experience and customer service. A live person answers phone right away unlike voice mail hell from hsbc and others</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317096">\
	 <div id="dsq-comment-header-21317096" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317096" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317096">Michael</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317096" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317096" class="dsq-comment-message">I don\'t have any info on EverBank, but if you are a Priority Club Member (Holiday Inn Hotels) you can gain points by opening up the bank account through Priority\'s website.<br><br>If anyone wants to open up a new ING account, send me your e-mail.  I\'ll refer you to ING through their link.  You get $25 from ING and I get $10.  Totally legit...see it on their website.  Yes, I feel like a whore, but times are tough.  <br><br>Truly, ING is a great bank!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317100">\
	 <div id="dsq-comment-header-21317100" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317100" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317100">Jack</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317100" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317100" class="dsq-comment-message">Thanks for your article "The Best Online Savings Accounts".   You may want to consider adding Beacon Federal Bankcorp to your list.  They offer flex accounts, with consistent high yields, currently at 2.15% for 5 months.  They are FDIC insured.  However, there are 2 negative points: one must maintain a $10k minimum balance and the bank currently has a below par 2* rating.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21811523">\
	 <div id="dsq-comment-header-21811523" class="dsq-comment-header">\
	 <cite id="dsq-cite-21811523" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21811523">donlevine</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21811523" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21811523" class="dsq-comment-message">Now, Beacon has stars but I am still worried. Why was going public important to their operations? I loved the bank before the transition because of the good returns an FLEX accounts. Now the pressure is on to lower interest rates to widen profit margins to produce dividends.  Risky investments are part of the malaise. Seemingly big  retirement bonuses and rigged buybacks are unsettling. The interest rates are no longer attractive with the 2 starred sword of Democles poised over the Bank. Reducing mycommitment might be wise. Am I wrong?  DL</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317102">\
	 <div id="dsq-comment-header-21317102" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317102" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317102">Ken N.</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317102" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317102" class="dsq-comment-message">Came across a online account called "ReadySaver" by the Southern Community Bank and Trust.<br>Looks interesting, but it\'s online only from the Carolinas. currently 2.00%apy and can open with $1.00  Anybody tried this one yet?<br><br>Ken N.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317103">\
	 <div id="dsq-comment-header-21317103" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317103" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317103">John</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317103" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317103" class="dsq-comment-message">I have an ING account that I opened in 2004 and have been happy with ever since.  But now that rates have dropped to 1.4% I\'m thinking of switching to a higher-yield savings.<br><br>I heard Discover Bank is 2%, but I just went to their website and the second I clicked on "View Details" for the Savings Accounts, my virus protection alerted me of a Trojan from their website! Now I\'m cautious of using them.<br><br>Ally seems like a pretty good option.  Considering them as well.   But what do you think?  Stick with ING and wait for the rates to go back up? Or switch to a higher yield now, with the chance the rates will drop more?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317105">\
	 <div id="dsq-comment-header-21317105" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317105" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317105">Michael</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317105" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317105" class="dsq-comment-message">According to ING, new accounts get $25 (and I get $10 for making the referral).  Read their website and then send me your email address...I\'ll refer you!  They have a great website....unfortunately, their rates have dropped to 1.4% (used to be 5%).  If I can\'t make it interest, I might as well make it in referral fees!  Thanks!!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317106">\
	 <div id="dsq-comment-header-21317106" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317106" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317106">Suzanne</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317106" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317106" class="dsq-comment-message">Hi-  I just stumbled upon this blog while doing a search for best online savings accounts.  I wanted to add that the American Express One card is STILL offering the best deal around.  Open an account, and they open a high-yield savings account for you along with the card.  Right now, the APY is 2.75%.  It has been 2.75% for a few months (it was originally 4.5% a year ago and then went to 3.5%).  But my sense is that it won\'t drop lower and will likely climb again over the next year as the recession begins to ebb.  The beauty of this account is that they ALSO deposit 1% of your total monthly spending right into your savings account.  It is "technically" a credit card, but I use it as I would use the Green card (ie., pay off my balance in full each month, so there is no interest).  <br><br>I typically spend somewhere between $600-$1000 a month on groceries, merchandise, etc.  That means I automatically get between $6-$10 deposited right back into my 2.75% interest bearing account.  You can also make as many deposits as you like per month and up to five withdraws per month.  <br><br>The annual fee for the card is (I think) $50.  But that\'s nothing really, especially if you have $5-$10 K in there.  Keep $10K in there, spend $1000 per month, pay it off so you have no interest, and you\'ll have an almost magical $30 put in your account by combining the interest as well as the cash back.  I\'ve also noticed that withdraws are posted on the next day after you request them (I request funds to be sent to my regular bank on Monday, and they are there on Tuesday- though I have a credit union that is spectacular, so that may have something to do with it).<br><br>I just wanted to add y .02 as I am not seeing anyone talking about the AMEX One card anymore.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317108">\
	 <div id="dsq-comment-header-21317108" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317108" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317108">Bdouglass</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317108" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317108" class="dsq-comment-message">Has anyone had positive or negative experiences with the new American Express Personal Savings at 1.85%?<br><br>Thanks</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21317109">\
	 <div id="dsq-comment-header-21317109" class="dsq-comment-header">\
	 <cite id="dsq-cite-21317109" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21317109">Paul</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21317109" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21317109" class="dsq-comment-message">bdouglass:  I\'ve been with American Express Personal Savings Account (1.85% APY) for about 2 months now and I love it so far.  Account setup was very easy and straightforward.  The site is very simple and it is very easy and quick to setup external transfer accounts.  I think I\'m done with HSBC for good this time.  Their 1.35% rate is no longer competitive and it took them a solid week to release my funds to American Express savings account which is unacceptable to me.  Not surprisingly the funds tend to get deducted from HSBC almost immediately so that you lose a few days of interest.  <br><br>I\'ve tested transferring funds from American Express and it is so MUCH faster (took about 2 business days which is acceptable to me).  I\'m just hoping the 1.85% is not a teaser rate and that they remain one of the top rates for a long time.  I\'ll keep the HSBC account open and linked just in case they have a promotion which offers a high rate on newly deposited money.  I hope my experience helps!  Good luck.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21678293">\
	 <div id="dsq-comment-header-21678293" class="dsq-comment-header">\
	 <cite id="dsq-cite-21678293" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21678293">Emily</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21678293" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21678293" class="dsq-comment-message">I have just had a horrible experience with FNBO.  I completed a transfer from Chase to my FNBO account through FNBO, and they took the funds from my Chase account TWICE.  Naturally, this resulted in an overdraft of my Chase account.  When I called, they simply said they knew of the problem, and it wasn\'t just me... it had happened to everyone who had made a recent transfer. They said there is nothing they can do until they figure out the problem.  They said it happens a lot... I don\'t know how that is supposed to make me feel better.<br><br>So now I am stuck with huge overdraft fees because FNBO screwed up, and they appear to be in no hurry to fix it.  I am closing my account as soon as I can get all of my money.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-22262618">\
	 <div id="dsq-comment-header-22262618" class="dsq-comment-header">\
	 <cite id="dsq-cite-22262618" class="dsq-comment-cite">\
	 <span id="dsq-author-user-22262618">Matthew</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-22262618" class="dsq-comment-body">\
	 <div id="dsq-comment-message-22262618" class="dsq-comment-message">ING Direct is the best. I\'ve had them since I was like 17 or 18. Have multiple orange savings accts for different things, normal savings, travel fund, vehicle fund, etc. Use the electric orange as my primary checking account. Customer service is absolutely fantastic. They answer the phone within seconds and there\'s no ridiculous automated system to get through. Their electric orange bill pay is the easiest thing ever. I get an e-bill through ING bill pay with my Amex which makes things even easier.<br><br>I\'ve had a wonderful experience with Amex since my parents added me to their account when I turned 16 and got my driver\'s license and became their personal assistant. (ugh!) Anyway, years later and I have my own AmEx card now and always had a positive experience when calling them, etc. And their website is so easy to use! My dad has like 3 amex cards and it\'s easy to see at a glance the balances and stuff. They\'ve overnighted me a new card for free every time I lost it which happened a lot when I first got my parents card back in high school years. (Imagine how shocked I was when they offered to overnight a new card for free the time I "accidentally" dropped it on the way out from the dry cleaner\'s and told my parents I guess I can\'t pick up their stuff anymore now that my amex card is lost. that one sure backfired.) My bank back then would never overnight my debit card unless I wanted to pay $35 or something ridiculous like that. So I\'m sure their online savings account customer service is superb as well.</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=consumerismcommentary&t=the_best_online_savings_accounts_updated_oct_18_2009&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 = 'a754e38c7443c66a17fb4f842187453e';
			if (typeof disqus_facebook_api_key != 'undefined') {
				facebook_api_key = disqus_facebook_api_key;
			}

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


	


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

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

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

})();




