<!--
//
//  Multiple Browser Handling
//
//  Emmanuel Zabey - NewAccess
//  2001
//

//
//  variable BroserType
//    'NN' : Netscape Navigator 4+
//    'IE' : Internet Explorer 4+
//

var BrowserType
var ObjectPrefix

if (parseInt(navigator.appVersion) >= 4)
  if (navigator.appName == "Netscape")
  {
    ObjectPrefix = "document."
    BrowserType = "NN"
  }
  else
  {
    ObjectPrefix = "document.all."
    BrowserType = "IE"
  }
else
{
  document.write('Sorry, this page requires a version 4+ browser (Internet Explorer or Netscape)');
  document.close();
}

//
//  Displays the current browser's name in status bar
//
//  use for instance <body onLoad="DisplayBrowser()">
//

function DisplayBrowser()
{
  switch(BrowserType)
  {
    case "IE" :
      status = "Currently using Internet Explorer 4+";
      break;
    case "NN" :
      status = "Currently using Netscape Navigator 4+"
      break;
  }
}

//
//  Forces Netscape to redraw the page when resizing
//
//  
  

function ReloadForNetscape()
{
  if (BrowserType == 'NN')
    if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) 
      location.reload();
}

if (BrowserType == 'NN')
{
  document.MM_pgW=innerWidth; 
  document.MM_pgH=innerHeight; 
  onresize=ReloadForNetscape;
}

//
//  Returns the object with a given ID string
//

function GetObj(strObj)
{
  return eval(ObjectPrefix+strObj)
}


function GetObjFromBase(strObj)
{
  switch(BrowserType)
  {
    case "IE" :
      return eval(ObjectPrefix+strObj)
      break;
    case "NN" :
      return eval(ObjectPrefix+strObj+"Base."+ObjectPrefix+strObj)
      break;
  }  
}

function GetStyle(strObj)
{
  switch(BrowserType)
  {
    case "IE" :
      return eval(ObjectPrefix+strObj+".style")
      break;
    case "NN" :
      return eval(ObjectPrefix+strObj)
      break;
  }  
}

function GetStyleFromBase(strObj)
{
  switch(BrowserType)
  {
    case "IE" :
      return eval(ObjectPrefix+strObj+".style")
      break;
    case "NN" :
      return eval(ObjectPrefix+strObj+"Base."+ObjectPrefix+strObj)
      break;
  }  
}



//
//  Moves a positionnable object (relative)
//

function Move(theObj, dx, dy)
{
  switch(BrowserType)
  {
    case "IE" :
      theObj.pixelLeft += dx;
      theObj.pixelTop += dy;
      break;
    case "NN" :
      theObj.moveBy(dx,dy);
      break;
  }  
}


//
//  Moves a positionnable object (absolute)
//

function MoveTo(theObj, x, y)
{
  switch(BrowserType)
  {
    case "IE" :
      theObj.pixelLeft = x;
      theObj.pixelRight = y;
      break;
    case "NN" :
      theObj.moveTo(x,y);
      break;
  }  
}

function MoveToX(theObj, x)
{
  switch(BrowserType)
  {
    case "IE" :
      theObj.pixelLeft = x;
      break;
    case "NN" :
      theObj.moveTo(x,theObj.top);
      break;
  }  
}

function MoveToY(theObj, y)
{
  switch(BrowserType)
  {
    case "IE" :
      theObj.pixelTop = y;
      break;
    case "NN" :
      theObj.moveTo(theObj.left,y);
      break;
  }  
}

//
// Returns the top/pixelTop property of an object
//

function GetTop(theObj)
{
  switch(BrowserType)
  {
    case "IE" :
      return theObj.pixelTop
      break;
    case "NN" :
      return theObj.top
      break;
  }  
}

//
// Returns the left/pixelLeft property of an object
//

function GetLeft(theObj)
{
  switch(BrowserType)
  {
    case "IE" :
      return theObj.pixelLeft
      break;
    case "NN" :
      return theObj.left
      break;
  }  
}

// -->

