﻿function iwebCivicWebDocumentSearchBoxInitialize()
{
	var searchTextBox = document.getElementById('IWebCivicWebDocumentSearchBoxTextBox');
	var searchButton = document.getElementById('IWebCivicWebDocumentSearchBoxButton');
	if (searchTextBox && searchButton)
	{
		iwebCivicWebDocumentSearchBoxAddEventListener(searchTextBox, 'keydown', iwebCivicWebDocumentSearchBoxSearchTextBoxKeyDown, false);
		iwebCivicWebDocumentSearchBoxAddEventListener(searchButton, 'click', iwebCivicWebDocumentSearchBoxSearchButtonClick, false);
	}
}

function iwebCivicWebDocumentSearchBoxSearchTextBoxKeyDown(e)
{
	var source = e.srcElement ? e.srcElement : (e.target ? e.target : e);
	var key = e.charCode ? e.charCode : (e.keyCode ? e.keyCode : -1);
	var returnValue = true;
	if (source && key == 13)
	{
		iwebCivicWebDocumentSearchBoxPerformSearch();
		
		returnValue = iwebCivicWebDocumentSearchBoxCancelEvent(e);
	}
	
	return returnValue;
}

function iwebCivicWebDocumentSearchBoxSearchButtonClick(e)
{
	iwebCivicWebDocumentSearchBoxPerformSearch();
	
	return iwebCivicWebDocumentSearchBoxCancelEvent(e);
}

function iwebCivicWebDocumentSearchBoxPerformSearch()
{
	var searchTextBox = document.getElementById('IWebCivicWebDocumentSearchBoxTextBox');
	if (searchTextBox)
	{
		window.location.href = '/siteengine/SearchEngine.asp?Exact=' + iwebCivicWebDocumentSearchBoxGetExactParameter(searchTextBox.value) + '&All=' + iwebCivicWebDocumentSearchBoxGetAllParameter(searchTextBox.value);
	}
}

function iwebCivicWebDocumentSearchBoxGetExactParameter(searchText)
{
	var exactPhrase = ''
	if (searchText && searchText.length > 0)
	{
		var exactPhrases = searchText.match(/"\S+"/g);
		for (var index = 0; exactPhrases && index < exactPhrases.length; index++)
		{
			if (exactPhrases[index].length > 0)
			{
				exactPhrase = exactPhrases[index].replace(/\s/g, '%20').replace(/"/g, '');
				break;
			}
		}
	}
	
	return exactPhrase;
}

function iwebCivicWebDocumentSearchBoxGetAllParameter(searchText)
{
	var all = ''
	if (searchText && searchText.length > 0)
	{
		var allWords = searchText.split(/"\S+"|\s/g);
		for (var index = 0; allWords && index < allWords.length; index++)
		{
			if (allWords[index].length > 0)
			{
				all += (all.length > 0 ? '%20' : '') + allWords[index];
			}
		}
	}
	
	return all;
}

function iwebCivicWebDocumentSearchBoxAddEventListener(target, type, listener, useCapture)
{
	if (target)
	{
		if (target.addEventListener)
		{
			target.addEventListener(type, listener, useCapture);
		}
		else if (target.attachEvent)
		{
			target.attachEvent('on' + type, listener);
		}
	}
}

function iwebCivicWebDocumentSearchBoxCancelEvent(e)
{
	if (e && e.returnValue)
	{
		e.returnValue = false;
	}
	if (e && e.cancelBubble)
	{
		e.cancelBubble = true;
	}
	if (window.event && window.event.returnValue)
	{
		window.event.returnValue = false;
	}
	if (window.event && window.event.cancelBubble)
	{
		window.event.cancelBubble = true;
	}
	if (e && e.preventDefault)
	{
		e.preventDefault();
	}
	
	return false;
}

iwebCivicWebDocumentSearchBoxInitialize();