﻿//Obiekt tworzony dla każdego bannera
var BannerRotator = function(bannerContainerName, bannerSet, visibleTime, divWidth, divHeight) {
    
    //Zmienne prywatne
    var toggleFlag = true;
    var imgQueue;
    var setTimeoutId;
    var visibleTime = visibleTime;
    var divWidth = divWidth; //Wysokość div-a zawierającego baner
    var divHeight = divHeight; //Szerokość div-a zawierającego baner
    var localTime = new Date();

    //Funkcja prywatna. Określa numer obrazka, który ma być wyświetlony
    var changeQueue = function(i) {
        if (imgQueue == undefined && bannerSet.length == 2) {
            imgQueue = 0;
        } else if (imgQueue == undefined && bannerSet.length > 2) {
            imgQueue = 2;
        } else if (i == bannerSet.length - 1) {
            imgQueue = 0;
        } else {
            imgQueue++;
        }
    }

    //Funkcja prywatna. Wywołuje samą siebie. Zmienia wyświetlane obrazki na podstawie zmiennej toggleFlag
    var toggleBanner = function() {
        changeQueue(imgQueue);

        if (toggleFlag == true) {
            $("#" + bannerContainerName + "firstImg").fadeOut(3000, function() {
                $("#" + bannerContainerName + "firstImg").html(setBanner(imgQueue));
                setTimeoutId = setTimeout(function() { toggleBanner(); clearTimeout(setTimeoutId); }, visibleTime);
                toggleFlag = false;
            });
            $("#" + bannerContainerName + "secondImg").fadeIn(3000);
        } else {
            $("#" + bannerContainerName + "firstImg").fadeIn(3000);
            $("#" + bannerContainerName + "secondImg").fadeOut(3000, function() {
                $("#" + bannerContainerName + "secondImg").html(setBanner(imgQueue));
                setTimeoutId = setTimeout(function() { toggleBanner(); clearTimeout(setTimeoutId); }, visibleTime);
                toggleFlag = true;
            });
        }
    }
    
    //Funkcja prywatna. Zwraca odpowiedni kod HTML dla linku, popupu, flash-a lub zwykłego zdjęcia
    var setBanner = function(i) {
        var bannerHTML = "";
        //alert(bannerSet[i].url + ' ' + bannerSet[i].popup + ' ' + bannerSet[i].type);
        if (bannerSet[i].url && bannerSet[i].popup == "false" && bannerSet[i].type == "img") {
            bannerHTML = "<a href=\"" + bannerSet[i].url + "\" title=\"" + bannerSet[i].title + "\" target=\"_blank\"><img src=\"" + bannerSet[i].src + "\" alt=\"" + bannerSet[i].title + "\" width=\"" + bannerSet[i].imgWidth + "\" height=\"" + bannerSet[i].imgHeight + "\"></a>";
        } else if (bannerSet[i].url && bannerSet[i].popup == "true" && bannerSet[i].type == "img") {
            var oclick = "displayWindow('" + bannerSet[i].url + "'," + bannerSet[i].popupWidth + "," + bannerSet[i].popupHeight + ")";
            bannerHTML = "<a href=\"#\" title=\"" + bannerSet[i].title + "\" onclick=\"" + oclick + "\"><img src=\"" + bannerSet[i].src + "\" alt=\"" + bannerSet[i].title + "\" width=\"" + bannerSet[i].imgWidth + "\" height=\"" + bannerSet[i].imgHeight + "\" /></a>";
        } else if (bannerSet[i].popup == "false" && bannerSet[i].type == "img") {
        bannerHTML = "<img src=\"" + bannerSet[i].src + "\" alt=\"" + bannerSet[i].title + "\" width=\"" + bannerSet[i].imgWidth + "\" height=\"" + bannerSet[i].imgHeight + "\" />";
        } else if (bannerSet[i].popup == "false" && bannerSet[i].type == "flash") {
        bannerHTML = "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0\" width=\"" + bannerSet[i].imgWidth + "\" height=\"" + bannerSet[i].imgHeight + "\" align=\"middle\"><param name=\"allowScriptAccess\" value=\"sameDomain\" /><param name=\"movie\" value=\"" + bannerSet[i].src + "\" /><param name=\"wmode\" value=\"transparent\" /><param name=\"quality\" value=\"high\" /><embed src=\"" + bannerSet[i].src + "\" quality=\"high\" wmode=\"transparent\" width=\"" + bannerSet[i].imgWidth + "\" height=\"" + bannerSet[i].imgHeight + "\" align=\"middle\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" /></object>";
        }

        return bannerHTML;
    }

    //Funcja publiczna. Funkcja wstawiająca div-y do kontenera i rozpoczynająca zmianę zdjęć
    var startRotate = function() {
        //Przypisywanie klasy i wymiarów dla kontenera
        $("#" + bannerContainerName).addClass("rotatorContainer").height(divHeight).width(divWidth);

        //Jeśli wyświetlamy tylko jeden obrazek
        if (bannerSet.length == 1) {
            $("#" + bannerContainerName).append(setBanner(0));
        } else {
            //Wstawianie dwóch div-ów do kontenera
            $("#" + bannerContainerName).append("<div id=\"" + bannerContainerName + "firstImg\" class=\"firstImg\"></div><div id=\"" + bannerContainerName + "secondImg\" class=\"secondImg\"></div>");

            //Dołączanie zdjęć do div-ów
            $("#" + bannerContainerName + "firstImg").append(setBanner(0));
            $("#" + bannerContainerName + "secondImg").append(setBanner(1));

            toggleBanner();
        }
    }
    startRotate();
    
}
