﻿
/* Properties */
var r_callIndex = 0; // holds the current number of calls
var r_loadCount = 10; // how many items to load on demand
var r_firstLoad = true; // is first load
var r_itemsLoaded = 0; // holds the total number of rewards loaded
var r_opts; // holds the cycle properties for the trade webservice callback
var r_fwd; // holds the direction of the rotator for the trade webservice callback


$(document).ready(function() {

    TellBob.Services.WebCall.GetPopularRewards(8, 0, AddRewardSlides);
    r_callIndex++;
});

function onAfterRewardSlide(curr, next, opts, fwd) {
    if (fwd == true && opts.currSlide > 1 && opts.currSlide + 6 > opts.slideCount) {
        r_opts = opts;
        r_fwd = fwd;
        TellBob.Services.WebCall.GetPopularRewards(r_loadCount, r_itemsLoaded, AddRewardSlides);
        r_callIndex++;
    }
    else if (fwd == false && opts.currSlide - 5 < 0) {
        r_opts = opts;
        r_fwd = fwd;
        TellBob.Services.WebCall.GetPopularRewards(r_loadCount, r_itemsLoaded, AddRewardSlides);
        r_callIndex++;
    }
    r_firstLoad = false;
}

function AddRewardSlides(result) {
    if (result.length > 1) {
        var i = 0;
        if (r_firstLoad) {
            $('#__Rewards').html("");
        }
        while (result.length >= i + 2) {
            var data = { first: result[i], second: result[i + 1] };
            var template = $.createTemplate($("#__jTemplate_Rewards").html().replace(/%7B/g, '{').replace(/%7D/g, "}"));
            var html = $.processTemplateToText(template, data);

            if (r_firstLoad)
                $('#__Rewards').append(html);
            else
                r_opts.addSlide(html, !r_fwd);

            r_itemsLoaded += 2;
            i += 2;
        }
        if (r_firstLoad) {
            $('#__Rewards').cycle({
                fx: 'scrollHorz',
                startingSlide: 0,
                speed: 500,
                timeout: 0,
                next: '#__nextReward',
                prev: '#__prevReward',
                before: onAfterRewardSlide
            });
        }
    }
}