#!/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/Protocol/`basename $0`"

echo -n "
<script type=\"text/javascript\" src=\"/img/common.js\"></script>
<script language=\"javascript\">
function beforeAddVlink(frm)
{
	var rngs;
	var intype = document.getElementsByName(\"intype\")[0];
	var outtype = document.getElementsByName(\"outtype\")[0];
	var inipnet  = document.getElementsByName(\"inipnet\")[0];
	var iniprng  = document.getElementsByName(\"iniprng\")[0];
	var outipnet  = document.getElementsByName(\"outipnet\")[0];
	var outiprng  = document.getElementsByName(\"outiprng\")[0];
	var vlinkname = document.getElementsByName(\"vlinkname\")[0];
	vlinkname.value = TrimAll(vlinkname.value);
	if (vlinkname.value == \"\") {
		alert(\"·!\");
		vlinkname.select();
		return false;
	}
	if (!IsName(vlinkname.value)) {
		alert(\"вܰ&ַ!\");
		vlinkname.select();
		return false;
	}
	inipnet.value = TrimAll(inipnet.value);
	iniprng.value = TrimAll(iniprng.value);
	if (intype.value == \"net\") {
		if (!IsIPAddr(inipnet.value)) {
			alert(\"ȷIPַʽΪx.x.x.x/n\");
			inipnet.select();
			return false;
		}
	}
	else
	if (intype.value == \"range\") {
		rngs = iniprng.value.split(\"-\");
		if (rngs.length != 2 || !IsIPAddr(rngs[0]) || !IsIPAddr(rngs[1])) {
			alert(\"ȷIPΣʽΪx.x.x.x-y.y.y.y\");
			iniprng.select();
			return false;
		}
	}
	outipnet.value = TrimAll(outipnet.value);
	outiprng.value = TrimAll(outiprng.value);
	if (outtype.value == \"net\") {
		if (!IsIPAddr(outipnet.value)) {
			alert(\"ȷIPַʽΪx.x.x.x/n\");
			outipnet.select();
			return false;
		}
	}
	else
	if (outtype.value == \"range\") {
		rngs = outiprng.value.split(\"-\");
		if (rngs.length != 2 || !IsIPAddr(rngs[0]) || !IsIPAddr(rngs[1])) {
			alert(\"ȷIPΣʽΪx.x.x.x-y.y.y.y\");
			outiprng.select();
			return false;
		}
	}
		
	return true;
}
function OnCancel()
{
	window.location.href = \"/cgi-bin/Protocol/vlink_list\";
}
function onIntypeChanged(obj) {
	var net = document.getElementsByName(\"inipnet\")[0];
	var rng = document.getElementsByName(\"iniprng\")[0];
	var tbl = document.getElementsByName(\"iniptbl\")[0];
	if (obj.value == \"any\") {
		net.style.display = \"none\";
		rng.style.display = \"none\";
		tbl.style.display = \"none\";
	}
	else
	if (obj.value == \"net\") {
		net.style.display = \"block\";
		rng.style.display = \"none\";
		tbl.style.display = \"none\";
	}
	else
	if (obj.value == \"range\") {
		net.style.display = \"none\";
		rng.style.display = \"block\";
		tbl.style.display = \"none\";
	}
	else
	if (obj.value == \"table\") {
		net.style.display = \"none\";
		rng.style.display = \"none\";
		tbl.style.display = \"block\";
	}
}
function onOuttypeChanged(obj) {
	var net = document.getElementsByName(\"outipnet\")[0];
	var rng = document.getElementsByName(\"outiprng\")[0];
	var tbl = document.getElementsByName(\"outiptbl\")[0];
	if (obj.value == \"any\") {
		net.style.display = \"none\";
		rng.style.display = \"none\";
		tbl.style.display = \"none\";
	}
	else
	if (obj.value == \"net\") {
		net.style.display = \"block\";
		rng.style.display = \"none\";
		tbl.style.display = \"none\";
	}
	else
	if (obj.value == \"range\") {
		net.style.display = \"none\";
		rng.style.display = \"block\";
		tbl.style.display = \"none\";
	}
	else
	if (obj.value == \"table\") {
		net.style.display = \"none\";
		rng.style.display = \"none\";
		tbl.style.display = \"block\";
	}
}
</script>
";
if [ "${REQUEST_METHOD}" = "POST" ]; then
	case "${CGI_intype}" in
	"any")
		CGI_inip="any"
		;;
	"net")
		CGI_inip="${CGI_inipnet}"
		;;
	"range")
		CGI_inip="${CGI_iniprng}"
		;;
	"table")
		CGI_inip="${CGI_iniptbl}"
		;;
	esac
	case "${CGI_outtype}" in
	"any")
		CGI_outip="any"
		;;
	"net")
		CGI_outip="${CGI_outipnet}"
		;;
	"range")
		CGI_outip="${CGI_outiprng}"
		;;
	"table")
		CGI_outip="${CGI_outiptbl}"
		;;
	esac
	errmsg=`${FLOWEYE} vlink add name=${CGI_vlinkname} inip=${CGI_inip} outip=${CGI_outip}`
	if [ "$?" != "0" ]; then
		afm_dialog_msg "ִ:${errmsg}"
	else
		afm_dialog_msg "ɹ!"
		afm_load_page 0 "/cgi-bin/Protocol/vlink_list"
		exit 0
	fi
else
	[ "${CGI_inip}" = "" ] && CGI_inip="any"
	[ "${CGI_outip}" = "" ] && CGI_outip="any"
fi

echo -n "
<body>
"; 
cgi_show_title "->·->·" 
tblexists=`${FLOWEYE} table list`

echo -n "
<br>
<form method=post onsubmit=\"return beforeAddVlink(this)\" action=\"${myself}\">
<table width=600 border=0 cellspacing=0 cellpadding=3 bgcolor=\"#ffffff\">
<tr id=row1>
	<td width=70></td>
        <td width=120 align=left>·</td>
        <td width=130 align=left><input type=text name=vlinkname style=\"width:150px\"></input></td>
	<td width=* class=cssTDArial align=left></td>
</tr>
<tr id=row1>
	<td></td>
        <td align=left>ַ</td>
        <td align=left>
		<select name=intype style=\"width:100%\" value=\"any\" onchange=\"onIntypeChanged(this)\">
			<option value=\"any\" selected>ַ</option>
			<option value=\"net\">xxx.xxx.xxx.xxx/nn</option>
			<option value=\"range\">n.n.n.n-m.m.m.m</option>
		";
			if [ "${tblexists}" != "" ]; then
				echo "<option value=\"table\">IPȺ</option>"
			fi
		
echo -n "
		</select>
	</td>
	<td width=* align=left>
		<input type=text name=inipnet style=\"width:120px;display:none\"></input>
		<input type=text name=iniprng style=\"width:160px;display:none\"></input>
		<select name=iniptbl style=\"width:120px;display:none\">
		";
			${FLOWEYE} table list | while read tblid tblname
			do
				echo "<option value=\"${tblid}\">${tblname}</option>"
			done
		
echo -n "
		</select>
	</td>
</tr>
<tr id=row1>
	<td></td>
        <td align=left>ַ</td>
        <td align=left>
		<select name=outtype style=\"width:100%\" value=\"any\" onchange=\"onOuttypeChanged(this)\">
			<option value=\"any\" selected>ַ</option>
			<option value=\"net\">xxx.xxx.xxx.xxx/nn</option>
			<option value=\"range\">n.n.n.n-m.m.m.m</option>
		";
			if [ "${tblexists}" != "" ]; then
				echo "<option value=\"table\">IPȺ</option>"
			fi
		
echo -n "
		</select>
	</td>
	<td width=* align=left>
		<input type=text name=outipnet style=\"width:120px;display:none\"></input>
		<input type=text name=outiprng style=\"width:160px;display:none\"></input>
		<select name=outiptbl style=\"width:120px;display:none\">
		";
			${FLOWEYE} table list | while read tblid tblname
			do
				echo "<option value=\"${tblid}\">${tblname}</option>"
			done
		
echo -n "
		</select>
	</td>
</tr>
</table>
<table style=\"width:600; border-bottom:1px #787882 solid; color:#0000ff\">
<tr><td align=right>&nbsp;</td></tr>
</table>
<table style=\"width:600\"> 
<tr>
        <td align=right>
		<input type=submit style=\"width:80\" value=\"ύ\"></input>
		<input type=button style=\"width:80\" value=\"ȡ\" onclick=\"OnCancel('${CGI_policy}')\"></input>
		<input type=hidden name=policy value=\"${CGI_policy}\"></input>
	</td>
</tr>
</table>
</form>
</body>
</html>
";