--- proto_static.lua.orig	Wed Mar 28 17:37:49 2012
+++ proto_static.lua	Wed Mar 28 17:01:23 2012
@@ -16,70 +16,85 @@
 local ipaddr, netmask, gateway, broadcast, dns, accept_ra, send_rs, ip6addr, ip6gw
 local macaddr, mtu, metric
 
+if ( arg[1]:upper() == "LAN" ) then
 
-ipaddr = section:taboption("general", Value, "ipaddr", translate("IPv4 address"))
-ipaddr.datatype = "ip4addr"
+	ipaddr = s:taboption("general", DummyValue, "ipaddr", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"))
+	ipaddr.optional = true
+	ipaddr.datatype = "ip4addr"
+	ipaddr:depends("proto", "static")
 
+	nm = s:taboption("general", DummyValue, "netmask", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"))
+	nm.optional = true
+	nm.datatype = "ip4addr"
+	nm:depends("proto", "static")
 
-netmask = section:taboption("general", Value, "netmask",
-	translate("IPv4 netmask"))
+	mac = s:taboption("physical", Value, "macaddr", translate("<abbr title=\"Media Access Control\">MAC</abbr>-Address"))
+	mac:depends("proto", "none")
+	mac:depends("proto", "static")
+	mac:depends("proto", "dhcp")
+	mac.placeholder = ifc and ifc:mac():upper()
 
-netmask.datatype = "ip4addr"
-netmask:value("255.255.255.0")
-netmask:value("255.255.0.0")
-netmask:value("255.0.0.0")
+else
 
+	ipaddr = section:taboption("general", Value, "ipaddr", translate("IPv4 address"))
+	ipaddr.datatype = "ip4addr"
 
-gateway = section:taboption("general", Value, "gateway", translate("IPv4 gateway"))
-gateway.datatype = "ip4addr"
 
+	netmask = section:taboption("general", Value, "netmask", translate("IPv4 netmask"))
 
-broadcast = section:taboption("general", Value, "broadcast", translate("IPv4 broadcast"))
-broadcast.datatype = "ip4addr"
+	netmask.datatype = "ip4addr"
+	netmask:value("255.255.255.0")
+	netmask:value("255.255.0.0")
+	netmask:value("255.0.0.0")
 
 
-dns = section:taboption("general", DynamicList, "dns",
-	translate("Use custom DNS servers"))
+	gateway = section:taboption("general", Value, "gateway", translate("IPv4 gateway"))
+	gateway.datatype = "ip4addr"
 
-dns.datatype = "ipaddr"
-dns.cast     = "string"
+	broadcast = section:taboption("general", Value, "broadcast", translate("IPv4 broadcast"))
+	broadcast.datatype = "ip4addr"
 
 
-if luci.model.network:has_ipv6() then
+	dns = section:taboption("general", DynamicList, "dns", translate("Use custom DNS servers"))
 
-	accept_ra = s:taboption("general", Flag, "accept_ra", translate("Accept router advertisements"))
-	accept_ra.default = accept_ra.disabled
+	dns.datatype = "ipaddr"
+	dns.cast     = "string"
 
 
-	send_rs = s:taboption("general", Flag, "send_rs", translate("Send router solicitations"))
-	send_rs.default = send_rs.enabled
-	send_rs:depends("accept_ra", "")
+	if luci.model.network:has_ipv6() then
 
+		accept_ra = s:taboption("general", Flag, "accept_ra", translate("Accept router advertisements"))
+		accept_ra.default = accept_ra.disabled
 
-	ip6addr = section:taboption("general", Value, "ip6addr", translate("IPv6 address"))
-	ip6addr.datatype = "ip6addr"
-	ip6addr:depends("accept_ra", "")
 
+		send_rs = s:taboption("general", Flag, "send_rs", translate("Send router solicitations"))
+		send_rs.default = send_rs.enabled
+		send_rs:depends("accept_ra", "")
 
-	ip6gw = section:taboption("general", Value, "ip6gw", translate("IPv6 gateway"))
-	ip6gw.datatype = "ip6addr"
-	ip6gw:depends("accept_ra", "")
 
-end
+		ip6addr = section:taboption("general", Value, "ip6addr", translate("IPv6 address"))
+		ip6addr.datatype = "ip6addr"
+		ip6addr:depends("accept_ra", "")
 
 
-macaddr = section:taboption("advanced", Value, "macaddr", translate("Override MAC address"))
-macaddr.placeholder = ifc and ifc:mac() or "00:00:00:00:00:00"
-macaddr.datatype    = "macaddr"
+		ip6gw = section:taboption("general", Value, "ip6gw", translate("IPv6 gateway"))
+		ip6gw.datatype = "ip6addr"
+		ip6gw:depends("accept_ra", "")
 
+	end
 
-mtu = section:taboption("advanced", Value, "mtu", translate("Override MTU"))
-mtu.placeholder = "1500"
-mtu.datatype    = "max(1500)"
+	macaddr = section:taboption("advanced", Value, "macaddr", translate("Override MAC address"))
+	macaddr.placeholder = ifc and ifc:mac() or "00:00:00:00:00:00"
+	macaddr.datatype    = "macaddr"
 
 
-metric = section:taboption("advanced", Value, "metric",
-	translate("Use gateway metric"))
+	mtu = section:taboption("advanced", Value, "mtu", translate("Override MTU"))
+	mtu.placeholder = "1500"
+	mtu.datatype    = "max(1500)"
 
-metric.placeholder = "0"
-metric.datatype    = "uinteger"
+
+	metric = section:taboption("advanced", Value, "metric", translate("Use gateway metric"))
+
+	metric.placeholder = "0"
+	metric.datatype    = "uinteger"
+end
