#!/usr/bin/awk -f
BEGIN{
	possible=0
	unregistered=0
	sameports=0
	sid=ENVIRON["server_sid"]
#	edit_nat=ENVIRON["nat_name"]
}
{
 if (($1=="interface" || $1=="alias_address") && $2!="") {
	dynamic_nat[$2]="<td>"$1"</td><td>"$2"</td>";
	possible=1;
 } else if ($1=="redirect_port") {
	if (($2!~/^[Tt][Cc][Pp]$/ && $2!~/^[Uu][Dd][Pp]$/) || $3=="" || $4=="") {
		possible=0;
		exit;
	}
	if (split($3,private,":")!=2 || split($4,public,":")!=2) {
		possible=0;
		exit;
	} else {
		if ($2":"$3==edit_nat) {
			if (tolower($2)=="tcp") {
				proto="<select name=proto id=proto><option value=tcp selected>tcp</option><option value=udp>udp</option></select>"
			} else {
				proto="<select name=proto id=proto><option value=tcp>tcp</option><option value=udp selected>udp</option></select>"
			}
			virt_server[$2":"$3]="<td>"proto"</td>"\
			"<td><input type=\"text\" name=\"publichost\" id=\"publichost\" size=15 maxlength=15 value=\""public[1]"\"></td>"\
			"<td><input type=\"text\" name=\"publicport\" id=\"publicport\" size=5 maxlength=5 value=\""public[2]"\"></td>"\
			"<td>-&gt;</td>"\
			"<td><input type=\"text\" name=\"privatehost\" id=\"privatehost\" size=15 maxlength=15 value=\""private[1]"\"></td>"\
			"<td><input type=\"text\" name=\"privateport\" id=\"privateport\" size=5 maxlength=5 value=\""private[2]"\"></td>"
		} else {
			virt_server[$2":"$3]="<td>"tolower($2)"</td>"\
					"<td>"public[1]"</td><td>"public[2]"</td>"\
					"<td>-&gt;</td>"\
					"<td>"private[1]"</td><td>"private[2]"</td>";
		}
	}
 } else if ($1=="redirect_address") {
	if ($2=="" || $3=="") {
		possible=0;
		exit;
	}
	if ($2==edit_nat) {
		static_nat[$2]=\
		"<td><input type=\"text\" name=\"static_ip\" id=\"static_ip\" size=15 maxlength=15 value=\""$2"\"></td>"\
		"<td>&lt;-&gt;</td>"\
		"<td><input type=\"text\" name=\"local_ip\" id=\"local_ip\" size=15 maxlength=15 value=\""$3"\"></td>"
	} else {
		static_nat[$2]="<td>"$2"</td><td>&lt;-&gt;</td><td>"$3"</td>";
	}
 } else if ($1=="unregistered_only") {
	if ($2~/^[Yy][Ee][Ss]$/){
		unregistered=1;
	} else if ($2~/^[Nn][Oo]$/) {
		unregistered=0;
	} else {
		possible=0;
		exit;
	}
 } else if ($1=="same_ports") {
	if ($2~/^[Yy][Ee][Ss]$/){
		sameports=1;
	} else if ($2~/^[Nn][Oo]$/) {
		sameports=0;
	} else {
		possible=0;
		exit;
	}
 }
}
END{
 if (possible==1) {
	ENVIRON["gettext_cmd"]" \"Dynamic NAT\"" | getline dnat_header
	ENVIRON["gettext_cmd"]" \"Static NAT\"" | getline snat_header
 	ENVIRON["gettext_cmd"]" \"Virtual Server\"" | getline vserv_header
	if (unregistered==1) print "Unregistered_Only = EVET"
	else print "Unregistered_Only HAYIR"
	if (sameports==1) print "Same Ports = EVET"
	else print "Same Ports HAYIR"


	#=========================
	#== Dynamic Nat Section ==
	#=========================
	i=0
	print "<h5>"dnat_header"</h5>"
	print "<table cellspacing=3 cellpadding=0>"
	for (x in dynamic_nat) {
		if (i%2 == 0) print "<tr class=a1>"
		else print "<tr class=a2>"
		print "<td class=editdelete><img src='images/editor.png' width=20 height=20 align=top border=0></td>"
		print dynamic_nat[x]
		print "<td class=editdelete><img src='images/eraser.png' width=20 height=20 align=top border=0></td></tr>"
		i++
	}
	print "</table>"


	#========================
	#== Static Nat Section ==
	#========================
	i=0
	print "<h5>"snat_header"</h5>"
	print "<table cellspacing=3 cellpadding=0>"
	for (x in static_nat) {
		if (i%2 == 0) print "<tr class=a1>"
		else print "<tr class=a2>"
		if (x==edit_nat) {
			print "<td class=editdelete><a href='JavaScript:nat_edit(\"static\",\""x"\")'><img src='images/menu_addrule.png' width=20 height=20 align=top border=0></a></td>"
		} else {
			print "<td class=editdelete><a href='nat_edit?"x"$"sid"'><img src='images/editor.png' width=20 height=20 align=top border=0></a></td>"
		}
		print static_nat[x]
		print "<td class=editdelete><a href='JavaScript:nat_del(\""x"\")'><img src='images/eraser.png' width=20 height=20 align=top border=0></a></td></tr>"
		i++
	}
	print "</table>"


	#============================
	#== Virtual Server Section ==
	#============================
	i=0
	print "<h5>"vserv_header"</h5>"
	print "<table cellspacing=3 cellpadding=0>"
	for (x in virt_server) {
		if (i%2 == 0) print "<tr class=a1>"
		else print "<tr class=a2>"
		if (x==edit_nat) {
			print "<td class=editdelete><a href='JavaScript:nat_edit(\"vserver\",\""x"\")'><img src='images/menu_addrule.png' width=20 height=20 align=top border=0></a></td>"
		} else {
			print "<td class=editdelete><a href='nat_edit?"x"$"sid"'><img src='images/editor.png' width=20 height=20 align=top border=0></a></td>"
		}
		print virt_server[x]
		print "<td class=editdelete><a href='JavaScript:nat_del(\""x"\")'><img src='images/eraser.png' width=20 height=20 align=top border=0></a></td></tr>"
		i++
	}
	print "</table>"
	close(ENVIRON["gettext_cmd"]" \"Dynamic NAT\"")
	close(ENVIRON["gettext_cmd"]" \"Static NAT\"")
	close(ENVIRON["gettext_cmd"]" \"Virtual Server\"")
 } else {
	print "Configurasyon HATALI"
 }
}
