// JavaScript Document
// This code taken from 
//  http://www.brucelawson.co.uk/2005/opening-links-in-new-windows-in-xhtml-strict-2/
// to make sure that links that used to use target="_blank"(which is not Strict XHTML)
// now comply and also are accessible.
// NOTE - you must use the rel="external" attribute of the anchor tag for this to work.
window.onload = externalLinks;

function externalLinks()
{
 var objCurrent, objReplacement;

 if (document.getElementsByTagName)
 {
  var objAnchors = document.getElementsByTagName('a');
  for (var iCounter=0; iCounter<objAnchors.length; iCounter++)
  {
   if (objAnchors[iCounter].getAttribute('href') &&objAnchors[iCounter].getAttribute('rel') == 'external')
   {
    objAnchors[iCounter].onclick = function(event){return launchWindow(this, event);}
    objAnchors[iCounter].onkeypress = function(event){return launchWindow(this, event);}
    objAnchors[iCounter].title = (objAnchors[iCounter].title != "") ? objAnchors[iCounter].title+" (opens in a new window)" : "opens in a new window";

    if (document.replaceChild)
    {
     objCurrent = objAnchors[iCounter].firstChild;
     if (objCurrent.nodeType == 3) // Text node
     {
      //objReplacement = document.createTextNode(objCurrent.data + ' (opens in a new window)');
      //objAnchors[iCounter].replaceChild(objReplacement, objCurrent);
     }
     else if (objCurrent.alt) // Current element is an image
     {
      objReplacement = objCurrent;
      objReplacement.alt = objCurrent.alt + ' (opens in a new window)';
      try
      {
       objAnchors[iCounter].replaceChild(objReplacement, objCurrent);
      }
      catch(e){}
     }
    }
   }
  }
 }
}

function launchWindow(objAnchor, objEvent)
{
var iKeyCode;

if (objEvent && objEvent.type == 'keypress')
{
 if (objEvent.keyCode)
  iKeyCode = objEvent.keyCode;
 else if (objEvent.which)
  iKeyCode = objEvent.which;

 if (iKeyCode != 13 && iKeyCode != 32)
  return true;
}

return !window.open(objAnchor);
}
