$(document).ready(
	function(){
		$("input.evaluationStar").rating();
		setEvaluation(evaluationObj);
	}
);

var evaluationObj = new Object();
evaluationObj.productID = "productID";
evaluationObj.valueName = "evaluation";
evaluationObj.contentID = "evaluationContent";
evaluationObj.isCommendID = "isCommend";
evaluationObj.submitID = "submitEvaluation";

evaluationObj.msgPanelID = "evaluationPanel";
evaluationObj.levelPanelID = "levelPanel";
evaluationObj.countPanelID = "countPanel";
evaluationObj.commendPanelID = "commendPanel";
evaluationObj.contentPanelID = "contentPanel";
evaluationObj.starRatingImgID = "starRatingImg";

evaluationObj.paggingPanelID = "evaluationContentPagging";
evaluationObj.contentNumberPanelID = "contentNumber";
evaluationObj.contentPageNumberPanelID = "contentPageNumber";

function setEvaluation(obj){
	$("#"+obj.submitID).click(
		function(){
			var productID = $("#"+obj.productID).val();
			var value = $("input[name="+obj.valueName+"]").val();
			var content = $("#"+obj.contentID).val();
			var isCommend = $("#"+obj.isCommendID).attr("checked");
			
			if(!value){
				alert("未選擇評價星星數");
			}
			else if(content.length > 64){
				alert("內容過長(限64字)");
			}
			else{
				content = encodeURI(content);
				content = encodeURI(content);
				$(this).attr("disabled", true);
				doEvaluationAjax(productID, value, content, isCommend, obj);
			}
		}
	)
}


function doEvaluationAjax(productID, value, content, isCommend, obj){
	$.ajax({
		type: "GET",
		url: "evaluationServlet.ajax"
			+ "?type=setEvaluation"
			+ "&productID=" + productID
			+ "&value=" + value
			+ "&content=" + content
			+ "&commend=" + isCommend,
		dataType: "text",
		complete: function(jXMLHttpRequest){
		
			var xml = jXMLHttpRequest.responseXML;
			var isSuccess = xml.getElementsByTagName("isScuuess")[0].childNodes[0].nodeValue;
			var msg = xml.getElementsByTagName("msg")[0].childNodes[0].nodeValue;
			if(isSuccess == "true"){
				var count = xml.getElementsByTagName("count")[0].childNodes[0].nodeValue;
				var level = xml.getElementsByTagName("level")[0].childNodes[0].nodeValue;
				var commend = xml.getElementsByTagName("commend")[0].childNodes[0].nodeValue;
				var contentList = xml.getElementsByTagName("contentList");
				var contentListCount = xml.getElementsByTagName("contentListCount")[0].childNodes[0].nodeValue;
				var pageNumber = countPageNumber(contentListCount, 10);
				
				var star;
				if(level%2==0) 
					star = (level*0.5) + ".0";
				else
					star = (level*0.5);

				$("#"+obj.countPanelID).html(count);
				$("#"+obj.levelPanelID).html(star);
				$("#"+obj.commendPanelID).html(commend);

				if(contentList.length > 0){
					var contentBody = "";
					contentBody += "<ul>";
					for(i=0;i<contentList.length;i++){
						var contentText = contentList[i].getElementsByTagName("content")[0].childNodes[0].nodeValue;
						var acountText = contentList[i].getElementsByTagName("account")[0].childNodes[0].nodeValue;
						var dateText = contentList[i].getElementsByTagName("date")[0].childNodes[0].nodeValue;
						contentBody += "<li>" + contentText + "<br>" + "<div class=\"account\">" + acountText + "</div><div class=\"date\">" + dateText.substring(0,19) + "</div></li>";
					}
					contentBody += "</ul>";
					$("#"+obj.contentPanelID).html(contentBody);
				}
				
				$("#"+obj.starRatingImgID).attr("src", "WEB-PAGES/common/images/web/other/starList/"+level+".gif");
				
				$("#"+obj.contentNumberPanelID).html(contentListCount);
				$("#"+obj.contentPageNumberPanelID).html(pageNumber);
				
				var pageBody = "";
				var endPage = 0;
				if(pageNumber>7)
					endPage = 7;
				else
					endPage = pageNumber;
				for(i=1;i<=endPage;i++){
					if(i==1)
						pageBody += "<a href=\"javascript:setContentPage(" + i + ")\" class=\"selected\">" + i + "</a> ";
					else
						pageBody += "<a href=\"javascript:setContentPage(" + i + ")\">"+ i + "</a> ";
				}
				if(pageNumber>7)
					pageBody += "<a href=\"javascript:setContentPage(" + i + ")\">...</a> ";
				
				$("#"+obj.paggingPanelID).html(pageBody);
			}
			$("#"+obj.msgPanelID).html("<div class=\"emptyResult\">" + msg + "</div>");

		}
	});
}

function countPageNumber(itemNum, pageSize){
	var pageNumber
	if(itemNum > pageSize){
		if(itemNum % pageSize == 0){
			pageNumber = itemNum/pageSize;
		}
		else{
			pageNumber = ((itemNum - (itemNum % pageSize)) / pageSize) + 1;
		}
	}
	else{
		pageNumber = 1;
	}
	return pageNumber;
}

function setContentPage(currentPage){
	
	var productID = $("#"+evaluationObj.productID).val();
	var pageNumber = $("#"+evaluationObj.contentPageNumberPanelID).text();
	
	var startPage = countPageStart(currentPage, pageNumber);
	var endPage = countPageEnd(startPage, pageNumber);
	var pageBody = "";
	
	if(startPage > 1){
		pageBody += "<a href=\"javascript:setContentPage(" + (startPage-1) + ")\">...</a> ";
	}
	for(i=startPage;i<=endPage;i++){
		if(i==currentPage)
			pageBody += "<a href=\"javascript:setContentPage(" + i + ")\" class=\"selected\">" + i + "</a> ";
		else
			pageBody += "<a href=\"javascript:setContentPage(" + i + ")\">"+ i + "</a> ";
	}
	if(endPage < pageNumber){
		pageBody += "<a href=\"javascript:setContentPage(" + (endPage+1) + ")\">...</a> ";
	}
	
	$("#"+evaluationObj.paggingPanelID).html(pageBody);
	
	$.ajax({
		type: "GET",
		url: "evaluationServlet.ajax"
			+ "?type=getEvaluationContentList"
			+ "&productID=" + productID
			+ "&page=" + currentPage,

		dataType: "text",
		complete: function(jXMLHttpRequest){
			var xml = jXMLHttpRequest.responseXML;
			var contentList = xml.getElementsByTagName("contentList");

			if(contentList.length > 0){
				var contentBody = "";
				contentBody += "<ul>";
				for(i=0;i<contentList.length;i++){
					var contentText = contentList[i].getElementsByTagName("content")[0].childNodes[0].nodeValue;
					var acountText = contentList[i].getElementsByTagName("account")[0].childNodes[0].nodeValue;
					var dateText = contentList[i].getElementsByTagName("date")[0].childNodes[0].nodeValue;
					contentBody += "<li>" + contentText + "<br>" + "<div class=\"account\">" + acountText + "</div><div class=\"date\">" + dateText.substring(0,19) + "</div></li>";
				}
				contentBody += "</ul>";
				$("#"+evaluationObj.contentPanelID).html(contentBody);
			}
		}
	});
}

function countPageStart(currentPage, pageNumber){
	var startPage = 0;
	if(currentPage <= 4){
		startPage = 1;
	}
	else if((currentPage+3) > pageNumber){
		startPage = (pageNumber-6);
	}
	else{
		startPage = (currentPage-3);
	}
	return startPage;
}

function countPageEnd(startPage, pageNumber){
	var endPage = 0;
	if((startPage+6)>pageNumber){
		endPage = pageNumber;
	}
	else{
		endPage = (startPage+6);
	}
	return endPage;
}

