/*

  VPP Site JavaScript: Gallery Display
  
  Virtual Presence Post Web Site
  United States Department of State
  Last Edited: March 2008 by Darren W Krape (krapedw@state.gov)

*/

$.fn.accessGallery = function() {
  return this.each(function(i) {
    aGallerySlider.init(this);
  });
};

var aGallerySlider = {
  itemWidth: 0,
  init: function(s,p) {
  
    $(".next").click(function(){
      var imageID = location.hash;
      if (imageID) {
        imageNum = parseFloat(imageID.substring(4)) + 1;
        galleryButton(imageNum);
      }
      return false;
    });

    $(".previous").click(function(){
      var imageID = location.hash;
      if (imageID) {
        imageNum = parseFloat(imageID.substring(4)) - 1;
        galleryButton(imageNum);
      }
      return false;
    });

  }
};

// Image Switcher //

$(function() {

  $("body").append("<div class='gallery-preview'><img src='' width='60' height='60' alt='Image Preview' /></div>");

  var imageID = location.hash;
  if (imageID){
    imageID = imageID.substring(1);
    var imageURL = $("a[@rel='" + imageID + "']").attr("href");
    var imageCaption = $("a[@rel='" + imageID + "']").attr("title");
    $(".gallery-nav li:eq(" + (imageID.substring(3)) + ")").addClass("active");
    switchImage(imageID, imageURL, imageCaption);
  } else {
    var imageID = $(".nav-elements a:eq(1)").attr("rel");
    var imageURL = $(".nav-elements a:eq(1)").attr("href");
    var imageCaption = $(".nav-elements a:eq(1)").attr("title");
    switchImage(imageID, imageURL, imageCaption);
  }

  $(".thumbnails").click(function(){
    $(".nav-thumbnails").fadeToggle();
    if ($(".thumbnails").text() == "Show Thumbs") $(".thumbnails").text("Hide Thumbs"); else $(".thumbnails").text("Show Thumbs");
    return false;
  });

  $(".item").click(function(){
    var imageID = $(this).find("a").attr("rel");
    var imageURL = $(this).find("a").attr("href");
    var imageCaption = $(this).find("a").attr("title");

    if($.browser.msie) parent.location.hash = imageID; // IE6 isn't picking up the hash change properly, so we force it
    switchImage(imageID, imageURL, imageCaption);
    return false;
  });

  $(".gallery-nav .item").hoverIntent({
    sensitivity: 1, interval: 300, over: galleryPreviewOver, timeout: 500, out: galleryPreviewOut
  });

});

galleryPreviewOver = function() {
  var itemPosition = $(this).position();
  var itemIndex = $(".gallery-nav li").index(this) - 1;
  var itemImg = $(".gallery-thumbnails li:eq(" + itemIndex + ")").find("img").attr("src");
  if ( parseInt($(this).text()) > 9 ) var marginLeftPos = "-24px"; else var marginLeftPos = "-28px";
  $(".gallery-preview img").attr({ src: itemImg })
  $(".gallery-preview").css({top: itemPosition['top'], left: itemPosition['left'], marginLeft: marginLeftPos });
  $(".gallery-preview").fadeIn("fast");
}

galleryPreviewOut = function(p) { $(".gallery-preview").fadeOut("fast"); }

galleryButton = function(imageNum,imageID,itemLength){
  var imageID = "img" + imageNum;
  var itemLength = $(".nav-elements .item").length;

  if((imageNum <= itemLength)  && (imageNum > 0)) {
    var imageURL = $("a[@rel='" + imageID + "']").attr("href");
    var imageCaption = $("a[@rel='" + imageID + "']").attr("title");
    $(".gallery-nav li").removeClass("active");
    $(".gallery-nav li:eq(" + (imageID.substring(3)) + ")").addClass("active");
    switchImage(imageID, imageURL, imageCaption);
  }

};

switchImage = function(imageID, imageURL, imageCaption) {

  if(!($.browser.msie && ($.browser.version < 7))) $(".gallery-current").find('img').hide();
  $(".gallery-nav li").removeClass("active");
  $(".gallery-nav li:eq(" + imageID.substring(3) + ")").addClass("active");

  $(".nav-thumbnails li").find("div.active").remove();
  $(".nav-thumbnails li:eq(" + (imageID.substring(3) - 1) + ")").find("img").before("<div class='active'></div>");

  var itemLength = $(".nav-elements .item").length;
  
  $(".previous,.next").removeClass("disabled");
  if(imageID.substring(3) == itemLength) { $(".next").addClass("disabled"); }
  if(imageID.substring(3) == 1) { $(".previous").addClass("disabled"); }

  $(".gallery-current").find("img").attr({ src: imageURL, alt: imageCaption });
  if(!($.browser.msie && ($.browser.version < 7))) $(".gallery-current").find("img").load( function() { $(this).fadeIn(); });

  $(".details .description").html("<p>" + imageCaption + "</p>");
  parent.location.hash = imageID;

  $(".nav-thumbnails").fadeOut();
  $(".thumbnails").text("Show Thumbs");
}

