(function () {

  var d = {
    init: function () {
      d.portfolio.init();
    },

    portfolio: {
      init: function () {
        var nav = $("#portfolio .section_nav li");
        nav.bind("click", d.portfolio.show);
        $("#portfolio img:not(.category)").bind("click", d.portfolio.showDetails);

        if( $(".project.details").length > 0) {
          d.portfolio.details.init();
        }
        
        $("#portfolio img.category").bind("click", d.portfolio.showCategory);
        

        
        $("a.lb").fancybox();

      },
    
      show: function (ev) {
        ev.stopPropagation();
        $(".portfolio ul").show();
        $(".portfolio .details").hide();

        var target = $(this),
            tab, tabHeight = 330;

        if (target.hasClass("web")) {
          tab = "web";
          tabHeight = 330;
        }
        else if (target.hasClass("print")) {
          tab = "print";
          tabHeight = 330;
        }
        else if (target.hasClass("photography")) {
          tab = "photography";
          tabHeight = 400;
        }
        else if (target.hasClass("skills")) {
          tab = "skills";
          tabHeight = 200;
        }
        else if (target.hasClass("contact")) {
          tab = "contact";
          tabHeight = 200;
        }

        d.portfolio.setTab(tab);
        $("#portfolio_content").animate({
          height: 0,
          opacity: 0
        }, 400, function () {
          $(".photo_category").hide();
          $("#categories").show();
          
          $(".portfolio").hide();
          $("#portfolio_" + tab).show();
          $("#portfolio_content").animate({
             height: tabHeight,
             opacity: 1
           }, 600);
        });
      },
      
      setTab: function (tab) {
        $("#portfolio .section_nav li").removeClass("current");
        $("#portfolio .section_nav li." + tab).addClass("current");
      },
      
      showDetails: function (ev) {
        var img = $(this);
        $(".portfolio ul").hide();
        $(img.data("details")).show();
      },
      
      showCategory: function (ev) {
        ev.stopPropagation();
        var img = $(this),
            cat = img.data("category");
        
        $("#portfolio_content").animate({
           height: 0,
           opacity: 0
         }, 400, function () {
          $(".photo_category").hide();
          $("#categories").hide();
          $("#photo_category_" + cat).show();
          $("#portfolio_content").animate({
            height: 400,
            opacity: 1
          }, 600);
        });

      },

      details: {
        init: function () {
          $(".thumb").bind("click", d.portfolio.details.viewThumb);
        },
        viewThumb: function () {
          $(".big_image img").attr("src", $(this).find("img").attr("src"));
        }
      }
    }
  };

  $(document).ready(d.init);
  

}());

