if(!jsBlog) { var jsBlog = new Object(); }

jsBlog = {
	// datamembers
	debug: false,
	// init, something like a constructor
	init: function() {
		jsBlog.like.init();
	},
	// end
	_eoo: true
}	

jsBlog.like = {
	// init, something like a constructor
	init: function() {
		if($('.toggleLike').length > 0) {
			$('.toggleLike').bind('click', function(evt) { jsBlog.like.toggle(evt, $(this)); });
		}
	},
	toggle: function(evt, el) {
		evt.preventDefault();
		var method = el.attr('rel');
		var id = el.attr('href').split('#')[1];
		
		$.ajax({ type: 'post', dataType: 'json', cache: false,
			url: '/ajax.php?module=blog&action=toggle_like', 
			data: 'method='+ method +'&other_id='+ id,
			success: function(json) {
				switch (parseInt(json.status.code)) {
					case 200:
					case 400:
						if(method == 'like') { el.attr('rel', 'dislike'); } 
						else { el.attr('rel', 'like'); }
						el.attr('title', json.content.title);
						el.html('<span>' +json.content.label +'</span>');
						el.parent().removeClass().addClass(json.content.className);
						if(json.content.fans.substr(0, 1) == 0) { el.parent().siblings('li.fans').hide(); }
						else { el.parent().siblings('li.fans').html(json.content.fans).show(); }
					break;

					case 500:
					default:
						if(jsBlog.debug) { alert(json.status.text); }
					break;
				}
			},
			error: function(xhr,err,e) { if(jsBlog.debug) { alert(err + ' ' + e, 'Critical Error'); } }
		});
	},
	// end
	_eoo: true
}

$(document).ready(function() { jsBlog.init(); });
