Ok, zamieszczam oryginalne źródło (poprzycinane w niektórych miejscach)
var odleglosci
= new Array(); odleglosci = tabd;
var tempik = { 'make' : 3, 'odleglosci' : odleglosci, 'opis' : 'Aktualna tablica odległości'};
movie.push( tempik );
var tempik = { 'make' : 4, 'odleglosci' : odleglosci, 'opis' : ''};
movie.push( tempik );
...
while(kolejka.length > 0) {
...
var tempik = { 'make' : 7, 'first' : first, 'sasiady' : sasiady, 'opis' : 'Wybieramy z kolejki pierwszy element i badamy jego siąsiadów'};
movie.push( tempik );
var tempik = { 'make' : 8, 'first' : first, 'sasiady' : sasiady, 'opis' : ''};
movie.push( tempik );
//przechodzimy po sasiadach wlasnie zdjetego elementu pierwszego z kolejki
for(var j = 0; j < matrix[first].length; j++) {
//analizujemy tylko te elementy, które sa sasiadami elementu z kolejki czyli waga > 0
if(matrix[first][j] > 0) {
//jezeli aktualnie najkrótsza droga w tablicy D jest wieksza od tej wlasnie badanej
if(tabd[j] > (parseInt(tabd[first]) + parseInt(matrix[first][j])) || tabd[j] == 'oo') {
tabd[j] = parseInt(tabd[first]) + parseInt(matrix[first][j]);
poprzednik[j] = first;
var tempik = { 'make' : 9, 'vertex1' : first, 'vertex2' : j, 'opis' : 'Znalezniono, którszą drogę do wierzchołka ' + j + ' poprzez wierzchołek ' + first};
movie.push( tempik );
var tempik = { 'make' : 10, 'vertex1' : first, 'vertex2' : j, 'opis' : ''};
movie.push( tempik );
var odleglosci
= new Array(); odleglosci = tabd;
var tempik = { 'make' : 3, 'odleglosci' : odleglosci, 'opis' : 'Tablica odległości zostaje zaktualizowana'};
movie.push( tempik );
var tempik = { 'make' : 4, 'odleglosci' : odleglosci, 'opis' : ''};
movie.push( tempik );
}
else {
var tempik = { 'make' : 11, 'vertex1' : first, 'vertex2' : j, 'opis' : 'Droga do wierzchołka ' + j + ' poprzez wierzchołek ' + first + ' jest dłuższa lub taka sama jak ta już znana'};
movie.push( tempik );
var tempik = { 'make' : 12, 'vertex1' : first, 'vertex2' : j, 'opis' : ''};
movie.push( tempik );
}
}
}
i generalnie rozchodzi się o rzeczy w linijkach 1-6 i 36-41.
tablica tabd jest zdeklarowana na początku skryptu, globalnie dostępna dla każdej funkcji.
tempik jest zmienną tymczasową w której przechowuje array gdzie jedną z jego wartości jest tabd po kolejnych wykonaniach pętli.
po zakończeniu skryptu w zmiennej movie powinienem mieć "historię" m.in. zmiennej tabd - bo na niej mi najbardziej zależy.
Mam nadzieję, że jasno opisałem.