﻿var currentRating;

$(document).ready
(
	function()
	{
		paginate(1);
		$("#comment-error").append("<ul></ul>");

		$("#rating-widget").mouseenter
		(
			function()
			{
				$(this).children(".star-" + currentRating).css("background-image", "none");
			}
		);

		$("#rating-widget").mouseleave
		(
			function()
			{
				$(this).children(".star-" + currentRating).css("background-image", "url('" + baseUrl + "/images/rating-star-full.gif')");
			}
		);

		$("#rating-widget span").mouseenter
		(
			function()
			{
				$(this).css("background-image", "url('" + baseUrl + "/images/rating-star-full.gif')");
			}
		);

		$("#rating-widget span").mouseleave
		(
			function()
			{
				$(this).css("background-image", "none");
			}
		);

		$("#rating-widget span").click
		(
			function()
			{
				currentRating = $(this).attr("class").substring(5, 6);
				$(this).css("background-image", "url('" + baseUrl + "/images/rating-star-full.gif')");
				
				jQuery.ajax
				(
					{
						type: "POST",
						url: baseUrl + "/ajax/article-rating.aspx",
						cache: false,
						data: "id=" + $(this).parents("div.article").attr("id").substr(1, $(this).parents("div.article").attr("id").length) + "&rating=" + currentRating
					}
				);
			}
		);

		$("#comment-form .button").click
		(
			function()
			{
				var firstName = jQuery.trim($("#firstname").val());
				var comment = jQuery.trim($("#comment").val());
				var errorCount = 0;

				$("#comment-error").children("ul").empty();

				if (firstName == "")
				{
					errorCount++;
					$("#comment-error").children("ul").append("<li>Please enter your name.</li>");
				}

				if (comment == "")
				{
					errorCount++;
					$("#comment-error").children("ul").append("<li>Please enter your comment.</li>");
				}

				if (errorCount == 0)
				{
					$("#comment-error").css("display", "none");
					$(this).attr("disabled", "disabled");
					$(this).val("Submitting...");

					jQuery.ajax
					(
						{
							type: "POST",
							url: baseUrl + "/ajax/article-comment.aspx",
							data: "id=" + $(this).parents("div.article").attr("id").substr(1, $(this).parents("div.article").attr("id").length) + "&firstname=" + firstName + "&comment=" + comment
						}
					);

					$("#comment-form").ajaxSuccess
					(
						function(event, request, settings)
						{
							$(this).css("display", "none");
							$("#comment-form-confirmation").css("display", "block");
						}
					);

					$("#comment-error").ajaxError
					(
						function(event, request, settings)
						{
							$(this).css("display", "block");
							$(this).children("h4").html("We've encountered an error while processing your request. Please try again.");
							$(this).children("ul").css("display", "none");

							$("#comment-form .button").removeAttr("disabled");
							$("#comment-form .button").val("Submit");
						}
					);
				}
				else
				{
					$("#comment-error").children("h4").html("Please review the following error message(s)");
					$("#comment-error").children("ul").css("display", "block");
					$("#comment-error").css("display", "block");
				}
			}
		);
	}
);

function paginate(pageNumber)
{
	var pageSize = 10;
	var pageHeight = 0;
	var numberOfPages = Math.ceil($(".hidden-comments").children().length / pageSize);
	
	pageNumber--;
	$(".comments").empty();

	for (var i = pageNumber * pageSize; i < (pageNumber * pageSize) + pageSize; i++)
	{
		$(".comments").append($(".hidden-comments").children().eq(i).clone());
	}

	for (var i = 0; i < $(".comments").children().length; i++)
	{
		pageHeight = pageHeight + $(".comments").children().eq(i).outerHeight();
	}

	$(".comments").css("height", pageHeight - 1);

	//Begin rendering paginator
	var paginationStart = 1;
	var paginationEnd = numberOfPages;

	if (numberOfPages > 24)
	{
		if (pageNumber > 12)
		{
			paginationStart = pageNumber - 11;
			paginationEnd = pageNumber + 11;
							
			if (paginationEnd > numberOfPages)
			{
				paginationStart = numberOfPages - 23;
				paginationEnd = numberOfPages;
			}
		}
		else
		{
			paginationEnd = 24;
		}
	}

	$(".paginator").empty();

	if (pageNumber > 0)
	{
		$(".paginator").append("<li><a href=\"javascript:paginate(" + pageNumber + ")\">Prev</a></li>");
	}

	for (var i = paginationStart; i <= paginationEnd; i++)
	{
		if (i == pageNumber + 1)
		{
			$(".paginator").append("<li><strong>" + i + "</strong></li>");
		}
		else
		{
			$(".paginator").append("<li><a href=\"javascript:paginate(" + i + ")\">" + i + "</a></li>");
		}
	}

	if (pageNumber + 1 < numberOfPages)
	{
		$(".paginator").append("<li><a href=\"javascript:paginate(" + (pageNumber + 2) + ")\">Next</a></li>");
	}
}
