import java.sql.*;
import java.lang.*;
import java.net.*;
import java.io.*;
import java.util.Date;
import java.util.*;
import java.text.DateFormat;
public class meeldib{
	public static void main(String argumendid[]) throws Exception{

		//mysql draiveri setingud
		String driver = "com.mysql.jdbc.Driver";
		String database = "jdbc:mysql://193.40.81.55/meeldib";
		String user = "razu";
		String passwd = "ikaldus";

		//käivitab mysql draiveri
		try {
			Class.forName(driver).newInstance();
		}catch(Exception e){
			System.err.println(e.getMessage());
		}
		
		//tekitame serveri soceti, et ta kuulaks porti 3001
		ServerSocket ss=new ServerSocket(3001);

		//kella jaoks keele seaded
		List nimistu=Arrays.asList(DateFormat.getAvailableLocales());
		Locale keel=new Locale("et", "EE");
		if(!nimistu.contains(keel))keel=Locale.GERMANY;	


		while(true){

			//avame soceti, et ta kuulaks porti 3001
			Socket sc=ss.accept();
		
			//erinevad Writerid ja Readerid info liikumisega ümber käimiseks
			BufferedReader sisse=new BufferedReader(
				new InputStreamReader(sc.getInputStream())
			);
			PrintWriter valja=new PrintWriter(sc.getOutputStream(), true);
		
			//alustame asjade küsimist
			valja.println("Lammaz.. anna oma kaustaja:");
			String kasutaja=sisse.readLine();
			valja.println("No tere "+kasutaja+" parool ka nyyd:");
			String parool=sisse.readLine();
					
			//Loome ühenduse mysqliga kasutades eelpool defineeritud draiverit
			Connection con = DriverManager.getConnection(database, user, passwd);
			Statement stmt = con.createStatement();
			
			ResultSet rs1 = stmt.executeQuery("SELECT nimi, pass FROM kasutajad;");
			boolean olemas=false;
			while (rs1.next()){

				if (rs1.getString("nimi").equals(kasutaja) && !rs1.getString("pass").equals(parool)){
					valja.println("Parool on vale!! KA0 MINEMA");
					olemas=true;
				}else if(rs1.getString("nimi").equals(kasutaja) && rs1.getString("pass").equals(parool)){
					olemas=true;
					valja.println("ommik vana... Aeg: "+DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,keel).format(new Date()));
				}
			}

			if (olemas==false){
				//kuna kasutajat baasis ei ole, iis lisame
				valja.println("Sind pole baasis.");
				valja.println("Tahad end 2kki lisada? y/n");
				String valik=sisse.readLine();
				if (valik.equals("y")){
					valja.println("Kasutajanimi palun:");
					String uus_user=sisse.readLine();
					valja.println("Parool palun:");					
					String uus_pass=sisse.readLine();
				
					stmt.executeUpdate("INSERT INTO kasutajad VALUES('', '"+uus_user+"', '"+uus_pass+"')");
				
					//kontollime, kas kasutja sai lisatud või mitte
					ResultSet rs2 = stmt.executeQuery("SELECT nimi, pass FROM kasutajad WHERE nimi='"+uus_user+"' AND pass='"+uus_pass+"';");
					if (rs2.next()){
						valja.println("Kasutaja lisatud.. V2ljume programmist");
					}else{
						valja.println("Viga kasutaja lisamisel");
					}
				
				}else if (valik.equals("n")){
					valja.println("Kui ei taha, siis ei taha..");
				}else{
					valja.println("Kui aru ei saa, siis proovi uuesti!!");
				}
			
			}

			valja.println("L6petame siis t2naseks.");
			sisse.readLine();
			
			//yhendused kinni			
			sc.close();
			con.close();
		}
	}
}