package xyz.thastertyn.JecnaParse;

import java.io.IOException;
import java.net.UnknownHostException;
import java.util.HashSet;

import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

/**
 * Jeden radek v rozvrhu
 */
public class Rozvrh {
	
	private String[][] rozvrh = new String[5][10];
	int pos = 0;


	public void setPredmet(String pr, int d, int i)
	{
		rozvrh[d][i] = pr;
	}

	public String[][] getRozvrh()
	{
		return rozvrh;
	}

	@Override
	public String toString()
	{
		String s = "";
		for(String[] st : rozvrh)
		{
			s += ("| ");
			for(String str : st)
			{
				s += String.format("%-5s", str) + " | ";
			}
			s += "\n";
		}

		return s;
	}

	/**
	 * Stahne rozvrh z www.spsejecna.cz a dale ho zpracuje do formy
	 * se kterou da pracovat
	 * @param Jsessionid ze stranek
	 * @throws UnknownHostException kdyz neni pripojeni k internetu
	 * @throws IOException ostatni exceptiony nejsou dulezite, tak jsou zahrnuty v jednom
	 */
	public void downloadRozvrh() throws UnknownHostException, IOException
	{
		Document rozvrhDoc = Downloader.download("https://www.spsejecna.cz" + "/timetable/class").get();

		Elements rozvrhTable = rozvrhDoc.select("table.timetable").select("tr");
		Elements[] rozvrhDny = new Elements[rozvrhTable.size()];

		for(int i = 0; i < rozvrhTable.size(); i++)
		{
			rozvrhDny[i] =  rozvrhTable.get(i).children();
		}

		for(int i = 1; i < 6; i++)
		{
			for(int j = 1; j < 11; j++)
			{
				String predmet = rozvrhDny[i].get(j).select("span.subject").text().replaceAll(" ", "/");

				// Predmety jako CEL jsou trikrat, staci ale jen jednou
				HashSet<String> set = new HashSet<>();
				String[] split = predmet.split("/");

				for(String s : split)
				{
					set.add(s);
				}

				String pr = "";

				if(set.size() > 1)
				{
					for(String s : set)
					{
						pr += s + "/";
					}
					pr = pr.substring(0, pr.length() - 1);
				}else{
					for(String s : set) { pr = s; break; }
				}
				
				if(pr.isBlank())
				{
					pr = "-";
				}

				rozvrh[i-1][j-1] = pr;
			}
		}
	}
}
