'use strict';
var CLOUD_WIDTH = 420;
var CLOUD_HEIGHT = 270;
var GAP = 90;
var TEXTX = 150;
var TEXTYFIRST = 30;
var TEXTTIMES = 270;
var TEXTNAMES = 80;
var RECTX = 190;
var RECTY = 250;
var RECT_WIDTH = -40;
var RECT_HEIGHT = 150;
var renderCloud = function (ctx, x, y, color) {
ctx.fillStyle = color;
ctx.fillRect(x, y, CLOUD_WIDTH, CLOUD_HEIGHT);
};
var getMaxElement = function (arr) {
if (arr !== []) {
var max = 0;
for (var i = 0; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
}
}
}
return max;
};
var getGistogram = function (ctx, names, times) {
var bestplayer = getMaxElement(times);
for (var n = 0; n < times.length; n++) {
if (names[n] === 'Вы') {
ctx.fillStyle = 'rgba(255, 0, 0, 1)';
} else {
ctx.fillStyle = 'rgba(0, 0, 255,' + Math.random() + ' )';
}
ctx.fillRect(RECTX + n * GAP, RECTY, RECT_WIDTH, -((RECT_HEIGHT) * times[n]) / bestplayer);
ctx.fillStyle = 'rgba(0, 0, 0, 1)';
ctx.font = '16px PT Mono';
ctx.fillText(Math.round(times[n]), TEXTX + n * GAP, TEXTTIMES);
ctx.fillText(names[n], TEXTX + n * GAP, TEXTNAMES);
}
};
var getText = function (ctx, word) {
var textgap = 0;
for (var n = 0; n < word.length; n++) {
ctx.fillText(word[n], TEXTX, TEXTYFIRST + textgap);
textgap += 30;
}
};
window.renderStatistics = function (ctx, names, times) {
renderCloud(ctx, 110, 20, 'rgba(0, 0, 0, 0.7)');
renderCloud(ctx, 100, 10, '#fff');
getGistogram(ctx, names, times);
var words = ['Ура вы победили!', 'Список результатов:'];
getText(ctx, words);
};
J3VzZSBzdHJpY3QnOwoKdmFyIENMT1VEX1dJRFRIID0gNDIwOwp2YXIgQ0xPVURfSEVJR0hUID0gMjcwOwp2YXIgR0FQID0gOTA7CnZhciBURVhUWCA9IDE1MDsKdmFyIFRFWFRZRklSU1QgPSAzMDsKdmFyIFRFWFRUSU1FUyA9IDI3MDsKdmFyIFRFWFROQU1FUyA9IDgwOwp2YXIgUkVDVFggPSAxOTA7CnZhciBSRUNUWSA9IDI1MDsKdmFyIFJFQ1RfV0lEVEggPSAtNDA7CnZhciBSRUNUX0hFSUdIVCA9IDE1MDsKCnZhciByZW5kZXJDbG91ZCA9IGZ1bmN0aW9uIChjdHgsIHgsIHksIGNvbG9yKSB7CiAgY3R4LmZpbGxTdHlsZSA9IGNvbG9yOwogIGN0eC5maWxsUmVjdCh4LCB5LCBDTE9VRF9XSURUSCwgQ0xPVURfSEVJR0hUKTsKfTsKCnZhciBnZXRNYXhFbGVtZW50ID0gZnVuY3Rpb24gKGFycikgewogIGlmIChhcnIgIT09IFtdKSB7CiAgICB2YXIgbWF4ID0gMDsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmIChtYXggPCBhcnJbaV0pIHsKICAgICAgICBtYXggPSBhcnJbaV07CiAgICAgIH0KICAgIH0KICB9CiAgcmV0dXJuIG1heDsKfTsKdmFyIGdldEdpc3RvZ3JhbSA9IGZ1bmN0aW9uIChjdHgsIG5hbWVzLCB0aW1lcykgewogIHZhciBiZXN0cGxheWVyID0gZ2V0TWF4RWxlbWVudCh0aW1lcyk7CiAgZm9yICh2YXIgbiA9IDA7IG4gPCB0aW1lcy5sZW5ndGg7IG4rKykgewogICAgaWYgKG5hbWVzW25dID09PSAn0JLRiycpIHsKICAgICAgY3R4LmZpbGxTdHlsZSA9ICdyZ2JhKDI1NSwgMCwgMCwgMSknOwogICAgfSBlbHNlIHsKICAgICAgY3R4LmZpbGxTdHlsZSA9ICdyZ2JhKDAsIDAsIDI1NSwnICsgTWF0aC5yYW5kb20oKSArICcgKSc7CiAgICB9CiAgICBjdHguZmlsbFJlY3QoUkVDVFggKyBuICogR0FQLCBSRUNUWSwgUkVDVF9XSURUSCwgLSgoUkVDVF9IRUlHSFQpICogdGltZXNbbl0pIC8gYmVzdHBsYXllcik7CgogICAgY3R4LmZpbGxTdHlsZSA9ICdyZ2JhKDAsIDAsIDAsIDEpJzsKICAgIGN0eC5mb250ID0gJzE2cHggUFQgTW9ubyc7CiAgICBjdHguZmlsbFRleHQoTWF0aC5yb3VuZCh0aW1lc1tuXSksIFRFWFRYICsgbiAqIEdBUCwgVEVYVFRJTUVTKTsKICAgIGN0eC5maWxsVGV4dChuYW1lc1tuXSwgVEVYVFggKyBuICogR0FQLCBURVhUTkFNRVMpOwogIH0KfTsKCnZhciBnZXRUZXh0ID0gZnVuY3Rpb24gKGN0eCwgd29yZCkgewogIHZhciB0ZXh0Z2FwID0gMDsKICBmb3IgKHZhciBuID0gMDsgbiA8IHdvcmQubGVuZ3RoOyBuKyspIHsKCiAgICBjdHguZmlsbFRleHQod29yZFtuXSwgVEVYVFgsIFRFWFRZRklSU1QgKyB0ZXh0Z2FwKTsKICAgIHRleHRnYXAgKz0gMzA7CiAgfQp9OwoKd2luZG93LnJlbmRlclN0YXRpc3RpY3MgPSBmdW5jdGlvbiAoY3R4LCBuYW1lcywgdGltZXMpIHsKCiAgcmVuZGVyQ2xvdWQoY3R4LCAxMTAsIDIwLCAncmdiYSgwLCAwLCAwLCAwLjcpJyk7CiAgcmVuZGVyQ2xvdWQoY3R4LCAxMDAsIDEwLCAnI2ZmZicpOwoKICBnZXRHaXN0b2dyYW0oY3R4LCBuYW1lcywgdGltZXMpOwogIHZhciB3b3JkcyA9IFsn0KPRgNCwINCy0Ysg0L/QvtCx0LXQtNC40LvQuCEnLCAn0KHQv9C40YHQvtC6INGA0LXQt9GD0LvRjNGC0LDRgtC+0LI6J107CiAgZ2V0VGV4dChjdHgsIHdvcmRzKTsKfTsK