Сообщение от IVAAAAN
			 
		
	 | 
	
		Никто ничего не посоветует?  
	 | 
	
у вас все обработчики событий кривые
когда они запускаются, они получают событие
а вы объявили их с переменной "tool" и думаете, что они получат тот же "tool" что и функция "startDraw"
сохраните "tool" в замыкании функции "startDraw" и используйте его оттуда
function startDraw(tool) {
  var my_tool = tool; // вот здесь
  ...
  cnvs.addEventListener('mousemove', function(e) {
    ...
    switch(my_tool) {
      ...
    }
    ...
  });
}
но даже переменная "my_tool" необязательна
function startDraw(tool) {
  ...
  cnvs.addEventListener('mousemove', function(e) {
    ...
    switch(tool) {
      ...
    }
    ...
  });
}