"use strict"; /* global define, app, ajaxify, socket, templates, bootbox */ define('admin/extend/rewards', function() { var rewards = {}; var available, active; rewards.init = function() { $(window).on('action:ajaxify.end', function() { available = JSON.parse(ajaxify.variables.get('rewards')); active = JSON.parse(ajaxify.variables.get('active')); $('[data-selected]').each(function() { select($(this)); }).on('change', function() { update($(this)); }); }); }; function select(el) { el.val(el.attr('data-selected')); switch (el.attr('name')) { case 'reward': selectReward(el); break; } } function update(el) { el.attr('data-selected', el.val()); switch (el.attr('name')) { case 'reward': selectReward(el); break; } } function selectReward(el) { var parent = el.parents('[data-rewardID]'), div = parent.find('.inputs'), inputs, html = ''; for (var reward in available) { if (available.hasOwnProperty(reward)) { if (parseInt(available[reward].rewardID, 10) === parseInt(el.attr('data-selected'), 10)) { inputs = available[reward].inputs; parent.attr('data-rewardID', available[reward].rewardID); break; } } } if (!inputs) { app.alertError('Illegal reward - no inputs found! ' + el.attr('data-selected')); } inputs.forEach(function(input) { html += '
'; }); div.html(html); $('[data-rewardID]').each(function(i) { var div = $(this).find('.inputs'), rewards = active[i].rewards; for (var reward in rewards) { if (rewards.hasOwnProperty(reward)) { div.find('[name="' + reward + '"]').val(rewards[reward]); } } }); } return rewards; });