if (!sbweb.component.search) sbweb.component.search = function() {

	var SC_RESULTS_MAP = {"0 Results":0,"1-5 Results":5,"6-10 Results":10,"11-25 Results":25};

	return {
		
		verifyString : function(pSearchTerm) {
		    var htmlRegEx = new RegExp('[\w*|\W*]*<[[\w*|\W*]*|/[\w*|\W*]]>[\w*|\W*]*');
		    if (htmlRegEx.exec(pSearchTerm) || (pSearchTerm == null) || (pSearchTerm.length == 0) || (pSearchTerm.length > 100) || (pSearchTerm.indexOf(">") >= 0) || (pSearchTerm.indexOf(";") >= 0)) {
				alert("Please enter a valid search term and try again.");
				return(false);
			}
			else {
				return(true);
			}
		},
		
		submitSearchText : function(pEvent,pSearchTerm,pSubmitId) {
			
			if ((sbweb.util.form.filterKeypress(pEvent) == "enter")) {
				document.getElementById(pSubmitId).click();
				return(false);
			}
			else if ((sbweb.util.form.filterKeypress(pEvent) == "other")) {
				return(true);
			}
			else {
				return(false);
			}
		},
		
		submitSearchImage : function(pSearchTermId) {

			var searchTerm = document.getElementById(pSearchTermId).value;
			searchTerm = sbweb.util.form.trimString(searchTerm);
			document.getElementById(pSearchTermId).value = searchTerm;
			if (this.verifyString(document.getElementById(pSearchTermId).value)) {
				return(true);
			}
			else {
				return(false);
			}
		},
		
		setSCParameters : function(pSearchTerm,pResultCount) {

			// Internal search term
			try {
				s.eVar31 = pSearchTerm.toLowerCase();
				s.prop31 = s.eVar31;
			} 
			catch (error) {
				s.eVar31 = "Error";
				s.prop31 = s.eVar31;
			}
			
			// Internal search count
			for (var resultKey in SC_RESULTS_MAP) {
				if (pResultCount <= SC_RESULTS_MAP[resultKey]) {
					try {
						s.prop32 = resultKey;
					} 
					catch (error) {
						s.prop32 = "Error";
					}
					break;
				}
				else {
					s.prop32 = "More than 25 results";
				}
			}
		},
		
		sendSCLink : function(pLinkPosition,pLinkElement) {
			
			try {
				var variableMap = {"prop33":pLinkPosition,"eVar33":pLinkPosition};
				var eventList = new Array();
				var linkName = "searchLink";
				var linkType = "o";
				var searchLink = new CustomLink(variableMap,eventList,linkName,linkType);
			
				sbweb.util.log.debug("Site Catalyst => Custom Link: " + sbweb.util.log.dumpObject(searchLink));
				sendCustomLink(searchLink,pLinkElement);
			}
			catch(pError) {}
			
		}
		
	};
	
}();