/* Hook for causing a search submission upon the Enter key being pressed
 */
function submitOnEnter(field, event, resultsFormat, queryString, queryType, searchPeriod)
	{
	var character;
	if (window.event)
		character = window.event.keyCode;
	else if (event) 
		character = event.which;
	else 
		return true;

	if (character != 13)
		return true;
	else
		{
		submitSearch(resultsFormat, queryString, queryType, searchPeriod);
		return false;
		}
	}

/* Calculate the URL for a search
 * IMPORTANT: If you change the algorithm in this method, please change the corresponding function in the Smarty Functions
 */
function calculateSearchURL(resultsFormat, queryString, queryType, searchPeriod, sortBy, pageNumber, queryScope)
{
	var searchURL = '';
	
	//Mandatory
	if ((queryScope != 'dt') && (!resultsFormat || !queryString || (resultsFormat.length == 0) || (queryString.length == 0)))
		alert('Please provide some search criteria.');
	else
	{
		var isRSS = false;
		if (resultsFormat == 'rss')
		{
			isRSS = true;
		}
		
		//Remove the illegal \ character from any user input as it fundamentally breaks submitted URLs
		queryString = queryString.replace(/\\/g, " ");
		
		//Remove the illegal / character from any user input as it also breaks submitted URLs
		queryString = queryString.replace(/\//g, " ");

		queryString   = 'qs/' + escape(queryString) + '/';  //This must ALWAYS be first in the list of search parameters
		resultsFormat = 'rf/' + escape(resultsFormat) + '/';
		
		//Optional
		queryType    ? queryType    = 'qt/' + escape(queryType) + '/'    : queryType    = '';
		searchPeriod ? searchPeriod = 'qp/' + escape(searchPeriod) + '/' : searchPeriod = '';
		sortBy       ? sortBy       = 'qb/' + escape(sortBy) + '/'       : sortBy       = '';
		pageNumber   ? pageNumber   = 'qn/' + escape(pageNumber) + '/'   : pageNumber   = '';
		queryScope   ? queryScope   = 'qc/' + escape(queryScope) + '/'   : queryScope   = '';
		
		searchURL = courierSiteURL + 'search/'+queryString+resultsFormat+queryType+searchPeriod+sortBy+pageNumber+queryScope;
		if (isRSS)
			searchURL += 'rss.xml';
	}
	return searchURL;
}

/* Submit a search and display the results page
 */
function submitSearch(resultsFormat, queryString, queryType, searchPeriod, sortBy, pageNumber, queryScope)
{
	var searchURL = calculateSearchURL(resultsFormat, queryString, queryType, searchPeriod, sortBy, pageNumber, queryScope);
	
	if (searchURL != '')
	{
		// Open in new window/tab if the results format is rss
		if (resultsFormat == 'rss')
			window.open(searchURL);
		else
		    document.location.href = searchURL;
	}
}
