restore_value = new Array();
var traceMe =
{
  init:
  function( ) {
            var trace_test = Core.getElementsByClass( 'trace_test' );

            for( var i=0; i<trace_test.length; i++ ) {
                 Core.addEventListener( trace_test[i], "mouseover", traceMe.toggleOffListener );
                 Core.addEventListener( trace_test[i], "mouseout", traceMe.toggleOnListener );
            }
  },

  toggleOnListener:
  function( event ) {
            traceMe.toggle( 'trace_test', 1 );
            Core.preventDefault( event );
  },

  toggleOffListener:
  function( event ) {
            traceMe.toggle( 'trace_test', 0 );
            Core.preventDefault( event );
  },

  toggle:
  function( e, s ) {
            var elems = Core.getElementsByClass( e );

            if( s == 1 ) {
                for( var i=0; i<elems.length; i++ ) {
                   is_on = ( Core.hasClass( elems[i], 'on' ) );
                   if( is_on ) {
                       Core.removeClass( elems[i], 'hidden' );
                   } else {
                       Core.addClass( elems[i], 'hidden' );
                   }
                }
            } else {
                for( var i=0; i<elems.length; i++ ) {
                   is_off = ( Core.hasClass( elems[i], 'off' ) );
                   if( is_off ) {
                       Core.removeClass( elems[i], 'hidden' );
                   } else {
                       Core.addClass( elems[i], 'hidden' );
                   }
                }
            }


  }

}
Core.start( traceMe );

var dig =
{
  init:
  function( ) {
            var dig_elems = Core.getElementsByClass( 'dig' );

            for( var i=0; i<dig_elems.length; i++ ) {
                 Core.addEventListener( dig_elems[i], "mouseover", dig.showOffListener );
                 Core.addEventListener( dig_elems[i], "focus", dig.showOffnListener );
            }
  },

  showOffListener:
  function( event ) {
            dig.showOff( 'dig', 1 );
            Core.preventDefault( event );
  },

  showOff:
  function( e, s ) {
            var elems = Core.getElementsByClass( e );

            for( var i=0; i<elems.length; i++ ) {
               is_off = ( Core.hasClass( elems[i], 'off' ) );
               if( is_off ) {
                   Core.removeClass( elems[i], 'hidden' );
               }
            }
  }
}
Core.start( dig );

var clears =
{
  init:
  function( ) {
            var clear_me = Core.getElementsByClass( 'clear_me' );

            for( i=0; i<clear_me.length; i++ ) {
                 Core.addEventListener( clear_me[i], "focus", clears.clearListener );
                 Core.addEventListener( clear_me[i], "blur", clears.restoreListener );
            }
  },

  clearListener:
  function( event ) {
            clears.clear( this );
            Core.preventDefault( event );
  },

  restoreListener:
  function( event ) {
            clears.restore( this );
            Core.preventDefault( event );
  },

  clear:
  function( e ) {
            id = e.id;
            restore_value[id] = e.value;
            e.value = '';
  },

  restore:
  function( e ) {
            id = e.id;
            e.value = restore_value[id];
  }
}
Core.start( clears );


