var browser = window.navigator.appName;
var isIE = window.ActiveXObject ? true : false;
var isNetscape = browser == "Netscape";
var isOpera = navigator.userAgent.toLowerCase().indexOf("opera") > -1

/*--------------------------------------
| Utility functions for Internet Explorer
+-------------------------------------*/
function IEUtility()
{
  this.CancelEvent = IEUtility.CancelEvent;
  this.SetCapture = IEUtility.SetCapture;
  this.ReleaseCapture = IEUtility.ReleaseCapture;
  this.GetChildren = IEUtility.GetChildren;
  this.GetEventSrcElement = IEUtility.GetEventSrcElement;
  this.GetParentElement = IEUtility.GetParentElement;
  this.GetContentDocument = IEUtility.GetContentDocument;
  this.CreateXmlHttpRequest = IEUtility.CreateXmlHttpRequest;
  this.xmlHttpClassName = null;
}

IEUtility.CancelEvent = function()
{
  window.event.returnValue = false;
}

IEUtility.SetCapture = function(elementId)
{
  document.getElementById(elementId).setCapture(false);
}

IEUtility.ReleaseCapture = function(elementId)
{
  document.getElementById(elementId).releaseCapture();
}

IEUtility.GetChildren = function(parent)
{
  return parent.children;
}

IEUtility.GetEventSrcElement = function()
{
  return window.event.srcElement;
}

IEUtility.GetParentElement = function(element)
{
  return element.parentElement;
}

IEUtility.GetContentDocument = function(iframe)
{
  return iframe.contentWindow.document;
}

IEUtility.CreateXmlHttpRequest = function()
{
  if (this.xmlHttpClassName==null) {
    var classNames = ["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
    var obj = null;
    for(var i=0; i<classNames.length; i++) {
      try {
        obj = new ActiveXObject(classNames[i]);
        this.xmlHttpClassName = classNames[i];
        break;
      }
      catch(e) {}
    }
  }
  
  return this.xmlHttpClassName ? new ActiveXObject(this.xmlHttpClassName) : null;
}

/*------------------------------------------------
| Utility functions for Mozilla / Firefox / Opera
+-----------------------------------------------*/
function MUtility()
{
  this.CancelEvent = MUtility.CancelEvent;
  this.SetCapture = MUtility.SetCapture;
  this.ReleaseCapture = MUtility.ReleaseCapture;
  this.GetChildren = MUtility.GetChildren;
  this.GetEventSrcElement = MUtility.GetEventSrcElement;
  this.GetParentElement = MUtility.GetParentElement;
  this.GetContentDocument = MUtility.GetContentDocument;
  this.CreateXmlHttpRequest = MUtility.CreateXmlHttpRequest;
}

MUtility.CancelEvent = function(e)
{
  e.preventDefault();
}

MUtility.SetCapture = function(elementId, eventName, eventHandler)
{
  document.addEventListener(eventName, eventHandler, true);
}

MUtility.ReleaseCapture = function(elementId)
{
}

MUtility.GetChildren = function(parent)
{
  return parent.childNodes;
}

MUtility.GetEventSrcElement = function(e)
{
  return (e.target) ? e.target : e.currentTarget;
}

MUtility.GetParentElement = function(element)
{
  return element.parentNode;
}

MUtility.GetContentDocument = function(iframe)
{
  return iframe.contentDocument;
}

MUtility.CreateXmlHttpRequest = function()
{
  return new XMLHttpRequest();
}

// Utility factory
var util = (isNetscape || isOpera) ? new MUtility() : new IEUtility();
// ----------------------------------------------------------

function OnTocTreeLoad(e)
{
  var tocFrame = util.GetEventSrcElement(e);
  var notbot = tocFrame.getAttribute("notbot");
  if (tocFrame.src!=notbot)
    tocFrame.src = notbot;
}

function GetCookie(cookieName)
{
  var cookie = document.cookie;
  var result = null;
  var len = cookieName.length+1;
  var i = cookie.indexOf(cookieName+"=");
  if (i!=-1) {
    var endIndex = cookie.indexOf(";", i+len);
    if (endIndex == -1)
      result = cookie.substring(i+len);
    else
      result = cookie.substring(i+len, endIndex);
  }
  return result;
}
