var photoChangeTimer = 0;
var isWorking = false;
var photoList = [];

$(window).load(function () {

  $("#photos > IMG").each(function () {
    var photo = { path: $(this).attr("src"), name: $(this).attr("title"), description: '' };
    photoList.push(photo);
  });

  if (photoList.length <= 1) return;

  $('#tagged-photo > IMG').wrap('<a id="photo-click-next"></' + 'a>');
  PhotoBindEvents();
  $('#photo-navigation').toggle();
  PhotoPlayToggle();
});

function PhotoBindEvents() {
$('#photo-previous').click(function () {
  if (!isWorking)
  PhotoPrevious();
  return false;
});
$('#photo-pause').click(function () {
  PhotoPlayToggle();
  return false;
});
$('#photo-next').click(function () {
  if (!isWorking)
  PhotoNext(false);
  return false;
});
$('#photo-click-next').click(function () {
  if (!isWorking)
  PhotoNext(false);
  return false;
});
}

function PhotoPlayToggle() {
if (photoChangeTimer == 0)
  photoChangeTimer = setTimeout("PhotoNext(true);", 3000);
else {
  clearTimeout(photoChangeTimer);
  photoChangeTimer = 0;
}
}

function PhotoNext(photoPlay) {
if (photoPlay == false) {
  clearTimeout(photoChangeTimer);
  photoChangeTimer = 0;
}
var photoNextIndex = PhotoGetCurrent() + 1;
if (photoNextIndex >= photoList.length)
  photoNextIndex = 0;

PhotoReplace(photoNextIndex);
return false;
}

function PhotoPrevious() {
clearTimeout(photoChangeTimer);
photoChangeTimer = 0;

var photoPreviousIndex = PhotoGetCurrent() - 1;
if (photoPreviousIndex < 0)
  photoPreviousIndex = photoList.length - 1;

PhotoReplace(photoPreviousIndex);
return false;
}

function PhotoGetCurrent() {
var ret = 0;
currentPhotoPath = $('#photo-click-next > IMG').attr("src");
$.each(photoList, function (index, value) {
  if (value.path == currentPhotoPath)
  ret = index;
});

return ret;
}

function PhotoReplace(newPhotoIndex) {
isWorking = true;

var photoOld = $('#photo-click-next > IMG');
photoOld.removeAttr('style');

var photoNewImage = new Image();
photoNewImage.onload = function () {
  photoOld.clone().attr('src', photoList[newPhotoIndex].path).attr('alt', photoList[newPhotoIndex].description).attr('title', photoList[newPhotoIndex].name).attr('style', 'z-index :5;').insertAfter(photoOld);

  photoOld.fadeOut(3000, function () {
  $('#tagged-photo > #photo-navigation > span').html(photoList[newPhotoIndex].name + '&nbsp;');
  $(this).remove();
  if (photoChangeTimer > 0) {
    photoChangeTimer = setTimeout("PhotoNext(true);", 3000);
  }
  isWorking = false;
  });
};
photoNewImage.src = photoList[newPhotoIndex].path;
photoNewImage = null;
}
