function updateHSN(eventCode)
{
  var myKeyCode;
  if (window.event)
    {
      myKeyCode = window.event.keyCode;
    }else
    {
      myKeyCode = eventCode.keyCode;
    }

  if (myKeyCode == 40 || myKeyCode == 38 || myKeyCode == 13)
    {
      return;
    }
  
  xajax_updateHSN(xajax.getFormValues("loginForm"));
  return false;
}

function updateTSN(eventCode)
{
  var myKeyCode;
  if (window.event)
    {
      myKeyCode = window.event.keyCode;
    }else
    {
      myKeyCode = eventCode.keyCode;
    }

  if (myKeyCode == 40 || myKeyCode == 38 || myKeyCode == 13)
    {
      return;
    }
  
  xajax_updateTSN(xajax.getFormValues("loginForm"));
  return false;
}


var selListItem = "";
var maxItems = 20;

function hsnGetFocus()
{
  if (document.getElementById("hsninput").value == "- Hersteller (HSN) -")
    {
      document.getElementById("hsninput").value = "";
    }
}

function tsnGetFocus()
{
  if (document.getElementById("tsninput").value == "- Typ (TSN) -")
    {
      document.getElementById("tsninput").value = "";
    }
}


function hsnKeyDown(eventCode)
{
  var myKeyCode;
  if (window.event)
    {
      myKeyCode = window.event.keyCode;
    }else
    {
      myKeyCode = eventCode.keyCode;
    }
  
    if (myKeyCode == 40)
    {
      markNext("hsninput");
    }
    if (myKeyCode == 38)
    {
      markPrev("hsninput");
    }
    if (myKeyCode == 13)
    {
      selHsnItem(selListItem)
    }
    
}


function tsnKeyDown(eventCode)
{
  var myKeyCode;
  if (window.event)
    {
      myKeyCode = window.event.keyCode;
    }else
    {
      myKeyCode = eventCode.keyCode;
    }
  
    if (myKeyCode == 40)
    {
      markNext("tsninput");
    }
    if (myKeyCode == 38)
    {
      markPrev("tsninput");
    }
    if (myKeyCode == 13)
    {
      selTsnItem(selListItem)
    }
}


function mark(id)
{
  unmark(selListItem);
  if (document.getElementById(id))
    {
      document.getElementById(id).style.backgroundColor="highlight";
      document.getElementById(id).style.color="highlighttext";
      selListItem = id;
    }
}
function unmark(id)
{
  if (document.getElementById(id))
    {
      document.getElementById(id).style.backgroundColor="white";
      document.getElementById(id).style.color="windowtext";
    }
  selListItem = "";
}

function markPrev(inputFieldId)
{
  if (selListItem != "")
    {
      var indexNumber = selListItem.substring(12);
      var newKey = "completeItem" + indexNumber;
      unmark(newKey);
      indexNumber--;
      var newKey = "completeItem" + indexNumber;
      if (document.getElementById(newKey))
	{
	  document.getElementById(inputFieldId).value = 
	  mark(newKey);
	  var innerKey = "inner" + newKey;
	  document.getElementById(inputFieldId).value =  getDephtInnerHtml(document.getElementById(newKey));
	}else
	{
	  var lastElementNumber = maxItems;
	  var newKey = "completeItem" + lastElementNumber;
	  while ((!document.getElementById(newKey)) && lastElementNumber>0)
	    {
	      lastElementNumber--;
	      newKey = "completeItem" + lastElementNumber;
	    }
	  if (document.getElementById(newKey))
	    {
	      mark(newKey);
	      var innerKey = "inner" + newKey;
	      document.getElementById(inputFieldId).value =  getDephtInnerHtml(document.getElementById(newKey));
	    }
	}
    }else
    {
      var lastElementNumber = maxItems;
      var newKey = "completeItem" + lastElementNumber;
      while ((!document.getElementById(newKey)) && lastElementNumber>0)
	{
	  lastElementNumber--;
	  newKey = "completeItem" + lastElementNumber;
	}
      if (document.getElementById(newKey))
	{
	  mark(newKey);
	}
    }
}


function markNext(inputFieldId)
{
  if (selListItem != "")
    {
      var indexNumber = selListItem.substring(12);
      var newKey = "completeItem" + indexNumber;
      unmark(newKey);
      indexNumber++;
      var newKey = "completeItem" + indexNumber;
      if (document.getElementById(newKey))
	{
	  mark(newKey);
	  var innerKey = "inner" + newKey;
	  document.getElementById(inputFieldId).value =  getDephtInnerHtml(document.getElementById(newKey));
	}else
	   {
	     indexNumber = 1;
	     var newKey = "completeItem" + indexNumber;
	     mark(newKey);
	     var innerKey = "inner" + newKey;
	     document.getElementById(inputFieldId).value =  getDephtInnerHtml(document.getElementById(newKey));
	   }
    }else
    {
      indexNumber = 1;
      var newKey = "completeItem" + indexNumber;
      if (document.getElementById(newKey))
	{
	  mark(newKey);
	  var innerKey = "inner" + newKey;
	  document.getElementById(inputFieldId).value =  getDephtInnerHtml(document.getElementById(newKey));
	}
    }
}

function getDephtInnerHtml(startNode)
{
  var parentNode = startNode;
  var childNode = parentNode.childNodes[0];
  
  while (childNode.innerHTML)
    {
      parentNode = childNode;
      childNode = parentNode.childNodes[0];
    }
  return parentNode.innerHTML;
}


function selHsnItem(id)
{
  var newKey = "inner" + id;
  document.getElementById("hsninput").value =  getDephtInnerHtml(document.getElementById(newKey));
  hideList();
}

function selTsnItem(id)
{
  var newKey = "inner" + id;
  document.getElementById("tsninput").value =  getDephtInnerHtml(document.getElementById(newKey));
  hideList();
}


function hideList()
{
  document.getElementById("iFrameHSN").style.height="0px";
  document.getElementById("iFrameTSN").style.height="0px";


  if (document.getElementById("list_container_hsn"))
    {
      document.getElementById("list_container_hsn").innerHTML = "";      
      document.getElementById("list_container_hsn").style.visibility="hidden";
    }
  
  if (document.getElementById("list_container_tsn"))
    {
      document.getElementById("list_container_tsn").innerHTML = "";
      document.getElementById("list_container_tsn").style.visibility="hidden";
      document.getElementById("list_container_tsn").style.position="absolute"; // Notwendig, keine Ahnung warum
    }
  if (document.getElementById("completeDiv"))
    {
      document.getElementById("completeDiv").innerHTML = "";
      document.getElementById("completeDiv").style.visibility="hidden";
    }
}
