function DoRequest(str, textField, event)
{
	var functions = "/WebService/productfinder.asmx/Functions";
	var productLines = "/WebService/productfinder.asmx/ProductLines";
	var designers = "/WebService/productfinder.asmx/Designers";
	
	if (str == "")
		return false;
	str = "startChars=" + str + "&maxCount=10";
	
	var address;
	if (textField.id == "txtFunction")
		address = functions;
	else if (textField.id == "txtProductLine")
		address = productLines;
	else if (textField.id == "txtDesigner")
	    address = designers;
	
	$.ajax({
       type: "POST",
       url: address,
       data: str,
       success: function(data)
       {
            res = data.documentElement;
		    ClearStorage();
			if (res.childNodes[0])
			{
				eval(res.childNodes[0].nodeValue);
			}
			updateDropdown(textField);
       }
     });
}

function updateDropdown(textField, ev)
{
	str = document.getElementById("SearchKey");
	var dropdown = document.getElementById("DropDown");
	
	var abs = getAbsolutePos(textField);
	var curX = abs.x;
	var curY = abs.y + 20;
	
	dropdown.style.display = "inline";
	dropdown.style.left = curX + 'px';
	dropdown.style.top = curY + 'px';
	
	$("#Products").empty();
	if (RA.length > 0)
	{
			for (i=0;i<RA.length;i++)
			{
				if (RA[i])
				{
					document.getElementById("Products").options[i] = new Option(RA[i][1], RA[i][0]);
				}
				else
				{
					RA[i] = null;
				}
			}
		}
		else
		{
			document.getElementById("Products").options[0] = new Option("Ingen match", "");
		}
	}	
var inProgress = false;

function InitRequest(event, textField)
{
	if (event.keyCode == 40 || event.keyCode == 38 || event.keyCode == 13)
	{
		return false;
	}
	DoRequest(textField.value, textField, event);
}

function SubmitOrder(textField)
{
	//if (ValidatePost(textField))
	//{
	//	if (document.getElementById("SearchKey").value.indexOf("#") >-1)
	//	{
	//		Quantity = document.getElementById("SearchKey").value.substr( document.getElementById("SearchKey").value.indexOf("#")+1, document.getElementById("SearchKey").value.length);
	//		if (!isNaN(Quantity))
	//		{
	//			document.QuickOrder.Quantity.value = Quantity;
	//		}
	//	}
	//	document.QuickOrder.submit();
	//}		
}

function RunKey(event, textField)
{
	var hide = function(){document.getElementById("DropDown").style.display = "none";}
	document.onclick = hide;
	if (event.keyCode == 27)
	{ //Escape key
		hide();
	}
	
	if (event.keyCode == 13)
	{ //Enter key
		if (document.getElementById("DropDown").style.display != "none")
		{
			hide();
			if (document.getElementById("Products").selectedIndex>-1)
			{
				selectedValue = document.getElementById("Products")[document.getElementById("Products").selectedIndex].value;
				if (selectedValue == "AddToBasket")
				{
					SubmitOrder(textField);
				}
				if (selectedValue != "")
				{
					textField.valueid = document.getElementById("Products")[document.getElementById("Products").selectedIndex].value;
					textField.value = document.getElementById("Products")[document.getElementById("Products").selectedIndex].text;
				}
			}
		}
		else
		{
			SubmitOrder(textField);
		}
		return false;
	}
	
	elm = document.getElementById("Products")
	
	if (event.keyCode == 40)
	{ //Arrow down
		elm.selectedIndex = (elm.selectedIndex<elm.length-1) ? elm.selectedIndex += 1 : elm.selectedIndex;
	}
	
	if (event.keyCode == 38)
	{ //Arrow up
		if (elm.selectedIndex>0)
		{
			elm.selectedIndex -= 1;
		}
	}
}
function ValidatePost(textField)
{
	if (textField.value.length > 0)
	{
		return true;
	}
	return false;
}

function getAbsolutePos(el)
{
    var r = { x: el.offsetLeft, y: el.offsetTop };
    if (el.offsetParent)
	    {
	    var tmp = getAbsolutePos(el.offsetParent);
	    r.x += tmp.x;
	    r.y += tmp.y;
	    }
    return r;
}



