#! /bin/sh

#====================================================================
#    Cybozu Office 3 Installer ver 1.0.1.0
#    Copyright (C) 1997-2000 Cybozu,Inc. All rights reserved.
#====================================================================

NUM_1="1."
NUM_2="2."
NUM_3="3."
NUM_4=" 4."
NUM_5=" 5."
NUM_6=" 6."
NUM_7=" 7."
NUM_8=" 8."
NUM_9=" 9."
NUM_10="10."
NUM_11="11."
NUM_12="12."
NUM_13="13."
NUM_14="14."

DOCUMENT_ROOT1="/usr/local/www/data"
DOCUMENT_ROOT2="/home/httpd/html"
DOCUMENT_ROOT3="/usr/local/apache/htdocs"
DOCUMENT_ROOT4="/var/www"

INSTDIR1="/usr/local/www/cgi-bin"
INSTDIR2="/home/httpd/cgi-bin"
INSTDIR3="/usr/local/apache/cgi-bin"
INSTDIR4="/usr/lib/cgi-bin"

TMPDIR="cb3tmp"
TMPDIR_DATA="cb3tmp/data"
TMPDIR_IMAGES="cb3tmp/images"
TMPDIR_MASTER="cb3tmp/master"
TMPDIR_PAGE="cb3tmp/page"
TMPDIR_EXEC="cb3tmp/execute"

LICENSE1="cb3tmp/tmp/LICENSE1"
LICENSE2="cb3tmp/tmp/LICENSE2"
LICENSE3="cb3tmp/tmp/LICENSE3"
LICENSE4="cb3tmp/tmp/LICENSE4"
LICENSE5="cb3tmp/tmp/LICENSE5"
LICENSE6="cb3tmp/tmp/LICENSE6"

README1="cb3tmp/tmp/README1"
README2="cb3tmp/tmp/README2"
README3="cb3tmp/tmp/README3"
README4="cb3tmp/tmp/README4"

NAME_PACKEX="Cybozu Office Pack EX 3"
NAME_SOHO="Cybozu Office SOHO 3"
NAME_PACK="Cybozu Office Pack 3"
NAME_SCHEDULE="Cybozu Scheduler 3"
NAME_WHERE="Cybozu Whereabouts 3"
NAME_BULLETIN="Cybozu Bulletin Board 3"
NAME_RESERVE="Cybozu Facilities Scheduler 3"
NAME_WEBMAIL="Cybozu WebMail 3"
NAME_ADDRESS="Cybozu Address Book 3"
NAME_TODO="Cybozu ToDo List 3"
NAME_PROJECT="Cybozu Project 3"
NAME_FORUM="Cybozu Forum 3"
NAME_CABINET="Cybozu Cabinet 3"

NAME_ON=" [X] "
NAME_OFF=" [ ] "
NAME_NOSELECT=" [-] "
NAME_NONE="    "
NAME_BLANK=" "

STR_SECTION_START1="Cybozu Office 3 Setup Program"
STR_SECTION_LICENSE="Please read the User License Agreement and the README file carefully before using the Cybozu Software."

STR_SECTION_INSTDIR1="=============== Confirmation of the Install Directory ==============="
STR_SECTION_INSTDIR2="============== Specify the Install Directory ==============="
STR_SECTION_ROOTDIR1="=============== Confirmation of the Document Root Directory ==============="
STR_SECTION_ROOTDIR2="=============== Specify the Document Root Directory ==============="
STR_SECTION_SELECT="=============== Choose the Applications ==============="
STR_SECTION_CONFIRM="===============  Confirmation of the Cybozu Office 3 Installation ==============="

STR_MSG_INPUTENTER="-- Press Enter. --"

STR_MSG_ANONYMOUS1="Enter the user name of the web server process owner, and press Enter. (Normally, it is \"nobody\".)"
STR_MSG_ANONYMOUS2="User name of the web server process owner :"
STR_MSG_INST1="To install the files in this directory, press Y or Enter. To install the files in a different directory, Press N."
STR_MSG_INST2="[Y]: Yes / N: Select a different directory / Q: Quit :"
STR_MSG_INST3="Specify the install directory, and press Enter."
STR_MSG_INST4="Install Directory :"
STR_MSG_INST5="Install Directory     :"

STR_MSG_CREATEDIR1="The specified directory does not exist. Would you like to create the new directory?"
STR_MSG_CREATEDIR2="Y: Create the directory / N: Select a different directory :"

STR_MSG_DC1="Are you sure that the specified directory is configured as a document root directory?"
STR_MSG_DC2="[Y]: Yes / N: Select a different directory / Q: Quit :"
STR_MSG_DC3="Specify the document root directory, and press Enter."
STR_MSG_DC4="(Q: Quit)"
STR_MSG_DC5="Document Root Directory :"

STR_MSG_SEL1="Enter the product number (1-13) to install, and press Enter."
STR_MSG_SEL2="Product Number (1-13) / Enter: End of Selection / Q: Quit :"

STR_MSG_CONFIRM1="The following application(s) will be installed."
STR_MSG_CONFIRM2="Enter Y to start installing the above application(s)."
STR_MSG_CONFIRM3="Y: Install the applications / N: Back to Selection of the Applications / Q: Quit :"
STR_MSG_QUIT="The install program is canceled."

STR_MSG_FINISH1="The installation of Cybozu Office 3 is completed."
STR_MSG_FINISH2="Please read the README file carefully before using the Cybozu Software."
STR_MSG_FINISH3="Please read the License Agreement and the README file carefully before using the software."

STR_MSG_PROGRESS1="Creating directories..."
STR_MSG_PROGRESS2="Copying the program files..."
STR_MSG_PROGRESS3="Copying the image files..."
STR_MSG_PROGRESS4="Copying the module files..."
STR_MSG_PROGRESS5="Copying the template files..."
STR_MSG_PROGRESS51="Copying the template files for the backup..."
STR_MSG_PROGRESS6="Copying the data files..."
STR_MSG_PROGRESS7="Changing the directory permissions..."

STR_ERROR_NOTSTART="Failed to find the setup files."

STR_ERROR_NOHTTPD="The web server process, httpd, is not running. Start the web server, and run the install program again."
STR_ERROR_NOSELECT="No application is selected."
STR_ERROR_INVAL="Invalid Value."
STR_ERROR_INVALDIR="The specified directory is invalid. Check the directory, and specify the right one."
STR_ERROR_MKDIR="Failed to create the directory. Check the directory path, and specify the right one."
STR_ERROR_NOTROOT="You must switch-user to the root account before starting the install program."

#===============================================
#check root
#===============================================
isRoot=0
for xname in root
do
	whoami | grep $xname > /dev/null
	if [ $? -eq 0 ]
	then
		isRoot=1
		break
	fi
done
if [ $isRoot -ne 1 ]
then
	clear
	echo $STR_ERROR_NOTROOT
	echo
	exit
fi

#===============================================
#check directory
#===============================================
if [ ! -d $TMPDIR ]
then
	clear
	echo $STR_ERROR_NOTSTART
	exit
fi

#===============================================
#check httpd
#===============================================
httpdfind=0
for httpdname in httpd apache httpsd
do
	ps axw | grep ${httpdname}$ > /dev/null
	if [ $? -eq 0 ]
	then
		httpdfind=1
		break
	else
		ps axw | grep "$httpdname " > /dev/null
		if [ $? -eq 0 ]
		then
			httpdfind=1
			break
		fi
	fi
done

if [ $httpdfind -eq 0 ]
then
	clear
	echo $STR_ERROR_NOHTTPD
	exit
fi

#===============================================
#check httpd user
#===============================================
found=0
for owner in nobody httpd www-data
do
	ps auxw | grep ${httpdname}$ | grep ^$owner > /dev/null
	if [ $? -eq 0 ]
	then
		found=1
		break
	else
		ps auxw | grep "$httpdname " | grep ^$owner > /dev/null
		if [ $? -eq 0 ]
		then
			found=1
			break
		fi
	fi
done

#===============================================
#read License
#===============================================

clear
echo $STR_SECTION_START1
echo
echo $STR_SECTION_LICENSE

echo
echo $STR_MSG_INPUTENTER
read ans;
clear

echo
cat $LICENSE1

echo
echo $STR_MSG_INPUTENTER
read ans

echo
cat $LICENSE2

echo
echo $STR_MSG_INPUTENTER
read ans

echo
cat $LICENSE3

echo
echo $STR_MSG_INPUTENTER
read ans

echo
cat $LICENSE4

echo
echo $STR_MSG_INPUTENTER
read ans

echo
cat $LICENSE5

echo
echo $STR_MSG_INPUTENTER
read ans

echo
cat $LICENSE6

echo
echo $STR_MSG_INPUTENTER
read ans

clear

#===============================================
#check anonymous
#===============================================
if [ $found -eq 0 ]
then
	while [ 1 ]
	do
		ans=""
		echo $STR_MSG_ANONYMOUS1
		echo $STR_MSG_DC4
		echo -n $STR_MSG_ANONYMOUS2 ; read ans
		case "$ans" in
			'Q')
				echo
				echo $STR_MSG_QUIT
				sleep 1
				clear
				exit
				;;
			'q')
				echo
				echo $STR_MSG_QUIT
				sleep 1
				clear
				exit
				;;
		esac
		if [ $ans ] ; then
			owner=$ans
			break
		else
			clear
			echo $STR_ERROR_INVAL
		fi
	done
fi
OWNER=$owner

#===============================================
#check install directory
#===============================================
#search
InstallDir=""
for instdir in $INSTDIR1 $INSTDIR2 $INSTDIR3 $INSTDIR4
do
	if [ -d $instdir ]
	then
		InstallDir=${instdir}/cb3
		break
	fi
done

#confirm
while [ 1 ]
do
	clear
	echo
	echo $STR_SECTION_INSTDIR1
	if [ $InstallDir ]
	then
		echo
		echo $InstallDir
		echo
		echo $STR_MSG_INST1
		echo -n $STR_MSG_INST2 ; read ans

		case "$ans" in
			'')
				break
				;;
			'Y')
				break
				;;
			'y')
				break
				;;
			'N')
				InstallDir=""
				clear
				break
				;;
			'n')
				InstallDir=""
				clear
				break
				;;
			'Q')
				echo
				echo $STR_MSG_QUIT
				sleep 1
				clear
				exit
				;;
			'q')
				echo
				echo $STR_MSG_QUIT
				sleep 1
				clear
				exit
				;;

			'*')
				echo $STR_ERROR_INVAL
				;;
		esac
	else
		break
	fi
done

#input
while [ 1 ]
do
	if [ $InstallDir ]
	then
		break
	else
		clear
		ans=""
		notinput=0
		echo
		echo $STR_SECTION_INSTDIR2
		echo
		echo $STR_MSG_INST3
		echo $STR_MSG_DC4
		echo
		echo -n $STR_MSG_INST4 ; read ans

		case "$ans" in
			'Q')
				echo
				echo $STR_MSG_QUIT
				sleep 1
				clear
				exit
				;;
			'q')
				echo
				echo $STR_MSG_QUIT
				sleep 1
				clear
				exit
				;;
			'')
				notinput=1
				;;
		esac

		set `pwd`
		if [ $1/${TMPDIR} = $ans ]
		then
			echo
			echo $STR_ERROR_INVALDIR
			echo $STR_MSG_INPUTENTER
			read en
		elif [ $notinput -eq 1 ]
		then
			echo
			echo $STR_ERROR_INVAL
		elif [ ! -d $ans ]
		then
			while [ 1 ]
			do
				echo
				echo $STR_MSG_CREATEDIR1
				echo -n $STR_MSG_CREATEDIR2 ; read ans2
				case "$ans2" in
					'Y')
						mkdir $ans > /dev/null 2>&1
						if [ $? -eq 0 ]
						then
							InstallDir=$ans
							break
						else
							echo
							echo $STR_ERROR_MKDIR
							echo $STR_MSG_INPUTENTER
							read en
							break
						fi
						;;
					'y')
						mkdir $ans > /dev/null 2>&1
						if [ $? -eq 0 ]
						then
							InstallDir=$ans
							break
						else
							echo
							echo $STR_ERROR_MKDIR
							echo $STR_MSG_INPUTENTER
							read en
							break
						fi
						;;
					'N')
						break
						;;
					'n')
						break
						;;
					'*')
						echo $STR_ERROR_INVAL
						sleep 1
						;;
				esac
			done
		else
			InstallDir=$ans
			break
		fi
	fi
done

#===============================================
#check document root
#===============================================
#search
DocumentDir=""
for dcdir in $DOCUMENT_ROOT1 $DOCUMENT_ROOT2 $DOCUMENT_ROOT3 $DOCUMENT_ROOT4
do
	if [ -d $dcdir ]
	then
		DocumentDir=$dcdir
		break
	fi
done

#confirm
while [ 1 ]
do
	clear
	echo
	echo $STR_SECTION_ROOTDIR1
	if [ $DocumentDir ]
	then
		echo
		echo $DocumentDir
		echo
		echo $STR_MSG_DC1
		echo -n $STR_MSG_DC2 ; read ans

		case "$ans" in
			'Y')
				break
				;;
			'y')
				break
				;;
			'')
				break
				;;
			'N')
				DocumentDir=""
				clear
				break
				;;
			'n')
				DocumentDir=""
				clear
				break
				;;
			'Q')
				echo
				echo $STR_MSG_QUIT
				sleep 1
				clear
				exit
				;;
			'q')
				echo
				echo $STR_MSG_QUIT
				sleep 1
				clear
				exit
				;;

			'*')
				echo $STR_ERROR_INVAL
				;;
		esac
	else
		break
	fi
done

#input
while [ 1 ]
do
	if [ $DocumentDir ]
	then
		break
	else
		clear
		ans=""
		notinput=0
		echo
		echo $STR_SECTION_ROOTDIR2
		echo
		echo $STR_MSG_DC3
		echo $STR_MSG_DC4
		echo
		echo -n $STR_MSG_DC5 ; read ans

		case "$ans" in
			'Q')
				echo
				echo $STR_MSG_QUIT
				sleep 1
				clear
				exit
				;;
			'q')
				echo
				echo $STR_MSG_QUIT
				sleep 1
				clear
				exit
				;;
			'')
				notinput=1
				;;
		esac

		if [ $notinput -eq 1 ]
		then
			echo
			echo $STR_ERROR_INVAL
			echo $STR_MSG_INPUTENTER
			read en
		elif [ ! -d $ans ]
		then
			echo
			echo $STR_ERROR_INVALDIR
			echo $STR_MSG_INPUTENTER
			read en
		else
			DocumentDir=$ans
			break
		fi
	fi
done

#===============================================
#select install product
#===============================================
while [ 1 ]
do
	#===============================================
	#initialize
	#===============================================
	packex=0
	soho=0
	pack=0
	address=0
	bulletin=0
	cabinet=0
	forum=0
	project=0
	reserve=0
	schedule=0
	todo=0
	webmail=0
	where=0

	#===============================================
	#selection
	#===============================================
	while [ 1 ]
	do
		clear
		echo
		echo $STR_SECTION_SELECT
		echo

		if [ $packex -eq 1 ]
		then
			echo $NAME_ON $NUM_1 $NAME_PACKEX
		else
			echo $NAME_OFF $NUM_1 $NAME_PACKEX
		fi
		if [ $soho -eq 1 ]
		then
			echo $NAME_ON $NUM_2 $NAME_SOHO
		else
			echo $NAME_OFF $NUM_2 $NAME_SOHO
		fi
		if [ $pack -eq 1 ]
		then
			echo $NAME_ON  $NUM_3 $NAME_PACK
		else
			echo $NAME_OFF $NUM_3 $NAME_PACK
		fi

		echo

		if [ $packex -eq 1 -o $soho -eq 1 ]
		then
			echo $NAME_NOSELECT $NUM_4 $NAME_SCHEDULE
			echo $NAME_NOSELECT $NUM_5 $NAME_WHERE
			echo $NAME_NOSELECT $NUM_6 $NAME_BULLETIN
			echo $NAME_NOSELECT $NUM_7 $NAME_RESERVE
			echo $NAME_NOSELECT $NUM_8 $NAME_WEBMAIL
			echo $NAME_NOSELECT $NUM_9 $NAME_ADDRESS
			echo $NAME_NOSELECT $NUM_10 $NAME_TODO
			echo $NAME_NOSELECT $NUM_11 $NAME_PROJECT
			echo $NAME_NOSELECT $NUM_12 $NAME_FORUM
			echo $NAME_NOSELECT $NUM_13 $NAME_CABINET
		else

			if [ $pack -eq 1 ]
			then
				echo $NAME_NOSELECT $NUM_4 $NAME_SCHEDULE
				echo $NAME_NOSELECT $NUM_5 $NAME_WHERE
				echo $NAME_NOSELECT $NUM_6 $NAME_BULLETIN
				echo $NAME_NOSELECT $NUM_7 $NAME_RESERVE
				echo $NAME_NOSELECT $NUM_8 $NAME_WEBMAIL
			else
				if [ $schedule -eq 1 ]
				then
					echo $NAME_ON $NUM_4 $NAME_SCHEDULE
				else
					echo $NAME_OFF $NUM_4 $NAME_SCHEDULE
				fi
				if [ $where -eq 1 ]
				then
					echo $NAME_ON $NUM_5 $NAME_WHERE
				else
					echo $NAME_OFF $NUM_5 $NAME_WHERE
				fi
				if [ $bulletin -eq 1 ]
				then
					echo $NAME_ON $NUM_6 $NAME_BULLETIN
				else
					echo $NAME_OFF $NUM_6 $NAME_BULLETIN
				fi
				if [ $reserve -eq 1 ]
				then
					echo $NAME_ON $NUM_7 $NAME_RESERVE
				else
					echo $NAME_OFF $NUM_7 $NAME_RESERVE
				fi
				if [ $webmail -eq 1 ]
				then
					echo $NAME_ON $NUM_8 $NAME_WEBMAIL
				else
					echo $NAME_OFF $NUM_8 $NAME_WEBMAIL
				fi
			fi
			if [ $address -eq 1 ]
			then
				echo $NAME_ON $NUM_9 $NAME_ADDRESS
			else
				echo $NAME_OFF $NUM_9 $NAME_ADDRESS
			fi
			if [ $todo -eq 1 ]
			then
				echo $NAME_ON $NUM_10 $NAME_TODO
			else
				echo $NAME_OFF $NUM_10 $NAME_TODO
			fi
			if [ $project -eq 1 ]
			then
				echo $NAME_ON $NUM_11 $NAME_PROJECT
			else
				echo $NAME_OFF $NUM_11 $NAME_PROJECT
			fi
			if [ $forum -eq 1 ]
			then
				echo $NAME_ON $NUM_12 $NAME_FORUM
			else
				echo $NAME_OFF $NUM_12 $NAME_FORUM
			fi
			if [ $cabinet -eq 1 ]
			then
				echo $NAME_ON $NUM_13 $NAME_CABINET
			else
				echo $NAME_OFF $NUM_13 $NAME_CABINET
			fi
		fi

		echo
		echo $STR_MSG_SEL1
		echo -n $STR_MSG_SEL2 ;read ans
		case "$ans" in
			'1')
				if [ $packex -eq 1 ]
				then
					packex=0
				else
					packex=1
					soho=0
					pack=0
				fi
				;;
			'2')
				if [ $soho -eq 1 ]
				then
					soho=0
				else
					soho=1
					packex=0
					pack=0
				fi
				;;
			'3')
				if [ $pack -eq 1 ]
				then
					pack=0
				else
					pack=1
					packex=0
					soho=0
				fi
				;;
			'4')
				if [ $packex -eq 0 -a $soho -eq 0 -a $pack -eq 0 ]
				then
					if [ $schedule -eq 1 ]
					then
						schedule=0
					else
						schedule=1
					fi
				fi
				;;
			'5')
				if [ $packex -eq 0 -a $soho -eq 0 -a $pack -eq 0 ]
				then
					if [ $where -eq 1 ]
					then
						where=0
					else
						where=1
					fi
				fi
				;;
			'6')
				if [ $packex -eq 0 -a $soho -eq 0 -a $pack -eq 0 ]
				then
					if [ $bulletin -eq 1 ]
					then
						bulletin=0
					else
						bulletin=1
					fi
				fi
				;;
			'7')
				if [ $packex -eq 0 -a $soho -eq 0 -a $pack -eq 0 ]
				then
					if [ $reserve -eq 1 ]
					then
						reserve=0
					else
						reserve=1
					fi
				fi
				;;
			'8')
				if [ $packex -eq 0 -a $soho -eq 0 -a $pack -eq 0 ]
				then
					if [ $webmail -eq 1 ]
					then
						webmail=0
					else
						webmail=1
					fi
				fi
				;;
			'9')
				if [ $packex -eq 0 -a $soho -eq 0 ]
				then
					if [ $address -eq 1 ]
					then
						address=0
					else
						address=1
					fi
				fi
				;;
			'10')
				if [ $packex -eq 0 -a $soho -eq 0 ]
				then
					if [ $todo -eq 1 ]
					then
						todo=0
					else
						todo=1
					fi
				fi
				;;
			'11')
				if [ $packex -eq 0 -a $soho -eq 0 ]
				then
					if [ $project -eq 1 ]
					then
						project=0
					else
						project=1
					fi
				fi
				;;
			'12')
				if [ $packex -eq 0 -a $soho -eq 0 ]
				then
					if [ $forum -eq 1 ]
					then
						forum=0
					else
						forum=1
					fi
				fi
				;;
			'13')
				if [ $packex -eq 0 -a $soho -eq 0 ]
				then
					if [ $cabinet -eq 1 ]
					then
						cabinet=0
					else
						cabinet=1
					fi
				fi
				;;
			'')
				if [ $packex -ne 1 -a \
				$pack -ne 1 -a \
				$soho -ne 1 -a \
				$schedule -ne 1 -a \
				$where -ne 1 -a \
				$bulletin -ne 1 -a \
				$reserve -ne 1 -a \
				$webmail -ne 1 -a \
				$address -ne 1 -a \
				$todo -ne 1 -a \
				$project -ne 1 -a \
				$forum -ne 1 -a \
				$cabinet -ne 1 ]
				then
					echo
					echo $STR_ERROR_NOSELECT
					sleep 1
				else
					break
				fi
				;;
			'q')
				echo
				echo $STR_MSG_QUIT
				sleep 1
				clear
				exit
				;;
			'Q')
				echo
				echo $STR_MSG_QUIT
				sleep 1
				clear
				exit
				;;
			*)
				echo
				echo $STR_ERROR_INVAL
				;;
		esac
		echo
	done


	#===============================================
	#confirm
	#===============================================
	while [ 1 ]
	do
		exec=0
		clear
		echo
		echo $STR_SECTION_CONFIRM
		echo
		echo $STR_MSG_INST5 $InstallDir
		echo
		echo $STR_MSG_DC5 $DocumentDir
		echo
		echo $STR_MSG_CONFIRM1
		echo
		if [ $packex -eq 1 ]
			then
			echo $NAME_BLANK $NAME_PACKEX
			schedule=1
			where=1
			bulletin=1
			reserve=1
			webmail=1
			address=1
			todo=1
			project=1
			forum=1
			cabinet=1
		fi
		if [ $pack -eq 1 ]
			then
			echo $NAME_BLANK $NAME_PACK
			schedule=1
			where=1
			bulletin=1
			reserve=1
			webmail=1
		fi
		if [ $soho -eq 1 ]
			then
			echo $NAME_BLANK $NAME_SOHO
			schedule=1
			where=1
			bulletin=1
			reserve=1
			webmail=1
			address=1
			todo=1
			project=1
			forum=1
			cabinet=1
		fi
		if [ $packex -ne 1 -a $soho -ne 1 ]
		then
			if [ $pack -ne 1 ]
				then
				if [ $schedule -eq 1 ]
					then
					echo $NAME_BLANK $NAME_SCHEDULE
				fi
				if [ $where -eq 1 ]
					then
					echo $NAME_BLANK $NAME_WHERE
				fi
				if [ $bulletin -eq 1 ]
					then
					echo $NAME_BLANK $NAME_BULLETIN
				fi
				if [ $reserve -eq 1 ]
					then
					echo $NAME_BLANK $NAME_RESERVE
				fi
				if [ $webmail -eq 1 ]
					then
					echo $NAME_BLANK $NAME_WEBMAIL
				fi
			fi
			if [ $address -eq 1 ]
				then
				echo $NAME_BLANK $NAME_ADDRESS
			fi
			if [ $todo -eq 1 ]
				then
				echo $NAME_BLANK $NAME_TODO
			fi
			if [ $project -eq 1 ]
				then
				echo $NAME_BLANK $NAME_PROJECT
			fi
			if [ $forum -eq 1 ]
				then
				echo $NAME_BLANK $NAME_FORUM
			fi
			if [ $cabinet -eq 1 ]
				then
				echo $NAME_BLANK $NAME_CABINET
			fi
		fi
		echo
		echo
		echo $STR_MSG_CONFIRM2
		echo -n $STR_MSG_CONFIRM3 ; read ans
		case "$ans" in
			'Y')
				exec=1
				break
				;;
			'y')
				exec=1
				break
				;;
			'N')
				exec=0
				break
				;;
			'n')
				exec=0
				break
				;;
			'Q')
				echo
				echo $STR_MSG_QUIT
				sleep 1
				clear
				exit
				;;
			'q')
				echo
				echo $STR_MSG_QUIT
				sleep 1
				clear
				exit
				;;
			'')
				echo
				echo $STR_ERROR_INVAL
				;;
			*)
				echo
				echo $STR_ERROR_INVAL
				;;
		esac
	done
	if [ $exec -eq 1 ]
		then
		break
	fi
done

#===============================================
#do install
#===============================================
# makedirectory

echo
echo $STR_MSG_PROGRESS1

cb3dir=${InstallDir}

if [ ! -d $cb3dir ]
then
	mkdir $cb3dir
fi

for tempdir in data modules
do
	if [ ! -d ${cb3dir}/${tempdir} ]
	then
		mkdir ${cb3dir}/${tempdir}
	fi
done

if [ ! -d ${cb3dir}/data/webmail ]
then
	mkdir ${cb3dir}/data/webmail
fi

ImageDir=${DocumentDir}/cb3
if [ ! -d $ImageDir ]
then
	mkdir $ImageDir
fi

# execute
echo $STR_MSG_PROGRESS2
cp -f $TMPDIR_EXEC/* $cb3dir

# images
echo $STR_MSG_PROGRESS3
cp -f ${TMPDIR_IMAGES}/*.gif $ImageDir

# modules
echo $STR_MSG_PROGRESS4
DISTDIR_MODULES=${cb3dir}/modules

for modulefile in Search Setting UserList
do
	if [ ! -f ${DISTDIR_MODULES}/${modulefile} ]
	then
		cp -f ${TMPDIR_MASTER}/${modulefile} $DISTDIR_MODULES
	fi
done

if [ $schedule -eq 1 ]
then
	cp -f ${TMPDIR_MASTER}/Schedule $DISTDIR_MODULES
fi
if [ $where -eq 1 ]
then
	cp -f ${TMPDIR_MASTER}/Where $DISTDIR_MODULES
fi
if [ $bulletin -eq 1 ]
then
	cp -f ${TMPDIR_MASTER}/Bulletin $DISTDIR_MODULES
fi
if [ $reserve -eq 1 ]
then
	cp -f ${TMPDIR_MASTER}/Reserve $DISTDIR_MODULES
fi
if [ $webmail -eq 1 ]
then
	cp -f ${TMPDIR_MASTER}/WebMail $DISTDIR_MODULES
fi
if [ $address -eq 1 ]
then
	cp -f ${TMPDIR_MASTER}/Address $DISTDIR_MODULES
fi
if [ $todo -eq 1 ]
then
	cp -f ${TMPDIR_MASTER}/ToDo $DISTDIR_MODULES
fi
if [ $project -eq 1 ]
then
	cp -f ${TMPDIR_MASTER}/Project $DISTDIR_MODULES
fi
if [ $forum -eq 1 ]
then
	cp -f ${TMPDIR_MASTER}/Forum $DISTDIR_MODULES
fi
if [ $cabinet -eq 1 ]
then
	cp -f ${TMPDIR_MASTER}/Cabinet $DISTDIR_MODULES
fi

#page
DISTDIR_PAGE=${cb3dir}/page
if [ -d $TMPDIR_PAGE ]
then
	if [ ! -d $DISTDIR_PAGE ]
	then
		mkdir $DISTDIR_PAGE
	else
		if [ ! -d ${DISTDIR_PAGE}/backup ]
		then
			mkdir ${DISTDIR_PAGE}/backup
		fi
		echo $STR_MSG_PROGRESS51
		cp -f ${DISTDIR_PAGE}/*.html ${DISTDIR_PAGE}/backup
	fi
	echo $STR_MSG_PROGRESS5
	cp -f ${TMPDIR_PAGE}/*.html $DISTDIR_PAGE
fi

#file
DISTDIR_FILE=${cb3dir}/file
if [ ! -d ${DISTDIR_FILE}/Office/backup ]
then
	mkdir -p ${DISTDIR_FILE}/Office/backup
fi

#data
echo $STR_MSG_PROGRESS6
DISTDIR_DATA=${cb3dir}/data
for datafile in address.odb bulletin.odb cabinet.odb forum.odb office.odb project.odb reserve.odb
do
	if [ ! -f ${DISTDIR_DATA}/${datafile} ]
	then
		cp -f ${TMPDIR_DATA}/${datafile} $DISTDIR_DATA
	fi
done

#change owner
echo $STR_MSG_PROGRESS7

chown -R $OWNER ${cb3dir}/data
chown -R $OWNER ${cb3dir}/file
chown -R $OWNER ${cb3dir}/modules
chown -R $OWNER ${cb3dir}/page
chown -R $OWNER ${cb3dir}/data
chown $OWNER $cb3dir
chown $OWNER ${cb3dir}/office.cgi
chown $OWNER ${cb3dir}/download.cgi
chown $OWNER ${cb3dir}/README
chown $OWNER ${cb3dir}/LICENSE

chown -R $OWNER $ImageDir

echo
echo $STR_MSG_FINISH1

echo $STR_MSG_FINISH2
echo
echo $STR_MSG_INPUTENTER
read ans
clear

echo
cat $README1

echo
echo $STR_MSG_INPUTENTER
read ans

echo
cat $README2

echo
echo $STR_MSG_INPUTENTER
read ans

echo
cat $README3

echo
echo $STR_MSG_INPUTENTER
read ans

echo
cat $README4

echo
echo $STR_MSG_INPUTENTER
read ans

exit
