google.load("search", "1");
function initSearch() {
	this.query;
	this.numResults;
	this.searchResults = document.getElementById('searchResults');;
	this.resultsHolder;
	this.searchForm = document.getElementById('searchForm');
	this.searchInput = document.getElementById('search');
	searchInput.setAttribute('autocomplete', 'off');
	
	// Create a new web search object
	var siteSearch = new GwebSearch();
	siteSearch.setResultSetSize(GSearch.LARGE_RESULTSET);
	siteSearch.setLinkTarget(GSearch.LINK_TARGET_SELF);
	siteSearch.setNoHtmlGeneration();
	siteSearch.setSearchCompleteCallback(this, displayResults);
	siteSearch.setSiteRestriction("www.digicraftproductions.com");
	
	searchForm.onsubmit = function() {
		var startValue = searchInput.defaultValue;
		
		query = searchInput.value;
		if(query != '' && query != startValue) {
			searchInput.value = startValue;
			searchInput.blur();
			doGSearch(query);
		}
		return false;
	}
	
	function doGSearch(value) {
		siteSearch.execute(value);
	}
	
	function displayResults() {
		searchResults.style.display = "block";
		
		searchResults.innerHTML = "";
		
		numResults = siteSearch.results.length;
		
		resultsHolder = document.createElement('div');
		searchResults.appendChild(resultsHolder);
		
		
		var searchClose = document.createElement('a');
		searchClose.setAttribute('id', 'searchResultsClose');
		searchClose.setAttribute('href', '#');
		searchClose.appendChild(document.createTextNode('close x'));
		searchClose.onclick = closeResults;
		resultsHolder.appendChild(searchClose);
		
		
		var newPara = document.createElement('p');
		newPara.className = 'searchResultsMsg';
		newPara.appendChild(document.createTextNode("Your search for \""+ query + "\" returned " + numResults + " results."));
		resultsHolder.appendChild(newPara);
		
		if(numResults > 0) {
			for(var i = 0; i < numResults; i++) {
				var curResult = siteSearch.results[i];
				
				var title = curResult.titleNoFormatting;
				var url = curResult.url;
				var content = curResult.content.replace(/(<([^>]+)>)/ig,"");
				
				element = Builder.node('div',{className:'gs-result'},[
					Builder.node('h4',{className:'gs-result-title'},[
						Builder.node('a', {href:url}, url)
					]),
					Builder.node('p', {className:'gs-snippet'}, content),
					Builder.node('p', {className:'gs-url'}, title)
				 ]);
				
				resultsHolder.appendChild(element);
			}
		}
		var brandingDiv = document.createElement('div');
		brandingDiv.setAttribute('id', 'googleBranding');
		resultsHolder.appendChild(brandingDiv);
		GSearch.getBranding(document.getElementById("googleBranding"), GSearch.HORIZONTAL_BRANDING);
		
		new Effect.Highlight(newPara);
		$$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'hidden' });
	}
	
	function closeResults() {
		siteSearch.clearResults();
		new Effect.Fade(searchResults, {duration:0.5});
		$$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'visible' });
		return false;
	}
}
google.setOnLoadCallback(initSearch);