var currentFilterTimeout = 0;
var newFilterQuery = "";
var previousFilterQuery = "";
var onlyInStock = true;

function reloadFilterListing() {
    var q = previousFilterQuery;
    previousFilterQuery = null;
    filterListing(q);
}


function filterListing(queryString) {
    if(queryString == previousFilterQuery) return;
    previousFilterQuery = queryString;
    
	var spinner = document.getElementById("loader");
    if(spinner) spinner.style.display = "block";

    var tURL = "FilterListing.php?season=" + escape(season) + "&group=" + groupID + "&offset=" + offset + "&order=" + escape(orderBy) + "&filter=" + escape(queryString) + "&startclass=" + fromClass + "&endclass=" + toClass + "&onlyinstock=" + onlyInStock;
    //alert(tURL);
    
    jQuery.get(tURL, function(data){
		var resultElement = document.getElementById("listwrapper");        
        resultElement.innerHTML = data;
        
        // The following is necessary since script elements inserted through setting innerHTML are not normally executed.
		var d = resultElement.getElementsByTagName("script")
		var t = d.length
		for (var x=0;x<t;x++){
			var newScript = document.createElement('script');
			newScript.type = "text/javascript";
			newScript.text = d[x].text;
			resultElement.appendChild(newScript);
		}
        
        if(spinner) spinner.style.display = "none";
    });
}

function performFilterSearch() {
    currentFilterTimeout = 0;
    filterListing(newFilterQuery);
}

function delayedFilterSearch(val) {
    newFilterQuery = val;
    if(currentFilterTimeout != 0) clearTimeout(currentFilterTimeout);
    currentFilterTimeout = setTimeout("performFilterSearch()",500);
}

