import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class numerologie extends Applet {
  private GridBagLayout gbl;
  private GridBagConstraints gbc;
  private Button calc;
  private TextField TT,MM,JJJJ,Geburtszahl,Schicksalszahl,K,S,G;
  private int[] feld;
  private int i,k,s,g; //s->Summe aber auch (k)örper, (s)eele, (g)eist
       
  //Methode zum Hinzufügen neuer Elemente zum GridBagLayout
  private void neu(Component com,
                   GridBagLayout l, GridBagConstraints c,
                   int x, int y, int b, int h) //x,y-Koordinaten, Breite, Höhe
  { c.gridx=x; c.gridy=y;
    c.gridwidth=b; c.gridheight=h;
    l.setConstraints(com,c);
    add(com);
  } 

  public void init()
  { setBackground(Color.white);
    gbl=new GridBagLayout();
    setLayout(gbl);
    gbc=new GridBagConstraints();
    gbc.insets=new Insets(3,3,3,3);
    gbc.fill=GridBagConstraints.VERTICAL;
    neu(new Label("  T T"),gbl,gbc,0,1,1,1);
    neu(TT=new TextField("",2),gbl,gbc,0,2,1,1);
    TT.setEditable(true);
    neu(new Label("  M M"),gbl,gbc,1,1,1,1);
    neu(MM=new TextField("",2),gbl,gbc,1,2,1,1);
    MM.setEditable(true);
    gbc.fill=GridBagConstraints.BOTH;
    neu(new Label("          J J J J"),gbl,gbc,2,1,1,1);    
    neu(JJJJ=new TextField("",4),gbl,gbc,2,2,1,1);
    JJJJ.setEditable(true);
    neu(calc=new Button("berechnen"),gbl,gbc,0,3,3,1);
    ButtonListener bl=new ButtonListener();
    calc.addActionListener(bl);
    neu(new Label("Geburtszahl"),gbl,gbc,0,4,2,1);
    neu(Geburtszahl=new TextField("",11),gbl,gbc,2,4,1,1);
    neu(new Label("Schicksalszahl"),gbl,gbc,0,5,2,1);
    neu(Schicksalszahl=new TextField("",11),gbl,gbc,2,5,1,1);
    neu(new Label("Körper"),gbl,gbc,0,6,2,1);
    neu(K=new TextField("",2),gbl,gbc,2,6,1,1);
    neu(new Label("Seele"),gbl,gbc,0,7,2,1);
    neu(S=new TextField("",2),gbl,gbc,2,7,1,1);
    neu(new Label("Geist"),gbl,gbc,0,8,2,1);
    neu(G=new TextField("",2),gbl,gbc,2,8,1,1);
    feld=new int[8];    
  }
  
  public class ButtonListener implements ActionListener
  { public void actionPerformed(ActionEvent e)
    { if (e.getActionCommand().equals("berechnen"))
      { for (i=0;i<8;i++) feld[i]=0;
      	if (Integer.parseInt(TT.getText())<10)
        { feld[0]=0;
          feld[1]=Integer.parseInt(TT.getText());
        }  
        else
        { feld[0]=Integer.parseInt(TT.getText())/10;
          feld[1]=Integer.parseInt(TT.getText())%10;
        }
        if (Integer.parseInt(MM.getText())<10)
        { feld[2]=0;
          feld[3]=Integer.parseInt(MM.getText());
        }  
        else
        { feld[2]=Integer.parseInt(MM.getText())/10;
          feld[3]=Integer.parseInt(MM.getText())%10;
        }
        feld[4]=Integer.parseInt(JJJJ.getText())/1000;
        feld[5]=(Integer.parseInt(JJJJ.getText())/100)%10;
        feld[6]=(Integer.parseInt(JJJJ.getText())/10)%10;
        feld[7]=Integer.parseInt(JJJJ.getText())%10;  
        showStatus(String.valueOf(feld[0])+" "
                   +String.valueOf(feld[1])+" "
                   +String.valueOf(feld[2])+" "
                   +String.valueOf(feld[3])+" "
                   +String.valueOf(feld[4])+" "
                   +String.valueOf(feld[5])+" "
                   +String.valueOf(feld[6])+" "
                   +String.valueOf(feld[7]));
        s=0;
        s=feld[0]+feld[1];
        if (s>9) s=s/10+s%10;
        Geburtszahl.setText(String.valueOf(s));
        s=0;
        for (i=0;i<8;i++) s=s+feld[i];
        while (s>9) s=s/10+s%10;
        Schicksalszahl.setText(String.valueOf(s));
        k=s=g=0;
        for (i=0;i<8;i++)
        { if (feld[i]==1^feld[i]==4^feld[i]==7) k=k+feld[i];
          if (feld[i]==2^feld[i]==5^feld[i]==8) s=s+feld[i];
          if (feld[i]==3^feld[i]==6^feld[i]==9) g=g+feld[i];
        }
        K.setText(String.valueOf(k)); 
        S.setText(String.valueOf(s));
        G.setText(String.valueOf(g));       
      }	  
    }
  }

}    	
