var History = new Array();

function hideGlossary()
{
  var glossary = document.getElementById('glossary');
  glossary.style.visibility = 'hidden';
}

function showGlossary(Id, PageId, AddToHistory, Language)
{  
  var body = document.body;
  var glossary = document.getElementById('glossary');
  
  glossary.innerHTML = "<a href='javascript:History=\"\";hideGlossary();'><img src='/img/system/glossar/close.gif' alt='" + (Language == "English" ? "close" : "schlie&szlig;en") + "' class='close'></a><h4 id='glossaryterm' class='color2'></h4><p id='glossarydescription'></p><div id='footernavi'></div>";

  if (body.scrollTop > 50)
    glossary.style.top = body.scrollTop + 200; 
  else 
    glossary.style.top = 200;	
  
  glossary.style.visibility = 'visible'; 

  switch (AddToHistory)
  {
    case 1:
      History.push(Id);
      break;
    case -1:
      History.pop();
      break; 
    default:
      History = new Array();
      History.push(Id);
      break;
  }
  
  if (History.length > 1)      
    document.getElementById('footernavi').innerHTML = "<p><a href='javascript:showGlossary(History[History.length - 2], " + PageId + ", -1, \"" + Language + "\");'><img src='/img/system/backarrow.gif' alt='' class='linkarrow'>" + (Language == "English" ? "back" : "zur&uuml;ck") + "</a></p>";
  else
    document.getElementById('footernavi').innerHTML = "";

  makeRequest('/service/glossary/GlossaryXML.aspx', Id, PageId);
  }

function makeRequest() 
{
  var url = arguments[0];
  var id = arguments[1];
  var pageid = arguments[2];
  var http_request = false;

  if (window.XMLHttpRequest) 
  {// Mozilla, Safari,...
    http_request = new XMLHttpRequest();

    if (http_request.overrideMimeType) 
    {
      http_request.overrideMimeType('text/xml');
    }
  }
  else if (window.ActiveXObject) 
  {//IE
    try
    {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
      try
      {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e)
      {
      }
    }
  }

  if (!http_request)
  {
    document.getElementById('glossaryterm').innerHTML = '';
    document.getElementById('glossarydescription').innerHTML = '';
  
    return false;
  }

  http_request.open("GET",url + "?id=" + id + "&pageid=" + pageid, true);
  http_request.onreadystatechange = function() { AlertContents(http_request); };
  http_request.setRequestHeader("encoding", "iso-8859-15");
  http_request.send(null);
}

function AlertContents(http_request) 
{
  try
  {
    if (http_request.readyState == 4) 
    {
      if (http_request.status == 200) 
      {  
        var xmldoc = http_request.responseXML;
               
        document.getElementById('glossaryterm').innerHTML = xmldoc.getElementsByTagName("term")[0].childNodes[0].nodeValue;
        document.getElementById('glossarydescription').innerHTML = xmldoc.getElementsByTagName("description")[0].childNodes[0].nodeValue;
                 
        response = true;
      }
      else
      {
        document.getElementById('glossaryterm').innerHTML = '';
        document.getElementById('glossarydescription').innerHTML = '';
      }
    }
  }
  catch(e)
  {
    document.getElementById('glossaryterm').innerHTML = '';
    document.getElementById('glossarydescription').innerHTML = '';
  }     
}
