var current_position;

function get_category(name)
{
  for (i = 0; i < categories.length; i++) {
    if (categories[i].title == name) {
      return categories[i];
    }
  }
}

function get_subcategory(category, name)
{
  for (i = 0; i < category.subcategories.length; i++) {
    if (category.subcategories[i].name == name) {
      return category.subcategories[i];
    }
  }
}

function get_scroller_position()
{
  var images = $("#images > li");
  for (i = 0; i < images.length; i++) {
    if (images[i].offsetLeft >= - ($("#pane").offset().left - $("#holder").offset().left)) {
      break;
    }
  }
  return i;
}

function display_description(project)
{
  $('#copyrights-headings').html(project.notice ? project.notice : "");
  $('#description-headings').html(project.title ?
                            "<h1>" + project.name + "</h1>" + project.title + "<br>" + project.description :
                            "");
}

function update_description(position)
{
  var i, j, k, n;
  var count = 0;
  var project = null;
  if (position == null) {
    position = get_scroller_position();
  }
  if (position == current_position)
    return;
  current_position = position;
  for (n = 0; project == null && n < categories.length; n++) {
    for (i = 0; project == null && i < categories[n].subcategories.length; i++) {
      for (j = 0; project == null && j < categories[n].subcategories[i].projects.length; j++) {
        count += categories[n].subcategories[i].projects[j].images.length;
        if (categories[n].subcategories[i].projects[j].pages)
            count += categories[n].subcategories[i].projects[j].pages.length;
        if (position < count) {
          project = categories[n].subcategories[i].projects[j];
          display_description(project);

          /* Select the right category */
          $('#categories > div').removeClass("category-active");
          cats = $('#categories > div > a');
          for (k = 0; k < cats.length; k++) {
            if (cats[k].id == categories[n].slug) {
              $(cats[k]).parent().addClass("category-active");
            }
          }

          subs = $('#subcategories > a');
          subs.removeClass("subcategory-active subcategory-clickable");

          $(".subcategory-" + categories[n].slug).addClass("subcategory-clickable");
          // $(".subcategory-" + categories[n].slug + ":eq(0)").addClass("subcategory-active");

          /* Select the right subcategory */
          for (k = 0; k < subs.length; k++) {
            if ($.trim($(subs[k]).text()) == categories[n].subcategories[i].title) {
              $(subs[k]).addClass("subcategory-active");
            }
          }

          return;
        }
      }
    }
  }
}

function display_subcategories()
{
  var i, j, k, n;
  var html = "<span class='subcategory-separator'>|</span>";
  var html2 = "";
  var first = true;
  var count = 0;
  var images = new Array();
  for (n = 0; n < categories.length; n++) {
    var category = categories[n];

    for (i = 0; i < category.subcategories.length; i++) {
      var subcategory = category.subcategories[i];

      html += " <a id='" + count + "' class='jumper" + (first ? " subcategory-active" : "") + " subcategory-" + category.slug + "'>" + subcategory.title + "</a>";
      html += " <span class='subcategory-separator'>|</span>";
      first = false;

      for (j = 0; j < subcategory.projects.length; j++) {
        for (k = 0; k < subcategory.projects[j].images.length; k++) {
          html2 += '<li class="scroll-interval"><center><img src="' + subcategory.projects[j].images[k]  + '" alt="" /></center></li>';
          count++;
        }
        if (subcategory.projects[j].pages) {
          for (k = 0; k < subcategory.projects[j].pages.length; k++) {
            html2 += '<li class="scroll-interval page"><div>' + subcategory.projects[j].pages[k] + '</div></li>';
            count++;
          }
        }
      }
    }
  }

  $('#subcategories').html(html)
  $('#images').html(html2);
  $('a.jumper').click(function() {
    // $('a.jumper').removeClass('subcategory-active');
    // $(this).addClass('subcategory-active');
    var id = $(this).attr('id');
    var c = $("#pane");
    c[0].scrollTo("li:eq("+id+")");
    for (var i = 0; i < active_category.subcategories.length; i++) {
      if (this.text == active_category.subcategories[i].name) {
        active_subcategory = active_category.subcategories[i];
        break;
      }
    }
  });
}

function display_categories()
{
    var html = "<div class='first-category category-inactive'>&nbsp;&nbsp;&nbsp;</div>";
    for (i = 0; i < categories.length; i++) {
        html += "<div class='category-" + (i == 0 ? "" : "in") + "active'>" + categories[i].name + "</div>";
    }
    html += "<div class='category-inactive'>Liens</div>";
    html += "<div class='category-inactive'>A propos...</div>";
    $('#categories').html(html)
}


