// external.js
// This allows for opening links in a new window w/o using non-valid deprecated code ('target=_blank').
// Code taken from Bruce Lawson's blog post on external links( http://www.brucelawson.co.uk/2005/opening-links-in-new-windows-in-xhtml-strict-2/ )

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);}
                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);
}
