// RATING
var _cf_ContentWebService = ColdFusion.AjaxProxy.init('/affinitiz/services/content/ContentWebService.cfc','ContentWebService');
_cf_ContentWebService.prototype.saveContentRatingStatusId=function(contentRatingStatusId,contentUid) { return ColdFusion.AjaxProxy.invoke(this, "saveContentRatingStatusId", {contentRatingStatusId:contentRatingStatusId,contentUid:contentUid});};
_cf_ContentWebService.prototype.getContentRatingAverage=function(contentUid,trackerEnabled) { return ColdFusion.AjaxProxy.invoke(this, "getContentRatingAverage", {contentUid:contentUid,trackerEnabled:trackerEnabled});};
_cf_ContentWebService.prototype.saveContentRating=function(contentRating,contentUid) { return ColdFusion.AjaxProxy.invoke(this, "saveContentRating", {contentRating:contentRating,contentUid:contentUid});};
_cf_ContentWebService.prototype.getContentRatingAverages=function(contentUids,trackerEnabled) { return ColdFusion.AjaxProxy.invoke(this, "getContentRatingAverages", {contentUids:contentUids,trackerEnabled:trackerEnabled});};

function getContentRatingAverages(contentUids) {
	var contentWebService = new ContentWebService();
	contentWebService.setHTTPMethod("POST");

    var onContentWebServiceFault = function(statusCode, statusMessage) {
    	alert(statusCode + ': ' + statusMessage);
    };
	contentWebService.setErrorHandler(onContentWebServiceFault);

    var onContentWebServiceResult = function(response) {
    	for (var i = 0; i < response.length; i++) {
    		if (response[i].contentRatingAverage > 0) {
	            setElementDisplay('contentRatingVoteButton_' + response[i].contentUid, 'none');
	            setElementDisplay('contentRatingVoteText_' + response[i].contentUid, 'inline');
	        }
    	}
	};
	contentWebService.setCallbackHandler(onContentWebServiceResult);
	
	contentWebService.getContentRatingAverages(contentUids, true);
}

function getContentRatingAverage(contentUid) {
    var contentWebService = new ContentWebService();
    contentWebService.setHTTPMethod("POST");

    var onContentWebServiceFault = function(statusCode, statusMessage) {
        alert(statusCode + ': ' + statusMessage);
    };
    contentWebService.setErrorHandler(onContentWebServiceFault);

    var onContentWebServiceResult = function(response) {
        lastSavedRatingContentUid = response.contentUid;
        lastSavedRating = response.contentRatingAverage;
        if (response.contentRatingAverage > 0) {
            onContentRatingStarMouseOver(response.contentRatingAverage, response.contentUid);
        }
    };
    contentWebService.setCallbackHandler(onContentWebServiceResult);
    
    contentWebService.getContentRatingAverage(contentUid, true);
}

function onContentRatingStarMouseOver(contentRating, contentUid){
    var i = 1;
    for (i=1; i<=5; i++){
        if (i <= contentRating){
            document.getElementById('contentRatingStar_' + contentUid + '_' + i).style.backgroundPosition = "center left";
        } else {
            document.getElementById('contentRatingStar_' + contentUid + '_' + i).style.backgroundPosition = "bottom left";
        }
    }
}
function onContentRatingStarMouseOut(contentRating, contentUid){
    var i = 1;
    if (lastSavedRatingContentUid == contentUid){
        for (i=1; i<=5; i++){
            if (i <= lastSavedRating){
                document.getElementById('contentRatingStar_' + contentUid + '_' + i).style.backgroundPosition = "center left";
            } else {
                document.getElementById('contentRatingStar_' + contentUid + '_' + i).style.backgroundPosition = "bottom left";
            }
        }
    } else {
        for (i=1; i<=5; i++){
            if (i <= contentRating){
                document.getElementById('contentRatingStar_' + contentUid + '_' + i).style.backgroundPositionY = "top left";
            } else {
                document.getElementById('contentRatingStar_' + contentUid + '_' + i).style.backgroundPosition = "bottom left";
            }
        }
    }
}

function saveContentStarRating(contentRating, contentUid){
    var contentWebService = new ContentWebService();
    contentWebService.setHTTPMethod("POST");
    
    var onContentWebServiceFault = function(statusCode,statusMessage) {
        alert(statusCode + ': ' + statusMessage);
    };
    contentWebService.setErrorHandler(onContentWebServiceFault);
    
    var onContentWebServiceResult = function(response) {
        lastSavedRatingContentUid = response.contentUid;
        lastSavedRating = response.contentRating;
        
        if (response.contentRatingAverage.toString().indexOf('.') == -1) {
        	response.contentRatingAverage = response.contentRatingAverage + '.0';
       	}
        
        document.getElementById('contentRatingAverage_' + response.contentUid).innerHTML = response.contentRatingAverage;
        document.getElementById('contentRatingCount_' + response.contentUid).innerHTML = response.contentRatingCount;
        onContentRatingStarMouseOver(response.contentRating, response.contentUid);
    };
    contentWebService.setCallbackHandler(onContentWebServiceResult);
    
    contentWebService.saveContentRating(contentRating, contentUid);
}

function saveContentVoteRating(contentRating, contentUid){
	var contentWebService = new ContentWebService();
	contentWebService.setHTTPMethod("POST");
	
	var onContentWebServiceFault = function(statusCode,statusMessage) {
		alert(statusCode + ': ' + statusMessage);
	};
	contentWebService.setErrorHandler(onContentWebServiceFault);
	
	var onContentWebServiceResult = function(response) {
		document.getElementById('contentRatingVoteCount_' + response.contentUid).innerHTML = response.contentRatingCount;
        if (response.contentRatingCount > 0) {
            setElementDisplay('contentRatingVoteButton_' + response.contentUid, 'none');
            setElementDisplay('contentRatingVoteText_' + response.contentUid, 'inline');
        }
	};
	contentWebService.setCallbackHandler(onContentWebServiceResult);
	
	contentWebService.saveContentRating(contentRating, contentUid);
}

function saveContentRatingStatusId(contentRatingStatusId, contentUid) {
	var contentWebService = new ContentWebService();
	contentWebService.setHTTPMethod("POST");
	
	var onContentWebServiceFault = function(statusCode,statusMessage) {
		alert(statusCode + ': ' + statusMessage);
	};
	contentWebService.setErrorHandler(onContentWebServiceFault);
	
	var onContentWebServiceResult = function(response) {
		switch(response.contentRatingStatusId) {
			case 0: 
				setElementDisplay('contentRatingStatusRefusedLabel_' + response.contentUid, 'inline');
            	setElementDisplay('contentRatingVoteButton_' + response.contentUid, 'none');
            	setElementDisplay('contentRatingVoteText_' + response.contentUid, 'none');
            	setElementDisplay('contentRatingStatusApprovedLabel_' + response.contentUid, 'none');
				break;
			case 1: 
				setElementDisplay('contentRatingStatusRefusedLabel_' + response.contentUid, 'none');
            	setElementDisplay('contentRatingVoteButton_' + response.contentUid, 'block');
            	setElementDisplay('contentRatingStatusApprovedLabel_' + response.contentUid, 'none');
				break;
			case 2: 
				setElementDisplay('contentRatingStatusRefusedLabel_' + response.contentUid, 'none');
            	setElementDisplay('contentRatingVoteButton_' + response.contentUid, 'none');
            	setElementDisplay('contentRatingVoteText_' + response.contentUid, 'none');
            	setElementDisplay('contentRatingStatusApprovedLabel_' + response.contentUid, 'inline');
				break;
		}
	};
	contentWebService.setCallbackHandler(onContentWebServiceResult);
	
	contentWebService.saveContentRatingStatusId(contentRatingStatusId, contentUid);
}