var filters = {'size':'all', 'diff':'all', 'gt': 'all', 'tag':'all'};
var numcol = 3;

function maps_resize(num) {
	num = ( num == 'undefined' ? numcol : num );
	var w = Math.round( jQuery('#allimages').css('width').replace('px','')/num )-10;
	var h = Math.round( w * 3 / 4 );
	jQuery('div.mapimg img').css('width', w+'px').css('height', h+'px');
	jQuery('div.mapimg').css('width', w+2+'px').css('height', h+30+'px');
}

function maps_more() {
	if( numcol == 10 ) {
		return;
	}
	numcol++;
	maps_resize(numcol);
}

function maps_less() {
	if( numcol == 1 ) {
		return;
	}
	numcol--;
	maps_resize(numcol);
}

function maps_init() {
	maps_resize(3);
	jQuery('.maps_select').val('all');
	maps_counter();
	jQuery('#more').click(function(){ maps_more(); });
	jQuery('#less').click(function(){ maps_less(); });
	jQuery('div.mapimg').each(function(i,e){
		var classes = jQuery(e).attr('class')
			.replace('mapimg','')
			.replace('tag_', '. Tags: ')
			.replace(/tag_/g, ', ')
			.replace('size_', '. Size: ')
			.replace(/size_/g, ', ')
			.replace('diff_', '. Complexity: ')
			.replace(/diff_/g, ', ')
			.replace('gt_', '. Games: ')
			.replace(/gt_/g, ', ');
		jQuery(e).attr('title', classes);
		jQuery(e).find('img').attr('title', '');
	});
}

jQuery('.maps_select').change(function(){
	maps_filter();
});

function maps_filter() {
	// update filter object
	jQuery('.maps_select').each(function(i,e){
	    var filter=jQuery(this).attr('id').replace('maps_','');
	    var value=jQuery(this).val();
		filters[filter] = value;
	});
	// update display
	jQuery('div.mapimg').each(function(i,e){
		var displays = {'size':false, 'diff':false, 'gt':false, 'tag':false};
		for(var i in filters){
			// i: size, diff, gt, tag
			// filters[i]
			if ( filters[i] == 'all' ) {
				displays[i] = true;
			} else if( jQuery(this).hasClass( i+'_'+filters[i] ) ) {
				displays[i] = true;
			}			
		}
		var display = ( displays.size && displays.diff && displays.gt && displays.tag ) ? 'block' : 'none' ;
		jQuery(this).css('display', display);
	});
	maps_counter();
}



function maps_counter() {
	var count = jQuery('div.mapimg img:visible').length;
	jQuery('#counter').text(count);
}

maps_init();
