/*
	This is the JavaScript file for the AJAX Suggest Tutorial

	You may use this code in your own projects as long as this 
	copyright is left	in place.  All code is provided AS-IS.
	This code is distributed in the hope that it will be useful,
 	but WITHOUT ANY WARRANTY; without even the implied warranty of
 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
	
	For the rest of the code visit http://www.DynamicAJAX.com
	
	Copyright 2006 Ryan Smith / 345 Technical / 345 Group.	
	
	Modified for OsCommeerce November 2009
*/
//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Your Browser is not compliant!\nIt's about time to upgrade don't you think?");
	}
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();
var searchReq2 = getXmlHttpRequestObject();

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest() {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById('txtSearch').value);
		
		searchReq.open("GET", 'searchSuggest.php?search=' + str, true);
		searchReq.onreadystatechange = handleSearchSuggest; 
		searchReq.send(null);
	}
	/*removed cause of alert on fast typing 
	  else {
		alert('searchReq.readyState' + searchReq.readyState)
	}*/			
}

function getXMLHttp()
{
  var xmlHttp

  try
  {
    //Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    //Internet Explorer
    try
    {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
        try
            {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
        catch(e)
            {
                alert("Your browser does not support AJAX!")
                return false;
            }
        }
    }
    return xmlHttp;
}

function MakeRequest(recipeletter)
{
  var xmlHttp = getXMLHttp();

  xmlHttp.onreadystatechange = function()
  {
    if(xmlHttp.readyState == 4){
        if(xmlHttp.status == 200){
      HandleResponse(xmlHttp.responseText);
    }
    }   
  }

  xmlHttp.open("GET", "recipeLetterCall.php?letter=" + recipeletter, true);
  xmlHttp.send(null);
}

function HandleResponse(response)
{
  document.getElementById('letter_list').innerHTML = response;
}



function searchSuggest2() {
	if (searchReq2.readyState == 4 || searchReq2.readyState == 0) {
		var str2 = escape(document.getElementById('txtSearch2').value);
		
		searchReq2.open("GET", 'searchSuggest.php?search=' + str2, true);
		searchReq2.onreadystatechange = handleSearchSuggest2; 
		searchReq2.send(null);
	}
	/*removed cause of alert on fast typing 
	  else {
		alert('searchReq.readyState' + searchReq.readyState)
	}*/			
}


//Called when the AJAX response is returned.
function handleSearchSuggest() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('search_suggest')

		ss.innerHTML = '';
		
		var str = searchReq.responseText.split("\n");
		
		for(i=0; i < str.length - 1; i++) {
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
		
			var suggest = '<div tabindex="i" onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';
			suggest += 'class="suggest_link"">' + str[i] + '</div>';
			ss.innerHTML += suggest;
		}
	}
}

function handleSearchSuggest2() {
	if (searchReq2.readyState == 4) {
		var ss2 = document.getElementById('search_suggest')

		ss2.innerHTML = '';
		
		var str2 = searchReq2.responseText.split("\n");
		
		for(i=0; i < str2.length - 1; i++) {
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
		
			var suggest2 = '<div tabindex="i" onmouseover="javascript:suggestOver(this);" ';
			suggest2 += 'onmouseout="javascript:suggestOut(this);" ';
			suggest2 += 'onclick="javascript:setSearch2(this.innerHTML);" ';
			suggest2 += 'class="suggest_link"">' + str2[i] + '</div>';
			ss2.innerHTML += suggest2;
		}
	}
}


//Mouse over function
function suggestOver(div_value) {
	div_value.className = 'suggest_link_over';
}
//Mouse out function
function suggestOut(div_value) {
	div_value.className = 'suggest_link';
}
//Click function
function setSearch(value) {
	document.getElementById('search_suggest').innerHTML = '';
	document.getElementById('txtSearch').value = stripHTML(value);
	document.getElementById('frmSearch').submit();
}
//Click function
function setSearch2(value) {
	document.getElementById('search_suggest').innerHTML = '';
	document.getElementById('txtSearch2').value = stripHTML(value);
	document.getElementById('frmSearch').submit();
}
function stripHTML(str){ 
    return str.replace(/<[^>]*>/g, "");
}


