﻿var WriteReviewPopUp;
var WriteReviewCompletePopUp;

var WriteReviewBaseContentId;
var WriteReviewIsland;
var WriteReviewloggedIn;

Control.Rating.prototype.mouseOver = function(link) {
    this.render(link.value, true);
    if (this.actionMouseOver) this.actionMouseOver(link.value);
};
Control.Rating.prototype.mouseOut = function(link) {
    this.render(this.value);
    if (this.actionMouseOut) this.actionMouseOut();
};

var valueArr = new Array(6);
valueArr[0] = "&nbsp;";
valueArr[1] = "unacceptable";
valueArr[2] = "poor";
valueArr[3] = "adequate";
valueArr[4] = "good";
valueArr[5] = "excellent";

document.observe('dom:loaded', function() {
	WriteReviewPopUp = new RmzPopup("WriteReview", 600);
    WriteReviewCompletePopUp = new RmzPopup("WriteReviewComplete", 465);
    //$('WriteReview').style.display = 'block';
    //$('WriteReviewComplete').style.display = 'block';

    InitRating('RatingProQualityControl', 'RatingProQuality', 'RatingProQualityDescription');
    InitRating('RatingProAttentionControl', 'RatingProAttention', 'RatingProAttentionDescription');
    InitRating('RatingProCapabilityControl', 'RatingProCapability', 'RatingProCapabilityDescription');
    InitRating('RatingProShowUpControl', 'RatingProShowUp', 'RatingProShowUpDescription');
    InitRating('RatingProCleanControl', 'RatingProClean', 'RatingProCleanDescription');
    InitRating('RatingProThrustControl', 'RatingProThrust', 'RatingProThrustDescription');
    InitRating('RatingProCommunicationControl', 'RatingProCommunication', 'RatingProCommunicationDescription');
    InitRating('RatingProBudgetControl', 'RatingProBudget', 'RatingProBudgetDescription');
    InitRating('RatingProLimitDisruptionControl', 'RatingProLimitDisruption', 'RatingProLimitDisruptionDescription');
    InitRating('rateProjectControl', 'rateProject', 'rateProjectDescription');    
});

function InitRating(ratingControlId, hiddenControlId, DescriptionControlId) {
    var ratingQwork01 = new Control.Rating(ratingControlId, {
    input: hiddenControlId,
        multiple: true
    });
    ratingQwork01.descriptId = DescriptionControlId;
    ratingQwork01.actionMouseOver = actionMouseOver.bind(ratingQwork01);
    ratingQwork01.actionMouseOut = actionMouseOut.bind(ratingQwork01);
}
function actionMouseOver(value) {
    $(this.descriptId).update(valueArr[value]);
}
function actionMouseOut() {
    $(this.descriptId).update(valueArr[0]);
}
function ShowWriteReviewPopUp(baseContentId, loggedIn) {
    WriteReviewBaseContentId = baseContentId;
    WriteReviewLoggedIn = loggedIn;
    if (Trail != null) Trail.show();
    Rmz.Web.WebServices.DataService.Profiles_StartWriteReview(baseContentId, WriteReviewOnReadSuccess, OnAjaxRequest_Error);
}
function WriteReviewOnReadSuccess(result) {
    if (Trail != null) Trail.hide();

    WriteReviewIsland = result.evalJSON();
    if (WriteReviewIsland.Static.targetType == 'Rmz.BusinessLogic.Project')
    {
        $$('.WriteReview_Pro').each(function(element, index) {
            element.addClassName('off');
        });
    }
    else
    {
        $$('.writereivew_Project').each(function(element, index) {
            element.addClassName('off');
        });
    }
    $('WriteReviewImage').src = WriteReviewIsland.Static.imageUrl;
    $$('.writeReviewTitle').each(function(element, index) {
    element.update(WriteReviewIsland.Static.targetTitle);
        });
    $('writeReview_Projects').length = 0;
    if ((WriteReviewIsland.Static.projects.length > 0) && ((WriteReviewIsland.Static.targetType != 'Rmz.BusinessLogic.Project'))) { 
        WriteReviewIsland.Static.projects.each(function(element, index) {
            var el = new Element('option', { 'value': element.Id });
            el.update(element.Name);
            $('writeReview_Projects').insert(el);
        });    
        
        
    }
    else
    {
        $('pWriteReview_ProjectsRow').addClassName('off');
    }
    WriteReviewPopUp.show();
}

function WriteReview_Send() {
    WriteReviewIsland.Data.review.Comments = $F(WriteReviewComment);
    if (WriteReviewIsland.Static.targetType == 'Rmz.BusinessLogic.Project') {
        WriteReviewIsland.Data.review.Rating = $F('rateProject');
    }
    else {
        WriteReviewIsland.Data.review.WorkQuality = $F('RatingProQuality');
        WriteReviewIsland.Data.review.AttentionToDetails = $F('RatingProAttention');
        WriteReviewIsland.Data.review.JobCapability = $F('RatingProCapability');
        WriteReviewIsland.Data.review.WorkOnTime = $F('RatingProShowUp');
        WriteReviewIsland.Data.review.CleanedSite = $F('RatingProClean');
        WriteReviewIsland.Data.review.Trustworthness = $F('RatingProThrust');
        WriteReviewIsland.Data.review.CommunicationSkills = $F('RatingProCommunication');
        WriteReviewIsland.Data.review.StayOnBudget = $F('RatingProBudget');
        WriteReviewIsland.Data.review.LimitDisruption = $F('RatingProLimitDisruption');
    }
    WriteReviewPopUp.close();
    if (WriteReviewLoggedIn) {
        if (Trail != null) Trail.show();
        Rmz.Web.WebServices.DataService.Profiles_SaveWriteReview(WriteReviewBaseContentId, Object.toJSON(WriteReviewIsland.Data), $F('WriteReview_Relationship'), WriteReview_Success, OnAjaxRequest_Error);
    }
    else {
        cta_PostponeAction('Rmz.Web.WebServices.DataService.Profiles_SaveWriteReview(WriteReviewBaseContentId, Object.toJSON(WriteReviewIsland.Data), $F("WriteReview_Relationship"), WriteReview_Success, OnAjaxRequest_Error);');
    }
}

function WriteReview_Success() {
    WriteReviewCompletePopUp.show();
}
