var searchControl;

function addPaginationLinks(sCtl) {
	// ### creates pagination links on results page

	var cursor							= sCtl.cursor;
	var curPage							= cursor.currentPageIndex;
	var paginationDiv					= document.createElement("div");
	var linkNodePage					= "";

	paginationDiv.setAttribute("id", "paginationcontainer")
	for (var i = 0; i < cursor.pages.length; i++) {
		var page						= cursor.pages[i];

		if (curPage == i) {
			var activePageNode			= document.createElement("span");
			activePageNode.appendChild(document.createTextNode(page.label));
			paginationDiv.appendChild(activePageNode);
		} else {
			var linkPageNode			= document.createElement("a");
			linkPageNode.setAttribute("href", "javascript:searchControl.gotoPage(" + i + ");");
			linkPageNode.appendChild(document.createTextNode(page.label));
			paginationDiv.appendChild(linkPageNode);
		}
	}

	var resultDiv					= document.getElementById('searchresults');
	resultDiv.appendChild(paginationDiv);
}


function searchComplete() {
	// ### renders results (if any), by inserting elements in "searchresults" DIV

	var resultDiv						= document.getElementById('searchresults');

	if (searchControl.results && (searchControl.results.length > 0)) {
		// clear results div first, in case it's a repeat search or a pagination
		document.getElementById('searchresults').innerHTML		= '';

		// loop through results, creating results nodes
		var obj							= searchControl.results;

		for (var i = 0; i < obj.length; i++) {

			resNode						= document.createElement("div");
			resNode.setAttribute("id", ("resultItem" + i));
			resNode.setAttribute((document.all ? "className" : "class"), "resultitem");

			resTitle					= document.createElement("h2");
			resTitle.setAttribute((document.all ? "className" : "class"), "resulttitle");
			resLink						= document.createElement("a");
			resLink.setAttribute((document.all ? "className" : "class"), "resultlink");
			resLink.setAttribute("href", obj[i].unescapedUrl);
			resLink.innerHTML			= obj[i].titleNoFormatting;

			resTitle.appendChild(resLink);
			resNode.appendChild(resTitle);

			resDesc						= document.createElement("p");
			resNode.setAttribute("id", ("resultDesc" + i));
			resDesc.setAttribute((document.all ? "className" : "class"), "resultdesc");
			resDesc.innerHTML			= obj[i].content;

			resNode.appendChild(resDesc);

			resultDiv.appendChild(resNode);
		}

		// add pagination at the bottom of the results list
		addPaginationLinks(searchControl);
	} else {
		resNode							= document.createElement("div");
		resNode.setAttribute("id", "resultItem0");
		resNode.setAttribute((document.all ? "className" : "class"), "resultitem");

		resDesc							= document.createElement("p");
		resNode.setAttribute("id", "resultDesc0");
		resDesc.setAttribute((document.all ? "className" : "class"), "resultdesc");
		resDesc.innerHTML				= "We're sorry, but we could find no results for your search request.";

		resNode.appendChild(resDesc);

		resultDiv.appendChild(resNode);
	}
}


function OnLoad() {
	// Create a search control
	searchControl						= new google.search.WebSearch();
	searchControl.setSiteRestriction("004304565871623808040:805imskq6pk");
	searchControl.setResultSetSize(google.search.Search.LARGE_RESULTSET);
	searchControl.setSearchCompleteCallback(this, searchComplete, null);

	var nvArr						= window.location.search.substr(1).split("&");		// split query string from URL and ditch the leading question mark in the process
	var query						= unescape(nvArr[0].split("=")[1]);					// get value for query and unescape it

	if (query && (query.length != 0)) {													// if a query string has been submitted
		var qInp					= document.getElementById("q");						// 		find the search input field on the new page

		if (qInp) {																		// 		if it exists
			qInp.value				= query;											//			insert the query string

			searchControl.execute( query );												//			and execute the search

			// write Omniture bits
			writeOmnitureData();
		}
	}
}


function goSearch() {
	// redirects to the search page and attaches the query string to the URL for later extraction (see OnLoad(), above)
	var currURL												= window.location;
	!(currURL.protocol) ? protocol	= "http:"	: protocol	= currURL.protocol;
	!(currURL.port)		? port		= ""		: port		= ":" + currURL.port;
	var resultURL											= protocol + "//" + currURL.hostname + port + "/search.html";	// build return URL
	resultURL												+= "?q=" + escape(document.getElementById("q").value);
	document.location.href	= resultURL;

	return false;
}


function executeSearch() {
	// clear results div first, in case it's a repeat search
	document.getElementById('searchresults').innerHTML		= '';

	// get query string value
	var qStr		= document.getElementById("q").value;

	// go fetch results
	searchControl.execute( qStr );

	// write Omniture bits
	writeOmnitureData();

	return false;
}


function writeOmnitureData() {
	/* You may give each page an identifying name, server, and channel on the next lines. */
	s.pageName="Simply Business : Search Results"
	s.server=""
	s.channel=""
	s.pageType=""
	s.prop1="Simply Business"
	s.prop2=""
	s.prop3=""
	s.prop4=""
	s.prop5=""
	s.eVar25=document.getElementById("q").value;
	/* E-commerce Variables */
	s.campaign=""
	s.state=""
	s.zip=""
	s.events=""
	s.products=""
	s.purchaseID=""
	s.eVar1=""
	s.eVar2=""
	/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
	var s_code=s.t();if(s_code)document.write(s_code)//-->
}