var xmlhttp;
var id;

function GetHint(str, passedID, e)
{
	id = passedID;
	var unicode=e.keyCode? e.keyCode : e.charCode;

	if(unicode == 38 || unicode == 40)
	{		
		// key pressed was either up or down arrow
		SetSelectedDiv(GetSeletedDiv(), unicode);
	}
	else if(unicode == 13)
	{
		// key pressed was enter
		//e.returnValue=false;
	    //e.cancel = true;		
		SubmitSearch();
		RemoveSearchBox();
	}
	else if(unicode == 27)
	{
		document.getElementById("searchPopup").className = "searchPopupDisabled";
		document.getElementById("searchPopup").innerHTML="";
	}
	else
	{	
		if (str.length==0)
		{
			document.getElementById("searchPopup").innerHTML="";
			document.getElementById("searchPopup").className = "searchPopupDisabled";
			return;
		}
		xmlhttp=GetXmlHttpObject();
		if (xmlhttp==null)
		{
			alert ("Your browser does not support XMLHTTP!");
			return;
		}
		
		var term = str;
		var action='getProductSearchHint';
		var passData = 'action='+escape(action)+'&term='+escape(term);		
		var url="getSearchHint.php";
		//url=url+"?q="+str;
		//url=url+"&sid="+Math.random();
		xmlhttp.onreadystatechange=stateChanged;
		xmlhttp.open("POST", "inc/getSearchHint.php", true);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlhttp.send(passData);
	}
}

function GetUsernameHint(str, passedID, e)
{
	id = passedID;
	var unicode=e.keyCode? e.keyCode : e.charCode;
	
	if(unicode == 38 || unicode == 40)
	{		
		// key pressed was either up or down arrow
		SetSelectedDivUsername(GetSeletedDivUsername(), unicode);
	}
	else if(unicode == 13)
	{
		// key pressed was enter
		//e.returnValue=false;
	    //e.cancel = true;		
		SubmitSearchUsername();
		RemoveSearchBox();
	}
	else if(unicode == 27)
	{
		document.getElementById("searchUsernamePopup").className = "searchUsernamePopupDisabled";
		document.getElementById("searchUsernamePopup").innerHTML="";
	}
	else
	{	
		if (str.length==0)
		{
			document.getElementById("searchUsernamePopup").innerHTML="";
			document.getElementById("searchUsernamePopup").className = "searchUsernamePopupDisabled";
			return;
		}
		xmlhttp=GetXmlHttpObject();
		if (xmlhttp==null)
		{
			alert ("Your browser does not support XMLHTTP!");
			return;
		}
		
		var term = str;
		var action='getUsernameSearchHint';
		var passData = 'action='+escape(action)+'&term='+escape(term);		
		var url="getSearchHint.php";
		//url=url+"?q="+str;
		//url=url+"&sid="+Math.random();
		xmlhttp.onreadystatechange=stateChangedUsername;
		xmlhttp.open("POST", "inc/getSearchHint.php", true);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlhttp.send(passData);
	}
}

function stateChanged()
{
if (xmlhttp.readyState==4)
  {
  	document.getElementById("searchPopup").className = "searchPopupEnabled";
	document.getElementById("searchPopup").innerHTML=xmlhttp.responseText;
  }
}

function stateChangedUsername()
{
if (xmlhttp.readyState==4)
  {
  	document.getElementById("searchUsernamePopup").className = "searchUsernamePopupEnabled";
  	document.getElementById("searchUsernamePopup").style.left = document.getElementById("searchBoxAndLabel").style.left
	document.getElementById("searchUsernamePopup").innerHTML=xmlhttp.responseText;
  }
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}

function SetFormText(arg)
{
	
}

function SetSelectedDiv(divSelected, unicode)
{
  var nodes = document.getElementById("searchPopup").childNodes;
  var i;
  
	if(divSelected == -1 && nodes.length > 0)
	{
		nodes[0].className = 'searchHintSelected';
	}
	else
	{
		nodes[divSelected].className = 'searchHint';
		if(unicode == 38)
		{
			if(divSelected != 0)
			{
				nodes[divSelected - 1].className = 'searchHintSelected';
			}
			else
			{
				nodes[divSelected].className = 'searchHintSelected';
			}
		}
		else
		{
			if(divSelected != (nodes.length - 1))
			{
				nodes[divSelected + 1].className = 'searchHintSelected';
			}
			else
			{
				nodes[divSelected].className = 'searchHintSelected';
			}
		}
	}
}

function SetSelectedDivUsername(divSelected, unicode)
{
  var nodes = document.getElementById("searchUsernamePopup").childNodes;
  var i;
  
	if(divSelected == -1 && nodes.length > 0)
	{
		nodes[0].className = 'searchUsernameHintSelected';
	}
	else
	{
		nodes[divSelected].className = 'searchUsernameHint';
		if(unicode == 38)
		{
			if(divSelected != 0)
			{
				nodes[divSelected - 1].className = 'searchUsernameHintSelected';
			}
			else
			{
				nodes[divSelected].className = 'searchUsernameHintSelected';
			}
		}
		else
		{
			if(divSelected != (nodes.length - 1))
			{
				nodes[divSelected + 1].className = 'searchUsernameHintSelected';
			}
			else
			{
				nodes[divSelected].className = 'searchUsernameHintSelected';
			}
		}
	}
}

function GetSeletedDiv()
{
  var nodes = document.getElementById('searchPopup').childNodes;
  var i;
  
  var divSelected = -1;  
  
	for(i = 0;i < nodes.length;i++)
	{
		if(nodes[i].className == 'searchHintSelected')
		{
			divSelected = i;
		}
	}
	
	return divSelected;
}

function GetSeletedDivUsername()
{
  var nodes = document.getElementById('searchUsernamePopup').childNodes;
  var i;
  
  var divSelected = -1;  
  
	for(i = 0;i < nodes.length;i++)
	{
		if(nodes[i].className == 'searchUsernameHintSelected')
		{
			divSelected = i;
		}
	}
	
	return divSelected;
}

function SetTextboxText(selectedDiv)
{
	document.getElementById("searchBox").value = document.getElementsByName("searchPopup").childNodes[selectedDiv].innerHTML;
	document.getElementById("searchPopup").innerHTML="";
	document.getElementById("searchPopup").className = "searchPopupDisabled";
}

function SetUsernameTextboxText(selectedDiv)
{
	document.getElementById("searchUsernameBox").value = document.getElementsByName("searchUsernamePopup").childNodes[selectedDiv].innerHTML;
	document.getElementById("searchUsernamePopup").innerHTML="";
	document.getElementById("searchUsernamePopup").className = "searchUsernamePopupDisabled";
}

function RemoveSearchBox()
{
	document.getElementById("searchPopup").innerHTML = '';	
	document.getElementById("searchPopup").className = "searchPopupDisabled";
	document.getElementById("searchBox").value = '';
}

function RemoveSearchUsernameBox()
{
	document.getElementById("searchUsernamePopup").innerHTML = '';	
	document.getElementById("searchUsernamePopup").className = "searchUsernamePopupDisabled";
	document.getElementById("searchUsernameBox").value = '';
}

function SubmitSearch()
{
	var productID;
	//alert('getselecteddiv: ' + GetSeletedDiv());
	if(GetSeletedDiv() != -1)
	{
		var nodes = document.getElementById("searchPopup").childNodes;
		//alert(nodes[GetSeletedDiv()].innerHTML);
		//alert(nodes[GetSeletedDiv()].innerHTML.substring(42,(nodes[GetSeletedDiv()].innerHTML.length - 4)));;
		DisplayProductDescription(nodes[GetSeletedDiv()].innerHTML.substring(42,(nodes[GetSeletedDiv()].innerHTML.length - 4)));
	}
	else
	{
		var action='populateProductsFromSearch';
		var searchTerm = document.getElementById('searchBox').value;
		var passData = 'action='+escape(action)+'&productID='+escape(searchTerm);
		var AJAX = null;
		
		document.getElementById('productDisplay').innerHTML = '<div id="mainLoaderImage"><img src="images/ajax-loader-main.gif"></div>';
		
		if (window.XMLHttpRequest) {
		   AJAX=new XMLHttpRequest();
		} else {
		   AJAX=new ActiveXObject("Microsoft.XMLHTTP");
		}
		if (AJAX==null) {
		   alert("Your browser doesn't support AJAX.");                                        
		   return false
		} else {
		   AJAX.open("POST", "inc/functions.php", true);
		   AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		   AJAX.onreadystatechange = function() {                      
		      if (AJAX.readyState==4 || AJAX.readyState=="complete") {
			      document.getElementById('productDisplay').innerHTML = AJAX.responseText;
			      RemoveSearchBox();	      
		      }                               
		   }                                  
		   AJAX.send(passData);	
		}
	}
}

function SubmitSearchUsername()
{
	//alert('getselecteddiv: ' + GetSeletedDiv());
	if(GetSeletedDivUsername() != -1)
	{
		var nodes = document.getElementById("searchUsernamePopup").childNodes;
		//alert(nodes[GetSeletedDivUsername()].innerHTML);
		//alert(nodes[GetSeletedDivUsername()].innerHTML.substring(50,(nodes[GetSeletedDivUsername()].innerHTML.length - 4)));;
		
		DisplayUserOrders(nodes[GetSeletedDivUsername()].innerHTML.substring(50,(nodes[GetSeletedDivUsername()].innerHTML.length - 4)));
	}
	else
	{
		alert('Function not implemented yet! (javascript: SubmitSearchUsername)');
	}
}

function DisplayUserOrders(usernameAndOrderID)
{
	var action='populateOrdersFromSearch';
	
	var usernameOrderIDArray = usernameAndOrderID.split(' - ');
	
	var passData = 'action='+escape(action)+'&username='+escape(usernameOrderIDArray[0])+'&searchUserID='+escape(usernameOrderIDArray[1]);
	//var passData = 'action='+escape(action)+'&userID='+escape(userID);
	var AJAX = null;
	
	//document.getElementById('tableContainer').innerHTML = '';
	//document.getElementById('tableContainer').innerHTML = '<div id="mainLoaderImage"><img src="images/ajax-loader-main.gif"></div>';
	
	if (window.XMLHttpRequest) {
	   AJAX=new XMLHttpRequest();
	} else {
	   AJAX=new ActiveXObject("Microsoft.XMLHTTP");
	}
	if (AJAX==null) {
	   alert("Your browser doesn't support AJAX.");	                                         
	   return false
	} else {
	   AJAX.open("POST", "inc/orderFunctions.php", true);
	   AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	   AJAX.onreadystatechange = function() {                      
	      if (AJAX.readyState==4 || AJAX.readyState=="complete") { 
	         document.getElementById('tableContainer').innerHTML = AJAX.responseText; 
	      }                               
	   }                                  
	   AJAX.send(passData);
	}

}

function DisplayOrdersFromUser(userID, username)
{
	DisplayUserOrders(username + ' - ' + userID);
}
