/******************************************************************************
*
*	Pivotal ePartner 5.0
*
*	File:		globalSearch.js 
*	Purpose:	Global search javascript functions. Used with the search object.
*	Date:		January 1, 2003
*	Revision History
*	
*	Revision	Date		Authour		Description
*   P5i6.18		2005/10/25  Jonathan	Put in fixes for the search sorting error.
*										See KB 6930 for details.
*
******************************************************************************/

function srch_openGlobalSearch ( bUseNewWindow, txtInputFieldName, strSearchText, strSortField, strSortDir, strSearchName, strTableId, intStartRecordNumber )
{
	if ( bUseNewWindow )
	{
		alert( g_LDSTRING_MESSAGE_OPEN_FT_NEW_WINDOW );
	} else {
	
		if ( ( search_getSearchObject().getFullTextSourceCount() > 0 ) || ( search_getSearchObject().getQuickSearchCount() > 0 ))
		{
			var i, j=0;
			var oKeys = new Array();
			var oVals = new Array();
			
			oKeys[j] = "type";
			oVals[j++] = search_getSearchObject().getSearchType();

			oKeys[j] = "searchText";
			oVals[j++] = parent.menumain.document.getElementById("txtSearchString").value;
			
			if ( search_getSearchObject().getFullTextSourceCount() > 0 ) {	
				for (i = 0; i < search_getSearchObject().getFullTextSourceCount(); i++){
					oKeys[j] = "fullTextID";
					oVals[j++] = search_getSearchObject().getFullTextSourceByIndex( i );
				}
			} 
			
			if ( search_getSearchObject().getQuickSearchCount() > 0 ) {
				for ( i = 0; i < search_getSearchObject().getQuickSearchCount(); i++) {
					oKeys[j] = "quickSearchID";
					oVals[j++] = search_getSearchObject().getQuickSearchByIndex( i );
				}
			} 
					
			oKeys[j] = "startRecord";
			if ( intStartRecordNumber != "")
				oVals[j++] = intStartRecordNumber;
			else 
				oVals[j++] = "0";
			
			oKeys[j] = "maxRecords";
			if ( search_getPageObject().getMaxPageSize() != "" )
				oVals[j++] = search_getPageObject().getMaxPageSize();
			else 
				oVals[j++] = "10";
				
			
			oKeys[j] = "maxPages";
			if ( search_getPageObject().getMaxPages() != "")
				oVals[j++] = search_getPageObject().getMaxPages();
			else
				oVals[j++] = "5";
				
			oKeys[j] = "selectedTab";
			if ( strSearchName == "" )
				oVals[j++] = search_getSearchObject().getSelectedTab();
			else
				oVals[j++] = strSearchName;
				
			oKeys[j] = "selectedTableId";
			if ( strTableId == "" )
				oVals[j++] = search_getSearchObject().getSearchTableId();
			else
				oVals[j++] = strTableId;
			
			oKeys[j] = "sortItem"; //Original line 75
			// P5i6.18 JF 2005/10/25 - Inserted code code as per KB 6930
			if ((strSortField=="")&&(strSortDir=="")) 
				{			
					if (document.getElementById("sortbyisrank") != null && document.getElementById("sortbyisrank").value != "")
					{
						strSortField = "fullTextRank";
						strSortDir=document.getElementById("sortbyisrank").value;
						if (strSortDir=="ascending")
						{
							strSortDir="descending";
						}
						else
						{
							strSortDir="ascending";
						}
					}
					else
					{
						strSortDir="descending";
					}
			}
			
			if ( strSortField != "fullTextRank"){
				// P5i6.18 JF 2005/10/25 - Replaced original code as per KB 6930
				//if ( strSearchName == search_getSearchObject().getSelectedTab() ){ //Original line 77
				//	if (strSortField == "")
				//		oVals[j++] = search_getSearchObject().getSortItem();
				//	else
				//		oVals[j++] = strSortField;
				//}else
				//	oVals[j++] = ""; //Original line 83
				if ( strSearchName == search_getSearchObject().getSelectedTab() ){
				   if ((search_getSearchObject().getSelectedTab()=="")&& (parent.menumain.document.getElementById("txtSearchString").value!="")) 
					 {
					    oVals[j++] = "";
					    oKeys[j] = "fullTextRank";
					    oVals[j++] = strSortDir;
					 }
				    else
					{
						if (strSortField == "")
						   oVals[j++] = search_getSearchObject().getSortItem();
				   		else
						   oVals[j++] = strSortField;
				  	}
				  }else{
					if (strSearchName=="")
					{
				           oVals[j++] =search_getSearchObject().getSortItem();
					}
					else
					{
					    if (strSearchText=="") 
					    {
							oVals[j++] = "";
					    }
					    else
					    {
							oVals[j++] = "";
							oKeys[j] = "fullTextRank";
							oVals[j++] = strSortDir;
					    }
				    }
 				}
				
			} else {
				oVals[j++] = "";
				
				oKeys[j] = "fullTextRank";
				oVals[j++] = strSortDir;
			}
			
			oKeys[j] = "sortDir";
			if ( strSortField != "fullTextRank"){
				if ( strSearchName == search_getSearchObject().getSelectedTab() ){
					if ( strSortDir == "" )
						oVals[j++] = "DESC";
					else{
						if ( strSortField == search_getSearchObject().getSortItem()){
							if ( search_getSearchObject().getSortOrder() == "ASC")
								oVals[j++] = "DESC";
							else
								oVals[j++] = "ASC";
						} else 
							oVals[j++] = strSortDir;
					}
				}else{
					// P5i6.18 JF 2005/10/25 - Replaced original code as per KB 6930
					//oVals[j++] = "";//Original line 106
					if (strSearchName=="")
					{
					    oVals[j++] = search_getSearchObject().getSortOrder();
					}
					else
					{
						oVals[j++] = "";
      				}
				}
			} else {
				oVals[j++] = "";
			}

			oKeys[j] = "SRLName";
			if ( strSearchName == search_getSearchObject().getSelectedTab() )
				oVals[j++] = search_getSearchObject().getSearchResultListName();
			else
				// P5i6.18 JF 2005/10/25 - Replaced original code as per KB 6930
				//oVals[j++] = ""; //Original line 116
				if (strSearchName=="") 
				  {
				    oVals[j++] = search_getSearchObject().getSearchResultListName();
				  }
				else
					oVals[j++] = "";
	
			if ( strSearchName == search_getSearchObject().getSelectedTab() ){	
				for (i = 0; i < search_getSearchObject().getSRLFieldsCount(); i++){
					oKeys[j] = "SRLFields";
					oVals[j++] = search_getSearchObject().getSRLItemsByIndex( i );
				}
			} else {
				// P5i6.18 JF 2005/10/25 - Replaced original code as per KB 6930
				//oKeys[j] = "SRLFields"; //Original Lines 124 & 125
				//oVals[j++] = "";
				if (strSearchName=="") 
				   {
					  for (i = 0; i < search_getSearchObject().getSRLFieldsCount(); i++){
						oKeys[j] = "SRLFields";
						oVals[j++] = search_getSearchObject().getSRLItemsByIndex( i );
					  }
				   }
				   else
				   {
					oKeys[j] = "SRLFields";
					oVals[j++] = "";
				   }

			}
			window.top.hidden.location = nav_buildURL( "xmlloader.asp", oKeys, oVals );
			
			
		}
	}
	return;
}
