﻿// JavaScript Document
function P7_ExpMenu(){ //v1.1.0.2 by PVII-www.projectseven.com
 if(navigator.appVersion.indexOf("MSIE")==-1){return;}
 var i,k,g,lg,r=/\s*p7hvr/,nn='',c,cs='p7hvr',bv='p7menubar';
 for(i=0;i<10;i++){g=document.getElementById(bv+nn);if(g){
 lg=g.getElementsByTagName("LI");if(lg){for(k=0;k<lg.length;k++){
 lg[k].onmouseover=function(){c=this.className;cl=(c)?c+' '+cs:cs;
 this.className=cl;};lg[k].onmouseout=function(){c=this.className;
 this.className=(c)?c.replace(r,''):'';};}}}nn=i+1;}
}
function closeAll() {
var navRoot = document.getElementById("leftnavul");
 for (i=0; i<navRoot.childNodes.length; i++) {
  var node = navRoot.childNodes[i];
  if (node.nodeName=="LI") { node.className=node.className.replace("navClick",""); }
 }
}
function startList() {
var navRoot = document.getElementById("leftnavul");
var navRootULs = navRoot.getElementsByTagName("UL");
for (i=0; i<navRootULs.length; i++) { navRootULs[i].style.display = 'none'; }
 for (i=0; i<navRoot.childNodes.length; i++) {
  var node = navRoot.childNodes[i];
     if(node.nodeName=="LI" && node.firstChild.getAttribute("HREF").charAt(node.firstChild.getAttribute("HREF").length-1) == "#") {
   node.className = 'navMore';
   node.onmouseover=function() {
    closeAll();
    this.className += " navClick"; }
   node.firstChild.onmouseover=function() { return false; }
   }
  }
}
function closeAll2() {
var navRoot = document.getElementById("leftnavul2");
 for (i=0; i<navRoot.childNodes.length; i++) {
  var node = navRoot.childNodes[i];
  if (node.nodeName=="LI") { node.className=node.className.replace("navClick",""); }
 }
}
function startList2() {
var navRoot = document.getElementById("leftnavul2");
var navRootULs = navRoot.getElementsByTagName("UL");
for (i=0; i<navRootULs.length; i++) { navRootULs[i].style.display = 'none'; }
 for (i=0; i<navRoot.childNodes.length; i++) {
  var node = navRoot.childNodes[i];
     if(node.nodeName=="LI" && node.firstChild.getAttribute("HREF").charAt(node.firstChild.getAttribute("HREF").length-1) == "#") {
   node.className = 'navMore';
   node.onmouseover=function() {
    closeAll();
    this.className += " navClick"; }
   node.firstChild.onmouseover=function() { return false; }
   }
  }
}
function leftnav() {
var pageName = location.href.toLowerCase();
pageName = pageName.substring(pageName.lastIndexOf('/') + 1);
if(pageName.indexOf("#") != -1) { var pageNameReplace = pageName.substring(pageName.lastIndexOf('#')); 
pageName = pageName.replace(pageNameReplace,""); }
var navRoot = document.getElementById("leftnav");
var navLinks = navRoot.getElementsByTagName("A");
for (i=0; i<navLinks.length; i++) {
 var navLinkHREF = navLinks[i].href.toLowerCase();
 navLinkHREF = navLinkHREF.substring(navLinkHREF.lastIndexOf('/') + 1);
 if(pageName == navLinkHREF) { navLinks[i].className = "selected"; }
}
}
//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
function ControlVersion()
{
    var version;
    var axo;
    var e;
    // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
    try {
        // version will be set for 7.X or greater players
        axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
        version = axo.GetVariable("$version");
    } catch (e) {
    }
    if (!version)
    {
        try {
            // version will be set for 6.X players only
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
            
            // installed player is some revision of 6.0
            // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
            // so we have to be careful. 
            
            // default to the first public version
            version = "WIN 6,0,21,0";
            // throws if AllowScripAccess does not exist (introduced in 6.0r47)        
            axo.AllowScriptAccess = "always";
            // safe to call for 6.0r47 or greater
            version = axo.GetVariable("$version");
        } catch (e) {
        }
    }
    if (!version)
    {
        try {
            // version will be set for 4.X or 5.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = axo.GetVariable("$version");
        } catch (e) {
        }
    }
    if (!version)
    {
        try {
            // version will be set for 3.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = "WIN 3,0,18,0";
        } catch (e) {
        }
    }
    if (!version)
    {
        try {
            // version will be set for 2.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
            version = "WIN 2,0,0,11";
        } catch (e) {
            version = -1;
        }
    }
    
    return version;
}
// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
    // NS/Opera version >= 3 check for Flash plugin in plugin array
    var flashVer = -1;
    
    if (navigator.plugins != null && navigator.plugins.length > 0) {
        if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
            var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
            var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
            var descArray = flashDescription.split(" ");
            var tempArrayMajor = descArray[2].split(".");            
            var versionMajor = tempArrayMajor[0];
            var versionMinor = tempArrayMajor[1];
            var versionRevision = descArray[3];
            if (versionRevision == "") {
                versionRevision = descArray[4];
            }
            if (versionRevision[0] == "d") {
                versionRevision = versionRevision.substring(1);
            } else if (versionRevision[0] == "r") {
                versionRevision = versionRevision.substring(1);
                if (versionRevision.indexOf("d") > 0) {
                    versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
                }
            }
            var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
        }
    }
    // MSN/WebTV 2.6 supports Flash 4
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
    // WebTV 2.5 supports Flash 3
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
    // older WebTV supports Flash 2
    else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
    else if ( isIE && isWin && !isOpera ) {
        flashVer = ControlVersion();
    }    
    return flashVer;
}
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
    versionStr = GetSwfVer();
    if (versionStr == -1 ) {
        return false;
    } else if (versionStr != 0) {
        if(isIE && isWin && !isOpera) {
            // Given "WIN 2,0,0,11"
            tempArray         = versionStr.split(" ");     // ["WIN", "2,0,0,11"]
            tempString        = tempArray[1];            // "2,0,0,11"
            versionArray      = tempString.split(",");    // ['2', '0', '0', '11']
        } else {
            versionArray      = versionStr.split(".");
        }
        var versionMajor      = versionArray[0];
        var versionMinor      = versionArray[1];
        var versionRevision   = versionArray[2];
            // is the major.revision >= requested major.revision AND the minor version >= requested minor
        if (versionMajor > parseFloat(reqMajorVer)) {
            return true;
        } else if (versionMajor == parseFloat(reqMajorVer)) {
            if (versionMinor > parseFloat(reqMinorVer))
                return true;
            else if (versionMinor == parseFloat(reqMinorVer)) {
                if (versionRevision >= parseFloat(reqRevision))
                    return true;
            }
        }
        return false;
    }
}
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}
function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }
  document.write(str);
}
function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    
    switch (currArg){    
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":    
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}
//Smart Folding Menu tree- By Dynamic Drive (rewritten 03/03/02)
//For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
//This credit MUST stay intact for use
var head="display:''"
img1=new Image()
img1.src="fold.gif"
img2=new Image()
img2.src="open.gif"
var ns6=document.getElementById&&!document.all
var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
function checkcontained(e){
var iscontained=0
cur=ns6? e.target : event.srcElement
i=0
if (cur.id=="foldheader")
iscontained=1
else
while (ns6&&cur.parentNode||(ie4&&cur.parentElement)){
if (cur.id=="foldheader"||cur.id=="foldinglist"){
iscontained=(cur.id=="foldheader")? 1 : 0
break
}
cur=ns6? cur.parentNode : cur.parentElement
}
if (iscontained){
var foldercontent=ns6? cur.nextSibling.nextSibling : cur.all.tags("UL")[0]
if (foldercontent.style.display=="none"){
foldercontent.style.display=""
cur.style.listStyleImage="url(open.gif)"
}
else{
foldercontent.style.display="none"
cur.style.listStyleImage="url(fold.gif)"
}
}
}
if (ie4||ns6)
document.onclick=checkcontained
function populateElementIdInnerHTML(element_id)
{
    
    if (opener)
    {
        var update_html = opener.document.transfer_html.popup_html.value;
        if (update_html)
        {
            document.getElementById(element_id).innerHTML = update_html;
        }
    }
    else
    {
        document.getElementById(element_id).innerHTML ="<p><b>Sorry, unable to locate the parent page</b></p>";
    }
}
function populateElementIdInnerHTML_oc1(element_id)
{
    
    if (opener)
    {
        var update2_html = opener.document.transfer2_html.popup2_html.value;
        if (update2_html)
        {
            document.getElementById(element_id).innerHTML = update2_html;
        }
    }
    else
    {
        document.getElementById(element_id).innerHTML ="<p><b>Sorry, unable to locate the parent page</b></p>";
    }
}
function populateElementIdInnerHTML_oc2(element_id)
{
    
    if (opener)
    {
        var update3_html = opener.document.transfer3_html.popup3_html.value;
        if (update3_html)
        {            document.getElementById(element_id).innerHTML = update3_html;
        }
    }
    else
    {
        document.getElementById(element_id).innerHTML ="<p><b>Sorry, unable to locate the parent page</b></p>";
    }
}
function linkdis(qwerty){
    document.getElementById("disclaim").style.display='block';
    document.getElementById("sc_links").action=qwerty;
}
function hideDis(){
document.getElementById("disclaim").style.display='none';
}
/* This funtion is called from a body onload and starts the external link check within the element you define (divid) and also passes the context of what you want to do for any external links found (context).  */
function linkCheck (divid,context){
var divLinks=document.getElementById(divid);
var links=divLinks.getElementsByTagName("a");
for(i=0;i<links.length;i++)
    {
    var currentLink = links[i].getAttribute("href");
    var newLink = "javascript:extLinkCheck('" + currentLink + "'," + context + ");";
    links[i].setAttribute('href',newLink);
    links[i].removeAttribute('target');        
    }
}
/*This function checks for internal links.  If a link is not internal, it does 'something'.  that something is defined in separate functions, and is choses based on the 'context' variable*/
function extLinkCheck(y,context){
    var linkArray = y.split( '/' );
    var q = 0;
    for(i=0;i<linkArray.length;i++)
        {
            /*checks if first character of the link is /, hense is internal */
            if(linkArray[0].length==0)
            {
                q=1;
            }
            /*checks for in.gov or test.ai.org somewhere in the link path*/
            else if(linkArray[i].match("test.ai.org")!=null || linkArray[i].match("in.gov")!=null || linkArray[i].match("IN.gov")!=null || linkArray[i].match("IN.GOV")!=null )
            {
                q=1;
            }
            /*checks to see if the link only has one element (index.htm for example), hense is internal */
            else if(linkArray.length==1)
            {
                q=1;
            }        
        }
    if(q==1)
    {
    window.location.href=y;
    }
    else{
        if (context==0)
        {
            stayConnectExtLink(y);
        }
        else if (context==null)
        {
            stayConnectExtLink(y);
        }
    }
}
function stayConnectExtLink(externalLink){
linkdis(externalLink);
}
