% // Mobile sparkline helper — parametrised, used only in this partial function renderSparkline(values, opts) { opts = opts || {}; var w = opts.w || 70; var h = opts.h || 26; if (!values || values.length < 2) return ''; var min = Math.min.apply(null, values); var max = Math.max.apply(null, values); var range = max - min || 1; var xStep = w / (values.length - 1); var pts = values.map(function(v, i) { return { x: (i * xStep).toFixed(1), y: (((max - v) / range) * (h - 4) + 2).toFixed(1) }; }); var linePath = pts.map(function(p, i) { return (i === 0 ? 'M' : 'L') + ' ' + p.x + ' ' + p.y; }).join(' '); var last = pts[pts.length - 1]; var areaPath = linePath + ' L ' + last.x + ' ' + h + ' L 0 ' + h + ' Z'; return ''; } %>
No players tracked yet.
<% } else { %>