function SimpleAjaxSearch(_resultsId, _searchFrmId, _ajaxPage) {

	// ********************
	// LOCAL VARIABLES
	var t = this;
	var __webRoot = WEBROOT;
	var __results = document.getElementById(_resultsId);
	var __termField = document.getElementById(_searchFrmId);
	var __initValue = __termField.value;
	var __ajaxPage = _ajaxPage;
	var iex = document.all;
	var __initValue = (__termField.value) ? __termField.value : "";

	// ***************************************
	// PUBLIC FUNCTIONS	
	t.doRealSearch = function() {
		window.location.href = __webRoot+"ajax/"+__termField.value;
	}
	
	__termField.onfocus = function() {
		if(__termField.value == __initValue) __termField.value = "";
	}
	__termField.onblur = function() {
		if(__termField.value == "") __termField.value = __initValue;
		//__results.innerHTML = "";
	}

	// ***************************************
	// PRIVATE FUNCTIONS
	
	__termField.onkeyup = function(event) {
		var evt = (iex) ? window.event : event;
		if(evt.keyCode == '13') { onEnter(); } // enter key
		else doAjaxBlogSearch();
	}
	
	function doAjaxBlogSearch() {
		var term = __termField.value;
		if(term != "" && term != __initValue) {
			// make ajax call
			var stg = "keyword="+term
			var blogReq = ajaxCall(__ajaxPage, stg);
			blogReq.callback = function(_resp) { onBlogSearchResponse(_resp); };
		}
	}
	
	function onBlogSearchResponse(_resp) {
		var output = "";
		if(_resp) {
			output += _resp;
		}
		__results.innerHTML = _resp;
	}
	
	function onEnter() {
		if(__termField.value.length > -1 && __termField.value != "" && __termField.value != __initValue) {
			//t.doRealSearch();
		}
	}
}

function search(_displayId, _searchFrmId) {

	// ********************
	// LOCAL VARIABLES
	var t = this;
	var __container = document.getElementById(_displayId);
	var __frm = document.getElementById(_searchFrmId);
	var __typeName;
	var __overClass = "over";
	var __outClass = "";
	var __selectedIndex;
	var __selectableDivs; // array of div's that can be selectable
	var __slugAry;
	var iex = document.all;	
	var __initValue = (__frm.search.value) ? __frm.search.value : "";

	// ***************************************
	// PUBLIC FUNCTIONS	
	t.doSearch = function(_frmName) {		
		var term = __frm.search.value;
		
		// get type slug
		var typeId = __frm.searchType.value;
		switch(typeId) {
			case "1" : var typeName = "online-coupons/"; break;
			case "2" : var typeName = "printable-coupons/"; break;
			case "3" : var typeName = "grocery-coupons/"; break;
			default : var typeName = "all-coupons/"; break;
		}
		
		// redirect to search page
		if(term != "" && term != __initValue) {
			window.location.href = WEBROOT+typeName+"search/" + term + "/";
		}
		return false;
	}
	
	t.onEnter = function() {
		if(__selectedIndex != null && __selectedIndex >= 0 && __selectedIndex < __selectableDivs.length) {
			__selectableDivs[__selectedIndex].onmousedown();
			return false;
		}else return t.doSearch();
	}
	
	// keyup function
	__frm.search.onkeyup = function(event) {
		var evt = (iex) ? window.event : event;
		if(evt.keyCode == '13') { onEnter(); } // enter
		else if(evt.keyCode == '38') { onUp(); } // up
		else if(evt.keyCode == '40') { onDown(); } // down
		else if(this.value.length > 1) makeAjaxRequest(this.value);
		else __container.innerHTML = "";
	}
	
	__frm.search.onfocus = function() {
		if(__frm.search.value == __initValue) __frm.search.value = "";
	}
	__frm.search.onblur = function() {
		if(__frm.search.value == "") __frm.search.value = __initValue;
		__container.innerHTML = "";
	}

	// ***************************************
	// PRIVATE FUNCTIONS
	function setLinks() {
		var allDivs = __container.getElementsByTagName("LI");
		__selectableDivs = new Array();
		__selectedIndex = null;
		var len = allDivs.length;
		for(var i = 0;i < len;i++) {
			var thisDiv = allDivs[i];
			if(thisDiv.className != "header" && thisDiv.className != "header top") {
				thisDiv.onmouseover = function() { 
					this.className = __overClass;
				};
				thisDiv.onmouseout = function() { 
					this.className = __outClass;				
				};
				thisDiv.onmousedown = function() {
					window.location.href = this.title;
				};
				__selectableDivs.push(thisDiv);
			}
		}
	}
	
	function makeAjaxRequest(_term) {
		var stg = "term="+_term+"&typeId="+__frm.searchType.value;
		var req = ajaxCall('ajax.quickSearch.php', stg);
		req.callback = function(_resp) { onUpdatedData(_resp); };
	}
	
	function onUpdatedData(_resp) {
		var respAry = _resp.split("|||");
		// output to screen
		__container.innerHTML = respAry[0];
		
		setLinks();
	}
	
	function onDown() {
		if(__selectedIndex == null || __selectedIndex < __selectableDivs.length-1) {
			if(__selectedIndex == null) __selectedIndex = -1;
			else __selectableDivs[__selectedIndex].onmouseout();
			__selectedIndex++;
			__selectableDivs[__selectedIndex].onmouseover();
		}
	}
	
	function onUp() {
		if(__selectedIndex >= 0 && __selectedIndex != null) {
			__selectableDivs[__selectedIndex].onmouseout();
			__selectedIndex--;
			if(__selectedIndex >= 0) __selectableDivs[__selectedIndex].onmouseover();
		}
		if(__selectedIndex < 0) __selectedIndex = null;
	}
}