document.currentItemDisplay = 0;
document.animating = true;
document.timeoutID = null;

document.totalItems = 0;
document.totalItemsloaded = 0;

jQuery(document).ready(function() {

    jQuery.ajax({
    url: "/Style%20Library/Home/Elements/slideshow.xml",
        type: 'POST',
        dataType: 'xml',
        data: null,
        success: function(data) {

            init_slideshow(data);

        },
        error: function() {

        }
    });

});

function init_slideshow(data) {
    $(".slideShow .slideShowUL, .slideShow .btnCarousel, .slideShow .pagination").css("visibility", "hidden");

    SlideUL = $(".slideShow .slideShowUL");
    PaginationUL = $(".slideShow .pagination");

    Items = $(data).find("item");
    SlideUL.width(578 * Items.length).css("position", "relative");

    document.totalItems = Items.length;

    Items.each(function(i) {

        imgsrc = $(this).find("img").text();
        second = $(this).find("second").text();
        title = $(this).find("title").text();
        url = $(this).find("url").text();

        Li = $("<li>");
        Li.attr("second", second);

        Link = $("<a>");
        Link.attr("href", url)
				.attr("title", title)
				.attr("target", "_blank");

        $("<img>").attr("alt", title)
					  .attr("src", imgsrc)
					  .width(578)
					  .height(346)
					  .appendTo(Link)
					  .load(function() {
					      document.totalItemsloaded++;
					      if (document.totalItemsloaded == document.totalItems) {
					          $(".slideShow .slideShowUL, .slideShow .btnCarousel, .slideShow .pagination").css("visibility", "visible");
					          $(".slideShow").pngFix();
					      }
					  });

        Link.appendTo(Li);

        if (i == document.currentItemDisplay)
            Li.css("display", "block");
        else
            Li.css("display", "none");

        Li.css("position", "absolute").appendTo(SlideUL);

        // create pagination
        LiPagination = $("<li>");
        LinkPagination = $("<a>");
        LinkPagination.attr("href", "#");
        LinkPagination.click(function() {

            pageClick(i);
            return false;

        });

        if (i == 0)
            LinkPagination.addClass("active");

        LinkPagination.appendTo(LiPagination);

        LiPagination.appendTo(PaginationUL);

    });

    document.animating = false;
    second = determineTimeCurrentItem() * 1000;
    document.timeoutID = setTimeout(automateSlideShow, second);

}

function nextClick() {
    if (document.animating == false) {
        if (document.timeoutID)
            clearTimeout(document.timeoutID);

        $(".slideShow .pagination").trigger("deactivate");
        NewItemIndex = determineItem("next");
        move(NewItemIndex, 'left');
    }
}

function prevClick() {
    if (document.animating == false) {
        if (document.timeoutID)
            clearTimeout(document.timeoutID);

        $(".slideShow .pagination").trigger("deactivate");
        NewItemIndex = determineItem("prev");
        move(NewItemIndex, 'right');
    }
}

function pageClick(NewItemIndex) {
    if (document.animating == false) {
        if (NewItemIndex != document.currentItemDisplay) {
            if (document.timeoutID)
                clearTimeout(document.timeoutID);

            PaginationUL = $(".slideShow .pagination");
            PaginationUL.trigger("deactivate");

            if (NewItemIndex < document.currentItemDisplay)
            // && Math.abs(NewItemIndex - document.currentItemDisplay) == 1)
                move(NewItemIndex, 'right');
            else
                move(NewItemIndex, 'left');

        }
    }
}

function determineItem(type) {
    TotalItems = $(".slideShowUL li").length;
    if (type == "prev")
        NewItemIndex = document.currentItemDisplay - 1;
    else if (type == "next")
        NewItemIndex = document.currentItemDisplay + 1;

    if (NewItemIndex == -1)
        NewItemIndex = TotalItems - 1;
    else if (NewItemIndex == TotalItems)
        NewItemIndex = 0;

    return NewItemIndex;
}

function move(newItem, direction) {
    /*
    numberOfMoves = Math.abs(newItem - document.currentItemDisplay);
	
	if(numberOfMoves > 1)
    {
    if(direction == "right")
    newItemIndex = document.currentItemDisplay + 1;
    else
    newItemIndex = document.currentItemDisplay - 1;	
    }
    else
    {
    newItemIndex = newItem;
    }*/

    if (direction == "right") {
        NewTop = 0;
        NewLeft = -578;
        OldTop = 0;
        OldLeft = 578;
    }
    else {
        NewTop = 0;
        NewLeft = 578;
        OldTop = 0;
        OldLeft = -578;
    }

    NewLi = $(".slideShowUL li").eq(newItem);
    OldLi = $(".slideShowUL li").eq(document.currentItemDisplay);

    NewLi.css({ top: NewTop, left: NewLeft, display: 'block' });

    document.newItem = newItem;

    NewLi.animate({ left: 0 }, 400, 0, function() {

        document.currentItemDisplay = document.newItem;

        $(".slideShow .pagination").find("li a")
								   .removeClass("active")
								   .eq(document.newItem)
								   .addClass("active")
								   .trigger("activate");

        if (document.timeoutID)
            clearTimeout(document.timeoutID);

        second = determineTimeCurrentItem() * 1000;

        document.timeoutID = setTimeout(automateSlideShow, second);

    });
    OldLi.animate({ left: OldLeft }, 400, 0, function() {
        $(this).css("display", "none");

    });

}

function automateSlideShow() {
    if (document.animating == false) {
        $(".slideShow .pagination").trigger("deactivate");
        NewItem = determineItem("next");
        move(NewItem, "left");
    }
}

function determineTimeCurrentItem() {
    return parseInt($(".slideShow .slideShowUL li").eq(document.currentItemDisplay).attr("second"));
}

jQuery(".slideShow .pagination").bind("activate", function() {

    document.animating = false;

});

jQuery(".slideShow .pagination").bind("deactivate", function() {

    document.animating = true;

});
