searchSite = 'www.indasoftware.com';
searchResultsPage = '/search.php';
whereToPlaceForm = 'search_form_div';
whereToPlaceResults = 'search_results_div';
formInputSize = 60;
formButtonCaption = 'Search';
notFoundMessage = 'Your search &mdash; <b>%SEARCH_TERM%</b> &mdash; did not match any documents.<br><br>\
	Suggestions:\
	<ul>\
		<li>Make sure all words are spelled correctly.</li>\
		<li>Try different keywords.</li>\
		<li>Try more general keywords.</li>\
		<li>Try fewer keywords.</li>\
	</ul>';

function getParam(paramName) {
	var params = location.search.substring(1).split('&');
	for (var i = 0; i < params.length; i++) {
		var pair = params[i].split('=');
		if (pair[0] == paramName)
			return decodeURIComponent(pair[1].replace(/\+/g, ' '));
	}
}

function htmlSpecialChars(str) {
	str = str.replace(/&/g, '&amp;');
	str = str.replace(/</g, '&lt;');
	str = str.replace(/>/g, '&gt;');
	str = str.replace(/"/g, '&quot;');
	str = str.replace(/'/g, '&#039;');
	return str;
}

var resultsCont;
var webSearch;
var searchTerm;

function searchComplete() {
	if (webSearch.results && webSearch.results.length > 0) {
		var s = '<div id="search_results">';
		for (i = 0; i < webSearch.results.length; i++)
			s += '<a href="' + webSearch.results[i].unescapedUrl + '" class="search_result_title">' + webSearch.results[i].title + '</a>\
				<div class="search_result_snippet">' + webSearch.results[i].content + '</div>\
				<div class="search_result_link">' + htmlSpecialChars(decodeURI(webSearch.results[i].unescapedUrl)) + '</div>';
		s += '</div>';

		if (webSearch.cursor.pages.length > 1) {
			s += '<div id="search_pages">';
			for (i = 0; i < webSearch.cursor.pages.length; i++)
				if (webSearch.cursor.currentPageIndex == i)
					s += '<span class="search_page_current">' + webSearch.cursor.pages[i].label + '</span>';
				else
					s += '<a href="javascript:webSearch.gotoPage(' + i + ')" class="search_page">' + webSearch.cursor.pages[i].label + '</a>';
			s += '</div>';
		}

		resultsCont.innerHTML = s;
	}
	else resultsCont.innerHTML = '<div id="search_results">' + notFoundMessage.replace('%SEARCH_TERM%', htmlSpecialChars(searchTerm)) + '</div>';
}

var googleDefined = typeof google != 'undefined' && 'setOnLoadCallback' in google;

function onLoad() {
	document.getElementById(whereToPlaceForm).innerHTML += '<form action="' + searchResultsPage + '" id="search_form">\
			<input type="text" id="search_form_input" name="s" size="' + formInputSize + '"><input type="submit" value="' + formButtonCaption + '">\
		</form>';

	if (!googleDefined || typeof whereToPlaceResults == 'undefined') return;
	searchTerm = getParam('s');
	if (!searchTerm) return;
	resultsCont = document.getElementById(whereToPlaceResults);
	if (!resultsCont) return;
	
	webSearch = new google.search.WebSearch();
	if (typeof searchSite != 'undefined' && searchSite)
		webSearch.setSiteRestriction(searchSite);
	webSearch.setResultSetSize(google.search.Search.LARGE_RESULTSET);
	webSearch.setSearchCompleteCallback(this, searchComplete);

	document.getElementById('search_form_input').value = searchTerm;
	webSearch.execute(searchTerm);
}

if (googleDefined) {
	google.setOnLoadCallback(onLoad);
	google.load('search', '1');
}
else if (window.addEventListener) window.addEventListener('load', onLoad, false);
else if (window.attachEvent) window.attachEvent('onload', onLoad);
else window.onload = onLoad;
