(function() {
  var createProjectItem, createProjectItemLink, createProjectItemToggle, createSlide, createSlideShow, createSlideShowControls, formatDate, generateProject, generateTumblrPosts, generateTweets, generateWorkJSON, intializeIsotope, intializeSlides, isotopeToggleLarge, moveSlide, moveSlideNext, moveSlidePrevious, processWorkJson, resetSlideButtons, setSelectedNav;

  $(document).ready(function() {
    var isotope_container;
    generateTweets();
    generateTumblrPosts();
    processWorkJson();
    setSelectedNav();
    isotope_container = $('#work_projects ul#work_projects_container');
    intializeIsotope(isotope_container);
    intializeSlides(".project_slides_container");
    $(".project_slides_previous").click(function() {
      moveSlide($(this));
      return false;
    });
    $(".project_slides_next").click(function() {
      moveSlide($(this));
      return false;
    });
    $('#work_projects_toggle').click(function() {
      var current_action, enlarge;
      current_action = $(this).find('li.hide');
      enlarge = $('#work_projects ul li');
      $(this).find('li').toggleClass('hide');
      $('.project_controls_toggle').find('li.collapse').removeClass('hide');
      $('.project_controls_toggle').find('li.expand').addClass('hide');
      return isotopeToggleLarge(current_action, enlarge, isotope_container);
    });
    return $('.project_controls_toggle').live('click', function() {
      var current_action, enlarge;
      current_action = $(this).find('li.hide');
      $(this).find('li').toggleClass('hide');
      enlarge = $(this).parents('.isotope-item');
      return isotopeToggleLarge(current_action, enlarge, isotope_container);
    });
  });

  isotopeToggleLarge = function(current_action, container, isotope_container) {
    if (current_action.hasClass('collapse')) {
      container.addClass('large');
      return isotope_container.isotope('reLayout');
    } else {
      container.removeClass('large');
      return isotope_container.isotope('reLayout');
    }
  };

  intializeIsotope = function(isotope_container) {
    if ($('body').attr('id') === "work") {
      isotope_container.isotope({
        animationOptions: {
          duration: 750,
          easing: 'linear',
          queue: false
        }
      });
      return isotope_container.delegate('.project h3', 'click', function() {
        $(this).parents('.project').toggleClass('large');
        return isotope_container.isotope('reLayout');
      });
    }
  };

  setSelectedNav = function() {
    var body_id;
    body_id = $('body').attr('id');
    return $("#" + body_id + "_nav").addClass('selected');
  };

  intializeSlides = function(slide_container) {
    return $(slide_container).each(function() {
      var container_width;
      container_width = $(this).find('li').size() * parseInt($(this).find('li').css('width').replace('px', ''));
      $(this).css('width', "" + container_width + "px");
      $(this).find("li:first").addClass("first");
      $(this).find("li:last").addClass("last");
      return $(this).parents('.project_slides').find('.project_slides_previous').addClass('hide');
    });
  };

  moveSlide = function(slide_button) {
    var item_width, left_indent, project_slide;
    project_slide = slide_button.parents('.project_slides');
    item_width = parseInt(project_slide.find('li').css('width').replace('px', ''));
    resetSlideButtons(project_slide);
    left_indent = 0;
    if (slide_button.hasClass('project_slides_previous')) {
      return moveSlidePrevious(item_width, project_slide, slide_button);
    } else if (slide_button.hasClass('project_slides_next')) {
      return moveSlideNext(item_width, project_slide, slide_button);
    }
  };

  moveSlidePrevious = function(item_width, project_slide, slide_button) {
    var left_indent, project_slide_container;
    project_slide_container = project_slide.find('.project_slides_container');
    left_indent = parseInt(project_slide_container.css("left")) + item_width;
    if (left_indent === 0) {
      slide_button.addClass('hide');
    } else {
      slide_button.removeClass('hide');
    }
    return project_slide_container.animate({
      left: left_indent
    }, 200);
  };

  moveSlideNext = function(item_width, project_slide, slide_button) {
    var left_indent, max_width, project_slide_container;
    project_slide_container = project_slide.find('.project_slides_container');
    left_indent = parseInt(project_slide_container.css("left")) - item_width;
    project_slide_container.animate({
      left: left_indent
    }, 200);
    max_width = parseInt(project_slide_container.css('width').replace('px', '')) - item_width;
    if (left_indent === -max_width) return slide_button.addClass('hide');
  };

  resetSlideButtons = function(button_container) {
    button_container.find('.project_slides_previous').removeClass('hide');
    return button_container.find('.project_slides_next').removeClass('hide');
  };

  formatDate = function(date) {
    var month_string, year_month_day;
    year_month_day = date.split(" ")[0].split("-");
    month_string = "";
    switch (parseInt(year_month_day[1].replace(/^[0]+/g, ""))) {
      case 1:
        month_string = "January";
        break;
      case 2:
        month_string = "Feburary";
        break;
      case 3:
        month_string = "March";
        break;
      case 4:
        month_string = "April";
        break;
      case 5:
        month_string = "May";
        break;
      case 6:
        month_string = "June";
        break;
      case 7:
        month_string = "July";
        break;
      case 8:
        month_string = "August";
        break;
      case 9:
        month_string = "September";
        break;
      case 10:
        month_string = "October";
        break;
      case 11:
        month_string = "November";
        break;
      case 12:
        month_string = "December";
    }
    return month_string + " " + year_month_day[2] + ", " + year_month_day[0];
  };

  generateTumblrPosts = function() {
    var max_posts, posts_container, posts_url, preloading;
    if (($("#latest").length)) {
      max_posts = 5;
      posts_container = $('#latest ul');
      preloading = $("<p class=\"preLoader\"> Loading posts...</p>");
      posts_container.html(preloading);
      posts_url = "http://api.tumblr.com/v2/blog/hello.ponzeka.com/posts?api_key=4dxnMh8zezG5fq2OK0vwVhusWboTW4SSA4g3JUgJJ55b1QE7Jz&callback&jsonp=?";
      return $.getJSON(posts_url, function(data) {
        var index;
        index = 0;
        posts_container.html("");
        return $(data.response.posts).each(function(index) {
          var post_date, post_divider, post_item, post_item_date, post_item_divider, post_item_title, post_item_title_link, post_title, post_type, post_url;
          if (index < max_posts) {
            post_title = this.title;
            post_date = formatDate(this.date);
            post_url = this.post_url;
            post_type = this.type;
            post_item = $("<li />", {
              "class": "post"
            });
            post_item_title = $("<p />", {
              "class": "post_title"
            });
            post_item_title_link = $("<a />", {
              href: post_url
            });
            switch (post_type) {
              case "photo":
                post_item_title_link.html("" + post_type + ": " + this.caption);
                break;
              case "text":
                post_item_title_link.html(post_title);
            }
            post_item_title.html(post_item_title_link);
            post_item_date = $("<p />", {
              "class": "post_date"
            });
            post_item_date.html(post_date);
            post_item.append(post_item_title).append(post_item_date);
            post_item.hide().css({
              height: 0
            });
            posts_container.append(post_item);
            post_item.show().animate({
              height: 25
            }, 750);
            if (index !== max_posts) {
              post_item_divider = $("<li />", {
                "class": "post_divider"
              });
              post_divider = $("<hr />");
              post_item_divider.html(post_divider);
              posts_container.append(post_item_divider);
            }
          }
          return index++;
        });
      });
    }
  };

  generateTweets = function() {
    if (($("#tweets").length)) {
      return $("#tweets_container").getTwitter({
        userName: "paigetponzeka",
        numTweets: 8,
        loaderText: "Loading tweets...",
        slideIn: true,
        slideDuration: 750,
        showHeading: false,
        headingText: "Latest Tweets",
        showProfileLink: true,
        showTimestamp: true
      });
    }
  };

  processWorkJson = function() {
    var work_json;
    if (($("#work_projects").length)) {
      work_json = generateWorkJSON();
      return $.each(work_json.work, function() {
        return generateProject(this);
      });
    }
  };

  generateProject = function(project) {
    var item, languages_content, project_code, project_content, project_demo, project_description, project_details, project_languages, project_slideshow, project_title, project_year_created;
    item = $("<li />", {
      "class": "project"
    });
    project_title = $("<h3 />", {
      text: project.name
    });
    project_content = $("<ul />", {
      "class": "project_content"
    });
    project_description = createProjectItem("Description:", project.description);
    project_content.append(project_description);
    if (project.languages) {
      languages_content = "";
      $.each(project.languages, function() {
        return languages_content += "" + this + " ";
      });
      project_languages = createProjectItem("Languages:", languages_content);
      project_content.append(project_languages);
    }
    if (project.year_created) {
      project_year_created = createProjectItem("Year Created:", project.year_created);
      project_content.append(project_year_created);
    }
    if (project.demo_link) {
      project_demo = createProjectItemLink("Demo:", project.demo_link, "Demo available ");
      project_content.append(project_demo);
    }
    if (project.code_link) {
      project_code = createProjectItemLink("Code:", project.code_link, "Code available ");
      project_content.append(project_code);
    }
    if (project.details_link) {
      project_details = createProjectItemLink("Details:", project.details_link, "More Details available ");
      project_content.append(project_details);
    }
    if (project.slides) {
      project_slideshow = createSlideShow(project.slides);
      project_content.append(project_slideshow);
    }
    item.append(createProjectItemToggle());
    item.append(project_title).append(project_content);
    return $("#work_projects > ul").append(item);
  };

  createProjectItemToggle = function() {
    var project_control, project_control_collapse, project_control_expand;
    project_control = $("<ul />", {
      "class": "project_controls_toggle"
    });
    project_control_expand = $("<li />", {
      "class": "expand"
    });
    project_control_expand.html("[+]");
    project_control_collapse = $("<li />", {
      "class": "collapse hide"
    });
    project_control_collapse.html("[-]");
    project_control;
    return project_control.append(project_control_expand).append(project_control_collapse);
  };

  createProjectItem = function(name, project_content) {
    var project_body, project_body_dd, project_body_dt, project_item;
    project_item = $("<li />");
    project_body = $("<dl />");
    project_body_dt = $("<dt />", {
      text: name
    });
    project_body_dd = $("<dd />");
    project_body_dd.html(project_content);
    project_body.append(project_body_dt).append(project_body_dd);
    project_item.html(project_body);
    return project_item;
  };

  createProjectItemLink = function(name, project_content_link, link_name) {
    var project_body_dd_container, project_body_dd_link;
    project_body_dd_link = $("<a />", {
      href: project_content_link,
      text: "here "
    });
    project_body_dd_container = $("<span />", {
      text: link_name
    });
    project_body_dd_container.append(project_body_dd_link);
    return createProjectItem(name, project_body_dd_container);
  };

  createSlideShow = function(project_slides) {
    var project_item, slides, slides_container;
    project_item = $("<li />");
    slides = $("<div />", {
      "class": "project_slides"
    });
    slides_container = $("<ul />", {
      "class": "project_slides_container"
    });
    $.each(project_slides, function() {
      return slides_container.append(createSlide(this));
    });
    project_item.html(slides);
    slides.append(slides_container);
    slides.append(createSlideShowControls());
    return project_item;
  };

  createSlide = function(slide_content) {
    var slide, slide_caption_container, slide_image, slide_image_container, slide_title;
    slide = $("<li />");
    slide_image_container = $("<div />", {
      "class": "project_slide_image_container"
    });
    slide_image = $("<img />", {
      src: slide_content.slide_image
    });
    slide_image_container.html(slide_image);
    slide_caption_container = $("<div />", {
      "class": "project_slide_caption_container"
    });
    slide_title = $("<h5 />", {
      text: slide_content.slide_title
    });
    slide_caption_container.html(slide_title);
    slide.append(slide_image_container).append(slide_caption_container);
    return slide;
  };

  createSlideShowControls = function() {
    var slide_controls, slide_controls_next, slide_controls_previous;
    slide_controls = $("<div />", {
      "class": "project_slides_controls"
    });
    slide_controls_next = $("<div />", {
      "class": "project_slides_next",
      text: ">"
    });
    slide_controls_previous = $("<div />", {
      "class": "project_slides_previous",
      text: "<"
    });
    slide_controls.append(slide_controls_next).append(slide_controls_previous);
    return slide_controls;
  };

  generateWorkJSON = function() {
    var work_json;
    work_json = {
      work: [
        {
          name: "Wordz",
          description: "A Typing Game",
          year_created: "Sophomore Year of College",
          languages: ["Javascript", "HTML", "CSS"],
          code_link: "https://github.com/PaigePonzeka/Wordz",
          demo_link: "http://demo.ponzeka.com/Wordz",
          slides: [
            {
              slide_image: 'images/screens/wordz/1.png',
              slide_title: "Title Screen"
            }, {
              slide_image: 'images/screens/wordz/2.png',
              slide_title: "Game in Action"
            }, {
              slide_image: 'images/screens/wordz/3.png',
              slide_title: "Another of the Game in Action"
            }
          ]
        }, {
          name: "Shootout",
          description: "Created as part of a class project, my first program developed in python",
          year_created: "Sophomore Year of college",
          languages: ["python", "pygames"],
          demo_link: "http://www.youtube.com/watch?v=DWA1-p8YFuE",
          slides: [
            {
              slide_image: 'images/screens/shootout/1.png',
              slide_title: "Game in Action"
            }, {
              slide_image: 'images/screens/shootout/2.png',
              slide_title: "Game in Action"
            }
          ]
        }, {
          name: "Stats2V",
          description: "A stats tracking database for a PC game. Used a program run on game servers to collect statistics. Front-end allowed players to view their stats and rankings.",
          year_created: "Summer before Senior Year of College",
          languages: ["HTML", "CSS", "PHP", "MySQL", "Javascript"],
          demo_link: "http://stats2v.ponzeka.com",
          slides: [
            {
              slide_image: 'images/screens/stats2v/1.png',
              slide_title: "Player Card Generator"
            }, {
              slide_image: 'images/screens/stats2v/2.png',
              slide_title: "Individual Player Stats"
            }, {
              slide_image: 'images/screens/stats2v/4.png',
              slide_title: "'League' Leaders"
            }, {
              slide_image: 'images/screens/stats2v/6.png',
              slide_title: "Top Ten Rankings"
            }
          ]
        }, {
          name: "Subway Squeeze",
          description: "An application created with a game design team during the first Game Design Workshop at the NYU Game center.",
          year_created: "Summer After Sophomore Year of College",
          languages: ["Java"],
          code_link: "https://github.com/PaigePonzeka/Subway-Squeeze",
          demo_link: "http://demo.ponzeka.com/subwaysqueeze"
        }, {
          name: "VSU Victim Database",
          description: "An application created for the Victim's Services Unit at the Brooklyn DA's office. Used to track Victim's and statistics.",
          year_created: "Senior Year of college",
          languages: ["VBA", "Microsoft Access"],
          slides: [
            {
              slide_image: 'images/screens/vsu_victim_database/2.png',
              slide_title: "Counselor Front Page with Latest Cases"
            }, {
              slide_image: 'images/screens/vsu_victim_database/1.png',
              slide_title: "Victim Search Screen"
            }
          ]
        }, {
          name: "Playlist Generator",
          description: "This application generated a view file to of the playlist file ran on a Halo 2 Server.",
          year_created: "Sophomore Year of college",
          languages: ["C#", "Visual Studio"],
          demo_link: "http://download.ponzeka.com/playlist_generator",
          slides: [
            {
              slide_image: 'images/screens/playlist_generator/1.png',
              slide_title: "Sample Generator Output"
            }, {
              slide_image: 'images/screens/playlist_generator/2.png',
              slide_title: "Opening a Dialog to get the Playlist File"
            }, {
              slide_image: 'images/screens/playlist_generator/3.png',
              slide_title: "Generator with Plain text Output"
            }
          ]
        }, {
          name: "Playlist Creator",
          description: "This application generated a view file to of the playlist file ran on a Halo 2 Server.",
          year_created: "Sophomore Year of college",
          languages: ["C#", "Visual Studio"],
          demo_link: "http://download.ponzeka.com/playlist_creator",
          slides: [
            {
              slide_image: 'images/screens/playlist_creator/1.png',
              slide_title: "Generating a Gametype"
            }, {
              slide_image: 'images/screens/playlist_creator/2.png',
              slide_title: "Selecting a Map"
            }, {
              slide_image: 'images/screens/playlist_creator/3.png',
              slide_title: "Changing App Color (Because that's important)"
            }
          ]
        }, {
          name: "i4Ni",
          description: "Designed, created and implemented web presence of the i4Ni Gaming community. (no longer live). Also included a Player stats and data tracker along with a server viewer.",
          year_created: "Sophomore Year of college",
          languages: ["HTML", "CSS", "PHP", "MySQL"],
          demo_link: "http://demo.ponzeka.com/i4Ni"
        }, {
          name: "MoMA Research",
          description: "Research and advised Museum of Modern Art curators on obtaining and storing current and future technical installations."
        }, {
          name: "Disrupto",
          description: "A Digital Product Development Studio located in Manhattan. Worked on several projects such a Memberly, BlueShirtsUnited, KnicksNow, etc",
          details_link: "http://disrupto.com",
          slides: [
            {
              slide_image: 'images/screens/disrupto/1.png',
              slide_title: "Knicksnow"
            }, {
              slide_image: 'images/screens/disrupto/2.png',
              slide_title: "BlueshirtsUnited"
            }, {
              slide_image: 'images/screens/disrupto/3.png',
              slide_title: "Memberly"
            }
          ]
        }
      ]
    };
    return work_json;
  };

}).call(this);

