/* ---------------------------------------------------------------------------------------------------------------------------------

	STAR RATING - 星評価

--------------------------------------------------------------------------------------------------------------------------------- */

$(function(){

	/* 初期表示時に評価数を元に画像を出力
	---------------------------------------------------------- */
		$(".rate").each(function (i) {
			var rateNumber = $(this).text();
			var rateNumberImg = rateNumber.replace(".","");
			$(this).html('<img src="/common/img/star/icon_star_s'+rateNumberImg+'.gif" alt="'+rateNumber+'" width="78" height="15" />');

			var lastlateClass = $(this).parent().next().find("ul").attr("class");
			var lastlateClassNum = lastlateClass.replace("entry","");
			$(this).parent().next().find(".ratingrm").append('<p class="lastrate" style="display: none;">'+lastlateClassNum+'</p>');//前回評価の保持

		});


	/* 初期表示時に連番処理
	---------------------------------------------------------- */
		var rateset = 1;
		$(".entry li").each(function (i) {
			$(this).addClass("rate"+rateset);
			if(rateset > 4){
				rateset = 1;
			}else{
				rateset = rateset + 1;
			}
		});


	/* 評価エリアにマウスオーバー・アウトした際の処理
	---------------------------------------------------------- */
		$(".rate").live("mouseover",
			function () {
				$(this).parent().addClass("hover");
				$(this).parent().next().css("display","block");
			}
		);

		$(".rate").live("mouseout",
			function () {
				$(this).parent().removeClass("hover");
				$(this).parent().next().css("display","none");
			}
		);

		$(".ratingPopup").hover(
			function(){
				$(this).prev().addClass("hover");
				$(this).css("display","block");
			},
			function(){
				$(this).prev().removeClass("hover");
				$(this).css("display","none");
			}
		);

	/* 評価エリアの星にマウスオーバー・アウトした際の処理
	---------------------------------------------------------- */
		$(".rating .entry li").live('mouseover',
			function(){
				var nowRate = $(this).attr("class");
				var setRate = nowRate.replace("rate","");

				$(this).parent().removeClass("entry1");
				$(this).parent().removeClass("entry2");
				$(this).parent().removeClass("entry3");
				$(this).parent().removeClass("entry4");
				$(this).parent().removeClass("entry5");

				$(this).parent().addClass("entry"+setRate);
			}).live('mouseout', function(){
				var lastlateNum = $(this).parent().next().text();

				//alert(lastlateNum);//debug
				if(lastlateNum == ""){
					$(this).parent().attr("class","entry");
				}else{
					$(this).parent().attr("class","entry entry"+lastlateNum);
				}
			}
		);


/*
		$(".rating .entry li").hover(
			function(){
				var nowRate = $(this).attr("class");
				var setRate = nowRate.replace("rate","");
				$(this).parent().addClass("entry"+setRate);
			},function(){
				var lastlateNum = $(this).parent().next().text();
				if(lastlateNum == ""){
					$(this).parent().attr("class","entry entry"+lastlateNum);
				}else{
					$(this).parent().attr("class","entry");
				}
			}
		);
*/





	/* 評価ボタンを押した際の処理
	---------------------------------------------------------- */

		/* 操作対象をキャッシュ
		------------------------------------------------------ */
			var entry = $(".entry li a");

		/* ボタンを押した場合
		------------------------------------------------------ */
			entry.live("click",function(){
				//alert("test");

				var ratingRequest = $(this).attr("href");
				//alert(ratingRequest);

				//評価エリアを非表示
				var ratingPopup = $(this).parent().parent().parent().parent();//ratingPopup
				var ratingRm = $(this).parent().parent().parent().find(".lastrate");//.ratingrm
				//var ratingRm = $(this).parent().parent().parent();//.ratingrm
				var ratingView = $(this).parent().parent().parent().parent().prev();//ratingView
				var ratingPopupTitle = $(this).parent().parent().prev();//ratingPopup .title

				var ratingNum = $(this).parent().parent(); //.ratingrm ul

				ratingPopup.css("display","none");

				//APIへデータリクエスト
				requestRatingXML(ratingRequest,ratingView,ratingPopupTitle,ratingNum,ratingRm);
				return false;
			});


	/* APIへのデータリクエスト
	---------------------------------------------------------- */

		function requestRatingXML(requestdata,ratingView,ratingPopupTitle,ratingNum,ratingRm){
			//alert(parm +","+requestdata);
			$.ajax({
				type: "GET",
				url: requestdata, //APIリクエスト先
				dataType: "xml",

				success: function(xml){

					/* APIへのリクエストに成功したら
					---------------------------------------------------------- */
					//alert("success");

						ratingView.html('<p class="thanktext">Thank you！</p>')

						/* XMLノードにアクセス開始
						--------------------------------------------------------------------------------------------------------------------------------- */

						/* 評価の取得 */
						var rate = $(xml).find("rate").text();
						if(rate == "1"){
							rateNumberImg = "1";
						}else if(rate == "1.5"){
							rateNumberImg = "15";
						}else if(rate == "2"){
							rateNumberImg = "2";
						}else if(rate == "2.5"){
							rateNumberImg = "25";
						}else if(rate == "3"){
							rateNumberImg = "3";
						}else if(rate == "3.5"){
							rateNumberImg = "35";
						}else if(rate == "4"){
							rateNumberImg = "4";
						}else if(rate == "4.5"){
							rateNumberImg = "45";
						}else if(rate == "5"){
							rateNumberImg = "5";
						}else{
							rateNumberImg = "0";
						}

						/* 投票数の取得 */
						var votenum = $(xml).find("votenum").text();

						setTimeout( function() {
							ratingView.html('<p class="rate"><img src="/common/img/star/icon_star_s'+rateNumberImg+'.gif" alt="'+rate+'" width="78" height="15" /></p><p class="votenum">('+votenum+')</p>')
						}, 2000);

						/* 投票済フラグ */
						var lastrate = $(xml).find("lastrate").text();

						if(lastrate > 0){
							var pop = ratingPopupTitle.text("再評価しますか？");
						}

						if(lastrate == "1"){
							rateClass = "rateNum1";
						}else if(lastrate == "2"){
							rateClass = "rateNum2";
						}else if(lastrate == "3"){
							rateClass = "rateNum3";
						}else if(lastrate == "4"){
							rateClass = "rateNum4";
						}else if(lastrate == "5"){
							rateClass = "rateNum5";
						}else{
							rateClass == "";
						}

						ratingNum.removeClass();
						ratingNum.addClass("entry entry" + lastrate);

						ratingRm.text(lastrate);//前回評価の保持

						//alert(lastrate);
						/* 評価の取得 */

				},

				error: function(){

					/* APIへのリクエストに失敗したら
					---------------------------------------------------------- */
						// No Action

				}
			});
		}

});
