Ну вот, сделал то, что задумывал (начинка .hta файла):
<html>
<head>
<title>Timer</title>
<hta:application
applicationname=Timer
innerborder=no
scroll=no
contextmenu=no
/>
<script language="javascript">
resizeTo(380,126);
moveTo((screen.width/2-190),(screen.height/2-63));
</script>
<script type="text/javascript">
var h=m=s=0;
var timeId=null;
function f2 (v) { return (v<10?'0'+v:v); }
function inittime (hour,min,sec) {
h=Math.max(hour,0); m=Math.max(min,0); s=Math.max(sec,0);
timeID=setTimeout("showtime();",1000);
}
function changetime() {
s--;
if (s<0) {
s=59;
m--;
if (m<0) {
m=59;
if (h>0) h--;
else { h=m=s=0; }
}}}
function showtime () {
var t=h*3600+m*60+s;
if (t>0) {
document.getElementById('clock').innerHTML=f2(h)+':'+f2(m)+':'+f2(s);
changetime();
setTimeout("showtime();",1000);
}
else if (t<1) {
document.getElementById('clock').innerHTML='00:00:00';
clearTimeout(timeID);
alert('Время истекло!');
close();
}}
</script>
<style type="text/css">
body {
background:buttonface;
margin:3px;
}
table {
border-collapse:collapse;
text-align:center;
}
#a {
width:100%;
box-sizing:border-box;
font:55px sans-serif;
}
#b {
font:22px/.76 monospace;
color:buttonshadow;
}
button {
height:65px;
border;
font:48px monospace;
color:buttonshadow;
}
input {
background-color:buttonface;
border:transparent;
font:86px/.77 sans-serif;
height:65px;
width:96px;
}
#clock {
font:94px/.85 sans-serif;
}
</style>
</head>
<body>
<div id="clock">
<table>
<tbody id="a">
<tr>
<td><input type=text name="h" value="00" maxlength="2"></td>
<td>:</td>
<td><input type=text name="m" value="00" maxlength="2"></td>
<td>:</td>
<td><input type=text name="s" value="00" maxlength="2"></td>
<td><button title="Старт" onclick="inittime(
document.getElementById('h').value,
document.getElementById('m').value,
document.getElementById('s').value);">►</button></td>
</tr>
</tbody>
<tbody id="b">
<tr>
<td>час</td>
<td></td>
<td>мин</td>
<td></td>
<td>сек</td>
<td></tr>
</tbody>
</table>
</div>
</body>
</html>
Посмотрите, пожалуйста, на предмет оптимизации/уменьшения размера (чем меньше, тем лучше!) - приветствую любые замечания.
И вопросы:
1. можно ли сделать так, чтобы при запуске таймера окно программы сворачивалось в трей;
2. как сделать, чтобы окно alert по истечении времени всплывало поверх ВСЕХ окон?
Спасибо.