/* Overlap Animation Applet
   JDK1.1‘Î‰ž”Å
                  Coded By.KeN    Mar.19,1997
*/

import java.applet.AudioClip;
import java.awt.*;
import java.lang.Integer;
import java.net.*;
import java.awt.event.*;

public class LinkFlush extends java.applet.Applet implements MouseListener {
  
  int r, g, b;
  int fr, fg, fb;
  Image src;
  boolean flag = false;
  String filename;
  URL anchor;
  Graphics goff;
  Image ioff;

  public void init() {
    String s = null;

    s = getParameter( "r" ) ;
    r =  ( s != null ) ? Integer.valueOf(s).intValue() : 255;
    s = getParameter( "g" );
    g =  ( s != null ) ? Integer.valueOf(s).intValue() : 255;
    s = getParameter( "b" );
    b =  ( s != null ) ? Integer.valueOf(s).intValue() : 255;
    s = getParameter( "fr" );
    fr =  ( s != null ) ? Integer.valueOf(s).intValue() : 255;
    s = getParameter( "fg" );
    fg =  ( s != null ) ? Integer.valueOf(s).intValue() : 255;
    s = getParameter( "fb" );
    fb =  ( s != null ) ? Integer.valueOf(s).intValue() : 255;

    s = getParameter( "href" );
    try {
      anchor = new URL( getDocumentBase(), s );
    } catch ( MalformedURLException e ) {
      anchor = null;
    }
    
    filename = getParameter( "src" );
    ioff = createImage( getSize().width, getSize().height );
    goff = ioff.getGraphics();
    addMouseListener( this );
  }

  public void paint( Graphics scr ) {
    if ( flag == true ) {
      goff.setColor( new Color ( fr, fg, fb ) );
    } else {
      goff.setColor( new Color ( r, g, b ) );
    }
    src = getImage( getDocumentBase(), filename );
    goff.fillRect( 0, 0, getSize().width, getSize().height );
    goff.drawImage( src, 0, 0, this );
    scr.drawImage( ioff, 0, 0, this );
  }

  public void mouseClicked( MouseEvent e ) {
    if ( anchor != null ) {
      this.getAppletContext().showDocument( anchor, "_top" );
    }
  }

  public void mouseEntered( MouseEvent e ) {
    flag = true;
    repaint();
    showStatus( (anchor != null)
                   ? "" + anchor.toExternalForm()
                   : null );
  }

  public void mouseExited( MouseEvent e ) {
    flag = false;
    repaint();
  }

  public void mousePressed( MouseEvent e ) {
  }

  public void mouseReleased( MouseEvent e ) {
  }

  public void update( Graphics scr ) {
    paint( scr );
  }
}

