#!/usr/bin/perl

#======================================================#
$start_cpu_time = (times)[0]; # ÇÁ·Î±×·¥ ½ÃÀÛ ½Ã°£
$version_info = "v2.0";       # SPBOARD PRO ¹öÁ¯ Á¤º¸ 
$last_update = "2004.01.02";  # ÇÁ·Î±×·¥ ÃÖÁ¾ ¼öÁ¤ ÀÏÀÚ
#======================================================#

umask(000);

require "./path.cgi";

&parsing;

sub parsing {
	local (%FORM, $data_dir, %CONF, %reject_view, %reject_down, %reject_write, %reject_all);
	require "./cgi_lib/jcode.pl"; # for the Japanese language 

	if($ENV{'CONTENT_TYPE'} =~ m/^multipart\/form-data/) { # ÆÄÀÏ¾÷·Îµå°¡ ÇÊ¿äÇÒ¶§... *^^*
		require "./cgi_lib/multi_parse.cgi";
		&multi_parse;
	}
	else{
		require "./cgi_lib/parse.cgi";
		&parse;
	}

	$data_dir = "$main_dir/id/$FORM{'id'}"; # °¢ µ¥ÀÌÅ¸µéÀÌ ÀúÀåµÉ°÷ÀÇ Àý´ë°æ·Î... *^^*

	require "./cgi_lib/get_conf.cgi";
	&get_conf("$data_dir");

	&select_act;

	require "./cgi_lib/server_info.cgi"; # ÃÑ ÇÁ·Î±×·¥ ½ÇÇà½Ã°£¹× °£´ÜÇÑ ¼­¹öÁ¤º¸ Ãâ·Â... *^^*
	&server_info;
	exit;
}

sub select_act {
	local ($act , $cgi_skin, $arr_msg, $msg_sub);

	$act = $FORM{'action'};
	$cgi_skin = "./cgi_skin/$CONF{'cgi_skin'}";
	
	require "./cgi_lib/counter.cgi"; # Ä«¿îÅÍ Ã¼Å·
	&chk_count if($FORM{'id'} && ($act ne "cnt_view"));

	if(-e "$cgi_skin/load_act.cgi") { # ½ºÅ² ÀÚÃ¼ ÇÔ¼ö ºÒ·¯¿À±â... *^^*
		require "$cgi_skin/load_act.cgi";
		&load_act($act);
	}
	
	# È¸¿ø Ã¼Å·
	if($CONF{'use_mem'} || $CONF{'include_login'} || $CONF{'include_recent'}) {
		# È¸¿ø µ¥ÀÌÅ¸°¡ ÀÖ´ÂÁö °Ë»ç...
		require "./cgi_lib/member/chk_mem.cgi";
		&chk_mem;	
	}
	
	if(($act eq "") || ($act eq "view") || ($act eq "search") || (($act eq "multi") && ($FORM{'multi_view.x'}))) {
		my $opt = $act;
		require "$cgi_skin/display.cgi";
		&display($opt);  #È­¸é Ãâ·Â... *^^*
	}
	elsif($act eq "input_form") {
		require "$cgi_skin/input_form.cgi";
		&input_form;  #±Û ¾²±â È­¸é Ãâ·Â... *^^*
	}
	elsif($act eq "reply_form") {
		require "$cgi_skin/reply_form.cgi";
		&reply_form;  #´äº¯±Û ¾²±â È­¸é Ãâ·Â... *^^*	
	}
	elsif($act eq "mod_form") {
		require "$cgi_skin/mod_form.cgi";
		&mod_form($FORM{'gul'});  #±Û ¼öÁ¤ È­¸é Ãâ·Â... *^^*
	}
 	elsif(($act eq "write") || ($act eq "reply") || ($act eq "modify")) {
		require "$cgi_skin/write.cgi";
		&write_article;  #±Û ³²±â±â ½ÇÇà... *^^*
	}
 	elsif($act eq "download") {
		require "$cgi_skin/download.cgi";
		&down_load($FORM{'gul'});  #Ã·ºÎÆÄÀÏ¹× ¸µÅ©ÆÄÀÏ ´Ù¿î·Îµå... *^^*
	}
	elsif($act eq "vote") {
		require "$cgi_skin/vote.cgi";
		&vote($FORM{'gul'});  #ÃßÃµÇÏ±â ½ÇÇà... *^^*
	}
	elsif($act eq "etc_write") {
		require "$cgi_skin/etc_write.cgi";
		&etc_write("$FORM{'gul'}");
	}
	elsif($act eq "etc_del") {
		require "$cgi_skin/etc_del.cgi";
		&etc_del("$FORM{'gul'}", "$FORM{'num'}", "$FORM{'opt'}");
	}
	elsif($act eq "simple_view") {
		require "$cgi_skin/simple_view.cgi";
		&simple_view($FORM{'gul'});  # ÀÛÀºÃ¢ º¸±â È­¸é Ãâ·Â... *^^*
	}
	elsif($act eq "img_view") {
		require "./cgi_lib/img_view.cgi";
		&img_view;
	}
	elsif($act eq "print_view") {
		require "$cgi_skin/print_view.cgi";
		&print_view("$FORM{'gul'}");  #ÇÁ¸°Æ® ¹öÁ¯ È­¸é Ãâ·Â... *^^*
	}
	elsif($act eq "delete") {
		require "$cgi_skin/delete.cgi";
		&delete_gul($FORM{'gul'});  #±Û ³²±â±â ½ÇÇà... *^^*
	}
	elsif($act eq "multi_del") {
		require "$cgi_skin/multi_del.cgi";
		&multi_del($FORM{'multi_gul'});  #±Û Á¶È¸ È­¸é Ãâ·Â... *^^*		
	}
	elsif(($act eq "multi") && $FORM{'multi_del.x'}) {
		require "$cgi_skin/input_pwd.cgi";
		&input_pwd("multi_del");  #ºñ¹Ð¹øÈ£ ÀÔ·Â È­¸é Ãâ·Â... *^^*
	}
	elsif($act eq "input_schar") {
		require "$cgi_skin/input_schar.cgi";
		&input_schar;
	}
	elsif($act eq "input_pwd") {
		require "$cgi_skin/input_pwd.cgi";
		&input_pwd($FORM{'load_act'}); #ºñ¹Ð¹øÈ£ ÀÔ·Â È­¸é Ãâ·Â... *^^*
	}
	elsif($act eq "admin_form") {
		require "$cgi_skin/admin_form.cgi";
		&admin_form;  #°ü¸®ÀÚ È­¸é Ãâ·Â	
	}
	elsif($act eq "pass_ok") {
		require "$cgi_skin/pass_ok.cgi";
		&pass_ok;  #ºñ¹Ð¹øÈ£ Ã¼Å·ÇØ¼­ ÇØ´çÈ­¸éÀ¸·Î ³Ñ¾î°¥°Í... *^^*
	}
	elsif($act eq "notice_view") {
		require "$cgi_skin/notice_view.cgi";
		&notice_view($FORM{'gul'}); # °øÁö»çÇ× º¸±â... ^^ 
	}
	elsif($act eq "cnt_view") {
		require "$cgi_skin/cnt_view.cgi";
		&cnt_view;
	}
	elsif($act eq "conf_chg") {
		require "$cgi_skin/conf_chg.cgi";
		&conf_chg;
	}
	elsif($act eq "test_grd") {
		require "$cgi_skin/test_grd.cgi";
		&test_grd;
	}
	elsif($act eq "notice_form") {
		require "$cgi_skin/notice_form.cgi";
		&notice_form;
	}
	elsif($act eq "recover_idx") {
		require "$cgi_skin/recover_idx.cgi";
		&recover_idx;
	}
	elsif($act eq "del_notice") {
		require "$cgi_skin/del_notice.cgi";
		&del_notice("$FORM{'gul'}");
	}
	elsif($act eq "send_gul") {
		require "$cgi_skin/send_gul.cgi";
		&send_gul("$FORM{'gul'}");
	}
	elsif($act eq "sendmail") {
		require "$cgi_skin/sendmail.cgi";
		&sendmail("$FORM{'mail'}", "$FORM{'name'}");
	}
	elsif($act eq "view_icon") {
		require "$cgi_skin/view_icon.cgi";
		&view_icon;
	}
	elsif($act eq "preview_skin") {
		require "./cgi_lib/preview_skin.cgi";
		&preview_skin;
	}
	elsif($act eq "view_head") {
		require "$cgi_skin/view_head.cgi";
		&view_head;
	}
	elsif($act eq "load_picker") {
		require "$cgi_skin/load_picker.cgi";
		&load_picker;
	}
	elsif($act eq "color_picker") {
		require "$cgi_skin/color_picker.cgi";
		&color_picker;
	}
	elsif($act eq "logout") {
		require "./cgi_lib/chk_admin.cgi";
		&drop_chk_admin("MEM_ID", "$main_dir/member/recent/$COOKIE{'MEM_ID'}.cgi");

		require "./cgi_lib/load_page.cgi";
		&load_page("$cgi_url?id=$FORM{'id'}", "1", "logout_ok");
	}
	elsif($act eq "mem_conf") {
		require "./cgi_lib/member/mem_conf.cgi";
		&mem_conf;
	}
	elsif($act eq "display_msg") {
		require "$cgi_skin/display_msg.cgi";
		&display_msg;
	}
	elsif($act eq "view_msg") {
		require "$cgi_skin/view_msg.cgi";
		&view_msg;
	}
	elsif($act eq "del_msg") {
		require "$cgi_skin/del_msg.cgi";
		&del_msg;
	}
	elsif($act eq "view_login_mem") {
		require "$cgi_skin/view_login_mem.cgi";
		&view_login_mem;
	}
	elsif($act eq "preview_win") {
		require "$cgi_skin/preview_win.cgi";
		&preview_win;
	}
	else {
		require "./cgi_lib/err_msg.cgi";
		&err_msg("bad_act");
	}
}

exit;