(function ($) {
  $.fn.werk3Gallery = function () {
    var $galleryBox = this.filter("#galleryBox");
    var $galleryThumbnails = this.filter(".thumbnail");

    $galleryThumbnails.click(function () {
      $galleryBox.attr("src", $(this).attr("src").replace("_pr.jpg", ".jpg"));
      $galleryThumbnails.removeClass("activeThumbnail");
      $(this).addClass("activeThumbnail");
    }).filter(":first").addClass("activeThumbnail");

    return this;
  };

  $.fn.werk3Dimmer = function (settings) {
    var config = { 'opacity': '0.6' };

    if (settings) $.extend(config, settings);

    this.each(function () {
      $(this).css("opacity", config.opacity).hover(function () {

        $(this).fadeTo("slow", 1.0);
      }, function () {
        $(this).fadeTo("slow", config.opacity);
      });
    });

    $.fn.werk3Line = function (settings) {
      var config = { 'speedMultiplier': '2.5' };

      if (settings) $.extend(config, settings);

      var lineWidth = parseInt($(this).css('width'), 10) - parseInt($(this).css('left'), 10);
      var leftHeight = parseInt($('#leftSide').css('height'), 10);
      var topWidth = parseInt($('#topSide').css('width'), 10);

      $('#firstLine').css('width', '0px');
      $('#leftSide').css('height', '0px');
      $("#topSide").css("width", "0px");
      $("#menuAreaRight").css("display", "none");

      $('#firstLine').animate({
        width: lineWidth
      }, lineWidth * config.speedMultiplier, function () {

        $('#leftSide').css('height', '0px').animate({
          height: leftHeight
        }, leftHeight * config.speedMultiplier, function () {

          $("#menuAreaSubDescriptor").fadeIn("slow"); // REVIEW: why has this been in place, is it needed at all?

          $('#topSide').css('width', '0px').animate({
            width: topWidth
          }, topWidth * config.speedMultiplier, function () {

            $("#menuAreaRight").fadeIn("fast");
          });
        });
      });
    };

    return this;
  };
})(jQuery);

