google.setOnLoadCallback(function() {
	// Rating rollover and click handler
	$("div.ratings div.rating").each(function() {
		if ($("a", this).length != 0) {
			$(this).bind("mouseover", function() {
				quoteID = parseInt($(this).closest("div.extra").attr('id').split('_')[1]);
				ratingRollover(quoteID, $(this).attr('id'));
			});
		}
		
		$("a", this).bind("click", function() {
			rating = parseInt($(this).attr('id').split('_')[2]);
			quoteID = parseInt($(this).closest("div.extra").attr('id').split('_')[1]);
			url = "http://holybork.com/qdb/rate/" + quoteID + "/" + rating + "/";
			$.getJSON(url, {
				
			}, function(data) {
				updateRating(data.quote_id, data.quote_rating, data.quote_votes);
				$("div#extra_" + data.quote_id + " span.rating_message").css({
					opacity: 1.0});
				setTimeout('$("div#extra_' + data.quote_id + ' span.rating_message").fadeOut("slow")', 2500);
			});
			return false;
		});
		
		$("div.ratings").bind("mouseout", function() {
			$("div.ratings > div.rating").removeClass("gold");
		});
		
		quoteID = parseInt($(this).closest("div.extra").attr('id').split('_')[1]);
		url = "http://holybork.com/qdb/rate/" + quoteID + "/";
		$.getJSON(url, {
			
		}, function(data) {
			updateRating(data.quote_id, data.quote_rating, data.quote_votes);
			$("div#extra_" + data.quote_id + " div.ratings").animate({
				opacity: 1.0}, "normal");
		});
	});
});

function ratingRollover(quoteID, ratingID) {
	rating = parseInt(ratingID.split('_')[1]);
	
	$("div#extra_" + quoteID + " div.ratings > div.rating").each(function() {
		thisRating = parseInt($(this).attr('id').split('_')[1]);
		if (thisRating <= rating)
			$(this).addClass("gold");
		else
			$(this).removeClass("gold");
	});
}

function updateRating(quoteID, rating, votes) {
	$("div#extra_" + quoteID + " div.ratings > div.rating").each(function() {
		thisRating = parseInt($(this).attr('id').split('_')[1]);
		if (thisRating <= rating)
			$(this).removeClass("bad");
		else
			$(this).addClass("bad");
	});
	
	if (votes > 0) {
		votesText = "(" + votes + " vote" + (votes == 1 ? "" : "s") + ")";
		$("div#extra_" + quoteID + " span.rating_votes").text(votesText);
	}
}
