/* Copyright 2010 FitnessKeeper, Inc.  All Rights Reserved. */

var photosVisible = false;
var carouselItemList = [];
var photoCarousel;
var photosChanged = false;

$(document).ready(function()
{
   $("#showPhotosButton").click(function()
   {
      $("#showPhotosButton").hide();
      $("#hidePhotosButton").show();
      $("#activityMedia").show();
      $("#activityMedia").animate({ 
            bottom: "10px",
            opacity: 1.0
         }, 500);
      
      if (photosChanged)
      {
         photoCarousel.reset();
         photoCarousel.reload();
         photosChanged = false;
      }
      
      photosVisible = true;
   });
   
   $("#hidePhotosButton").click(function()
   {
      $("#hidePhotosButton").hide();
      $("#showPhotosButton").show();
      $("#activityMedia").animate({ 
            bottom: "-79px",
            opacity: 0.0
         }, 500);
      photosVisible = false;
   });
   
   initCarousel();
});

function initCarousel()
{
   $("#carousel").jcarousel(
   {
      itemLoadCallback: carousel_itemLoadCallback,
      initCallback: carousel_initCallback
   });
}

function refreshPhotoViewer(statusUpdates)
{
   var photoStatusUpdates = [];
   carouselItemList = [];

   // Get a list of the status updates that have photos
   for (var i = 0; i < statusUpdates.length; i++)
   {
      if (statusUpdates[i].photoKey != undefined)
      {
         photoStatusUpdates[photoStatusUpdates.length] = statusUpdates[i];
      }
   }
   
   if (photoStatusUpdates.length > 0)
   {
      for (var i = 0; i < photoStatusUpdates.length; i++)
      {
         carouselItemList[i] =
         {
            fullUrl  : statusUpdatePhotoBaseUrl + "/" + photoStatusUpdates[i].photoKey + ".jpg",
            thumbUrl : statusUpdatePhotoBaseUrl + "/" + photoStatusUpdates[i].photoKey + "_small.jpg",
            title    : "",
            id       : photoStatusUpdates[i].photoKey
         };
         
         if (photoStatusUpdates[i].text != undefined)
         {
            carouselItemList[i].title = photoStatusUpdates[i].text;
         }
      }
      
      photosChanged = true;

      if (photosVisible)
      {
         $("#showPhotosButton").hide();
         $("#hidePhotosButton").show();
         $("#activityMedia").show();

         photosChanged = false;
      }
      else
      {
         $("#hidePhotosButton").hide();
         $("#showPhotosButton").show();
         $("#activityMedia").hide();
      }
      
      photoCarousel.reset();
      photoCarousel.reload();
   }
   else // there are no status updates with photos
   {
      $("#showPhotosButton").hide();
      $("#hidePhotosButton").hide();
      $("#activityMedia").hide();
   }
}

function carousel_itemLoadCallback(carousel, state)
{
   //alert("carousel_itemLoadCallback state=" + state);
   photoCarousel = carousel;
   
   if (state != "init") return;

   for (var i = 0; i < carouselItemList.length; i++)
   {
      carousel.add(i+1, carousel_getItemHtml(carouselItemList[i]));
   }
   
   carousel.size(carouselItemList.length);
   initPrettyPhotoTriggers("a[rel^='prettyPhoto']", false, true);
}

function carousel_initCallback(carousel)
{
   //alert("carousel_initCallback");
   photoCarousel = carousel;
}

function carousel_getItemHtml(item)
{
   return "<a href='" + item.fullUrl + "' rel='prettyPhoto[gallery]' title='" + item.title + "' id='" + item.id + "'>"
        +   "<img src='" + item.thumbUrl + "' width='50' height='50' alt='" + item.title + "' class='activityPicThumb' border='0'/>"
        + "</a>";
}
