﻿var favoriteClassName = 'favoritar rpl';

function loadFavoriteIconList() {
    loadFavoriteIconListInContext('');
}

function loadFavoriteIconListInContext(pSelectorContext) {
    var favoriteRequestArray = new Array();

    if (pSelectorContext && pSelectorContext != '') {
        pSelectorContext = pSelectorContext + ' ';
    }

    var favoriteIconList = $(pSelectorContext + '.' + 'favoritar');

    favoriteIconList.each(function (e) {
        var contentId = $(this).attr('contentId');
        var contentTypeId = $(this).attr('contentTypeId');
        var systemId = $(this).attr('systemId');

        favoriteRequestArray.push({ "ContentId": contentId, "ContentTypeId": contentTypeId, "SystemId": systemId });
    });

    if (favoriteIconList.length > 0) {
        callServerMethodByPost('/Service/Favorite/FavoriteService.svc/GetFavoriteIconList/' + LoggedUserId, favoriteRequestArray, loadFavoriteIconListResponse, favoriteIconList);
    }
}

function loadFavoriteIconListResponse(pResponse, pFavoriteIconList) {
    for (var x = 0; x < pResponse.length; x++) {
        var favoriteIcon = pFavoriteIconList.filter('[contentId="' + pResponse[x].ContentId + '"][contentTypeId="' + pResponse[x].ContentTypeId + '"][systemId="' + pResponse[x].SystemId + '"]');

        favoriteIcon.attr('class', favoriteClassName);

        if (pResponse[x].UserAlreadyFavorited) {
            disableLink(favoriteIcon, 'Você já favoritou este item!');
        }
    }
}

function favoriteClickHandler() {
    if (!$(this).hasClass('disabled')) {
        callServerMethod('/Service/Favorite/FavoriteService.svc/AddFavorite/' + $(this).attr('contentId') + '/' + $(this).attr('contentTypeId') + '/' + $(this).attr('systemId') + '/' + LoggedUserId, favoriteClickResponse, $(this));
        clearRequestCache();
    }

    return false;
}

function favoriteClickResponse(pResponse, pCallerReference) {
    disableLink(pCallerReference, 'Você já favoritou este item!');
    //showMessage('O item foi adicionado à sua lista de favoritos', true);
    ModalBox.Show({ Title: 'O item foi adicionado à sua lista de favoritos', Description: '', Width: 300, Height: 'auto' });
}

$(document).ready(function () {
    $('.' + 'favoritar').live('click', favoriteClickHandler);
});
