А все потому, что в setInterval нужно передавать не строку, а функцию. Если передать строку, то она будет eval'иться в глобальном контексте. А функция showTimer не глобальная, поэтому и ошибка.
Нужно так: setInterval(showTime,1000);
А еще тут ошибка:
wnd.document.write("<h1>");
wnd.document.write(time.toLocaleTimeString());
wnd.document.write("</h1>");
Нужно писать так:
var header = "<h1>" + time.toLocaleTimeString() + '</h1';
wnd.document.write(header);
На будущее - обрамляй код в
[js] .. [/js]