/* AcuteScroller - Decompiled by JODE
* Visit http://jode.sourceforge.net/
*/
import java.applet.Applet;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Event;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Point;
import java.awt.Rectangle;
import java.io.DataInputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.StringTokenizer;
import java.util.Vector;
public final class AcuteScroller extends Applet implements Runnable
{
private String null = "AcuteScroller v2.02";
private Image z;
private Image b;
private Thread u = null;
int w = 0;
int Y = 0;
boolean K = false;
boolean goto = false;
boolean f = false;
boolean long = false;
String P;
String void;
long O;
String D;
String A;
long new;
long for;
boolean T;
int do = -1;
String i = "";
String c = "";
String l;
private static final int v = 0;
private static final int W = 1;
private static final int M = 2;
private static final int X = 3;
private static final int s = 4;
private static final int L = 5;
private static final String[] p
= { "integer", "boolean", "string", "color", "url", "image" };
private Hashtable U = new Hashtable();
private Hashtable e = new Hashtable();
private Hashtable h = new Hashtable();
private Hashtable n = new Hashtable();
private String q = null;
String[][] N
= { { "#amp;", "&" }, { "#lt;", "<" }, { "#gt;", ">" },
{ "#apos;", "'" }, { "#quot;", "\"" }, { "#nbsp;", " " },
{ "&", "&" }, { "<", "<" }, { ">", ">" },
{ "'", "'" }, { """, "\"" }, { " ", " " } };
String[][] k = { { "" }, { "" }, { "" },
{ "", "?>" } };
MediaTracker S;
Vector o;
Vector V;
Vector r;
Vector g;
Vector a;
Vector if;
Vector E;
Vector j;
Vector G;
Vector d;
Vector m;
int else;
int C;
int case;
int int;
int B;
int t;
int J;
FontMetrics R;
Hashtable F;
int Q;
Vector char;
Vector I;
Vector H;
Vector byte;
Hashtable try = null;
private final void do() {
URL url = this.getDocumentBase();
if (!url.getProtocol().equalsIgnoreCase("file")) {
String string = url.getHost().toLowerCase();
int i = string.lastIndexOf(".");
if (i != -1) {
i = string.lastIndexOf(".", i - 1);
if (i != -1)
string = string.substring(i + 1);
}
if (!string.equals("")) {
char[] cs = string.toCharArray();
int i_0_ = 15145;
for (int i_1_ = 0; i_1_ < cs.length; i_1_++)
i_0_ ^= cs[i_1_] << i_1_ % 8;
String string_2_ = this.getParameter("Domain-Keys");
if (string_2_ == null)
string_2_ = "";
StringTokenizer stringtokenizer
= new StringTokenizer(string_2_, ",");
while (stringtokenizer.hasMoreTokens()) {
if (i_0_ == Integer.parseInt(stringtokenizer.nextToken
().trim()))
return;
}
((AcuteScroller) this).long = true;
paint(this.getGraphics());
try {
Thread.sleep(7000L);
} catch (InterruptedException interruptedexception) {
/* empty */
}
((AcuteScroller) this).long = false;
}
}
}
private final void a(int i, int i_3_, int i_4_) {
if (((AcuteScroller) this).goto) {
Rectangle rectangle
= (Rectangle) ((AcuteScroller) this).byte.elementAt(0);
i_3_ += rectangle.x;
i_4_ += rectangle.y;
String string = (String) a(i, "vertical-align");
int i_5_
= ((Integer) ((AcuteScroller) this).H.elementAt(i)).intValue();
if (string.equalsIgnoreCase("center"))
i_4_ += (rectangle.height - i_5_) / 2;
else if (string.equalsIgnoreCase("bottom"))
i_4_ += rectangle.height - i_5_;
int i_6_ = ((Integer) ((AcuteScroller) this).char.elementAt(i))
.intValue();
int i_7_
= ((Integer) ((AcuteScroller) this).I.elementAt(i)).intValue();
for (int i_8_ = i_6_; i_8_ <= i_7_; i_8_++) {
Rectangle rectangle_9_
= (Rectangle) ((AcuteScroller) this).r.elementAt(i_8_);
if (rectangle_9_.inside(((AcuteScroller) this).w - i_3_,
((AcuteScroller) this).Y - i_4_)) {
Hashtable hashtable
= (Hashtable) ((AcuteScroller) this).a.elementAt(i_8_);
((AcuteScroller) this).try = hashtable;
if (((AcuteScroller) this).try != null)
break;
}
}
}
}
private final void a(int i, int i_10_, int i_11_, Graphics graphics) {
Rectangle rectangle
= (Rectangle) ((AcuteScroller) this).byte.elementAt(0);
graphics.clipRect(rectangle.x, rectangle.y, rectangle.width,
rectangle.height);
i_10_ += rectangle.x;
i_11_ += rectangle.y;
String string = (String) a(i, "vertical-align");
int i_12_
= ((Integer) ((AcuteScroller) this).H.elementAt(i)).intValue();
if (string.equalsIgnoreCase("center"))
i_11_ += (rectangle.height - i_12_) / 2;
else if (string.equalsIgnoreCase("bottom"))
i_11_ += rectangle.height - i_12_;
int i_13_
= ((Integer) ((AcuteScroller) this).char.elementAt(i)).intValue();
int i_14_
= ((Integer) ((AcuteScroller) this).I.elementAt(i)).intValue();
boolean bool = false;
for (int i_15_ = i_13_; i_15_ <= i_14_; i_15_++) {
Object object = ((AcuteScroller) this).V.elementAt(i_15_);
String string_16_
= (String) ((AcuteScroller) this).g.elementAt(i_15_);
if (string_16_.equals("font"))
graphics.setFont((Font) object);
else if (string_16_.equals("proptable")) {
Hashtable hashtable = (Hashtable) object;
Object object_17_ = null;
graphics.setColor((Color) a(hashtable, "text-color"));
bool = ((Boolean) a(hashtable, "text-underline"))
.booleanValue();
} else {
Rectangle rectangle_18_
= (Rectangle) ((AcuteScroller) this).r.elementAt(i_15_);
int i_19_ = rectangle_18_.x + i_10_;
int i_20_ = rectangle_18_.y + i_11_;
int i_21_ = rectangle_18_.height;
int i_22_ = rectangle_18_.width;
rectangle_18_ = new Rectangle(i_19_, i_20_, i_22_, i_21_);
if (rectangle_18_.intersects(rectangle)) {
if (string_16_.equals("text")) {
String string_23_ = (String) object;
int i_24_ = graphics.getFontMetrics().getAscent();
graphics.drawString(string_23_, i_19_, i_20_ + i_24_);
if (bool)
graphics.drawLine(i_19_, i_20_ + 1 + i_24_,
i_19_ + i_22_,
i_20_ + 1 + i_24_);
} else if (string_16_.equals("bullet-text")) {
String string_25_
= (String) a((Hashtable) object, "bullet-text");
int i_26_ = graphics.getFontMetrics().getAscent();
graphics.drawString(string_25_, i_19_, i_20_ + i_26_);
} else if (string_16_.equals("rule")) {
Color color = graphics.getColor();
Color color_27_
= (Color) a((Hashtable) object, "rule-color");
graphics.setColor(color_27_);
graphics.fillRect(i_19_, i_20_, i_22_, i_21_);
graphics.setColor(color);
} else if (string_16_.equals("image")) {
Image image = (Image) a((Hashtable) object, "image");
graphics.drawImage(image, i_19_, i_20_, this);
this.getToolkit().sync();
} else if (string_16_.equals("bullet-image")) {
Image image
= (Image) a((Hashtable) object, "bullet-image");
graphics.drawImage(image, i_19_, i_20_, this);
this.getToolkit().sync();
}
}
}
}
}
private final void if(int i, Graphics graphics) {
graphics.clipRect(0, 0, this.size().width, this.size().height);
graphics.setColor((Color) a(i, "background-color"));
graphics.fillRect(0, 0, this.size().width, this.size().height);
Image image = (Image) a(i, "background-image");
if (image != null) {
boolean bool
= ((Boolean) a(i, "background-image-repeat")).booleanValue();
int i_28_ = ((Integer) a(i, "background-image-x")).intValue();
int i_29_ = ((Integer) a(i, "background-image-y")).intValue();
if (bool) {
int i_30_ = i_28_;
int i_31_ = i_29_;
for (/**/; i_30_ < this.size().width;
i_30_ += image.getWidth(this)) {
for (/**/; i_31_ < this.size().height;
i_31_ += image.getHeight(this)) {
graphics.drawImage(image, i_30_, i_31_, this);
this.getToolkit().sync();
}
i_31_ = 0;
}
} else {
graphics.drawImage(image, i_28_, i_29_, this);
this.getToolkit().sync();
}
}
}
private final void a(int i, Graphics graphics) {
int i_32_ = this.size().width;
int i_33_ = this.size().height;
graphics.clipRect(0, 0, i_32_, i_33_);
Image image = (Image) a(i, "foreground-image");
if (image != null) {
int i_34_ = ((Integer) a(i, "foreground-image-x")).intValue();
int i_35_ = ((Integer) a(i, "foreground-image-y")).intValue();
graphics.drawImage(image, i_34_, i_35_, this);
this.getToolkit().sync();
}
graphics.setColor((Color) a(i, "border-color"));
String string = (String) a(i, "border-type");
int i_36_ = ((Integer) a(i, "border-width")).intValue();
if (string.equalsIgnoreCase("full")
|| string.equalsIgnoreCase("vertical")) {
for (int i_37_ = 0; i_37_ < i_36_; i_37_++) {
graphics.drawLine(i_37_, 0, i_37_, i_33_ - 1);
graphics.drawLine(i_32_ - i_37_ - 1, 0, i_32_ - i_37_ - 1,
i_33_ - 1);
}
}
if (string.equalsIgnoreCase("full")
|| string.equalsIgnoreCase("horizontal")) {
for (int i_38_ = 0; i_38_ < i_36_; i_38_++) {
graphics.drawLine(0, i_38_, i_32_ - 1, i_38_);
graphics.drawLine(0, i_33_ - i_38_ - 1, i_32_ - 1,
i_33_ - i_38_ - 1);
}
}
}
private final synchronized String[] a() {
boolean bool = false;
long l = System.currentTimeMillis();
if (((AcuteScroller) this).T && ((AcuteScroller) this).for <= l) {
((AcuteScroller) this).for = 9223372036854775807L;
bool = true;
}
if (((AcuteScroller) this).O <= l) {
((AcuteScroller) this).O = 9223372036854775807L;
bool = true;
}
if (bool) {
((AcuteScroller) this).T = false;
String[] strings
= { ((AcuteScroller) this).P, ((AcuteScroller) this).void };
return strings;
}
return null;
}
private final synchronized String[] try() {
long l = System.currentTimeMillis();
if (((AcuteScroller) this).new <= l) {
((AcuteScroller) this).new = 9223372036854775807L;
if (((AcuteScroller) this).T
&& ((AcuteScroller) this).i
.equalsIgnoreCase(((AcuteScroller) this).D)
&& ((AcuteScroller) this).c
.equalsIgnoreCase(((AcuteScroller) this).A))
return null;
((AcuteScroller) this).T = true;
((AcuteScroller) this).i = ((AcuteScroller) this).D;
((AcuteScroller) this).c = ((AcuteScroller) this).A;
String[] strings
= { ((AcuteScroller) this).D, ((AcuteScroller) this).A };
return strings;
}
return null;
}
public final synchronized void goToNextSection() {
((AcuteScroller) this).do = -2;
}
public final synchronized void goToPreviousSection() {
((AcuteScroller) this).do = -3;
}
public final synchronized void goToSection(String string) {
if (string != null) {
for (int i = 0; i < ((AcuteScroller) this).Q; i++) {
String string_39_ = (String) a(i, "section-name");
if (string_39_ != null && string_39_.equalsIgnoreCase(string))
((AcuteScroller) this).do = i;
}
}
}
public boolean handleEvent(Event event) {
switch (event.id) {
case 504:
((AcuteScroller) this).goto = true;
break;
case 505:
((AcuteScroller) this).goto = false;
break;
case 501:
((AcuteScroller) this).K = true;
break;
case 502:
((AcuteScroller) this).K = false;
if (((AcuteScroller) this).try != null) {
URL url = (URL) a(((AcuteScroller) this).try, "url");
String string
= (String) a(((AcuteScroller) this).try, "url-frame");
String string_40_ = (String) a(((AcuteScroller) this).try,
"load-main-message");
String string_41_ = (String) a(((AcuteScroller) this).try,
"load-main-style");
String string_42_ = (String) a(((AcuteScroller) this).try,
"load-temp-message");
String string_43_ = (String) a(((AcuteScroller) this).try,
"load-temp-style");
String string_44_ = (String) a(((AcuteScroller) this).try,
"link-section-name");
if (url != null)
this.getAppletContext().showDocument(url, string);
else if (string_40_ != null || string_41_ != null) {
if (string_40_ != null)
string_40_ = "file:" + string_40_;
if (string_41_ != null)
string_41_ = "file:" + string_41_;
loadMain(string_40_, string_41_);
} else if (string_42_ != null || string_43_ != null) {
if (string_42_ != null)
string_42_ = "file:" + string_42_;
if (string_43_ != null)
string_43_ = "file:" + string_43_;
loadTemp(string_42_, string_43_, 0);
} else if (string_44_ != null)
goToSection(string_44_);
else if (((Boolean)
a(((AcuteScroller) this).try, "link-next-section"))
.booleanValue())
goToNextSection();
else if (((Boolean) a(((AcuteScroller) this).try,
"link-previous-section"))
.booleanValue())
goToPreviousSection();
}
break;
case 503:
case 506:
((AcuteScroller) this).w = event.x;
((AcuteScroller) this).Y = event.y;
break;
case 401:
case 403:
if (event.key == 1008)
loadTemp((null + "
Domain: "
+ this.getDocumentBase().getHost().toLowerCase()
+ "" + "
Keys: "
+ this.getParameter("Domain-Keys") + ""),
"", 0);
break;
}
return true;
}
private final boolean byte() {
if ((((AcuteScroller) this).S.statusAll(true) & 0x1) != 0)
return false;
for (int i = 0; i < ((AcuteScroller) this).o.size(); i++) {
if ((((AcuteScroller) this).S.statusID(i, false) & 0x4) != 0) {
((AcuteScroller) this).l
+= "Error 11: Unable to load image:
";
((AcuteScroller) this).l
+= "'" + int(((URL) ((AcuteScroller) this).o.elementAt(i))
.toString()) + "'
";
}
}
return true;
}
private final void a(Vector vector) {
((AcuteScroller) this).S = new MediaTracker(this);
((AcuteScroller) this).o = new Vector();
for (int i = 0; i < vector.size(); i++) {
Object object = vector.elementAt(i);
Class var_class = object.getClass();
if (var_class.getName().equals("java.util.Hashtable")) {
Hashtable hashtable = (Hashtable) object;
Enumeration enumeration = hashtable.keys();
while (enumeration.hasMoreElements()) {
String string = (String) enumeration.nextElement();
String string_45_ = string;
String string_46_ = "";
if (string.endsWith("-over")) {
string_45_ = string.substring(0, string.length() - 5);
string_46_ = "-over";
}
if (string.endsWith("-click")) {
string_45_ = string.substring(0, string.length() - 6);
string_46_ = "-click";
}
if (((Integer) U.get(string_45_)).intValue() == 5) {
URL url = (URL) hashtable.get(string);
Image image = this.getImage(url);
hashtable.put(string, image);
boolean bool = false;
for (int i_47_ = 0;
i_47_ < ((AcuteScroller) this).o.size();
i_47_++) {
if (((AcuteScroller) this).o.elementAt(i_47_)
.equals(url)) {
bool = true;
break;
}
}
if (!bool) {
((AcuteScroller) this).S.addImage(image,
((AcuteScroller)
this)
.o.size());
((AcuteScroller) this).o.addElement(url);
}
}
}
}
}
}
private final synchronized void for() {
((AcuteScroller) this).P = "";
((AcuteScroller) this).void = "";
((AcuteScroller) this).O = 9223372036854775807L;
((AcuteScroller) this).D = "";
((AcuteScroller) this).A = "";
((AcuteScroller) this).new = 9223372036854775807L;
((AcuteScroller) this).for = 9223372036854775807L;
((AcuteScroller) this).T = false;
}
private final void if(Vector vector) {
((AcuteScroller) this).else = 0;
((AcuteScroller) this).C = 0;
((AcuteScroller) this).case = 0;
((AcuteScroller) this).int = 0;
((AcuteScroller) this).B = 0;
((AcuteScroller) this).t = 0;
((AcuteScroller) this).J = 0;
((AcuteScroller) this).R = this.getGraphics().getFontMetrics();
((AcuteScroller) this).F = null;
((AcuteScroller) this).if = new Vector();
((AcuteScroller) this).E = new Vector();
((AcuteScroller) this).j = new Vector();
((AcuteScroller) this).G = new Vector();
((AcuteScroller) this).d = new Vector();
((AcuteScroller) this).m = new Vector();
Enumeration enumeration = vector.elements();
while (enumeration.hasMoreElements()) {
Object object = enumeration.nextElement();
Class var_class = object.getClass();
if (var_class.getName().equals("java.lang.String")) {
String string = (String) object;
if (!string.equals(" ") || ((AcuteScroller) this).else != 0) {
while ((((AcuteScroller) this).case
+ ((AcuteScroller) this).B
+ ((AcuteScroller) this).R.stringWidth(string)
+ ((AcuteScroller) this).int)
> ((AcuteScroller) this).J) {
int i = (((AcuteScroller) this).J
- ((AcuteScroller) this).case
- ((AcuteScroller) this).B
- ((AcuteScroller) this).else
- ((AcuteScroller) this).int);
int i_48_;
for (i_48_ = 1;
(((AcuteScroller) this).R
.stringWidth(string.substring(0, i_48_))
< i);
i_48_++) {
/* empty */
}
i_48_--;
String string_49_ = string.substring(0, i_48_);
string = string.substring(i_48_);
int i_50_
= ((AcuteScroller) this).R.stringWidth(string_49_);
a(string_49_, i_50_,
((AcuteScroller) this).R.getHeight(), "text");
new();
}
int i = ((AcuteScroller) this).R.stringWidth(string);
if (!string.equals(" ")
&& ((((AcuteScroller) this).case
+ ((AcuteScroller) this).B
+ ((AcuteScroller) this).else + i
+ ((AcuteScroller) this).int)
> ((AcuteScroller) this).J))
new();
a(string, i, ((AcuteScroller) this).R.getHeight(), "text");
((AcuteScroller) this).else += i;
}
} else {
Hashtable hashtable = (Hashtable) object;
if (((Boolean) a(hashtable, "section-header"))
.booleanValue()) {
new();
((AcuteScroller) this).C = 0;
((AcuteScroller) this).case = 0;
((AcuteScroller) this).int = 0;
((AcuteScroller) this).B = 0;
((AcuteScroller) this).t = 0;
int i = ((Integer) a(hashtable, "margin-left")).intValue();
int i_51_
= ((Integer) a(hashtable, "margin-right")).intValue();
int i_52_
= ((Integer) a(hashtable, "margin-top")).intValue();
int i_53_
= ((Integer) a(hashtable, "margin-bottom")).intValue();
int i_54_
= ((Integer) a(hashtable, "border-width")).intValue();
String string = (String) a(hashtable, "border-type");
if (string.equalsIgnoreCase("full")) {
i += i_54_;
i_51_ += i_54_;
i_52_ += i_54_;
i_53_ += i_54_;
}
if (string.equalsIgnoreCase("vertical")) {
i += i_54_;
i_51_ += i_54_;
}
if (string.equalsIgnoreCase("horizontal")) {
i_52_ += i_54_;
i_53_ += i_54_;
}
hashtable.put("margin-left", new Integer(i));
hashtable.put("margin-right", new Integer(i_51_));
hashtable.put("margin-top", new Integer(i_52_));
hashtable.put("margin-bottom", new Integer(i_53_));
((AcuteScroller) this).J = this.size().width - i - i_51_;
}
if (hashtable.containsKey("padding-top")) {
new();
int i = ((Integer) a(hashtable, "padding-top")).intValue();
if (i > 0) {
a(new Rectangle(), 0, i, "padding");
new();
} else
((AcuteScroller) this).C += i;
}
((AcuteScroller) this).case
= ((Integer) a(hashtable, "padding-left")).intValue();
((AcuteScroller) this).int
= ((Integer) a(hashtable, "padding-right")).intValue();
String string = (String) a(hashtable, "align");
int i = 0;
if (string.equalsIgnoreCase("center"))
i = 1;
else if (string.equalsIgnoreCase("right"))
i = 2;
if (i != ((AcuteScroller) this).t) {
((AcuteScroller) this).t = i;
new();
}
if (hashtable.containsKey("url")
|| hashtable.containsKey("load-main-message")
|| hashtable.containsKey("load-main-style")
|| hashtable.containsKey("load-temp-message")
|| hashtable.containsKey("load-temp-style")
|| hashtable.containsKey("link-section-name")
|| hashtable.containsKey("link-next-section")
|| hashtable.containsKey("link-previous-section"))
((AcuteScroller) this).F = hashtable;
else
((AcuteScroller) this).F = null;
a(hashtable, 0, 0, "proptable");
String string_55_ = (String) a(hashtable, "text-font");
int i_56_ = 0;
if (((Boolean) a(hashtable, "text-bold")).booleanValue())
i_56_++;
if (((Boolean) a(hashtable, "text-italic")).booleanValue())
i_56_ += 2;
int i_57_ = ((Integer) a(hashtable, "text-size")).intValue();
Font font = new Font(string_55_, i_56_, i_57_);
a(font, 0, 0, "font");
((AcuteScroller) this).R = this.getFontMetrics(font);
if (hashtable.containsKey("rule-color")) {
int i_58_
= ((Integer) a(hashtable, "rule-width")).intValue();
int i_59_
= ((Integer) a(hashtable, "rule-height")).intValue();
int i_60_ = ((AcuteScroller) this).t;
String string_61_ = (String) a(hashtable, "rule-align");
if (string_61_.equalsIgnoreCase("center"))
((AcuteScroller) this).t = 1;
else if (string_61_.equalsIgnoreCase("right"))
((AcuteScroller) this).t = 2;
else
((AcuteScroller) this).t = 0;
int i_62_ = ((((AcuteScroller) this).J
- ((AcuteScroller) this).case
- ((AcuteScroller) this).B
- ((AcuteScroller) this).int)
* i_58_ / 100);
new();
a(hashtable, i_62_, i_59_, "rule");
((AcuteScroller) this).else += i_62_;
new();
((AcuteScroller) this).t = i_60_;
}
if (hashtable.containsKey("bullet-indent")) {
if (hashtable.containsKey("bullet-image")) {
new();
((AcuteScroller) this).B = 0;
Image image = (Image) a(hashtable, "bullet-image");
a(hashtable, 0, image.getHeight(this), "bullet-image");
}
if (hashtable.containsKey("bullet-text")) {
new();
((AcuteScroller) this).B = 0;
String string_63_
= (String) a(hashtable, "bullet-text");
int i_64_ = 0;
int i_65_ = ((AcuteScroller) this).R.getHeight();
a(hashtable, i_64_, i_65_, "bullet-text");
}
((AcuteScroller) this).B
= ((Integer) a(hashtable, "bullet-indent")).intValue();
} else {
if (((AcuteScroller) this).B != 0)
new();
((AcuteScroller) this).B = 0;
}
if (hashtable.containsKey("image")) {
Image image = (Image) a(hashtable, "image");
int i_66_ = ((AcuteScroller) this).t;
if (hashtable.containsKey("image-align")) {
String string_67_
= (String) a(hashtable, "image-align");
if (string_67_.equalsIgnoreCase("center"))
((AcuteScroller) this).t = 1;
else if (string_67_.equalsIgnoreCase("right"))
((AcuteScroller) this).t = 2;
else
((AcuteScroller) this).t = 0;
}
new();
a(hashtable, image.getWidth(this), image.getHeight(this),
"image");
((AcuteScroller) this).else += image.getWidth(this);
new();
((AcuteScroller) this).t = i_66_;
}
if (((Boolean) a(hashtable, "line-break")).booleanValue())
new();
if (hashtable.containsKey("padding-bottom")) {
new();
int i_68_ = ((Integer) a(hashtable, "padding-bottom"))
.intValue();
if (i_68_ > 0) {
a(new Rectangle(), 0, i_68_, "padding");
new();
} else
((AcuteScroller) this).C += i_68_;
}
if (hashtable.containsKey("line-feed")) {
int i_69_
= ((Integer) a(hashtable, "line-feed")).intValue();
if (((AcuteScroller) this).else != 0) {
new();
i_69_--;
}
i_69_ = Math.max(i_69_, 0);
((AcuteScroller) this).C
+= i_69_ * ((AcuteScroller) this).R.getHeight();
}
}
}
new();
((AcuteScroller) this).V = ((AcuteScroller) this).if;
((AcuteScroller) this).r = ((AcuteScroller) this).E;
((AcuteScroller) this).g = ((AcuteScroller) this).j;
((AcuteScroller) this).a = ((AcuteScroller) this).G;
}
private final void a(Object object, int i, int i_70_, String string) {
Rectangle rectangle = new Rectangle((((AcuteScroller) this).else
+ ((AcuteScroller) this).case
+ ((AcuteScroller) this).B),
-999, i, i_70_);
((AcuteScroller) this).if.addElement(object);
((AcuteScroller) this).E.addElement(rectangle);
((AcuteScroller) this).j.addElement(string);
((AcuteScroller) this).G.addElement(((AcuteScroller) this).F);
if (string.equals("text") || string.equals("bullet-text"))
((AcuteScroller) this).d
.addElement(new Integer(((AcuteScroller) this).R.getAscent()));
else
((AcuteScroller) this).d.addElement(new Integer(i_70_));
((AcuteScroller) this).m
.addElement(new Integer(((AcuteScroller) this).t));
}
private final void new() {
int i = 0;
int i_71_ = 0;
int i_72_ = 0;
int i_73_ = ((AcuteScroller) this).if.size() - 1;
int i_74_ = 0;
int i_75_ = i_73_;
for (/**/; (i_73_ - i_74_ >= 0
&& (((Rectangle)
((AcuteScroller) this).E.elementAt(i_73_ - i_74_)).y
== -999)); i_74_++) {
Object object = ((AcuteScroller) this).if.elementAt(i_73_ - i_74_);
Class var_class = object.getClass();
if (var_class.getName().equals("java.lang.String")
&& !((String) object).equals(""))
i_75_ = i_73_ - i_74_;
}
int i_76_ = i_73_ - i_74_ + 1;
if (i_74_ != 0) {
for (int i_77_ = i_73_; i_77_ >= i_76_; i_77_--) {
Object object = ((AcuteScroller) this).if.elementAt(i_77_);
Class var_class = object.getClass();
if (var_class.getName().equals("java.lang.String")) {
if (((String) object).equals(" ")) {
((AcuteScroller) this).if.setElementAt("", i_77_);
((Rectangle)
((AcuteScroller) this).E.elementAt(i_77_)).width
= 0;
}
break;
}
}
for (int i_78_ = i_76_; i_78_ <= i_73_; i_78_++) {
Rectangle rectangle
= (Rectangle) ((AcuteScroller) this).E.elementAt(i_78_);
i += rectangle.width;
i_71_ = Math.max(i_71_, rectangle.height);
i_72_ = Math.max(i_72_,
((Integer)
((AcuteScroller) this).d.elementAt(i_78_))
.intValue());
}
for (int i_79_ = i_76_; i_79_ <= i_73_; i_79_++) {
Rectangle rectangle
= (Rectangle) ((AcuteScroller) this).E.elementAt(i_79_);
rectangle.y
= (((AcuteScroller) this).C + i_72_
- ((Integer) ((AcuteScroller) this).d.elementAt(i_79_))
.intValue());
rectangle.x
+= (((Integer) ((AcuteScroller) this).m.elementAt(i_75_))
.intValue()
* ((((AcuteScroller) this).J
- ((AcuteScroller) this).case
- ((AcuteScroller) this).B
- ((AcuteScroller) this).int - i)
/ 2));
}
}
((AcuteScroller) this).else = 0;
((AcuteScroller) this).C += i_71_;
}
private final void int() {
((AcuteScroller) this).char = new Vector();
for (int i = 0; i < ((AcuteScroller) this).V.size(); i++) {
Object object = ((AcuteScroller) this).V.elementAt(i);
if (object.getClass().getName().equals("java.util.Hashtable")
&& ((AcuteScroller) this).g.elementAt(i).equals("proptable")) {
Hashtable hashtable = (Hashtable) object;
if (((Boolean) a(hashtable, "section-header")).booleanValue())
((AcuteScroller) this).char.addElement(new Integer(i));
}
}
((AcuteScroller) this).I = new Vector();
for (int i = 1; i < ((AcuteScroller) this).char.size(); i++) {
int i_80_ = (((Integer) ((AcuteScroller) this).char.elementAt(i))
.intValue()
- 1);
((AcuteScroller) this).I.addElement(new Integer(i_80_));
}
((AcuteScroller) this).I
.addElement(new Integer(((AcuteScroller) this).V.size() - 1));
((AcuteScroller) this).Q = ((AcuteScroller) this).char.size();
((AcuteScroller) this).H = new Vector();
((AcuteScroller) this).byte = new Vector();
for (int i = 0; i < ((AcuteScroller) this).Q; i++) {
int i_81_ = ((Integer) ((AcuteScroller) this).char.elementAt(i))
.intValue();
int i_82_
= ((Integer) ((AcuteScroller) this).I.elementAt(i)).intValue();
int i_83_ = 0;
for (int i_84_ = i_81_; i_84_ <= i_82_; i_84_++) {
Rectangle rectangle
= (Rectangle) ((AcuteScroller) this).r.elementAt(i_84_);
i_83_ = Math.max(i_83_, rectangle.y + rectangle.height);
}
((AcuteScroller) this).H.addElement(new Integer(i_83_));
Rectangle rectangle = new Rectangle(new Point(0, 0), this.size());
rectangle.x = ((Integer) a(i, "margin-left")).intValue();
rectangle.y = ((Integer) a(i, "margin-top")).intValue();
rectangle.width = (this.size().width - rectangle.x
- ((Integer) a(i, "margin-right")).intValue());
rectangle.height
= (this.size().height - rectangle.y
- ((Integer) a(i, "margin-bottom")).intValue());
((AcuteScroller) this).byte.addElement(rectangle);
}
}
public final synchronized void loadMain(String string, String string_85_) {
if (string == null)
string = "";
if (string_85_ == null)
string_85_ = "";
if (!string.equals(""))
((AcuteScroller) this).P = string;
if (!string_85_.equals(""))
((AcuteScroller) this).void = string_85_;
((AcuteScroller) this).O = System.currentTimeMillis();
}
public final synchronized void loadTemp(String string, String string_86_,
int i) {
if (string == null)
string = "";
if (string_86_ == null)
string_86_ = "";
if (!string.equals("")) {
if (string_86_.equals(""))
string_86_ = ((AcuteScroller) this).void;
((AcuteScroller) this).A = string_86_;
((AcuteScroller) this).D = string;
((AcuteScroller) this).new = System.currentTimeMillis() + (long) i;
((AcuteScroller) this).for = 9223372036854775807L;
}
}
private static final void a(Hashtable hashtable, Hashtable hashtable_87_) {
Enumeration enumeration = hashtable_87_.keys();
while (enumeration.hasMoreElements()) {
String string = (String) enumeration.nextElement();
if (!hashtable.containsKey(string))
hashtable.put(string, hashtable_87_.get(string));
}
}
private final void a(String string, int i, Object object,
Boolean var_boolean, Boolean var_boolean_88_) {
U.put(string, new Integer(i));
e.put(string, var_boolean);
n.put(string, var_boolean_88_);
if (object != null)
h.put(string, object);
}
private final String a(String string) {
for (int i = 0; i < ((AcuteScroller) this).N.length; i++) {
int i_89_ = -1;
for (;;) {
int i_90_ = string.indexOf(((AcuteScroller) this).N[i][0]);
if (i_90_ <= i_89_)
break;
i_89_ = i_90_;
string = (string.substring(0, i_89_)
+ ((AcuteScroller) this).N[i][1]
+ string.substring(i_89_ + ((AcuteScroller) this)
.N[i][0].length()));
}
}
return string;
}
private final String int(String string) {
for (int i = 0; i < ((AcuteScroller) this).N.length; i++) {
int i_91_ = -1;
for (;;) {
int i_92_ = string.indexOf(((AcuteScroller) this).N[i][1]);
if (i_92_ <= i_91_)
break;
i_91_ = i_92_;
string = (string.substring(0, i_91_)
+ ((AcuteScroller) this).N[i][0]
+ string.substring(i_91_ + ((AcuteScroller) this)
.N[i][1].length()));
}
}
return string;
}
private final Object a(int i, String string) {
int i_93_
= ((Integer) ((AcuteScroller) this).char.elementAt(i)).intValue();
Hashtable hashtable
= (Hashtable) ((AcuteScroller) this).V.elementAt(i_93_);
return a(hashtable, string);
}
private final Object a(Object object, String string) {
Hashtable hashtable = (Hashtable) object;
String string_94_ = "";
if (((AcuteScroller) this).try != null
&& (((AcuteScroller) this).try == hashtable
|| hashtable.containsKey("section-header"))) {
if (((AcuteScroller) this).K)
string_94_ = "-click";
else
string_94_ = "-over";
if (string_94_.equals("-click")
&& !hashtable.containsKey(string + string_94_))
string_94_ = "-over";
if (string_94_.equals("-over")
&& !hashtable.containsKey(string + string_94_))
string_94_ = "";
}
String string_95_ = string + string_94_;
Object object_96_ = hashtable.get(string_95_);
if (object_96_ != null)
return object_96_;
if (h.containsKey(string_95_))
return h.get(string_95_);
return null;
}
private final void if() {
a("image", 5, null, Boolean.FALSE, Boolean.TRUE);
a("image-align", 2, new Integer(0), Boolean.FALSE, Boolean.FALSE);
a("rule-color", 3, null, Boolean.FALSE, Boolean.TRUE);
a("rule-width", 0, new Integer(100), Boolean.FALSE, Boolean.FALSE);
a("rule-height", 0, new Integer(1), Boolean.FALSE, Boolean.FALSE);
a("rule-align", 2, "center", Boolean.FALSE, Boolean.FALSE);
a("text-font", 2, "Helvetica", Boolean.TRUE, Boolean.FALSE);
a("text-size", 0, new Integer(12), Boolean.TRUE, Boolean.FALSE);
a("text-bold", 1, Boolean.FALSE, Boolean.TRUE, Boolean.FALSE);
a("text-italic", 1, Boolean.FALSE, Boolean.TRUE, Boolean.FALSE);
a("text-underline", 1, Boolean.FALSE, Boolean.TRUE, Boolean.TRUE);
a("text-color", 3, Color.black, Boolean.TRUE, Boolean.TRUE);
a("bullet-indent", 0, new Integer(13), Boolean.TRUE, Boolean.FALSE);
a("bullet-text", 2, null, Boolean.FALSE, Boolean.TRUE);
a("bullet-image", 5, null, Boolean.FALSE, Boolean.TRUE);
a("line-break", 1, Boolean.FALSE, Boolean.FALSE, Boolean.FALSE);
a("line-feed", 0, null, Boolean.FALSE, Boolean.FALSE);
a("padding-left", 0, new Integer(10), Boolean.TRUE, Boolean.FALSE);
a("padding-right", 0, new Integer(10), Boolean.TRUE, Boolean.FALSE);
a("align", 2, "left", Boolean.TRUE, Boolean.FALSE);
a("vertical-align", 2, "top", Boolean.FALSE, Boolean.FALSE);
a("padding-top", 0, new Integer(0), Boolean.FALSE, Boolean.FALSE);
a("padding-bottom", 0, new Integer(0), Boolean.FALSE, Boolean.FALSE);
a("url", 4, null, Boolean.TRUE, Boolean.FALSE);
a("url-frame", 2, "_self", Boolean.TRUE, Boolean.FALSE);
a("load-main-message", 2, null, Boolean.TRUE, Boolean.FALSE);
a("load-main-style", 2, null, Boolean.TRUE, Boolean.FALSE);
a("load-temp-message", 2, null, Boolean.TRUE, Boolean.FALSE);
a("load-temp-style", 2, null, Boolean.TRUE, Boolean.FALSE);
a("link-section-name", 2, null, Boolean.TRUE, Boolean.FALSE);
a("link-next-section", 1, Boolean.FALSE, Boolean.TRUE, Boolean.FALSE);
a("link-previous-section", 1, Boolean.FALSE, Boolean.TRUE,
Boolean.FALSE);
a("section-header", 1, Boolean.FALSE, Boolean.FALSE, Boolean.FALSE);
a("border-type", 2, "none", Boolean.FALSE, Boolean.TRUE);
a("border-color", 3, Color.black, Boolean.FALSE, Boolean.TRUE);
a("border-width", 0, new Integer(1), Boolean.FALSE, Boolean.TRUE);
a("background-color", 3, Color.white, Boolean.FALSE, Boolean.TRUE);
a("background-image", 5, null, Boolean.FALSE, Boolean.TRUE);
a("background-image-x", 0, new Integer(0), Boolean.FALSE,
Boolean.TRUE);
a("background-image-y", 0, new Integer(0), Boolean.FALSE,
Boolean.TRUE);
a("background-image-repeat", 1, Boolean.FALSE, Boolean.FALSE,
Boolean.TRUE);
a("foreground-image", 5, null, Boolean.FALSE, Boolean.TRUE);
a("foreground-image-x", 0, new Integer(0), Boolean.FALSE,
Boolean.TRUE);
a("foreground-image-y", 0, new Integer(0), Boolean.FALSE,
Boolean.TRUE);
a("margin-left", 0, new Integer(0), Boolean.FALSE, Boolean.TRUE);
a("margin-top", 0, new Integer(0), Boolean.FALSE, Boolean.TRUE);
a("margin-right", 0, new Integer(0), Boolean.FALSE, Boolean.TRUE);
a("margin-bottom", 0, new Integer(0), Boolean.FALSE, Boolean.TRUE);
a("section-name", 2, null, Boolean.FALSE, Boolean.FALSE);
q = "
";
}
private final String do(String string) {
string = string.trim();
if (string.length() >= 5
&& string.substring(0, 5).equalsIgnoreCase("file:")) {
String string_97_ = string.substring(5);
try {
URLConnection urlconnection
= new URL(this.getDocumentBase(), string_97_)
.openConnection();
urlconnection.setDoInput(true);
urlconnection.setUseCaches(false);
java.io.InputStream inputstream
= urlconnection.getInputStream();
DataInputStream datainputstream
= new DataInputStream(urlconnection.getInputStream());
string = "";
for (;;) {
String string_98_ = datainputstream.readLine();
if (string_98_ == null)
break;
string += (String) string_98_ + "\n";
}
datainputstream.close();
} catch (Exception exception) {
((AcuteScroller) this).l
+= "Error 12: Unable to load file:
";
((AcuteScroller) this).l
+= "'" + (String) string_97_ + "'
";
string = "";
}
}
return string;
}
private final Vector a(String string, Hashtable hashtable) {
string = for(string);
Hashtable hashtable_99_ = (Hashtable) hashtable.get("default");
Vector vector = new Vector();
Hashtable hashtable_100_ = hashtable_99_;
Vector vector_101_ = new Vector();
Vector vector_102_ = new Vector();
boolean bool = false;
int i;
do {
i = string.indexOf("<");
int i_103_;
if (i == -1)
i_103_ = string.length();
else
i_103_ = i;
String string_104_ = string.substring(0, i_103_);
string = string.substring(i_103_);
if (!string_104_.equals("")) {
StringTokenizer stringtokenizer
= new StringTokenizer(string_104_, " \t\r\n\014", true);
while (stringtokenizer.hasMoreTokens()) {
String string_105_ = stringtokenizer.nextToken();
switch (string_105_.charAt(0)) {
case '\t':
case '\n':
case '\014':
case '\r':
case ' ':
if (!bool)
vector.addElement(" ");
bool = true;
break;
default:
vector.addElement(a(string_105_));
bool = false;
}
}
}
if (i != -1) {
Object[] objects = if(string);
String string_106_ = (String) objects[0];
Hashtable hashtable_107_ = (Hashtable) objects[1];
string = (String) objects[2];
if (string_106_.startsWith("/")) {
string_106_ = string_106_.substring(1).trim();
int i_108_;
if (string_106_.equals(""))
i_108_ = vector_101_.size() - 1;
else
i_108_ = vector_101_.lastIndexOf(string_106_);
Hashtable hashtable_109_;
if (i_108_ != -1) {
hashtable_109_
= (Hashtable) vector_102_.elementAt(i_108_);
for (int i_110_ = vector_101_.size() - 1;
i_110_ >= i_108_; i_110_--) {
vector_101_.removeElementAt(i_110_);
vector_102_.removeElementAt(i_110_);
}
} else
hashtable_109_ = new Hashtable();
hashtable_109_ = a((Hashtable) hashtable_109_.clone());
a(hashtable_107_, hashtable_109_);
if (hashtable.containsKey("/" + string_106_))
a(hashtable_107_,
(Hashtable) hashtable.get("/" + string_106_));
} else {
if (!string_106_.equals("")
&& hashtable.containsKey(string_106_))
a(hashtable_107_,
(Hashtable) hashtable.get(string_106_));
if (((Boolean) a(hashtable_107_, "section-header"))
.booleanValue()) {
hashtable_100_ = hashtable_99_;
vector_101_ = new Vector();
vector_102_ = new Vector();
}
a(hashtable_107_, hashtable_100_);
vector_101_.addElement(string_106_);
vector_102_.addElement(hashtable_100_);
}
hashtable_100_ = a((Hashtable) hashtable_107_.clone());
vector.addElement(hashtable_107_);
}
} while (i != -1);
if (vector.size() != 0) {
if (!vector.firstElement().getClass().getName()
.equals("java.util.Hashtable"))
vector.insertElementAt(hashtable_99_.clone(), 0);
((Hashtable) vector.firstElement()).put("section-header",
Boolean.TRUE);
}
return vector;
}
private final Object[] if(String string) {
string = string.trim();
int i = string.indexOf(">");
if (i == -1 || !string.startsWith("<")) {
((AcuteScroller) this).l
+= "Error 02: Missing end of style declaration:
";
((AcuteScroller) this).l += "'" + int(string) + "'
";
Object[] objects = { "", new Hashtable(), "" };
return objects;
}
String string_111_ = string.substring(1, i).trim();
string = string.substring(i + 1);
if (string_111_.endsWith("/") && string_111_.length() > 1)
string_111_ = string_111_.substring(0, string_111_.length() - 1);
String string_112_ = "";
Hashtable hashtable = new Hashtable();
int i_113_ = 0;
while (!string_111_.trim().equals("")) {
i_113_++;
String string_114_
= new StringTokenizer(string_111_).nextToken(" \t\014\n\r=");
string_111_ = string_111_.substring(string_114_.length()).trim();
if (!string_111_.startsWith("=") && i_113_ == 1)
string_112_ = string_114_.trim().toLowerCase();
else {
String string_115_ = string_114_.trim().toLowerCase();
string_111_ = string_111_.substring(1).trim();
String string_116_ = string_111_;
String string_117_ = "";
boolean bool = false;
int i_118_ = -1;
if (string_111_.startsWith("\"")) {
bool = true;
string_111_ = string_111_.substring(1);
i_118_ = string_111_.indexOf("\"");
} else if (string_111_.startsWith("'")) {
string_111_ = string_111_.substring(1);
i_118_ = string_111_.indexOf("'");
bool = true;
}
if (i_118_ != -1) {
string_117_ = string_111_.substring(0, i_118_);
string_111_ = string_111_.substring(i_118_ + 1).trim();
}
if (!bool || i_118_ == -1) {
((AcuteScroller) this).l
+= "Error 03: Missing delimiter character (' or \") for property value of ";
((AcuteScroller) this).l
+= "" + int(string_115_) + ":
";
((AcuteScroller) this).l
+= (int(string_116_.substring(0,
Math.min(string_116_
.length(),
10)))
+ "...
");
break;
}
String string_119_ = string_115_;
String string_120_ = "";
if (string_115_.endsWith("-over")) {
string_119_
= string_115_.substring(0, string_115_.length() - 5);
string_120_ = "-over";
}
if (string_115_.endsWith("-click")) {
string_119_
= string_115_.substring(0, string_115_.length() - 6);
string_120_ = "-click";
}
if (n.containsKey(string_119_)
&& !((Boolean) n.get(string_119_)).booleanValue()) {
string_119_ = string_115_;
string_120_ = "";
}
if (!U.containsKey(string_119_))
((AcuteScroller) this).l
+= ("Error 04: Unknown property name "
+ (String) string_115_ + ".
");
else {
string_117_ = a(string_117_);
int i_121_ = ((Integer) U.get(string_119_)).intValue();
java.io.Serializable serializable = null;
try {
switch (i_121_) {
case 0:
serializable
= new Integer(Integer.parseInt(string_117_));
break;
case 1:
serializable = new Boolean(string_117_);
break;
case 2:
serializable = string_117_;
break;
case 3:
serializable
= new Color(Integer.parseInt(string_117_, 16));
break;
case 4:
case 5:
serializable
= new URL(this.getDocumentBase(), string_117_);
break;
}
} catch (Exception exception) {
((AcuteScroller) this).l
+= ("Error 05: Invalid " + p[i_121_]
+ " value for " + (String) string_115_
+ ":
");
((AcuteScroller) this).l
+= "'" + int(string_117_) + "'
";
continue;
}
hashtable.put(string_115_, serializable);
}
}
}
Object[] objects = { string_112_, hashtable, string };
return objects;
}
private final Hashtable new(String string) {
string = for(string);
Hashtable hashtable = new Hashtable();
int i;
while ((i = string.indexOf("<")) != -1) {
string = string.substring(i);
Object[] objects = if(string);
String string_122_ = (String) objects[0];
Hashtable hashtable_123_ = (Hashtable) objects[1];
string = (String) objects[2];
if (!string_122_.equals("") && !hashtable_123_.isEmpty())
hashtable.put(string_122_, hashtable_123_);
}
return hashtable;
}
private final Hashtable a(Hashtable hashtable) {
Enumeration enumeration = hashtable.keys();
Vector vector = new Vector();
while (enumeration.hasMoreElements())
vector.addElement((String) enumeration.nextElement());
enumeration = vector.elements();
while (enumeration.hasMoreElements()) {
String string = (String) enumeration.nextElement();
String string_124_ = string;
if (string_124_.endsWith("-over"))
string_124_ = string.substring(0, string.length() - 5);
if (string.endsWith("-click"))
string_124_ = string.substring(0, string.length() - 6);
boolean bool = ((Boolean) e.get(string_124_)).booleanValue();
if (!bool)
hashtable.remove(string);
}
return hashtable;
}
private final String for(String string) {
for (int i = 0; i < ((AcuteScroller) this).k.length; i++) {
int i_125_;
while ((i_125_ = string.indexOf(((AcuteScroller) this).k[i][0]))
!= -1) {
int i_126_
= string.indexOf(((AcuteScroller) this).k[i][1], i_125_);
if (i_126_ != -1)
string
= (string.substring(0, i_125_)
+ string.substring(i_126_ + ((AcuteScroller) this)
.k[i][1].length()));
else {
((AcuteScroller) this).l
+= "Error 01: Missing end of block started with ";
((AcuteScroller) this).l
+= ("'" + int(((AcuteScroller) this).k[i][0])
+ "'.
");
return string.substring(0, i_125_);
}
}
}
return string;
}
public final void paint(Graphics graphics) {
if (!System.getProperty("java.version").startsWith("1.0")) {
int i = 0;
if (((AcuteScroller) this).f)
i = 3;
else if (((AcuteScroller) this).try != null)
i = 12;
this.setCursor(new Cursor(i));
}
if (((AcuteScroller) this).f || ((AcuteScroller) this).long
|| u == null) {
Color color = Color.white;
Color color_127_ = new Color(5263440);
String string = "";
try {
color
= new Color(Integer.parseInt
(this.getParameter("loading-background-color"),
16));
} catch (Exception exception) {
/* empty */
}
try {
color_127_
= new Color(Integer.parseInt
(this.getParameter("loading-text-color"), 16));
} catch (Exception exception) {
/* empty */
}
if (((AcuteScroller) this).f) {
string = this.getParameter("loading-text");
if (string == null)
string = "(loading)";
}
if (((AcuteScroller) this).long) {
string
= (null
+ "\nUnregistered version\nFor evaluation use only!\nwww.acuteapplets.com");
color = Color.darkGray;
color_127_ = Color.white;
}
Graphics graphics_128_ = b.getGraphics();
graphics_128_.setColor(color);
graphics_128_.fillRect(0, 0, this.size().width,
this.size().height);
Font font = new Font("Helvetica", 0, 9);
graphics_128_.setFont(font);
graphics_128_.setColor(color_127_);
FontMetrics fontmetrics = graphics_128_.getFontMetrics(font);
StringTokenizer stringtokenizer
= new StringTokenizer(string, "\n");
int i = (this.size().height / 2
- (fontmetrics.getHeight() * stringtokenizer.countTokens()
/ 2)
+ fontmetrics.getAscent());
while (stringtokenizer.hasMoreTokens()) {
String string_129_ = stringtokenizer.nextToken();
graphics_128_.drawString(string_129_,
(this.size().width
- fontmetrics
.stringWidth(string_129_)) / 2,
i);
i += fontmetrics.getHeight();
}
}
graphics.drawImage(b, 0, 0, this);
this.getToolkit().sync();
}
private final void a(String string, String string_130_) {
((AcuteScroller) this).l = "";
string = do(string);
string_130_ = do(string_130_);
if (string.equals(""))
string = " ";
Hashtable hashtable = new(q);
Hashtable hashtable_131_ = new(string_130_);
Enumeration enumeration = hashtable.keys();
while (enumeration.hasMoreElements()) {
String string_132_ = (String) enumeration.nextElement();
if (!hashtable_131_.containsKey(string_132_))
hashtable_131_.put(string_132_, hashtable.get(string_132_));
else
a((Hashtable) hashtable_131_.get(string_132_),
(Hashtable) hashtable.get(string_132_));
}
Vector vector = a(string, hashtable_131_);
a(vector);
while (!byte()) {
((AcuteScroller) this).f = true;
paint(this.getGraphics());
try {
Thread.sleep(20L);
} catch (InterruptedException interruptedexception) {
/* empty */
}
}
((AcuteScroller) this).f = false;
if(vector);
if (!((AcuteScroller) this).l.equals(""))
if(a(((AcuteScroller) this).l, hashtable));
int();
}
public final void run() {
if();
a("scroll-break", 2, "half", Boolean.FALSE, Boolean.FALSE);
a("scroll-pause", 0, new Integer(0), Boolean.FALSE, Boolean.FALSE);
a("scroll-speed", 0, new Integer(1), Boolean.FALSE, Boolean.FALSE);
System.out.println(null + " (http://www.acuteapplets.com).");
this.repaint();
this.show();
z = this.createImage(this.size().width, this.size().height);
b = this.createImage(this.size().width, this.size().height);
do();
((AcuteScroller) this).f = true;
paint(this.getGraphics());
for();
loadMain(this.getParameter("Message"), this.getParameter("style"));
String[] strings = null;
String[] strings_133_ = null;
boolean bool = false;
boolean bool_134_ = false;
boolean bool_135_ = false;
boolean bool_136_ = false;
((AcuteScroller) this).do = -1;
boolean bool_137_ = false;
long l = 0L;
int i = 0;
int i_138_ = 0;
boolean bool_139_ = false;
int i_140_ = 0;
Rectangle rectangle = null;
int i_141_ = 0;
int i_142_ = 0;
for (;;) {
if (bool_134_ == false) {
strings_133_ = a();
if (strings_133_ != null) {
strings = strings_133_;
bool_134_ = true;
bool_135_ = false;
} else {
strings_133_ = try();
if (strings_133_ != null) {
bool_134_ = true;
bool_135_ = true;
}
}
}
if (bool_134_ && bool == false) {
String string = strings_133_[0];
String string_143_ = strings_133_[1];
a(string, string_143_);
bool_136_ = bool_135_;
bool_134_ = false;
bool = true;
rectangle
= (Rectangle) ((AcuteScroller) this).byte.elementAt(0);
i_141_ = 0;
for (int i_144_ = 0;
i_144_ < ((AcuteScroller) this).char.size(); i_144_++) {
String string_145_ = (String) a(i_144_, "scroll-break");
int i_146_ = ((Integer)
((AcuteScroller) this).H.elementAt(i_144_))
.intValue();
i_142_ = i_141_ + i_146_;
if (string_145_.equalsIgnoreCase("full"))
i_146_ += ((Rectangle) ((AcuteScroller) this).byte
.elementAt(i_144_)).height;
else if (string_145_.equalsIgnoreCase("none"))
i_146_ += 0;
else
i_146_ += Math.max(0, rectangle.height - i_146_);
((AcuteScroller) this).H.setElementAt(new Integer(i_146_),
i_144_);
i_141_ += i_146_;
}
bool_137_ = false;
i = rectangle.height;
i_138_ = 0;
}
int i_147_ = i;
int i_148_ = 0;
((AcuteScroller) this).try = null;
int i_149_ = 0;
int i_150_ = i_147_;
boolean bool_151_ = false;
int i_152_ = 0;
while (i_147_ < rectangle.height) {
if (i_147_ >= 0 && !bool_151_) {
i_149_ = i_148_;
i_150_ = i_147_;
bool_151_ = true;
}
i_152_ = i_148_;
int i_153_
= ((Integer) ((AcuteScroller) this).H.elementAt(i_148_))
.intValue();
if (rectangle.inside(((AcuteScroller) this).w,
((AcuteScroller) this).Y)
&& i_147_ >= -i_153_)
a(i_148_, i_138_, i_147_);
i_147_ += i_153_;
i_148_ = (i_148_ + 1) % ((AcuteScroller) this).char.size();
}
long l_154_ = System.currentTimeMillis();
if(i_152_, z.getGraphics());
i_147_ = i;
i_148_ = 0;
while (i_147_ < rectangle.height
&& i_148_ < ((AcuteScroller) this).char.size()) {
if (i_147_ + ((Integer)
((AcuteScroller) this).H.elementAt(i_148_))
.intValue()
> 0)
a(i_148_, i_138_, i_147_, z.getGraphics());
i_147_
+= ((Integer) ((AcuteScroller) this).H.elementAt(i_148_))
.intValue();
i_148_++;
if (bool_136_ == false)
i_148_ %= ((AcuteScroller) this).char.size();
}
a(i_152_, z.getGraphics());
Image image = b;
b = z;
z = image;
paint(this.getGraphics());
try {
Thread.sleep(Math.max(10L, (l_154_ + 40L
- System.currentTimeMillis())));
} catch (InterruptedException interruptedexception) {
/* empty */
}
int i_155_ = ((Integer) a(i_149_, "scroll-pause")).intValue();
if (i_155_ == -1)
i_155_ = 2147483647;
if (i_150_ == 0 && i_155_ != 0 && bool_137_ == false) {
l = System.currentTimeMillis() + (long) i_155_;
bool_137_ = true;
}
if (l <= System.currentTimeMillis())
bool_137_ = false;
if (bool_134_) {
if (i_138_ < rectangle.width)
i_138_ += 30;
else {
i_138_ = 0;
bool = false;
}
bool_137_ = false;
} else if (((AcuteScroller) this).K) {
if (bool_139_) {
int i_156_ = ((AcuteScroller) this).Y - i_140_;
i += i_156_;
if (i_156_ != 0)
bool_137_ = false;
}
} else if (bool_137_ == false) {
int i_157_ = ((Integer) a(i_152_, "scroll-speed")).intValue();
if (i_155_ != 0 && i_150_ >= 0) {
i_157_ = Math.min(i_157_, i_150_);
i_157_ = Math.max(i_157_, 1);
}
i -= i_157_;
if (i < -i_141_ * 10 && i_141_ != 0)
i = -(-i % i_141_) - i_141_ * 10;
}
i_140_ = ((AcuteScroller) this).Y;
bool_139_ = ((AcuteScroller) this).K;
if (bool_136_ && !((AcuteScroller) this).K && i < -i_142_) {
strings_133_ = strings;
bool_135_ = false;
bool_134_ = true;
bool = false;
((AcuteScroller) this).T = false;
}
}
}
public final void start() {
if (u == null) {
u = new Thread(this);
u.start();
}
}
public final void stop() {
if (u != null) {
u.stop();
u = null;
}
}
public final synchronized void unloadTemp(int i) {
if (((AcuteScroller) this).T) {
((AcuteScroller) this).new = 9223372036854775807L;
((AcuteScroller) this).for = System.currentTimeMillis() + (long) i;
} else {
((AcuteScroller) this).new = 9223372036854775807L;
((AcuteScroller) this).for = 9223372036854775807L;
}
}
public final void update(Graphics graphics) {
paint(graphics);
}
}