




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": {"85f7e90f0e55ef540318bc0277fc96fe": {"username": "Awareness", "tumblr": "", "display_name": "Awareness", "url": "http://disqus.com/guest/85f7e90f0e55ef540318bc0277fc96fe/", "registered": false, "linkedin": "", "blog": "http://www.pathwaytohappiness.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": ""}, "a15c803de47c83cb85601b3a6987eeb9": {"username": "Jason Beck", "tumblr": "", "display_name": "Jason Beck", "url": "http://disqus.com/guest/a15c803de47c83cb85601b3a6987eeb9/", "registered": false, "linkedin": "", "blog": "http://www.jcbeck.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": ""}, "ca03b54fd71bfdd7189809cf3d1281b3": {"username": "tvo", "tumblr": "", "display_name": "tvo", "url": "http://disqus.com/guest/ca03b54fd71bfdd7189809cf3d1281b3/", "registered": false, "linkedin": "", "blog": "http://www.savemefromshit.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": ""}, "2efe2443fadb7b579819aead47dc5ee7": {"username": "john", "tumblr": "", "display_name": "john", "url": "http://disqus.com/guest/2efe2443fadb7b579819aead47dc5ee7/", "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": ""}, "010d69f88c3d8c857b592340d9934651": {"username": "Timmy", "tumblr": "", "display_name": "Timmy", "url": "http://disqus.com/guest/010d69f88c3d8c857b592340d9934651/", "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": ""}, "cd8a559fe9d88b93c8a605fd0179d5ca": {"username": "Julie", "tumblr": "", "display_name": "Julie", "url": "http://disqus.com/guest/cd8a559fe9d88b93c8a605fd0179d5ca/", "registered": false, "linkedin": "", "blog": "http://www.accidentaljulie.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": ""}, "5522afd83fec329d33e14468b1849864": {"username": "Twiggers", "tumblr": "", "display_name": "Twiggers", "url": "http://disqus.com/guest/5522afd83fec329d33e14468b1849864/", "registered": false, "linkedin": "", "blog": "http://nicethingsbaddebt.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": ""}, "4b11fd27a788a377f514bd3cab353470": {"username": "oldmiter", "tumblr": "", "display_name": "oldmiter", "url": "http://disqus.com/guest/4b11fd27a788a377f514bd3cab353470/", "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": ""}, "da2b01a500cfd7ddfe165dd2dd0e9d24": {"username": "lulugal11", "tumblr": "", "display_name": "lulugal11", "url": "http://disqus.com/guest/da2b01a500cfd7ddfe165dd2dd0e9d24/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/5/4143/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "64ad3aefb506b60896d75b3b827d9d86": {"username": "Kate", "tumblr": "", "display_name": "Kate", "url": "http://disqus.com/guest/64ad3aefb506b60896d75b3b827d9d86/", "registered": false, "linkedin": "", "blog": "http://livingthefrugallife.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": ""}, "46fb565916826045adfd51e338ca799a": {"username": "Wade", "tumblr": "", "display_name": "Wade", "url": "http://disqus.com/guest/46fb565916826045adfd51e338ca799a/", "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": ""}, "e91caaf8e34fd5ca2f95c30cdefc77bf": {"username": "Denise", "tumblr": "", "display_name": "Denise", "url": "http://disqus.com/guest/e91caaf8e34fd5ca2f95c30cdefc77bf/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/348/4071/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "01ba393371834c376a2ee197f6505746": {"username": "KC", "tumblr": "", "display_name": "KC", "url": "http://disqus.com/guest/01ba393371834c376a2ee197f6505746/", "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": ""}, "75e5c1f61dc6fc873d78c90177578a28": {"username": "RedDye5", "tumblr": "", "display_name": "RedDye5", "url": "http://disqus.com/guest/75e5c1f61dc6fc873d78c90177578a28/", "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": ""}, "75907d83267e7e7945f4cb0cda14cd11": {"username": "Ryan", "tumblr": "", "display_name": "Ryan", "url": "http://disqus.com/guest/75907d83267e7e7945f4cb0cda14cd11/", "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": ""}, "1929adcdb0fd05920abd249571cc61a2": {"username": "Patrick", "tumblr": "", "display_name": "Patrick", "url": "http://disqus.com/guest/1929adcdb0fd05920abd249571cc61a2/", "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": ""}, "be2b1c064ea1afe81da4984f8c4fa625": {"username": "KS", "tumblr": "", "display_name": "KS", "url": "http://disqus.com/guest/be2b1c064ea1afe81da4984f8c4fa625/", "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": ""}, "1763bc43695114cbecc46e1e60434e09": {"username": "Chris", "tumblr": "", "display_name": "Chris", "url": "http://disqus.com/guest/1763bc43695114cbecc46e1e60434e09/", "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": ""}, "dd5ecb39eaf6dfb4cd890bb977b863be": {"username": "troy", "tumblr": "", "display_name": "troy", "url": "http://disqus.com/guest/dd5ecb39eaf6dfb4cd890bb977b863be/", "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": ""}, "520eb238c1c29f95c9d0cca618331562": {"username": "Dude!", "tumblr": "", "display_name": "Dude!", "url": "http://disqus.com/guest/520eb238c1c29f95c9d0cca618331562/", "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": ""}, "e9875bb06ae5f8fabb6fec4e8e209a59": {"username": "Pete", "tumblr": "", "display_name": "Pete", "url": "http://disqus.com/guest/e9875bb06ae5f8fabb6fec4e8e209a59/", "registered": false, "linkedin": "", "blog": "http://www.biblemoneymatters.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/124/5446/avatar92.jpg", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "44b3827026a85b98abf4e494dff32fef": {"username": "Californio", "tumblr": "", "display_name": "Californio", "url": "http://disqus.com/guest/44b3827026a85b98abf4e494dff32fef/", "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": ""}, "8694602063a556a94f28367bf92c7ac4": {"username": "Julian of Chicago", "tumblr": "", "display_name": "Julian of Chicago", "url": "http://disqus.com/guest/8694602063a556a94f28367bf92c7ac4/", "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": ""}, "820d0e4ee14e986a44d33782ca852f51": {"username": "Undercover Urbanist", "tumblr": "", "display_name": "Undercover Urbanist", "url": "http://disqus.com/guest/820d0e4ee14e986a44d33782ca852f51/", "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": ""}, "4cafe6ef1889bbf2c2e0781eaf3b7249": {"username": "Jac", "tumblr": "", "display_name": "Jac", "url": "http://disqus.com/guest/4cafe6ef1889bbf2c2e0781eaf3b7249/", "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": ""}, "624938127b30f4c3631dc77a0645ea93": {"username": "Juggler314", "tumblr": "", "display_name": "Juggler314", "url": "http://disqus.com/guest/624938127b30f4c3631dc77a0645ea93/", "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": ""}, "9067487e2e58c9311f4ac48454e98c24": {"username": "dustintweir", "tumblr": "", "display_name": "dustintweir", "url": "http://disqus.com/guest/9067487e2e58c9311f4ac48454e98c24/", "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": ""}, "eb988025aa4a8b63aa3dfe6c6ca55d02": {"username": "TD", "tumblr": "", "display_name": "TD", "url": "http://disqus.com/guest/eb988025aa4a8b63aa3dfe6c6ca55d02/", "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": ""}, "e84861b7a751f5938c8a8ca843f8dc8d": {"username": "Micheal Smith", "tumblr": "", "display_name": "Micheal Smith", "url": "http://disqus.com/guest/e84861b7a751f5938c8a8ca843f8dc8d/", "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": ""}, "fceda83b9496b0844740922cd3ffcd3a": {"username": "Jesse", "tumblr": "", "display_name": "Jesse", "url": "http://disqus.com/guest/fceda83b9496b0844740922cd3ffcd3a/", "registered": false, "linkedin": "", "blog": "http://www.youneedabudget.com/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": ""}, "894b543dc97c13329285f4fbd14bb4a3": {"username": "Andrea Smith", "tumblr": "", "display_name": "Andrea Smith", "url": "http://disqus.com/guest/894b543dc97c13329285f4fbd14bb4a3/", "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": ""}, "82b82b8c74fedbcda268e32fcc4c8960": {"username": "boston renter", "tumblr": "", "display_name": "boston renter", "url": "http://disqus.com/guest/82b82b8c74fedbcda268e32fcc4c8960/", "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": ""}, "cd133f5f3e44fdd5d791b5f0ae4c4027": {"username": "jaushwa", "tumblr": "", "display_name": "jaushwa", "url": "http://disqus.com/guest/cd133f5f3e44fdd5d791b5f0ae4c4027/", "registered": false, "linkedin": "", "blog": "http://krazology.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": ""}, "5359f21d3fed0830fa9cd8fd53e7ce17": {"username": "Benjamin", "tumblr": "", "display_name": "Benjamin", "url": "http://disqus.com/guest/5359f21d3fed0830fa9cd8fd53e7ce17/", "registered": false, "linkedin": "", "blog": "http://www.treesfullofmoney.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": ""}, "1d2668030af03ab77a8d08d3b535acef": {"username": "Crimson Falcon", "tumblr": "", "display_name": "Crimson Falcon", "url": "http://disqus.com/guest/1d2668030af03ab77a8d08d3b535acef/", "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": ""}, "aecff33f6e8544a043be5cc2a4739bac": {"username": "Evan", "tumblr": "", "display_name": "Evan", "url": "http://disqus.com/guest/aecff33f6e8544a043be5cc2a4739bac/", "registered": false, "linkedin": "", "blog": "http://www.MyJourneytoMillions.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/uploads/anonusers/108/7491/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:22:39", "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": {"21314560": {"up_voted": false, "ip": "", "has_replies": false, "message": "When suffering from a large debt, consider your alternatives, negotiate with your creditors and know the next steps in consolidating your credit. Thanks for the article!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_21:00:34", "killed": false, "user_key": "894b543dc97c13329285f4fbd14bb4a3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/07/2008 09:00 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}, "21314561": {"up_voted": false, "ip": "", "has_replies": false, "message": "I just have issue with referring to the Avalanche method as the \"correct\" one. The correct one is the one that WORKS. <br><br>It reminds me of weight loss - the most successful programs emphasize incremental changes and intermediate goals. When a person has 100 pounds to lose, it's easier to focus on the first five instead of the next 95.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_21:03:34", "killed": false, "user_key": "cd8a559fe9d88b93c8a605fd0179d5ca", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/07/2008 09:03 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}, "21314562": {"up_voted": false, "ip": "", "has_replies": false, "message": "Dave Ramsey's plan \"works,\" but it is not the best choice. Both methods can emphasize incremental changes and intermediate goals. The \"debt avalanche\" is cheaper and faster.  Anyone who makes the \"debt snowball\" method work can make the \"debt avalanche\" work by looking at the milestones in a different way.<br><br>At first I believed the \"debt avalanche\" method was the best way to go.  Then I realized that people who follow Dave Ramsey's suggestion may have a point. Later, I came to the conclusion that the positive aspects of Dave Ramsey's plan can be applied to the \"debt avalanche\" by looking at the milestones slightly differently as I've mentioned above. Not only that, but the \"debt avalanche\" method emphasizes separating emotional thinking from rational thinking, which is a good thing for those who have a habit of finding themselves in debt.<br><br>When dealing with money, the best option is to put your emotions and ego to the side and accept that the best answers are always the mathematical answers.  And yes, this is coming from someone who understands quite a bit about psychology. Not everyone is motivated the same way, but various motivation techniques -- the same ones that work for the \"debt snowball\" method -- can be applied to the \"debt avalanche.\"<br><br>So if you're serious about reducing your debt, there is no reason NOT to take care of it the most efficient way possible. You can be successful with either method, but if you want to save money and time, and if you want to prove to yourself that you can make intelligent decisions about money, do it the right way, the way in which you'll pay less interest and finish faster.<br><br>There is a time and place for the psychological aspects of money management, but this isn't it, just like it's a bad idea to buy or sell stock based on your emotions.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_21:32:11", "killed": false, "user_key": "flexocc", "has_been_anonymized": false, "edited": false, "author_is_moderator": true, "from_request_user": false, "votable": true, "date": "07/07/2008 09:32 PM", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": true, "is_realtime": false}, "21314563": {"up_voted": false, "ip": "", "has_replies": false, "message": "You sound like telling the alcholic that the best way to get better is to never take a drink again.  While you are right, human's don't operate like robots.  Everyone of us reacts to situations in different ways.  <br><br>It isn't always so easy for a credit addict to do as you ask though \"snowballing\" gives them the instant gratification that got them into trouble in the first place.  It's taking the flaw and making it work for them.  As someone already said, whatever works to help you get straight.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_21:45:34", "killed": false, "user_key": "1929adcdb0fd05920abd249571cc61a2", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/07/2008 09:45 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}, "21314564": {"up_voted": false, "ip": "", "has_replies": false, "message": "Or even better.  It would be better mathematically for a smoker to go cold turkey and not buy the $30 drug prescription a month.  However, it's easier for them to kick the habit and be more likely to not start back up.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_21:46:35", "killed": false, "user_key": "1929adcdb0fd05920abd249571cc61a2", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/07/2008 09:46 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}, "21314565": {"up_voted": false, "ip": "", "has_replies": false, "message": "According to my understanding of the debt snowball you can choose EITHER the highest interest first or the smallest balance. I use the snowball term but pay the highest interest debt first.<br><br>It is not what you call it that matters...what is important is that you are making an effort to reduce debt.<br><br>With both methods you are paying the minimum on all debts EXCEPT one which is targeted to receive a higher than the minimum payment. When I was first learning about debt snowballs I was told this was the basis of dealing with debt.....the choice comes when you decide if to tackle the highest interest first or the lowest balance first.<br><br>Different things work for different people and according to my financial situation I have switched from one method to the next. Sounds like you are just calling the same thing a different name here. Same principle.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_23:47:39", "killed": false, "user_key": "da2b01a500cfd7ddfe165dd2dd0e9d24", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/07/2008 11: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}, "21314567": {"up_voted": false, "ip": "", "has_replies": false, "message": "If you want to be technical about it being the most mathematically efficient way to pay off debt you should really be factoring in your state and federal tax brackets as well with respect to debts that have tax efficiencies. For instance, lets say you have a \"bad\" mortgage at 8.5%, and many other debts at 8%. If you are saving 20% of every dollar paid in mortgage interest - that could easily make the mortgage the \"worse\" debt to pay off even though it's at the topy of the list interest rate-wise.  As you pay that mortgage down, you'll have less and less cash available to you as a result of your declining tax deduction.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-08_08:00:50", "killed": false, "user_key": "624938127b30f4c3631dc77a0645ea93", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/08/2008 08:00 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}, "21314568": {"up_voted": false, "ip": "", "has_replies": false, "message": "I love these lively discussions.  Flexo, I think you should update your post and discuss the redefining of milestones because your comments have outlined it, but your original post didn't.  You have a great point there.<br><br>The key to debt reduction--under any name---is intensity.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-08_12:53:28", "killed": false, "user_key": "fceda83b9496b0844740922cd3ffcd3a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/08/2008 12: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}, "21314569": {"up_voted": false, "ip": "", "has_replies": false, "message": "Juggler314: I touched upon the tax issue in the post -- to compare interest rates correctly, you have to factor in all tax aspects to find your effective after-tax rate for each account. It's a great point and often overlooked. Thanks for providing that example.<br><br>Jesse: Thanks! I've updated the article to include thoughts about milestones.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-08_14:32:29", "killed": false, "user_key": "flexocc", "has_been_anonymized": false, "edited": false, "author_is_moderator": true, "from_request_user": false, "votable": true, "date": "07/08/2008 02:32 PM", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": true, "is_realtime": false}, "21314570": {"up_voted": false, "ip": "", "has_replies": false, "message": "ah I missed that little bit about \"same tax liability\". Usually all your debts have the same tax liability (for most mortals anyway) except mortgages though...so it's a pretty big asterisk for the mortgage debts.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-08_14:45:58", "killed": false, "user_key": "624938127b30f4c3631dc77a0645ea93", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/08/2008 02:45 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}, "21314571": {"up_voted": false, "ip": "", "has_replies": false, "message": "Juggler314: The other consideration is student loans.  Some people may qualify for a tax credit based on student loan interest paid.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-08_15:07:27", "killed": false, "user_key": "flexocc", "has_been_anonymized": false, "edited": false, "author_is_moderator": true, "from_request_user": false, "votable": true, "date": "07/08/2008 03:07 PM", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": true, "is_realtime": false}, "21314572": {"up_voted": false, "ip": "", "has_replies": false, "message": "Flexo, I have to say that your argument is somewhat passe. <br><br>\"We are more concerned with modifying behavior than correct mathematics.... I have learned that the math does need to work, but sometimes motivation is more important than math. This is one of those times.\" -Dave Ramsey<br><br>Your argument is presented, but your readers shouldn't accept that \"if your debt reducer can\u2019t see the big picture and choose the faster, cheaper, better option of the debt avalanche method, then they haven\u2019t learned to separate money from emotions or to make intelligent decisions about their finances.\" Your highest-interest-rate-first method is mathematically superior (and that's not a consession, it's a fact made by plenty of bloggers way before you), but an intelligent decision for EVERYONE is managing the individual's behavior. Some might do best with this method, some might do best with Ramsey's motivation, some might do best by building up a cash reserve before tackling debt, some might do best by paying off secured debt before unsecured debt. You shouldn't mislead your readers into thinking they're retards that will always be in debt if they can't figure out how to pay the high interest rate down.<br><br>One personal example is on a recent trip to Canada I made a dozen or so purchases in a weekend. I managed the exchange rates OK, but the bank charged me a currency conversion fee which made me overdraft my account (and if you tell me I should've memorized the fee schedule, I'm going to kick you in the nuts). After this hit, I had a necessary vehicle expense which I couldn't pay, and had to put it on my credit card. Because I'm not a robot and have a dynamic financial situation, I found it best to build up a small cash reserve in checking at, *GASP!*, 0% interest. Guess what! I don't pay overdraft fees anymore, and I've completely stopped adding any additional credit card debt. At a card interest rate of 10% and an overdraft fee of $35, it's MATHEMATICALLY better for me to hold $300 for a year as cash at 0% than to put it toward the debt, and I won't expand my total debt if any unexpected expenses of less than $300 show up.<br><br>To your readers: your most intelligent decision is whatever gets you out of debt, period. You're plenty intelligent if you can simply accomplish that goal,  and not try to follow a plan that doesn't work for you that could theoretically save you $75 a year in interest charges. Take his advice, keep on reading, and do what's best for you. (you genius, you)", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-09_13:37:36", "killed": false, "user_key": "9067487e2e58c9311f4ac48454e98c24", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/09/2008 01:37 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}, "21314573": {"up_voted": false, "ip": "", "has_replies": false, "message": "great post. It seems more and more evident to me that the more you separate rational and emotional thinking, the farther you will go in finance. The debt avalanche is the perfect example.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-09_17:16:58", "killed": false, "user_key": "cd133f5f3e44fdd5d791b5f0ae4c4027", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/09/2008 05:16 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}, "21314574": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"mathmatically superior\"<br><br>I love that.  <br><br>It is mathmatically superior to pay off higher interest debts first.  It is also mathematically superior to not have the debt in the firstplace....or is it.  I mean, mathmatically why pay off any debt  whose interest rate is lower after taxes than an alternative retun on investment.  <br><br>What about the opportunity costs of this mathematically superior way.  It makes perfect sense with standard stepped debts, but what about odd situations.<br><br>Say I have a mortgage at 7% for $500,000, a car loan at 8% for $50,000 and 20 credit cards with an average rate of 5.99% and an average balance of $2,000 each.  (don't laugh, I have seen it)<br><br>According to mathematics, I should be paying off the mortgage first.  Great.  Now I get to pay on 22 separate debts, track them, reconcile them,etc for the next 20 years because it \"mathematically\" makes the most sense.<br><br>Your thesis for\"mathematics\" fails to consider the most important of issues regarding personal finance.  RISK<br><br>No one ever give risk enough weight.  Not paying off revolving debt cariies risk.  juggling several debts carries risk.  All debt carries risk.  The interest rate is A factor, not THE factor.  Balance is A factor.  Risk is also a factor.  Risk of rate changes, universal default,etc.<br><br>The best way to eliminate debt is to pay off the RISKIEST debt first.  Sometimes it is the one with the highest payment, sometimes the highest interest rate, sometimes the highest balance.<br><br>You must also consider life situations.  If you are trying to reduce your debts to qualify for a better rate on  your new home purchase, lenders care about your MONTHLY debt obligations,not your TOTAL outstanding debt.  Paying off a low interest (5%)car loan with a $700 monthly payment will make a much larger impact than eliminating a 20% $4,000 credit card balance.  If that  car payoff gets you a .25% better interest rate on a $200,000 mortgage, it is \"mathematically superior\" to pay attention to your own situation and pay of the loans with RISK.<br><br>Rock on!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-09_21:33:48", "killed": false, "user_key": "dd5ecb39eaf6dfb4cd890bb977b863be", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/09/2008 09:33 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}, "21314575": {"up_voted": false, "ip": "", "has_replies": false, "message": "I concur, but the person who manages his emotional thoughts with rational actions will go furthest.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-09_22:04:13", "killed": false, "user_key": "9067487e2e58c9311f4ac48454e98c24", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/09/2008 10:04 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}, "21314577": {"up_voted": false, "ip": "", "has_replies": false, "message": "You are on the right track with trying to get people motivated to pay debt down the most efficient way possible.  However I  think you are overlooking the fact that many people are in debt *because numbers on paper mean nothing to them*.  They weren't worried about the huge numbers they were racking up on the credit card statement, because they were just numbers. If they cared about all that interest they are paying, they wouldn't have gone into debt in the first place. They don't get serious about debt repayment until the creditors are calling and getting nasty on the phone.  Collectors yelling is real, numbers on the statement are not.  So when it comes to payoff, the reduction in the number means nothing and isn't motivating.  They need the real life consequence of not having a bill to pay to feel good about what they have done.  So, I think to get people motivated you need a concrete reward.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-10_00:27:45", "killed": false, "user_key": "82b82b8c74fedbcda268e32fcc4c8960", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/10/2008 12:27 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}, "21314578": {"up_voted": false, "ip": "", "has_replies": false, "message": "Mary Hunt of Cheapskate Monthly recommends the debt snowball. Her website has actual examples of how you will pay off your debt sooner and pay less interest. She used to have a sample calculator where you could enter your own figures to see it work. I have to say also, I find it more satisfying to have fewer bills to pay each month so I go with paying the smaller bills first. My only exceptions are doctor bills--if they are large bills I just make whatever payments they'll accept because they don't charge interest.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-10_10:10:25", "killed": false, "user_key": "e91caaf8e34fd5ca2f95c30cdefc77bf", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/10/2008 10:10 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}, "21314579": {"up_voted": false, "ip": "", "has_replies": false, "message": "Troy, you must really be bad at math.  In your example, mathematically it would be FAR superior to pay the car loan before anything else (at 8%, even without factoring any other tax issues, it's the highest rate by far.).  Your point about risk was well taken, but the example was so extreme, and either a typo or ignorance made you sound like you have NO understanding of math or finance.<br><br>Besides, someone with that kind of debt load would have to make more than 200K a year to come close to being able to pay the amounts you listed.  Your example was not well thought out or very realistic.  Also, even if you did choose wrong and focus on the mortgage, the minimum payments on those credit cards would have them balanced to zero before the mortgage was paid (in just over 10 years.)", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-10_14:03:09", "killed": false, "user_key": "4b11fd27a788a377f514bd3cab353470", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/10/2008 02:03 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}, "21314580": {"up_voted": false, "ip": "", "has_replies": false, "message": "you pay <br>1IRS<br>2 student loans<br>3 then your 1st", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-11_20:25:52", "killed": false, "user_key": "2efe2443fadb7b579819aead47dc5ee7", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/11/2008 08:25 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}, "21314581": {"up_voted": false, "ip": "", "has_replies": false, "message": "Flexo, does it make sense to get a debt consolidation loan and payoff all the debt in monthly installments in a guaranteed 2 year period. And then if extra money is available, even sooner, assuming that the load in an open one?<br><br>Thank you, your post was very useful to me.<br>Timmy", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-13_08:03:01", "killed": false, "user_key": "010d69f88c3d8c857b592340d9934651", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/13/2008 08:03 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}, "21314582": {"up_voted": false, "ip": "", "has_replies": false, "message": "Your Avalanche method works better mathematically, but is based on the assumption that people are rational and logical.  Many people will also agree that they would prefer to do the Avalanche approach.  It just makes sense, logically.   However spending habits that get you into debt are emotionally driven.  When you try to pit logical motivations against emotional motivations, in the long run emotions are going to win.  <br><br>The logical approach will only work if people make emotional connections to it and break their other emotional connections to spending and saving.  <br><br>Starting with small wins first, the snowball method appreciates the human element in this.    It understands that most humans are driven more by emotions than by logic.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-14_21:33:59", "killed": false, "user_key": "85f7e90f0e55ef540318bc0277fc96fe", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/14/2008 09:33 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}, "21314583": {"up_voted": false, "ip": "", "has_replies": false, "message": "Timmy: Debt consolidation usually isn't a good solution for the underlying problem, but it really depends on an individual's unique situation.  If you've tried unsuccessfully to get out of debt, I'd seek a professional debt counselor before thinking about getting another loan.<br><br>Awareness: \"Rational and logical\" and \"emotional\" are not mutually exclusive.  Even people who are motivated emotionally can begin to understand the necessity of rational thinking in certain circumstances.  In fact, they'll need to if they wish to address underlying problems rather than just treating the symptoms of debt.  <br><br>Also, I've already addressed the emotional aspects.  There are ways to make the Debt Avalanche \"work\" emotionally as I wrote about above, without sacrificing the extra time and extra money required by other methods of prioritizing debt. <br><br>In some cases, people get into unmanageable debt due to *poor decision-making* which they rationalize by saying \"I'll pay it off later\" or ignoring the consequences. Choosing a method that takes longer and is more expensive to pay off that debt, once they are ready to do so, is another case of *poor decision-making* rationalized by saying various things like \"I'm motivated emotionally\" or \"Dave Ramsey says it's OK.\"  Yes, even \"emotionally-motivated\" people \"rationalize\" their actions and decisions.  (In some cases, people get into debt for reasons not related to decision-making at all, and that's another issue.)  You can be driven by emotions, that's fine, but you can't change your mindset about debt until you begin to think logically about money.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-14_22:26:41", "killed": false, "user_key": "flexocc", "has_been_anonymized": false, "edited": false, "author_is_moderator": true, "from_request_user": false, "votable": true, "date": "07/14/2008 10:26 PM", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": true, "is_realtime": false}, "21314584": {"up_voted": false, "ip": "", "has_replies": false, "message": "Flexo, you made it seem so simple. I have been tring that for over a year now but now i know where i went wrong. I wasnt paying the high interest debtors the major chunk as they never demanded more. Now i know why i'm in a soup. Thanks.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-19_15:22:33", "killed": false, "user_key": "e84861b7a751f5938c8a8ca843f8dc8d", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/19/2008 03:22 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}, "21314585": {"up_voted": false, "ip": "", "has_replies": false, "message": "I wish I was reading blogs like this a few years ago. I wouldnt be in the shit I am now, owing more than $1,200,000 to friends, family and banks. I would know all the right steps, I would get motivated and inspired... Now all I have left is a site called <a href=\"http://www.savemefromshit.com\" rel=\"nofollow\">www.savemefromshit.com</a>, which is more an example of what to avoid in life, rather than a cry for help...", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-08-05_01:50:42", "killed": false, "user_key": "ca03b54fd71bfdd7189809cf3d1281b3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "08/05/2008 01:50 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}, "21314586": {"up_voted": false, "ip": "", "has_replies": false, "message": "I am not sure why everyone has to be an all or none on this issue?  While your math is impecable and can't be argued (not even by Snowball addicts), life is not math.  <br><br>I set up one which I am very proud - where I combined your logical thinking with the debt snowball.  I put one CC which had the highest interest because I knew getting that off was priority #1 - then applied the debt snowball method.  <br><br>Like most things in life - there are shades of gray.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-08-07_14:04:35", "killed": false, "user_key": "aecff33f6e8544a043be5cc2a4739bac", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "08/07/2008 02:04 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}, "21314587": {"up_voted": false, "ip": "", "has_replies": false, "message": "I've seesawed between the two methods.  The psychological effect is as real as the math.  For me, the issue is that the only revolving credit card debt I had was 1.99% and 4.9% forever.  My student loans are 3.35% BEFORE tax deductions.  My car loan is now at 3.49%.  And my mortgage is at 6.375% (which is still the highest after tax deductions).  So it really would be an AVALANCHE in that when I finally paid off the first debt, boy would my monthly surplus jump.  But the rest of the debts would be paid off very slowly.<br><br>The reason I find it difficult is because this means I keep my current budget with a relatively slim margin, which means saving up for anything I want (such as that new bed you recommend) takes a long time because of the slim surplus.  I get frustrated and out comes the credit card.  If I pay off one of the smaller debts, I get to that larger surplus much faster, and maintain my discipline in saving for what I want... which as some psychological rewards of its own.  I paid off all of my credit cards and am now wavering once again between whether I should pay off my car first or go for the big kahuna straight off.  To help me make a better decision, I've started to bucket my debt payoff at ING so it can collect a little interest while I decide.  Of course 3% (before tax on interest) is definitely less than either the car or mortgage interest lost, when I do take that bucket and dump it on a debt fire, I feel good about the decision and the process to get there.<br><br>(That and my stupid mortgage company charges $10 to make extra payments online.  So I build up large chunks before making the payments.)", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-08-28_11:53:00", "killed": false, "user_key": "a15c803de47c83cb85601b3a6987eeb9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "08/28/2008 11:53 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}, "21314589": {"up_voted": false, "ip": "", "has_replies": false, "message": "So if you\u2019re serious about reducing your debt, there is no reason NOT to take care of it the most efficient way possible. <br><br>You're right- absolutely.  But you're a serious person who is capable of assessing consequences in your mind using a long-term, beyond-tomorrow-and-the-next-paycheck point of view.  A lot of people are simply not serious about their finances.<br><br>There are plenty of adults who do not have the emotional maturity and personal discipline to make a PF decision based on the best fiscal consequences for themselves in the long term.  In short, they're children with jobs, mortgages, credit cards, and debts.  These folks NEED Dave Ramsey to yell at them and play psychological tricks on them to break down the mental trap of \"if I just don't open my statement I can pretend the problem doesn't exist.\"  <br><br>Some people who go through the Ramsey method begin to wake up from their PF nightmare and realize that the snowball method is costing them more than the avalanche, and switch.  Most of the rest of them don't, and need Ramsey's methods.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-09-02_09:57:05", "killed": false, "user_key": "820d0e4ee14e986a44d33782ca852f51", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "09/02/2008 09:57 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}, "21314590": {"up_voted": false, "ip": "", "has_replies": false, "message": "You may be right, but I don't respect the tone of your criticism. I have seen Dave speak (not about money) and he is very focused and inspiring.There are a lot of people who are not going BK because they found someone who speaks to them in a way that makes sense to them and offers quick gains, which turns the \"start\" into a \"continue\".<br>You say that most people are smart. Then once they realize that the big interest rate is the dragon they want to slay (and your strategy is my own personal strategy that I thought up without asking anyone, and I'm just a girl...) then everyone's happy.<br><br>Your attitude is that he's an ineffective guy and maybe even borderline destructive. What's destructive is people disagreeing over when, how, and whether they should get out of debt. Divorces happen because people won't get on board and agree to get out of debt. He makes people want to be the one who gets on the radio and scream that they are debt free. I wish Governor Schwarzenegger would have been smart enough to listen to Dave Ramsey's stupid snowball idea.<br> So, go ahead and criticize his inferior idea. We can all start calling you \"Betamax.\"", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-09-13_00:52:49", "killed": false, "user_key": "75e5c1f61dc6fc873d78c90177578a28", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "09/13/2008 12:52 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}, "21314591": {"up_voted": false, "ip": "", "has_replies": true, "message": "Great method, I'm a bit confused on one topic...the emergency fund.  The method is a bit unclear, do you send all money that you have in it over to pay your debt?  Or is step one to build up an emergency find, and then never touch it?  Only then after having the money in the emergency fund can you start working on the debt avalanche?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-02-02_08:36:31", "killed": false, "user_key": "1d2668030af03ab77a8d08d3b535acef", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "02/02/2009 08:36 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}, "21314592": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ideally, the emergency fund should be funded prior to starting the debt avalanche. If not, any emergency would require you to start increasing your debt. Rather than waiting until you have three to six months' worth of expenses in your emergency fund, I might start the debt avalanche a little earlier, perhaps after you have one month's expenses in a savings account. Take into account your level of comfortability with the level of \"insurance\" your emergency fund needs to provide while balancing the realities of the need to get out of debt as quickly as possible.  The debt avalanche works the best when you can put *all* your extra income towards reducing your debt.", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-02-02_09:18:12", "killed": false, "user_key": "flexocc", "has_been_anonymized": false, "edited": false, "author_is_moderator": true, "from_request_user": false, "votable": true, "date": "02/02/2009 09:18 AM", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 21314591, "depth": 1, "points": 0, "author_is_creator": true, "is_realtime": false}, "21314593": {"up_voted": false, "ip": "", "has_replies": false, "message": "hy my cridet card rate went to 14.9% , $9.000 bal. I am thinking about a 0 bal. transfer for 12 months and pay every thing i can ever month (or weekly) tell payed off. that could be $1,000 to $2,000 a mounth. are there any of the zero transfers for 12 mo. out ther? Am i on the wright track?  Wade", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-03-11_22:02:19", "killed": false, "user_key": "46fb565916826045adfd51e338ca799a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "03/11/2009 10: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}, "21314594": {"up_voted": false, "ip": "", "has_replies": false, "message": "I get what you're saying and the math makes sense, but I think both you and Dave Ramsey push aside a few other concerns that (I believe) should be considered when paying off debt.  Here are a few things I think should be considered.<br><br>1) Depending on when you got student loans and when you consolidated, the interest rate could be higher than interest rates on other debts (I have college students who have graduated in recent years with student loans with 12% interest, for example.  My husband consolidated his monster loans at...8.25%.  Mine, I consolidated at 3.5).  But...the interest rate (usually) doesn't change, forebearance/deferral are possible in case of job loss (not true with many other kinds of loans), and disability can cancel out part or all of the loans.   I think getting out from under credit card debt even at lower interest rates is always better.<br><br>2) How much of the debt is to family/friends?  Even if the interest rate is low, you might be better off paying this off early to square things with people.<br><br>3) Emergency funds: Having blown through our poor little baby EF TWICE in one summer (an appendectomy and a new unplanned-for roof), we've decided a larger cushion (more than Ramsey's $1000) is necessary before we tackle the student loans.  But we also have extremely secure jobs, so that tempers things a bit.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-03-12_17:21:10", "killed": false, "user_key": "be2b1c064ea1afe81da4984f8c4fa625", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "03/12/2009 05:21 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}, "21314595": {"up_voted": false, "ip": "", "has_replies": false, "message": "The snowball program is the way to go -- with a few optional variations. Rank according to interest rate and then balance, but also rank according to credit card held the longest (or, credit card by an institution you have the \"best relationship\" with). For instance, a credit union (or any institution) that you have worked with and has been there when you have needed a loan. I would pay off a \"best relationship\" credit card (if the % is within 2% of your highest rate) because you set a new relationship record with that institution. I would then wait two months (keeping your paid-off card at a balance of less than $200). Then, (as most institutions allow -- if not, ignore this suggestion), you transfer a balance from a higher yielding account to your \"best relationship\" account. The net effect is the same (paying off the higher yielding account -- with a two month delay), but you also reaffirm your relationship with the proper creditor... You reward your friends and you let them know you're responsible. This shows on your credit report; further, if you have a relationship with your \"best relationship\" institution for more than three years, your credit score may reflect this. -Julian of Chicago", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-06-07_00:19:37", "killed": false, "user_key": "8694602063a556a94f28367bf92c7ac4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "06/07/2009 12:19 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}, "21314596": {"up_voted": false, "ip": "", "has_replies": false, "message": "OK , you people have too much time on your hands. Some people are just wire differently. I say do what works for you. There's just as many logical people in debt as anyone else. Just because you can read a spread sheet. Doesn't change the fact that debt issue come to all types of people. Emotion is always going to be a factor, in what we buy and how we buy it.  Some make a ton of money, some don't.  I know a dentist who makes a ton of money, and he's as broke as my garbage man. He has expensive toys, but it's paycheck to paycheck baby.... If you have extra money, work on paying off a bill period. And stop using the cards... If the non logical way works for you than do it that way. If you were so logical, you wouldn't have the debt in the first place, right? Stop thinking about it and just get started. What 's the other option, keep doing what your doing now? Any method is better than that. Don't give me That \"I'm so logical, and smarter than everyone else\"  that I'm going to slam how you do it...Like Nike says \"Just do It\"", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-07-10_12:31:47", "killed": false, "user_key": "520eb238c1c29f95c9d0cca618331562", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/10/2009 12:31 PM", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 21314544, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "21314598": {"up_voted": false, "ip": "", "has_replies": false, "message": "The avalanche is the way to go for credit cards, but not for fixed period loans.  For those, the \"snowball\" has a great benefit - it reduces our monthly minimum sooner.  This is pretty important because our future income to carry out the avalanche plan isn't assured.  We have two student loans, one of 25k (2.5% super-low interest) and one of 150k (at 6% or so).  We can nail the small loan in about a year, but the larger one is going to take awhile.  Taking out the small one first lowers our fixed expenses sooner.<br><br>Total interest paid isn't everything.  Greater flexibility to manage expenses is quite valuable, especially with today's job market.  With the possibility of kids and other unforeseen family expenses, I figure we'll end up taking our sweet time to finish off our student debt for good.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-08-13_00:10:52", "killed": false, "user_key": "44b3827026a85b98abf4e494dff32fef", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "08/13/2009 12:10 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}, "21314599": {"up_voted": false, "ip": "", "has_replies": false, "message": "Mathmatically the Debt Avalanche is the best method and excellent for those who think mathmatically; however, not everyone thinks that way.  There are regular non-math folks buried in debt, they know they're in trouble, and disheartened by their situation who need the emotional boost from quickly knocking out a few easy to pay off debts. The value associated to the positive moral impact from this cannot be dismissed for these folks.  They need it and it's arguably more valuable than the few extra dollars they will pay by not being 100% efficient.  I'm an engineer and respect the Avalance approach's mathmatical effeciency, but even I use the Snowball method for a few just to get that Feeling of accomplishment.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-09-28_12:49:14", "killed": false, "user_key": "eb988025aa4a8b63aa3dfe6c6ca55d02", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "09/28/2009 12: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}, "21314543": {"up_voted": false, "ip": "", "has_replies": false, "message": "I used this avalanche method and have paid off $36000 in less than 6 months. Still have $29000 to go! I call my rollover amount each month my snowball, but it really is an avalanche!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_08:29:16", "killed": false, "user_key": "5522afd83fec329d33e14468b1849864", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/07/2008 08:29 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}, "21314544": {"up_voted": false, "ip": "", "has_replies": true, "message": "I agree.  I would always choose the avalanche over the snowball, for the very reasons you point out.  The reasons provided in support of the snowball always struck me as quite odd.  <br><br>But then I realized that they do make sense for people with a certain mindset.  Not to be offensive, but that mindset is not a logical, orderly, or deliberative mindset.  The snowball probably works well for people who are deeply in debt from out of control spending and lack of financial discipline.  <br><br>So for those people who are going to backslide and return to an undisciplined approach to money unless they see the concrete result of paying off one debt in full very soon, I suppose that's a great approach.  I see it as a proof of concept situation for people who aren't yet able to look at their finances from a strictly logical and efficient perspective yet.  Better that (less efficient) method of debt reduction than no method at all, right?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_08:30:23", "killed": false, "user_key": "64ad3aefb506b60896d75b3b827d9d86", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/07/2008 08:30 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}, "21314545": {"up_voted": false, "ip": "", "has_replies": false, "message": "You know what though....you forgot one thing that happened to me. Your minimum payments on the remaining cards WILL go down slowly every single month. So you do need to tweak the monthly avalanche to take that into account. It might not seem like a lot, but it can quickly add up to an extra $25-50/month that could go to the avalanche.<br><br>Also, I am not rolling my mortgage or student loans or car into this. I guess I see the mortgage and car loan as a secured loan....so I'd rather pay off the unsecured debts first and then worry about the rest. It could also be because the interest rates on those are typically lower than a credit card anyways.<br><br>Also, one final thing. I would recommend that people doing this actively look for 0% balance transfer cards. This will ONLY work if you can chop up the remaining cards and be strong-willed. I just consolidated $20K of my credit card debt on a 0% interest card and am saving about $200/month in interest alone.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_08:34:12", "killed": false, "user_key": "5522afd83fec329d33e14468b1849864", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/07/2008 08:34 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}, "21314546": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"That is motivation enough.\"<br><br>Well, clearly it's not, or this would work for everyone. Why does it bother you that people choose a non-mathematically optimal route to getting rid of debt? Just be grateful that you are one of the people who find spreadsheets and numbers interesting and motivating, and try and encourage others to work on it whatever way works best for them.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_08:41:29", "killed": false, "user_key": "4cafe6ef1889bbf2c2e0781eaf3b7249", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/07/2008 08: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}, "21314548": {"up_voted": false, "ip": "", "has_replies": false, "message": "Jac: I wouldn't say that it bothers me, everyone is free to pay down debt as they wish. Those who promote the \"debt snowball\" method don't explain that this method keeps an individual in debt longer and and is more expensive.  Spreadsheets are the same tools whether used for the \"debt snowball\" method or the \"debt avalanche\" method.  <br><br>If someone wants to use the \"debt snowball\" method, it doesn't bother me one bit, as long as they understand that it is neither the fastest nor the cheapest way to use their available funds to get out of debt.<br><br>Twigger: Good point about your minimum payments -- they do change as you pay down your debt so you'll have to be mindful of how much you're sending to each debt account each month.  Congrats on your progress!<br><br>Kate: the undisciplined approach does not lend itself to paying off debt. If you're serious about paying off debt, I believe it should be done efficiently.  A slight change from the popular \"debt snowball\" method can make a big difference.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_09:22:07", "killed": false, "user_key": "flexocc", "has_been_anonymized": false, "edited": false, "author_is_moderator": true, "from_request_user": false, "votable": true, "date": "07/07/2008 09:22 AM", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": true, "is_realtime": false}, "21314549": {"up_voted": false, "ip": "", "has_replies": false, "message": "If you were to walk up to someone who was thousands of dollars into credit card debt and tell them to do something because it was \"mathematically smart,\" you tell me just how motivational you think you'd be. ;)<br><br>What I mean to say is: people get into these positions because, to them, math doesn't motivate, having something in their hands that they can see, that motivates.<br><br>For these, Dave Ramsey is right on. Ramsey takes into account a \"mindset shift\" that has to take place. You don't simply say, \"This is better because it's mathematically smart--let me get out my spreadsheet and show you.\"<br><br>First things first: people have to experience themselves impacting their own circumstances.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_09:33:36", "killed": false, "user_key": "75907d83267e7e7945f4cb0cda14cd11", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/07/2008 09:33 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}, "21314550": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ryan: People don't get into debt because they don't understand math, but because they are not exposed to the consequences of their spending. Dave Ramsey argues that having a small success (paying off your smallest debt first) quicker will motivate a former debtor to continue along the path, but if you tell that person that their small success is costing $<em>x</em> and adding <em>y</em> months to their total payback period, then it's hard to imagine anyone not feeling hoodwinked for following an inferior debt reduction method.<br><br>With the debt avalanche method, your first \"small success\" (defined by paying off a debt account fully) could take place at the same time as it would with the debt snowball method, if your smallest debt also has the highest interest rate.  So it's possible that the first small request would come as soon as it would otherwise, rendering the \"benefit\" of the snowball method irrelevant.  But in the chance that it doesn't, redefine the first \"small success\" to be a certain dollar amount, say $1,000 total paid off across all accounts.  A milestone like that can be a motivational factor as well as anything defined by the snowball method.<br><br>I understand from personal experience how different things motivation different people and things like this should be tailored to the individual's needs. If it is *explained in plain language* to those wishing to pay off debt that it is more expensive and longer to use the debt snowball method, there is only one obvious answer.  <em>Then,</em> if motivation is an issue, and if the time before the first full debt repayment is drastically altered by the method chosen, redefine your small successes to be milestones. This can be designed in such a way to be motivational to those same people who were motivated by the first full debt repayment.<br><br>People are smarter than we give them credit for, even if they've found themselves in debt. Professing the debt snowball method is like a teacher instructing the entire 25-student class based on the needs of the one student within the class who is the least able and most reliant on hand-holding to perform a task.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_10:36:16", "killed": false, "user_key": "flexocc", "has_been_anonymized": false, "edited": false, "author_is_moderator": true, "from_request_user": false, "votable": true, "date": "07/07/2008 10:36 AM", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": true, "is_realtime": false}, "21314551": {"up_voted": false, "ip": "", "has_replies": false, "message": "The debt avalanche makes perfect sense for those who can handle it.  But the debt snowball is still probably best for most people.  They got into credit trouble from spending.  They need instant results.  That's why they need to pay the smallest first - to get faster results and gratification.  Ramsey promotes this cause he knows the average person can't do the more reasonable, sensible thing - which is what you are proposing.<br><br>One time my husband and I were listening to Dave Ramsey.  He said, \"Who is this guy? He's such a d-bag to his listeners.\"  I told him who he was and that the reason he is so harsh is because his listeners are desperate and need to hear this in the maner he delievers or else it won't hit home with them.  That's who guys like Ramsey are geared towards - those who are desperate, and need a quick approach, which may not always be the smartest.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_10:38:36", "killed": false, "user_key": "01ba393371834c376a2ee197f6505746", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/07/2008 10:38 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}, "21314553": {"up_voted": false, "ip": "", "has_replies": false, "message": "I agree mathmatically your method works, but not EMOTIONALLY for many people. That is why the debt snowball works for many.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_10:42:38", "killed": false, "user_key": "1763bc43695114cbecc46e1e60434e09", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/07/2008 10:42 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}, "21314554": {"up_voted": false, "ip": "", "has_replies": false, "message": "Chris: I agree that the debt snowball method \"works,\" it just doesn't work as well as the debt avalanche. I've already explained how to design motivation into the debt avalanche to make it work \"emotionally\" as well, but let's face it... we should do our best to eliminate emotions from financial decisions of all kinds, not only debt repayment but investing decisions, etc. And to assume that people can't do this doesn't respect the intelligence of our fellow human beings.  <br><br>As I mentioned, the \"emotional\" response to a quick success can also be achieved with the debt avalanche method by redefining milestones.  But if your debt reducer can't see the big picture and choose the faster, cheaper, <em>better</em> option of the debt avalanche method, then they haven't learned to separate money from emotions or to make intelligent decisions about their finances... and thus, <strong>they have a higher chance of ending up in debt again.</strong>", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_10:49:48", "killed": false, "user_key": "flexocc", "has_been_anonymized": false, "edited": false, "author_is_moderator": true, "from_request_user": false, "votable": true, "date": "07/07/2008 10:49 AM", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": true, "is_realtime": false}, "21314555": {"up_voted": false, "ip": "", "has_replies": false, "message": "KC: I would hope that those who call into DR's show understand what is in store for them in terms of attitude. Dave Ramsey's show is about entertainment, after all, and of course, syndication. I'm sure DR has helped people get on the truer path to financial independence... but let's help them more by saving them money and time when paying off their debt. By the way, by the time someone decides to listen to Dave Ramsey, they've already decided that they need to pay off debt, but they're looking to learn how.  <br><br>That's why the debt snowball method is so popular -- it \"answers\" the exact question that listeners have when they finally decide to tune in and change their life.  Unfortunately, it's not the best answer.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_11:06:36", "killed": false, "user_key": "flexocc", "has_been_anonymized": false, "edited": false, "author_is_moderator": true, "from_request_user": false, "votable": true, "date": "07/07/2008 11:06 AM", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": true, "is_realtime": false}, "21314556": {"up_voted": false, "ip": "", "has_replies": false, "message": "I guess it really depends on the situation you are in. Financially it is always better to do the avalanche method, but psychologically, Ramsey's method is better. When I first started I wanted instant results and decided to settle in the middle. I picked a card with an average balance and a middle of the road interest rate. Paid it off within a couple weeks and got some satisfaction. Then decided I was being stupid and wasting money and starting tackling the higher interest cards (by high interest we're talking less than 10%). I personally think you can combine both and still get the motivational results and save money on the finance charges.<br><br>here is another catch that people just won't do. You NEED to change your lifestyle. Whatever lifestyle you were sustaining got you into this horrid mess. If you don't let go of the lifestyle then no snowball or avalanche will change things. You need to cut back expenses, and somehow make more money in order to get out of debt! That is just plain common sense.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_15:28:49", "killed": false, "user_key": "5522afd83fec329d33e14468b1849864", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/07/2008 03:28 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}, "21314557": {"up_voted": false, "ip": "", "has_replies": false, "message": "I'm not sure about Dave Ramsey, but every blog or article I've seen explaining the debt snowball has pointed out that it isn't as efficient but works for many people.  I can't believe people *don't* realize that.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_15:30:18", "killed": false, "user_key": "1929adcdb0fd05920abd249571cc61a2", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/07/2008 03:30 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}, "21314558": {"up_voted": false, "ip": "", "has_replies": false, "message": "The trick is finding whatever works for you!  I found wiping out the smaller debts first just to clear them out was best!  But in the end it may of only cost me $20 in interest over the year and a half that it took my family to pay off over $97,000 in consumer debt.<br><br>I love the name \"Debt Avalanche\".  This applies very well to my brother-in-law when my wife and I helped him snowball his debts.  He actually had a Chevy Avalanche that was a large portion of his debt.  Once we dropped that baby it was only a couple more months before we had him on \"easy street\".<br><br>regards,<br><br>ben", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_17:02:42", "killed": false, "user_key": "5359f21d3fed0830fa9cd8fd53e7ce17", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/07/2008 05: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}, "21314559": {"up_voted": false, "ip": "", "has_replies": false, "message": "I agree that your way is more financially sound, but I don't think Dave Ramsey ever says that his way is the best way to do things mathematically.  In fact we're taking a Ramsey class right now, and in the video discussing the debt snowball he says outright that the debt snowball isn't the best way to do things mathematically.  <br><br>What he does say though is that it works better in action because a lot of people who have gotten into debt aren't there because they're good at math. They're there because they've made lousy financial decisions and life choices (in most cases - i realize some people are there because of medical emergencies, etc).   They've spent money emotionally, and haven't made wise choices. Chances are unless you give them a method that takes into account the emotional side of spending, they aren't going to succeed.  <br><br>Having the small boosts from paying off smaller debts gives the momentum that a lot of those people need to continue down the path of paying off their debt.  If instead they're paying off the higher interest, and possibly higher balance debt - it takes longer, and the results don't come as quickly. When they don't see the results often they give up on making the payments because it doesn't feel like they're making headway.  <br><br>Personally we're out of debt so thankfully we don't have to deal with this.  I think if I did have debt I would probably do things your way - but that's because I'm more into numbers and keeping track of our finances. For most others - I think Ramsey's method will probably work better.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-07-07_19:59:36", "killed": false, "user_key": "e9875bb06ae5f8fabb6fec4e8e209a59", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "07/07/2008 07:59 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}}, "integration": {"receiver_url": "", "theme": 4, "reply_position": true, "disqus_logo": false}, "timer": {"timer_url": "http://localhost:8005", "thread_id": "42492284", "user_id": "anonymous", "forum_id": "214864", "hash": -8372892414655469633}, "thread": {"days_alive": 0, "slug": "the_correct_way_to_pay_off_personal_debt_the_debt_avalanche", "paginate": false, "num_pages": 1, "num_posts": 51, "per_page": 0, "total_posts": 0, "realtime_paused": true, "id": 42492284, "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_correct_way_to_pay_off_personal_debt_the_debt_avalanche' +
		'&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_correct_way_to_pay_off_personal_debt_the_debt_avalanche/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_correct_way_to_pay_off_personal_debt_the_debt_avalanche'
			+ '&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_correct_way_to_pay_off_personal_debt_the_debt_avalanche/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">51</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://consumerismcommentary.disqus.com/the_correct_way_to_pay_off_personal_debt_the_debt_avalanche/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_correct_way_to_pay_off_personal_debt_the_debt_avalanche/">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_correct_way_to_pay_off_personal_debt_the_debt_avalanche/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:42492284" 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_correct_way_to_pay_off_personal_debt_the_debt_avalanche',
			// 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_correct_way_to_pay_off_personal_debt_the_debt_avalanche/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_correct_way_to_pay_off_personal_debt_the_debt_avalanche'
			+ '&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_correct_way_to_pay_off_personal_debt_the_debt_avalanche'
			+ '&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_correct_way_to_pay_off_personal_debt_the_debt_avalanche'
				+ '&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/42492284/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-21314543">\
	 <div id="dsq-comment-header-21314543" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314543" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314543" href="http://nicethingsbaddebt.blogspot.com/" target="_blank" rel="nofollow">Twiggers</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314543" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314543" class="dsq-comment-message">I used this avalanche method and have paid off $36000 in less than 6 months. Still have $29000 to go! I call my rollover amount each month my snowball, but it really is an avalanche!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314544">\
	 <div id="dsq-comment-header-21314544" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314544" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314544" href="http://livingthefrugallife.blogspot.com/" target="_blank" rel="nofollow">Kate</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314544" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314544" class="dsq-comment-message">I agree.  I would always choose the avalanche over the snowball, for the very reasons you point out.  The reasons provided in support of the snowball always struck me as quite odd.  <br><br>But then I realized that they do make sense for people with a certain mindset.  Not to be offensive, but that mindset is not a logical, orderly, or deliberative mindset.  The snowball probably works well for people who are deeply in debt from out of control spending and lack of financial discipline.  <br><br>So for those people who are going to backslide and return to an undisciplined approach to money unless they see the concrete result of paying off one debt in full very soon, I suppose that\'s a great approach.  I see it as a proof of concept situation for people who aren\'t yet able to look at their finances from a strictly logical and efficient perspective yet.  Better that (less efficient) method of debt reduction than no method at all, right?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314596">\
	 <div id="dsq-comment-header-21314596" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314596" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314596">Dude!</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314596" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314596" class="dsq-comment-message">OK , you people have too much time on your hands. Some people are just wire differently. I say do what works for you. There\'s just as many logical people in debt as anyone else. Just because you can read a spread sheet. Doesn\'t change the fact that debt issue come to all types of people. Emotion is always going to be a factor, in what we buy and how we buy it.  Some make a ton of money, some don\'t.  I know a dentist who makes a ton of money, and he\'s as broke as my garbage man. He has expensive toys, but it\'s paycheck to paycheck baby.... If you have extra money, work on paying off a bill period. And stop using the cards... If the non logical way works for you than do it that way. If you were so logical, you wouldn\'t have the debt in the first place, right? Stop thinking about it and just get started. What \'s the other option, keep doing what your doing now? Any method is better than that. Don\'t give me That "I\'m so logical, and smarter than everyone else"  that I\'m going to slam how you do it...Like Nike says "Just do It"</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314545">\
	 <div id="dsq-comment-header-21314545" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314545" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314545" href="http://nicethingsbaddebt.blogspot.com/" target="_blank" rel="nofollow">Twiggers</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314545" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314545" class="dsq-comment-message">You know what though....you forgot one thing that happened to me. Your minimum payments on the remaining cards WILL go down slowly every single month. So you do need to tweak the monthly avalanche to take that into account. It might not seem like a lot, but it can quickly add up to an extra $25-50/month that could go to the avalanche.<br><br>Also, I am not rolling my mortgage or student loans or car into this. I guess I see the mortgage and car loan as a secured loan....so I\'d rather pay off the unsecured debts first and then worry about the rest. It could also be because the interest rates on those are typically lower than a credit card anyways.<br><br>Also, one final thing. I would recommend that people doing this actively look for 0% balance transfer cards. This will ONLY work if you can chop up the remaining cards and be strong-willed. I just consolidated $20K of my credit card debt on a 0% interest card and am saving about $200/month in interest alone.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314546">\
	 <div id="dsq-comment-header-21314546" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314546" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314546">Jac</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314546" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314546" class="dsq-comment-message">"That is motivation enough."<br><br>Well, clearly it\'s not, or this would work for everyone. Why does it bother you that people choose a non-mathematically optimal route to getting rid of debt? Just be grateful that you are one of the people who find spreadsheets and numbers interesting and motivating, and try and encourage others to work on it whatever way works best for them.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314548">\
	 <div id="dsq-comment-header-21314548" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314548" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314548" href="http://consumerismcommentary.com/" target="_blank" rel="nofollow">Flexo</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314548" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314548" class="dsq-comment-message">Jac: I wouldn\'t say that it bothers me, everyone is free to pay down debt as they wish. Those who promote the "debt snowball" method don\'t explain that this method keeps an individual in debt longer and and is more expensive.  Spreadsheets are the same tools whether used for the "debt snowball" method or the "debt avalanche" method.  <br><br>If someone wants to use the "debt snowball" method, it doesn\'t bother me one bit, as long as they understand that it is neither the fastest nor the cheapest way to use their available funds to get out of debt.<br><br>Twigger: Good point about your minimum payments -- they do change as you pay down your debt so you\'ll have to be mindful of how much you\'re sending to each debt account each month.  Congrats on your progress!<br><br>Kate: the undisciplined approach does not lend itself to paying off debt. If you\'re serious about paying off debt, I believe it should be done efficiently.  A slight change from the popular "debt snowball" method can make a big difference.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314549">\
	 <div id="dsq-comment-header-21314549" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314549" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314549">Ryan</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314549" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314549" class="dsq-comment-message">If you were to walk up to someone who was thousands of dollars into credit card debt and tell them to do something because it was "mathematically smart," you tell me just how motivational you think you\'d be. ;)<br><br>What I mean to say is: people get into these positions because, to them, math doesn\'t motivate, having something in their hands that they can see, that motivates.<br><br>For these, Dave Ramsey is right on. Ramsey takes into account a "mindset shift" that has to take place. You don\'t simply say, "This is better because it\'s mathematically smart--let me get out my spreadsheet and show you."<br><br>First things first: people have to experience themselves impacting their own circumstances.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314550">\
	 <div id="dsq-comment-header-21314550" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314550" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314550" href="http://consumerismcommentary.com/" target="_blank" rel="nofollow">Flexo</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314550" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314550" class="dsq-comment-message">Ryan: People don\'t get into debt because they don\'t understand math, but because they are not exposed to the consequences of their spending. Dave Ramsey argues that having a small success (paying off your smallest debt first) quicker will motivate a former debtor to continue along the path, but if you tell that person that their small success is costing $<em>x</em> and adding <em>y</em> months to their total payback period, then it\'s hard to imagine anyone not feeling hoodwinked for following an inferior debt reduction method.<br><br>With the debt avalanche method, your first "small success" (defined by paying off a debt account fully) could take place at the same time as it would with the debt snowball method, if your smallest debt also has the highest interest rate.  So it\'s possible that the first small request would come as soon as it would otherwise, rendering the "benefit" of the snowball method irrelevant.  But in the chance that it doesn\'t, redefine the first "small success" to be a certain dollar amount, say $1,000 total paid off across all accounts.  A milestone like that can be a motivational factor as well as anything defined by the snowball method.<br><br>I understand from personal experience how different things motivation different people and things like this should be tailored to the individual\'s needs. If it is *explained in plain language* to those wishing to pay off debt that it is more expensive and longer to use the debt snowball method, there is only one obvious answer.  <em>Then,</em> if motivation is an issue, and if the time before the first full debt repayment is drastically altered by the method chosen, redefine your small successes to be milestones. This can be designed in such a way to be motivational to those same people who were motivated by the first full debt repayment.<br><br>People are smarter than we give them credit for, even if they\'ve found themselves in debt. Professing the debt snowball method is like a teacher instructing the entire 25-student class based on the needs of the one student within the class who is the least able and most reliant on hand-holding to perform a task.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314551">\
	 <div id="dsq-comment-header-21314551" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314551" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314551">KC</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314551" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314551" class="dsq-comment-message">The debt avalanche makes perfect sense for those who can handle it.  But the debt snowball is still probably best for most people.  They got into credit trouble from spending.  They need instant results.  That\'s why they need to pay the smallest first - to get faster results and gratification.  Ramsey promotes this cause he knows the average person can\'t do the more reasonable, sensible thing - which is what you are proposing.<br><br>One time my husband and I were listening to Dave Ramsey.  He said, "Who is this guy? He\'s such a d-bag to his listeners."  I told him who he was and that the reason he is so harsh is because his listeners are desperate and need to hear this in the maner he delievers or else it won\'t hit home with them.  That\'s who guys like Ramsey are geared towards - those who are desperate, and need a quick approach, which may not always be the smartest.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314553">\
	 <div id="dsq-comment-header-21314553" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314553" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314553">Chris</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314553" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314553" class="dsq-comment-message">I agree mathmatically your method works, but not EMOTIONALLY for many people. That is why the debt snowball works for many.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314554">\
	 <div id="dsq-comment-header-21314554" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314554" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314554" href="http://consumerismcommentary.com/" target="_blank" rel="nofollow">Flexo</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314554" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314554" class="dsq-comment-message">Chris: I agree that the debt snowball method "works," it just doesn\'t work as well as the debt avalanche. I\'ve already explained how to design motivation into the debt avalanche to make it work "emotionally" as well, but let\'s face it... we should do our best to eliminate emotions from financial decisions of all kinds, not only debt repayment but investing decisions, etc. And to assume that people can\'t do this doesn\'t respect the intelligence of our fellow human beings.  <br><br>As I mentioned, the "emotional" response to a quick success can also be achieved with the debt avalanche method by redefining milestones.  But if your debt reducer can\'t see the big picture and choose the faster, cheaper, <em>better</em> option of the debt avalanche method, then they haven\'t learned to separate money from emotions or to make intelligent decisions about their finances... and thus, <strong>they have a higher chance of ending up in debt again.</strong></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314555">\
	 <div id="dsq-comment-header-21314555" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314555" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314555" href="http://consumerismcommentary.com/" target="_blank" rel="nofollow">Flexo</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314555" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314555" class="dsq-comment-message">KC: I would hope that those who call into DR\'s show understand what is in store for them in terms of attitude. Dave Ramsey\'s show is about entertainment, after all, and of course, syndication. I\'m sure DR has helped people get on the truer path to financial independence... but let\'s help them more by saving them money and time when paying off their debt. By the way, by the time someone decides to listen to Dave Ramsey, they\'ve already decided that they need to pay off debt, but they\'re looking to learn how.  <br><br>That\'s why the debt snowball method is so popular -- it "answers" the exact question that listeners have when they finally decide to tune in and change their life.  Unfortunately, it\'s not the best answer.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314556">\
	 <div id="dsq-comment-header-21314556" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314556" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314556" href="http://nicethingsbaddebt.blogspot.com/" target="_blank" rel="nofollow">Twiggers</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314556" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314556" class="dsq-comment-message">I guess it really depends on the situation you are in. Financially it is always better to do the avalanche method, but psychologically, Ramsey\'s method is better. When I first started I wanted instant results and decided to settle in the middle. I picked a card with an average balance and a middle of the road interest rate. Paid it off within a couple weeks and got some satisfaction. Then decided I was being stupid and wasting money and starting tackling the higher interest cards (by high interest we\'re talking less than 10%). I personally think you can combine both and still get the motivational results and save money on the finance charges.<br><br>here is another catch that people just won\'t do. You NEED to change your lifestyle. Whatever lifestyle you were sustaining got you into this horrid mess. If you don\'t let go of the lifestyle then no snowball or avalanche will change things. You need to cut back expenses, and somehow make more money in order to get out of debt! That is just plain common sense.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314557">\
	 <div id="dsq-comment-header-21314557" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314557" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314557">Patrick</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314557" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314557" class="dsq-comment-message">I\'m not sure about Dave Ramsey, but every blog or article I\'ve seen explaining the debt snowball has pointed out that it isn\'t as efficient but works for many people.  I can\'t believe people *don\'t* realize that.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314558">\
	 <div id="dsq-comment-header-21314558" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314558" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314558" href="http://www.treesfullofmoney.com/" target="_blank" rel="nofollow">Benjamin</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314558" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314558" class="dsq-comment-message">The trick is finding whatever works for you!  I found wiping out the smaller debts first just to clear them out was best!  But in the end it may of only cost me $20 in interest over the year and a half that it took my family to pay off over $97,000 in consumer debt.<br><br>I love the name "Debt Avalanche".  This applies very well to my brother-in-law when my wife and I helped him snowball his debts.  He actually had a Chevy Avalanche that was a large portion of his debt.  Once we dropped that baby it was only a couple more months before we had him on "easy street".<br><br>regards,<br><br>ben</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314559">\
	 <div id="dsq-comment-header-21314559" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314559" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314559" href="http://www.biblemoneymatters.com/" target="_blank" rel="nofollow">Pete</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314559" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314559" class="dsq-comment-message">I agree that your way is more financially sound, but I don\'t think Dave Ramsey ever says that his way is the best way to do things mathematically.  In fact we\'re taking a Ramsey class right now, and in the video discussing the debt snowball he says outright that the debt snowball isn\'t the best way to do things mathematically.  <br><br>What he does say though is that it works better in action because a lot of people who have gotten into debt aren\'t there because they\'re good at math. They\'re there because they\'ve made lousy financial decisions and life choices (in most cases - i realize some people are there because of medical emergencies, etc).   They\'ve spent money emotionally, and haven\'t made wise choices. Chances are unless you give them a method that takes into account the emotional side of spending, they aren\'t going to succeed.  <br><br>Having the small boosts from paying off smaller debts gives the momentum that a lot of those people need to continue down the path of paying off their debt.  If instead they\'re paying off the higher interest, and possibly higher balance debt - it takes longer, and the results don\'t come as quickly. When they don\'t see the results often they give up on making the payments because it doesn\'t feel like they\'re making headway.  <br><br>Personally we\'re out of debt so thankfully we don\'t have to deal with this.  I think if I did have debt I would probably do things your way - but that\'s because I\'m more into numbers and keeping track of our finances. For most others - I think Ramsey\'s method will probably work better.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314560">\
	 <div id="dsq-comment-header-21314560" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314560" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314560">Andrea Smith</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314560" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314560" class="dsq-comment-message">When suffering from a large debt, consider your alternatives, negotiate with your creditors and know the next steps in consolidating your credit. Thanks for the article!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314561">\
	 <div id="dsq-comment-header-21314561" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314561" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314561" href="http://www.accidentaljulie.com/" target="_blank" rel="nofollow">Julie</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314561" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314561" class="dsq-comment-message">I just have issue with referring to the Avalanche method as the "correct" one. The correct one is the one that WORKS. <br><br>It reminds me of weight loss - the most successful programs emphasize incremental changes and intermediate goals. When a person has 100 pounds to lose, it\'s easier to focus on the first five instead of the next 95.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314562">\
	 <div id="dsq-comment-header-21314562" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314562" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314562" href="http://consumerismcommentary.com/" target="_blank" rel="nofollow">Flexo</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314562" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314562" class="dsq-comment-message">Dave Ramsey\'s plan "works," but it is not the best choice. Both methods can emphasize incremental changes and intermediate goals. The "debt avalanche" is cheaper and faster.  Anyone who makes the "debt snowball" method work can make the "debt avalanche" work by looking at the milestones in a different way.<br><br>At first I believed the "debt avalanche" method was the best way to go.  Then I realized that people who follow Dave Ramsey\'s suggestion may have a point. Later, I came to the conclusion that the positive aspects of Dave Ramsey\'s plan can be applied to the "debt avalanche" by looking at the milestones slightly differently as I\'ve mentioned above. Not only that, but the "debt avalanche" method emphasizes separating emotional thinking from rational thinking, which is a good thing for those who have a habit of finding themselves in debt.<br><br>When dealing with money, the best option is to put your emotions and ego to the side and accept that the best answers are always the mathematical answers.  And yes, this is coming from someone who understands quite a bit about psychology. Not everyone is motivated the same way, but various motivation techniques -- the same ones that work for the "debt snowball" method -- can be applied to the "debt avalanche."<br><br>So if you\'re serious about reducing your debt, there is no reason NOT to take care of it the most efficient way possible. You can be successful with either method, but if you want to save money and time, and if you want to prove to yourself that you can make intelligent decisions about money, do it the right way, the way in which you\'ll pay less interest and finish faster.<br><br>There is a time and place for the psychological aspects of money management, but this isn\'t it, just like it\'s a bad idea to buy or sell stock based on your emotions.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314563">\
	 <div id="dsq-comment-header-21314563" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314563" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314563">Patrick</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314563" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314563" class="dsq-comment-message">You sound like telling the alcholic that the best way to get better is to never take a drink again.  While you are right, human\'s don\'t operate like robots.  Everyone of us reacts to situations in different ways.  <br><br>It isn\'t always so easy for a credit addict to do as you ask though "snowballing" gives them the instant gratification that got them into trouble in the first place.  It\'s taking the flaw and making it work for them.  As someone already said, whatever works to help you get straight.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314564">\
	 <div id="dsq-comment-header-21314564" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314564" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314564">Patrick</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314564" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314564" class="dsq-comment-message">Or even better.  It would be better mathematically for a smoker to go cold turkey and not buy the $30 drug prescription a month.  However, it\'s easier for them to kick the habit and be more likely to not start back up.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314565">\
	 <div id="dsq-comment-header-21314565" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314565" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314565">lulugal11</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314565" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314565" class="dsq-comment-message">According to my understanding of the debt snowball you can choose EITHER the highest interest first or the smallest balance. I use the snowball term but pay the highest interest debt first.<br><br>It is not what you call it that matters...what is important is that you are making an effort to reduce debt.<br><br>With both methods you are paying the minimum on all debts EXCEPT one which is targeted to receive a higher than the minimum payment. When I was first learning about debt snowballs I was told this was the basis of dealing with debt.....the choice comes when you decide if to tackle the highest interest first or the lowest balance first.<br><br>Different things work for different people and according to my financial situation I have switched from one method to the next. Sounds like you are just calling the same thing a different name here. Same principle.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314567">\
	 <div id="dsq-comment-header-21314567" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314567" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314567">Juggler314</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314567" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314567" class="dsq-comment-message">If you want to be technical about it being the most mathematically efficient way to pay off debt you should really be factoring in your state and federal tax brackets as well with respect to debts that have tax efficiencies. For instance, lets say you have a "bad" mortgage at 8.5%, and many other debts at 8%. If you are saving 20% of every dollar paid in mortgage interest - that could easily make the mortgage the "worse" debt to pay off even though it\'s at the topy of the list interest rate-wise.  As you pay that mortgage down, you\'ll have less and less cash available to you as a result of your declining tax deduction.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314568">\
	 <div id="dsq-comment-header-21314568" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314568" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314568" href="http://www.youneedabudget.com/blog/" target="_blank" rel="nofollow">Jesse</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314568" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314568" class="dsq-comment-message">I love these lively discussions.  Flexo, I think you should update your post and discuss the redefining of milestones because your comments have outlined it, but your original post didn\'t.  You have a great point there.<br><br>The key to debt reduction--under any name---is intensity.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314569">\
	 <div id="dsq-comment-header-21314569" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314569" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314569" href="http://consumerismcommentary.com/" target="_blank" rel="nofollow">Flexo</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314569" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314569" class="dsq-comment-message">Juggler314: I touched upon the tax issue in the post -- to compare interest rates correctly, you have to factor in all tax aspects to find your effective after-tax rate for each account. It\'s a great point and often overlooked. Thanks for providing that example.<br><br>Jesse: Thanks! I\'ve updated the article to include thoughts about milestones.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314570">\
	 <div id="dsq-comment-header-21314570" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314570" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314570">juggler314</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314570" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314570" class="dsq-comment-message">ah I missed that little bit about "same tax liability". Usually all your debts have the same tax liability (for most mortals anyway) except mortgages though...so it\'s a pretty big asterisk for the mortgage debts.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314571">\
	 <div id="dsq-comment-header-21314571" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314571" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314571" href="http://consumerismcommentary.com/" target="_blank" rel="nofollow">Flexo</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314571" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314571" class="dsq-comment-message">Juggler314: The other consideration is student loans.  Some people may qualify for a tax credit based on student loan interest paid.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314572">\
	 <div id="dsq-comment-header-21314572" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314572" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314572">dustintweir</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314572" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314572" class="dsq-comment-message">Flexo, I have to say that your argument is somewhat passe. <br><br>"We are more concerned with modifying behavior than correct mathematics.... I have learned that the math does need to work, but sometimes motivation is more important than math. This is one of those times." -Dave Ramsey<br><br>Your argument is presented, but your readers shouldn\'t accept that "if your debt reducer can’t see the big picture and choose the faster, cheaper, better option of the debt avalanche method, then they haven’t learned to separate money from emotions or to make intelligent decisions about their finances." Your highest-interest-rate-first method is mathematically superior (and that\'s not a consession, it\'s a fact made by plenty of bloggers way before you), but an intelligent decision for EVERYONE is managing the individual\'s behavior. Some might do best with this method, some might do best with Ramsey\'s motivation, some might do best by building up a cash reserve before tackling debt, some might do best by paying off secured debt before unsecured debt. You shouldn\'t mislead your readers into thinking they\'re retards that will always be in debt if they can\'t figure out how to pay the high interest rate down.<br><br>One personal example is on a recent trip to Canada I made a dozen or so purchases in a weekend. I managed the exchange rates OK, but the bank charged me a currency conversion fee which made me overdraft my account (and if you tell me I should\'ve memorized the fee schedule, I\'m going to kick you in the nuts). After this hit, I had a necessary vehicle expense which I couldn\'t pay, and had to put it on my credit card. Because I\'m not a robot and have a dynamic financial situation, I found it best to build up a small cash reserve in checking at, *GASP!*, 0% interest. Guess what! I don\'t pay overdraft fees anymore, and I\'ve completely stopped adding any additional credit card debt. At a card interest rate of 10% and an overdraft fee of $35, it\'s MATHEMATICALLY better for me to hold $300 for a year as cash at 0% than to put it toward the debt, and I won\'t expand my total debt if any unexpected expenses of less than $300 show up.<br><br>To your readers: your most intelligent decision is whatever gets you out of debt, period. You\'re plenty intelligent if you can simply accomplish that goal,  and not try to follow a plan that doesn\'t work for you that could theoretically save you $75 a year in interest charges. Take his advice, keep on reading, and do what\'s best for you. (you genius, you)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314573">\
	 <div id="dsq-comment-header-21314573" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314573" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314573" href="http://krazology.com/" target="_blank" rel="nofollow">jaushwa</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314573" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314573" class="dsq-comment-message">great post. It seems more and more evident to me that the more you separate rational and emotional thinking, the farther you will go in finance. The debt avalanche is the perfect example.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314574">\
	 <div id="dsq-comment-header-21314574" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314574" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314574">troy</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314574" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314574" class="dsq-comment-message">"mathmatically superior"<br><br>I love that.  <br><br>It is mathmatically superior to pay off higher interest debts first.  It is also mathematically superior to not have the debt in the firstplace....or is it.  I mean, mathmatically why pay off any debt  whose interest rate is lower after taxes than an alternative retun on investment.  <br><br>What about the opportunity costs of this mathematically superior way.  It makes perfect sense with standard stepped debts, but what about odd situations.<br><br>Say I have a mortgage at 7% for $500,000, a car loan at 8% for $50,000 and 20 credit cards with an average rate of 5.99% and an average balance of $2,000 each.  (don\'t laugh, I have seen it)<br><br>According to mathematics, I should be paying off the mortgage first.  Great.  Now I get to pay on 22 separate debts, track them, reconcile them,etc for the next 20 years because it "mathematically" makes the most sense.<br><br>Your thesis for"mathematics" fails to consider the most important of issues regarding personal finance.  RISK<br><br>No one ever give risk enough weight.  Not paying off revolving debt cariies risk.  juggling several debts carries risk.  All debt carries risk.  The interest rate is A factor, not THE factor.  Balance is A factor.  Risk is also a factor.  Risk of rate changes, universal default,etc.<br><br>The best way to eliminate debt is to pay off the RISKIEST debt first.  Sometimes it is the one with the highest payment, sometimes the highest interest rate, sometimes the highest balance.<br><br>You must also consider life situations.  If you are trying to reduce your debts to qualify for a better rate on  your new home purchase, lenders care about your MONTHLY debt obligations,not your TOTAL outstanding debt.  Paying off a low interest (5%)car loan with a $700 monthly payment will make a much larger impact than eliminating a 20% $4,000 credit card balance.  If that  car payoff gets you a .25% better interest rate on a $200,000 mortgage, it is "mathematically superior" to pay attention to your own situation and pay of the loans with RISK.<br><br>Rock on!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314575">\
	 <div id="dsq-comment-header-21314575" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314575" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314575">dustintweir</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314575" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314575" class="dsq-comment-message">I concur, but the person who manages his emotional thoughts with rational actions will go furthest.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314577">\
	 <div id="dsq-comment-header-21314577" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314577" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314577">boston renter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314577" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314577" class="dsq-comment-message">You are on the right track with trying to get people motivated to pay debt down the most efficient way possible.  However I  think you are overlooking the fact that many people are in debt *because numbers on paper mean nothing to them*.  They weren\'t worried about the huge numbers they were racking up on the credit card statement, because they were just numbers. If they cared about all that interest they are paying, they wouldn\'t have gone into debt in the first place. They don\'t get serious about debt repayment until the creditors are calling and getting nasty on the phone.  Collectors yelling is real, numbers on the statement are not.  So when it comes to payoff, the reduction in the number means nothing and isn\'t motivating.  They need the real life consequence of not having a bill to pay to feel good about what they have done.  So, I think to get people motivated you need a concrete reward.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314578">\
	 <div id="dsq-comment-header-21314578" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314578" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314578">Denise</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314578" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314578" class="dsq-comment-message">Mary Hunt of Cheapskate Monthly recommends the debt snowball. Her website has actual examples of how you will pay off your debt sooner and pay less interest. She used to have a sample calculator where you could enter your own figures to see it work. I have to say also, I find it more satisfying to have fewer bills to pay each month so I go with paying the smaller bills first. My only exceptions are doctor bills--if they are large bills I just make whatever payments they\'ll accept because they don\'t charge interest.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314579">\
	 <div id="dsq-comment-header-21314579" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314579" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314579">oldmiter</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314579" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314579" class="dsq-comment-message">Troy, you must really be bad at math.  In your example, mathematically it would be FAR superior to pay the car loan before anything else (at 8%, even without factoring any other tax issues, it\'s the highest rate by far.).  Your point about risk was well taken, but the example was so extreme, and either a typo or ignorance made you sound like you have NO understanding of math or finance.<br><br>Besides, someone with that kind of debt load would have to make more than 200K a year to come close to being able to pay the amounts you listed.  Your example was not well thought out or very realistic.  Also, even if you did choose wrong and focus on the mortgage, the minimum payments on those credit cards would have them balanced to zero before the mortgage was paid (in just over 10 years.)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314580">\
	 <div id="dsq-comment-header-21314580" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314580" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314580">john</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314580" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314580" class="dsq-comment-message">you pay <br>1IRS<br>2 student loans<br>3 then your 1st</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314581">\
	 <div id="dsq-comment-header-21314581" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314581" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314581">Timmy</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314581" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314581" class="dsq-comment-message">Flexo, does it make sense to get a debt consolidation loan and payoff all the debt in monthly installments in a guaranteed 2 year period. And then if extra money is available, even sooner, assuming that the load in an open one?<br><br>Thank you, your post was very useful to me.<br>Timmy</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314582">\
	 <div id="dsq-comment-header-21314582" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314582" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314582" href="http://www.pathwaytohappiness.com/" target="_blank" rel="nofollow">Awareness</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314582" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314582" class="dsq-comment-message">Your Avalanche method works better mathematically, but is based on the assumption that people are rational and logical.  Many people will also agree that they would prefer to do the Avalanche approach.  It just makes sense, logically.   However spending habits that get you into debt are emotionally driven.  When you try to pit logical motivations against emotional motivations, in the long run emotions are going to win.  <br><br>The logical approach will only work if people make emotional connections to it and break their other emotional connections to spending and saving.  <br><br>Starting with small wins first, the snowball method appreciates the human element in this.    It understands that most humans are driven more by emotions than by logic.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314583">\
	 <div id="dsq-comment-header-21314583" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314583" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314583" href="http://consumerismcommentary.com/" target="_blank" rel="nofollow">Flexo</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314583" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314583" class="dsq-comment-message">Timmy: Debt consolidation usually isn\'t a good solution for the underlying problem, but it really depends on an individual\'s unique situation.  If you\'ve tried unsuccessfully to get out of debt, I\'d seek a professional debt counselor before thinking about getting another loan.<br><br>Awareness: "Rational and logical" and "emotional" are not mutually exclusive.  Even people who are motivated emotionally can begin to understand the necessity of rational thinking in certain circumstances.  In fact, they\'ll need to if they wish to address underlying problems rather than just treating the symptoms of debt.  <br><br>Also, I\'ve already addressed the emotional aspects.  There are ways to make the Debt Avalanche "work" emotionally as I wrote about above, without sacrificing the extra time and extra money required by other methods of prioritizing debt. <br><br>In some cases, people get into unmanageable debt due to *poor decision-making* which they rationalize by saying "I\'ll pay it off later" or ignoring the consequences. Choosing a method that takes longer and is more expensive to pay off that debt, once they are ready to do so, is another case of *poor decision-making* rationalized by saying various things like "I\'m motivated emotionally" or "Dave Ramsey says it\'s OK."  Yes, even "emotionally-motivated" people "rationalize" their actions and decisions.  (In some cases, people get into debt for reasons not related to decision-making at all, and that\'s another issue.)  You can be driven by emotions, that\'s fine, but you can\'t change your mindset about debt until you begin to think logically about money.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314584">\
	 <div id="dsq-comment-header-21314584" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314584" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314584">Micheal Smith</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314584" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314584" class="dsq-comment-message">Flexo, you made it seem so simple. I have been tring that for over a year now but now i know where i went wrong. I wasnt paying the high interest debtors the major chunk as they never demanded more. Now i know why i\'m in a soup. Thanks.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314585">\
	 <div id="dsq-comment-header-21314585" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314585" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314585" href="http://www.savemefromshit.com/" target="_blank" rel="nofollow">tvo</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314585" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314585" class="dsq-comment-message">I wish I was reading blogs like this a few years ago. I wouldnt be in the shit I am now, owing more than $1,200,000 to friends, family and banks. I would know all the right steps, I would get motivated and inspired... Now all I have left is a site called <a href="http://www.savemefromshit.com" rel="nofollow">www.savemefromshit.com</a>, which is more an example of what to avoid in life, rather than a cry for help...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314586">\
	 <div id="dsq-comment-header-21314586" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314586" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314586" href="http://www.MyJourneytoMillions.com/" target="_blank" rel="nofollow">Evan</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314586" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314586" class="dsq-comment-message">I am not sure why everyone has to be an all or none on this issue?  While your math is impecable and can\'t be argued (not even by Snowball addicts), life is not math.  <br><br>I set up one which I am very proud - where I combined your logical thinking with the debt snowball.  I put one CC which had the highest interest because I knew getting that off was priority #1 - then applied the debt snowball method.  <br><br>Like most things in life - there are shades of gray.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314587">\
	 <div id="dsq-comment-header-21314587" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314587" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314587" href="http://www.jcbeck.com/" target="_blank" rel="nofollow">Jason Beck</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314587" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314587" class="dsq-comment-message">I\'ve seesawed between the two methods.  The psychological effect is as real as the math.  For me, the issue is that the only revolving credit card debt I had was 1.99% and 4.9% forever.  My student loans are 3.35% BEFORE tax deductions.  My car loan is now at 3.49%.  And my mortgage is at 6.375% (which is still the highest after tax deductions).  So it really would be an AVALANCHE in that when I finally paid off the first debt, boy would my monthly surplus jump.  But the rest of the debts would be paid off very slowly.<br><br>The reason I find it difficult is because this means I keep my current budget with a relatively slim margin, which means saving up for anything I want (such as that new bed you recommend) takes a long time because of the slim surplus.  I get frustrated and out comes the credit card.  If I pay off one of the smaller debts, I get to that larger surplus much faster, and maintain my discipline in saving for what I want... which as some psychological rewards of its own.  I paid off all of my credit cards and am now wavering once again between whether I should pay off my car first or go for the big kahuna straight off.  To help me make a better decision, I\'ve started to bucket my debt payoff at ING so it can collect a little interest while I decide.  Of course 3% (before tax on interest) is definitely less than either the car or mortgage interest lost, when I do take that bucket and dump it on a debt fire, I feel good about the decision and the process to get there.<br><br>(That and my stupid mortgage company charges $10 to make extra payments online.  So I build up large chunks before making the payments.)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314589">\
	 <div id="dsq-comment-header-21314589" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314589" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314589">Undercover Urbanist</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314589" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314589" class="dsq-comment-message">So if you’re serious about reducing your debt, there is no reason NOT to take care of it the most efficient way possible. <br><br>You\'re right- absolutely.  But you\'re a serious person who is capable of assessing consequences in your mind using a long-term, beyond-tomorrow-and-the-next-paycheck point of view.  A lot of people are simply not serious about their finances.<br><br>There are plenty of adults who do not have the emotional maturity and personal discipline to make a PF decision based on the best fiscal consequences for themselves in the long term.  In short, they\'re children with jobs, mortgages, credit cards, and debts.  These folks NEED Dave Ramsey to yell at them and play psychological tricks on them to break down the mental trap of "if I just don\'t open my statement I can pretend the problem doesn\'t exist."  <br><br>Some people who go through the Ramsey method begin to wake up from their PF nightmare and realize that the snowball method is costing them more than the avalanche, and switch.  Most of the rest of them don\'t, and need Ramsey\'s methods.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314590">\
	 <div id="dsq-comment-header-21314590" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314590" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314590">RedDye5</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314590" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314590" class="dsq-comment-message">You may be right, but I don\'t respect the tone of your criticism. I have seen Dave speak (not about money) and he is very focused and inspiring.There are a lot of people who are not going BK because they found someone who speaks to them in a way that makes sense to them and offers quick gains, which turns the "start" into a "continue".<br>You say that most people are smart. Then once they realize that the big interest rate is the dragon they want to slay (and your strategy is my own personal strategy that I thought up without asking anyone, and I\'m just a girl...) then everyone\'s happy.<br><br>Your attitude is that he\'s an ineffective guy and maybe even borderline destructive. What\'s destructive is people disagreeing over when, how, and whether they should get out of debt. Divorces happen because people won\'t get on board and agree to get out of debt. He makes people want to be the one who gets on the radio and scream that they are debt free. I wish Governor Schwarzenegger would have been smart enough to listen to Dave Ramsey\'s stupid snowball idea.<br> So, go ahead and criticize his inferior idea. We can all start calling you "Betamax."</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314591">\
	 <div id="dsq-comment-header-21314591" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314591" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314591">Crimson Falcon</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314591" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314591" class="dsq-comment-message">Great method, I\'m a bit confused on one topic...the emergency fund.  The method is a bit unclear, do you send all money that you have in it over to pay your debt?  Or is step one to build up an emergency find, and then never touch it?  Only then after having the money in the emergency fund can you start working on the debt avalanche?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314592">\
	 <div id="dsq-comment-header-21314592" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314592" class="dsq-comment-cite">\
	 <a id="dsq-author-user-21314592" href="http://consumerismcommentary.com/" target="_blank" rel="nofollow">Flexo</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314592" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314592" class="dsq-comment-message">Ideally, the emergency fund should be funded prior to starting the debt avalanche. If not, any emergency would require you to start increasing your debt. Rather than waiting until you have three to six months\' worth of expenses in your emergency fund, I might start the debt avalanche a little earlier, perhaps after you have one month\'s expenses in a savings account. Take into account your level of comfortability with the level of "insurance" your emergency fund needs to provide while balancing the realities of the need to get out of debt as quickly as possible.  The debt avalanche works the best when you can put *all* your extra income towards reducing your debt.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314593">\
	 <div id="dsq-comment-header-21314593" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314593" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314593">Wade</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314593" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314593" class="dsq-comment-message">hy my cridet card rate went to 14.9% , $9.000 bal. I am thinking about a 0 bal. transfer for 12 months and pay every thing i can ever month (or weekly) tell payed off. that could be $1,000 to $2,000 a mounth. are there any of the zero transfers for 12 mo. out ther? Am i on the wright track?  Wade</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314594">\
	 <div id="dsq-comment-header-21314594" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314594" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314594">KS</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314594" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314594" class="dsq-comment-message">I get what you\'re saying and the math makes sense, but I think both you and Dave Ramsey push aside a few other concerns that (I believe) should be considered when paying off debt.  Here are a few things I think should be considered.<br><br>1) Depending on when you got student loans and when you consolidated, the interest rate could be higher than interest rates on other debts (I have college students who have graduated in recent years with student loans with 12% interest, for example.  My husband consolidated his monster loans at...8.25%.  Mine, I consolidated at 3.5).  But...the interest rate (usually) doesn\'t change, forebearance/deferral are possible in case of job loss (not true with many other kinds of loans), and disability can cancel out part or all of the loans.   I think getting out from under credit card debt even at lower interest rates is always better.<br><br>2) How much of the debt is to family/friends?  Even if the interest rate is low, you might be better off paying this off early to square things with people.<br><br>3) Emergency funds: Having blown through our poor little baby EF TWICE in one summer (an appendectomy and a new unplanned-for roof), we\'ve decided a larger cushion (more than Ramsey\'s $1000) is necessary before we tackle the student loans.  But we also have extremely secure jobs, so that tempers things a bit.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314595">\
	 <div id="dsq-comment-header-21314595" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314595" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314595">Julian of Chicago</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314595" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314595" class="dsq-comment-message">The snowball program is the way to go -- with a few optional variations. Rank according to interest rate and then balance, but also rank according to credit card held the longest (or, credit card by an institution you have the "best relationship" with). For instance, a credit union (or any institution) that you have worked with and has been there when you have needed a loan. I would pay off a "best relationship" credit card (if the % is within 2% of your highest rate) because you set a new relationship record with that institution. I would then wait two months (keeping your paid-off card at a balance of less than $200). Then, (as most institutions allow -- if not, ignore this suggestion), you transfer a balance from a higher yielding account to your "best relationship" account. The net effect is the same (paying off the higher yielding account -- with a two month delay), but you also reaffirm your relationship with the proper creditor... You reward your friends and you let them know you\'re responsible. This shows on your credit report; further, if you have a relationship with your "best relationship" institution for more than three years, your credit score may reflect this. -Julian of Chicago</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314598">\
	 <div id="dsq-comment-header-21314598" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314598" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314598">Californio</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314598" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314598" class="dsq-comment-message">The avalanche is the way to go for credit cards, but not for fixed period loans.  For those, the "snowball" has a great benefit - it reduces our monthly minimum sooner.  This is pretty important because our future income to carry out the avalanche plan isn\'t assured.  We have two student loans, one of 25k (2.5% super-low interest) and one of 150k (at 6% or so).  We can nail the small loan in about a year, but the larger one is going to take awhile.  Taking out the small one first lowers our fixed expenses sooner.<br><br>Total interest paid isn\'t everything.  Greater flexibility to manage expenses is quite valuable, especially with today\'s job market.  With the possibility of kids and other unforeseen family expenses, I figure we\'ll end up taking our sweet time to finish off our student debt for good.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-21314599">\
	 <div id="dsq-comment-header-21314599" class="dsq-comment-header">\
	 <cite id="dsq-cite-21314599" class="dsq-comment-cite">\
	 <span id="dsq-author-user-21314599">TD</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-21314599" class="dsq-comment-body">\
	 <div id="dsq-comment-message-21314599" class="dsq-comment-message">Mathmatically the Debt Avalanche is the best method and excellent for those who think mathmatically; however, not everyone thinks that way.  There are regular non-math folks buried in debt, they know they\'re in trouble, and disheartened by their situation who need the emotional boost from quickly knocking out a few easy to pay off debts. The value associated to the positive moral impact from this cannot be dismissed for these folks.  They need it and it\'s arguably more valuable than the few extra dollars they will pay by not being 100% efficient.  I\'m an engineer and respect the Avalance approach\'s mathmatical effeciency, but even I use the Snowball method for a few just to get that Feeling of accomplishment.</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_correct_way_to_pay_off_personal_debt_the_debt_avalanche&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');
}

})();




