import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.etri.groupware.*;
import com.etri.groupware.bbs.*;
import com.etri.groupware.organization.*;

public class ClubCreateServlet extends HttpServlet{

	GroupwareControllerInterface groupwareController=null;
	BBSControllerInterface bbsController = null;
	ResultStatus bbsResultStatus = null;
	Properties pro=null;
	OrganizationManagementControllerInterface omc = null;
	
	public void init(ServletConfig sc) throws ServletException
	{
		super.init(sc);
		
		//그룹웨어 컨트롤러를 생성한다.
		//먼저 프라퍼티를 생성한다.
		pro = new Properties();

		//DB매너저 구현 클래스 이름 설정
		pro.put("OrganizationDBManagerClassName", "PandaSoftOrganizationDBManager");
		pro.put("BBSDBManagerClassName", "PandaSoftBBSDBManager");
		pro.put("EDADBManagerClassName", "PandaSoftEDADBManager");
		pro.put("MailDBManagerClassName", "PandaSoftMailDBManger");
		
		try
		{
			groupwareController = GroupwareController.init( pro );
			System.out.println("그룹웨어 컨트롤러 생성을 마쳤습니다.");
			
			//게시판 관리 컨트롤러를 가져온다.
			bbsController = groupwareController.createBBSController();
			System.out.println("게시판 컨트롤러 생성도 무사히 마쳤습니다.");
			
			// 조직의 부와 팀을 가져오기 위해서 조직도 controller를 생성한다.
			omc = groupwareController.createOrganizationManagementController ( ) ;
			System.out.println ( "조직도 트리를 보여주는 서블리 조직도 관리 컨트롤러 생성도 무사히 마쳤습니다." ) ;

		}
		catch(Exception e)
		{ System.out.println( e.toString() ); }
	}
	
	public void destroy()
	{
		super.destroy();
		DBConnectionManager.instance.release();
		System.out.println("destory 끝...");
	}
	
	/*----------------------------------------------------------------- */
	/**
	 [메소드이름]: doGet<br>
	 [기능]: 동아리와 동아리 게시판을 작성하는 서블릿<br>
	 [파라미터]: HttpServletRequest req, HttpServletResponse res<br>
	 [호출자] : 사용자<br>
	 */
	/*--------------------------------------------------------------- */			
	public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
	{
		// session 확인하는곳....		
		HttpSession session = req.getSession(true);
		
		boolean authentication = false ;
		String kind = null ;
		String id = null ;
		String name = null ;
		
		if ((session.isNew()))
		{
			session.invalidate();
			res.sendRedirect("../Login.html");
		}
	    else if(session.getValue("Authentication").equals("true")){
	    	authentication = true;
            kind = (String)session.getValue("Kind");
            id = (String)session.getValue("Id");
            name = (String)session.getValue("Name");          
       }
       else {
            session.invalidate();
            res.sendRedirect("../Login.html");
       }
	   // session 확인 끝!!! 		*/
	   
		res.setContentType("text/html; charset=euc-kr");
		// 캐쉬를 못하도록..
		res.setHeader("cache-control", "no-cache");
		PrintWriter out = new PrintWriter(new OutputStreamWriter(res.getOutputStream(), "EUC-KR"));

		out.println("<html>");
		
		out.println("<head>");
		out.println("<title>게시판 만들기</title>");
		
		out.println("<script language=\"JavaScript\">");
		out.println("<!--");
		
		// form을 전송하기 전에 적당한 데이타가 입력되었는지 체크하는곳
		out.println("function Check_Form(form)");
		out.println("{");
		out.println("	var boardname='';");
		out.println("	for( var i = 0; i < form.BoardName.value.length; i++)");
		out.println("		boardname= boardname + ' ';");
		out.println("	if(form.BoardName.value.length == 0) alert(\"동아리 이름을 입력하여 주십시요.\");");
		out.println("	else if (form.BoardName.value == boardname ) alert(\"동아리 이름을 입력하여 주십시요.\");");
		out.println("    else form.submit();");
		out.println("}");
		
		out.println("//-->");		
		out.println("</script>");
		
		out.println("</head>");		
		

		out.println("<basefont size=2>");
		out.println( "<body bgcolor=white text=\"#0000FF\" link=\"#0000FF\" alink=\"#FF2020\" vlink=\"#000000\">" ) ;		
		
		// 게시판 우측에 들어가는 이미지...
		out.println("<p align=right><img src='../image/우측_게시판.gif'></p>");
		
		// 타이틀....
		out.println("<p align=\"center\"><font size=\"4\" color=\"gray\"><b>동아리 만들기</b></font>");
		out.println("<hr width=400><br></p>");

		out.println("<form name=form1 method=\"POST\" action=\"/servlet/ClubCreateServlet\">");
		
		// 테이블 시작..
		out.println("<table align=\"center\" cellpadding=\"1\" width=400>");
		// 게시판 시작하면 보여주는 처음 화면 설정
		
		// 테이블 색상을 넣는곳..
		String option1 = "bgcolor = \"#C7E4FF\" width=200 align=center";			// 첫열
		String option2 = "";				// 두번째 열

		out.println(" <input type=hidden name=\"Department\" value='동아리'></td>");
		
		// 화면당 몇개의 게시물을 보여줄것인가?
		out.println("  <tr>");
		out.println("    <td  " + option1 + " align=center><font size=2>이름은?</font></td>");
		out.println("    <td  " + option2 + " align=center><input type=\"text\" name=\"BoardName\" size=\"20\"><font size=2 color=black></font></td>");
		out.println("  </tr>");
		
		out.println("</table>");
		out.println("<p align=center><hr width=400></p>");
		
		out.println("  <p align=center><font size=\"2\"><input type=\"button\" value=\"전    송\" onClick='Check_Form( this.form);'>  <input type=\"button\" value=\"원래대로\"></font></p>");
		out.println("</form>");
		
		out.println("<br><br>");		
		out.println("<table width=400 align=center>");
		out.println("<tr>");
		out.println("<font color=red size=2 color=brown><b>※ 동아리 생성시 게시판도 같이 생성됩니다.</b></font>");
		out.println("</tr>");
		out.println("</table>");
		
	
		out.println("<br><br>");		
		out.println("</body>");
		out.println("</html>");
		
		out.close();
		
	}

	/*----------------------------------------------------------------- */
	/**
	 [메소드이름]: doPost<br>
	 [기능]: 동아리와 동아리 게시판을 작성하는 서블릿<br>
	 [파라미터]: HttpServletRequest req, HttpServletResponse res<br>
	 [호출자] : 사용자<br>
	 */
	/*--------------------------------------------------------------- */			
	public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
	{
		// session 확인하는곳....		
		HttpSession session = req.getSession(true);
		
		boolean authentication = false ;
		String kind = null ;
		String id = null ;
		String name = null ;
		
		if ((session.isNew()))
		{
			session.invalidate();
			res.sendRedirect("../Login.html");
		}
	    else if(session.getValue("Authentication").equals("true")){
	    	authentication = true;
            kind = (String)session.getValue("Kind");
            id = (String)session.getValue("Id");
            name = (String)session.getValue("Name");          
       }
       else {
            session.invalidate();
            res.sendRedirect("../Login.html");
       }
	   // session 확인 끝!!!
		
		res.setContentType("text/html; charset=euc-kr");
		PrintWriter out = new PrintWriter(new OutputStreamWriter(res.getOutputStream(),"EUC-KR"));

		String Department = req.getParameterValues("Department")[0];
		Department = new String ( Department.getBytes("ISO-8859-1"), "EUC-KR");
		System.out.println( Department );

		String BoardName = req.getParameterValues("BoardName")[0];
		BoardName = new String ( BoardName.getBytes("ISO-8859-1"), "EUC-KR");
		System.out.println( BoardName );

		out.println("<html><body>");

		out.println("<basefont size=2>");
		out.println( "<body bgcolor=white text=\"#0000FF\" link=\"#0000FF\" alink=\"#FF2020\" vlink=\"#000000\">" ) ;
		
		// 게시판 우측에 들어가는 이미지...
		out.println("<p align=right><img src='../image/우측_게시판.gif'></p>");

		// 만약 동아리 게시판을 생성할 경우 club table에 동아리 생성합니다.
		bbsResultStatus = bbsController.clubInsert( BoardName, "null(null);");
		if(bbsResultStatus.getResultStatus() != 0)
			out.println("동아리 테이블 생성 실패했습니다.");
		
		String Team="팀";
		// 게시판이름은 부서+팀+boardname 까지 입니다..
		String bbsID = Department + Team +BoardName;
		System.out.println( " 게시판의 이름은 " + bbsID );		
		bbsResultStatus = bbsController.createBBS( Department, Team,  bbsID);		
		
		if(bbsResultStatus.getResultStatus() == 0)
		{
			out.println("<p align=center>"+ Department + " " + BoardName + "의 생성과 게시판이 만들어 졌습니다.<br><br>");
			out.println("<a href='/servlet/BBSTreeServlet' target=\"contents\" onClick=\"parent.frames['detail'].location='/servlet/ClubCreateServlet'\"><image border=0 src=\"../image/BBS_back.gif\" alt='돌아가기'></a></p>");
		}
		else
		{
			out.println( "<p align=center>"+ Department + " " + BoardName + "  이미 존재합니다.<br><br>");		
			out.println("<a href='/servlet/BBSTreeServlet' target=\"contents\" onClick=\"parent.frames['detail'].location='/servlet/ClubCreateServlet'\"><image border=0 src=\"../image/BBS_back.gif\" alt='돌아가기'></a></p>");
		}

		out.println("</body></html>");
		
		out.close();
	}
	

}