import java.util.*;

public class Stock {
	public Stock(String name) {
		value = 100;
		this.name = name;
	}
	public void increase (int amount) {
		System.out.println(getName()+" goes up by "+amount);
		value += amount;
		if (value > 195) {  
		  System.out.println(name+" splits.");
		  for (int i = 0; i < owners.size(); i++) {
			stockOwner temp = (stockOwner)owners.elementAt(i);
			if (temp.owner==person) {
			  amount += temp.numberStocks;
			  owners.removeElementAt(i);
			}
		  }
		}
	}
	public void decrease (int amount) {
		System.out.println(getName()+" goes down by "+amount);
		value -= amount;
		if (value < 0) {
			System.out.println(name+" is delisted, all stocks are lost");
			owners = new Vector();
			value = 100;
		}
	}
	public void dividend (int amount) {
		if (value < 100) return;
		System.out.println(getName()+" gives a dividend of "+amount);
		for (int i = 0; i < owners.size(); i++) {
			stockOwner temp = (stockOwner)owners.elementAt(i);
			int amountPaid = temp.numberStocks*amount/100;
			System.out.println(temp.owner.getName()+" is paid "+amountPaid+" from the dividend on "+name);
			temp.owner.getCash(amountPaid);
		}
	}
	public int getValue() {
		return value;
	}
	public String getName() {
		return name;	
	}
	public void buyStock(Player person, int amount) {
		int cost = amount*value/100;
		if (!person.buy(cost)) {
			return;
		} 	
		System.out.println(person.getName()+" buys "+amount+" shares of "+name);
		for (int i = 0; i < owners.size(); i++) {
			stockOwner temp = (stockOwner)owners.elementAt(i);
			if (temp.owner==person) {
			  amount += temp.numberStocks;
			  owners.removeElementAt(i);
			}
		}
		owners.add(new stockOwner(person, amount));
	}
	public void sellStock (Player person, int amount) {

	}
	public void sellAll (Player person) {
		for (int i = 0; i < owners.size(); i++) {
			stockOwner temp = (stockOwner)owners.elementAt(i);
			if (temp.owner==person) {
			  int salePrice = temp.numberStocks*value/100;
			  System.out.println(temp.numberStocks+" "+name+" sold for $"+salePrice);
			  owners.removeElementAt(i);
			  person.getCash(salePrice);
			}
		}
	}
	int value = 100;
	String name = new String();
	Vector owners = new Vector();

	private class stockOwner {
		stockOwner(Player owner, int number) {
			this.owner=owner;
			numberStocks = number;
		}
		Player owner;
		int numberStocks;
	}
}
