var fb_current_page = 0;
var fb_page_count = 0;
var fb_pages = null;

$(document).ready(function() {
  fb_pages = $("#flipbook-thumbnails-container .page");
  fb_page_count = fb_pages.size() - 1;

  for( var i = 1; i <= fb_pages.size(); i++ ) {
    var el = $("<li>" + i + "</li>")
      .attr("id", "pagination-button-" + (i - 1))
      .click(function() {
        var id = $(this).attr("id").substring(18);
        fb_manual_page = id;
        switchPage(id);
      });

    if ( i == 1 ) {
      el.addClass("selected");
    }

    el.appendTo($("#flipbook-pagination"));
  }

  $("#flipbook-controls #flipbook-next").click(function() { switchItem(1); });
  $("#flipbook-controls #flipbook-previous").click(function() { switchItem(-1); });
  //$("#flipbook-thumbnails-container li").css("opacity", 0.5).click(function() { loadItem($(this).attr("id").substring(8)); });
  var thumbnails = $("#flipbook-thumbnails-container").find("li");
  thumbnails.css("opacity", 0.5).click(function() { loadItem($(this).attr("id").substring(8)); });

  loadItem(0);
});

function switchPage(index) {
  $("#flipbook-thumbnails-container").animate({
    marginLeft: -(index * fb_pages.width())
  }, "slow");

  $("#flipbook-pagination li").eq(index).addClass("selected").siblings().removeClass("selected");

  fb_current_page = index;
}

function switchItem(direction) {
  var cItem = $("#flipbook-thumbnails-container li.selected");
  var fb_active_page = fb_pages.index($("#flipbook-thumbnails-container li.selected").parent());

  if ( direction == -1 ) { // previous
    var prev = cItem.prev();
    if ( prev.size() == 0 ) {
      if ( fb_active_page > 0 && fb_active_page == fb_current_page ) {
        fb_current_page--;
        switchPage(fb_current_page);
      }

      loadItem(fb_pages.eq(fb_current_page).find("li:last").attr("id").substring(8));      
    } else {
      prev.click();
    }
  } else { // next
    var next = cItem.next();
	
    if ( next.size() == 0 ) {
      if ( fb_active_page != fb_page_count && fb_active_page == fb_current_page ) {
        fb_current_page++;
        switchPage(fb_current_page);
      }
      loadItem(fb_pages.eq(fb_current_page).find("li:first").attr("id").substring(8));
    } else {
      next.click();
    }
  }

  var currentActivePage = fb_pages.index($("#flipbook-thumbnails-container li.selected").parent());
  if ( currentActivePage != fb_current_page ) {
    switchPage(currentActivePage);
  }
}

function loadItem(index) {
  $("#flipbook-thumbnails-container li").removeClass("selected").css("opacity", 0.5);
  $("#flipbook-thumbnails-container ul.page li").eq(index).addClass("selected").css("opacity", 1); // Hack?

  var currentActiveItemIndex = $("#flipbook-thumbnails-container li").index($("#flipbook-thumbnails-container li.selected"));
  if ( fb_current_page == 0 && currentActiveItemIndex == 0 ) {
    $("#flipbook-previous").css("display", "none");
  } else {
    $("#flipbook-previous").css("display", "block");
  }

  if ( fb_current_page == fb_page_count && currentActiveItemIndex == ($("#flipbook-thumbnails-container li").size() - 1) ) {
    $("#flipbook-next").css("display", "none");
  } else {
    $("#flipbook-next").css("display", "block");
  }

  var obj = fb_items[index];

  $("#flipbook-picture img").fadeOut("fast", function() {
    var img = new Image();
    $(img)
      .load(function() {
        $("#flipbook-picture").empty();
        $(this).hide().appendTo($("#flipbook-picture"));
        $(this).fadeIn("slow");
      })
      .attr("src", obj.img);
    });

  var parts = obj.html.split("|");
  $("#flipbook-title").html(parts[0]);
  $("#flipbook-description").html(parts[1]);
}