var defaultSearchFieldText;
var infiniteScroll = true;

function initInfiniteScroll() {
	 $(window).infinitescroll({
	    url: getGamesUrl,
	    triggerAt: 150,
	    page: 1,
	    appendTo: '.wall',
	    params: 'search_phrase=' + ($('#search_phrase').val() == defaultSearchFieldText ? '' : jQuery.trim($('#search_phrase').val()))
	      + '&tag=' + tagId
	      + '&category='	+ categoryId
	 });
}

$(function() {
	// css opacity application on each new games-page
	$('.wall').bind('infinitescroll.finish', function() {
		$('div.rollover > div.rollover-background').css({opacity: 0.8});
	});
	
	// search field default text handling
	defaultSearchFieldText = $('#search_phrase').val();
	$('#search_phrase').focus(function() {
		if ($('#search_phrase').val() == defaultSearchFieldText) {
			$('#search_phrase').val('');
		}
	});
	$('#search_phrase').focusout(function() {
		if (jQuery.trim($('#search_phrase').val()) == '') {
			$('#search_phrase').val(defaultSearchFieldText);
		}
	});

	// search form submit handling
	$('#search_form').submit(function() {
		var searchPhrase = jQuery.trim($('#search_phrase').val());
		$.get(
			getGamesUrl,
			{
				page: 0,
				search_phrase: (searchPhrase == defaultSearchFieldText ? '' : searchPhrase),
				tag: tagId,
				category: categoryId
			},
			function(data) {
				// overwrite currently shown games with search results
				$('.wall').html(data);
				$('.wall').find('.sbox').colorbox();
				// reset infinite scroll
				initInfiniteScroll();
				// update the search phrase breadcrumb
				if (searchPhrase == defaultSearchFieldText || searchPhrase == '') {
					$('#current-search-phrase').hide();
				} else {
					$('#current-search-phrase > span').html(searchPhrase);
					$('#current-search-phrase').show();
				}
			}
		);
		return false;
	});
	
	// on-page-load wall content initialization
	if (infiniteScroll) {
		var indexOfHash = location.href.indexOf('#');
		var searchPhrase = '';
		if (indexOfHash > -1) {
			searchPhrase = decodeURIComponent(location.href.substring(indexOfHash + 1));
			$('#search_phrase').val(searchPhrase);
		}
		$.get(
			getGamesUrl,
			{
				tag: tagId,
				category: categoryId,
				search_phrase: searchPhrase
			},
			function(data) {
				$(data).find('.sbox').colorbox().end().appendTo(".wall");
				$('div.rollover > div.rollover-background').css({opacity: 0.8});
				initInfiniteScroll();
			}
		);
	}
	

	
	$('.more, .game-thumbnail').live('click', function() {

		elem = this;
		if(! $(this).hasClass("more")) {
			elem = $(this).parent().find("a.more");
			}
		
		if ($(elem).parent().hasClass("active")){
			less( elem );
			}else{
				more( elem );
				}
		
		return false;
		});
	 
	$(".wall").bind('infinitescroll.beforesend', function() {
		 $('.loader').show();
		});
	$(".wall").bind('infinitescroll.finish', function() {
		
		$('.loader').hide();			
				});
	$(".wall").bind('infinitescroll.maxreached', function() {
		$('.loader').hide();
		
		
	
		});
});


var last_id = null;
function more( element ){
	if( last_id != null ){
		hiddenLastId()
	} 	
	last_id = $(element).attr("rel");
	$("#more-"+last_id).addClass("visible");
	$(element).parent().addClass("active");
	$(element).html(lessText);
}
function less( element ){
	hiddenLastId()
}
function hiddenLastId(){
	$("#button-more-"+last_id).html(moreText);
	$("#button-more-"+last_id).parent().removeClass("active");
	$("#more-"+last_id).removeClass("visible");
	
}

