var mylogdata;
function mylog(txt)
{ var objHTML, objText;
  if (mylogdata == null)
  { mylogdata = document.getElementById('mylogdata');
    if (mylogdata == null)
    { objHTML = document.createElement('p');
      objHTML.setAttribute('name', 'mylogdata');
      objHTML.setAttribute('id', 'mylogdata');
      mylogdata = document.body.appendChild(objHTML);
      delete objHTML;
    }
  }
  objText = document.createTextNode(txt);
  mylogdata.appendChild(objText);
  objHTML = document.createElement('br');
  mylogdata.appendChild(objHTML);
  delete objHTML;
  delete objText;
  return;
}

function lib_bwcheck() //Browsercheck (needed)
{ this.ver=navigator.appVersion;
  this.agent=navigator.userAgent;
  this.dom=document.getElementById?1:0;
  this.opera5=(navigator.userAgent.indexOf("Opera")>-1 && this.dom)?1:0;
  this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0;
  this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
  this.ie7=(this.ver.indexOf("MSIE 7")>-1 && this.dom && !this.opera5)?1:0;
  this.ie8=(this.ver.indexOf("MSIE 8")>-1 && this.dom && !this.opera5)?1:0;
  this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
  this.badobj=this.ie4 || this.ie5 || this.ie6 || this.ie7 || this.ie8;
  this.ie=this.badobj;
  if (this.ver.indexOf("MSIE")>-1 && !this.ie)
  { alert("unknown version of MSIE - " + this.ver);
    this.ie=1;
  }
  this.mac=this.agent.indexOf("Mac")>-1;
  this.ns6=(this.dom && parseInt(this.ver) >= 5 && !this.opera5) ?1:0;
  this.ns4=(document.layers && !this.dom)?1:0;
  this.ns=(this.ns4 || this.ns6);
  this.bw=(this.ie || this.ns || this.opera5);
  return this;
}
var bw=lib_bwcheck();
var prefix =
   'Try Mozilla '
 + '<a href="http://www.mozilla.org/projects/seamonkey/">SeaMonkey</a><br>'
 + 'or <a href="http://mozilla.com/">Firefox</a><br><br>';

function mknav()
{ var navdiv, navobj, content, url, tags, elm;
  // see if there are any hidden remarks for IE users
  if (!bw.badobj)
  { navdiv = document.getElementById('IEbashing');
    if (navdiv!=null)
    { navdiv.style.display = 'none';
    }
    return;
  }
  tags = document.getElementsByTagName('H1');
  elm = tags.item(0);
  elm.title = 'Displays better in Mozilla or Opera browsers';
  // first we convert the OBJECT to an IFRAME, so we can read it
  navdiv = document.getElementById('navdiv');
  if (navdiv==null) return;
  navobj = document.getElementById('navobj');
  url = navobj.data;
  content = '<IFRAME id="navobj" name="navfrm" src="' + url + '">navigation bar not found</IFRAME>';
  navdiv.innerHTML = content;
  deframe();
  return;
}

var maxdeframeretry = 0;
function deframe ()
{ // Then we read the IFRAME and move the text directly to the DIV
  // It may take several tries before the frame created above actually
  // gets parsed and becomes available to this code.  We wait and retry
  // until all the data we expect is visible.
  var navdiv, navbdy, content;
  if (bw.ns)
  { // this sequence works on Moz.  Really we don't need this code, except for
    // comparison purposes, since only IE should ever call this subroutine
    content = window.frames;
//    mylog('frames: '+ content);
    for (var i=0;i<content.length;i++)
    { // mylog("frames["+i+"]: "+content[i].name);
      if (content[i].name=='navfrm') navbdy=content[i];
    }
    // mylog('frame: '+ navbdy);
    if (navbdy!=null)
    { navbdy = navbdy.document;
      // mylog('navbdy: '+ navbdy);
      if (navbdy!=null)
      { navbdy=navbdy.getElementById('nav');
        // mylog('navbdy: '+ navbdy);
      }
    }
  } else
  { // this sequence doesn't find the frame content on Moz
    // but works on IE6 (9 tries required), IE7, and Opera (2 tries required)!
    if (navbdy==null)
    { navbdy = document.frames;
      // mylog('frames: '+ navbdy);
      if (navbdy!=null)
      { navbdy = navbdy.navfrm;
        // mylog('navfrm: '+ navbdy);
        if (navbdy!=null)
        { navbdy = navbdy.document;
          // mylog('navdoc: '+ navbdy);
          if (navbdy!=null)
          { navbdy = navbdy.getElementById('nav');
            // mylog('navbdy: '+ navbdy);
          }
        }
      }
    }
  }
  if (navbdy!=null)
  { // mylog("nbid: "+navbdy+'/'+navbdy.id);
    if (navbdy.id=='nav')
    { content = navbdy.innerHTML;
      navdiv = document.getElementById('navdiv');
      navdiv.innerHTML = prefix + content;
//      mylog("navdiv height/scrollheight: "
//        +navdiv.clientHeight+"/"+navdiv.scrollHeight);
      navdiv.style.height = navdiv.scrollHeight + 20;
//      mylog("navdiv height/scrollheight: "
//        +navdiv.clientHeight+"/"+navdiv.scrollHeight);
      return;
    }
  }
  // try again, for up to 2 seconds
  maxdeframeretry += 1;
  if ( maxdeframeretry < 200 ) setTimeout( "deframe()", 10 );
  return;
}
