Nevi,
ask++; у тебя успевает сосчитать до 98
по m[0]>98 нужно и останавливать таймер и запускать новый и увеличивать ask проверяя не превысил ли он snd.length и восстанавливать в добавок параметры m (opacity)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script language="JavaScript" type="text/javascript">
var m = Array(0, 100),
t = [],
ask = 0;
snd = [];
snd[0] = "http://lstm.ru/_ph/12/1/478826110.jpg";
snd[1] = "http://lstm.ru/_ph/12/1/211468258.jpg";
snd[2] = "http://lstm.ru/_ph/12/1/980939750.jpg";
window.onload = next;
function next() {
var a = ask + 1;
if (a == snd.length) a = 0;
document.getElementById("kartinka").src = snd[ask];
document.getElementById("kartinka2").src = snd[a];
m[0] += 1;
m[1] -= 1;
document.getElementById("kartinka").style.opacity = m[1] / 100;
document.getElementById("kartinka").style.filter = " alpha(opacity=" + m[1] + ")";
document.getElementById("kartinka2").style.opacity = m[0] / 100;
document.getElementById("kartinka2").style.filter = "alpha(opacity=" + m[0] + ")";
t[0] = setTimeout("next()", 20);
if (m[0] > 98) {
clearTimeout(t[0]);
setTimeout("next()", 2000);
ask++;
if (ask == snd.length) ask = 0;
m = [0, 100]
}
};
</script>
</head>
<body>
<div id="poster">
<img id="kartinka" src="http://lstm.ru/_ph/12/1/478826110.jpg" style="opacity: 1; filter: alpha(opacity=100);margin: 0px; padding: 0px; position:absolute; top: 0px; left: 0px;">
<img id="kartinka2" src="http://lstm.ru/_ph/12/1/211468258.jpg" style="opacity: 0; filter: alpha(opacity=0);margin: 0px; padding: 0px; position:absolute; top: 0px; left: 0px;">
</div>
</body>
</html>