var dbstore = [];
$(function(){
	var $advoptwrap = $('#advancedoptions-wrap');
	var $sortbtns = $('thead a', '#galleryresults');
	var sortoptions = {set: 'hot', sort: "num ASC"};

	/* Gallery Set Drop Down */

	$('#advancedoptions-btn a').toggle(
		function(){
			$(this).addClass('aoactive');
			$advoptwrap.add('.contentarea').stop(true).animate({top:0})
			return false;
		},
		function(){
			$(this).removeClass('aoactive');
			$advoptwrap.add('.contentarea').stop(true).animate({top:-80})
			return false;
		}
	);
	
	var closeSetList = function(e){
		$('#set-list').css({display:'none'});
		$(window).unbind('click', closeSetList);
		return false;
	};
		
	$('#set-dropdown a').bind('click', function(){
		$('#set-list').css({display:'block'});
		$(window).bind('click', closeSetList);
		return false;
	});
	
	$('#set-list-ul li a').bind('click', function(){
		var set = $(this).find('span').text();
		$('#set-dropdown a.set-droplink').text(set);
		closeSetList();
		for(var key in SETS){
			set = (SETS[key]==set)?key:set;
		};
		$.extend(sortoptions, {set: set});
		gReq(sortoptions);
		return false;
	});
	
	/* ============================ */
	
	
	var gReq = function(data){
		$('#galleryresults tbody').empty();
		$('<tr class="odd"><td colspan="7" style="text-align:center; padding:10px;"><img src="../images/gallery/loader.gif" width="16" height="16" /></td></tr>')
			.appendTo('#galleryresults tbody')
		;
		
		$.getJSON('xhr/figures_heroclix.php', data, function(result){
			if(!result.Error){
				$('#galleryresults tbody').empty();
				dbstore = result.figures;
				var c=0;
				for(var i=0, j=result.figures.length; i<j; i++){
					var fig = result.figures[i];
					c++;
					var rowstripe = (c%2===1)?"odd":"even";
					$('<tr class="'+rowstripe+'" title="'+i+'">'+
						'<td>'+fig.setname+'-'+fig.num+'</td>'+
						'<td>'+fig.charname+'</td>'+
						'<td>'+EXPER[fig.experience]+'</td>'+
						'<td>'+fig.points+'</td>'+
						'<td>'+RARITY[fig.rarity]+'</td>'+
						'<td>'+((fig.team)?fig.team:'none')+'</td>'+
						'<td>'+SETS[fig.setname]+'</td>'+
					    '</tr>')
						.appendTo('#galleryresults tbody')
					;
					if(c>1){c=0;};
				};
			}else{
				if(result.Error==="Blank"){
					$('#galleryresults tbody').empty();
					$('<tr class="odd"><td colspan="7" class="error">Nothing matched your search!  Please try another.</td></tr>').appendTo('#galleryresults tbody');
				}else{
					$('#galleryresults tbody').empty();
					$('<tr class="odd"><td colspan="7" class="error">An unknown error has occurred.  Please refresh the page.</td></tr>').appendTo('#galleryresults tbody');
				};
			};
		});
	};
	
	gReq(sortoptions);
	
	$sortbtns.bind('click', function(){
		// todo: use reverse $.extend to create a global settings object for gReq
		$sortbtns.removeClass('hide').parents('td').removeClass('active');
		$(this).addClass('hide').parents('td').addClass('active');
		var sortdir = ($(this).hasClass('up'))?'DESC':'ASC';
		var sortby = $(this).parent('div').prev('span').text();
		if(sortby=="#"){
			sortby = "num "+sortdir;
		}else{
			sortby = SORTOPT[sortby]+" "+sortdir;
		};
		sortoptions = $.extend(sortoptions, {sort: sortby});
		gReq(sortoptions);
		return false;
	});
	
});
