
   // This variable saves the first tab corner as a reference point so that they can still be modified if corners are dynamically added:
   var loginTabCornerReference;
   var flipImageDelay;

   // -------------------------------------------------------
   // Written by Jonathan Snook, http://www.snook.ca/jonathan
   // Add-ons by Robert Nyman, http://www.robertnyman.com
   // -------------------------------------------------------
   function getElementsByClassName( oElm, strTagName, strClassName ) {
      var arrElements       = ( strTagName == "*" && oElm.all ) ? oElm.all : oElm.getElementsByTagName( strTagName );
      var arrReturnElements = new Array();

      strClassName = strClassName.replace( /-/g, "\-" );

      var oRegExp = new RegExp( "(^|\s)" + strClassName + "(\s|$)" );
      var oElement;

      for( var i = 0; i < arrElements.length; i++ ) {
         oElement = arrElements[ i ];

         if( oRegExp.test( oElement.className ) ) {
            arrReturnElements.push( oElement ); } }

      return( arrReturnElements ) }
   // -------------------------------------------------------

   // Initiate Mouse Functions:
   var mouseX = 0;
   var mouseY = 0;

   function cursorInit() {
      try { document.captureEvents( Event.MOUSEMOVE ); } catch( err ) { /* Do Nothing, Ignore Errore */ }

      document.onmousemove = getMouseXY; }

   function move( e ) {
      var nX = 0;
      var nY = 0;

      errMsg = "Error: Browser not detected!";

      if( bw ) {
         errMsg = "";

         try {
            nX = e.clientX;
            nY = e.clientY; }
         catch( err ) {
            errMsg = 'Error [#' + err.number + '] tracking mouse: (' + nX.toString() + ', ' + nY.toString() + '), Description: ' + err.description; }

         try {
            nX = bw.ns4 || bw.ns5 ? e.pageX : event.x;
            nY = bw.ns4 || bw.ns5 ? e.pageY : event.y;

            errMsg = ""; }
         catch( err ) {
            errMsg = 'Error [#' + err.number + '] tracking mouse: (' + nX.toString() + ', ' + nY.toString() + '), Description: ' + err.description; }

         mouseX = nX;
         mouseY = nY; }

/* === Activate to Debug Mouse Tracker === */
//      if( errMsg > "" ) { window.status = errMsg; } else { window.status = 'Mouse: (' + mouseX.toString() + ', ' + mouseY.toString() + ') / '; }
/* ======================================= */ }

   function getMouseXY( e ) {
      var nX = 0;
      var nY = 0;

      errMsg = "Error: Browser not detected!";

         try {                                              // grab the x-y pos.s if browser is IE
            nX = event.clientX + document.body.scrollLeft;
            nY = event.clientY + document.body.scrollTop; }
         catch( err ) {
            errMsg = 'Error [#' + err.number + '] tracking mouse: (' + nX.toString() + ', ' + nY.toString() + '), Description: ' + err.description; }

         try {                                              // grab the x-y pos.s if browser is NS
            nX = e.pageX;
            nY = e.pageY;

            errMsg = ""; }
         catch( err ) {
            errMsg = 'Error [#' + err.number + '] tracking mouse: (' + nX.toString() + ', ' + nY.toString() + '), Description: ' + err.description; }

      if( nX < 0 ) { nX = 0; }
      if( nY < 0 ) { nY = 0; }

      mouseX = nX;
      mouseY = nY;

/* === Activate to Debug Mouse Tracker === */
//      if( errMsg > "" ) { window.status = errMsg; } else { window.status = 'Mouse: (' + mouseX.toString() + ', ' + mouseY.toString() + ') / '; }
/* ======================================= */

      return true; }

   function findPosX( obj ) {
      var curleft = 0;

      if( obj.offsetParent ) {
         while( 1 ) {
            curleft += obj.offsetLeft;

            if( !obj.offsetParent ) { break; }

            obj = obj.offsetParent; } }
      else if( obj.x ) {
         curleft += obj.x; }

      return curleft; }

   function findPosY( obj ) {
      var curtop = 0;

      if( obj.offsetParent ) {
         while( 1 ) {
            curtop += obj.offsetTop;

            if( !obj.offsetParent ) { break; }

            obj = obj.offsetParent; } }
      else if( obj.y ) {
         curtop += obj.y; }

      return curtop; }

   function findHeight( obj ) {
      try {
         if( obj.style.height ) {
            return parseInt( obj.style.height ); } }
      catch( err ) { /* Do Nothing, Ignore Error */ }

      try {
         if( obj.style.paddingTop ) {
            ePadding = obj.style.paddingTop; } }
      catch( err ) {
         ePadding = 0; }

      try {
         if( obj.style.marginTop ) {
            eMargin = obj.style.marginTop; } }
      catch( err ) {
         eMargin = 0; }

      if( obj.offsetHeight ) {
         return parseInt( obj.offsetHeight ); }
      else if( obj.height ) {
         return parseInt( obj.height ); }
      else {
         return null; } }

   function findWidth( obj ) {
      try {
         if( obj.style.width ) {
            return parseInt( obj.style.width ); } }
      catch( err ) { /* Do Nothing, Ignore Error */ }

      if( obj.offsetWidth ) {
         return parseInt( obj.offsetWidth ); }
      else if( obj.width ) {
         return parseInt( obj.width ); }
      else {
         return null; } }

   Array.prototype.max =
      function () {
         if( this.length == 0 ) { return undefined; }

         var n = Number( this[ 0 ] );

         for( var i = 1; i < this.length; i++ ) {
            n = Math.max( n, this[ i ] ); }

         return n; };

   function pc_init() {
      if( typeof( initPurpleDrawers ) == 'function' ) { initPurpleDrawers(); }
      if( typeof( initPurpleTabs    ) == 'function' ) { initPurpleTabs();    }

      try { if( flipImageDelay <= 0 ) { flipImageDelay = 8; } } catch( e ) { flipImageDelay = 8; }

      try {
         flipImage           = -1;
         testFlipperImage    = new Image();
         currentFlipperImage = document.getElementById( 'flipper' ).src;

         for( var i = 0; i < flipImages.length; i++ ) {
            testFlipperImage.src = flipImages[ i ];

            if( currentFlipperImage == testFlipperImage.src ) { flipImage = i; } }

         setTimeout( 'initFlipper()', ( flipTimeDelay * 1000 ) ); }
      catch( e ) {} }

//-->