﻿/// <Reference Path="~/js/jquery-1.4.1-vsdoc.js" />
$(document).ready(function () {
  $.address.strict(false);
  $.address.change(onNavigation);

  var $thumbs = $('#Thumbnails img');

  $thumbs.hover(function () {
    if (!$(this).hasClass('selected')) {
      $(this).fadeTo(200, .8);
    }
  },
  function () {
    if (!$(this).hasClass('selected')) {
      $(this).fadeTo(200, .5);
    }
  });

  $thumbs.click(function (evt) {
    evt.preventDefault();

    $.address.value(GetImageName(this.src));
  });

  $('#ActiveImage').click(NextPortfolioImage);
});

$(window).load(function () {
  $('#Thumbnails img').each(function (i, item) {
    var img = new Image();

    img.src = GetFullPath(item.src);
  });
});

function NextPortfolioImage(evt) {
  evt.preventDefault();

  var $thumbs = $('#Thumbnails img');
  var $selectedImage = $('#Thumbnails img.selected');

  var selectedIndex = $thumbs.index($selectedImage);

  if (selectedIndex < $thumbs.length - 1)
    var $nextImage = $thumbs.eq(selectedIndex + 1);
  else
    var $nextImage = $thumbs.eq(0);

  var nextImageName = GetImageName($nextImage.attr('src'));

  $.address.value(nextImageName);
}

function onNavigation(evt) {
  var targetThumb;

  if (evt.value)
    targetThumb = $('#Thumbnails img[src$=' + evt.value + ']').get(0);
  else
    targetThumb = firstImage = $('#Thumbnails img:first').get(0);

  var targetThumbSrc = targetThumb.src.substring(targetThumb.src.lastIndexOf('/'));

  $('#ActiveImage').fadeOut(100, function () {
    SetFullImage(targetThumb);

    SetActiveThumb(targetThumbSrc);

    $(this).fadeIn(100);

    if (evt.value) {
      setTimeout(TrackView, 200);
    }
  });
}

function SetFullImage(thumb) {
  $('#ActiveImage').attr('src', GetFullPath(thumb.src));
}

function SetActiveThumb(filename) {
  var $selectedThumb = $('#Thumbnails img.selected');
  var $targetThumb = $('#Thumbnails img[src$=' + filename + ']');

  $selectedThumb.fadeTo(0, .5);
  $selectedThumb.removeClass('selected');

  $targetThumb.addClass('selected');
  $targetThumb.fadeTo(0, 1);
}

function GetImageName(src) {
  return src.substring(src.search(/\/[a-zA-Z0-9\-]+\.jpg$/i) + 1);
}

function GetFullPath(thumbnailPath) {
  return thumbnailPath.replace(/thumbnails\//, '');
}

function TrackView() {
  var location = document.location.href.replace(/http:\/\/.*\.com/, '');
  location = location.replace('#', '/');

  var hash = document.location.hash.replace('#', '');

  if (typeof (pageTracker) != 'undefined') {
    pageTracker._trackPageview(location);
  }

  if (typeof (clicky) != 'undefined') {
    clicky.log(location, hash);
  }
}