
$(document).ready(function()
{

  $('#logo').hide().fadeIn('slow').click(function(ev) {
    ev.preventDefault();
    clearAll();
    $('#main-menu a.selected').removeClass('selected');
    $('#home').fadeIn('fast');
  });
  
  $('#main-menu a').each(function(i) {
    $(this).hide().fadeIn(i*300+300);
    
  })
  // Set main menu's behavior.
  $('#main-menu a').click(function(ev) {
    ev.preventDefault();
    clearAll();
    $('#main-menu a.selected').removeClass('selected');
    $('#home').fadeOut('fast');
    $(document).data('current',$(this).attr('href').replace('#',''));
    setSelected('#main-menu',this);
    
    
  });

  
  $('.bottom-menu a').click(function(ev) {
    ev.preventDefault();
    $('#pagination .container').empty();
    $('#contents .selected').hide().removeClass('selected');
    $('#nav').hide();
    $(this).parents('.bottom-menu').children('a.selected').removeClass('selected');
    setSelected($(this).parents('.bottom-menu'),this);
    
    // Checks if any existing selector with this id, otherwise tries to load from folder
    
    if($($(this).attr('href')).length == 0) {
      
      // Sets current folder name to load
      $(document).data('current',$(this).attr('href').replace('#',''));
      loadCurrentFolder();      
    }

  });

 
   $('#pagination .container a').live('click',function(ev) {
     ev.preventDefault();
     //selectImage($(this).attr('href'));
     setSelected('#pagination .container', this);
   });
   
   $('#next').click(function(e) {
     e.preventDefault();
     var s = $('#pagination .selected');
     s.removeClass('selected');
     if (s.next().length == 0) {
       $('#pagination .container a:first').trigger('click');
     } else {
       s.next().trigger('click');
     } 
   })

   $('#prev').click(function(e) {
     e.preventDefault();
     var s = $('#pagination .selected');
     s.removeClass('selected');
     if (s.prev().length == 0) {
       $('#pagination .container a:last').trigger('click');
     } else {
       s.prev().trigger('click');
     }
   })
});

  function clearAll() {
    $('#bottom-menus').children('.selected').removeClass('selected').hide();
    $('#nav').hide();
    // $('#sub-menus').children('.selected').removeClass('selected').hide();
    $('#contents').children('.selected').removeClass('selected').hide();
    $('#content').empty();
    $('#loading').hide();
    $('#pagination .container').empty();
  }

  function showTarget(target) {
    if($(target).length == 0) return false;
    $(target).siblings('.selected').removeClass('selected').fadeOut('fast');
     $(target).addClass('selected').fadeIn('slow');
    // Activates first item in the expanded submenu
    $(target).find('a:first').trigger('click');
  }

  function selectImage(img) {
    $('#content .selected').fadeOut('fast');
    $(img).fadeIn('slow');
    setSelected('#content', img)
  }

  function setSelected(selector, selected) {
    var prev = $(selector).find('.selected').removeClass('selected');
    
    $(selected).addClass('selected');
   
    if($(selected).attr('href').length > 0) {
       showTarget($(selected).attr('href'));
    }
   
  }

 function loadCurrentFolder() {
   $('#content').data('count', 1);
   $('#content').empty();
   $('#pagination .container').empty();
   $('#content').show();
   loadImage();
   $('#loading').fadeIn('fast');
 }
 
 function loadImage() {
   var folder = $(document).data('current');
   var src = 'content/'+folder+'/'+$('#content').data('count')+'.jpg';
   
   img = new Image();
   $(img).load(function(ev) {
     if($(document).data('current') == folder ) {
       var count = $('#content').data('count');
     
       $(this).hide().attr('id','img-'+count).appendTo($('#content'));
       $(document.createElement('a')).attr('href','#img-'+count).html(count).appendTo($('#pagination .container'));
       if(count == 1) {
         $('#pagination .container a:first').trigger('click');
       }
       $('#content').data('count', count + 1);
       loadImage(src);
     }
     
     
    })
    .error(function(ev) {
      if($(document).data('current') == folder ) {
        onLoadError(); 
      } 
    }).attr('src', src);
    
    
 }

function onLoadError() {
  $('#loading').stop().hide();
  $('#content').show();
  $('#nav').show();
  $('#pagination .container a:first').trigger('click');
}