var reputation = new Reputation();
var msg = new Array("評価なし", "もう少し", "まあまあ", "良い", "とても良い", "最高");
var imgStarOn = "/images/img2/star_on.gif";
var imgStarOff = "/images/img2/star_off.gif";
var spotStarUrl = "/SpotStar.do";
var spotStarParentDivId = "spotStarParentDiv";
var spotStarPos = { top:0, left:0 };

function Reputation()
{
    this.isdecide = false;
}

Reputation.prototype.init = function(parentObj)
{
    // JSが有効な場合タグを表示
    jQuery(parentObj).find('#js_star').css({ display:'block'});
    
    rate = Number(jQuery(parentObj).find('#trvStar').val());// hidden値
    if (rate > 0) {
       this.decideStar(parentObj);
       this.activeStar(parentObj, rate);
    } else {
       this.changeStar(parentObj);
    }
}

Reputation.prototype.resetStar = function(parentObj)
{
    if (!this.isdecide) {
        this.changeStar(parentObj);
    }
}

Reputation.prototype.activeStar = function(parentObj, rate)
{
    for (i = 1; i <= rate; i++) {
        jQuery(parentObj).find("#star" + i).attr("src", imgStarOn);
        jQuery(parentObj).find("#star" + i).attr("alt", msg[i]);
    }
    for (i = rate + 1; i <= 5; i++) {
    	jQuery(parentObj).find("#star" + i).attr("src", imgStarOff);
        jQuery(parentObj).find("#star" + i).attr("alt", msg[i]);
    }
    jQuery(parentObj).find('#trvStar_msg').html(msg[rate]);
}

Reputation.prototype.changeStar = function(parentObj)
{
    this.isdecide = false;

    for (i = 1; i <= 5; i++) {
    	jQuery(parentObj).find("#star" + i).attr("src", imgStarOff);
        jQuery(parentObj).find("#star" + i).attr("alt", msg[i]);
    }
    jQuery(parentObj).find('#trvStar').val(0); // hiddenにリセット
    jQuery(parentObj).find('#trvStar_msg').html(msg[0]);
    jQuery(parentObj).find('#trvStar_msg_decide').html("");
}

Reputation.prototype.decideStar = function(parentObj)
{
    this.isdecide = true;
    jQuery(parentObj).find('#trvStar_msg_decide').html("あなたの評価（<a href = 'javascript:reputation.changeStar(\"" + parentObj + "\");'>評価の変更</a>）");
}

Reputation.prototype.clickStar = function(parentObj, rank)
{
    if (!this.isdecide) {
        this.decideStar(parentObj);
        jQuery(parentObj).find('#trvStar').val(rank);// hiddenにセット
    }
}

Reputation.prototype.overStar = function(parentObj, rank)
{
    if (!this.isdecide) {
        this.activeStar(parentObj, rank);
        jQuery(parentObj).find('#trvStar_msg').html(msg[rank]);
    }
}


Reputation.prototype.openStarDiv = function(objId)
{
	spotStarPos = { top: mouse_Y, left: mouse_X };
	jQuery("#" + spotStarParentDivId).remove();
    if (typeof objId !== "undefined") {
        jQuery.post(spotStarUrl, { command:"init", rcdObjId:objId }, function(response){
        	jQuery("body").append("<div id='" + spotStarParentDivId + "' style='position: absolute; display: none;'></div>");
        	var divObj = jQuery("#" + spotStarParentDivId);
        	divObj.css(spotStarPos);
        	divObj.html(response);
        	divObj.css({ display: "block" });
        	reputation.init("#" + spotStarParentDivId);
        });
    }
}

Reputation.prototype.starSubmit = function()
{
	var objId = jQuery("#" + spotStarParentDivId).find("#rcdObjId").val();
	var rcdStar = jQuery("#" + spotStarParentDivId).find("#trvStar").val();
	if (rcdStar == null || typeof rcdStar === "undefined") rcdStar = "0";
	jQuery("#" + spotStarParentDivId).remove();
    if (typeof objId !== "undefined") {
        jQuery.post(spotStarUrl, { command:"save", rcdObjId:objId, rcdSpotStar:rcdStar }, function(response){
        	jQuery("body").append("<div id='" + spotStarParentDivId + "' style='position: absolute; display: none;'></div>");
        	var divObj = jQuery("#" + spotStarParentDivId);
        	divObj.css(spotStarPos);
        	divObj.html(response);
        	var isFinishedFlg = jQuery("#" + spotStarParentDivId).find("#isFinished").val();
        	if (isFinishedFlg == "0") {
        		divObj.css({ display: "block" });
        		reputation.init("#" + spotStarParentDivId);
        	}
        	
        	if (isFinishedFlg == "1") {
        		divObj.remove();
        	}
        });
    }
}

Reputation.prototype.closeStarDiv = function()
{
	jQuery("#" + spotStarParentDivId).remove();
}