//Detects browser version

function xbDetectBrowser()
{
  var oldOnError = window.onerror;
  var element = null;

  window.onerror = null;
  
  // work around bug in xpcdom Mozilla 0.9.1
  window.saveNavigator = window.navigator;

  navigator.OS    = '';
  navigator.version  = parseFloat(navigator.appVersion);
  navigator.org    = '';
  navigator.family  = '';
  var i = 0;
  var ua = window.navigator.userAgent.toLowerCase();
  
 
 if ((i = ua.indexOf('msie')) != -1)
  {
    navigator.org    = 'microsoft';
    navigator.version  = parseFloat('0' + ua.substr(i+5), 10);
    
    if (navigator.version < 4)
      navigator.family = 'ie3';
    else
      navigator.family = 'ie4'
  }
  else if (ua.indexOf('gecko') != -1)
  {
    navigator.family = 'gecko';
    var rvStart = navigator.userAgent.indexOf('rv:') + 3;
    var rvEnd = navigator.userAgent.indexOf(')', rvStart);
    var rv = navigator.userAgent.substring(rvStart, rvEnd);
    var decIndex = rv.indexOf('.');
    if (decIndex != -1)
    {
      rv = rv.replace(/\./g, '')
      rv = rv.substring(0, decIndex-1) + '.' + rv.substr(decIndex)
    }
    navigator.version = parseFloat(rv);

    if (ua.indexOf('netscape') != -1)
      navigator.org = 'netscape';
    else if (ua.indexOf('compuserve') != -1)
      navigator.org = 'compuserve';
    else
      navigator.org = 'mozilla';
  }
  else if ((ua.indexOf('mozilla') !=-1) && (ua.indexOf('spoofer')==-1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera')==-1)&& (ua.indexOf('webtv')==-1) && (ua.indexOf('hotjava')==-1))
  {
    var is_major = parseFloat(navigator.appVersion);
    
    if (is_major < 4)
      navigator.version = is_major;
    else
    {
      i = ua.lastIndexOf('/')
      navigator.version = parseFloat('0' + ua.substr(i+1), 10);
    }
    navigator.org = 'netscape';
    navigator.family = 'nn' + parseInt(navigator.appVersion);
  }
  
  window.onerror = oldOnError;
}

xbDetectBrowser();


//Netscape resize fix 

if(document.layers){origWidth=innerWidth;origHeight=innerHeight;onResize=function(){if(innerWidth!=origWidth||innerHeight!=origHeight)location.reload()}}

//Pop frames

if (document.referrer == "" || document.referrer.indexOf("evolution.berkeley.edu") == -1)
{ if (self != top) top.location.href = window.location.href; }

//Changes image source, useful for rollovers and animated gifs

function changeorig(image_name, location) {
	if ((navigator.family=='ie4') || (navigator.family=='nn4') || (navigator.family=='gecko')) {
	document.images[image_name].src = location;
	}
}

//Preloads one or a series of images on a page.
//Takes one argument, e.g. MM_preloadImages('images/image1.gif','images/image2.gif')
function MM_preloadImages() {
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
//alert('Im done preloading');
}



function setTextOfLayer(objName, newText) { 
 
   if (document.layers) {
       document.layers[objName].document.write(unescape(newText)); document.layers[objName].document.close();}
   else if (document.all) {
	document.all[objName].innerHTML = unescape(newText);}
   else if (document.getElementById) {
	var elm;
	elm = document.getElementById(objName);
	elm.innerHTML = unescape(newText);}
}

function readCookie(name)
{
  var cookieValue = "";
  var search = name + "=";
  if(document.cookie.length > 0)
  { 
    offset = document.cookie.indexOf(search);
    if (offset != -1)
    { 
      offset += search.length;
      end = document.cookie.indexOf(";", offset);
      if (end == -1) end = document.cookie.length;
      cookieValue = unescape(document.cookie.substring(offset, end))
    }
  }
  return cookieValue;
}


function writeCookie(name, value, hours)
{
  var expire = "";
  if(hours != null)
  {
    expire = new Date((new Date()).getTime() + hours * 3600000);
    expire = "; expires=" + expire.toGMTString();
  }
  document.cookie = name + "=" + escape(value) + expire;
}


function setMenu(cookielevel){
//alert('Im here');
writeCookie('menu',cookielevel,8760);
//alert('Ive written the cookie');
changeMenu(cookielevel);
//alert('Im at the second line');
location.reload();
}

function changeMenu(level) {

var ML;

//alert('Im in changeMenu');


if ((document.layers)||(document.all)||(document.getElementById))
  {

if (readCookie("menu")!="") {
ML = readCookie("menu");
}

else {
ML = level;
}

if (ML==2) {
menu=ML2;
}

else {
menu=ML1;
}

setTextOfLayer('menubox',menu);
//alert('Im finished with changeMenu');

}
}

function toggleMenu(pagelevel) {

var PL;

if ((document.layers)||(document.all)||(document.getElementById)) {
  if (readCookie("menu") != "") {
    PL = readCookie("menu");
  }
  else {
    PL = pagelevel;
  }
  if (PL == 1) {
    buttons = BL1;
  }
  else {
    buttons = BL2;
  }
}
else {
  buttons = "";
}
}

//External link popup window-added 11-16-02
function external(filename) {
extlink = launch(filename,"extlink","height=500,width=600,alwaysLowered=0,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=0,resizable=yes,scrollbars=yes,status=0,screenX=0,screenY=0,top=5,left=5,titlebar=1,toolbar=0,z-lock=0","extlink");
extlink.focus();
}

function launch(newURL, newName, newFeatures, orgName) {
var remote = open(newURL,newName,newFeatures);
if (remote.opener==null) remote.opener = window;
 remote.opener.name = orgName;
 return remote;
 }

