/*
name		: getList
purpose		: retrieves new list of items 
arguments	: strAbsolutePage, page of items to fetch
calls		: n/a
returns		: n/a
*/
function getList(strAbsolutePage) 
{	
	document.forms[m_strUIName].elements["AbsolutePage"].value = strAbsolutePage;
	document.forms[m_strUIName].method = "POST";
	document.forms[m_strUIName].submit();
}


/*
name		: getListSorted
purpose		: resets parameters for sorting before retrieving list 
arguments	: sortfield
calls		: getList, with parameter 1 indicating first page
returns		: n/a
*/
function getListSorted(strSortField) 
{
	var objSortField;
	var objSortType;

	objSortField = document.forms[m_strUIName].elements["SortField"];
	objSortType = document.forms[m_strUIName].elements["SortType"];

	objSortField.value = strSortField;
	if (objSortType.value == "") 
	{
		objSortType.value = "ASC";
	} 
	else 	
	{
		if (objSortType.value == "ASC") 
		{
			objSortType.value = "DESC";
		}
		else 
		{
			objSortType.value = "ASC";
		}
	}
	getList(1);
}


/*
name		: validateSearchParams
purpose		: validates parameters for general search functionality
arguments	: n/a
calls		: returnWrongSearchMessage
returns		: true or false (calls alerts)
*/
function validateSearchParams()
{	
	var strSearchDataType;
	var strSearchType;
	var strSearchValue;
	var blnResult;
	var strListString, strListLongString, strListNumber, strListDateTime, strListBoolean;
	var strIsEqualTo, strIsContaining, strIsLargerThen, strIsSmallerThen;
	
	strSearchDataType = document.forms[m_strUIName].elements["selSearchField"].options(document.forms(m_strUIName).selSearchField.selectedIndex).className;
	strSearchType = document.forms[m_strUIName].elements["selSearchType"].value;
	strSearchValue = document.forms[m_strUIName].elements["txtSearchValue"].value;
	blnResult = true;
	
	strListString = "character field";
	strListLongString = "long text field";
	strListNumber = "numeric field";
	strListDateTime = "date or time field";
	strListBoolean = "true or false field";
	
	strIsEqualTo = "is equal to";
	strIsContaining = "is containing";
	strIsLargerThen = "is larger then";
	strIsSmallerThen = "is smaller then";
		
	switch (strSearchDataType) 
	{
		case "ListString":
			switch (strSearchType) 
			{
				case "IsLargerThen":
					blnResult = false;
					returnWrongSearchMessage(strListString , strIsLargerThen);
					break;
				case "IsSmallerThen":
					blnResult = false;
					returnWrongSearchMessage(strListString , strIsSmallerThen);
					break;
			}
			break;
		case "ListLongString":
			switch (strSearchType) 
			{
				case "IsLargerThen":
					blnResult = false;
					returnWrongSearchMessage(strListLongString , strIsLargerThen);
					break;
				case "IsSmallerThen":
					blnResult = false;
					returnWrongSearchMessage(strListLongString , strIsSmallerThen);
					break;
			}
			break;
		case "ListNumber":
			if (checkNumber(document.forms(m_strUIName).txtSearchValue, false)==false)
			{
				return false;
				break;
			}
			switch (strSearchType) 
			{
				case "IsContaining":
					blnResult = false;
					returnWrongSearchMessage(strListNumber , strIsContaining);
					break;
			}
			break;
		case "ListDateTime":
			if (checkDateString(document.forms(m_strUIName).txtSearchValue, false)==false)
			{
				return false;
				break;
			}			
			switch (strSearchType) 
			{
				case "IsContaining":
					blnResult = false;
					returnWrongSearchMessage(strListDateTime , strIsContaining);
					break;
			}
			break;
		case "ListBoolean":
			switch (strSearchType) 
			{
				case "IsContaining":
					blnResult = false;
					returnWrongSearchMessage(strListBoolean , strIsContaining);
					break;
				case "IsLargerThen":
					blnResult = false;
					returnWrongSearchMessage(strListBoolean , strIsLargerThen);
					break;
				case "IsSmallerThen":
					blnResult = false;
					returnWrongSearchMessage(strListBoolean , strIsSmallerThen);
					break;
			}
			break;			
	}
	return blnResult;
}


/*
name		: returnWrongSearchMessage
purpose		: returns warning message in case of wrong parameters
arguments	: strSearchDataType, data type of element searched
			  strSearchType, type of search to perform
calls		: n/a
returns		: true or false (calls alerts)
*/
function returnWrongSearchMessage(strSearchDataType, strSearchType)
{
	alert("Sorry, you cannot search using " + "\n" + 
		"a search type of '" + strSearchType + "'" + "\n" +
		"on data within a " + strSearchDataType + "!");		
}
