function drawLogo(logoWidth, lineWidth, canvasId) { var canvas = document.getElementById(canvasId); var context = canvas.getContext('2d'); var ratio = logoWidth / 225; var r50 = 50*ratio; var r75 = 75*ratio; var r100 = 100*ratio; var r125 = 125*ratio; var r150 = 150*ratio; var r175 = 175*ratio; var r225 = 225*ratio; var gradient = context.createRadialGradient( r100 + lineWidth, r75 + lineWidth, 0, r100 + lineWidth, r75 + lineWidth, r50); gradient.addColorStop(0, '#BED050'); gradient.addColorStop(1, "#7A8532"); context.fillStyle = gradient; context.strokeStyle = "#7A8532"; context.lineWidth = lineWidth; context.beginPath(); context.moveTo(lineWidth, r75 + lineWidth); context.lineTo(r50 + lineWidth, r75 + lineWidth); context.moveTo(r150 + lineWidth, r75 + lineWidth); context.arc(r100 + lineWidth, r75 + lineWidth, r50, 0, 2 * Math.PI, false); context.fill(); context.moveTo(r175 + lineWidth, r75 + lineWidth); context.arc(r100 + lineWidth, r75 + lineWidth, r75, 0, -0.75 * Math.PI, true); context.moveTo(r175 + lineWidth, r75 + lineWidth); context.arc(r100 + lineWidth, r75 + lineWidth, r75, 0, 0.75 * Math.PI, false); context.moveTo(r175 + lineWidth, r75 + lineWidth); context.lineTo(r225 + lineWidth, r75 + lineWidth); context.stroke(); context.closePath(); } function showText(x, y, canvas, params, current, from, to, iterateFunction) { var context = canvas.getContext('2d'); var alpha = 0.0; var step = 0.1; var stepMili = 100; var intervalId; var iterationFunc = function () { canvas.width = canvas.width; context.fillStyle = "rgba(" + params.red + ", " + params.green + ", " + params.blue + ", " + alpha + ")"; context.font = params.font; context.fillText(params.texts[current], x, y); alpha = alpha + step; if (alpha > 1.0) { alpha = 0.9; step = -0.1; clearInterval(intervalId); stepMili = params.fullAlphaDelay(); intervalId = setInterval(iterationFunc, stepMili); } else if (alpha < 0.1) { canvas.width = canvas.width; clearInterval(intervalId); iterateFunction(x, y, canvas, params, current, from, to); } else if (stepMili != 100) { stepMili = 100; clearInterval(intervalId); intervalId = setInterval(iterationFunc, stepMili); } }; intervalId = setInterval(iterationFunc, stepMili); } function iterateText(x, y, canvas, params, current, from, to) { var next = current + 1; if (next >= to) { next = from; } showText(x, y, canvas, params, next, from, to, iterateText); } function initList(container, params, count) { var o = params.texts; var subCount = Math.floor(o.length / count); var from; var to; var canvas; for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x); for (var item=0; item o.length) { to = o.length; } iterateText(params.tx, params.ty, canvas, params, from, from, to); } }