| Цитата: | 
	| Он заканчивается, когда k==100 (когда одно из изображений имеет максимальную яркость) | 
	
он не заканчивается, я же говорю если ты уберешь "if(k==100)return;", то ничего в твоем коде не измениться. Т.е. у тебя каждые 5 сек запускаются процессы затухания, и ни один из них никогда не заканчивается
добавь в начало функции next:
var div = document.getElementById('div_'+date);
	if(! div) {
		div = document.createElement('div');
		div.id = 'div_'+date;
		document.body.appendChild( div );
	}
	div.innerHTML = Number(div.innerHTML)+1;
и запускай next следующим образом:
setTimeout('next("'+(new Date())+'")',500);
	
	| Цитата: | 
	| Ну 2 и 3 имеют одну и ту же проблему и если понять как исправить 3(он короче), то 2 - раз плюнуть)) | 
	
нет, это разные проблемы
p.s. под 1, 2, 3 я подразумеваю номера замечаний, а ты, кажется, свои варианты кода. Замечания 1-3 касаются последнего твоего варианта кода