Cześć, mam taki problem z kodem zamieniającym indeksy w nazwach inputów.

Dane wej.: boxy z różnymi inputami, każdy box ma swój numer indeksu, na tej podstawie tworzone są nazwy inputów name="box-[boxIndex][fieldName]",
Na początku indeksy boxów są przypadkowe (pierwszy box ma index np. [2], drugi [0], trzeci [1], czwarty [3], itd.

Dane wyj.: każdy kolejny boks ma indeks większy o 1 od poprzednika tzn. pierwszy powinien mieć [0], drugi [1], trzeci [2] itd. czyli nadać nową nazwę dla pól i przy tym nie nadpisać indeksu np. zamieniamy [2] na [0] ale żeby to co jest w [0] nie zostało utracone.

https://jsfiddle.net/pbLkabhe/4/

Teraz można zauważyć, że pierwszy input typu radio również zmienił indeks na [1] a powinien mieć [0]
Co mogłem zrobić źle w powyższym kodzie, że łapie mi jeden input za dużo do zmiany?