jQuery(function ($) {
    var $photoDiv = $("#banner"),
        numberOfPhotos = $photoDiv.find("img").length,
        selectedNumber = Math.ceil(Math.random() * numberOfPhotos);

    function setSelectedNumber(index) {
        if (!!index) {
            selectedNumber = index;
        }
        selectedNumber += 1;
        if (selectedNumber > numberOfPhotos) {
            selectedNumber = 1;
        }
    }

    function switchPhoto(e) {
        var $this = $(this),
            photoId = $this.attr("href");

        e.preventDefault();
        if (!$this.parent().hasClass("selected")) {
            $photoDiv
                .find("img.selected").css("z-index", "2").fadeOut(1000, function () {
                        $(this).removeClass("selected").removeAttr("style");
                    }).end()
                .find(".number.selected").removeClass("selected").end()
                .find("img#" + photoId).addClass("selected").end();
            $this.parent().addClass("selected");
        }

        $photoDiv.find(".number a").each(function (i, el) {
            if ($(this).parent().is(".selected")) {
	            setSelectedNumber(i + 1);
            }
        });
    }

    function trigger() {
        $photoDiv.find(".number:nth-child(" + selectedNumber + ") a").trigger("click").parent().addClass("selected");
        setTimeout(trigger, 6000);
    }

    $photoDiv.delegate(".number a", "click", switchPhoto);
    trigger();
});
