(function($) {
	
var $$,tID;
 
$$ = $.fn.fsGallery = function(options) {
	var $options = {
		loadingText:'loading...',
		delay: 300,
		fade: 200,
		raster: false,
		onLoad : function(){}
	};
	$$.options = $.extend($options,options);
	if($('#review').find('#fsImage').length < 1) {
		$('#review').prepend('<div id="fsImage"><div><table><tr><td><img src="ajax-loader.gif" class="init"></td></tr></table></div></div>');
	}
	return this.each(function() {
		$(this).addClass('fsGallery');	
		$$.preload($(this).find('li:first'));
	});
 
};
 
$$.next = function(element) {
	if (!element || element.length < 1 || element.siblings().length < 1) {
		return false;
	} else {
		clearTimeout(tID);
		element.siblings().find('a').css('display','none');
		$$.show(element.next().length > 0 ? element.next() : element.siblings(':first'));
	}
}
 
$$.prev = function(element) {
	if (!element || element.length < 1 || element.siblings().length < 1) {
		return false;
	} else {
		clearTimeout(tID);
		element.siblings().find('a').css('display','none');
		$$.show(element.prev().length > 0 ? element.prev() : element.siblings(':last'));
	}
}
 
$$.preload = function(element) {
	var anchor  = element.find('a');
	var image   = $(new Image());
	if (anchor.text().length > 0) {
		anchor.text(anchor.text().replace(/ /,'\xa0'));
	}

	element.addClass('loading');
	image.load(function() {
		element.removeClass('loading');
		if(anchor.find('img').length > 0) {
			element.css({backgroundImage:'url('+anchor.find('img').attr('src')+')',backgroundRepeat:'no-repeat',backgroundPosition:'50% 50%'});
		}
		element.addClass('loaded').hover(
			function() {
				$$.show($(this));
				return false;
			}
		).hover(
			
		);

		if ($('#fsImage td img:not(.init)').length < 1) { $$.show(element); }
		
		if (element.next().length > 0) { 
			$$.preload(element.next()); 
		}
		$(this).remove();
		
	}).attr('src',anchor.attr('href'));
};
 
$$.c = function(e) {
	return $(document.createElement(e));
};
 
$$.resize = function(image) {
	image.css({width:'650',height:'auto'});
};
 
$$.show = function(element) {
	element.siblings('.active').removeClass('active');
	element.addClass('active');
	var image = $(new Image).attr({
		src: element.find('a').attr('href'),
		alt: element.find('a').attr('title'),
		id:  element.find('a img').attr('id')
	});
	var left = $$.c('span').addClass('left').click(function() { $$.prev(element); });
	var right = $$.c('span').addClass('right').click(function() { $$.next(element); });
	var raster = $$.options.raster ? $$.c('span').addClass('raster') : false;
	$('#fsImage td').empty().append(image.css('display','block')).prepend(left).prepend(right).prepend(raster);
	
	$(window).resize(function(){ $$.resize($('#fsImage td img:not(.init)')); });
	$(function($){$$.resize(image);});
	$$.options.onLoad();
};
 
$.fn.hoverClass = function() {
	return this.hover(
		function() { $(this).addClass('hover') },
		function() { $(this).removeClass('hover') }
	);
}
 
})(jQuery);



jQuery(function($) {
	
});


$(document).ready(function() {
	$('.yearClick').click(
		function() {
			$('.yearClick').css('color','#000');
			$(this).css('color','#f00');
			$('li.bandname').remove();
			var year=$(this).attr('id');
			url='/include/Review/getMonths.php?year='+$(this).attr('id')+'&format=json';
			$.getJSON(url,function(data){
				var monthNames=['','januari','februari','maart','april','mei','juni','juli','augustus','september','oktober','november','december'];
				$('li.month').remove();
				for (var i=0; i<data.items.length; i++){
					$('ul.month').append('<li class="month"><a href="#" class="monthClick" id="'+year+'_'+data.items[i].month+'">'+monthNames[data.items[i].month]+'</a></li>');
				}
				$('.monthClick').click(
					function() {
						$('.monthClick').css('color','#000');
						$(this).css('color','#f00');
						url='/include/Review/getEvents.php?year_month='+$(this).attr('id')+'&format=json';

						$.getJSON(url,function(data){
							$('li.bandname').remove();
							for (var i=0; i<data.items.length; i++){
								var id_lastfm=data.items[i].id_lastfm;
								var id_event=data.items[i].id;
								var title=data.items[i].title;
								$('ul.bandname').append('<li class="bandname" id="band_'+id_event+'"><a href="#" style="color:#ccc;" id="band_'+id_lastfm+'" title="'+title+'" id_event="'+id_event+'" class="bandClick" >'+title+'</a></li>');
								
								var key = '3b4921cbcb72c8d22ec847619af11fb6';

								var url = 'http://api.flickr.com/services/rest/?format=json&jsoncallback=?&api_key='+key+'&method=flickr.photos.search&sort=relevance&tag_mode=any&tags=lastfm:event='+id_lastfm+',rotown:event='+id_event+'&per_page=1';

								var item=$(this);
								
								$.ajax({
									url:url,
									context: $('#band_'+id_event),
									type: "GET",
									dataType: 'json',									
									success:function(data){
										if(data.photos.photo.length){
											$(this).find('a').css('color','#000');
										}else{
											$(this).find('a').addClass('disabled');
											$(this).find('a').css('cursor','none'); 
											$(this).find('a').css('text-decoration','none');
										}
									},
									async:false
								});
							}
							$('.bandClick').click(
								function() {
									
									if($(this).hasClass('disabled')){
										return;
									}

									var event_id=$(this).attr('id_event');
									var lastfm_id=$(this).attr('id').substring(5);

									loadImages(lastfm_id,event_id);
								}
							)
						});
					}
				)				
			});
		}
	)

	$('.monthClick').click(
		function() {
			$('.monthClick').css('color','#000');
						$(this).css('color','#f00');
						url='/include/Review/getEvents.php?year_month='+$(this).attr('id')+'&format=json';

						$.getJSON(url,function(data){
							$('li.bandname').remove();
							for (var i=0; i<data.items.length; i++){
								var id_lastfm=data.items[i].id_lastfm;
								var id_event=data.items[i].id;
								var title=data.items[i].title;
								$('ul.bandname').append('<li class="bandname" id="band_'+id_event+'"><a href="#" style="color:#ccc;" id="band_'+id_lastfm+'" title="'+title+'" id_event="'+id_event+'" class="bandClick" >'+title+'</a></li>');

								var key = '3b4921cbcb72c8d22ec847619af11fb6';
								var url = 'http://api.flickr.com/services/rest/?format=json&jsoncallback=?&api_key='+key+'&method=flickr.photos.search&sort=relevance&tag_mode=any&tags=lastfm:event='+id_lastfm+',rotown:event='+id_event+'&per_page=1';
								var item=$(this);
								//alert(url);
								$.ajax({
									url:url,
									context: $('#band_'+id_event),
									type: "GET",
									dataType: 'json',									
									success:function(data){
										if(data.photos.photo.length){
											$(this).find('a').css('color','#000');
										}else{
											$(this).find('a').addClass('disabled');
											$(this).find('a').css('cursor','none'); 
											$(this).find('a').css('text-decoration','none');
										}
									},
									async:false
								});
							}
							$('.bandClick').click(
								function() {
									
									if($(this).hasClass('disabled')){
										return;
									}

									var event_id=$(this).attr('id_event');
									var lastfm_id=$(this).attr('id').substring(5);
									loadImages(lastfm_id,event_id);
								}
							)
						});
		}
	)

	$('.bandClick').click(
		function() {

			if($(this).hasClass('disabled')){
				return;
			}else{
				
			}

			var event_id=$(this).attr('id_event');
			var lastfm_id=$(this).attr('id').substring(5);
			loadImages(lastfm_id,event_id);
		}
	)
	

	$("li.bandname").each(function (i) {
		var key = '3b4921cbcb72c8d22ec847619af11fb6';
		var url = 'http://api.flickr.com/services/rest/?format=json&jsoncallback=?&api_key='+key+'&method=flickr.photos.search&sort=relevance&tag_mode=any&tags=lastfm:event='+$(this).attr('id')+',rotown:event='+$(this).attr('id_event')+'&per_page=1';
		//alert(url);
		var item=$(this);
		$.getJSON(url,function(data){
			if(data.photos.photo.length){
				item.find('a').css('color','#000');
				if(i==0){
					loadImages(item.attr('id'),item.attr('id_event'))
				}
			}else{
				item.find('a').addClass('disabled');
				item.find('a').css('cursor','none'); 
				item.find('a').css('text-decoration','none');
			}
		});
	});

	
});
 

function loadImages(lastfm_id,event_id){
	
	$('#title_wrapper img').attr('src','/images/titles/'+event_id+'.gif');

	var search = 'lastfm:event='+lastfm_id+',rotown:event='+event_id;
	var key = '3b4921cbcb72c8d22ec847619af11fb6';
	$('#fsImage img').remove();
	$('#imageList ul').remove();
	$("#imageList").flickr({     
		api_key: key,  
		type: 'search',
		tags: search,
		sort: 'relevance',
		size: 'o',
		per_page: 26,
		loadFirst: function() {
			$('#imageList ul').fsGallery({
				delay:0,
				fade:1,
				onLoad : function() {
					var c = $('.fsCaption').css('visibility','hidden');
					var t = $('#fsImage td img:not(.init)').attr('alt');
					
					$.getJSON('http://api.flickr.com/services/rest/?format=json&jsoncallback=?&api_key='
					+ key
					+ '&method=flickr.photos.getInfo'
					+ '&photo_id='+$('#fsImage td img:not(.init)').attr('id'), function(info){
						var content = info.photo.description._content.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi,"");
						var title = info.photo.title._content.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi,"");
						var url=info.photo.urls.url[0]._content;
						$("#credits").html('Photographer: <a href="'+url+'" target="_blank">'+info.photo.owner.realname+'</a>');
					});
				}
			});
		},
		loadAll: function(list){

		}
	});
}
