var SEP = "\n";
var ANIMATION_LOOPS = 20;

function $(id) {
	return document.getElementById(id);
}

function shuffle(a) {
    for (var i = 0; i < a.length; i++) {
		// swap each element i with another randomly chosen element in 
		// the range [i, a.length)
        var j = i + parseInt(Math.random() * (a.length - i));
        if (i != j) {
			var temp = a[i];  // swap
			a[i] = a[j];
			a[j] = temp;
		}
    }
    return a;
}

function martyRunShuffleMulti() {
    if ($("animation").checked) {
        for (var i = 1; i <= ANIMATION_LOOPS; i++) {
            setTimeout(martyRunShuffle, i * 100);
        }
    } else {
        martyRunShuffle();
    }
}

function martyRunShuffle() {
    var trimBlankLines = $("trimBlankLines").checked;
    var text = $("expectedText").value;
    if (trimBlankLines) {
        while (text.length > 0 && text.charAt(text.length - 1) == "\n") {
            text = text.substring(0, text.length - 1);
        }
    }

    var lines = text.split(/\n/);
    lines = shuffle(lines);
    var text = "";

    for (var i = 0; i < lines.length; i++) {
        if (trimBlankLines && !lines[i]) {
            continue;
        }
        if (text.length > 0) {
            text += SEP;
        }
        text += lines[i];
    }


    $("expectedText").value = text;
}
