|
|
var rateTable_300M = new Array("1Mbps", 1, "2Mbps", 1, "5.5Mbps", 1, "6Mbps", 6, "7Mbps", 8, "9Mbps", 6, "11Mbps", 1, "12Mbps", 6, "13Mbps", 8, "15Mbps", 16, "18Mbps", 6, "21Mbps", 8, "24Mbps", 6, "26Mbps", 8, "30Mbps", 16, "36Mbps", 6, "39Mbps", 8, "45Mbps", 16, "48Mbps", 6, "52Mbps", 8, "54Mbps", 6, "60Mbps", 16, "65Mbps", 8, "72Mbps", 8, "78Mbps", 8, "90Mbps", 16, "104Mbps", 8, "117Mbps", 8, "120Mbps", 16, "130Mbps", 8, "135Mbps", 16, "150Mbps", 16, "180Mbps", 16, "240Mbps", 16, "270Mbps", 16, "300Mbps", 16, 0, 0); |
|
|
var rateTable_450M = new Array("1Mbps", 5, "2Mbps", 5, "5.5Mbps", 1, "6Mbps", 6, "9Mbps", 6, "11Mbps", 1, "12Mbps", 6, "18Mbps", 6, "19.5Mbps", 8, "21.7Mbps", 8, "24Mbps", 6, "36Mbps", 6, "39Mbps", 8, "40.5Mbps", 16, "43.3Mbps", 8, "45Mbps", 16, "48Mbps", 6, "54Mbps", 6, "58.5Mbps", 8, "65Mbps", 8, "78Mbps", 8, "81Mbps", 16, "86.7Mbps", 8, "90Mbps", 16, "117Mbps", 8, "121.5Mbps", 16, "130Mbps", 8, "135Mbps", 16, "156Mbps", 8, "162Mbps", 16, "173.3Mbps", 8, "175.5Mbps", 8, "180Mbps", 16, "195Mbps", 8, "216.7Mbps", 8, "243Mbps", 16, "270Mbps", 16, "324Mbps", 16, "360Mbps", 16, "364.5Mbps", 16, "405Mbps", 16, "450Mbps", 16, 0, 0); |
|
|
var operModeNum = 9; |
|
|
var minOperMode = 0; |
|
|
var maxOperMode = operModeNum; |
|
|
var operModeList = new Array(0, 1, "Точка доÑтупа", 1, 1, "Multi-SSID", 2, 0, "Multi-Bss Plus VLAN", 3, 1, "Client", 4, 1, "УÑилитель Ñигнала", 5, 1, "УÑилитель Ñигнала", 6, 1, "Bridge with AP", 7, 0, "Bridge with AP", 8, 0, "Debug"); |
|
|
|
|
|
function getOperModeName(a) { |
|
|
if (a < minOperMode || a > maxOperMode) { |
|
|
return null |
|
|
} |
|
|
if (operModeList[a * 3 + 1] == 0) { |
|
|
return null |
|
|
} else { |
|
|
return operModeList[a * 3 + 2] |
|
|
} |
|
|
} |
|
|
|
|
|
function operModeEnable(a) { |
|
|
if (a < minOperMode || a > maxOperMode) { |
|
|
return null |
|
|
} |
|
|
if (operModeList[a * 3 + 1] == 0) { |
|
|
return false |
|
|
} else { |
|
|
return true |
|
|
} |
|
|
} |
|
|
|
|
|
function getOperModeValue(a) { |
|
|
if (a < minOperMode || a > maxOperMode) { |
|
|
return null |
|
|
} |
|
|
if (operModeList[a * 3 + 1] == 0) { |
|
|
return null |
|
|
} else { |
|
|
return operModeList[a * 3] |
|
|
} |
|
|
} |
|
|
|
|
|
function getOperModeIdxByValue(b) { |
|
|
for (var a = 0; a < operModeNum; a++) { |
|
|
if (operModeList[a * 3] == b) { |
|
|
return a |
|
|
} |
|
|
} |
|
|
return null |
|
|
} |
|
|
|
|
|
function disableTag(g, a, d) { |
|
|
try { |
|
|
var b = g.getElementsByTagName(a) |
|
|
} catch (f) { |
|
|
return |
|
|
} |
|
|
if (d == undefined) { |
|
|
for (var c = 0; c < b.length; c++) { |
|
|
b[c].disabled = true |
|
|
} |
|
|
} else { |
|
|
for (var c = 0; c < b.length; c++) { |
|
|
if (b[c].type == d) { |
|
|
b[c].disabled = true |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
var str_pages = parent.pages_js; |
|
|
var str_main = parent.str_main; |
|
|
|
|
|
function setTagStr(g, d) { |
|
|
var f, a; |
|
|
var c, h; |
|
|
var b; |
|
|
if ((undefined == str_pages) || (undefined == str_main)) { |
|
|
return |
|
|
} |
|
|
if ((undefined == g) || (undefined == d)) { |
|
|
return |
|
|
} |
|
|
for (tag in str_pages[d]) { |
|
|
try { |
|
|
if (!window.ActiveXObject) { |
|
|
b = g.getElementsByName(tag); |
|
|
if (b.length > 0) { |
|
|
for (c = 0; c < b.length; c++) { |
|
|
b[c].innerHTML = str_pages[d][tag] |
|
|
} |
|
|
} else { |
|
|
g.getElementById(tag).innerHTML = str_pages[d][tag] |
|
|
} |
|
|
} else { |
|
|
b = g.all[tag]; |
|
|
if (undefined != b.length && b.length > 0) { |
|
|
for (c = 0; c < b.length; c++) { |
|
|
b[c].innerHTML = str_pages[d][tag] |
|
|
} |
|
|
} else { |
|
|
b.innerHTML = str_pages[d][tag] |
|
|
} |
|
|
} |
|
|
} catch (f) { |
|
|
continue |
|
|
} |
|
|
} |
|
|
for (btn in str_main.btn) { |
|
|
try { |
|
|
if (!window.ActiveXObject) { |
|
|
b = g.getElementsByName(btn); |
|
|
if (b.length > 0) { |
|
|
for (c = 0; c < b.length; c++) { |
|
|
b[c].value = str_main.btn[btn] |
|
|
} |
|
|
} else { |
|
|
g.getElementById(btn).value = str_main.btn[btn] |
|
|
} |
|
|
} else { |
|
|
b = g.all[btn]; |
|
|
if (undefined != b.length && b.length > 0) { |
|
|
for (c = 0; c < b.length; c++) { |
|
|
b[c].value = str_main.btn[btn] |
|
|
} |
|
|
} else { |
|
|
b.value = str_main.btn[btn] |
|
|
} |
|
|
} |
|
|
} catch (f) { |
|
|
continue |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
function GetMinWidth() { |
|
|
var a = Math.ceil((window.screen.width - 182) * 0.55) - 6; |
|
|
return a |
|
|
} |
|
|
|
|
|
function LoadHelp(a) { |
|
|
if (window.parent != window) { |
|
|
if (window.parent.topFrame.hl != a) { |
|
|
window.parent.topFrame.hl = a; |
|
|
window.parent.helpFrame.location.href = "/help/" + a |
|
|
} |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function resize(b) { |
|
|
var a = GetMinWidth(); |
|
|
if (window.document.body.offsetWidth > a) { |
|
|
b.document.getElementById("autoWidth").style.width = "100%" |
|
|
} else { |
|
|
b.document.getElementById("autoWidth").style.width = a |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function resizeHelp(a) { |
|
|
if (window.document.body.offsetWidth > 290) { |
|
|
a.document.getElementById("autoWidth").style.width = "100%" |
|
|
} else { |
|
|
a.document.getElementById("autoWidth").style.width = 290 |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function elementDisplay(d, a, b) { |
|
|
try { |
|
|
if (!window.ActiveXObject) { |
|
|
items = d.getElementsByName(a); |
|
|
if (items.length > 0) { |
|
|
for (i = 0; i < items.length; i++) { |
|
|
items[i].style.display = b |
|
|
} |
|
|
} else { |
|
|
d.getElementById(a).style.display = b |
|
|
} |
|
|
} else { |
|
|
items = d.all[a]; |
|
|
if (undefined != items.length && items.length > 0) { |
|
|
for (i = 0; i < items.length; i++) { |
|
|
items[i].style.display = b |
|
|
} |
|
|
} |
|
|
} |
|
|
} catch (c) { |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
function enableTag(g, a, d) { |
|
|
try { |
|
|
var b = g.getElementsByTagName(a) |
|
|
} catch (f) { |
|
|
return |
|
|
} |
|
|
if (d == undefined) { |
|
|
for (var c = 0; c < b.length; c++) { |
|
|
b[c].disabled = false |
|
|
} |
|
|
} else { |
|
|
for (var c = 0; c < b.length; c++) { |
|
|
if (b[c].type == d) { |
|
|
b[c].disabled = false |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
function LoadNext(a) { |
|
|
if (window.parent != window) { |
|
|
window.parent.mainFrame.location.href = a |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function lastipverify(e, a, f) { |
|
|
var h; |
|
|
var g = 0; |
|
|
var d = "0123456789"; |
|
|
if (e.length == 0) { |
|
|
return false |
|
|
} |
|
|
for (var b = 0; b < e.length; b++) { |
|
|
h = e.charAt(b); |
|
|
if (d.indexOf(h) == -1) { |
|
|
return false |
|
|
} |
|
|
} |
|
|
if (parseInt(e, 10) < a || parseInt(e, 10) > f) { |
|
|
return false |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function is_lastip(b, a, c) { |
|
|
if (b.length == 0) { |
|
|
alert(str_pages.ntw_common_js.js_input_ip); |
|
|
return false |
|
|
} |
|
|
if (!lastipverify(b, a, c)) { |
|
|
alert(str_pages.ntw_common_js.js_bad_ip); |
|
|
return false |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function maskipverify(b) { |
|
|
var h; |
|
|
var g = 0; |
|
|
var d = ".0123456789"; |
|
|
if (b.length < 7 || b.length > 15) { |
|
|
return false |
|
|
} |
|
|
for (var a = 0; a < b.length; a++) { |
|
|
h = b.charAt(a); |
|
|
if (d.indexOf(h) == -1) { |
|
|
return false |
|
|
} else { |
|
|
if (h == ".") { |
|
|
if (b.charAt(a + 1) != ".") { |
|
|
g++ |
|
|
} else { |
|
|
return false |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
if (g != 3) { |
|
|
return false |
|
|
} |
|
|
if (b.indexOf(".") == 0 || b.lastIndexOf(".") == (b.length - 1)) { |
|
|
return false |
|
|
} |
|
|
szarray = [0, 0, 0, 0]; |
|
|
var f; |
|
|
var a; |
|
|
for (a = 0; a < 3; a++) { |
|
|
var g = b.indexOf("."); |
|
|
szarray[a] = b.substring(0, g); |
|
|
f = b.substring(g + 1); |
|
|
b = f |
|
|
} |
|
|
szarray[3] = b; |
|
|
var e = { |
|
|
128: 1, |
|
|
192: 1, |
|
|
224: 1, |
|
|
240: 1, |
|
|
248: 1, |
|
|
252: 1, |
|
|
254: 1, |
|
|
255: 1, |
|
|
0: 1 |
|
|
}; |
|
|
for (a = 0; a < 4; a++) { |
|
|
if (!(szarray[a] in e)) { |
|
|
return false |
|
|
} |
|
|
} |
|
|
if ((szarray[0] == 0) || (szarray[0] != 255 && szarray[1] != 0) || (szarray[1] != 255 && szarray[2] != 0) || (szarray[2] != 255 && szarray[3] != 0)) { |
|
|
return false |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function ipverify(b) { |
|
|
var g; |
|
|
var f = 0; |
|
|
var d = ".0123456789"; |
|
|
if (b.charAt(0) == "0") { |
|
|
return false |
|
|
} |
|
|
if (b.length < 7 || b.length > 15) { |
|
|
return false |
|
|
} |
|
|
for (var a = 0; a < b.length; a++) { |
|
|
g = b.charAt(a); |
|
|
if (d.indexOf(g) == -1) { |
|
|
return false |
|
|
} else { |
|
|
if (g == ".") { |
|
|
if (b.charAt(a + 1) != ".") { |
|
|
f++ |
|
|
} else { |
|
|
return false |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
if (f != 3) { |
|
|
return false |
|
|
} |
|
|
if (b.indexOf(".") == 0 || b.lastIndexOf(".") == (b.length - 1)) { |
|
|
return false |
|
|
} |
|
|
szarray = [0, 0, 0, 0]; |
|
|
var e; |
|
|
var a; |
|
|
for (a = 0; a < 3; a++) { |
|
|
var f = b.indexOf("."); |
|
|
szarray[a] = b.substring(0, f); |
|
|
e = b.substring(f + 1); |
|
|
b = e |
|
|
} |
|
|
szarray[3] = e; |
|
|
for (a = 0; a < 4; a++) { |
|
|
if (szarray[a] < 0 || szarray[a] > 255) { |
|
|
return false |
|
|
} |
|
|
} |
|
|
if (szarray[0] == 127) { |
|
|
return false |
|
|
} |
|
|
if (szarray[0] >= 224 && szarray[0] <= 239) { |
|
|
return false |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function is_ipaddr(a) { |
|
|
if (a.length == 0) { |
|
|
alert(str_pages.ntw_common_js.js_input_ip_2); |
|
|
return false |
|
|
} |
|
|
if (!ipverify(a)) { |
|
|
alert(str_pages.ntw_common_js.js_bad_ip_2); |
|
|
return false |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function is_gatewayaddr(a) { |
|
|
if (a.length == 0) { |
|
|
alert(str_pages.ntw_common_js.js_input_gateway); |
|
|
return false |
|
|
} |
|
|
if (!ipverify(a)) { |
|
|
alert(str_pages.ntw_common_js.js_bad_gateway); |
|
|
return false |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function is_dnsaddr(a) { |
|
|
if (a.length == 0) { |
|
|
alert(str_pages.ntw_common_js.js_input_dns); |
|
|
return false |
|
|
} |
|
|
if (maskipverify(a)) { |
|
|
alert(str_pages.ntw_common_js.js_bad_dns); |
|
|
return false |
|
|
} |
|
|
if (!ipverify(a)) { |
|
|
alert(str_pages.ntw_common_js.js_bad_dns); |
|
|
return false |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function is_domain(a) { |
|
|
var e; |
|
|
var d = "-.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; |
|
|
for (var b = 0; b < a.length; b++) { |
|
|
e = a.charAt(b); |
|
|
if (d.indexOf(e) == -1) { |
|
|
alert(str_pages.ntw_common_js.js_illegal_input); |
|
|
return false |
|
|
} |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function is_digit(a) { |
|
|
var e; |
|
|
var d = "0123456789"; |
|
|
for (var b = 0; b < a.length; b++) { |
|
|
e = a.charAt(b); |
|
|
if (e == " " && b == 1) { |
|
|
continue |
|
|
} |
|
|
if (b > 0) { |
|
|
if (a.charAt(b - 1) == " " && e == " ") { |
|
|
continue |
|
|
} |
|
|
if (a.charAt(b - 1) != " " && e == " ") { |
|
|
alert(str_pages.ntw_common_js.js_illegal_input); |
|
|
return false |
|
|
} |
|
|
} |
|
|
if (d.indexOf(e) == -1) { |
|
|
if (e != " ") { |
|
|
alert(str_pages.ntw_common_js.js_illegal_input); |
|
|
return false |
|
|
} |
|
|
} |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function portverify(d) { |
|
|
var e; |
|
|
var b = "0123456789"; |
|
|
if (d.length == 0) { |
|
|
return false |
|
|
} |
|
|
for (var a = 0; a < d.length; a++) { |
|
|
e = d.charAt(a); |
|
|
if (b.indexOf(e) == -1) { |
|
|
return false |
|
|
} |
|
|
} |
|
|
if (parseInt(d, 10) <= 0 || parseInt(d, 10) > 65535) { |
|
|
return false |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function is_port(a) { |
|
|
if (a.length == 0) { |
|
|
alert(str_pages.ntw_common_js.js_input_port); |
|
|
return false |
|
|
} |
|
|
if (!portverify(a)) { |
|
|
alert(str_pages.ntw_common_js.js_bad_port); |
|
|
return false |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function is_number(f, a, e) { |
|
|
var g; |
|
|
var d = "0123456789"; |
|
|
if (f.length == 0) { |
|
|
return false |
|
|
} |
|
|
for (var b = 0; b < f.length; b++) { |
|
|
g = f.charAt(b); |
|
|
if (d.indexOf(g) == -1) { |
|
|
return false |
|
|
} |
|
|
} |
|
|
if (parseInt(f, 10) < a || parseInt(f, 10) > e) { |
|
|
return false |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function is_maskaddr(a) { |
|
|
if (a.length == 0) { |
|
|
alert(str_pages.ntw_common_js.js_input_mask); |
|
|
return false |
|
|
} |
|
|
if (!maskipverify(a)) { |
|
|
alert(str_pages.ntw_common_js.js_bad_mask); |
|
|
return false |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function macverify(b) { |
|
|
var f; |
|
|
var e = "0123456789abcdef"; |
|
|
var d = b.toLowerCase(); |
|
|
if (d == "ff-ff-ff-ff-ff-ff") { |
|
|
alert(str_pages.ntw_common_js.js_broadcast_mac); |
|
|
return false |
|
|
} |
|
|
if (d == "00-00-00-00-00-00") { |
|
|
alert(str_pages.ntw_common_js.js_invalid_mac); |
|
|
return false |
|
|
} |
|
|
if (b.length != 17) { |
|
|
alert(str_pages.ntw_common_js.js_bad_mac_format); |
|
|
return false |
|
|
} |
|
|
for (var a = 0; a < d.length; a++) { |
|
|
f = d.charAt(a); |
|
|
if (a % 3 == 2) { |
|
|
if (f != "-") { |
|
|
alert(str_pages.ntw_common_js.js_bad_mac_format); |
|
|
return false |
|
|
} |
|
|
} else { |
|
|
if (e.indexOf(f) == -1) { |
|
|
alert(str_pages.ntw_common_js.js_invalid_mac); |
|
|
return false |
|
|
} |
|
|
} |
|
|
} |
|
|
f = d.charAt(1); |
|
|
if (e.indexOf(f) % 2 == 1) { |
|
|
alert(str_pages.ntw_common_js.js_multi_mac); |
|
|
return false |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function is_macaddr(a) { |
|
|
if (a.length == 0) { |
|
|
alert(str_pages.ntw_common_js.js_input_mac); |
|
|
return false |
|
|
} |
|
|
if (!macverify(a)) { |
|
|
return false |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function charCompare(f, b) { |
|
|
var g; |
|
|
var a = 0; |
|
|
var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@^-_.><,[]{}?/+=|\\'\":;~!#$%()` & "; |
|
|
if (f.length > b) { |
|
|
return false |
|
|
} |
|
|
for (var d = 0; d < f.length; d++) { |
|
|
g = f.charAt(d); |
|
|
if (e.indexOf(g) == -1) { |
|
|
a += 2 |
|
|
} else { |
|
|
a += 1 |
|
|
} |
|
|
if (a > b) { |
|
|
return false |
|
|
} |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function is_hostname(a, b) { |
|
|
if (!charCompare(a, b)) { |
|
|
alert(str_pages.ntw_common_js.js_input_msg); |
|
|
return false |
|
|
} else { |
|
|
return true |
|
|
} |
|
|
} |
|
|
|
|
|
function is_port_range(a) { |
|
|
if (a < 0 || a > 65535) { |
|
|
alert(str_pages.ntw_common_js.js_bad_port); |
|
|
return false |
|
|
} else { |
|
|
return true |
|
|
} |
|
|
} |
|
|
var tipMsgArray = new Array("Start", "Working Mode", "Internet Access", "WAN / 3G/4G", "WAN Connection Type", "3G/4G", "Wireless operMode", "Dual Band Selection", "Wireless 2.4G", "Wireless 5G", "Wireless", "Network Settings", "Finish"); |
|
|
var startIdx = 0; |
|
|
var sysModeIdx = 1; |
|
|
var netInIdx = 2; |
|
|
var wanOr3gIdx = 3; |
|
|
var wanTypeIdx = 4; |
|
|
var net3gIdx = 5; |
|
|
var wlanModeIdx = 6; |
|
|
var wlanBandIdx = 7; |
|
|
var wlan2gIdx = 8; |
|
|
var wlan5gIdx = 9; |
|
|
var wlanIdx = 10; |
|
|
var wiredIdx = 11; |
|
|
var endIdx = 12; |
|
|
var startStep = 0; |
|
|
var sysModeStep = 1; |
|
|
var netInStep = 2; |
|
|
var wanOr3gStep = 3; |
|
|
var wanTypeStep = 4; |
|
|
var net3gStep = 5; |
|
|
var wlanModeStep = 6; |
|
|
var wlanBandStep = 7; |
|
|
var wlan2gStep = 8; |
|
|
var wlan5gStep = 9; |
|
|
var wlanStep = 10; |
|
|
var netWorkStep = 11; |
|
|
var endStep = 12; |
|
|
var standardRouterMode = 1; |
|
|
var normal3gMode = 2; |
|
|
var apcMode = 4; |
|
|
var apMode = 8; |
|
|
var pure3gMode = 16; |
|
|
var pureApMode = 7; |
|
|
var repeaterMode = 6; |
|
|
var clientMode = 3; |
|
|
var type3gFirst = 0; |
|
|
var type3gOnly = 1; |
|
|
var typeWanFirst = 2; |
|
|
var typeWanOnly = 3; |
|
|
|
|
|
function showTipMsg(j, f, a, h, b, c) { |
|
|
var e = "<B>"; |
|
|
var d = 0; |
|
|
var g = 0; |
|
|
for (d = startIdx; d <= endIdx; d++) { |
|
|
g = 0; |
|
|
switch (d) { |
|
|
case sysModeIdx: |
|
|
if (j != 1) { |
|
|
g = 1 |
|
|
} |
|
|
break; |
|
|
case netInIdx: |
|
|
if (f != normal3gMode) { |
|
|
g = 1 |
|
|
} |
|
|
break; |
|
|
case wanOr3gIdx: |
|
|
if (f != normal3gMode || c > d) { |
|
|
g = 1 |
|
|
} |
|
|
break; |
|
|
case wanTypeIdx: |
|
|
if (f != standardRouterMode && f != normal3gMode && f != apcMode) { |
|
|
g = 1 |
|
|
} |
|
|
if (f == normal3gMode && (c <= netInIdx || a == type3gOnly)) { |
|
|
g = 1 |
|
|
} |
|
|
break; |
|
|
case net3gIdx: |
|
|
if (f != normal3gMode && f != pure3gMode) { |
|
|
g = 1 |
|
|
} |
|
|
if (f == normal3gMode && a == typeWanOnly) { |
|
|
g = 1 |
|
|
} |
|
|
break; |
|
|
case wlanModeIdx: |
|
|
if (f != apMode) { |
|
|
g = 1 |
|
|
} |
|
|
break; |
|
|
case wlanBandIdx: |
|
|
case wlan2gIdx: |
|
|
case wlan5gIdx: |
|
|
if (h != 1) { |
|
|
g = 1 |
|
|
} |
|
|
break; |
|
|
case wlanIdx: |
|
|
if (h == 1) { |
|
|
g = 1 |
|
|
} |
|
|
break; |
|
|
case wiredIdx: |
|
|
if ((f != apMode) && (f != pureApMode) && (f != repeaterMode) && (f != clientMode)) { |
|
|
g = 1 |
|
|
} |
|
|
break; |
|
|
default: |
|
|
break |
|
|
} |
|
|
if (g) { |
|
|
continue |
|
|
} |
|
|
if (d != 0) { |
|
|
e += " >> " |
|
|
} |
|
|
if (c == d) { |
|
|
e += '<span class="STYLE1">' + tipMsgArray[d] + "</span>" |
|
|
} else { |
|
|
e += tipMsgArray[d] |
|
|
} |
|
|
} |
|
|
e += "</B>"; |
|
|
document.getElementById(b).innerHTML = e |
|
|
} |
|
|
|
|
|
function checkIpAddressFormat(a) { |
|
|
var d = 0, |
|
|
b = 0; |
|
|
var e = 0; |
|
|
var c = /[^a-fA-F0-9:]/ig; |
|
|
if (a[a.length - 1] == ":") { |
|
|
return false |
|
|
} |
|
|
if (a.match(c) != null) { |
|
|
return false |
|
|
} |
|
|
if (a.indexOf(":::") != -1) { |
|
|
return false |
|
|
} |
|
|
addrParts = a.split(":"); |
|
|
if (addrParts.length < 3 || addrParts.length > 8) { |
|
|
return false |
|
|
} |
|
|
for (d = 0; d < addrParts.length; d++) { |
|
|
if (addrParts[d].length > 4) { |
|
|
return false |
|
|
} |
|
|
if (addrParts[d] != "") { |
|
|
if (d == 8) { |
|
|
return false |
|
|
} |
|
|
} else { |
|
|
if ((d != 0) && (d != (addrParts.length - 1))) { |
|
|
e += 1 |
|
|
} |
|
|
if (e > 1) { |
|
|
return false |
|
|
} |
|
|
} |
|
|
} |
|
|
if (e == 0) { |
|
|
if (addrParts.length != 8) { |
|
|
return false |
|
|
} |
|
|
} else { |
|
|
if (addrParts.length > 9) { |
|
|
return false |
|
|
} |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function isValidIPv6Prefix(d) { |
|
|
var f; |
|
|
var a; |
|
|
var c = /[^a-fA-F0-9:]/ig; |
|
|
var e = 0; |
|
|
var b = 0; |
|
|
if (d.length == 0) { |
|
|
alert("ÐŸÑ€ÐµÑ„Ð¸ÐºÑ Ð½Ðµ указан, укажите Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ IPv6-адреÑа."); |
|
|
return false |
|
|
} |
|
|
if (d.indexOf(":::") != -1) { |
|
|
alert('"' + d + '" неверный формат префикÑа IPv6-адреÑа, иÑправьте его.'); |
|
|
return false |
|
|
} |
|
|
if (d.match(c) != null) { |
|
|
alert('"' + d + '" Ñодержит недопуÑтимые Ñимволы, пожалуйÑта, иÑправьте.'); |
|
|
return false |
|
|
} |
|
|
if (d.charAt(d.length - 1) != ":" || d.charAt(d.length - 2) != ":") { |
|
|
alert('"' + d + '" неверный формат префикÑа IPv6-адреÑа, иÑправьте его.'); |
|
|
return false |
|
|
} |
|
|
addrParts = d.split("::"); |
|
|
if (addrParts.length >= 3) { |
|
|
alert('"' + d + '" не может Ñодержать более двух Ñимволов "::", иÑправьте.'); |
|
|
return false |
|
|
} |
|
|
addrParts = d.split(":"); |
|
|
if (addrParts.length >= 7 || addrParts.length < 3) { |
|
|
alert('"' + d + '" неверный формат префикÑа IPv6-адреÑа, иÑправьте его.'); |
|
|
return false |
|
|
} |
|
|
if (addrParts[0] == "2002") { |
|
|
alert('ПрефикÑ, начинающийÑÑ Ñ "2002", зарезервирован Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² Ñети 6to4. Проверьте вводимое значение.'); |
|
|
return false |
|
|
} |
|
|
for (b = 0; b < addrParts.length; b++) { |
|
|
if (addrParts[b].length > 4) { |
|
|
alert('"' + d + '" Ñодержит неверный раздел ' + addrParts[b] + ", иÑправьте!."); |
|
|
return false |
|
|
} |
|
|
} |
|
|
e = parseInt(addrParts[0], 16); |
|
|
if (e >> 13 != 1) { |
|
|
alert('"' + d + '" не ÑвлÑетÑÑ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑом IPv6-адреÑа, иÑправьте.'); |
|
|
return false |
|
|
} |
|
|
if (11520 == e || 11776 == e || 12288 == e) { |
|
|
alert('"' + d + '" ÑвлÑетÑÑ Ð·Ð°Ñ€ÐµÐ·ÐµÑ€Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¼ префикÑом публичного IPv6-адреÑа, укажите допуÑтимый адреÑ.'); |
|
|
return false |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function isGlobalUnicastAddressesPrefix(a) { |
|
|
var d; |
|
|
var b; |
|
|
var c = 0; |
|
|
addrParts = a.split(":"); |
|
|
c = parseInt(addrParts[0], 16) >> 13; |
|
|
if (c != 1) { |
|
|
return false |
|
|
} else { |
|
|
return true |
|
|
} |
|
|
} |
|
|
|
|
|
function isValidPart(b) { |
|
|
var a = /[^a-fA-F0-9:]/ig; |
|
|
if (0 == parseInt(b, 16) || 65535 == parseInt(b, 16)) { |
|
|
return false |
|
|
} |
|
|
if (b.match(a) != null) { |
|
|
return false |
|
|
} else { |
|
|
return true |
|
|
} |
|
|
} |
|
|
|
|
|
function isPubIPv6Addr(a) { |
|
|
var e; |
|
|
var b; |
|
|
var c = /[^a-fA-F0-9:]/ig; |
|
|
var d = 0; |
|
|
addrParts = a.split(":"); |
|
|
if (addrParts[0] == "" & addrParts[1] == "") { |
|
|
if (addrParts.length == 2) { |
|
|
return false |
|
|
} |
|
|
if (parseInt(addrParts[2], 16) == 1) { |
|
|
return false |
|
|
} |
|
|
if (parseInt(addrParts[2], 16) == 65535) { |
|
|
return false |
|
|
} |
|
|
} |
|
|
if (addrParts[addrParts.length - 1] == "" && addrParts[addrParts.length - 2] == "") { |
|
|
return false |
|
|
} |
|
|
d = parseInt(addrParts[0], 16); |
|
|
if (d == 256 || d == 512 || d == 1024 || d == 2048 || d == 4096 || (d >= 16384 && d <= 49152) || d == 57344 || d == 61440 || d == 63488 || d == 64512 || d == 65024 || d == 65152 || d == 65216 || d == 65280) { |
|
|
return false |
|
|
} |
|
|
if ((parseInt(addrParts[0], 16) >> 6) == 24320) { |
|
|
return false |
|
|
} |
|
|
if ((parseInt(addrParts[0], 16) >> 6) == 1018) { |
|
|
return false |
|
|
} |
|
|
if ((parseInt(addrParts[0], 16) >> 9) == 126) { |
|
|
return false |
|
|
} |
|
|
if ((parseInt(addrParts[0], 16) >> 8) == 255) { |
|
|
return false |
|
|
} |
|
|
if (parseInt(addrParts[0], 16) == 100 & parseInt(addrParts[1], 16) == 65435 & addrParts[2] == "") { |
|
|
if (addrParts.length <= 5) { |
|
|
return false |
|
|
} |
|
|
} |
|
|
return true |
|
|
} |
|
|
|
|
|
function isReservedIpAddress(a) { |
|
|
var d; |
|
|
var b; |
|
|
var c = 0; |
|
|
addrParts = a.split(":"); |
|
|
c = parseInt(addrParts[0], 16); |
|
|
if (11520 == c || 11776 == c || 12288 == c) { |
|
|
return true |
|
|
} |
|
|
return false |
|
|
} |
|
|
|
|
|
function isUnusedIpAddress(a) { |
|
|
var d; |
|
|
var b; |
|
|
var c = 0; |
|
|
addrParts = a.split(":"); |
|
|
c = parseInt(addrParts[0], 16); |
|
|
return false |
|
|
} |
|
|
|
|
|
function isGlobalIPv6Addr(a) { |
|
|
var b; |
|
|
b = a.split(":"); |
|
|
if (b[0] == "2002") { |
|
|
alert('"' + a + '" ÑвлÑетÑÑ Ð°Ð´Ñ€ÐµÑом Ñ‚ÑƒÐ½Ð½ÐµÐ»Ñ 6to4, его Ð½ÐµÐ»ÑŒÐ·Ñ Ð½Ð°Ñтраивать вручную. Укажите другой адреÑ.'); |
|
|
return false |
|
|
} |
|
|
if (false == checkIpAddressFormat(a)) { |
|
|
alert('"' + a + '" не ÑвлÑетÑÑ Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ñ‹Ð¼ IPv6-адреÑом, укажите допуÑтимый адреÑ.'); |
|
|
return false |
|
|
} else { |
|
|
if (false == isPubIPv6Addr(a)) { |
|
|
alert('"' + a + '" ÑвлÑетÑÑ Ð·Ð°Ñ€ÐµÐ·ÐµÑ€Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¼ публичным IPv6-адреÑом, укажите допуÑтимый адреÑ.'); |
|
|
return false |
|
|
} else { |
|
|
if (false == isGlobalUnicastAddressesPrefix(a)) { |
|
|
alert('"' + a + '" ÑвлÑетÑÑ Ð·Ð°Ñ€ÐµÐ·ÐµÑ€Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¼ публичным IPv6-адреÑом, укажите допуÑтимый адреÑ.'); |
|
|
return false |
|
|
} else { |
|
|
if (true == isReservedIpAddress(a)) { |
|
|
alert('"' + a + '" ÑвлÑетÑÑ Ð·Ð°Ñ€ÐµÐ·ÐµÑ€Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¼ публичным IPv6-адреÑом, укажите допуÑтимый адреÑ.'); |
|
|
return false |
|
|
} else { |
|
|
if (true == isUnusedIpAddress(a)) { |
|
|
alert('"' + a + '" ÑвлÑетÑÑ Ð½ÐµÐ¸Ñпользуемым IPv6-адреÑом, укажите допуÑтимый адреÑ.'); |
|
|
return false |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
return true |
|
|
} |
|
|
var transMatrixHTML = new Array(/&/g, "&", /\\/g, "\", /'/g, "'", /"/g, """, /</g, "<", />/g, ">", / /g, " "); |
|
|
|
|
|
function escapeHtml(c) { |
|
|
var b = c.toString(); |
|
|
for (var a = 0; a < transMatrixHTML.length; a += 2) { |
|
|
b = b.replace(transMatrixHTML[a], transMatrixHTML[a + 1]) |
|
|
} |
|
|
return b |
|
|
}; |