//DigitalJuice SlideShow (transition) Plugins
//with Play/pause and slide number control tabs
//Created on June 13th 2011

(function (j$) {

    var djSlideShow = function (options, djss) {

        var totalSlides = j$('#' + options.id).children('li').size();
        var slidesIndex = -1;
        var slideTimer, slidesIndex, playPause, numberEnable, slideShowPlay, tempIndex;
        var liNumber = "";
        var slideShowPlay = true;

        if (totalSlides > 1) {

            playPause = j$("<div />")
			.attr("id", "slideShow_playBtn_" + options.id);

            var slideNumber = "";
            for (var liVar = 1; liVar <= totalSlides; liVar++) {
                liNumber += "<li>" + liVar + "</li>";
            }
            slideNumber = "<ul id='liIndex_" + options.id + "'>" + liNumber + "</ul>";

            var controlDiv = j$("<div />")
			        .html(playPause).append(slideNumber)
			        .attr("id", "slideShow_controlWrapper_" + options.id);

            j$('#' + options.id).parent("div").prepend(controlDiv);

            applyCss();

            j$(playPause).click(function () {
                togglePlay(slidesIndex);
            });

            j$("#slideShow_controlWrapper_" + options.id + " li").each(function () {
                var currentLi = j$(this);
                currentLi.click(function () {
                    numberEnable = true;
                    slideShowPlay = true;
                    resetPlay();
                    togglePlay();
                    tempIndex = parseInt(currentLi.html() - 2);
                    rotateSlides(parseInt(currentLi.html()) - 2, totalSlides);
                });
            });

//            j$('#' + options.id + ' li a').each(function () {
//                var currentUrl = j$(this);
//                currentUrl.click(function (e) {
//                    e.preventDefault();
//                    console.log(currentUrl.attr("href"));
//                    window.open(currentUrl.attr("href"), "_self");
//                });
//            });

            rotateSlides(slidesIndex, totalSlides);
        } else {
            console.log("sufficient banners are not available to rotate");
        }


        function rotateSlides(slidesIndex, totalSlides) {

            if (slideTimer) { clearTimeout(slideTimer); }

            slidesIndex = parseInt(slidesIndex);
            totalSlides = parseInt(totalSlides);

            slidesIndex = slidesIndex + 1;
            if (slidesIndex > totalSlides - 1) { slidesIndex = 0; }

            prevIndex = slidesIndex - 1;
            if (prevIndex < 0) { prevIndex = totalSlides - 1; }

            var nextSlide = j$('#' + options.id).children('li')[slidesIndex];
            var prevSlide = j$('#' + options.id).children('li')[prevIndex];

            var selectedNum = j$("#liIndex_" + options.id).children('li')[slidesIndex];
            var prevNum = j$("#liIndex_" + options.id).children('li')[prevIndex];

            j$(nextSlide).fadeTo(500, 1);
            j$(prevSlide).fadeTo(600, 0);

            j$(nextSlide).delay(510).css({"display":"block"});
            j$(prevSlide).delay(610).css({"display":"none"});

            j$(selectedNum).css({ 'background-color': '#333333', 'color': '#FFFFFF' });
            j$(prevNum).css({ 'background-color': '#0B0B0B', 'color': '#828282' });

            tempIndex = slidesIndex;

            if (!numberEnable) {
                slideTimer = setTimeout(function () { rotateSlides(slidesIndex, totalSlides); }, djss.slideShow.defaults.delay);
            }
        };

        function applyCss() {

            j$("#slideShow_playBtn_" + options.id)
			.css({
			    'float': 'left',
			    'width': '22px', 'height': '22px', 'margin': '2px 20px 0 0',
			    'background': 'url(/_images/_interface_v03/play_pause.gif) top left no-repeat',
			    'cursor': 'pointer'
			});

            j$("#slideShow_controlWrapper_" + options.id)
			.css({
			    'clear': 'both', 'float': 'left',
			    'width': '500px', 'height': '30px',
			    'margin': '10px 0 5px 25px'
			});

            j$("#slideShow_controlWrapper_" + options.id + " li")
			.css({
			    'width': '14px', 'height': '14px',
			    'padding': '3px', 'margin': '2px',
			    'border': '1px solid #333333', 'cursor': 'pointer',
			    'float': 'left', 'text-align': 'center',
			});
        }

        function togglePlay() {
            if (slideShowPlay) {
                j$("#slideShow_playBtn_" + options.id).css({ 'background-position': 'bottom left' });
                if (slideTimer) { clearTimeout(slideTimer); }
                slideShowPlay = false;
            } else {
                j$("#slideShow_playBtn_" + options.id).css({ 'background-position': 'top left' });
                slideShowPlay = true;
                numberEnable = false;
                rotateSlides(tempIndex, totalSlides);
            }
        }

        function resetPlay() {
            j$("#slideShow_controlWrapper_" + options.id + " li").each(function () {
                j$(this).css({ 'background-color': '#0B0B0B', 'color': '#828282' });
            });

            j$('#' + options.id).children('li').each(function () {
                //j$(this).fadeTo(100, 0);
                j$(this).css({"display":"none"});
            });
        }

    };


    j$.fn.slideShow = function (options) {
        var opts = j$.extend({}, j$.fn.slideShow.defaults, options);
        return this.each(function () {
            var djss = j$(this);
            if (!djss.data('slideShow')) {
                djss.data('slideShow', new djSlideShow(options, djss));
            }
        });
    };


    //Default Settings
    j$.fn.slideShow.defaults =
    {
        width: 642,
        height: 528,
        delay: 6000,
        maxItems: 2
    };

})(jQuery);
