import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class EnglishStudyGuide extends Applet implements ActionListener {
	String number;
	int Words;
	String wordList[][] = new String[2][9999];
	String out;
	String def="";
	int wordNumber;
	
	Button button1;
	Button button2;
	Button button3;
	Button button4;
	Button button5;
	Button button6;
	
	boolean words = false;
	boolean defs = true;
	
	/*int Width;	
	FontMetrics fm=null;*/
	
	public void init() {
		//Width = getWidth();
		button1 =new Button("Show Words");
		add(button1);
		button2 = new Button("Show Definitions");
		add(button2);
		button3 = new Button("Answer");
		add(button3);
		button4 = new Button("Random Word");
		add(button4);
		button5 = new Button("Previous Word");
		add(button5);
		button6 = new Button("Next Word");
		add(button6);
		
		button1.addActionListener(this);
		button2.addActionListener(this);
		button3.addActionListener(this);
		button4.addActionListener(this);
		button5.addActionListener(this);
		button6.addActionListener(this);
		
		out = "Saving Word List, Please Wait...";
		repaint();
		setBackground(Color.white);
		number = getParameter("#ofWords");
		Words = Integer.parseInt(number);
		for(int i=1; i<=Words; i++) {
			String word = getParameter("#" + i);
			int seperator = word.indexOf('-');
			wordList[0][i-1] = word.substring(0,seperator);
			wordList[1][i-1] = word.substring(seperator+1);
		}
		repaint();
	}
	
	public void start() {
		newWord();
		repaint();
	}
	public void newWord() {
		int random=0;
		int i=0;
		while(i != -1) {
			random = (int) (Math.random() * 100.0);
			if(random<Words && random != wordNumber) i =-1;
		}
		wordNumber = random;
		if(words) words();
		else if(defs) defs();
	}
	
	public void words() {
		out = "Word: " + wordList[0][wordNumber];
		def = "";
	}
	
	public void defs() {
		out = "Definition: " + wordList[1][wordNumber];
		def = "";
	}
	
	public void answer() {
		out = "Word: " + wordList[0][wordNumber];
		def = "Definition: " + wordList[1][wordNumber];
	}
	
	public void actionPerformed(ActionEvent e) {
		Object o = e.getSource();
		if(o==button1) {
			words = true;
			defs = false;
			words();
			repaint();
		}
		else if(o==button2) {
			words = false;
			defs = true;
			defs();
			repaint();
		}
		else if(o==button3) {
			answer();
			repaint();
		}
		else if(o==button4) {
			newWord();
			repaint();
		}
		else if(o==button5) {
			if(wordNumber==0) wordNumber = Words;
			wordNumber--;
			if(words) words();
			else if(defs) defs();
			repaint();
		}
		else if(o==button6) {
			if(wordNumber>=Words-1) wordNumber = -1;
			wordNumber++;
			if(words) words();
			else if(defs) defs();
			repaint();
		}
	}
	
	public void paint(Graphics g) {
		g.setColor(new Color(0,0,182));
		g.setFont(new Font("Times New Roman",1,14));
		/*fm = g.getFontMetrics();
		int StringLengthOut = fm.stringWidth(out);
		int StringLengthDef = fm.stringWidth(def);
		if(StringLengthOut >= Width) {
			int i=0;
			int lastSpace = out.length();
			while(i!=-1) {
				lastSpace = out.lastIndexOf(' ',lastSpace);
				String temp = out.substring(0,lastSpace);
				int tempOut = fm.stringWidth(temp);
				if(tempOut < Width) i=-1;
			}
			out = out.substring(0,lastSpace);
		}*/
		g.drawString(out,50,60);
		g.drawString(def,50,75);
		g.setColor(Color.black);
		g.setFont(new Font("Arial",0,9));
		g.drawString("Created by Benjamin Zastovnik", 400, 100);
	}
}