import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.lang.Object.*;
import java.sql.*;
import java.util.List;
import java.util.LinkedList;

// servleti puhul kus luua ühendus?
//<img src='u.gif'>????
//kuidas javascriptilt muutujate väärtusi saada?

/*
 * Klassi põhimõte seisneb admin ülesannete koordineerimises.
 * Kui on vaja vastavat kirjet muuta, kustutada või lisada pöördutakse kõigepealt Administreerimine klassi,
 * kus loetakse sisse kaasa antud parameetrid ,kuvatakse vastavalt kas sisestus-, muutmisvorm või juba täidetakse 
 * vastava meetodi abil sisestatud andmete abil uue kirje väljad sql tabelis.
 */
public class Administreerimine extends HttpServlet{
	static String lk;
	static String operatsioon;
	String kaustanimi;
	String kustutatav;
	String vaartus;
	String pealkiri;
	String asukoht;
	String formaat;
	String autor;
	String avaldatud;
	String kirjastus;
	String lisa;
	String ees;
	String pere;
	
	/*
	 * valib vastavalt muutujate väärtustele vastava lehe
	 *
	 * lk=1 - kaustad
	 * lk=2 - failid
	 * lk=3 - tabelid (1 - lisaAutor, 2 - lisaFromaat, 3 - lisaKirjastus)
	 *
	 * operatsioon=1 - lisamine
	 * operatsioon=2 - muutmine
	 * operatsioon=3 - kustutamine
	 */
	protected void valiLeht(String s2, String s3){
		switch(Integer.parseInt(s2)){
			case 1:
				switch(Integer.parseInt(s3)){					
					case 1:
						if(kaustanimi!=null){
							Kaust.lisa(kaustanimi);					
						}else{
							Kaust.lisamine();
						}
						break;
					case 2:					
						if(vaartus!=null){								
							Kaust.muuda(vaartus,kustutatav);
						}else{
							Kaust.muutmine(kustutatav);
						}
						break;
					case 3:
						if(kustutatav!=null){
							Kaust.kustuta(kustutatav);
						}else{
							
						}						
						break;
				}
				break;
			case 2:
				switch(Integer.parseInt(s3)){
					case 1:
						if((pealkiri!=null)&&(asukoht!=null)&&(formaat!=null)){
							// pealkiri, autor, avaldatud, kirjastus, teema, formaat, asukoht
							Fail.lisa(pealkiri, autor, avaldatud, kirjastus, String.valueOf(EMaterjal.ID), formaat, asukoht);
						}else{
							Fail.lisamine();
						}
						break;
					case 2:
						if(pealkiri!=null){								
							Fail.muuda(pealkiri, autor, avaldatud, kirjastus, formaat, asukoht,kustutatav);
						}else{
							Fail.muutmine();
						}
						break;
					case 3:
						Fail.kustuta(kustutatav);
						break;
				}
				break;
			case 3:
				switch(Integer.parseInt(s3)){
					case 1:
						if((ees!=null)||(pere!=null)){
							Tabel.lisaAutor(ees,pere);
						}else{
							Tabel.autoriLisamine();
						}
						break;
					case 2:
						if(kirjastus!=null){
							Tabel.lisaKirjastus(kirjastus);
						}else{
							Tabel.kirjastuseLisamine();
						}
						break;
					case 3:
						if(formaat!=null){
							Tabel.lisaFormaat(formaat);
						}else{
							Tabel.formaadiLisamine();
						}
						break;
				}
				break;
		}
	}
	/* 
	 * doGet
	 * Joonistab põhilise kujunduse, initsialiseerib muutujad
	 */
	public void doGet(HttpServletRequest k, HttpServletResponse v) throws IOException, ServletException{			
		String s1,s2,s3; // Parameetrite hoidmiseks
		try{			
			EMaterjal.kysimus=k;
			EMaterjal.vastus=v;
			EMaterjal.pw=v.getWriter();			
			
			EMaterjal.vastus.setContentType("text/html");			
			EMaterjal.pw.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
			EMaterjal.pw.println("<HTML><HEAD>");
			EMaterjal.pw.println("<META http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />");		
			EMaterjal.pw.println("<TITLE>eMaterjalid</TITLE></HEAD>\n");
			EMaterjal.pw.println("<BODY BGCOLOR=#535772 LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0 LINK=#FFFFFF VLINK=#FFFFFF><CENTER>");
			
			s1=k.getParameter("id");			
			lk=k.getParameter("lk");
			operatsioon=k.getParameter("operatsioon");
			kaustanimi=k.getParameter("kaustanimi");
			kustutatav=k.getParameter("modifitseeritav");			
			avaldatud=k.getParameter("avaldatud");	
			vaartus=k.getParameter("vaartus");			
			pealkiri=k.getParameter("pealkiri");
			asukoht=k.getParameter("asukoht");
			formaat=k.getParameter("formaat");
			kirjastus=k.getParameter("kirjastus");
			autor=k.getParameter("autor");
			lisa=k.getParameter("lisa");
			ees=k.getParameter("ees");
			pere=k.getParameter("pere");						
			if(s1==null){
				EMaterjal.ID=0;	
	        }else{
	        	EMaterjal.ID=Integer.parseInt(s1);
			}
			valiLeht(lk,operatsioon);
			EMaterjal.pw.println("</CENTER></BODY></HTML>");		
		}catch(Exception e){
			EMaterjal.pw.println("viga(Administreerimine:doGet):"+e);
		}
	}
	public void doPost(HttpServletRequest k, HttpServletResponse v) throws IOException, ServletException{
		doGet(k,v);
	}
}