function submitWithCheck(category, phrase, extra) {
	q = ( (phrase == null || phrase == '') && $('#qsearch') != null ) ? $('#qsearch').val() : (phrase == null ? '' : phrase);
	if ( q == defaultQ ) { $('#qsearch').val(''); q = ''; }

	if ( category == null )  {
		$('#vg_search').attr('action', vgpath+'search.html'+location.hash).submit();
	} else {
		submitSearch(category, 1, '', '' , '', unescape(extra));
	}
	return false;
}

function submitSearch(category, page, order, direction, initial, extra) {	
	// get params
	page = (page == null) ? 1 : page;
	category = (category == null) ? 'game' : category;

	// change master tabs
	categories = new Array('game', 'news', 'preview', 'video', 'screen', 'cheat', 'feature', 'download');
	catLen = categories.length;
		
	// reset tabs to unselected
	for ( var i=0; i<catLen; i++ ) {
		if ( $('#tab_' + categories[i]).length != 0 ) {
			$('#tab_' + categories[i]).removeClass();
		}
	}
	// select tab
	if ( $('#tab_' + category).length != 0 ) {
		$('#tab_' + category).addClass('sel');
	}

	// add filters
	filters = new Array('genre', 'platform', 'preview_cat', 'video_cat', 'download_cat', 'subcat');
	filterLen = filters.length;
	params = {};

	for ( var i=0; i<filterLen; i++ )
	{
		if ($('#'+filters[i]).length != 0 && $('#'+filters[i]).val() != 0) params[filters[i]] = $('#'+filters[i]).val();
	}
		
	// adding order and direction as part of filter for simple code
	if (order != null && order != '') params['order'] = order;
	if (direction != null && direction != '') params['direction'] = direction;

	// used in comlib
	if (initial != null && initial != '') params['initial'] = initial;

	// bulk for any other special params
	urlSearch = (extra != null) ? urlSearch + extra : urlSearch;

	// show loading screen
	loading(true);

	// load search results
	sendSearchRequest( urlSearch, category, page, params );
	
	return false;
}
	
function sendSearchRequest(url, category, page, filter) {
	jQuery.extend(filter, {'category': category, 'q': q, 'page': page});
	$.ajax({
			type: 'GET',
			url: url,
			data: filter,
			complete: function() { loading(false); },
			error: function(a,b,c) {},
			success: function(msg) {
				$('#resultList').html(msg);
				setScrollAnimation('#resultList');
			} });
}
	
function loading(bool) {
	if (bool) {
		$('#fields').css('display', 'none');
		$('#loading').css('display', '');
		return;
	}
	$('#fields').css('display', '');
	$('#loading').css('display', 'none');
}
