var max_points = 0; var points = 0; function append_point_values() { $('li[data-points]').each(function() { points = $(this).attr('data-points'); $(this).append(' [' + points + ' points of FAIL]'); }); } function calc_max_points() { $('ul:not(.choose-one) > li[data-points]').each(function() { points = $(this).attr('data-points'); max_points += +points; }); $('li:has(ul.choose-one)').each(function() { var this_max = NaN; $(this).children('ul.choose-one').children('li').each(function() { points = +$(this).attr('data-points'); if (isNaN(this_max) || points > this_max) { this_max = points; } }); max_points += this_max; }); } function update_points() { var points = 0; $('.active').each(function() { points += +$(this).attr('data-points'); }); if (max_points == 0) { percent = 0; } else { percent = points / max_points * 100; } $('#failmeter').attr('aria-valuenow', percent).css('width', percent + '%'); $('#points').html(points + '/' + max_points); if (percent == 0) { failtext = 'Perfect! All signs point to succes!'; type = 'success'; } else if (percent < 1.6) { failtext = 'You are probably doing okay, but you could be better.'; type = 'success'; } else if (percent < 3.8) { failtext = 'Babies cry when your code is downloaded.'; type = 'info'; } else if (percent < 5.7) { failtext = 'Kittens die when your code is downloaded.'; type = 'warning'; } else if (percent < 8.2) { failtext = 'HONK HONK. THE FAILBOAT HAS ARRIVED!'; type = 'danger'; } else { failtext = 'So much fail, your code should have its own reality show.'; type = 'danger'; } $('#failmeter').removeClass('progress-bar-success progress-bar-info progress-bar-warning progress-bar-danger'); $('#failmeter').addClass('progress-bar-' + type); $('#failtext').html(failtext); }