var pageSize = 50;
var columnSort = 'Agency';
var columnDirection = 'asc'; //asc or desc
var rowCount = 0;
var currentPage = 1;
var maxDropdown = 400;
var noResultMessage = "Your search did not generate any results in the publicly available records.";

var stateColumnArray = [
	['stateAgency', 'Agency'],
	['stateBudgetUnit', 'Budget Unit'],
	['stateFund', 'Fund'],
	['stateCategory', 'Category'],
	['stateSubCategory', 'Sub-Category'],
	['stateExpense', 'Expense'],
	['stateMonthValue', 'Date'],
	['stateAmount', 'Amount']
];

var salaryColumnArray = [
	['LOCATION', 'Location'],
	['DEPARTMENT', 'Department'],
	['EMPLOYEENAME', 'Employee Name'],
	['TITLE', 'Title'],
	['PAYPERIOD', 'Pay Period'],
	['PAYRATE', 'Pay Rate'],
	['DATARECEIVEDON', 'Data Received On']
];

function urlencode(str)
{
	if(str != null)
		return encodeURIComponent(str);
	else
		return "";
}

function urldecode(utftext)
{
	if(utftext != null && utftext.length > 0)
		return decodeURIComponent(utftext.replace(/\+/g,  " "));
	else
		return "";
}

function LoadDropDownListWithDefault(field, data, key, value, setvalue, defaultvalue)
{
        $(field + ' >option').remove();
	var rowCount = ElementsThatAreNotNull(data , value, key);
	
	$(field).append($('<option></option').val('').html(defaultvalue));
	
    	if (rowCount > 0 && rowCount <= maxDropdown)
	{
		for (var i = 0; i < data.length; i++)
		{
			var obj = data[i];
			if(obj[value] != null && obj[key] != null)
				$(field).append($('<option></option').val(obj[value]).html(obj[key]));
		}
		
		$(field).attr("disabled", false);
        }
        else
	{
		$(field).attr("disabled", true);
        }
	
	if(setvalue != null && setvalue.length > 0)
		$(field).val(setvalue);
}

function LoadDropDownList(field, data, key, value, setvalue)
{
	LoadDropDownListWithDefault(field, data, key, value, setvalue, "All");
}

function format(str)
{
	for (i = 1; i < arguments.length; i++)
		str = str.replace("{" + (i - 1) + "}", arguments[i]);
	
	return str;
}

function GetObject(data)
{
	if(data == null || data.length <= 4)
		return null;
	else
	{
		data = data.substring(data.indexOf("["),data.indexOf("]")+1);
		return $.evalJSON(data);
	}
}

function ElementsThatAreNotNull(data, value, key)
{
	if(data==null)
		return 0;
	else
	{
		var count = 0;
		for (var i = 0; i < data.length; i++)
		{
                	var obj = data[i];
			if(obj[value] != null && obj[key])
				count++;
		}
		
		return count;
	}
}

function ClearGrid()
{
	rowCount = 0;
	currentPage = 1;
	
	$('#DataSummary').html('');
	$('#DataGrid').html('');
}
