var currentPage = 0;
var perPage = 20;
var allResults = [];
var clearPage = true;
var inProgress = false;
var sort = "date";

function loadNextPage() {
	var pageCount = Math.ceil(allResults.length / perPage);
	if (currentPage < pageCount -1)
		loadPage(currentPage + 1, false);
}

function loadPage(page, clear)
{
	if (clear)
		inProgress = false;
	
	if (inProgress)
		return;
	
	currentPage = page;
    var start = page * perPage;
    var end = start + perPage;
    if (end >= allResults.length)
        end = allResults.length;
    var count = end - start;

    if (count > 0)
    {
    	var ids = "";
        for (var i = start; i < end; i++)
        {
        	if (ids != "")
        		ids += ",";
            ids += allResults[i];
        }

        var url = "/ajax_exec/getItemDescriptions.php?width=100%&max_len=200&ids=" + ids;
		url += "&userid=" + myuserid + "&search=";
		url += $('#globsearch').val();
    	// add timestamp to prevent caching of ajax response
    	url += '&timestamp=' + new Date().getTime();
    	url += '&closeButton=true';
    	clearPage = clear;
    	inProgress = true;
        GDownloadUrl(url, setHTML);
    }
}

function printResults()
{
    var count = allResults.length;
    if (count > 50) {
    	if (!window.confirm("You currently seem to have " + count + " spots on the map, we will only print the first 50 of them. Do you want to continue?")) {
    		return;
    	}
    }

    if (count > 0)
    {
    	var ids = "";
        for (var i = 0; i < count && i < 50; i++)
        {
        	if (ids != "")
        		ids += ",";
            ids += allResults[i];
        }

        var url = "/ajax_exec/printList.php?width=100%&max_len=200&ids=" + ids;
		url += "&userid=" + myuserid + "&search=";
		url += $('#globsearch').val();
    	// add timestamp to prevent caching of ajax response
    	url += '&timestamp=' + new Date().getTime();
    	url += '&closeButton=true&print=true';

        var pop = window.open(url, 'Print window', 'width=770, height=500, resizable=no, menubar=no, scrollbars=yes, status=no, toolbar=no');
    }
}

function showLoadingImage() {
	setHTML("<div align='center' style='margin-top: 150px;'><img src='/media/ajax-loader.gif'> Loading...</div>");
}

function changeOrder(newSort, update)
{
    if (update === undefined)
    {
        update = true;
    }
    
    if (sort != newSort)
    {
        sort = newSort;
        $('#orderButtons > a').css('font-weight', 'normal');
        $('#' + newSort + 'Order').css('font-weight', 'bold');
    
	    if (update)
	    {
		    var ids = allResults.join();
		    showLoadingImage();
	        
	        var url = "/ajax_exec/orderGuideItems.php?";
		    url += "sort=" + sort;
		    // add timestamp to prevent caching of ajax response
		    url += '&timestamp=' + new Date().getTime();
		    //window.prompt('', url);
	        GDownloadUrl(url, function(data) {
	            //alert(data);
	            allResults = [];
	            allResults = eval(data);
	            loadPage(0, true);
	        }, 'ids=' + ids); // in post request because 'ids' may very well be huge
	    }
    }
}

function setHTML(data)
{
	if (allResults.length > 0) { // new results may have loaded in the meantime
		if (clearPage)
			document.getElementById('resultsentries').innerHTML = data;
		else
			document.getElementById('resultsentries').innerHTML += data;
	}
	
	inProgress = false;
}