$(function() {		
	var imgCategories = $('#tabs-gal > li > a');
	var imgSlide = $('ul.img-slide');
		
	var galleryItems = null;
	var carousel = null;
	
	var displayedCat = imgCategories.filter('.active').attr('data-cat');
	
	$('a.img-box.active').live('click', function(e) {
		e.preventDefault();
	});
	
	var loadGalleries = function() {
		var active = imgCategories.filter('.active');
		var url = active.attr('data-cat');
		galleryItems = [];
		
		$.get(url, null, function(data) {
			data = $(data);
			var galActive = 0;
			data.find('item').each(function(i) {
				var _item = $(this);
				var item = {
					url: _item.attr('url'),
					title: _item.find('title').text(),
					thumb: _item.find('thumb').text(),
					caturl: url
				};
				
				if (activeGalId == _item.attr('id')) {
					galActive = i+1;
				}
				
				galleryItems.push(item);
			});
			
			if (carousel) {
				carousel.options.start = 1;
				carousel.reset();
				carousel.size(galleryItems.length);
				if (galActive > 3 && url == displayedCat) {
					carousel.scroll(galActive-2, false);
				}
			} else {
				var start = 1;
				if (galActive > 3) {
					start = galActive-2;
				}
				imgSlide.empty().jcarousel({
					size: galleryItems.length,
					scroll: 5,
					start: start,
					animation: 600,
					easing: 'easeInOutQuint',
					itemLoadCallback: function(jc, state) {
						for(var i = jc.first; i <= jc.last; i++) {
							if (!jc.has(i)) {
								(function(i) {
									var item = galleryItems[i-1];
									var div = $('<div>').addClass('li-ds').css('opacity', 0);
									var link = $('<a>').addClass('img-box').attr('href', item.url);
									if (i == galActive && item.caturl == displayedCat) {
										link.addClass('active');
									}
									link.append($('<img>').load(function() {
										$(this).unbind('load');
										jc.add(i, div);
										div.fadeTo(200, 1);
									}).attr({alt: item.title, src: item.thumb})).append($('<span>'));
									div.append(link).append($('<p>').text(item.title));
								})(i);
							}
						}
					}
				});
				carousel = imgSlide.data('jcarousel');
//				if (galActive > 3) {
//					carousel.scroll(galActive-2, true);
//				}
			}
		}, 'xml');
	};
	
	loadGalleries();
	
	imgCategories.click(function(e) {
		e.preventDefault();
		var _this = $(this);
		if (!_this.hasClass('active')) {
			imgCategories.removeClass('active');
			_this.addClass('active');
			loadGalleries();
		}
	});
});

