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

"
echo -n "";
. ../../common/common.sh
myself="/cgi-bin/App/pktrule/`basename $0`"
if [ "${PALANG}" = "en" ]; then
	LANG_001="The rule number must be an integer between 1 and 65535!"
	LANG_002="Please enter valid IP: x.x.x.x/n"
	LANG_003="Please enter valid ip range: x.x.x.x-y.y.y.y"
	LANG_004="Error in src port!"
	LANG_005="Error in dst port!"
	LANG_006="Please enter 0~63!"
	LANG_007="Please select next-hop line!"
	LANG_008="Policy->Route->Edit"
	LANG_009="Policy ID"
	LANG_0010="Valid time period"
	LANG_0011="All"
	LANG_0012="Note"
	LANG_0013="Max. 60 English characters"
	LANG_0014="Condition"
	LANG_0015="Source Interface"
	LANG_0016="PPPoE Servers"
	LANG_0017="Any"
	LANG_0018="10 or 10-20, 0, 0-0 and empty means any VLAN"
	LANG_0019="10 or 10-20, 0, 0-0 and empty means any TTL"
	LANG_0020="Source IP"
	LANG_0021="Source Port"
	LANG_0022="80 or 8000-8100, 0 means any port"
	LANG_0023="Destination IP"
	LANG_0024="Destination Port"
	LANG_0025="Protocol"
	LANG_0026="Application"
	LANG_0027="Standard edition, doesnt support application routing"
	LANG_0028="UserType"
	LANG_0029="Ippxy"
	LANG_0030="Nonippxy"
	LANG_0031="Action"
	LANG_0032="NAT"
	LANG_0033="Route"
	LANG_0034="Ippxy"
	LANG_0035="DNAT"
	LANG_0036="NAT"
	LANG_0037="NULL"
	LANG_0038="Route"
	LANG_0039="NextHop"
	LANG_0040="If null or 0.0.0.0, will use destination IP or default gateway"
	LANG_0041="Submit"
	LANG_0042="Cancel"
	LANG_0043="Next-Hop"
	LANG_0044="IP Pool"
	LANG_0045="Select"
	LANG_0046="Any Protocol"
	LANG_0047="If an empty line is selected, go to the NAT line selected above"
	LANG_0048="If set, the destination IP of the packet is modified to the set IP"
	LANG_0049="Error"
	LANG_0050="Invalid return value"
	LANG_0051="The number range is 1-65535, and the rule with small number is prioritized"
fi

echo -n "
<link href=\"/img/select2.min.css\" rel=\"stylesheet\" />
<script type=\"text/javascript\" src=\"/img/select2.min.js\"></script>
<script type=\"text/javascript\" src=\"/img/common.js\"></script>
<script language=\"javascript\">
function beforeAddRule(frm)
{
	var rngs;
	var polno   = document.getElementsByName(\"polno\")[0];
	var srctype  = document.getElementsByName(\"srctype\")[0];
	var dsttype = document.getElementsByName(\"dsttype\")[0];
	var srcipnet = document.getElementsByName(\"srcipnet\")[0];
	var srciprng = document.getElementsByName(\"srciprng\")[0];
	var dstipnet= document.getElementsByName(\"dstipnet\")[0];
	var dstiprng= document.getElementsByName(\"dstiprng\")[0];
	var srcport  = document.getElementsByName(\"srcport\")[0];
	var dstport = document.getElementsByName(\"dstport\")[0];
	var apid    = document.getElementsByName(\"appid\")[0];
	var dscp    = document.getElementsByName(\"dscp\")[0];
	var nexthop = document.getElementsByName(\"nat_nexthop\")[0];
	var vlan    = document.getElementsByName(\"vlan\")[0];
	var ttl     = document.getElementsByName(\"ttl\")[0];
	var desc    = document.getElementsByName(\"desc\")[0];
	var en_desc = document.getElementsByName(\"en_desc\")[0];
	var newdstip = document.getElementsByName(\"newdstip\")[0];
	polno.value = TrimAll(polno.value);
	if (!IsDigitIn(polno.value, 1, 65535)) {
		alert(\"${LANG_001:=űǽ165535֮һ!}\");
		polno.select();
		return false;
	}
	vlan.value = TrimAll(vlan.value);
	srcipnet.value = TrimAll(srcipnet.value);
	srciprng.value = TrimAll(srciprng.value);
	if (srctype.value == \"net\") {
		if (!IsIPAddr(srcipnet.value)) {
			alert(\"${LANG_002:=ȷIPַʽΪx.x.x.x/n}\");
			srcipnet.select();
			return false;
		}
	}
	else
	if (srctype.value == \"range\") {
		rngs = srciprng.value.split(\"-\");
		if (rngs.length != 2 || !IsIPAddr(rngs[0]) || !IsIPAddr(rngs[1])) {
			alert(\"${LANG_003:=ȷIPΣʽΪx.x.x.x-y.y.y.y}\");
			srciprng.select();
			return false;
		}
	}
	srcport.value = TrimAll(srcport.value);
	if (srcport.value == \"\") srcport.value = \"0\";
	rngs = srcport.value.split(\"-\");
	if (rngs.length == 2) {
		if (!IsDigitIn(rngs[0], 0, 65535) || !IsDigitIn(rngs[1], 0, 65535)) {
			alert(\"${LANG_004:=˿!}\");
			srcport.select();
			return false;
		}
	}
	else {
		if (!IsDigitIn(srcport.value, 0, 65535)) {
			alert(\"${LANG_004:=˿!}\");
			srcport.select();
			return false;
		}
	}
	dstipnet.value = TrimAll(dstipnet.value);
	dstiprng.value = TrimAll(dstiprng.value);
	if (dsttype.value == \"net\") {
		if (!IsIPAddr(dstipnet.value)) {
			alert(\"${LANG_002:=ȷIPַʽΪx.x.x.x/n}\");
			dstipnet.select();
			return false;
		}
	}
	else
	if (dsttype.value == \"range\") {
		rngs = dstiprng.value.split(\"-\");
		if (rngs.length != 2 || !IsIPAddr(rngs[0]) || !IsIPAddr(rngs[1])) {
			alert(\"${LANG_003:=ȷIPΣʽΪx.x.x.x-y.y.y.y}\");
			dstiprng.select();
			return false;
		}
	}
	dstport.value = TrimAll(dstport.value);
	if (dstport.value == \"\") dstport.value = \"0\";
	rngs = dstport.value.split(\"-\");
	if (rngs.length == 2) {
		if (!IsDigitIn(rngs[0], 0, 65535) || !IsDigitIn(rngs[1], 0, 65535)) {
			alert(\"${LANG_005:=˿!}\");
			dstport.select();
			return false;
		}
	}
	else {
		if (!IsDigitIn(dstport.value, 0, 65535)) {
			alert(\"${LANG_005:=˿!}\");
			dstport.select();
			return false;
		}
	}
		
	dscp.value = TrimAll(dscp.value);
	if (dscp.value == \"\") dscp.value = \"0\";
	if (!IsDigitIn(dscp.value, 0, 63)) {
		alert(\"${LANG_006:=0~63!}\");
		dscp.select();
		return false;
	}
	ttl.value = TrimAll(ttl.value);
	newdstip.value = TrimAll(newdstip.value);
	if (newdstip.value != \"\" && !IsIPAddr(newdstip.value)) {
		alert(\"ȷDNATַ!\");
		newdstip.select();
		return false;
	}
	"; if [ "${PALANG}" = "en" ]; then 
echo -n "
		en_desc.value = encodeURIComponent(desc.value);
	"; else 
echo -n "
		desc.value = TrimAll(desc.value);
	"; fi 
echo -n "
	
	return true;
}
function onCancel()
{
	window.location.href = \"/cgi-bin/APp/pktrule/webmain\";
}
function onSrctypeChanged(obj) 
{
	var net = document.getElementsByName(\"srcipnet\")[0];
	var rng = document.getElementsByName(\"srciprng\")[0];
	var tbl = document.getElementsByName(\"srciptbl\")[0];
	if (obj.value == \"any\") {
		net.style.display = \"none\";
		rng.style.display = \"none\";
		tbl.style.display = \"none\";
		\$(\".select2_srciptbl\").next().css(\"display\", \"none\");
	}
	else
	if (obj.value == \"net\") {
		net.style.display = \"block\";
		rng.style.display = \"none\";
		tbl.style.display = \"none\";
		\$(\".select2_srciptbl\").next().css(\"display\", \"none\");
	}
	else
	if (obj.value == \"range\") {
		net.style.display = \"none\";
		rng.style.display = \"block\";
		tbl.style.display = \"none\";
		\$(\".select2_srciptbl\").next().css(\"display\", \"none\");
	}
	else
	if (obj.value == \"table\") {
		net.style.display = \"none\";
		rng.style.display = \"none\";
		tbl.style.display = \"block\";
		\$(\".select2_srciptbl\").next().css(\"display\", \"block\");
	}
}
function onDsttypeChanged(obj) 
{
	var net = document.getElementsByName(\"dstipnet\")[0];
	var rng = document.getElementsByName(\"dstiprng\")[0];
	var tbl = document.getElementsByName(\"dstiptbl\")[0];
	if (obj.value == \"any\") {
		net.style.display = \"none\";
		rng.style.display = \"none\";
		tbl.style.display = \"none\";
		\$(\".select2_dstiptbl\").next().css(\"display\", \"none\");
	}
	else
	if (obj.value == \"net\") {
		net.style.display = \"block\";
		rng.style.display = \"none\";
		tbl.style.display = \"none\";
		\$(\".select2_dstiptbl\").next().css(\"display\", \"none\");
	}
	else
	if (obj.value == \"range\") {
		net.style.display = \"none\";
		rng.style.display = \"block\";
		tbl.style.display = \"none\";
		\$(\".select2_dstiptbl\").next().css(\"display\", \"none\");
	}
	else
	if (obj.value == \"table\") {
		net.style.display = \"none\";
		rng.style.display = \"none\";
		tbl.style.display = \"block\";
		\$(\".select2_dstiptbl\").next().css(\"display\", \"block\");
	}
}
function onActionChanged(obj)
{
	var nattbl = document.getElementById(\"idNAT\");
	var routetbl = document.getElementById(\"idROUTE\");
	if (obj.value == \"nat\" || obj.value == \"cgnat\") {
		nattbl.style.display = \"block\";
		routetbl.style.display = \"none\";
	}
	else
	if (obj.value == \"ippxy\") {
		nattbl.style.display = \"none\";
		routetbl.style.display = \"none\";
	}
	else {
		nattbl.style.display = \"none\";
		routetbl.style.display = \"block\";
	}
}
function onLoad()
{
	var action = document.getElementsByName(\"action\")[0];
	onActionChanged(action);
	\$(\".select2_ifname\").select2();
	\$(\".select2_srciptbl\").select2();
	\$(\".select2_dstiptbl\").select2();
	
	if(\$(\".select2_srciptbl\")[0].style.display == \"none\")
		\$(\".select2_srciptbl\").next().css(\"display\", \"none\");
		
	if(\$(\".select2_dstiptbl\")[0].style.display == \"none\")
	\$(\".select2_dstiptbl\").next().css(\"display\", \"none\");
}
</script>
";
if [ "${REQUEST_METHOD}" = "POST" ]; then
	operator_check "/cgi-bin/App/pktrule/webmain"
	cmdargs="id=${CGI_polno}"
	[ "${CGI_newid}" != "" ] && cmdargs="${cmdargs} newid=${CGI_newid}"
	[ "${CGI_inifname}" != "any" ] && cmdargs="${cmdargs} inif=${CGI_inifname}"
	case "${CGI_srctype}" in
	"any")
		CGI_srcip="any"
		;;
	"net")
		CGI_srcip="${CGI_srcipnet}"
		;;
	"range")
		CGI_srcip="${CGI_srciprng}"
		;;
	"table")
		CGI_srcip="${CGI_srciptbl}"
		;;
	esac
	if [ "${CGI_srcport}" != "" -a "${CGI_srcport}" != "0" ]; then
		CGI_srcip="${CGI_srcip}:${CGI_srcport}"
	fi
	cmdargs="${cmdargs} src=${CGI_srcip}"
	case "${CGI_dsttype}" in
	"any")
		CGI_dstip="any"
		;;
	"net")
		CGI_dstip="${CGI_dstipnet}"
		;;
	"range")
		CGI_dstip="${CGI_dstiprng}"
		;;
	"table")
		CGI_dstip="${CGI_dstiptbl}"
		;;
	esac
	if [ "${CGI_dstport}" != "" -a "${CGI_dstport}" != "0" ]; then
		CGI_dstip="${CGI_dstip}:${CGI_dstport}"
	fi
	cmdargs="${cmdargs} dst=${CGI_dstip}"
	if [ "${CGI_dscp}" != "" -a "${CGI_dscp}" != "0" ]; then
		cmdargs="${cmdargs} dscp=${CGI_dscp}"
	fi
	[ "${CGI_proto}" != "any" ] && cmdargs="${cmdargs} proto=${CGI_proto}"
	cmdargs="${cmdargs} app=${CGI_appid}"
	if [ "${CGI_action}" = "route" ]; then
		cmdargs="${cmdargs} action=${CGI_action}-${CGI_proxy}"
	else
		cmdargs="${cmdargs} action=${CGI_action}-${CGI_sriwan}"
	fi
	if [ "${CGI_vlan}" != "" -a "${CGI_vlan}" != "0-0" -a "${CGI_vlan}" != "0" ]; then
		cmdargs="${cmdargs} vlan=${CGI_vlan}"
	fi
	[ "${CGI_ttl}" != "" ] && cmdargs="${cmdargs} ttl=${CGI_ttl}"
	
	if [ "${CGI_desc}" = "" ]; then
		cmdargs="${cmdargs} desc=NULL"
	else
		[ "${PALANG}" = "en" ] && CGI_desc="${CGI_en_desc}"
		cmdargs="${cmdargs} desc=${CGI_desc}"
	fi
	cmdargs="${cmdargs} disable=${CGI_disable}"
	[ "${CGI_schtime}" = "" ] && CGI_schtime=0
	
	cmdargs="${cmdargs} schtime=${CGI_schtime}"
	
	[ "${CGI_pool}" = "" ] && CGI_pool=0
	cmdargs="${cmdargs} pool=${CGI_pool}"
	[ "${CGI_nat_nexthop}" != "" ] && cmdargs="${cmdargs} nexthop=${CGI_nat_nexthop}"
	
	if [ "${CGI_newdstip}" != "" ]; then
		cmdargs="${cmdargs} newdstip=${CGI_newdstip}"
	else
		cmdargs="${cmdargs} newdstip=0.0.0.0"
	fi
	errmsg=`${FLOWEYE} route set ${cmdargs} group=pkt`
	if [ "$?" != "0" ]; then
		afm_dialog_msg "${LANG_0049:=ִ}:${errmsg}"
	else
		afm_load_page 0 "/cgi-bin/App/pktrule/webmain"
		exit 0
	fi
else
	for nameval in `${FLOWEYE} route get group=pkt id=${CGI_id}`
	do
		export "CGI_${nameval}"
	done
	CGI_polno="${CGI_id}"
	CGI_srcip="${CGI_src}"
	[ "${CGI_srcport}" = "any" ] && CGI_srcport=""
	CGI_dstip="${CGI_dst}"
	[ "${CGI_dstport}" = "any" ] && CGI_dstport=""
	if [ "${CGI_action}" = "route" ]; then
		CGI_nat_nexthop="${CGI_nexthop}"
	else
		CGI_nat_nexthop="${CGI_nexthop}"
	fi
	
	[ "${CGI_vlan}" = "0-0" -o "${CGI_vlan}" = "0" ] && CGI_vlan=""
	[ "${CGI_schtime}" = "" ] && CGI_schtime=0
	[ "${CGI_ttl}" = "0-255" ] && CGI_ttl=""
	[ "${CGI_desc}" = "NULL" ] && CGI_desc=""
	[ "${CGI_usrtype}" = "" ] && CGI_usrtype="any"
	[ "${CGI_pool}" = "" ] && CGI_pool="0"
	[ "${CGI_newdstip}" = "0.0.0.0" ] && CGI_newdstip=""
	CGI_desc=`echo ${CGI_desc} | sed -r 's/\%20/ /g'`
fi

echo -n "
<body onload=\"onLoad()\">
<script type=\"text/javascript\" src=\"/img/wz_tooltip.js\"></script>
<span id=\"hlpno\" style=\"display:none\">${LANG_0051:=ŷΧΪ1~65535,СĹƥ}</span>
"; 
cgi_show_title "${LANG_008:=->·->༭}"
tblexists=`${FLOWEYE} table list`

echo -n "
<br>
<form method=post onsubmit=\"return beforeAddRule(this)\" action=\"${myself}\">
<table width=950 border=0 cellspacing=0 cellpadding=3 bgcolor=\"#ffffff\">
<tr id=row1>
	<td width=80></td>
	<td width=120 align=left>${LANG_009:=Աʶ}</td>
	<td width=* align=left>
		<input align=right type=text name=newid style=\"width:160\" value=\"${CGI_polno}\" />
		<input align=right type=hidden name=polno style=\"width:160\" value=\"${CGI_polno}\" />
		<a style=\"color:#0000ff\" onmouseover=\"TagToTip('hlpno')\" onmouseout=\"UnTip()\">(1~65535)</a>
	</td>
</tr>
"; if [ "${CGI_from}" != "" ]; then 
echo -n "
<tr id=row1>
        <td></td>
        <td align=left>${LANG_0010:=Чʱ}</td>
        <td align=left>
                <select name=schtime style=\"width:160\" value=\"${CGI_schtime}\">
                ";
                        if [ "${CGI_schtime}" = "0" ]; then
                                echo "<option value=0 selected>${LANG_0011:=ʱ}</option>"
                        else
                                echo "<option value=0>${LANG_0011:=ʱ}</option>"
                        fi
                        ${FLOWEYE} rtptime list | while read id name theothers
                        do
                                if [ "${CGI_schtime}" = "${id}" ]; then
                                        echo "<option value=${id} selected>${name}</option>"
                                else
                                        echo "<option value=${id}>${name}</option>"
                                fi
                        done
                
echo -n "
                </select>
        </td>
</tr>
"; fi 
echo -n "
<tr id=row1>
	<td></td>
        <td align=left>${LANG_0012:=עϢ}</td>
	<td align=left>
		<input align=right type=text name=desc style=\"width:240\" value=\"${CGI_desc}\" />
		<input align=right type=hidden name=en_desc style=\"width:240\" value=\"${CGI_desc}\" />
		&nbsp;(${LANG_0013:=30ֻ60Ӣַ})
	</td>
</tr>
</table>
<br>
<table style=\"width:950; border-bottom:1px #787882 solid; color:#000000\">
<tr><td align=left style=\"font-size:11px\"><b>${LANG_0014:=ƥ}</b></td></tr>
</table>
<br>
<table width=950 border=0 cellspacing=0 cellpadding=3 bgcolor=\"#ffffff\">
<tr id=row1>
	<td width=80></td>
        <td width=120 align=left>${LANG_0015:=Դӿ}</td>
	<td width=160 align=left>
		<select name=inifname style=\"width:160\" value=\"${CGI_iniftype}.${CGI_inif}\" class=\"select2_ifname\">
		";
			${FLOWEYE} nat listproxy type=lan | while read type id name theothers
			do
				if [ "${CGI_iniftype}" = "proxy" -a "${CGI_inif}" = "${name}" ]; then
					echo "<option value=\"proxy.${name}\" selected>${name}</option>"
				else
					echo "<option value=\"proxy.${name}\">${name}</option>"
				fi
			done
			${FLOWEYE} nat listproxy type=wan | while read type id name theothers
			do
				if [ "${CGI_iniftype}" = "proxy" -a "${CGI_inif}" = "${name}" ]; then
					echo "<option value=\"proxy.${name}\" selected>${name}</option>"
				else
					echo "<option value=\"proxy.${name}\">${name}</option>"
				fi
			done
			${FLOWEYE} if list | while read ifname ifmode ifzone theothers
                        do
				[ "${ifzone}" != "inside" ] && continue
                                if [ "${CGI_inif}" = "${ifname}"  -a "${CGI_iniftype}" = "if" ]; then
                                        echo "<option value=\"if.${ifname}\" selected>${ifname}</option>"
                                else
                                        echo "<option value=\"if.${ifname}\">${ifname}</option>"
                                fi
                        done
			if [ "${CGI_iniftype}" = "posvr" -a "${CGI_inif}" = "all" ]; then
				echo "<option value=allposvr selected>${LANG_0016:=PPPOE}</option>"
			else
				echo "<option value=allposvr>${LANG_0016:=PPPOE}</option>"
			fi
			if [ "${CGI_inif}" = "any" ]; then
				echo "<option value=any selected>${LANG_0017:=}</option>"
			else
				echo "<option value=any>${LANG_0017:=}</option>"
			fi
		
echo -n "
		</select>
	</td>
	<td width=* align=left></td>
</tr>
<tr id=row1>
        <td></td>
        <td align=left>${LANG_0044:=û/ַ}</td>
        <td align=left>
                <select name=pool style=\"width:160\" value=\"${CGI_pool}\">
                ";
                if [ "${CGI_pool}" = "0" ]; then
                        echo "<option value=0 selected>${LANG_0017:=}</option>"
                else
                        echo "<option value=0>${LANG_0017:=}</option>"
                fi
                ${FLOWEYE} pppoeippool list | while read pid pname start end theothers
                do
                        if [ "${CGI_pool}" = "${pid}" ]; then
                                echo "<option value=\"${pid}\" selected>${pname}</option>"
                        else
                                echo "<option value=\"${pid}\">${pname}</option>"
                        fi
                done
                
echo -n "
                </select>
        </td>
</tr>
<tr id=row1>
	<td></td>
        <td align=left>VLAN</td>
        <td align=left><input type=text name=vlan value=\"${CGI_vlan}\" style=\"width:160\"></input></td>
	<td width=* align=left><a style=\"color:#0000ff\">(${LANG_0018:=1010-2010-20/10-20,00-0ʾVLAN})</td>
</tr>
<tr id=row1>
	<td></td>
        <td align=left>TTL</td>
        <td align=left><input type=text name=ttl value=\"${CGI_ttl}\" style=\"width:160\"></input></td>
	<td width=* align=left><a style=\"color:#0000ff\">(${LANG_0019:=1010-20,ʾTTL})</td>
</tr>
<tr id=row1>
	<td></td>
        <td align=left>${LANG_0020:=Դַ}</td>
        <td align=left>
		<select name=srctype style=\"width:160\" value=\"${CGI_srctype}\" onchange=\"onSrctypeChanged(this)\">
		"; cgi_show_iptype "${CGI_srctype}" 
echo -n "
		</select>
	</td>
	<td width=* align=left>
        ";
                rngdisplay="none"
                netdisplay="none"
                tbldisplay="none"
                case "${CGI_srctype}" in
                "net")
                        netdisplay="block"
                        ;;
                "iprange")
                        rngdisplay="block"
                        ;;
                "table")
                        tbldisplay="block"
                        ;;
                esac
                srcipval="${CGI_srcip}"
                [ "${CGI_srcip}" = "any" ] && srcipval=""
                echo "<input type=text name=srcipnet value=\"${srcipval}\" style=\"width:180px;display:${netdisplay}\"></input>"
                echo "<input type=text name=srciprng value=\"${srcipval}\" style=\"width:180px;display:${rngdisplay}\"></input>"
                echo "<select name=srciptbl value=\"${srcipval}\" style=\"width:180px;display:${tbldisplay}\" class=\"select2_srciptbl\">"
                ${FLOWEYE} table list | while read tblid tblname
                do
                        if [ "${CGI_srcip}" = "${tblid}" -o "${CGI_srcip}" = "${tblname}" ]; then
                                echo "<option value=\"${tblid}\" selected>${tblname}</option>"
                        else
                                echo "<option value=\"${tblid}\">${tblname}</option>"
                        fi
                done
                echo "</select>"
        
echo -n "
	</td>
</tr>
<tr id=row1>
	<td></td>
        <td align=left>${LANG_0021:=Դ˿}</td>
        <td><input type=text name=srcport value=\"${CGI_srcport}\" style=\"width:160\"></input></td>
	<td width=* align=left><a style=\"color:#0000ff\">(${LANG_0022:=808000-81000ʾ˿})</a></td>
</tr>
<tr id=row1>
	<td></td>
        <td align=left>${LANG_0023:=Ŀַ}</td>
        <td align=left>
		<select name=dsttype style=\"width:160\" value=\"${CGI_dsttype}\" onchange=\"onDsttypeChanged(this)\">
		"; cgi_show_iptype "${CGI_dsttype}" 
echo -n "
		</select>
	</td>
	<td width=* align=left>
        ";
                rngdisplay="none"
                netdisplay="none"
                tbldisplay="none"
                case "${CGI_dsttype}" in
                "net")
                        netdisplay="block"
                        ;;
                "iprange")
                        rngdisplay="block"
                        ;;
                "table")
                        tbldisplay="block"
                        ;;
                esac
                dstipval="${CGI_dstip}"
                [ "${CGI_dstip}" = "any" ] && dstipval=""
                echo "<input type=text name=dstipnet value=\"${dstipval}\" style=\"width:180px;display:${netdisplay}\"></input>"
                echo "<input type=text name=dstiprng value=\"${dstipval}\" style=\"width:180px;display:${rngdisplay}\"></input>"
                echo "<select name=dstiptbl value=\"${dstipval}\" style=\"width:180px;display:${tbldisplay}\" class=\"select2_dstiptbl\">"
                ${FLOWEYE} table list | while read tblid tblname
                do
                        if [ "${CGI_dstip}" = "${tblid}" -o "${CGI_dstip}" = "${tblname}" ]; then
                                echo "<option value=\"${tblid}\" selected>${tblname}</option>"
                        else
                                echo "<option value=\"${tblid}\">${tblname}</option>"
                        fi
                done
                echo "</select>"
        
echo -n "
	</td>
</tr>
<tr id=row1>
	<td></td>
        <td align=left>${LANG_0024:=Ŀ˿}</td>
        <td align=left><input type=text name=dstport value=\"${CGI_dstport}\" style=\"width:160\"></input></td>
	<td width=* align=left><a style=\"color:#0000ff\">(${LANG_0022:=808000-81000ʾ˿})</a></td>
</tr>
";
[ "${CGI_appid}" = "" ] && CGI_appid="any"
if [ "${PALANG}" = "en" ]; then
	appname="${CGI_appid}"
else
	appname=`${FLOWEYE} app name ${CGI_appid}`
fi

echo -n "
<tr id=row1>
	<td></td>
        <td align=left>${LANG_0025:=Э}</td>
        <td><select name=proto value=\"${CGI_proto}\" style=\"width:160\">
		";
			case "${CGI_proto}" in
			"tcp"|"TCP")
				echo "<option value=any>${LANG_0017:=}</option>"
				echo "<option value=TCP selected>TCP</option>"
				echo "<option value=UDP>UDP</option>"
				echo "<option value=ICMP>ICMP</option>"
				;;
			"udp"|"UDP")
				echo "<option value=any>${LANG_0017:=}</option>"
				echo "<option value=TCP>TCP</option>"
				echo "<option value=UDP selected>UDP</option>"
				echo "<option value=ICMP>ICMP</option>"
				;;
			"icmp"|"ICMP")
				echo "<option value=any>${LANG_0017:=}</option>"
				echo "<option value=TCP>TCP</option>"
				echo "<option value=UDP>UDP</option>"
				echo "<option value=ICMP selected>ICMP</option>"
				;;
			*)
				echo "<option value=any selected>${LANG_0017:=}</option>"
				echo "<option value=TCP>TCP</option>"
				echo "<option value=UDP>UDP</option>"
				echo "<option value=ICMP>ICMP</option>"
				;;
			esac
		
echo -n "
		</select>
	</td>
        <td width=* align=left></td>
</tr>
"; if [ ${JOS_RELEASE} -ne 0 ]; then 
echo -n "
<tr id=row1>
	<td></td>
        <td align=left>${LANG_0026:=ӦЭ}</td>
        <td align=left>
		<input type=hidden name=appid value=\"${CGI_appid}\"></input>
		<input type=text name=appname value=\"${appname}\" disabled style=\"width:160\">
	</td>
	<td width=* class=cssTDArial align=left>
	  <input type=button name=tmp value=\"${LANG_0045:=ѡӦ...}\" style=\"width:80px\" onclick=\"selectApp('${CGI_appid}')\"></input>
	</td>
</tr>
"; else 
echo -n "
<tr id=row1>
	<td></td>
        <td align=left>${LANG_0026:=ӦЭ}</td>
        <td align=left>
		<input type=hidden name=appid value=\"any\"></input>
		<input type=text name=appname value=\"${LANG_0046:=}\" disabled style=\"width:160\">
	</td>
	<td width=* class=cssTDArial style=\"color:#ff0000\" align=left>${LANG_0027:=Ǳ׼棬֧Ӧ·}</td>
</tr>
"; fi 
echo -n "
<tr id=row1>
	<td></td>
        <td align=left>DSCP</td>
        <td align=left><input type=text name=dscp value=\"${CGI_dscp}\" style=\"width:160\"></input></td>
	<td width=* align=left></td>
</tr>
</table>
<br>
<table style=\"width:950; border-bottom:1px #787882 solid; color:#000000\">
<tr><td align=left style=\"font-size:11px\"><b>${LANG_0025:=ִж}</b></td></tr>
</table>
<br>
<table width=950 border=0 cellspacing=0 cellpadding=3 bgcolor=\"#ffffff\">
<tr id=row1>
	<td width=80></td>
        <td width=120 align=left>${LANG_0025:=ִж}</td>
        <td width=160>
		<select name=action value=\"${CGI_action}\" style=\"width:160px\" onchange=\"onActionChanged(this)\">
		";
			if [ "${CGI_action}" = "route" ]; then
				echo "<option value=\"route\" selected>ת</option>"
				echo "<option value=\"iwansr\">iWANSR</option>"
			else
				echo "<option value=\"route\">ת</option>"
				echo "<option value=\"iwansr\" selected>iWANSR</option>"
			fi
		
echo -n "
		</select>
	</td>
        <td width=* align=left></td>
</tr>
</table>
"; 
	if [ "${CGI_action}" = "route" ]; then
		tb1="block"
		tb2="none"
	else
		tb1="none"
		tb2="block"
	fi

echo -n "
<table id=\"row_route\" style=\"font:14px;width:950px;display:${tb1}\" border=0 cellspacing=0 cellpadding=3 bgcolor=\"#ffffff\">
<tr id=row1>
	<td width=80></td>
        <td width=120 align=left>${LANG_0035:=ת·}</td>
        <td width=160>
		<select name=proxy value=\"${CGI_nat_proxy}\" style=\"width:160px\" class=\"select2_ifname\">
		";
			${FLOWEYE} nat listproxy type=wan | while read type id name theothers
			do
				if [ "${CGI_actpxyname}" = "${name}" ]; then
					echo "<option value=\"${name}\" selected>${name}</option>"
				else
					echo "<option value=\"${name}\">${name}</option>"
				fi
			done
		
echo -n "
		</select>
	</td>
	<td width=* align=left></td>
</tr>
</table>
<table id=\"row_iwan\" style=\"font:14px;width:950px;display:${tb2}\" border=0 cellspacing=0 cellpadding=3 bgcolor=\"#ffffff\">
<tr id=row1>
	<td width=80></td>
        <td width=120 align=left>iWAN·</td>
        <td width=160>
		<select name=sriwan value=\"${CGI_nat_proxy}\" style=\"width:160px\" class=\"select2_ifname\">
		";
			${FLOWEYE} nat listproxy type=iwan | while read type id name theothers
			do
				if [ "${CGI_actpxyname}" = "${name}" ]; then
					echo "<option value=\"${name}\" selected>${name}</option>"
				else
					echo "<option value=\"${name}\">${name}</option>"
				fi
			done
		
echo -n "
		</select>
	</td>
	<td width=* align=left></td>
</tr>
</table>
<table style=\"font:14px;width:950px\" border=0 cellspacing=0 cellpadding=3 bgcolor=\"#ffffff\">
<tr id=row1>
	<td width=80></td>
	<td width=120 align=left>${LANG_0028:=һ}</td>
	<td width=160>
		<input name=nat_nexthop style=\"width:160px\" value=\"${CGI_nat_nexthop}\">
	</td>
	<td width=* align=left></td>
</tr>
</table>
<table style=\"width:950; border-bottom:1px #787882 solid; color:#0000ff\">
<tr><td align=right>&nbsp;</td></tr>
</table>
<table style=\"width:950\"> 
<tr>
        <td align=right>
		<input type=submit style=\"width:80\" class=\"btns\"  value=\"${LANG_0030:=ύ}\"></input>
		<input type=button style=\"width:80\" value=\"${LANG_0031:=ȡ}\" class=\"btns\"  onclick=\"onCancel()\"></input>
		<input type=hidden name=from value=\"${CGI_from}\" />
	</td>
</tr>
</table>
</form>
</body>
</html>";