
var Aplab = {
	
	navigation : $('#main-nav > ul'),
	imgs : $('#gallery-images'),
	controls : $('#gallery-controls')
	
	,initNavigation : function() {
		
		Aplab.navigation.find('> li').hover(function() {
			if ( $(this).find('ul').length > 0 ) {
				$(this).siblings().find('ul').css('display', 'none');
				$(this).find('ul').css('display', 'block');
			}
		}, function(){
			//$(this).not('.active').find('ul').css('display', 'none');
			//$(this).siblings().find('ul').css('display', 'none');
		});
		
		Aplab.navigation.bind('mouseleave', function(){
			$this = $(this);
			$this.find('li').not('.active').find('ul').css('display', 'none');
			$this.find('li.active').find('ul').css('display', 'block');
		});
		
	}
	
	,initGallery : function() {
		
		if ( $('#gallery-images li').size() == 0 ) return;
		
		Aplab.imgs.css('opacity', 0), Aplab.controls.css('opacity', 0);
		Aplab.imgs.find('li').css('opacity', 0), Aplab.controls.css('opacity', 0);
		
		$('#gallery-images li:first').addClass('active');
		$('#gallery-controls li:first a').addClass('active');
		
		if ( $('#gallery-images li').size() <= 1 ) {
			Aplab.controls.remove();
			Aplab.loadImages();
			return;
		}
		
		Aplab.loadImages();
		Aplab.setupControls();
		
	}
	
	,setupControls : function() {
		
		Aplab.controls.find('a').bind('click', function(e){
			$img_index = Aplab.controls.find('a').index( $(this) );
			Aplab.fadeInImage($img_index);
			e.preventDefault();
		});
		
	}
	
	,fadeInImage : function($index) {
		$element = $(Aplab.imgs.find('li')[$index]);
		Aplab.imgs.find('li').removeClass('active');
		$element.addClass('active')
		.animate({
			opacity: 1
		}, 400, function(){
			
			Aplab.controls.find('a').removeClass('active');
			$(Aplab.controls.find('a')[$index]).addClass('active');
			
			Aplab.imgs.find('li')
			.not($element)
			.css('opacity', 0);
		});
	}
	
	,loadImages : function() {
		
		$imgnum = Aplab.imgs.find('img').size();
		
		Aplab.imgs.find('img').each(function(index, el){
			img = new Image();
			$(img).load(function(){
				if ($imgnum == (index+1)) {
					Aplab.imgs.find('img').css('border', '1px solid #999');
					Aplab.fadeInGallery();
					return false;
				}
			});
			$(img).attr('src', el.src);
		});
		
	}
	
	,fadeInGallery : function() {
		$.each([Aplab.imgs, Aplab.controls, Aplab.imgs.find('li.active')], function(index, value){
			$(this).animate({
				opacity: 1
			}, 500);
		});
	}
	
}

$(document).ready(function(){
	
	Aplab.initNavigation();
	Aplab.initGallery();
	
});

