W funkcji change na IFie robisz zmniejszanie wartości o 640px co skok. Ja bym radził to zmienić na funkcje która to obliczy. Na początku funklcji dodaj liczenie:
var margin = (act * -640) + "px";
potem wystarczy jedno wywołanie
$(".slides").animate({
marginLeft: margin
},800);
Natomiast odnośnie kodów
$("#1").on("click", function () {
act = 1;
clearTimeout(timer2);
change();
});
Należy zwrócić uwagę iż różną się tylko wartością przypisywaną do act oraz wartośc przypisywana do act jest taka sama jak ID elementu. Dlatego też myśle ze dobrym rozwiązaniem jest przypisanie act wartości ID klikniętego elementu. Zrobisz to za pomocą.
act = $(this).attr("id");
Następnie wystarczy zmodyfikować selektor "#1" aby uwzględnić wszystkie elementy "#1, #2, #3".