
   // 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;

   // -------------------------------------------------------
   // 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() {
      init();

      purpleTabsSetHeight = 414;

      try { fixFlashObjects(); } catch( err ) { /* Do nothing, Ignore error */ }

      try {
         newGoButton     = new Image();
         newGoButton.src = "../images/Purple_Crayons/" + flag + "/go.gif"; }
      catch( err ) {
         if( document.getElementById( 'login' ) ) {
            loginButton                  = document.getElementById( 'login' );
            loginButton.style.visibility = 'visible'; } }

      try { initPurpleDrawers(); } catch( err ) { /* Do nothing, Ignore error */ }
      try { initPurpleTabs(); } catch( err ) { /* Do nothing, Ignore error */ }

      Nifty( 'div.roundedCorners,div#adSpace,div#mainBanner,#subBanner,div#pageFooter', 'small all transparent' );

      // These MUST be the LAST corners added in order to correct the color by a reference id number:
      Nifty( 'div#loginContainerWrapper', 'small all transparent' );
      Nifty( 'div#registerContainer', 'small all transparent' );

      loginTabCornerReference = niftyCornerCache.length - 6;

      niftyCornerCache[ loginTabCornerReference     ].style.borderRightColor = '#' + corner_palette[ flag ];
      niftyCornerCache[ loginTabCornerReference + 1 ].style.borderRightColor = '#' + corner_palette[ flag ];
      niftyCornerCache[ loginTabCornerReference + 2 ].style.borderLeftColor  = '#' + corner_palette[ flag ];
      niftyCornerCache[ loginTabCornerReference + 3 ].style.borderLeftColor  = '#' + corner_palette[ flag ];

      if( savedColor = getCookie( 'mp_color_scheme' ) ) { setActiveStyleSheet( savedColor ); }

      if( document.getElementById( 'login' ) ) {
         loginButton                  = document.getElementById( 'login' );
         loginButton.src              = newGoButton.src;
         loginButton.style.height     = 22; // newGoButton.height;
         loginButton.style.width      = 60; // newGoButton.width;
         loginButton.style.visibility = 'visible'; }

      cursorInit();

      // Fix panel heights:
      try { var pageContainer        = document.getElementById( 'pageContentWrapper'       );                             } catch( e ) {}
      try { var rightPanel           = document.getElementById( 'rightNav'                 );                             } catch( e ) {}
      try { var leftPanel            = document.getElementById( 'leftSubNav'               );                             } catch( e ) {}
      try { var contentArea          = document.getElementById( 'subContentArea'           );                             } catch( e ) {}
      try { var centerPanel          = document.getElementById( 'subContentAreaInterior'   );                             } catch( e ) {}
      try { var subContainer         = document.getElementById( 'subPageContainer'         );                             } catch( e ) {}
      try { var subContainerInterior = document.getElementById( 'subPageContainerInterior' );                             } catch( e ) {}
      try { var convio_appPanel      = document.getElementById( 'convio_appWrapper' ).getElementsByTagName( 'div' )[ 0 ]; } catch( e ) {}

      try { pageContainer.style.height        = 'auto'; } catch( e ) {}
      try { subContainer.style.height         = 'auto'; } catch( e ) {}
      try { subContainerInterior.style.height = 'auto'; } catch( e ) {}
      try { convio_appPanel.style.height      = 'auto'; } catch( e ) {}

      panelHeights = new Array();

      var rightPanelOffset = 240;

      try { panelHeights[ panelHeights.length ] = findHeight( rightPanel      ) - rightPanelOffset; } catch( e ) {}
      try { panelHeights[ panelHeights.length ] = findHeight( centerPanel     );                    } catch( e ) {}
      try { panelHeights[ panelHeights.length ] = findHeight( leftPanel       );                    } catch( e ) {}
      try { convio_appPanel_height              = findHeight( convio_appPanel ) - rightPanelOffset; } catch( e ) {}

      try {
         if( convio_appPanel_height <= 0 ) {
            convio_appPanel_height = findHeight( convio_appPanel.parentNode ); }

         panelHeights[ panelHeights.length ] = convio_appPanel_height; }
      catch( e ) {}

      panelHeight = panelHeights.max();

      try { pageContainer.style.height   = panelHeight + rightPanelOffset; } catch( e ) {}
      try { rightPanel.style.height      = panelHeight + rightPanelOffset; } catch( e ) {}
      try { leftPanel.style.height       = panelHeight;                    } catch( e ) {}
      try { contentArea.style.height     = panelHeight;                    } catch( e ) {}
      try { centerPanel.style.height     = panelHeight;                    } catch( e ) {}
      try { pageContainer.style.overflow = 'hidden';                       } catch( e ) {}
      try { rightPanel.style.overflow    = 'hidden';                       } catch( e ) {}
      try { leftPanel.style.overflow     = 'hidden';                       } catch( e ) {}
      try { contentArea.style.overflow   = 'hidden';                       } catch( e ) {}
      try { centerPanel.style.overflow   = 'hidden';                       } catch( e ) {}

      try {
         if( document.getElementById( 'leftSubNav' ) ) {
            if( panelHeight < 672 ) {
               panelHeight = 672; }
            else if( panelHeight > 681 ) {
               try {
                  rightNavPadding     = document.createElement( 'div' );
                  rightNavFiller      = document.createElement( 'div' );
                  rightNavFillerImage = document.createElement( 'img' );

                  rightNavPadding.style.height     = 5;
                  rightNavPadding.style.lineHeight = 5;
                  rightNavPadding.style.overflow   = 'hidden';
                  rightNavPadding.innerHTML        = '<br />';
                  rightNavFillerImage.src          = '../images/Purple_Crayons/universal/space.gif';
                  rightNavFillerImage.style.height = rightNavFiller.style.height = panelHeight - 677;
                  rightNavFillerImage.style.width  = rightNavFiller.style.width  = 224;
                  rightNavFiller.id                = 'rightNavFillBox';
                  rightNavFiller.style.overflow    = 'hidden';
                  rightNavFiller.className         = 'roundedCorners';

                  rightNav.appendChild( rightNavPadding );
                  rightNavFiller.appendChild( rightNavFillerImage );
                  rightNav.appendChild( rightNavFiller );

                  Nifty( 'div#rightNavFillBox', 'small all transparent' );

                  loginTabCornerReference = niftyCornerCache.length - 10; }
               catch( e ) {} }

            convio_appPanel.style.parentNode.height = panelHeight;
            convio_appPanel.style.height            = panelHeight; }
         else {
            if( ( !panelHeight ) || ( ( panelHeight + rightPanelOffset ) < 902 ) ) { panelHeight = 902 - rightPanelOffset; }

            convio_appPanel.style.parentNode.height = panelHeight;
            convio_appPanel.style.height            = panelHeight;

            convio_appPanel.style.minHeight = panelHeight + rightPanelOffset;

            if( navigator.appVersion.indexOf( 'MSIE' ) > -1 ) {
               convio_appPanel.style.height = panelHeight + rightPanelOffset - 10; }

            convio_appPanel.style.overflow = 'visible'; } }
      catch( e ) {}

      try { loadNews() } catch( err ) { /* Do nothing, Ignore error */ } }

   // Fix stylesheet before page loads (for saved colors):
   setActiveStyleSheet( flag );

//-->
