ARB.ui = {}

ARB.ui.magination = function () {
    
    var fetching = false;

    var fetch_more = function (browse_url, bind_event_effects) {
        if (fetching === true) {
            return false
        }

        var container_selector = '#grid';
        if($('#list').css('display') === 'block'){
            container_selector = '#list';
        }

		var start = $(container_selector).children().length,
			end = start + 4,
			url = [browse_url, start, ':', end, '/', location.search].join('');

        if(container_selector == '#list'){
            url += '?list=1';
        }

		fetching = true;

        $('#loading-more').css('display', 'block');
        $('#view-more').css('display', 'none');

		$.get(url, {}, function (data) {
		    $('#loading-more').css('display', 'none');
		    $('#view-more').css('display', 'block')
			if (data.stat !== 'ok') { return }
			for (var key in data.results) {
				var ev = $(data.results[key]);
				ev.appendTo($(container_selector)).css('display', 'none').fadeIn(200 + key * 400);
			}
			if (bind_event_effects) {
			    bind_event_effects();
			}
			if (data.final) {
				$(window).unbind('scroll');
				$('#view-more').css('display', 'none');
			}
			fetching = false;
		}, 'json');
	};

    return {
        init: function (browse_url, bind_event_effects) {
        	$(window).scroll(function () {
            	if  ($(window).scrollTop() == $(document).height() - $(window).height()){
        			fetch_more(browse_url, bind_event_effects);
        		}
        	});
        	$('#view-more').click(function () {
        	    fetch_more(browse_url, bind_event_effects);
        	});
        	
        	if( window.location.hash != '' ){
        	    window.location.hash == '#grid' ? ARB.ui.show_grid() : ARB.ui.show_list();
        	}
        	else{
        	    $('#list').show();
        	}
        }
    }

}();

ARB.ui.show_map = function(){
	$('#grid').add('.hide-when-map-visible').css('display', 'none');
	$('#map').css({
		visibility: 'visible',
		marginBottom: '14px'
	});
    $('#list').hide();
	$('#map-button').addClass('selected');
	$('#grid-button').removeClass('selected');
	$('#list-button').removeClass('selected');
    $('#view-switch-text').html('view thumbs');
}

ARB.ui.show_grid = function(){
	$('#grid').add('.hide-when-map-visible').css('display', 'block');
	$('#map').css({
		visibility: 'hidden',
		marginBottom: '-500px'
	});
    $('#list').hide();
	$('#grid-button').addClass('selected');
	$('#map-button').removeClass('selected');
	$('#list-button').removeClass('selected');
    $('#view-switch-text').html('view map');
}

ARB.ui.show_list = function(){
	$('#list').add('.hide-when-map-visible').css('display', 'block');
	$('#map').css({
		visibility: 'hidden',
		marginBottom: '-500px'
	});
    $('#grid').hide();
	$('#list-button').addClass('selected');
	$('#map-button').removeClass('selected');
	$('#grid-button').removeClass('selected');
}

ARB.ui.toggle_grid_map = function(){
    if($('#grid').css('display') === 'block'){
        ARB.ui.show_map();
    }
    else{
        ARB.ui.show_grid();
    }
}

ARB.ui.gridmap = function () {
    $('#view-switch').children().bind('click', ARB.ui.toggle_grid_map);
}

ARB.ui.listgridmap = function () {
    $('#map-button').click(ARB.ui.show_map);
    $('#grid-button').click(ARB.ui.show_grid);
    $('#list-button').click(ARB.ui.show_list);
}

