YUI().use('*',function(Y) {

  // Function that highlights the current menu item.
  var set_menu = function() {
    // This code is repetitive because conditions might change.
    var menu, menu_li;
    try {
      menu = Y.one('#breadtrail a');
      menu = menu.get('href');
    }
    catch(e) {
      menu = Y.one('#breadtrail');
      menu = menu.get('innerHTML');
    }
    // Home
    if (menu.search('Home') > -1) {
      menu_li = Y.one('#menu-home');
      menu_li.addClass('active');
    }
    // Projecten
    if (menu.search('category/2') > -1) {
      menu_li = Y.one('#menu-projecten');
      menu_li.addClass('active');
    }
    // Klankobjecten
    if (menu.search('category/3') > -1) {
      menu_li = Y.one('#menu-klankobjecten');
      menu_li.addClass('active');
    }
    // Sculpturen
    if (menu.search('category/1') > -1) {
      menu_li = Y.one('#menu-sculpturen');
      menu_li.addClass('active');
    }
    // Biografie
    if (menu.search('Biografie') > -1) {
      menu_li = Y.one('#menu-biografie');
      menu_li.addClass('active');
    }
    // Links
    if (menu.search('Links') > -1) {
      menu_li = Y.one('#menu-links');
      menu_li.addClass('active');
    }
    // Contact
    if (menu.search('Contact') > -1) {
      menu_li = Y.one('#menu-contact');
      menu_li.addClass('active');
    }
  }

  // Function that makes multiple bio pages clickable.
  var switch_bio = function(e) {
    var link, id, prev_link, prev_id, new_page, prev_page;
    link = e.currentTarget;
    id = link.get('id').substr(8); //biomenu-X
    prev_link = Y.one('#biomenu a.active');
    prev_id = prev_link.get('id').substr(8);
    if (id !== prev_id) {
      new_page = Y.one('#biopage-'+id);
      prev_page = Y.one('#biopage-'+prev_id);
      prev_link.removeClass('active');
      link.addClass('active');
      prev_page.removeClass('active');
      new_page.addClass('active');
    }
  }

  var set_bio_menu = function() {
    var bio_menu, bio_menu_items;
    bio_menu = Y.one('#biomenu');
    if (bio_menu) {
      bio_menu_items = Y.all('#biomenu a');
      bio_menu_items.on('click',switch_bio);
    }
  }

  // Multiple category pages (if applicable)
  var next_cat = function(e) {
    var cat_cur, nr_cur, nr_next, page_cur, page_next, max_page;

    max_page = 0;
    while(Y.one("#thumbspage-"+(max_page+1))) max_page += 1;

    cat_cur = Y.one("#catCur");
    nr_cur = parseInt(cat_cur.get("innerHTML"));
    nr_next = nr_cur+1;

    page_cur = Y.one("#thumbspage-"+nr_cur);
    page_next = Y.one("#thumbspage-"+nr_next);

    if (page_next) {
      cat_cur.set("innerHTML",nr_next);
      page_cur.addClass("none");
      page_next.removeClass("none");
    }

    if (nr_next > 1) {
      Y.one("#catPrev").removeClass("hidden");
    }
    if (nr_next == max_page) {
      Y.one("#catNext").addClass("hidden");
    }
  }

  var prev_cat = function(e) {
    var cat_cur, nr_cur, nr_prev, page_cur, page_prev, max_page;

    max_page = 0;
    while(Y.one("#thumbspage-"+(max_page+1))) max_page += 1;

    cat_cur = Y.one("#catCur");
    nr_cur = parseInt(cat_cur.get("innerHTML"));
    nr_prev = nr_cur-1;

    page_cur = Y.one("#thumbspage-"+nr_cur);
    page_prev = Y.one("#thumbspage-"+nr_prev);

    if (page_prev) {
      cat_cur.set("innerHTML",nr_prev);
      page_cur.addClass("none");
      page_prev.removeClass("none");
    }

    if (nr_prev < max_page) {
      Y.one("#catNext").removeClass("hidden");
    }
    if (nr_prev == 1) {
      Y.one("#catPrev").addClass("hidden");
    }
  }

  // Function that makes multiple bio pages clickable.
  var set_cat_menu = function() {
    var cat_prev, cat_next;
    cat_prev = Y.one('#catPrev a');
    cat_next = Y.one('#catNext a');
    if (cat_prev) {
      cat_prev.on('click',prev_cat);
      cat_next.on('click',next_cat);
    }
  }
  // Onload stuff.
  Y.on('domready',set_menu);
  Y.on('domready',set_bio_menu);
  Y.on('domready',set_cat_menu);
});
