import netscape.javascript.*;                       //JavaScript eléréséhez kell
import java.applet.Applet;
import java.awt.*;

public class JScriptTest extends Applet implements Runnable {
  private Thread kicker=null;                                     //saját Thread
  public String text=null;
  public int ido;
  public void szinez(String szin, boolean eloter) {              //színbeállitás
    int val=0;
    try {
        if (szin.startsWith("0x")) {                       //hexában van megadva
           val=Integer.parseInt(szin.substring(2), 16);
        } else if (szin.startsWith("#")) {                 //hexában van megadva
               val=Integer.parseInt(szin.substring(1), 16);
        } else if (szin.startsWith("0") && szin.length()>1) {          //oktális
               val=Integer.parseInt(szin.substring(1), 8);
        } else val=Integer.parseInt(szin, 10);         //decimálisan van megadva
        if (eloter) setForeground(new Color(val));
        else setBackground(new Color(val));
        repaint();
    } catch (NumberFormatException e) {}
  }
  public void paint(Graphics g) {                               //szöveg kiírása
    if (text!=null) g.drawString(text, 0, 50);
  }
  public void start() {                                         //villogás indul
    if (kicker==null) {
       kicker=new Thread(this);
       kicker.start();
    }
  }
  public void stop() {                                         //villogás megáll
    if (kicker!=null) {
       kicker=null;
    }
  }
  public void run() {                                              //villogtatás
    while (Thread.currentThread()==kicker) {
          Color color=getForeground();
          setForeground(getBackground());
          setBackground(color);
          try {kicker.sleep(ido<500 ? 500 : ido);}
          catch (Exception e) {}
    }
  }
  public void listaz() {
    Applet applet;
    JSObject form;
    JSObject item;
    JSObject items;
    int itemcount;

    try {
         JSObject win=JSObject.getWindow(this);
         System.out.println("window="+win);                    //window objektum
         JSObject doc=(JSObject)win.getMember("document");   //document objektum
         System.out.println("document="+doc);
         JSObject forms=(JSObject)doc.getMember("forms");           //forms tömb
         System.out.println("forms="+forms);
         int imax=((Double)forms.getMember("length")).intValue();//form-ok száma
         System.out.println("forms.lenght="+imax);
         for (int i=0; i<imax; i++) {                          //form-okon végig
             form=(JSObject)forms.getSlot(i);
             System.out.println("forms["+i+"]: "+form);          //form objektum
             items=(JSObject)form.getMember("elements");         //elements tömb
             itemcount=((Double)items.getMember("length")).intValue();
             for (int j=0; j<itemcount; j++) {
                 item=(JSObject)items.getSlot(j);               //elemeken végig
                 System.out.println("    elements["+j+"]: "+item);
                 Object[] params = {
                                   item,
                                   "document.forms["+i+"].elements["+j+"]"
                          };
                 win.call("showProps", params);               //böngészőablakba infó
             }
         }
    } catch (Exception e) {System.out.println(e+"");}
  }
}
