window.onload = function() {
var c = document.getElementById("output-canvas");
var ctx = c.getContext("2d");
var img = document.getElementById("res-back");
ctx.drawImage(img, 0, 0, 1200, 600, 0, 0, c.width, c.height);
var userTxt = document.getElementById('user-input'),
download = document.getElementById('download'),
textSizer = document.getElementById('text-sizer'),
charCounter = document.getElementById('char-counter');
var fontSize = 60;
var textX = 400;
var textY = 270;
var maxChars = 75;
var maxTextWidth = 660;
userTxt.onkeyup = function(){
var usrVal = this.value;
textSizer.innerHTML = usrVal;
var charCount = usrVal.length;
charCounter.innerHTML = charCount + ' / ' + maxChars + ' characters';
var textWidth = textSizer.offsetWidth;
ctx.clearRect(0, 0, c.width, c.height);
ctx.drawImage(img, 0, 0, 1200, 600, 0, 0, c.width, c.height);
var lines = [];
if (textWidth > maxTextWidth) {
var firstLine = '';
var secondLine = '';
var words = usrVal.split(' ');
var halfWords = Math.floor(words.length/2);
for (var i = 0; i < halfWords; i++) {
firstLine += words[i] + ' ';
}
lines.push(firstLine.trim());
for (var i = halfWords; i < words.length; i++) {
secondLine += words[i] + ' ';
}
lines.push(secondLine.trim());
fontSize = 50;
} else {
fontSize = 60;
lines.push(usrVal);
}
ctx.font = fontSize+"px 'Caveat Brush', cursive";
ctx.textAlign="center";
for (line in lines) {
var linePos = line * fontSize;
ctx.fillText(lines[line], 400, linePos+textY+fontSize);
}
};
download.onclick = function() {
var canvas = document.getElementById('output-canvas');
var lnk = document.createElement('a'), e;
lnk.download = 'resolution.png';
lnk.href = canvas.toDataURL("image/png;base64");
if (document.createEvent) {
e = document.createEvent("MouseEvents");
e.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false,
false, 0, null);
lnk.dispatchEvent(e);
} else if (lnk.fireEvent) {
lnk.fireEvent("onclick");
}
}
};