#!/bin/sh
#This script is created by ssparser automatically. The parser first created by MaoShouyan
printf "Content-type: text/html
Cache-Control: no-cache

"
echo -n "";
. ../common/common.sh
myself="/cgi-bin/Maintain/`basename $0`"

echo -n "
";
TMP_DIR=/usr/ramdisk/tmp
SYSINFO_TMP=${TMP_DIR}/sysinfo.tmp
DIFFTXT=${TMP_DIR}/diff.txt
EMPTY_LINETXT=${TMP_DIR}/empty_line.txt
ERROR_TMP=${TMP_DIR}/autosync_error.tmp
SYNC_DIR=${DATAPATH}/cfgsync
RECV_CONF=${SYNC_DIR}/recv.conf
RECV_BKUP_CONF=${SYNC_DIR}/recv_bkup.conf
LOCAL_BKUP_CONF=${SYNC_DIR}/local_bkup.conf
CFG_DIFF=/cgi-bin/Maintain/cfg_diff
CFG_SHOW=/cgi-bin/Maintain/cfg_show
CUR_CONF=${PGETC}/panabit.conf
CFG_GET=${PGPATH}/bin/cfg_get
DIFF=${PGPATH}/bin/diff
STAT=${PGPATH}/bin/stat
AUTOSYNC_BKUP_CONF=${PGETC}/autosync_bkup.conf
AUTOSYNC_CONF=${TMP_DIR}/autosync.conf
[ ! -d ${SYNC_DIR} ] && mkdir -p ${SYNC_DIR}
[ ! -d ${TMP_DIR} ] && mkdir -p ${TMP_DIR}
[ ! -e ${SYSINFO_TMP} ] && touch ${SYSINFO_TMP}
[ ! -e ${DIFFTXT} ] && touch ${DIFFTXT}
[ ! -e ${EMPTY_LINETXT} ] && touch ${EMPTY_LINETXT}
[ ! -e ${ERROR_TMP} ] && touch ${ERROR_TMP}
[ ! -e ${LOCAL_BKUP_CONF} -a -s ${CUR_CONF} ] && cp -f ${CUR_CONF} ${LOCAL_BKUP_CONF}
[ ! -e ${RECV_BKUP_CONF} ] && touch ${RECV_BKUP_CONF}
[ ! -e ${AUTOSYNC_CONF} ] && touch ${AUTOSYNC_CONF}
[ ! -e ${AUTOSYNC_BKUP_CONF} ] && touch ${AUTOSYNC_BKUP_CONF}

echo -n "
<script type=\"text/javascript\" src=\"/img/common.js\"></script>
<script type=\"text/javascript\">
var temp_inter = 0;
function load_sync_error(url)
{
	var xmlhttp = null;
	if (window.XMLHttpRequest) {
		xmlhttp = new XMLHttpRequest();
	}
	else
	if (window.ActiveXObject) {
		xmlhttp = new ActiveObject(\"Microsoft.XMLHTTP\");
	}
	if (xmlhttp != null) {
		xmlhttp.onreadystatechange = function(){
			if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				document.getElementById(\"sync_state\").innerHTML=xmlhttp.responseText;
			}
		}
		xmlhttp.open(\"GET\", url, true);
		xmlhttp.send();
	}
	else {
		alert(\"your browser does not support XMLHTTP\");
	}
}
function onActionChanged(obj)
{
	var inter = document.getElementsByName(\"sync_inter\")[0];
	if(obj.value == \"close\") {
		temp_inter = inter.value;
		inter.value = \"\";
		inter.style.background = \"#cccccc\";
		inter.disabled = true;
	}
	else{ 
		if(temp_inter != 0) {
			inter.value = temp_inter;
		}
		inter.disabled = false;
		inter.style.background = \"#ffffff\";
	}
}
function onLoad()
{
	var sync_act = document.getElementsByName(\"sync_switch\")[0];
	onActionChanged(sync_act);
}
function onCancel()
{
	window.location.href = \"${myself}\";
}
function check_ipaddr(str)
{
	var exp = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
	var reg = str.match(exp);
	if(reg == null){
		return false;
	}else if(str == \"0.0.0.0\" || str == \"127.0.0.1\") {
		return false;
	}
	return true;
}
function Validate_pwd(str)
{
	var i;
	for (i = 0; i < str.length; i ++){
		if(str.charAt(i) == ' ' ||
			str.charAt(i) == '&') {
			return false;
		}
	}
	return true;
}
function check_para()
{
	var dev_ip = document.getElementsByName(\"pridev_ip\")[0];
	var dev_admin = document.getElementsByName(\"pridev_admin\")[0];
	var dev_pwd = document.getElementsByName(\"pridev_pwd\")[0];
	if(dev_ip.value == null || dev_ip.value ==\"\") {
		alert(\"豸IPַ\");
		dev_ip.value = \"\";
		dev_ip.focus();
		return false;
	}
	else
	if(!check_ipaddr(dev_ip.value)) {
		alert(\"ЧIP\");
		dev_ip.value = \"\";
		dev_ip.focus();
		return false;
	}
	if(dev_admin.value == null || dev_admin.value ==\"\") { 
		alert(\"豸Ա\");
		dev_admin.value = \"\";
		dev_admin.focus();
		return false;
	}
	else
	if(!Validate_pwd(dev_admin.value)) {
		alert(\"Ʋܰոַ&!\");
		dev_admin.value = \"\";
		dev_admin.focus();
		return false;
	}
	if(dev_pwd.value == null || dev_pwd.value ==\"\") { 
		alert(\"豸\");
		dev_pwd.value = \"\";
		dev_pwd.focus();
		return false;
	}
	else
	if(!Validate_pwd(dev_pwd.value)) {
		alert(\"벻ܰոַ&!\");
		dev_pwd.value = \"\";
		dev_pwd.focus();
		return false;
	}
	return true;
}
function validate_form(frm)
{
	var inter = document.getElementsByName(\"sync_inter\")[0];
	
	if(!check_para())
		return false;
	if(inter.disabled == false) {
		if(inter.value == null || inter.value == \"\"){ 
			alert(\"ʱ\");
			inter.focus();
			return false;
		}
		else 
		if(!IsDigit(inter.value)) {
			alert(\"ֵ\");
			inter.value = \"\";
			inter.focus();
			return false;
		}
		else 
		if(inter.value < 5) {
			alert(\"ʱڻ5\");
			inter.value = \"\";
			inter.focus();
			return false;
		}
	}
	return true;
}
function restore()
{
	if(confirm(\"ȷָͬǰ?ָûرԶͬ!\"))
	window.location.href = \"/cgi-bin/Maintain/cfg_sync?action=restore\";
}
</script>
";
if [ ! -e ${AUTOSYNC_CONF} ]; then
	if [ ! -e ${AUTOSYNC_BKUP_CONF} ]; then
		afm_dialog_msg "豸ļͱļ,֪ͨϵͳԱ!";
		afm_load_page 0 "${myself}";
		exit 0
	else
		cp -f ${AUTOSYNC_BKUP_CONF} ${AUTOSYNC_CONF}
	fi
fi
. ${AUTOSYNC_CONF}
if [ "${CGI_action}" = "restore" ]; then
	operator_check "${myself}"
	if [ "${pridev_ip}" = "" -o "${pridev_admin}" = "" \
		-o "${pridev_pwd}" = "" -o "${sync_switch}" = "" ]; then
		afm_dialog_msg "豸ļ,֪ͨϵͳԱ";
		afm_load_page 0 "${myself}"
		exit 0
	fi
	#stop autosync
	if [ "${sync_switch}" = "open" ]; then
		#replace 'open' to 'close'
		sed -ig 's/sync_switch=open/sync_switch=close/g' ${AUTOSYNC_CONF}
		#backup autosync.conf to /usr/panaetc/
		cp -f ${AUTOSYNC_CONF} ${AUTOSYNC_BKUP_CONF}
	fi
	#save local_bkup_conf and import config
	cp -f ${LOCAL_BKUP_CONF} ${DATAPATH}/config/panabit.conf
	#import conf
	echo "import_config yes" >> ${EVENTFILE}
	for loop in 1 2 3 4 5 6 7 8 9 10;
	do
		sleep ${loop}
		if [ ! -e ${DATAPATH}/config/panabit.conf ]; then
			afm_dialog_msg "ָóɹ!";
			break;
		fi
	done
	if [ "${loop}" -eq "10" ]; then
			afm_dialog_msg "ָʧ!";
	fi
	afm_load_page 0 "${myself}"
	exit 0
fi
if [ "${REQUEST_METHOD}" = "POST" ]; then
	operator_check "${myself}"
	if [ "${CGI_pridev_ip}" != "${pridev_ip}" -o \
	 	"${CGI_pridev_admin}" != "${pridev_admin}" -o \
   	 	"${CGI_pridev_pwd}" != "${pridev_pwd}" -o \
	 	"${CGI_sync_switch}" != "${sync_switch}" -o \
		"${CGI_sync_inter}" != "${sync_inter}" ]; then
		#write primary device information into autosync.conf
		if [ "${CGI_sync_switch}" = "open" -a "${CGI_sync_inter}" != "" ]; then
			echo "pridev_ip=${CGI_pridev_ip}" > ${AUTOSYNC_CONF};
			echo "pridev_admin=${CGI_pridev_admin}" >> ${AUTOSYNC_CONF};
			echo "pridev_pwd=${CGI_pridev_pwd}" >> ${AUTOSYNC_CONF};
			echo "sync_switch=${CGI_sync_switch}" >> ${AUTOSYNC_CONF};
			echo "sync_inter=${CGI_sync_inter}" >> ${AUTOSYNC_CONF};
			sync
			#backup autosync.conf to /usr/panaetc/
			cp -f ${AUTOSYNC_CONF} ${AUTOSYNC_BKUP_CONF}
			sync
			#start autosync
			exist=`ps ax | grep cfg_autosync`
			if [ "${exist}" = "" ]; then
				echo "start_autosync yes" >> ${EVENTFILE}
				sleep 2
				while true;
				do
					exist=`ps ax | grep cfg_autosync`
					[ "${exist}" != "" ] && break;
					echo "start_autosync yes" >> ${EVENTFILE}
					sleep 1
				done
			fi
			afm_dialog_msg "ԶͬѴ!";
			afm_load_page 0 "${myself}"
			exit 0
		else
			echo "pridev_ip=${CGI_pridev_ip}" > ${AUTOSYNC_CONF};
			echo "pridev_admin=${CGI_pridev_admin}" >> ${AUTOSYNC_CONF};
			echo "pridev_pwd=${CGI_pridev_pwd}" >> ${AUTOSYNC_CONF};
			echo "sync_switch=${CGI_sync_switch}" >> ${AUTOSYNC_CONF};
			sync
			#backup autosync.conf to /usr/panaetc/
			cp -f ${AUTOSYNC_CONF} ${AUTOSYNC_BKUP_CONF}
			sync
			afm_dialog_msg "Զͬѹر!";
			afm_load_page 0 "${myself}"
			exit 0
		fi
	fi
fi

echo -n "
<body onload=\"onLoad()\">
<script type=\"text/javascript\" src=\"/img/wz_tooltip.js\"></script>
<span id=\"hlpinter\" style=\"display:none\">ʱΪڻ5(λ)</span>
";
cgi_show_title "ù->ͬ"

echo -n "
<table style=\"width:620;border-bottom:1px #787882 solid;color:#000000\">
	<tr>
		<td align=left style=\"font-size:14px\">
			<b>ͬ־</b>
		</td>
	</tr>
</table>
";
if [ "${sync_switch}" = "open" ]; then

echo -n "
<table width=620 border=0 cellspacing=1 cellpadding=3 style=\"bgcolor=#ffffff;margin-left:0px;text-align:center;font-size:11px\" >
<tr id=tblhdr>
	<td width=120 align=\"center\">ͬϢ</td>
	<td id=\"sync_state\" width=* align=\"center\" colspan=3></td>
</tr>
</table>
";
fi
if [ -e ${RECV_CONF} ]; then

echo -n "
<table width=620 border=0 cellspacing=1 cellpadding=3 style=\"bgcolor=#ffffff;margin-left:0px;text-align:center;font-size:11px\" >
<tr id=tblhdr>
	<td width=120 align=\"center\">һͬʱ</td>
	<td width=120 align=\"center\">ͬǰ</td>
	<td width=130 align=\"center\">ͬ</td>
	<td width=* align=\"center\"></td>
</tr>
<tr id=row1>
";
	stat_recv=`${STAT} -f %Sm -t %Y.%m.%d' '%H:%M:%S ${RECV_CONF}`
	echo -n "
	<td width=120 align=\"center\">${stat_recv}</td>
	";
	if [ -s ${LOCAL_BKUP_CONF} ]; then
		stat_local_bkup=`${STAT} -f %Sm -t %Y.%m.%d' '%H:%M:%S ${LOCAL_BKUP_CONF}`
		echo -n "
		<td width=120 align=\"center\">
			<a style=\"color:#0000ff\" href=\"${CFG_SHOW}?action=show_beforesync\" target=\"_blank\">${stat_local_bkup}</a>
		</td>
		";
	else
		echo -n "
		<td width=120 align=\"center\">&nbsp;</td>
		";
	fi
	if [ -s ${RECV_BKUP_CONF} ]; then
		stat_recv_bkup=`${STAT} -f %Sm -t %Y.%m.%d' '%H:%M:%S ${RECV_BKUP_CONF}`
		echo -n "
		<td width=130 align=\"center\">
			<a style=\"color:#0000ff\" href=\"${CFG_SHOW}\" target=\"_blank\">${stat_recv_bkup}</a>
		</td>
		";
	else
		echo -n "
		<td width=130 align=\"center\">&nbsp;</td>
		";
	fi
	if [ -s ${CUR_CONF} -a -s ${LOCAL_BKUP_CONF} ]; then 
		different=`${DIFF} ${CUR_CONF} ${LOCAL_BKUP_CONF}`
		if [ "${different}" != "" ]; then
			echo -n "
				<td width=* align=\"center\">
				<a style=\"color:#0000ff\" href=\"javascript:restore()\">&nbsp;ָ&nbsp;</a>
			";
		else
			echo -n "
				<td width=* align=\"center\">
				<a style=\"color:#0000ff\" href=\"javascript:alert('뵱ǰͬ,ָ')\">&nbsp;ָ&nbsp;</a>
			";
		fi
	else
		echo -n "
				<td width=* align=\"center\">&nbsp;
		";
	fi
	
	if [ -s ${LOCAL_BKUP_CONF} -a -s ${RECV_BKUP_CONF} ]; then
		${DIFF} -y -W 300 ${LOCAL_BKUP_CONF} ${RECV_BKUP_CONF} | grep -n '[<>|]' > ${DIFFTXT}
		echo -n "
           	<a style=\"color:#0000ff\" href=\"${CFG_DIFF}\" target=\"_blank\">&nbsp;öԱ&nbsp;</a>
		";
	else
		echo -n "
			&nbsp;
		";
	fi
	echo -n "
			</td>
	</tr>
	</table>
	";
fi

echo -n "
<form method=\"POST\" name=\"sync_form\" onsubmit=\"return validate_form(this)\" action=\"${myself}\">
&nbsp;&nbsp;
<table border=0 style=\"width:620;border-bottom:1px #787882 solid;color:#000000\">
	<tr>
		<td align=left style=\"font-size:14px\">
			<b></b>
		</td>
	</tr>
</table>
<table width=600 border=0 cellspacing=0 cellpadding=3 style=\"bgcolor=#ffffff;margin-left:10px;text-align:center\" >
&nbsp;&nbsp;
<tr id=row1>
	<td width=100></td>
	<td width=120 align=\"left\">豸IP</td>
	<td width=130>
		<input type=\"text\" name=\"pridev_ip\" value=\"${pridev_ip}\" style=\"width:120px\" />
	</td>
	<td width=* align=\"left\"></td>
</tr>
<tr id=row1>
	<td width=100></td>
	<td width=120 align=\"left\">豸Ա</td>
	<td width=130>
		<input type=\"text\" name=\"pridev_admin\" value=\"${pridev_admin}\" style=\"width:120px\" maxlength=50 />
	</td>
	<td width=* align=\"left\"></td>
</tr>
<tr id=row1>
	<td width=100></td>
	<td width=120 align=\"left\">豸</td>
	<td width=130>
		<input type=\"password\" name=\"pridev_pwd\" value=\"${pridev_pwd}\" style=\"width:120px\" maxlength=50 />
	</td>
	<td width=* align=\"left\"></td>
</tr>
<tr id=row1>
	<td width=100></td>
	<td width=120 align=\"left\">Զͬ</td>
	<td width=130>
		<select name=\"sync_switch\" value=\"${CGI_sync_switch}\" style=\"width:120px;\" onchange=\"onActionChanged(this)\">
";
	if [ "${sync_switch}" != "open" ]; then
		echo -n "
			<option value=\"open\"></option>
			<option value=\"close\" selected=\"selected\">ر</option>
		"; 
	else
		echo -n "
			<option value=\"open\" selected=\"selected\"></option>
			<option value=\"close\">ر</option>
			<script type=\"text/javascript\">
				var inter_id = self.setInterval(\"load_sync_error('/cgi-bin/Maintain/cfg_sync_err')\", 1000);
			</script>
		"; 
	fi

echo -n "
		</select>
	</td>
	<td width=* align=\"left\"></td>
</tr>
<tr id=row1>
	<td width=100></td>
	<td width=120 align=\"left\">ʱ</td>
	<td width=130>
		<input type=\"text\" name=\"sync_inter\" value=\"${sync_inter}\" style=\"width:120px\" maxlength=50 />
	</td>
	<td width=* align=\"left\">
		<a style=\"color:#0000ff\" onmouseover=\"TagToTip('hlpinter')\" onmouseout=\"UnTip()\"></a>
	</td>
</tr>
</table>
<table border=0 style=\"width:620;border-bottom:1px #787882 solid; color:#0000ff\">
<tr><td align=right></td></tr>
</table>
<table style=\"width:620\">
<tr>
	<td align=right>
		<input type=\"submit\" style=\"width:80\" value=\"ύ\" />
		<input type=\"button\" style=\"width:80\" value=\"ȡ\" onclick=\"onCancel()\" />
	</td>
</tr>
</table>
</form>
</body>
</html>
";