// Copyright 2000-2007 by EDS (Electronic Data Systems) - All Rights Reserved
// Programming by Fred Keultjes

function jumpToPage(theBox)
{
  var index;
  var URL;

  index = theBox.selectedIndex;
  URL = theBox.options[index].value; 

  if (URL.indexOf(".",2) != -1
  || (URL.substring(0,1) == '#' && URL.length>1)
  || URL.substring(0,1) == '/')
  {
     theBox.selectedIndex = 0;
     try
     {
       var aElem = document.createElement("A");
       var aAnchor = document.getElementsByTagName("BODY")[0];
       aAnchor.appendChild(aElem);
       aElem.href = URL;
       aElem.click();
     }
     catch(ex)
     {
       document.location.href = URL; 
     }
  }
  else
  { 
     theBox.selectedIndex = 0;
  }
}

function HtmlEncode(s)
{
  var result = s;
  var i,c;

  for( i=0; i<result.length; i++ )
  {
    c = result.charAt(i);
    switch( c )
    {
    case '<':
      result = result.substring(0,i) + '&lt;' + result.substring(i+1,result.length);
      i += 3;
      break;
		case '>':
      result = result.substring(0,i) + '&gt;' + result.substring(i+1,result.length);
      i += 3;
      break;
		case '&':
      result = result.substring(0,i) + '&amp;' + result.substring(i+1,result.length);
      i += 4;
      break;
		case '"':
      result = result.substring(0,i) + '&quot;' + result.substring(i+1,result.length);
      i += 5;
      break;
		default:
      if( c.charCodeAt(0) > 0x0A0 )
      {
        var temp = '&#' + c.charCodeAt(0) + ';';

        result = result.substring(0,i) + temp + result.substring(i+1,result.length);
        i += temp.length-1;
      }
    }
  }
  return result;
}

/* utility function to change some statement to the onload sequence */

var gChainPrev = new Array();
var gChainFunc = new Array();

function chainToOnLoad( expression )
{
    var idx = gChainPrev.length;
    gChainPrev.length = idx + 1;
    gChainFunc.length = idx + 1;
    var f = window.onload ? window.onload :  new Function;
    gChainPrev[idx] = f;
    gChainFunc[idx] = expression;
    window.onload = new Function("eval(gChainFunc[" + idx + "]); var f = gChainPrev[" + idx + "];f();");
}

/* common initializing code */

var g_NoUpdateTDAlign = null;

function commonjs_onload()
{
  if(document.getElementById("page")==null)
  {
    document.body.id = "page";
  }

  /* respect the align attribute of TD tags */
  var tds = document.getElementsByTagName("TD");
  if (tds.length > 0 && (g_NoUpdateTDAlign == null || !g_NoUpdateTDAlign))
  {
    var i;

    for( i=0; i<tds.length; i++ )
    {
      var cur = tds[i];
      if( cur.align != null && cur.align != "" )
      {
         cur.style.textAlign = cur.align;
      }
    }
  }
  
  var forms = document.getElementsByTagName("FORM");
  if( forms.length>0 )
  {
    var i;

    for( i=0; i<forms.length; i++ )
    {
      var cur = forms[i];
      var attrAction = cur.action;
      if (attrAction != null && typeof (attrAction) == "string"
       && (attrAction.indexOf("/nlapps/diversen/mail.asp") >= 0 
          || attrAction.indexOf("resetpassword_p.asp") >= 0
          || attrAction.indexOf("logon_p.asp") >= 0
          || attrAction.indexOf("documents_ud.asp") >= 0
          || attrAction.indexOf("pollresult_u.asp") >= 0))
      {
        var result = null;
        try
        {
          // MSIE does not allow input elements to set its name attribute
          result = document.createElement("<INPUT type=\"hidden\" name=\"_form_spmchk\" value=\"\"/>");
        }
        catch(ex)
        {
        }
        if( result==null )
        {
          result = document.createElement("INPUT");
          result.name = "_form_spmchk";
          result.type = "hidden";
        }
        result.value = "spmchk";
        cur.appendChild(result);

        result = null;
        try
        {
          // MSIE does not allow input elements to set its name attribute
          result = document.createElement("<INPUT type=\"text\" name=\"_form_spmchc\" value=\"\"/>");
        }
        catch(ex)
        {
        }
        if( result==null )
        {
          result = document.createElement("INPUT");
          result.name = "_form_spmchc";
          result.type = "text";
        }
        result.className = "hide";
        cur.appendChild(result);
      }
    }
  }
  
}

chainToOnLoad("commonjs_onload()");

/* helper script for global indexes */

var idxprevTab = null;
var idxprevTopicTab = null;

function ipClearPrevSel()
{
  if( idxprevTopicTab != null )
  {
    idxprevTopicTab.className = "";
    if( idxprevTopicTab.parentNode.className.indexOf("tabitem")>=0 )
    {
      idxprevTopicTab.parentNode.className = "tabitem";
    }
    idxprevTopicTab = null;
  }
  if( idxprevTab != null )
  {
    idxprevTab.className = "";
    idxprevTab = null;
  }
}

function ipgetaz(sel, cur)
{
  ipClearPrevSel();

  cur.className = "on";

  idxprevTab = cur;

  var source = document.getElementById("alltopics");
  var result = "<div class=\"subindex\"><h3>" + sel + "</h3><ul>";
  var i;

  for(i=0; i<source.options.length; i++)
  {
    var curElement = source.options[i];
    if( curElement.text.length>0 )
    {
       var firstChar = curElement.text.charAt(0).toUpperCase();
       if( firstChar<'A' || firstChar>'Z' )
          firstChar="123";

      if( firstChar==sel)
      {
         var pipePos = curElement.value.indexOf("|");
         result += "<li><a href=\"" + HtmlEncode(curElement.value.substring(0,pipePos)) + "\">" + HtmlEncode(curElement.text) + "</a></li>\r\n";
      }
    }
  }

  result += "</ul></div>";

  document.getElementById("currentindexresult").innerHTML = result;
}


function ipgettopic(sel, cur)
{
  ipClearPrevSel();

  cur.className = "on";
  if( cur.parentNode.className.indexOf("tabitem")>=0 )
  {
    cur.parentNode.className = "tabitem on";
  }

  idxprevTopicTab = cur;

  var source = document.getElementById("alltopics");
  var result = "<div class=\"subindex\"><h3>" + HtmlEncode(sel) + "</h3><ul>";
  var i;

  for(i=0; i<source.options.length; i++)
  {
    var curElement = source.options[i];
    var pipePos = curElement.value.indexOf("|");

    if( (","+curElement.value.substring(pipePos+1,curElement.value.length)+",").indexOf(","+sel+",")>=0 )
    {
       result += "<li><a href=\"" + HtmlEncode(curElement.value.substring(0,pipePos)) + "\">" + HtmlEncode(curElement.text) + "</a></li>\r\n";
    }
  }

  result += "</ul></div>";
  document.getElementById("currentindexresult").innerHTML = result;
}

var waitForSearch = 0;

function StartIndexSearch()
{
  if( waitForSearch!=0 )
    window.clearTimeout(waitForSearch);
  waitForSearch = window.setTimeout(SearchInIndex, 1000);
}
function SearchInIndex()
{
  if( waitForSearch!=0 )
  {
    window.clearTimeout(waitForSearch);
    waitForSearch = 0;
  }
  ipClearPrevSel();

  var searchTerm =  document.getElementById("indexsearchterm").value;
  var searchTermLow = searchTerm.toLowerCase();

  var source = document.getElementById("alltopics");
  var result = "<div class=\"subindex\"><h3>" + HtmlEncode(searchTerm) + "</h3><ul>";
  var i;
  var count = 0;

  if( searchTermLow.length>0 )
  {
    for(i=0; i<source.options.length && count<100; i++)
    {
      var curElement = source.options[i];
      var pipePos = curElement.value.indexOf("|");

      if( curElement.text.toLowerCase().indexOf(searchTermLow)>=0 )
      {
         result += "<li><a href=\"" + HtmlEncode(curElement.value.substring(0,pipePos)) + "\">" + HtmlEncode(curElement.text) + "</a></li>\r\n";
         count++;
      }
    }
    if(count==0)
       result += "<li>No items</li>\r\n";
  }

  result += "</ul></div>";
  document.getElementById("currentindexresult").innerHTML = result;
}

//functions for decrypting spam-protected email addresses
function navto_mailtodecrypt(s)
{
   location.href="mailto:" + navto_decrypt(s);
}
function write_decrypt(s)
{
   document.write(navto_decrypt(s));
}
//function for decrypting
function navto_decrypt(s)
{
	var i=0;
	var r="";
	
	for(i=0; i< s.length; i++)
	{
		var c=s.charCodeAt(i) - 1 - (i % 11);
		r += String.fromCharCode(c<32 ? 95+c : c);
	}
	return r;
}



//New/Updated script creates indicator that disappears.
//Author: C. Watkins - 08/2003, Updated: 12/2005
function writeIndicator(expires,what) {
	var today = new Date();
	if (today < expires ) {
		document.write("<span class='new-updated'>"+what+"!</span>");
	}  else {
		document.write("");
	}
}

function stripeTable(id)
{
  // dummy function (striping tables is not used anymore)
}