var msAgent = navigator.userAgent.toLowerCase();
var miMajor = parseInt(navigator.appVersion);
var miMinor = parseFloat(navigator.appVersion);

var mboolIsIE = ((msAgent.indexOf("msie") != -1) &&
                 (msAgent.indexOf("opera") == -1));
var mboolIE3  = (mboolIsIE && (miMajor < 4));
var mboolIE4    = (mboolIsIE && (miMajor == 4) && (msAgent.indexOf("msie 4")!=-1) );
var mboolIE4Up  = (mboolIsIE && (miMajor >= 4));
var mboolIE5    = (mboolIsIE && (miMajor == 4) && (msAgent.indexOf("msie 5.0")!=-1) );
var mboolIE55  = (mboolIsIE && (miMajor == 4) && (msAgent.indexOf("msie 5.5") !=-1));
var mboolIE5Up  = (mboolIsIE && !mboolIE3 && !mboolIE4);
var mboolIE55Up =(mboolIsIE && !mboolIE3 && !mboolIE4 && !mboolIE5);
var mboolIE6    = (mboolIsIE && (miMajor == 4) && (msAgent.indexOf("msie 6.")!=-1) );
var mboolIE6Up  = (mboolIsIE && !mboolIE3 && !mboolIE4 && !mboolIE5 && !mboolIE55);


var mbMinNS4 = (navigator.appName.indexOf("Netscape") >= 0 &&
                parseFloat(navigator.appVersion) >= 4) ? 1 : 0;
var mbMinIE4 = (document.all) ? 1 : 0;
var mbMinIE5 = (mbMinIE4 && navigator.appVersion.indexOf("5.")) >= 0 ? 1 : 0;

var mboolNS4   = ( ( navigator.appName.indexOf( "Netscape" ) >= 0 ) && ( parseInt( navigator.appVersion ) == 4 ) ) ? true : false ;
var mboolNS4Up = ( ( navigator.appName.indexOf( "Netscape" ) >= 0 ) && ( parseFloat( navigator.appVersion ) >= 4 ) ) ? true : false ;
var mboolNS5   = ( ( mboolNS4Up ) && ( parseInt( navigator.appVersion ) == 5 ) ) ? true : false ;
var mboolNS5Up = ( ( mboolNS4Up ) && ( parseFloat( navigator.appVersion ) >= 5 ) ) ? true : false ;
var miGeckoMajor = 0 ;

if ( mboolNS5Up )
{
   var liStartIdx = msAgent.indexOf( "rv:" ) ;

   if ( liStartIdx >= 0 )
   {
      var lsSubAgent = msAgent.substr( liStartIdx + 3 ) ;
      var liEndIdx   = lsSubAgent.indexOf( "." ) ;

      if ( liEndIdx >= 0 )
      {
         miGeckoMajor = parseInt( lsSubAgent.substr( 0, liEndIdx ) ) ;
      }
   }

}

function DHTMLLIB_HideLayer( foLayer )
{
   if ( foLayer != null )
   {
      if ( mboolNS4 )
      {
         foLayer.visibility = "hide" ;
      }
      else if ( mboolIE4Up || mboolNS5Up)
      {
         foLayer.style.display = "none" ;
         foLayer.style.visibility = "hidden" ;
      }
   }
}

function DHTMLLIB_HideLayerWithSpace( foLayer )
{
   if ( foLayer != null )
   {
      if ( mboolNS4 )
      {
         foLayer.visibility = "hide" ;
      }
      else if ( mboolIE4Up || mboolNS5Up )
      {
         foLayer.style.visibility = "hidden" ;
      }
   }
}

function DHTMLLIB_ShowLayer( foLayer )
{
   if ( foLayer != null )
   {
      if ( mboolNS4 )
      {
         foLayer.visibility = "show" ;
      }
      else if ( mboolIE4Up || mboolNS5Up)
      {
         if ( mboolNS5Up )
         {
            foLayer.style.display = "block" ;
         }
         else if ( mboolIE4Up )
         {
            foLayer.style.display = "inline" ;
         }
         foLayer.style.visibility = "visible" ;
      }
   }
}

function DHTMLLIB_IsVisible( foLayer )
{
   if ( foLayer == null )
   {
      return false ;
   }
   if ( mboolNS4 && foLayer.visibility == "show" )
   {
      return( true ) ;
   }
   if ( (mboolIE4Up || mboolNS5Up) && foLayer.style.visibility == "visible" )
   {
      return( true ) ;
   }

   return( false ) ;
}

function DHTMLLIB_MoveLayerTo(foLayer, fiXIndex, fiYIndex)
{
   if (mboolNS4)
   {
      foLayer.moveTo(fiXIndex, fiYIndex);
   }
   else if (mboolIE4Up || mboolNS5Up)
   {
      foLayer.style.left = fiXIndex;
      foLayer.style.top  = fiYIndex;
   }
}

function DHTMLLIB_MoveLayerBy(foLayer, foXDelta, foYDelta)
{
   DHTMLLIB_MoveLayerTo(foLayer, (DHTMLLIB_GetLeft(foLayer) + foXDelta),
                                 (DHTMLLIB_GetTop(foLayer) + foYDelta));
}

function DHTMLLIB_GetLeft(foLayer)
{

   if (mboolNS5Up || mboolIE4Up)
   {
      return parseInt('0' + foLayer.style.left, 10);
   }
   else if (mboolNS4)
   {
      return(foLayer.left);
   }

   return(-1);
}

function DHTMLLIB_GetTop(foLayer)
{
   if (mboolIE4Up)
   {
      return foLayer.style.pixelTop;
   }
   else if (mboolNS5Up)
   {
      return parseInt('0' + foLayer.style.top, 10);
   }
   else if (mboolNS4)
   {
      return(foLayer.top);
   }

   return(-1);
}

function DHTMLLIB_GetRight(foLayer)
{
   if (mboolNS5Up || mboolIE4Up)
   {
      return(foLayer.style.pixelLeft + DHTMLLIB_GetWidth(foLayer));
   }
   else if (mboolNS4)
   {
      return(foLayer.left + DHTMLLIB_GetWidth(foLayer));
   }

   return(-1);
}

function DHTMLLIB_GetBottom(foLayer)
{
   if (mboolNS5Up || mboolIE4Up)
   {
      return(foLayer.style.pixelTop + DHTMLLIB_GetHeight(foLayer));
   }
   else if (mboolNS4)
   {
      return(foLayer.top + DHTMLLIB_GetHeight(foLayer));
   }
   return(-1);
}

function DHTMLLIB_GetPageLeft(foLayer)
{
   if (mboolNS4)
   {
      return(foLayer.pageX);
   }
   else if (mboolIE4Up || mboolNS5Up)
   {
      return(foLayer.offsetLeft);
   }
   return(-1);
}

function DHTMLLIB_GetPageTop(foLayer)
{
   if (mboolNS4)
   {
      return(foLayer.pageY);
   }
   else if (mboolIE4Up || mboolNS5Up)
   {
      return(foLayer.offsetTop);
   }
   return(-1);
}

function DHTMLLIB_GetWidth(foLayer)
{
   if (mboolNS5Up)
   {
      return foLayer.offsetWidth;
   }
   else if (mboolIE4Up)
   {
      if (foLayer.style.pixelWidth)
      {
         return(foLayer.style.pixelWidth);
      }
      else
      {
         return(foLayer.clientWidth);
      }
   }
   else if (mboolNS4)
   {
      if (foLayer.document.width)
      {
         return(foLayer.document.width);
      }
      else
      {
         return(foLayer.clip.right - foLayer.clip.left);
      }
   }

   return(-1);
}

function DHTMLLIB_GetHeight(foLayer)
{
   if (mboolNS5Up)
   {
      return foLayer.offsetHeight;
   }
   else if (mboolIE4Up)
   {
      if (foLayer.style.pixelHeight)
      {
         return(foLayer.style.pixelHeight);
      }
      else
      {
         return(foLayer.clientHeight);
      }
   }
   else if (mboolNS4)
   {
      if (foLayer.document.height)
      {
         return(foLayer.document.height);
      }
      else
      {
         return(foLayer.clip.bottom - foLayer.clip.top);
      }
   }

   return(-1);
}

function DHTMLLIB_SetHeight( foLayer, fsHeight )
{
   if ( mboolNS4 )
   {
      foLayer.document.height = fsHeight ;
   }
   else if (mboolNS5Up)
   {
      foLayer.style.height = fsHeight + 'px';
   }
   else if ( mboolIE4Up )
   {
      foLayer.style.height = fsHeight ;
   }
}

function DHTMLLIB_SetWidth( foLayer, fiWidth )
{
   if ( mboolNS4 )
   {
      foLayer.document.width = fiWidth ;
   }
   else if (mboolNS5Up)
   {
      foLayer.style.width = fiWidth + 'px';
   }
   else if ( mboolIE4Up )
   {
      foLayer.style.width = fiWidth ;
   }
}

function DHTMLLIB_GetzIndex(foLayer)
{
   if (mboolNS4)
   {
      return(foLayer.zIndex);
   }
   else if (mboolIE4Up || mboolNS5Up)
   {
      return(foLayer.style.zIndex);
   }
   return(-1);
}

function DHTMLLIB_SetzIndex(foLayer, liZIndex)
{
   if (mboolNS4)
   {
      foLayer.zIndex = liZIndex;
   }
   else if (mboolIE4Up || mboolNS5Up)
   {
      foLayer.style.zIndex = liZIndex;
   }
}

function DHTMLLIB_ClipLayer(foLayer, liClipLeft, liClipTop,
                   liClipRight, liClipBottom)
{
   if (mboolNS4Up)
   {
      foLayer.clip.left   = liClipLeft;
      foLayer.clip.top    = liClipTop;
      foLayer.clip.right  = liClipRight;
      foLayer.clip.bottom = liClipBottom;
   }
   if (mboolIE4Up)
   {
      foLayer.style.clip = 'rect(' + liClipTop + ' ' +
        liClipRight + ' ' + liClipBottom + ' ' + liClipLeft +')';
   }
}

function DHTMLLIB_GetClipLeft(foLayer)
{
   var lsStr;
   var loClip;

   if (mboolNS4Up)
   {
      return(foLayer.clip.left);
   }

   if (mboolIE4Up)
   {
      lsStr =  foLayer.style.clip;
      if (!lsStr)
      {
         return(0);
      }
      loClip = DHTMLLIB_GetIEClipValues(foLayer.style.clip);
      return(loClip[3]);
   }
   return(-1);
}

function DHTMLLIB_GetClipTop(foLayer)
{
   var lsStr;
   var loClip;

   if (mboolNS4Up)
   {
      return(foLayer.clip.top);
   }
   if (mboolIE4Up)
   {
      lsStr =  foLayer.style.clip;
      if (!lsStr)
      {
         return(0);
      }
      loClip = DHTMLLIB_GetIEClipValues(foLayer.style.clip);
      return(loClip[0]);
   }
   return(-1);
}

function DHTMLLIB_GetClipRight(foLayer)
{
   var lsStr;
   var loClip;

   if (mboolNS4Up)
   {
      return(foLayer.clip.right);
   }

   if (mboolIE4Up)
   {
      lsStr =  foLayer.style.clip;
      if (!str)
      {
         return(foLayer.style.pixelWidth);
      }
      loClip = DHTMLLIB_GetIEClipValues(foLayer.style.clip);
      return(loClip[1]);
   }
   return(-1);
}

function DHTMLLIB_GetClipBottom(foLayer)
{
   var lsStr;
   var loClip;

   if (mboolNS4Up)
   {
      return(foLayer.clip.bottom);
   }

   if (mboolIE4Up)
   {
      lsStr =  foLayer.style.clip;
      if (!lsStr)
      {
         return(foLayer.style.pixelHeight);
      }

      loClip = DHTMLLIB_GetIEClipValues(foLayer.style.clip);
      return(clip[2]);
   }
   return(-1);
}

function DHTMLLIB_GetClipWidth(foLayer)
{
   var lsStr;
   var loClip;

   if (mboolNS4Up)
   {
      return(foLayer.clip.width);
   }
   if (mboolIE4Up)
   {
      lsStr = foLayer.style.clip;
      if (!lsStr)
      {
         return(foLayer.style.pixelWidth);
      }
      loClip = DHTMLLIB_GetIEClipValues(foLayer.style.clip);
      return(clip[1] - clip[3]);
   }
   return(-1);
}

function DHTMLLIB_GetClipHeight(foLayer)
{
   var lsStr;
   var loClip;

   if (mboolNS4Up)
   {
      return(foLayer.clip.height);
   }

   if (mboolIE4Up)
   {
      lsStr =  foLayer.style.clip;
      if (!lsStr)
      {
         return(foLayer.style.pixelHeight);
      }
      loClip = DHTMLLIB_GetIEClipValues(foLayer.style.clip);
      return(clip[2] - clip[0]);
   }
   return(-1);
}

function DHTMLLIB_GetIEClipValues(fsStr)
{
   var loClip = new Array();
   var liIndex;

   liIndex = fsStr.indexOf("(");
   clip[0] = parseInt(fsStr.substring(liIndex + 1, fsStr.length), 10);
   liIndex = fsStr.indexOf(" ", liIndex + 1);
   clip[1] = parseInt(fsStr.substring(liIndex + 1, fsStr.length), 10);
   liIndex = fsStr.indexOf(" ", liIndex + 1);
   clip[2] = parseInt(fsStr.substring(liIndex + 1, fsStr.length), 10);
   liIndex = fsStr.indexOf(" ", liIndex + 1);
   clip[3] = parseInt(fsStr.substring(liIndex + 1, fsStr.length), 10);
   return(loClip);
}

function DHTMLLIB_ScrollLayerTo(foLayer, fiXIndex, fiYIndex, foBound)
{

   var liXDelta = DHTMLLIB_GetClipLeft(foLayer) - fiXIndex;
   var liYDelta = DHTMLLIB_GetClipTop(foLayer) - fiYIndex;

   DHTMLLIB_ScrollLayerBy(foLayer, -liXDelta, -liYDelta, foBound);
}

function DHTMLLIB_ScrollLayerBy(foLayer, fiXDelta, fiYDelta, foBound)
{
var liClipLeft = DHTMLLIB_GetClipLeft(foLayer);
var liClipTop = DHTMLLIB_GetClipTop(foLayer);
var liClipRight = DHTMLLIB_GetClipRight(foLayer);
var liClipBottom = DHTMLLIB_GetClipBottom(foLayer);

   if (foBound)
   {
      if (liClipLeft + fiXDelta < 0)
     {
         fiXDelta = -liClipLeft;
      }
      else if (liClipRight + fiXDelta > DHTMLLIB_GetWidth(foLayer))
     {
         fiXDelta = DHTMLLIB_GetWidth(foLayer) - fiClipRight;
      }

      if (liClipTop + fiYDelta < 0)
     {
         fiYDelta = -liClipTop;
      }
      else if (liClipBottom + fiYDelta > DHTMLLIB_GetHeight(foLayer))
     {
         fiYDelta = DHTMLLIB_GetHeight(foLayer) - liClipBottom;
     }
   }

   DHTMLLIB_ClipLayer(foLayer, liClipLeft + fiXDelta,
             liClipTop + fiYDelta, liClipRight + fiXDelta,
          liClipBottom + fiYDelta);
   DHTMLLIB_MoveLayerBy(foLayer, -fiXDelta, -fiYDelta);
}

function DHTMLLIB_SetBgColor(foLayer, fsColor)
{
   if (mboolNS4)
   {
      foLayer.bgColor = fsColor;
   }
   else if (mboolIE4Up || mboolNS5Up)
   {
      foLayer.style.backgroundColor = fsColor;
   }
}

function DHTMLLIB_GetBgColor( foLayer )
{
   if (mboolNS4)
   {
      return foLayer.bgColor ;
   }
   else if (mboolIE4Up || mboolNS5Up)
   {
      return foLayer.style.backgroundColor ;
   }

   return null ;
}

function DHTMLLIB_SetBgImage(foLayer, fsSource)
{
   if (mboolNS4)
   {
      foLayer.background.src = fsSource;
   }
   else if (mboolIE4Up || mboolNS5Up)
   {
      foLayer.style.backgroundImage = "url(" + fsSource + ")";
   }
}

function DHTMLLIB_SetColor(foLayer, fsColor)
{
   if (mboolNS4)
   {
      foLayer.color = fsColor;
   }
   else if (mboolIE4Up || mboolNS5Up)
   {
      foLayer.style.color = fsColor;
   }
}

function DHTMLLIB_GetColor( foLayer )
{
   if (mboolNS4)
   {
      return foLayer.color ;
   }
   else if (mboolIE4Up || mboolNS5Up)
   {
      return foLayer.style.color ;
   }

   return null ;
}

function DHTMLLIB_GetLayer(fsName)
{
   if (mboolNS4Up)
   {
      return DHTMLLIB_FindLayer(fsName, document);
   }

   if (mboolIE4Up)
   {
      return eval('document.all.' + fsName);
   }

   return null;
}

function DHTMLLIB_GetLayerFromDocument( fsLayerName, fsDocumentPath )
{
   if ( mboolNS4 )
   {
      return DHTMLLIB_FindLayer( fsLayerName, eval( fsDocumentPath ) ) ;
   }
   else if (mboolNS5Up)
   {
      var loDocPath = eval(fsDocumentPath);
      if (loDocPath != null)
      {
         return loDocPath.getElementById(fsLayerName);
      }
   }
   else if ( mboolIE4Up )
   {
      return eval( fsDocumentPath + '.all.' + fsLayerName ) ;
   }

   return null;
}

function DHTMLLIB_FindLayer(fsName, foDoc)
{
   if (mboolNS5Up)
   {
      return foDoc.getElementById(fsName);
   }
   else if (mboolNS4)
   {
      var liCount, foLayer;

      for (liCount = 0; liCount < foDoc.layers.length; liCount++)
      {
         foLayer = foDoc.layers[liCount];
         if (foLayer.name == fsName)
         {
            return foLayer;
         }

         if (foLayer.document.layers.length > 0)
         {
            foLayer = DHTMLLIB_FindLayer(fsName, foLayer.document);
            if (foLayer != null)
            {
               return foLayer;
            }
         }
      }
   }
   return null;
}

function DHTMLLIB_GetWindowWidth()
{
   if ( mboolNS4Up )
   {
      return window.innerWidth ;
   }
   else if ( mboolIE4Up )
   {
      if (document.documentElement && document.documentElement.clientWidth)
      {
         return document.documentElement.clientWidth;
      }
      else
      {
         return document.body.clientWidth ;
      }
   }
   else
   {
      return -1 ;
   }
}

function DHTMLLIB_GetWindowHeight()
{
   if ( mboolNS4Up )
   {
      return window.innerHeight ;
   }
   else if ( mboolIE4Up )
   {
      if (document.documentElement && document.documentElement.clientHeight)
      {
         return document.documentElement.clientHeight;
      }
      else
      {
         return document.body.clientHeight ;
      }
   }
   else
   {
      return -1 ;
   }
}

function DHTMLLIB_SetWindowWidth(fiWidth)
{
   if (mboolNS4Up)
   {
      window.innerWidth = fiWidth;
   }
   if (mboolIE4Up)
   {
      if (document.documentElement && document.documentElement.clientWidth)
      {
         document.documentElement.clientWidth = fiWidth;
      }
      else
      {
         document.body.clientWidth = fiWidth;
      }
   }
   return(-1);
}

function DHTMLLIB_SetWindowHeight(fiHeight)
{
   if (mboolNS4Up)
   {
      window.innerHeight = fiHeight;
   }
   if (mboolIE4Up)
   {
      if (document.documentElement && document.documentElement.clientHeight)
      {
         document.documentElement.clientHeight = fiHeight;
      }
      else
      {
         document.body.clientHeight = fiHeight;
      }
   }
   return(-1);
}

function DHTMLLIB_GetPageWidth()
{
   if (mboolNS4Up)
   {
      return(document.width);
   }
   if (mboolIE4Up)
   {
      if (document.documentElement && document.documentElement.scrollWidth)
      {
         return document.documentElement.scrollWidth;
      }
      else
      {
         return(document.body.scrollWidth);
      }
   }
   return(-1);
}

function DHTMLLIB_GetPageHeight()
{
   if (mboolNS4Up)
   {
      return(document.height);
   }
   if (mboolIE4Up)
   {
      if (document.documentElement && document.documentElement.scrollHeight)
      {
         return document.documentElement.scrollHeight;
      }
      else
      {
         return(document.body.scrollHeight);
      }
   }
   return(-1);
}

function DHTMLLIB_GetPageScrollX()
{
   if (mboolNS4Up)
   {
      return(window.pageXOffset);
   }
   if (mboolIE4Up)
   {
      if (document.documentElement && document.documentElement.scrollLeft)
      {
         return document.documentElement.scrollLeft;
      }
      else
      {
         return(document.body.scrollLeft);
      }
   }
   return(-1);
}

function DHTMLLIB_GetPageScrollY()
{
   if (mboolNS4Up)
   {
      return(window.pageYOffset);
   }
   if (mboolIE4Up)
   {
      if (document.documentElement && document.documentElement.scrollTop)
      {
         return document.documentElement.scrollTop;
      }
      else
      {
         return(document.body.scrollTop);
      }

   }
   return(-1);
}

function DHTMLLIB_OpenNewWin( fsDestURL, fsWinName, fsHasTBar, fsHasLocation,
                     fsHasDirectories, fsHasStatusBar, fsHasMenuBar,
                     fsCanResize, fsHasScrollbars, fiWidth, fiHeight, fiLeft,
                     fiTop, fbGainFocus )
{
   var lsWinName         = fsWinName        ? fsWinName        : "_new" ;
   var lsHasTBar         = fsHasTBar        ? fsHasTBar        : "yes" ;
   var lsHasLocation     = fsHasLocation    ? fsHasLocation    : "yes" ;
   var lsHasDirectories  = fsHasDirectories ? fsHasDirectories : "yes" ;
   var lsHasStatusBar    = fsHasStatusBar   ? fsHasStatusBar   : "yes" ;
   var lsHasMenuBar      = fsHasMenuBar     ? fsHasMenuBar     : "yes" ;
   var lsCanResize       = fsCanResize      ? fsCanResize      : "yes" ;
   var lsHasScrollbars   = fsHasScrollbars  ? fsHasScrollbars  : "yes" ;
   var liWidth           = fiWidth          ? fiWidth          : DHTMLLIB_GetWindowWidth() ;
   var liHeight          = fiHeight         ? fiHeight         : DHTMLLIB_GetWindowHeight() ;
   var liLeft            = fiLeft           ? fiLeft           : 0 ;
   var liTop             = fiTop            ? fiTop            : 0 ;
   var lsNewBrowserProps = "" ;
   var loNewBrowser ;

   lsNewBrowserProps += "toolbar="     + lsHasTBar        + "," ;
   lsNewBrowserProps += "location="    + lsHasLocation    + "," ;
   lsNewBrowserProps += "directories=" + lsHasDirectories + "," ;
   lsNewBrowserProps += "status="      + lsHasStatusBar   + "," ;
   lsNewBrowserProps += "menubar="     + lsHasMenuBar     + "," ;
   lsNewBrowserProps += "resizable="   + lsCanResize      + "," ;
   lsNewBrowserProps += "scrollbars="  + lsHasScrollbars  + "," ;
   lsNewBrowserProps += "width="       + liWidth          + "," ;
   lsNewBrowserProps += "height="      + liHeight         + "," ;
   lsNewBrowserProps += "top="         + liTop            + "," ;
   lsNewBrowserProps += "screenx="     + liTop            + "," ;
   lsNewBrowserProps += "left="        + liLeft           + "," ;
   lsNewBrowserProps += "screeny="     + liLeft           + "," ;

   loNewBrowser = window.open( fsDestURL, lsWinName, lsNewBrowserProps ) ;

   if (fbGainFocus == true)
   {
      loNewBrowser.focus();
   }

   return loNewBrowser ;


}

function DHTMLLIB_GetEvenNumber( fiNum )
{
   if ( ( fiNum % 2 ) == 1 )
   {
      return ( fiNum - 1 ) ;
   }
   return fiNum ;
}

function DHTMLLIB_GetLayers()
{
   if ( mboolNS4 )
   {
      return( document.layers ) ;
   }
   else if (mboolNS5Up)
   {
      return document.getElementsByTagName('DIV');
   }
   else if ( mboolIE4Up )
   {
      return( document.all.tags("DIV") ) ;
   }

   return null ;
}

function DHTMLLIB_GetClassName( foHTMLObject )
{
   if ( foHTMLObject == null )
   {
      return null;
   }

   if (mboolIE4Up || mboolNS5Up)
   {
      return foHTMLObject.className ;
   }

   return null ;
}

function DHTMLLIB_SetClassName( foHTMLObject, fsClassName )
{
   if ( foHTMLObject == null || fsClassName == null)
   {
      return ;
   }

   if (mboolIE4Up || mboolNS5Up)
   {
      foHTMLObject.className = fsClassName;
   }
}

var miDHTMLLIB_DivMoveStartX = 0 ;
var miDHTMLLIB_DivMoveStartY = 0 ;
var moDHTMLLIB_DivToMove = null ;
var mbDHTMLLIB_MovingDiv = false ;

function DHTMLLIB_StartMoveDiv( foDiv, foEvent )
{
   if ( ( foDiv == null ) || ( foEvent == null ) )
   {
      DHTMLLIB_StopMoveDiv() ;
      return ;
   }

   if (mboolIE4Up)
   {
      miDHTMLLIB_DivMoveStartX = foEvent.x ;
      miDHTMLLIB_DivMoveStartY = foEvent.y ;
   }
   else if (mboolNS5Up)
   {
      miDHTMLLIB_DivMoveStartX = foEvent.pageX ;
      miDHTMLLIB_DivMoveStartY = foEvent.pageY ;
   }

   moDHTMLLIB_DivToMove = foDiv ;
   mbDHTMLLIB_MovingDiv = true ;
}

function DHTMLLIB_StopMoveDiv()
{
   miDHTMLLIB_DivMoveStartX = 0 ;
   miDHTMLLIB_DivMoveStartY = 0 ;
   moDHTMLLIB_DivToMove = null ;
   mbDHTMLLIB_MovingDiv = false ;
}

function DHTMLLIB_MoveDiv( foDiv, foEvent )
{
   var liChangeX ;
   var liChangeY ;

   if ( ( mbDHTMLLIB_MovingDiv == false ) || ( foDiv == null ) || ( foDiv != moDHTMLLIB_DivToMove ) || ( foEvent == null ) )
   {
      DHTMLLIB_StopMoveDiv() ;
      return ;
   }

   if (mboolIE4Up)
   {
      liChangeX = foEvent.x - miDHTMLLIB_DivMoveStartX ;
      liChangeY = foEvent.y - miDHTMLLIB_DivMoveStartY ;
   }
   else if (mboolNS5Up)
   {
      liChangeX = foEvent.pageX - miDHTMLLIB_DivMoveStartX ;
      liChangeY = foEvent.pageY - miDHTMLLIB_DivMoveStartY ;
   }

   DHTMLLIB_MoveLayerBy( foDiv, liChangeX, liChangeY ) ;

   miDHTMLLIB_DivMoveStartX += liChangeX ;
   miDHTMLLIB_DivMoveStartY += liChangeY ;
}

function DHTMLLIB_MoveMovingDiv( foEvent )
{
   DHTMLLIB_MoveDiv( moDHTMLLIB_DivToMove, foEvent ) ;
}

function DHTMLLIB_IsCtrlKey(foEvent)
{
   if (mboolNS4Up)
   {
      return foEvent.modifiers & Event.CONTROL_MASK;
   }
   else
   {
      return window.event.ctrlKey;
   }
}

function DHTMLLIB_IsAltKey(foEvent)
{
   if (mboolNS4Up)
   {
      return foEvent.modifiers & Event.ALT_MASK;
   }
   else
   {
      return window.event.altKey;
   }
}

function DHTMLLIB_IsShiftKey(foEvent)
{
   if (mboolNS4Up)
   {
      return foEvent.modifiers & Event.SHIFT_MASK;
   }
   else
   {
      return window.event.shiftKey;
   }
}

function DHTMLLIB_IsLeftMouseButton(foEvent)
{
   if (mboolNS4Up)
   {
      if (foEvent.which == 1)
      {
         return true;
      }
   }
   else
   {
      if (window.event.button == 0)
      {
         return true;
      }
   }
   return false;
}

function DHTMLLIB_IsRightMouseButton(foEvent)
{
   if (mboolNS4Up)
   {
      if (foEvent.which == 3)
      {
         return true;
      }
   }
   return false;
}

function DHTMLLIB_SetAttributeValue( foHTMLObject, fsAttrName, fsAttrValue )
{
   if ( ( foHTMLObject == null ) || ( fsAttrName == null ) || ( fsAttrValue == null ) )
   {
      return ;
   }

   if ( mboolIE4Up )
   {
      foHTMLObject[fsAttrName] = fsAttrValue;
   }
   else if ( mboolNS5Up )
   {
      var loNode = foHTMLObject.getAttributeNode( fsAttrName ) ;

      if ( loNode != null )
      {
         loNode.value = fsAttrValue;
      }
      else
      {
         foHTMLObject.setAttribute( fsAttrName , fsAttrValue );
      }
   }
}

function DHTMLLIB_GetAttributeValue( foHTMLObject, fsAttrName )
{
   if ( ( foHTMLObject == null ) || ( fsAttrName == null ) )
   {
      return null ;
   }

   if ( mboolIE4Up )
   {
      if ( foHTMLObject[fsAttrName] )
      {
         return foHTMLObject[fsAttrName] ;
      }
   }
   else if ( mboolNS5Up )
   {
      var loNode = foHTMLObject.getAttributeNode( fsAttrName ) ;

      if ( loNode != null )
      {
          return loNode.value ;
      }
   }

   return null ;
}

function DHTMLLIB_ClickElement( foElement, foDocument )
{
   if ( foDocument == null )
   {
       foDocument = document ;
   }

   window.focus() ;
   if ( mboolNS5Up )
   {
      if (foElement.type == "submit")
      {
         foElement.click() ;
      }
      else if (foElement.type == "image")
      {
         var lsTarget = DHTMLLIB_GetAttributeValue(foElement, 'target');
         if (lsTarget == null)
         {
            lsTarget = document.forms[0].frame_name.value;
         }

         var lsName = DHTMLLIB_GetAttributeValue(foElement, 'name');
         if (lsName != null)
         {
            var lsQueryString = lsName + '.x=0';

            submitForm(document.forms[0], lsQueryString, '');
            return;
         }
      }
      else
      {
         var lsOnclick = DHTMLLIB_GetAttributeValue( foElement, 'onclick' );
         var lsHREF = DHTMLLIB_GetAttributeValue( foElement, 'HREF' );
         
         if ( ( ( lsHREF == "javascript:{}" ) || ( lsHREF == "" ) ) && ( lsOnclick != null ) )
         {	
            var lsOnclickArray = lsOnclick.split(";");
            for ( var i=0; i < lsOnclickArray.length; i++ )
            {
                eval( lsOnclickArray[i] );
            }
         }
         else
         {
            foElement.focus();
            foDocument.location.href = lsHREF ;
         }
      }
   }
   else if ( mboolIE4Up )
   {
      foElement.click() ;
   }
}
