function initializeGuestbookForm() {
	$("#guestbookForm").submit(
		function() {
			return validateGuestbookEntry();
		}
	);
}

function validateGuestbookEntry() {
	var userValue = $("#uservalue").val().replace(/^\s+|\s+$/g, "");
	var messageValue = $("#messagevalue").val().replace(/^\s+|\s+$/g, "");
	
	if ((userValue.length == 0) || (messageValue.length == 0)) {
		//Blankness
		if (userValue.length == 0) {
			$("#uservalue").css("background-color", "#FF8888");
		}
		else {
			$("#uservalue").css("background-color", "transparent");
		}
		if (messageValue.length == 0) {
			$("#messagevalue").css("background-color", "#FF8888");
		}
		else {
			$("#messagevalue").css("background-color", "transparent");
		}
		return false;
	}
	else {
		return true;
	}
}

function getAnimeCompleteStats() {
	var total = $("#completeTable tr").length - 1;
	var all = $("#completeTable td:nth-child(5):contains('All')").length;
	var some = $("#completeTable td:nth-child(5):contains('Some')").length;
	var none = $("#completeTable td:nth-child(5):contains('None')").length;
	var inprogress = $("#completeTable td:nth-child(5):contains('In Progress')").length;
	$("#statsTitles").text(total);
	$("#statsAll").text(all + " (" + formatPercentage(all, total, 1) + "%)");
	$("#statsSome").text(some + " (" + formatPercentage(some, total, 1) + "%)");
	$("#statsNone").text(none + " (" + formatPercentage(none, total, 1) + "%)");
	$("#statsInProgress").text(inprogress + " (" + formatPercentage(inprogress, total, 1) + "%)");
}

function getAnimeIncompleteStats() {
	var total = $("#incompleteTable tr").length - 1;
	var all = $("#incompleteTable td:nth-child(5):contains('All')").length;
	var some = $("#incompleteTable td:nth-child(5):contains('Some')").length;
	var none = $("#incompleteTable td:nth-child(5):contains('None')").length;
	var inprogress = $("#incompleteTable td:nth-child(5):contains('In Progress')").length;
	$("#statsTitles").text(total);
	$("#statsAll").text(all + " (" + formatPercentage(all, total, 1) + "%)");
	$("#statsSome").text(some + " (" + formatPercentage(some, total, 1) + "%)");
	$("#statsNone").text(none + " (" + formatPercentage(none, total, 1) + "%)");
	$("#statsInProgress").text(inprogress + " (" + formatPercentage(inprogress, total, 1) + "%)");
}

function getAnimeMoviesStats() {
	var total = $("#moviesTable tr").length - 1;
	var yes = $("#moviesTable td:nth-child(4):contains('Yes')").length;
	var no = $("#moviesTable td:nth-child(4):contains('No')").length;
	$("#statsTitles").text(total);
	$("#statsYes").text(yes + " (" + formatPercentage(yes, total, 1) + "%)");
	$("#statsNo").text(no + " (" + formatPercentage(no, total, 1) + "%)");
}

function initializeCDTable() {
	$("#cdTable tr:first-child").prepend("<th></th>");
	$("#cdTable tr").next().prepend("<td class=\"musicToggle\"></td>");
	$("#cdTable tr[id!=''] td:first-child").text("+").css("cursor", "pointer").click(function() { toggleArtistCDs($(this).parent().attr("id")); });
	$("#btnExpand").click(function() { toggleArtistCDs("expand"); });
	$("#btnShrink").click(function() { toggleArtistCDs("shrink"); });
	toggleArtistCDs("shrink");
}

function toggleArtistCDs(x) {
	switch(x) {
		case "expand":
			$("#cdTable tr[id!=''] td:nth-child(3)").css("display", "");
			$("#cdTable tr[id!=''] td:first-child").text("-");
			break;
		case "shrink":
			$("#cdTable tr[id!=''] td:nth-child(3)").css("display", "none");
			$("#cdTable tr[id!=''] td:first-child").text("+");
			break;
		default:
			var artist = "#cdTable tr[id='" + x + "']";
			if ($(artist + " td:nth-child(3)").css("display") == "none") {
				$(artist + " td:nth-child(3)").css("display", "");
				$(artist + " td:first-child").text("-");
			}
			else {
				$(artist + " td:nth-child(3)").css("display", "none");
				$(artist + " td:first-child").text("+");
			}
	}
}

function initializeSystemSelector() {
	$("#systemSelector").change(
		function() {
			toggleVideoGamesBySystem($("#systemSelector option:selected").text());
		}
	).trigger("change");
}

function toggleVideoGamesBySystem(x) {
	if (x == "All") {
		$("#videoGameGameTable tr").css("display", "");
	}
	else {
		$("#videoGameGameTable td:nth-child(2)").each(
			function() {
				if ($(this).text() == x) {
					$(this).parent().css("display", "");
				}
				else {
					$(this).parent().css("display", "none");
				}
			}
		);
	}
	
	var amount = $("#videoGameGameTable tr:visible").length - 1;
	$("#gameQuantitySpan").text("(" + amount + " items)");
}

function formatPercentage(partialQuantity, fullQuantity, precision) {
	var returnValue = 0;
	returnValue = partialQuantity / fullQuantity;
	returnValue = returnValue * 100;
	returnValue = returnValue.toFixed(precision);

	return returnValue;
}

$(document).ready(function() {
	var x = document.location.href.substring(document.location.href.lastIndexOf("/") + 1);
	switch (x) {
		case "guestbook.php":
			initializeGuestbookForm();
			break;
		case "complete.php":
			getAnimeCompleteStats();
			break;
		case "incomplete.php":
			getAnimeIncompleteStats();
			break;
		case "movies.php":
			getAnimeMoviesStats();
			break;
		case "musiccds.php":
			initializeCDTable();
			break;
		case "videogames.php":
			initializeSystemSelector();
			break;
		default:
			break;
	}
});