Jak zatrzymać działanie timera?

Jestem trochę nowy w js i próbowałem dowiedzieć się, jak zatrzymać tę funkcję, gdy klikam przycisk. Próbowałem użyć clearInterval, ale nie jestem pewien, czy robię to poprawnie. Czy ktoś może spojrzeć na ten kod i wskazać mi właściwy kierunek?

Kod:

<div><h1 id="target"></h1></div>
<button id="stop">Stop</button>​

Scenariusz:

var arr = [ "one", "two", "three"];

(function timer(counter) {
     var text = arr[counter];

    $('#target').fadeOut(500, function(){ 
        $("#target").empty().append(text).fadeIn(500);
    });

    delete arr[counter];
    arr.push(text);

    setTimeout(function() {
        timer(counter + 1);
    }, 3000);

    $("#stop").click(function () {
       clearInterval(timer);
    });

})(0);

setInterval(timer);

JS Fiddle:http://jsfiddle.net/58Jv5/13/

Z góry dziękuje za twoją pomoc.

questionAnswers(1)

yourAnswerToTheQuestion