Nic Ci nie powinno wyciekać do globalnego scope. Poczytaj o IIFE: http://benalman.com/news/2010/11/immediately-invoked-function-expression/ i o pisaniu modularnego JS: http://addyosmani.com/writing-modular-js/
Zamiast się bawić w mozolne tworzenie elementów przez DOM API, po prostu wstaw je do dokumentu HTML i zastosuj coś typu: http://www.paulirish.com/2009/avoiding-the-fouc-v3/
Względnie elem.innerHTML
Zamiast bawić się w przypinanie i odpinanie zdarzeń warto zastanowić się nad event delegation: http://tutorials.comandeer.pl/js-beauty.html#delegation
for(x=0;x<30;x++)
Tym samym x staje się tzw. implied global, co w ES5+ jest traktowane jako syntax error. KAŻDA zmienna powinna być deklarowana przy pomocy słowa kluczowego var. BTW takich błędów pomaga unikać strict mode → http://tutorials.comandeer.pl/js-beauty.html#strict
btn_start.setAttribute("type","button");
Polecam tego typu rzeczy zapisać jako własności DOM, a nie atrybuty.
btn_start.type = 'button';
Warto zwrócić przy tym uwagę, że elem.setAttribute('value') nie ustawia własności elem.value, lecz elem.defaultValue (tak oto W3C spieprzyło ponad 20 lat temu DOM API formularzy i tak już zostało…).