home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.applet.AudioClip;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Event;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.MediaTracker;
- import java.awt.image.FilteredImageSource;
- import java.io.InputStream;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.net.URLConnection;
- import java.util.StringTokenizer;
-
- public class AmpersandBanner1_2 extends Applet implements Runnable {
- Thread animator;
- Image[] image;
- Image offscreen;
- MediaTracker tracker;
- AudioClip audioclip;
- // $FF: renamed from: og java.awt.Graphics
- Graphics field_0;
- Color backcolor;
- // $FF: renamed from: y1 int
- int field_1;
- // $FF: renamed from: y2 int
- int field_2;
- int imageY;
- int bannercount;
- int pause;
- int thisimage = 1;
- int nextimage = 1;
- int oldimage;
- int width;
- int height;
- int total;
- int count;
- long delay;
- long now;
- long then;
- long threadsleep;
- String parameter;
- String target;
- String correcthost;
- String[] urls;
- String[] targets;
- String[] audioclips;
- String[] images;
- int[] weights;
- int[] weight;
- URL url;
- URL oldurl;
- boolean loading;
- boolean random;
- boolean registered;
-
- public void init() {
- System.out.println("\nAmpersand Internet Banner Applet");
- System.out.println("Version 1.2");
- System.out.println("Copyright 1997 Ampersand Internet All Rights Reserved");
- System.out.println("http://www.powerup.com.au/~mgk\n");
- this.correcthost = "http://www.powerup.com.au/~mgk";
- ((Applet)this).getDocumentBase().toString();
- this.registered = true;
- this.width = ((Component)this).size().width;
- this.height = ((Component)this).size().height;
- this.offscreen = ((Component)this).createImage(this.width, this.height);
- this.field_0 = this.offscreen.getGraphics();
- this.tracker = new MediaTracker(this);
- if (((Applet)this).getParameter("configfile") != null) {
- this.externalconfig();
- } else {
- this.paramconfig();
- }
- }
-
- public void start() {
- if (this.animator == null) {
- this.then = System.currentTimeMillis();
- if (this.random) {
- while(this.weight[this.thisimage] < 1) {
- this.thisimage = (int)(Math.random() * (double)this.bannercount) + 1;
- if (this.now - this.then > (long)this.pause) {
- this.setweights();
- }
- }
- } else {
- this.thisimage = 1;
- }
-
- ++this.count;
- int var10002 = this.weight[this.thisimage]--;
- this.imageY = 0;
- this.loading = true;
- this.field_0.fillRect(0, 0, this.width, this.height);
- this.field_0.drawImage(this.image[this.thisimage], 0, 0, this);
- this.then = System.currentTimeMillis();
- if (!this.random) {
- this.nextimage = this.thisimage + 1;
- } else {
- while(this.nextimage == this.thisimage || this.weights[this.nextimage] < 1) {
- this.nextimage = (int)(Math.random() * (double)this.bannercount) + 1;
- this.now = System.currentTimeMillis();
- if (this.now - this.then > (long)this.pause) {
- this.setweights();
- }
- }
- }
-
- ++this.count;
- var10002 = this.weight[this.nextimage]--;
- this.animator = new Thread(this);
- this.animator.start();
- }
-
- }
-
- public void stop() {
- if (this.animator != null) {
- this.animator.stop();
- this.animator = null;
- }
-
- }
-
- public void run() {
- for(; Thread.currentThread() == this.animator; ++this.imageY) {
- this.then = System.currentTimeMillis();
- ((Component)this).repaint();
- this.now = System.currentTimeMillis();
- this.delay = this.now - this.then;
- if (this.delay > this.threadsleep) {
- this.delay = this.threadsleep;
- }
-
- try {
- Thread.sleep(this.threadsleep);
- } catch (InterruptedException var3) {
- }
-
- if (this.imageY == this.height + 1 || this.loading) {
- try {
- Thread.sleep((long)this.pause);
- } catch (InterruptedException var2) {
- }
-
- this.imageY = 0;
- this.oldimage = this.thisimage;
- if (!this.loading) {
- this.thisimage = this.nextimage;
- }
-
- this.then = System.currentTimeMillis();
- if (!this.random) {
- this.nextimage = this.thisimage + 1;
- if (this.nextimage > this.bannercount) {
- this.nextimage = 1;
- }
- } else {
- while(this.nextimage == this.thisimage || this.weight[this.nextimage] < 1) {
- this.nextimage = (int)(Math.random() * (double)this.bannercount) + 1;
- this.now = System.currentTimeMillis();
- if (this.now - this.then > (long)this.pause) {
- this.setweights();
- }
- }
-
- ++this.count;
- int var10002 = this.weight[this.nextimage]--;
- if (this.count == this.total) {
- this.setweights();
- }
- }
-
- try {
- this.tracker.waitForID(this.nextimage);
- } catch (InterruptedException var1) {
- this.loadimage(this.nextimage, this.images[this.nextimage]);
- }
-
- if (this.tracker.isErrorID(this.nextimage)) {
- this.loadimage(this.nextimage, this.images[this.nextimage]);
- }
-
- this.loading = false;
- }
- }
-
- }
-
- public void update(Graphics var1) {
- this.paint(var1);
- this.field_1 = -this.imageY;
- this.field_2 = -this.imageY + this.height;
- this.field_0.fillRect(0, this.field_1, this.width, this.height);
- this.field_0.drawImage(this.image[this.thisimage], 0, this.field_1, this);
- this.field_0.fillRect(0, this.field_2, this.width, this.height);
- this.field_0.drawImage(this.image[this.nextimage], 0, this.field_2, this);
- if (!this.registered) {
- this.field_0.setFont(new Font("arial", 1, 12));
- this.field_0.setColor(Color.black);
- this.field_0.drawString("Licensed for use at " + this.correcthost, 10, 12);
- this.field_0.drawString("Contact mgk@powerup.com.au to obtain a license", 10, 24);
- this.field_0.setColor(Color.white);
- this.field_0.drawString("Licensed for use at " + this.correcthost, 9, 11);
- this.field_0.drawString("Contact mgk@powerup.com.au to obtain a license", 9, 23);
- this.field_0.setColor(this.backcolor);
- }
-
- this.paint(this.field_0);
- }
-
- public void paint(Graphics var1) {
- var1.drawImage(this.offscreen, 0, 0, this);
- }
-
- public boolean mouseMove(Event var1, int var2, int var3) {
- if (var3 < this.field_2) {
- this.checkURL(this.thisimage);
- }
-
- if (var3 > this.field_2) {
- this.checkURL(this.nextimage);
- }
-
- if (this.url != null && this.url != this.oldurl) {
- ((Applet)this).showStatus("" + this.url);
- this.oldurl = this.url;
- }
-
- return true;
- }
-
- public boolean mouseExit(Event var1, int var2, int var3) {
- ((Applet)this).showStatus("");
- return true;
- }
-
- public boolean mouseUp(Event var1, int var2, int var3) {
- if (var3 < this.field_2) {
- this.checkURL(this.thisimage);
- }
-
- if (var3 > this.field_2) {
- this.checkURL(this.nextimage);
- }
-
- if (this.url != null) {
- if (this.audioclip != null) {
- this.audioclip.play();
- }
-
- if (this.target.trim().equals("null")) {
- ((Applet)this).getAppletContext().showDocument(this.url);
- } else {
- ((Applet)this).getAppletContext().showDocument(this.url, this.target);
- }
- }
-
- return true;
- }
-
- public void checkURL(int var1) {
- if (this.urls[var1] != null) {
- String var2 = this.urls[var1];
-
- try {
- this.url = new URL(var2);
- } catch (MalformedURLException var3) {
- System.out.println("Bad URL for URL" + var1 + " in Banner applet: " + this.urls[var1]);
- }
- }
-
- this.target = this.targets[var1];
- if (this.audioclips[var1].trim().equals("null")) {
- this.audioclip = null;
- } else {
- this.audioclip = ((Applet)this).getAudioClip(((Applet)this).getCodeBase(), this.audioclips[var1]);
- }
- }
-
- public void loadimage(int var1, String var2) {
- if (var2.toLowerCase().startsWith("http")) {
- try {
- Image var8 = ((Applet)this).getImage(new URL(var2));
- FixDither var9 = new FixDither();
- FilteredImageSource var10 = new FilteredImageSource(var8.getSource(), var9);
- this.image[var1] = ((Component)this).createImage(var10);
- this.tracker.addImage(this.image[var1], var1);
- } catch (Exception var6) {
- System.out.println(var6 + " loading image in Banner applet");
- }
- } else {
- try {
- Image var3 = ((Applet)this).getImage(((Applet)this).getDocumentBase(), var2);
- FixDither var4 = new FixDither();
- FilteredImageSource var5 = new FilteredImageSource(var3.getSource(), var4);
- this.image[var1] = ((Component)this).createImage(var5);
- this.tracker.addImage(this.image[var1], var1);
- } catch (Exception var7) {
- System.out.println(var7 + " loading image in Banner applet");
- }
- }
- }
-
- public void setweights() {
- this.count = 0;
- this.total = 0;
-
- for(int var1 = 1; var1 < this.bannercount + 1; ++var1) {
- this.weight[var1] = this.weights[var1];
- this.total += this.weights[var1];
- }
-
- }
-
- public void paramconfig() {
- int var1 = 0;
- int var2 = 0;
- int var3 = 0;
- String var4 = "";
- this.parameter = ((Applet)this).getParameter("backcolor");
- if (this.parameter == null) {
- this.parameter = "#abcdef";
- }
-
- var4 = this.parameter.substring(1, 3);
- var1 = Integer.valueOf(var4, 16);
- var4 = this.parameter.substring(3, 5);
- var2 = Integer.valueOf(var4, 16);
- var4 = this.parameter.substring(5, 7);
- var3 = Integer.valueOf(var4, 16);
- this.backcolor = new Color(var1, var2, var3);
- this.field_0.setColor(this.backcolor);
- this.parameter = ((Applet)this).getParameter("pause");
- if (this.parameter == null) {
- this.parameter = "3000";
- }
-
- this.pause = Integer.parseInt(this.parameter);
- this.parameter = ((Applet)this).getParameter("threadsleep");
- if (this.parameter == null) {
- this.parameter = "40";
- }
-
- this.threadsleep = (long)Integer.parseInt(this.parameter);
- this.parameter = ((Applet)this).getParameter("random");
- if (this.parameter.equalsIgnoreCase("yes")) {
- this.random = true;
- }
-
- for(int var5 = 1; ((Applet)this).getParameter("banner" + var5) != null; this.bannercount = var5++) {
- }
-
- this.image = new Image[this.bannercount + 2];
- this.images = new String[this.bannercount + 2];
- this.weights = new int[this.bannercount + 2];
- this.weight = new int[this.bannercount + 2];
- this.urls = new String[this.bannercount + 2];
- this.targets = new String[this.bannercount + 2];
- this.audioclips = new String[this.bannercount + 2];
- this.count = 0;
- this.total = 0;
-
- for(int var6 = 1; var6 < this.bannercount + 1; ++var6) {
- this.images[var6] = ((Applet)this).getParameter("banner" + var6);
- this.loadimage(var6, this.images[var6]);
- if (((Applet)this).getParameter("weight" + var6) == null) {
- this.weights[var6] = 1;
- } else {
- this.weights[var6] = Integer.parseInt(((Applet)this).getParameter("weight" + var6));
- }
-
- if (((Applet)this).getParameter("url" + var6) == null) {
- this.urls[var6] = "null";
- } else {
- this.urls[var6] = ((Applet)this).getParameter("url" + var6);
- }
-
- if (((Applet)this).getParameter("target" + var6) == null) {
- this.targets[var6] = "null";
- } else {
- this.targets[var6] = ((Applet)this).getParameter("target" + var6);
- }
-
- if (((Applet)this).getParameter("audio" + var6) == null) {
- this.audioclips[var6] = "null";
- } else {
- this.audioclips[var6] = ((Applet)this).getParameter("audio" + var6);
- }
-
- this.field_0.drawImage(this.image[var6], 0, 0, this);
- this.audioclip = ((Applet)this).getAudioClip(((Applet)this).getCodeBase(), this.audioclips[var6]);
- }
-
- this.setweights();
- }
-
- public void externalconfig() {
- String var1 = ((Applet)this).getParameter("configfile");
- byte[] var2 = new byte[10240];
-
- try {
- URL var3 = new URL(((Applet)this).getDocumentBase(), var1);
- URLConnection var4 = var3.openConnection();
- InputStream var5 = var4.getInputStream();
- var5.read(var2);
- } catch (Exception var11) {
- ((Applet)this).showStatus("Error: " + ((Throwable)var11).toString() + " while loading " + var1);
- }
-
- String var12 = new String(var2, 0);
- StringTokenizer var17 = new StringTokenizer(var12, "\n");
-
- for(int var19 = 1; var19 >= 0; ++var19) {
- String var6 = var17.nextToken().trim();
- if (var6.trim().equals("EOF")) {
- this.bannercount = var19 - 5;
- break;
- }
- }
-
- this.image = new Image[this.bannercount + 2];
- this.images = new String[this.bannercount + 2];
- this.weights = new int[this.bannercount + 2];
- this.weight = new int[this.bannercount + 2];
- this.urls = new String[this.bannercount + 2];
- this.targets = new String[this.bannercount + 2];
- this.audioclips = new String[this.bannercount + 2];
- var17 = new StringTokenizer(var12, "\n");
-
- for(int var20 = 1; var20 < this.bannercount + 1; ++var20) {
- String var7 = var17.nextToken().trim();
- StringTokenizer var8 = new StringTokenizer(var7, ",");
- this.loadimage(var20, var8.nextToken());
- this.weights[var20] = Integer.parseInt(var8.nextToken());
- this.urls[var20] = var8.nextToken();
- this.targets[var20] = var8.nextToken();
- this.audioclips[var20] = var8.nextToken();
- this.field_0.drawImage(this.image[var20], 0, 0, this);
- if (!this.audioclips[var20].equals("null")) {
- this.audioclip = ((Applet)this).getAudioClip(((Applet)this).getCodeBase(), this.audioclips[var20]);
- }
- }
-
- this.parameter = var17.nextToken().trim();
- int var21 = 0;
- int var23 = 0;
- int var9 = 0;
- var12 = "";
- if (this.parameter == null) {
- this.parameter = "#000000";
- }
-
- var12 = this.parameter.substring(1, 3);
- var21 = Integer.valueOf(var12, 16);
- var12 = this.parameter.substring(3, 5);
- var23 = Integer.valueOf(var12, 16);
- var12 = this.parameter.substring(5, 7);
- var9 = Integer.valueOf(var12, 16);
- this.backcolor = new Color(var21, var23, var9);
- this.field_0.setColor(this.backcolor);
- this.pause = Integer.parseInt(var17.nextToken().trim());
- this.threadsleep = (long)Integer.parseInt(var17.nextToken().trim());
- String var10 = var17.nextToken().trim();
- if (var10 == "yes") {
- this.random = true;
- } else {
- this.random = false;
- }
-
- this.setweights();
- }
- }
-