182.52.58.75
{
"scan_id": 1769233337,
"ip": "182.52.58.75",
"is_ipv4": true,
"is_ipv6": false,
"location": {
"network": "182.52.58.0/23",
"postal_code": "16000",
"coordinates": {
"latitude": "14.8682",
"longitude": "100.3776"
},
"geo_point": "14.8682, 100.3776",
"locale_code": "en",
"continent": "Asia",
"country_code": "TH",
"country_name": "Thailand",
"city": "Sing Buri"
},
"location_updated_at": "2026-01-27T00:41:12Z",
"asn": {
"number": "AS23969",
"organization": "TOT Public Company Limited",
"country_code": ""
},
"asn_updated_at": "0001-01-01T00:00:00Z",
"whois": {
"network": "182.52.32.0/19",
"organization": "TOT Public Company Limited",
"descr": "TOT Public Company Limited",
"_encoding": {
"raw": "BASE64"
}
},
"whois_updated_at": "2024-12-09T11:26:54Z",
"tags": [
{
"name": "is_anonymous_proxy",
"pretty_name": "Anonymous Proxy",
"value": false,
"last_updated_at": "2026-01-27T00:41:12Z"
},
{
"name": "is_cdn",
"pretty_name": "CDN",
"value": false,
"last_updated_at": "2026-01-27T04:05:09Z"
},
{
"name": "is_satellite_provider",
"pretty_name": "Satellite Provider",
"value": false,
"last_updated_at": "2026-01-27T00:41:12Z"
}
],
"hostnames": [
{
"name": "node-bij.pool-182-52.dynamic.nt-isp.net",
"last_updated_at": "2026-01-27T04:05:09Z"
}
],
"services": [
{
"port": 443,
"protocol": "tcp",
"name": "https",
"version": "",
"product": "",
"extra_info": "",
"tunnel": "ssl",
"modules": {
"http": {
"body": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<META HTTP-EQUIV=\"pragma\" CONTENT=\"no-cache\">\n<META HTTP-EQUIV=\"Cache-Control\" CONTENT=\"no-cache, must-revalidate\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>F680</title>\n<LINK REL=\"stylesheet\" HREF='skin/priorgreen/css/login.css' TYPE=\"text/css\" />\n<LINK REL=\"stylesheet\" HREF=\"css/styleen.css\" TYPE=\"text/css\" />\n<script src=\"js/common.js\"></script>\n<script src=\"js/sha256.min.js\" type=\"text/javascript\"></script>\n\n<script>\n\nfunction getObj(id)\n{\nreturn(document.getElementById(id));\n}\nfunction jslSetValue(dst, src, action)\n{\nvar src_o = getObj(src);\nvar dst_o = getObj(dst);\nif(src_o == null || dst_o == null )\nreturn;\ndst_o.value= String(src_o.value);\nswitch (action)\n{\ncase \"GET\":\nif (dst_o.setAttribute)\n{\ndst_o.setAttribute(\"_initValue\", dst_o.value)\n}\nbreak;\ncase \"SET\":\nif (src_o.getAttribute)\n{\nvar initValue = src_o.getAttribute(\"_initValue\");\nif (initValue == src_o.value)\n{\ndst_o.value = \"NULL\";\n}\n}\nbreak;\ndefault:\nbreak;\n}\n}\nfunction setValue(id,value)\n{\nif(getObj(id) != null)\n{\ngetObj(id).value = value;\n}\n}\nfunction Transfer_meaning(id,value)\n{\ngetObj(id).value = value;\n}\nfunction getValue(id)\n{\nreturn(getObj(id).value);\n}\nfunction setHTML(id, html)\n{\ngetObj(id).innerHTML = html;\n}\nfunction getHTML(id)\n{\nreturn (getObj(id).innerHTML);\n}\nfunction getDisabled(id)\n{\nreturn(getObj(id).disabled);\n}\nfunction getDisplay(id)\n{\nif(getObj(id) != null)\n{\nif(getObj(id).style.display == \"none\")\nreturn false;\nelse\nreturn true;\n}\nelse\nreturn false;\n}\nfunction getChecked(id)\n{\nreturn(getObj(id).checked);\n}\nfunction setChecked(id,value)\n{\nif(getObj(id) != null)\n{\ngetObj(id).checked = value;\n}\n}\nfunction jslDiDisplay(id)\n{\nvar i = 0;\nvar num = arguments.length;\nfor(;i < num; i++)\n{\nif(getObj(arguments[i]) != null)\ngetObj(arguments[i]).style.display = \"none\";\n}\n}\nfunction jslEnDisplay(id)\n{\nvar i = 0;\nvar num=arguments.length;\nfor(;i < num; i++)\n{\nif(getObj(arguments[i]) != null)\ngetObj(arguments[i]).style.display = \"\";\n}\n}\nfunction jslDisable(id)\n{\nvar i = 0;\nvar num = arguments.length;\nfor(;i < num; i++)\n{\nif(getObj(arguments[i]) != null)\n{\ngetObj(arguments[i]).disabled = true;\n}\n}\n}\nfunction jslEnable(id)\n{\nvar i = 0;\nvar num=arguments.length;\nfor(;i < num; i++)\n{\nif(getObj(arguments[i]) != null)\n{\ngetObj(arguments[i]).disabled=false;\n}\n}\n}\nfunction HiddenParaInit(arr)\n{\nvar num = arguments.length;\nfor(var i=0; i<num; i++)\n{\nvar leng = arguments[i].length;\nfor(var j=0; j<leng; j++)\n{\nsetValue(arguments[i][j], \"NULL\");\n}\n}\n}\nfunction HiddenMultiInstParaInit(arr, index)\n{\nvar leng = arr.length;\nfor(var i=0; i<leng; i++)\n{\nsetValue(arr[i]+index, \"NULL\");\n}\n}\nfunction ChangeTagStatus(names)\n{\nvar leng = arguments.length;\nvar arrs, leng1, result;\nfor(var i = 0; i < leng-1; i++)\n{\nvar arrs = document.getElementsByTagName(arguments[i]);\nleng1 = arrs.length;\nfor (var j = 0; j < leng1; j++)\n{\nif (\"hidden\" != arrs[j].type && \"file\" != arrs[j].type )\n{\narrs[j].disabled = arguments[leng-1];\n}\n}\n}\n}\nfunction DisableALL()\n{\nChangeTagStatus('input', 'select', true);\n}\nfunction EnableALL()\n{\nChangeTagStatus('input', 'select', false);\n}\nfunction jslViewToPostCheckBox(PostId, ViewId)\n{\nvar value = 0;\nif(getObj(PostId) != null && getObj(ViewId) != null )\n{\nif (getChecked(ViewId))\n{\nvalue = \"1\";\n}\nsetValue(PostId,value);\n}\n}\nfunction jslPostToViewCheckBox(ViewId, PostId)\n{\nvar value = false;\nif(getObj(PostId) != null && getObj(ViewId) != null )\n{\nif (getValue(PostId) == \"1\")\n{\nvalue = true;\n}\nsetChecked(ViewId, value);\n}\n}\nfunction jslGetRadioValue(radioObject)\n{\nif (radioObject)\n{\nif (radioObject.length)\n{\nfor (var i = 0; i < radioObject.length; i++)\n{\nif (radioObject[i].checked)\n{\nreturn radioObject[i].value;\n}\n}\n}\nelse if (radioObject.checked)\n{\nreturn radioObject.value;\n}\n}\nreturn -1;\n}\nfunction jslSetRadioValue(radioObject, value)\n{\nif(radioObject)\n{\nif(radioObject.length)\n{\nfor(var i=0;i<radioObject.length; i++)\n{\nif(radioObject[i].value == value)\n{\nradioObject[i].checked = true;\nreturn true;\n}\n}\n}\nelse if (radioObject.value == value)\n{\nradioObject.checked = true;\n}\n}\nreturn false;\n}\nfunction jslDoShowComboBox(viewid,postid)\n{\nvar i = 0;\nvar selector = getObj(viewid);\nvar value=getObj(postid).value;\nif(selector==null) return;\nfor(; i < selector.length; i++)\n{\nif(selector.options[i].value == value)\n{\nselector.selectedIndex = i;\nreturn;\n}\n}\nselector.selectedIndex = -1;\n}\nfunction addSelectOption(id, val, txt)\n{\nvar o = getObj(id);\nif (isValInSelect(val, id)==0)\n{\nvar op = document.createElement('option');\nop.text = txt;\nop.value = val;\ntry\n{\no.add(op,null);\n}\ncatch(ex)\n{\no.add(op);\n}\n}\n}\nfunction getOptionIndexByValue(sid, val)\n{\nvar sObj = getObj(sid);\nfor ( var i=0; i<sObj.length; i++ )\n{\nif ( val == sObj.options[i].value )\n{\nreturn i;\n}\n}\nreturn -1;\n}\nfunction deleteSelectOption(id, val)\n{\nvar o = getObj(id);\nvar i = getOptionIndexByValue(id, val);\nif(i > -1)\n{\no.remove(i);\n}\n}\nfunction deleteSelectOptions(selectID, keyWord)\n{\nvar obj = getObj(selectID);\nfor ( var i=0; i<obj.options.length; )\n{\nif ( obj.options[i].value.match(keyWord) != null )\n{\nobj.remove(i);\n}\nelse\n{\ni++;\n}\n}\n}\nfunction clearSelect(id)\n{\nvar o = getObj(id);\nwhile(o.options.length > 0)\n{\no.remove(0);\n}\n}\nfunction isValInSelect(val, sid)\n{\nif(getOptionIndexByValue(sid, val) > -1)\n{\nreturn 1;\n}\nreturn 0;\n}\nfunction setSelOtherValue(obj, value, id)\n{\nvar flag = 0;\nvar mm = \"\";\nif(id == null)\n{\nmm = \"\";\n}\nelse\n{\nmm = getValue(id);\n}\nif ((\"\" == mm) || (\"N/A\" == mm) || (null == mm))\n{\nvar num = obj.length;\nfor (var i = num ;i > 0 ;i-- )\n{\nvar name = obj.options[i-1].value;\nvar text = obj.options[i-1].text;\nobj.options[i] = new Option(text, text);\nobj.options[i].value = name;\n}\nobj.options[0] = new Option(value,value);\nobj.options[0].value = value;\nobj.options[0].text = value;\nflag = 1;\n}\nreturn flag;\n}\nfunction colorizeInfoTbl(id)\n{\nvar objTable = document.getElementById(id);\nvar clasName;\nvar colorFlg = true;\nif(objTable)\n{\nfor(var i = 0; i < objTable.rows.length; i++)\n{\nif(objTable.rows[i].style.display != \"none\")\n{\nif(colorFlg)\n{\nclasName = \"white_1\";\ncolorFlg = false;\n}\nelse\n{\nclasName = \"blue_1\";\ncolorFlg = true;\n}\n}\nobjTable.rows[i].setAttribute(\"class\", clasName);\nobjTable.rows[i].setAttribute(\"className\", clasName);\n}\n}\n}\nfunction RmZero(str)\n{\nwhile(str.indexOf(\"0\") == 0 && str.length > 1)\n{\nstr = str.substr(1);\n}\nreturn str;\n}\nfunction IpRmZero(IpAddrValue)\n{\nvar addrParts = IpAddrValue.split('.');\nvar leng = addrParts.length;\nfor (var i = 0; i < leng; i++)\n{\naddrParts[i]=RmZero(addrParts[i]);\n}\nreturn addrParts.join(\".\");\n}\nfunction ReSetIpRmZero(ID)\n{\nvar num = arguments.length;\nvar re = /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$/;\nvar obj;\nif(num == 0) return;\nfor(i = 0;i < num; i++)\n{\nobj = getObj(arguments[i]);\nif((obj != null && obj.value != \"\" && obj.value != null )&&(re.test(obj.value) == true))\n{\nobj.value = IpRmZero(obj.value);\n}\n}\n}\nfunction ReSetValueRmZero(ID)\n{\nvar num = arguments.length;\nvar obj;\nfor(i = 0;i < num; i++)\n{\nobj = getObj(arguments[i]);\nif(obj != null && obj.value != null && obj.value != \"\")\n{\nobj.value = RmZero(obj.value);\n}\n}\n}\nString.prototype.ReplaceAll = function(value)\n{\nreturn this.replace(/\\s/g,value);\n}\nString.prototype.TrimLR = function()\n{\nreturn this.replace(/(^\\s*)|(\\s*$)/g, \"\");\n}\nString.prototype.LTrim = function()\n{\nreturn this.replace(/(^\\s*)/g, \"\");\n}\nString.prototype.RTrim = function()\n{\nreturn this.replace(/(\\s*$)/g, \"\");\n}\nfunction HtmlShowSpace(value,id)\n{\ngetObj(id).innerHTML = value.ReplaceAll(\" \");\n}\nfunction HtmlInputShowSpace(value,id)\n{\ngetObj(id).value = value.ReplaceAll(\" \");\n}\nfunction trimLSpaces(str){\nreturn str.LTrim();\n}\nfunction trimRSpaces(str){\nreturn str.RTrim();\n}\nfunction trimAllSpaces(str)\n{\nreturn str.ReplaceAll(\"\");\n}\nfunction trimLRSpaces(str)\n{\nreturn str.TrimLR();\n}\nfunction setNULLToSepPort(Port, Val)\n{\nvar portvalue=Port;\nif(portvalue==\"\")\n{\nportvalue = Val;\n}\nreturn portvalue;\n}\nfunction getSepPortToNULL(Port, Val)\n{\nvar portvalue=Port;\nif(portvalue==Val)\n{\nportvalue=\"\";\n}\nreturn portvalue;\n}\nfunction setNULLToPort(Port)\n{\nvar portvalue=Port;\nif(portvalue==\"\")\n{\nportvalue = \"-1\";\n}\nreturn portvalue;\n}\nfunction getPortToNULL(Port)\n{\nvar portvalue=Port;\nif(portvalue==\"-1\")\n{\nportvalue=\"\";\n}\nreturn portvalue;\n}\nfunction setNULLToMAC(MAC)\n{\nvar macaddr=MAC;\nif(macaddr==\"\")\n{\nmacaddr=\"00:00:00:00:00:00\";\n}\nreturn macaddr;\n}\nfunction getMACToNULL(MAC)\n{\nvar macaddr=MAC;\nif(macaddr==\"00:00:00:00:00:00\")\n{\nmacaddr=\"\";\n}\nreturn macaddr;\n}\nfunction setNULLToIP(IP)\n{\nvar ipvalue=IP;\nif(ipvalue==\"\")\n{\nipvalue=\"0.0.0.0\";\n}\nreturn ipvalue;\n}\nfunction getIPToNULL(IP)\n{\nvar ipvalue=IP;\nif(ipvalue==\"0.0.0.0\")\n{\nipvalue=\"\";\n}\nreturn ipvalue;\n}\nfunction setNULLToID(id)\n{\nvar i = 0;\nvar num = arguments.length;\nfor(;i < num; i++)\n{\ngetObj(arguments[i]).value = \"\";\n}\n}\nfunction encode64(input)\n{\nvar keyStr = \"ABCDEFGHIJKLMNOP\" + \"QRSTUVWXYZabcdef\" + \"ghijklmnopqrstuv\" + \"wxyz0123456789+/\" + \"=\";\ninput = escape(input);\nvar outputstr = \"\";\nvar char1, char2, char3 = \"\";\nvar enc1 = \"\";\nvar enc2 = \"\";\nvar enc3 = \"\";\nvar enc4 = \"\";\nvar i = 0;\ndo {\nchar1 = input.charCodeAt(i++);\nchar2 = input.charCodeAt(i++);\nchar3 = input.charCodeAt(i++);\nenc1 = char1 >> 2;\nenc2 = ((char1 & 3) << 4) | (char2 >> 4);\nenc3 = ((char2 & 15) << 2) | (char3 >> 6);\nenc4 = char3 & 63;\nif (isNaN(char2))\n{\nenc3 = enc4 = 64;\n}\nelse if (isNaN(char3))\n{\nenc4 = 64;\n}\noutputstr = outputstr + keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4);\nchar1 = char2 = char3 = \"\";\nenc1 = enc2 = enc3 = enc4 = \"\";\n} while (i < input.length);\nreturn outputstr;\n}\nfunction encode64_noescape(input){\nvar tmpStr = \"ABCDEFGHIJKLMNOP\" + \"QRSTUVWXYZabcdef\" + \"ghijklmnopqrstuv\" + \"wxyz0123456789+/\" + \"=\";\nvar output = \"\";\nvar tmpChrs = new Array();\nvar tmpEncs = new Array();\nvar i = 0, len = input.length;\ndo {\ntmpChrs[0] = input.charCodeAt(i++);\ntmpChrs[1] = input.charCodeAt(i++);\ntmpChrs[2] = input.charCodeAt(i++);\ntmpEncs[0] = tmpChrs[0] >> 2;\ntmpEncs[1] = ((tmpChrs[0] & 3) << 4) | (tmpChrs[1] >> 4);\ntmpEncs[2] = ((tmpChrs[1] & 15) << 2) | (tmpChrs[2] >> 6);\ntmpEncs[3] = tmpChrs[2] & 63;\nif(isNaN(tmpChrs[1])){\ntmpEncs[2] = tmpEncs[3] = 64;\n}else if(isNaN(tmpChrs[2])){\ntmpEncs[3] = 64;\n}\noutput = output +\ntmpStr.charAt(tmpEncs[0]) +\ntmpStr.charAt(tmpEncs[1]) +\ntmpStr.charAt(tmpEncs[2]) +\ntmpStr.charAt(tmpEncs[3]);\n} while (i < len);\nreturn output;\n}\nfunction decode64(inputstr)\n{\nvar outputstr = \"\";\nvar tmpChr = new Array();\nvar tmpEnc = new Array();\nvar i = 0;\nvar base64teststr = /[^A-Za-z0-9\\+\\/\\=]/g;\nvar keyString = \"ABCDEFGHIJKLMNOP\" + \"QRSTUVWXYZabcdef\" + \"ghijklmnopqrstuv\" + \"wxyz0123456789+/\" + \"=\";\nvar len = inputstr.length;\nif (base64teststr.exec(input))\n{\nalert(\"There were invalid base64 characters in the input text.\\n\" + \"Valid base64 characters are A-Z, a-z, 0-9, '+', '/', and '='\\n\" + \"Expect errors in decoding.\");\n}\ninputstr = inputstr.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\ndo {\ntmpEnc[0] = keyString.indexOf(inputstr.charAt(i++));\ntmpEnc[1] = keyString.indexOf(inputstr.charAt(i++));\ntmpEnc[2] = keyString.indexOf(inputstr.charAt(i++));\ntmpEnc[3] = keyString.indexOf(inputstr.charAt(i++));\ntmpChr[0] = (tmpEnc[0] << 2) | (tmpEnc[1] >> 4);\ntmpChr[1] = ((tmpEnc[1] & 15) << 4) | (tmpEnc[2] >> 2);\ntmpChr[2] = ((tmpEnc[2] & 3) << 6) | tmpEnc[3];\noutputstr = outputstr + String.fromCharCode(tmpChr[0]);\nif (tmpEnc[2] != 64)\n{\noutputstr = outputstr + String.fromCharCode(tmpChr[1]);\n}\nif (tmpEnc[3] != 64)\n{\noutputstr = outputstr + String.fromCharCode(tmpChr[2]);\n}\n} while (i < len);\nreturn unescape(outputstr);\n}\nfunction fnBreakWordAll(obj)\n{\nvar obj = obj ? obj : {},\niWord = obj.word ? obj.word : 13,\niRe = obj.re ? obj.re : '[a-zA-Z0-9]',\nbAll = obj.all ? obj.all : false,\nsClassName = obj.className ? obj.className : 'word-break-all',\naEls = obj.els || ( function()\n{\nvar aEls = [],\naAllEls = document.getElementsByTagName( '*' ),\nregStr = '(?:^|\\\\s+)' + sClassName + '(?:\\\\s+|$)',\nre = new RegExp( regStr );\nfor ( var i = 0, iLen = aAllEls.length; i < iLen; ++i )\n{\nif ( re.test( aAllEls[i].className ) )\n{\naEls.push(aAllEls[i]);\n}\n}\nreturn aEls;\n} )() || [],\nfnBreakWord = function( oEl )\n{\n\nif( !oEl || oEl.nodeType !== 1 )\n{\nreturn false;\n}\nelse if( oEl.currentStyle && typeof(oEl.currentStyle.wordWrap) === 'string' )\n{\nbreakWord = function( oEl )\n{\nif (oEl.runtimeStyle)\n{\noEl.runtimeStyle.wordWrap = 'break-word';\n}\nreturn true;\n};\nreturn breakWord( oEl );\n}\nelse if ( document.createTreeWalker )\n{\nvar trim = function ( str )\n{\nstr = str.replace( /^\\s\\s*/, '' );\nvar ws = /\\s/,\ni = str.length;\nwhile ( ws.test( str.charAt( --i ) ) );\nreturn str.slice(0, i + 1);\n};\nbreakWord = function( oEl )\n{\nvar dWalker = document.createTreeWalker( oEl, NodeFilter.SHOW_TEXT, null, false ),\nnode,\nc = String.fromCharCode( '8203' ),\nregStr = '(' + iRe + '{0,' + iWord + '})',\nre = new RegExp( regStr );\nwhile ( dWalker.nextNode() )\n{\nnode = dWalker.currentNode;\nnode.nodeValue = trim( node.nodeValue ).split( re ).join( c );\n}\nreturn true;\n};\nreturn breakWord( oEl );\n}\n};\nvar len = aEls.length;\nfor( var i = 0; i < len; i++ )\n{\nvar sUa = navigator.userAgent,\nsTn = aEls[i].tagName.toLowerCase();\nif ( ( /Firefox/ ).test( sUa ) || ( ( /KHTML/ ).test( sUa ) && ( /Opera/ ).test( sUa ) || ( sTn === 'td' || sTn === 'th') ) || bAll )\n{\nfnBreakWord(aEls[i]);\n}\n}\n}\nfunction getInputtoHtml(id, value)\n{\nreturn (\"<input type=\\\"text\\\" class=\\\"uiNoBorder\\\" value=\\\"\"\n+ HTMLEnCode(value) + \"\\\" id=\\\"\" + id + \"\\\" readonly>\");\n}\nfunction getNameValue(id, value)\n{\nreturn (\"<input type=\\\"text\\\" class=\\\"uiNoBorder\\\" value=\\\"\"\n+ value + \"\\\" id=\\\"\" + id + \"\\\" readonly>\");\n}\nfunction getImage(src, strmethod, id)\n{\nvar imageHTML = \"<input type=\\\"button\\\" id=\\\"\"\n+ id\n+ \"\\\" onclick=\\\"\"\n+ strmethod\n+ \"\\\" class =\\\"multiImg\\\" \"\n+ \"style=\\\"background:url(\" + src + \");\\\">\";\nreturn (imageHTML);\n}\nfunction showIsEnableImage(isEnable, cellId)\n{\nvar strId = \"\";\nif(\"\" != cellId)\n{\nstrId = \"id=\" + cellId;\n}\nif(\"1\" == isEnable)\n{\nreturn (\"<input type=\\\"image\\\" src=\\\"img/enable.gif\\\" style=\\\"cursor:default\\\" \" + strId + \">\");\n}\nelse\n{\nreturn (\"<input type=\\\"image\\\" src=\\\"img/disable.gif\\\" style=\\\"cursor:default\\\" \" + strId + \">\");\n}\n}\nfunction getImagefrmClass(ImgClass, strmethod, id)\n{\nvar imageHTML = \"<input type=\\\"button\\\" id=\\\"\"\n+ id\n+ \"\\\" onclick=\\\"\"\n+ strmethod\n+ \"\\\" class =\\\"\"\n+ ImgClass\n+ \"\\\" >\";\nreturn (imageHTML);\n}\nfunction getXMLHTTPObj()\n{\nvar xmlHttp = null;\ntry\n{\n\nxmlHttp=new XMLHttpRequest();\n}\ncatch (e)\n{\ntry\n{\nxmlHttp=new ActiveXObject(\"Msxml2.XMLHTTP\");\n}\ncatch (e)\n{\ntry\n{\nxmlHttp=new ActiveXObject(\"Microsoft.XMLHTTP\");\n}\ncatch (e){}\n}\n}\nreturn xmlHttp;\n}\nvar xmlHTTPStatus = new Array();\nxmlHTTPStatus['Uninitialized'] = 0;\nxmlHTTPStatus['Open'] = 1;\nxmlHTTPStatus['Sent'] = 2;\nxmlHTTPStatus['Receiving'] = 3;\nxmlHTTPStatus['Loaded'] = 4;\nfunction AJAXObj()\n{\nthis.obj = getXMLHTTPObj();\nthis.postStr = \"\";\nthis.addPostItem = function(name, value)\n{\nthis.postStr += name + \"=\" + value + \"&\";\n};\nthis.post = function(requestURL, responseFunc)\n{\nthis.obj.open(\"POST\", requestURL, true);\nthis.obj.onreadystatechange = responseFunc;\nthis.obj.send(this.postStr);\nthis.postStr = \"\";\n};\nthis.getResponseText = function()\n{\nreturn this.obj.responseText;\n};\nthis.getReadyState = function()\n{\nreturn this.obj.readyState;\n};\nthis.getStatus = function()\n{\nreturn this.obj.status;\n};\n}\nfunction AJAXAsyncObj()\n{\nthis.obj = getXMLHTTPObj();\nthis.postStr = \"\";\nthis.addPostItem = function(name, value)\n{\nthis.postStr += name + \"=\" + value + \"&\";\n};\nthis.post = function(requestURL, responseFunc)\n{\nthis.obj.open(\"POST\", requestURL, false);\nthis.obj.onreadystatechange = responseFunc;\nthis.obj.send(this.postStr);\nthis.postStr = \"\";\n};\nthis.getResponseText = function()\n{\nreturn this.obj.responseText;\n};\nthis.getReadyState = function()\n{\nreturn this.obj.readyState;\n};\nthis.getStatus = function()\n{\nreturn this.obj.status;\n};\n}\nfunction getXMLDoc(xmlStr)\n{\nvar xmlDoc;\ntry\n{\nxmlDoc=new ActiveXObject(\"Microsoft.XMLDOM\");\nxmlDoc.async=\"false\";\nxmlDoc.loadXML(xmlStr);\nreturn(xmlDoc);\n}\ncatch(e)\n{\ntry\n{\nparser=new DOMParser();\nxmlDoc=parser.parseFromString(xmlStr,\"text/xml\");\nreturn(xmlDoc);\n}\ncatch(e)\n{\n}\n}\nreturn(null);\n}\nfunction getAJAXResponseXMLDoc(xmlStr)\n{\nif (xmlStr.match(/^\\s*<ajax_response_xml_root>/m) != null)\n{\nreturn getXMLDoc(xmlStr);\n}\nreturn null;\n}\nfunction XMLDocObj(xmlStr)\n{\nthis.xmlDoc = getAJAXResponseXMLDoc(xmlStr);\nthis.getXMLNodeValue = function(nodeName)\n{\nvar nodeValue = \"\";\ntry\n{\nnodeValue = this.xmlDoc.getElementsByTagName(nodeName)[0].childNodes[0].nodeValue;\n}\ncatch(e)\n{\n}\nreturn nodeValue;\n};\nthis.getXMLNode = function(nodeName)\n{\nreturn this.xmlDoc.getElementsByTagName(nodeName)[0];\n};\nthis.getCMAPIParaValue = function(OBJNAME, instID, paraName)\n{\nvar paraValue = \"\";\nvar instObj = null;\nvar o = this.getXMLNode(OBJNAME);\nvar insts = o.childNodes;\nfor (var i=0; i<insts.length; i++)\n{\nvar attrs = insts[i].childNodes;\nfor (var j=0; j<attrs.length; j++)\n{\nif (attrs[j].nodeName==\"ID\" && instID==attrs[j].childNodes[0].nodeValue)\n{\ninstObj = insts[i];\nbreak;\n}\n}\n}\nif (null != instObj)\n{\nvar attrs = instObj.childNodes;\nfor (var j=0; j<attrs.length; j++)\n{\nif (attrs[j].nodeName == \"Parameters\")\n{\nvar paras = attrs[j].childNodes;\nfor (var k=0; k<paras.length; k++)\n{\nif (paras[k].nodeName == paraName)\n{\ntry\n{\nparaValue = paras[k].childNodes[0].nodeValue;\n}\ncatch(e)\n{\n}\nbreak;\n}\n}\n}\n}\n}\nreturn paraValue;\n};\nthis.getMIIDListArr = function(OBJNAME)\n{\nvar idListArr = new Array();\nvar arrIndex = 0;\nvar o = this.getXMLNode(OBJNAME);\nvar insts = o.childNodes;\nfor (var i=0; i<insts.length; i++)\n{\nvar attrs = insts[i].childNodes;\nfor (var j=0; j<attrs.length; j++)\n{\nif (attrs[j].nodeName==\"ID\")\n{\nidListArr[arrIndex++] = attrs[j].childNodes[0].nodeValue;\n}\n}\n}\nreturn idListArr;\n};\n}\nfunction appendHiddenInput(fid, id, value)\n{\nvar o = getObj(fid);\nif (o != null)\n{\nvar is = o.getElementsByTagName(\"input\"); \nvar il = is.length;\nfor (var i=0; i<il; i++)\n{\nvar sid = is[i].id;\nif ( id == sid )\n{\nis[i].value = value;\nbreak;\n}\n}\nif ( i == il )\n{\nvar i = document.createElement(\"input\");\ni.type = \"hidden\";\ni.id = id;\ni.name = id;\ni.value = value;\no.appendChild(i);\n}\n}\n}\nfunction deleteHiddenInput(fid, id)\n{\nvar o = getObj(fid);\nvar t = getObj(id);\no.removeChild(t);\n}\nfunction clearfSubmit(fid)\n{\nvar o = getObj(fid);\nvar clds = o.childNodes;\nwhile (clds.length > 0)\n{\no.removeChild(clds[0]);\n}\n}\nfunction checkSameInput(fid)\n{\nvar o = getObj(fid);\nif (o != null)\n{\nvar is = o.getElementByTagName(\"input\");\nvar il = is.length;\nfor (var i=0; i<il-1; i++)\n{\nvar sid = is[i].id;\nfor (var j=i+1; j<il; j++)\n{\nif (sid == is[j].id)\n{\nalert(fid+\" has Same Inputs, ID:\"+sid);\n}\n}\n}\n}\n}\nfunction getCookie(c_name)\n{\nif (document.cookie.length>0)\n{\nvar c_start=document.cookie.indexOf(c_name + \"=\");\nif ( -1 != c_start )\n{\nc_start = c_start + c_name.length + 1;\nvar c_end=document.cookie.indexOf(\";\", c_start);\nif ( c_end == -1 )\n{\nc_end=document.cookie.length;\n}\nreturn unescape( document.cookie.substring(c_start, c_end) );\n}\n}\nreturn null;\n}\nfunction setCookie(c_name,value,expiredays)\n{\nvar exdate = new Date();\nexdate.setDate( exdate.getDate() + expiredays );\nvar cookieContent = c_name + \"=\" + escape(value);\nif ( null != expiredays )\n{\ncookieContent += \"; expires=\" + exdate.toGMTString();\n}\ndocument.cookie = cookieContent;\n}\nfunction HTMLEnCode(str)\n{\nstr = str.replace(/&/g, \"&\");\nstr = str.replace(/</g, \"<\");\nstr = str.replace(/>/g, \">\");\nstr = str.replace(/ /g, \" \");\nstr = str.replace(/\\\"/g, \""\");\nreturn str;\n}\nfunction HTMLDeCode(str)\n{\nstr = str.replace(/</g, \"<\");\nstr = str.replace(/>/g, \">\");\nstr = str.replace(/ /g, \" \");\nstr = str.replace(/"/g, \"\\\"\");\nstr = str.replace(/&/g, \"&\");\nreturn str;\n}\nfunction HTMLAddBr(str, wdth)\n{\nvar str1 = \"\";\nfor (var i=0; i<Math.ceil(str.length/wdth); i++)\n{\nstr1 += HTMLEnCode( str.substr(i*wdth, wdth) );\nif ( Math.ceil(str.length/wdth) != i+1 )\n{\nstr1 += \"<br>\";\n}\n}\nreturn str1;\n}\nfunction CheckLen(obj,val)\n{\nif (val.length == obj.maxLength)\n{\nvar curIndex = obj.id.match(/\\d+$/);\nvar nextIndex = parseInt(curIndex, 10)+1;\nvar nextID = obj.id.replace(/\\d+$/,\"\")+nextIndex;\nif (getObj(nextID) == null)\n{\nreturn;\n}\ndocument.getElementById(nextID).focus();\ndocument.getElementById(nextID).select();\n}\nelse if (val.length == 0)\n{\nvar curIndex = obj.id.match(/\\d+$/);\nvar prevIndex = parseInt(curIndex, 10);\nif (prevIndex > 1)\n{\nprevIndex = prevIndex - 1;\n}\nvar prevID = obj.id.replace(/\\d+$/,\"\")+prevIndex;\nif (getObj(prevID) == null)\n{\nreturn;\n}\ndocument.getElementById(prevID).focus();\ndocument.getElementById(prevID).select();\n}\nelse\n{\nreturn;\n}\n}\nfunction jslSparkItem(id)\n{\nfor(var i = 0;i < arguments.length; i++)\n{\nvar para = document.createElement(\"font\");\npara.innerHTML = \" *\";\npara.color = \"red\";\npara.style.verticalAlign = \"middle\";\ngetObj(arguments[i]).parentNode.insertBefore(para, getObj(arguments[i]).nextSibling);\n}\n}\nfunction jslShowPassTip(id,tip)\n{\nif(getObj(\"passTip\") == null)\n{\nvar tipObj = document.createElement(\"div\");\ntipObj.innerHTML = \"<p>\"+tip+\"</p>\";\ntipObj.className = \"staticInfoHint\";\ntipObj.id = \"passTip\";\nvar Node = getObj(id).parentNode;\nvar NodeName;\nwhile(1)\n{\nNodeName = Node.nodeName;\nif(NodeName.toLowerCase() == \"table\")\nbreak;\nNode = Node.parentNode;\n}\nNode.parentNode.insertBefore(tipObj, Node);\n}\nelse\n{\nif(getDisplay(\"passTip\") == false)\njslEnDisplay(\"passTip\");\n}\n}\nfunction createHiddenInput(name,value)\n{\nvar hiddenInput = document.createElement(\"input\");\nhiddenInput.name=name;\nhiddenInput.value=value;\nhiddenInput.type=\"hidden\";\nreturn hiddenInput;\n}\nfunction moveErrLayer(left, top)\n{\ndocument.getElementById(\"myLayer\").style.left = left + \"px\";\ndocument.getElementById(\"myLayer\").style.top = top + \"px\";\n}\nfunction ShowNote(notetitle, msg)\n{\ndocument.getElementById(\"errnote\").innerHTML = notetitle;\ndocument.getElementById(\"errmsg\").innerHTML = msg;\ndocument.getElementById(\"myLayer\").style.visibility = \"visible\" ;\n}\nfunction ShowNoteNew(ctl, notetitle, msg)\n{\ndocument.getElementById(\"errnote\").innerHTML = notetitle;\ndocument.getElementById(\"errmsg\").innerHTML = msg;\ndocument.getElementById(\"myLayer\").style.visibility = \"visible\" ;\nif(ctl != null && ctl.disabled == false)\n{\ntry\n{\nctl.focus();\n}\ncatch(e)\n{\n}\n}\n}\nfunction ShowNoteForCom(frmid, fntid, msg)\n{\nvar fntmsg;\nvar strmsg;\nif(document.getElementById(fntid) == null)\n{\nif(fntid == null)\nfntmsg = \"\";\nelse\nfntmsg = fntid;\n}\nelse\n{\nfntmsg = document.getElementById(fntid).innerHTML;\n}\nstrmsg = fntmsg + msg;\nShowNoteNew(document.getElementById(frmid), \"Note\", strmsg);\n}\nfunction ShowError(ctl, msg)\n{\nvar tmpStr = g_errorInfo;\nif(tmpStr == \"undefined\")\n{\ntmpStr = \"Error\";\n}\ndocument.getElementById(\"errnote\").innerHTML = tmpStr;\ndocument.getElementById(\"errmsg\").innerHTML = msg;\ndocument.getElementById(\"myLayer\").style.visibility = \"visible\" ;\nif(ctl != null && ctl.disabled == false)\n{\ntry\n{\nctl.focus();\n}\ncatch(e)\n{\n}\n}\n}\nfunction ShowErrorForCom(frmid, fntid, msg)\n{\nvar fntmsg;\nvar strmsg;\nif(document.getElementById(fntid) == null)\n{\nif(fntid == null)\nfntmsg = \"\";\nelse\nfntmsg = fntid;\n}else\n{\nfntmsg = document.getElementById(fntid).innerHTML;\n}\nstrmsg = fntmsg + msg;\nShowError(document.getElementById(frmid),strmsg );\n}\nfunction getMsgFormArray(str, arg)\n{\nvar errid = 0;\nvar min = 0;\nvar max = 0;\nvar param = -1;\nvar msg = \"\";\nvar num = arg.length;\nif(num == 1)\n{\nerrid = arg[0];\n}\nelse\nif(num == 3)\n{\nerrid = arg[0];\nmin = arg[1];\nmax = arg[2];\n}\nelse\nif(num == 2)\n{\nerrid = arg[0];\nparam = arg[1];\n}\nelse\nreturn null;\nfor(var i = 0; i < str.length; i ++)\n{\nif(typeof(str[i]) == \"undefined\")\n{\nalert(\"Initializing array error, please check your code��i = \"+ i);\nreturn null;\n}\nif(errid == str[i][0])\n{\nif(min == max && min == 0)\n{\nif(param == -1)\n{\nmsg = str[i][1];\n}\nelse\n{\nmsg = str[i][1] + param + str[i+1][1];\n}\n}\nelse\nmsg = str[i][1] + min + \"~\" + max + str[i+1][1];\nreturn msg;\n}\n}\nreturn null;\n}\nfunction getEvent(event) {\nvar ev = event || window.event;\nif (!ev)\n{\nvar c = this.getEvent.caller;\nwhile (c)\n{\nev = c.arguments[0];\nif (ev &&\n(Event == ev.constructor || MouseEvent == ev.constructor))\n{\nbreak;\n}\nc = c.caller;\n}\n}\nreturn ev;\n}\nfunction setTextFocusEnd()\n{\nvar evt = getEvent();\nif (evt.srcElement)\n{\nvar elm = evt.srcElement;\nvar textRange = elm.createTextRange();\ntextRange.moveStart('character', elm.value.length);\ntextRange.collapse(true);\ntextRange.select();\n}\n}\nfunction getwidth(){\nreturn (document.body.clientWidth+document.body.scrollLeft);\n}\nfunction getheight(){\nreturn (document.body.scrollHeight);\n}\nfunction getleft(w){\nvar bw=document.body.clientWidth;\nw=parseFloat(w);\nreturn (bw/2-w/2+document.body.scrollLeft);\n}\nfunction gettop(h){\nvar bh=document.body.clientHeight;\nh=parseFloat(h);\nreturn 100;\n}\nfunction create_mask()\n{\nvar mask=document.createElement(\"div\");\nmask.id=\"mask\";\nmask.style.position=\"absolute\";\nmask.style.filter=\"progid:DXImageTransform.Microsoft.Alpha(style=4,opacity=25)\";\nmask.style.opacity=0.4;\nmask.style.zIndex=1000;\ndocument.body.appendChild(mask);\nre_mask();\n}\nfunction create_msgbox(w,h,t)\n{\nvar box=document.createElement(\"div\");\nbox.id=\"msgbox\";\nbox.style.position=\"absolute\";\n\nbox.style.width=w+\"px\";\nbox.style.height=h+\"px\";\n\nbox.style.overflow=\"visible\";\nbox.innerHTML=t;\nbox.style.zIndex=1001;\ndocument.body.appendChild(box);\nre_pos();\n}\nfunction re_mask()\n{\nvar mask=document.getElementById(\"mask\");\nif(null==mask)return;\nmask.style.background=\"black\";\nmask.style.top=\"0px\";\nmask.style.left=\"0px\";\nmask.style.width=getwidth()+\"px\";\nmask.style.height=getheight()+\"px\";\n}\nfunction re_pos()\n{\nwindow.document.onkeydown=showKeyDown;\nvar box=document.getElementById(\"msgbox\");\nif(null!=box)\n{\nvar w=box.style.width;\nvar h=box.style.height;\n\nbox.style.left=getleft(w)+\"px\";\n\nbox.style.top=gettop(h)+\"px\";\n}\n}\nfunction remove_msgbox()\n{\nvar mask=document.getElementById(\"mask\");\nvar msgbox=document.getElementById(\"msgbox\");\nif(null==mask&&null==msgbox)\n{\nreturn;\n}\ndocument.body.removeChild(mask);\ndocument.body.removeChild(msgbox);\n}\nfunction msgbox(msgJSONData)\n{\nwindow.parent.scrollTo(0,0);\ncreate_mask();\nvar temp=\"<table id=\\\"Tbl_msgbox\\\" cellpadding=\\\"0\\\" cellspacing=\\\"0\\\" class=\\\"msgtb\\\">\";\ntemp+=\"<tr><td width=\\\"355\\\" height=\\\"22\\\" class=\\\"msgtr1\\\" colspan=2>\"+msgJSONData.title+\"</td></tr>\";\ntemp+=\"<tr><td width=\\\"30\\\" height=\\\"75\\\" class=\\\"msgtr2\\\"> <img src=\\\"img/infomsg.gif\\\"> </td><td width=\\\"325\\\" class=\\\"msgtr2\\\"><font face=\\\"����\\\" size=\\\"2\\\">\"+msgJSONData.content+\"</font></td>\";\ntemp+=\"</tr><tr><td width=\\\"355\\\" height=\\\"22\\\" align=\\\"center\\\" class=\\\"msgtr3\\\" colspan=2><input name=\\\"msgconfirmb\\\" type=\\\"button\\\" class=\\\"msgbutton\\\" id=\\\"msgconfirmb\\\" value=\\\"\" + msgJSONData.confirmLabel + \"\\\" onclick=\\\"remove_msgbox();\"+msgJSONData.confirmCallback+\";\\\">\";\nif(\"yes\"==msgJSONData.cancelDisplay){temp+=\" <input name=\\\"msgcancelb\\\" type=\\\"button\\\" class=\\\"msgbutton\\\" id=\\\"msgcancelb\\\" value=\\\"\" + msgJSONData.cancelLabel + \"\\\" onclick=\\\"remove_msgbox();\\\"></td>\";}\ntemp+=\"</tr><tr><td class=\\\"msgtr4\\\" width=\\\"355\\\" height=\\\"8\\\" colspan=2></td></tr></table>\";\ncreate_msgbox(400,200,temp);\nif(msgJSONData.focusButtun==\"Confirm\")\n{\ndocument.getElementById(\"msgconfirmb\").focus();\n}\nelse\n{\ndocument.getElementById(\"msgcancelb\").focus();\n}\n}\nfunction showKeyDown(e)\n{\ne=(e)?e:window.event;\n\nvar box=document.getElementById(\"msgbox\");\nif(null!=box)\n{\nif(e.keyCode == 37)\n{\ndocument.getElementById(\"msgconfirmb\").focus();\n}\nif(e.keyCode == 39)\n{\ndocument.getElementById(\"msgcancelb\").focus();\n}\n}\n}\nfunction addEvent(element, type, handler)\n{\nif (element.addEventListener)\n{\nelement.addEventListener(type, handler, false);\n}\nelse\n{\nif (!handler.$$guid)\n{\nhandler.$$guid = addEvent.guid++;\n}\nif (!element.events) element.events = {};\nvar handlers = element.events[type];\nif (!handlers)\n{\nhandlers = element.events[type] = {};\nif (element[\"on\" + type]) {\nhandlers[0] = element[\"on\" + type];\n}\n}\nhandlers[handler.$$guid] = handler;\nelement[\"on\" + type] = handleEvent;\n}\n};\naddEvent.guid = 1;\nfunction removeEvent(element, type, handler)\n{\nif (element.removeEventListener) {\nelement.removeEventListener(type, handler, false);\n}\nelse\n{\nif (element.events && element.events[type])\n{\ndelete element.events[type][handler.$$guid];\n}\n}\n};\nfunction handleEvent(event) {\nvar retValue = true;\nevent = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);\nvar handlers = this.events[event.type];\nfor (var i in handlers) {\nthis.$$handleEvent = handlers[i];\nif (this.$$handleEvent(event) === false)\n{\nretValue = false;\n}\n}\nreturn retValue;\n};\nfunction fixEvent(event)\n{\nevent.preventDefault = fixEvent.preventDefault;\nevent.stopPropagation = fixEvent.stopPropagation;\nreturn event;\n};\nfixEvent.preventDefault = function() {\nthis.returnValue = false;\n};\nfixEvent.stopPropagation = function() {\nthis.cancelBubble = true;\n};\n\n\n\nif(top.location != self.location)\n{\ntop.location=self.location;\n}\nvar SetTFlag = 0;\nvar maxtime;\nvar interval;\nvar locktime = 60;\ndocument.onkeydown = keyDownSearch;\n\nlocktime = 60;\n\nfunction keyDownSearch(ev){\nvar ev = ev || window.event;\nvar code = ev.keyCode || ev.which || ev.charCode;\nif (code == 13) {\ndosubmit();\nreturn false;\n}\nreturn true;\n}\nfunction setTime()\n{\nif(window.name>=locktime || window.name<0 || window.name==\"\")\n{\nmaxtime = Math.min(locktime, 0 + locktime - 45317);\n}\nelse\n{\nmaxtime = window.name;\n}\nif(maxtime>=0)\n{\nseconds = maxtime;\ngetObj(\"time\").innerHTML=seconds+\" secs\";\nif (maxtime == 0)\n{\nsetDisable();\nSetTFlag =0;\nwindow.name=\"\";\nif(interval)\n{\nclearInterval(interval);\ninterval = 0;\n}\n}\nelse\n{\n--maxtime;\nSetTFlag = 1;\nwindow.name = maxtime;\n}\n}\n}\nfunction setinner(type)\n{\nif (SetTFlag ==0)\n{\ngetObj(\"myLayer\").style.visibility = type ;\n}\n}\nfunction ChangeLang()\n{\nvar lang = \"English\";\nvar submitForm = document.createElement(\"form\");\nsubmitForm.method = 'post';\nsubmitForm.action = \"\";\ndocument.body.appendChild(submitForm);\n\nvar actionElement = createHiddenInput(\"action\", \"setlang\"),\nlangElement = createHiddenInput(\"_lang\", \"\");\nsubmitForm.appendChild(actionElement);\nsubmitForm.appendChild(langElement);\nlangElement.disabled = false;\ngetObj(\"Frm_Username\").disabled = true;\ngetObj(\"Frm_Password\").disabled = true;\nif(true != getObj(\"TestLang01\").disabled)\n{\nif (\"English\" == lang)\n{\nlangElement.value = \"Chinese\";\n}\nelse if (\"Chinese\" == lang)\n{\nlangElement.value = \"English\";\n}\ngetObj(\"Frm_Username\").disabled = true;\ngetObj(\"Frm_Password\").disabled = true;\ngetObj(\"LoginId\").disabled = true;\nif(getObj(\"Frm_Validatecode\") != null)\n{\ngetObj(\"Frm_Validatecode\").disabled = true;\ngetObj(\"RefreshId\").disabled = true;\n}\nvar ObjAct = getObj(\"DevActive\");\nif(ObjAct != null)\n{\nObjAct.disabled = true;\n}\nsubmitForm.submit();\n}\n}\nfunction SetCookie(name,value)\n{\nvar Days = 30;\nvar exp = new Date();\nexp.setTime(exp.getTime() + Days*24*60*60*1000);\ndocument.cookie = name + \"=\"+ escape (value)\n+ \";expires=\" + exp.toGMTString();\n}\nfunction getCookie(name)\n{\nvar arr = document.cookie.match(new RegExp(\"(^| )\"+name+\"=([^;]*)(;|$)\"));\nif(arr != null)\n{\nreturn unescape(arr[2]);\n}\nreturn null;\n}\nfunction delCookie(name)\n{\nvar exp = new Date();\nexp.setTime(exp.getTime() - 1);\nvar cval = getCookie(name);\nif( cval!=null )\n{\ndocument.cookie= name + \"=\"+cval+\";expires=\"+exp.toGMTString();\n}\n}\nfunction IsBrowserSupportCookie()\n{\nvar support = false;\nSetCookie('cookie_test','1');\nvar cookie_test = getCookie('cookie_test');\nif( '1' == cookie_test)\n{\nsupport = true;\n}\ndelCookie('cookie_test');\nreturn support;\n}\nfunction focusUsername()\n{\nif (getObj(\"Frm_Username\").disabled == false)\n{\ngetObj(\"Frm_Username\").focus();\n}\nif(getObj(\"Frm_Validatecode\") != null)\n{\nvar randnum = MathRand();\ngetObj(\"ImgID\").src = \"/queryImg.gif?\"+randnum;\n}\n}\n</script>\n</head>\n\n<body onload = \"focusUsername();\">\n<div id=\"container\">\n<div id=\"myLayer\" onmousedown=\"setinner('hidden')\">\n<iframe id=\"myiframe\" style=\"position: absolute; width: 179px; height: 88px; border: 1px none #000000; z-index: -1; filter:alpha(opacity=0); -moz-opacity:0\">\n</iframe>\n<div id=\"layer_login_title\">\n<div style=\"position:relative; left:35px; top:8px;\" >\n<font class=\"note\" id=\"errnote\"> Error</font>\n</div>\n</div>\n<div id=\"layer_login_content\">\n<span>\n <font id=\"errmsg\" class=\"notecontent\" ></font><span id=\"time\" style=\"color:red;display:none;\"></span>\n</span>\n</div>\n</div>\n<!--head���ֿ�ʼ-->\n\n<div id=\"head\">\n\n<div class=\"type\"><font id=\"\">F680</font></div>\n<div id=\"banner_tot\"></div>\n</div>\n<!--head���ֽ���-->\n<!--content���ֿ�ʼ-->\n<div id=\"loginArea\">\n<!--���ݿ�ʼ-->\n<div class=\"login_frame\">\n<ul class=\"login_title\">\n<li class=\"login_title_left\"></li>\n<li class=\"login_title_center\">Please login to continue...</li>\n\n<a id=\"TestLang\" style=\"cursor:pointer\" href=\"#\" ><li id=\"TestLang01\" class=\"login_title_centercn\" style=\"\" onclick=\"ChangeLang();\"></li></a>\n\n<li class=\"login_title_right\"></li>\n</ul>\n\n<div class=\"content login_3bb_content\">\n<ul class=\"login_blank\"></ul>\n<ul class=\"login_ul_1\">\n<li class=\"login_li_1\"><span>Username</span></li>\n<li class=\"login_li_2\">\n<input type=\"text\" class=\"username\" name=\"Username\" id=\"Frm_Username\" autocomplete=\"new-password\" >\n</li>\n\n</ul>\n<ul class=\"login_blank\"></ul>\n<ul class=\"login_ul_1\">\n<li class=\"login_li_1\"><span>Password</span></li>\n<li class=\"login_li_2\">\n<input type=\"password\" class=\"password\" name=\"Password\" id=\"Frm_Password\" autocomplete=\"new-password\">\n</li>\n</ul>\n<!-- 3bb������֤�� -->\n<ul class=\"login_blank\"></ul>\n<ul class=\"login_ul_1\">\n<li class=\"login_li_1\"><span>Validate Code</span></li>\n<li class=\"login_li_2\">\n<input type=\"text\" class=\"username\" name=\"Validatecode\" id=\"Frm_Validatecode\" autocomplete=\"new-password\" />\n</li>\n</ul>\n<ul class=\"login_3bb_blank\"></ul>\n<ul class=\"validate_ul_1\">\n<li class=\"validate_left\"></li>\n<li class=\"validate_img\"><img id=\"ImgID\" src=\"\" width=\"100px\" height=\"35px\" alt=\"please wait\" onload=\"imgLoad()\" /></li>\n<li class=\"login_li_3\">\n<input class=\"val_refresh\" type=\"button\" name=\"RefreshId\" id=\"RefreshId\" value=\"Refresh\" onclick=\"validatecodeRefresh();\" disabled=\"true\" />\n</li>\n</ul>\n<ul class=\"login_3bb_blank\"></ul>\n<ul class=\"login_ul_3bb_1\">\n<li class=\"login_li_3bb_1\"><span>Enter the characters(without spaces) shown in the image</span></li>\n</ul>\n<ul class=\"login_blank\"></ul>\n<ul class=\"login_ul_1\">\n<li class=\"login_li_3bb_left\"></li>\n<li class=\"login_li_3bb_3\">\n<input class=\"login\" type=\"submit\" id=\"LoginId\" value=\"Login\" onclick=\"dosubmit()\" />\n</li>\n</ul>\n<ul class=\"login_blank\"></ul>\n</div>\n</div>\n\n<!--���ݽ���-->\n</div>\n<!--bottom���ֿ�ʼ-->\n\n<div style=\"font-family: Arial;font-size: 12px;text-align:center;\">\n©2008-2019 ZTE Corporation. All rights reserved.\n</div>\n\n<div class=\"bottom_line\"></div>\n<div id=\"bottomx\"></div>\n<!--bottom���ֽ���-->\n</div>\n</body>\n</html>\n<script>\n\nvar bBrowserCookieOn = IsBrowserSupportCookie();\nif ( bBrowserCookieOn == false )\n{\ngetObj(\"errmsg\").innerHTML = \"Your browser's cookie functionality is turned off, please turn it on before login.\";\ngetObj(\"myLayer\").style.visibility = \"visible\" ;\n}\nelse\n{\n\nwindow.name=\"\";\n\n}\nfunction getmsg(id)\n{\nvar str = new Array();\nstr[0] = new Array(110, \"Attention!\");\nstr[1] = new Array(116, \"Confirm\");\nstr[2] = new Array(117, \"Cancel\");\nstr[3] = new Array(120, \"The system default password is not modified and it is recommended that you modify your login password for security reasons.\");\nreturn getMsgFormArray(str, arguments);\n}\nfunction SetDisabled()\n{\ngetObj(\"Frm_Username\").disabled = true;\ngetObj(\"Frm_Password\").disabled = true;\nif(getObj(\"Frm_Validatecode\") != null)\n{\ngetObj(\"Frm_Validatecode\").disabled = true;\ngetObj(\"RefreshId\").disabled = true;\n}\ngetObj(\"LoginId\").disabled = true;\nvar ObjAct = getObj(\"TestLang01\");\nif(ObjAct != null)\n{\nObjAct.disabled = true;\n}\ngetObj(\"myLayer\").style.visibility = \"visible\" ;\ngetObj(\"time\").style.display = \"\" ;\ninterval = setInterval(\"setTime()\",1000);\n}\nfunction setDisable()\n{\nif (SetTFlag == 1)\n{\ngetObj(\"Frm_Username\").disabled = false;\ngetObj(\"Frm_Password\").disabled = false;\nif(getObj(\"Frm_Validatecode\") != null)\n{\ngetObj(\"Frm_Validatecode\").disabled = false;\ngetObj(\"RefreshId\").disabled = false;\n}\ngetObj(\"LoginId\").disabled = false;\nvar ObjAct = getObj(\"TestLang01\");\nif(ObjAct != null)\n{\nObjAct.disabled = false;\n}\ngetObj(\"time\").style.display = \"none\";\ngetObj(\"myLayer\").style.visibility = \"hidden\";\n}\n}\nfunction submitPage1()\n{\nvar ajaxObjSuccPage = new AJAXObj();\nvar url = \"ajax_checkpass_gch.gch\";\nfunction setNextpage()\n{\nif ( ajaxObjSuccPage.getReadyState() == 4 && 200 == ajaxObjSuccPage.getStatus())\n{\nvar resultText = ajaxObjSuccPage.getResponseText();\nif(-1 != resultText.indexOf(\"setpage_OK\"))\n{\npageSubmitexpmd5();\n}\n}\n}\najaxObjSuccPage.addPostItem(\"opType\", \"setnextpage\");\najaxObjSuccPage.post(url, setNextpage);\n}\nfunction dosubmit()\n{\nif (getObj(\"Frm_Username\").value == \"\")\n{\ngetObj(\"errmsg\").innerHTML = \"Username cannot be empty.\";\ngetObj(\"myLayer\").style.visibility = \"visible\" ;\nreturn;\n}\nif(getObj(\"Frm_Validatecode\") != null)\n{\nvar vaCode = getObj(\"Frm_Validatecode\").value;\nif(vaCode == \"\")\n{\ngetObj(\"errmsg\").innerHTML = \"Please input the validate code.\";\ngetObj(\"myLayer\").style.visibility = \"visible\";\nreturn;\n}\n}\n\nsubpageSubmit();\n\n}\n\nfunction MathRand()\n{\nvar Num=\"\";\nfor(var i=0;i<6;i++)\n{\nNum+=Math.floor(Math.random()*10);\n}\nreturn Num;\n}\nfunction validatecodeRefresh()\n{\nvar randnum = MathRand();\ngetObj(\"ImgID\").src = \"/queryImg.gif?\"+randnum;\njslDisable(\"RefreshId\");\ngetObj(\"Frm_Validatecode\").value = \"\";\n}\nfunction subpageSubmit()\n{\ngetObj(\"LoginId\").disabled = true;\nvar ObjAct = getObj(\"DevActive\");\nif(ObjAct != null)\n{\nObjAct.disabled = true;\n}\npasswordSHA256();\n}\nfunction pageSubmitexpmd5()\n{\ngetObj(\"LoginId\").disabled = true;\nvar ObjAct = getObj(\"DevActive\");\nif(ObjAct != null)\n{\nObjAct.disabled = true;\n}\ngetObj(\"Frm_Logintoken\").value = \"0\";\ndocument.fLogin.submit();\n}\nfunction imgLoad()\n{\ngetObj(\"RefreshId\").disabled = false;\n}\nfunction passwordSHA256()\n{\nvar after_Password\t= getObj(\"Frm_Password\").value;\nvar before_Password;\nvar pwd_random = Math.round(Math.random()*89999999)+10000000;\nbefore_Password = sha256(after_Password + pwd_random);\nvar submitForm = document.createElement(\"form\");\nsubmitForm.method = 'post';\nsubmitForm.action = \"\";\ndocument.body.appendChild(submitForm);\n\nvar actionElement = createHiddenInput(\"action\", \"login\"),\nnameElement = createHiddenInput(\"Username\", getObj(\"Frm_Username\").value),\npassElement = createHiddenInput(\"Password\", before_Password),\ntokenElement = createHiddenInput(\"Frm_Logintoken\", \"0\"),\nrandnumElement = createHiddenInput(\"UserRandomNum\", pwd_random);\ncheckTokenElement = createHiddenInput(\"Frm_Loginchecktoken\", \"07825311083531447474\");\nsubmitForm.appendChild(actionElement);\nsubmitForm.appendChild(nameElement);\nsubmitForm.appendChild(passElement);\nsubmitForm.appendChild(tokenElement);\nsubmitForm.appendChild(randnumElement);\nsubmitForm.appendChild(checkTokenElement);\nif(getObj(\"Frm_Validatecode\") != null)\n{\nvar validCodeElement = createHiddenInput(\"Validatecode\", getObj(\"Frm_Vali",
"body_murmur": 739648022,
"body_sha256": "e83e33dff6f9930a164a25fd4947f850f385ec9692fa9c8ae60ffcb41b132a1a",
"content_length": 39377,
"headers": {
"accept_ranges": [
"bytes"
],
"cache_control": [
"no-cache,no-store"
],
"content_length": [
"39377"
],
"content_security_policy": [
"default-src 'self' 'unsafe-inline' 'unsafe-eval' data:"
],
"content_type": [
"text/html; charset=utf-8"
],
"pragma": [
"no-cache"
],
"server": [
""
],
"set_cookie": [
"_TESTCOOKIESUPPORT=1; PATH=/; HttpOnly; Secure"
],
"x_content_type_options": [
"nosniff"
],
"x_frame_options": [
"DENY"
],
"x_xss_protection": [
"1; mode=block"
]
},
"protocol": "HTTP/1.1",
"request": {
"headers": {
"accept": [
"*/*"
],
"user_agent": [
"Mozilla/5.0 (compatible; Odin; https://docs.getodin.com/)"
]
},
"method": "GET",
"url": {
"host": "182.52.58.75",
"path": "",
"scheme": "https"
}
},
"status_code": 200,
"title": "F680"
},
"tls": {
"certificate": {
"extensions": {
"basic_constraints": {
"is_ca": true
},
"key_usage": {
"certificate_sign": false,
"content_commitment": false,
"crl_sign": false,
"data_encipherment": false,
"decipher_only": false,
"digital_signature": true,
"encipher_only": false,
"key_agreement": false,
"key_encipherment": true,
"non_repudiation": true
}
},
"fingerprint_md5": "A601C9F7D23FE6BFE93F884C1E1AE804",
"fingerprint_sha1": "DB2CF636B2091612BDDF1E591706D472B6400CBD",
"fingerprint_sha256": "4CAA880F5DB7A65CB4554B8A07D7D178F4BC8076FA18A83A980E805E18998532",
"issuer": {
"common_name": [
"ZTE-ROOT-CA"
],
"country": [
"CN"
],
"email_address": [
"[email protected]"
],
"locality": [
"Shenzhen"
],
"organization": [
"ZTE"
],
"organizational_unit": [
"Wireline Product R&D Institute"
],
"province": [
"GuangDong"
]
},
"issuer_dn": "/C=CN/ST=GuangDong/L=Shenzhen/O=ZTE/OU=Wireline Product R&D Institute/CN=ZTE-ROOT-CA/[email protected]",
"redacted": false,
"revocation": {
"ocsp": {
"reason": "UNKNOWN",
"revoked": false
}
},
"serial_number": "10896366476775576542",
"signature": {
"algorithm": {
"name": "SHA512-RSA",
"oid": "1.2.840.113549.1.1.13"
},
"self_signed": false,
"value": "NzYxNTUyYWEyNTk3MDA0NTZmOTE5ZTlhN2M0MzIwNWQxNjQyZGExOGE3OTI1Njg4YTk2MWYwYWEwZDk0OTU5MmRkODk0MmJlMDJhNDI1YWRmNWM3Mzk0YTBiNDU1ZDVmODRmN2EzZjczN2JkYWM1Yjc4YmQ3YjFlNzY5YTMyY2E1MzJlOTg0NTM1MTIwZmZlYjg3YjY4MmE3OGE4MDFhNmFlOGQzZWVmYjM5NTM4ODRiYjYyZmI1ZDRjMjFmZGQ1OThmMTAzNTAyZGYxYjA2YWUxYmU0ZGQ4NTMzNjk0YjBlZmUyOWJkNjY2YTRlNGZmYjBmNTYxNjYwMDY0MTY5ZThiOTIwZjkwNzUzMmFmMWFmMDhmZDM2ZmQzNWI0ZGNlNDZjYzhkZWRkODk0YjBjNzJhZjBhN2YwODM1ZDQ3NWFiMDc2MTQzNzQ5ZGIwZDU5MTI4MzRjNDNjMGMyYjU2NDg2NWJkMmEyODQ0MzhhZjI5MTgzYTY0OWRlOGE3OGE4ODkwMjY3NzJhM2U0OGE1OGMxZWVjNzBlODAzZjhjYzE0NDFkYjBkNDRjOGE5MzRkM2IwNzMwZTYzOTRhMDAzMGFjOGZkMzcxM2FjNmJlMTRiMWM4MTI1MDdhYWRmM2Y1MDE5NjFjZWNjNzQzYTViMzVjMjQ3ZWYyNzVlMTUyZjk="
},
"subject": {
"common_name": [
"192.168.1.1"
],
"country": [
"CN"
],
"email_address": [
"[email protected]"
],
"locality": [
"Nanjing"
],
"organization": [
"ZTE"
],
"organizational_unit": [
"FN Nanjing Software Development Dept III"
],
"province": [
"JiangSu"
]
},
"subject_alt_name": {
"dns_names": [
"192.168.1.1"
],
"extended_dns_names": []
},
"subject_dn": "/C=CN/ST=JiangSu/L=Nanjing/O=ZTE/OU=FN Nanjing Software Development Dept III/CN=192.168.1.1/[email protected]",
"subject_key_info": {
"_key": "rsa",
"dh": [],
"dsa": [],
"ecdsa": [],
"fingerprint_sha256": "5d1013f24374f498e411193e1b70b757630b27a2b02054e7e9804490673f1327",
"key_algorithm": "RSA",
"rsa": {
"exponent": 65537,
"length": 2048,
"modulus": "MHhiZDA5MDRmYzIwZjJiOGRjMjM0MGRkYzZjNWQzOTlmYWIxZmY3ZDZjMzE1NmI1MmM2ZGU3OTgzNDhkOTgxZWY0N2Y4YmFlOTBjOTNkOTRiMGJjMjZkMWVlZGZiYTU5MTQ3NDMyMWY3M2IyYzdlMjBjZTk4NjU2NTk1OGM3ZDQ3YTk3ZTFiZGUzZDVjNGYwZTY4YTAzZDRjOTZhNjYyODYxNDZmYmZiNzRjMzIxOTM0OTY2NjcwYjZmYWIxMWUxYzlhMzQ0NzU2NTQ0MmYzYTg1MmM2NzRjOWU5YWQ4ODBmMzM5MmVlZDIxMTViMTgwYmE4NmU1MWI1YzA5ZTg1ZTA3MGU5YWI4YjUwZTljZjg3NDYzNjY1YjllN2JlY2JlYThhMmQyNjg2YmRmNDZiMmQwNTVhMmU2MTQwN2Y4OTNiMDViOTIzNWM0NGQ4ZjhlOWQ5MTE5YmNmM2FkMmNmODQ5MTc0NDYzOGU2NjE3ZGM2ZTVmNDIwZTBiNWVjZDg3MjA1MmQ3MDc0ODk2NmI4N2RhOTNiYmMzOTk1YTFmMGE0YmNlYmEzZDgzYzM5ZTQwNDNhNzc4YTE5MjgyOThlYTk5NWEzM2E4N2UyZDJhOTc3ZmZiOWQ1MmM1NDdjMDEzOTk1MTg0OGM2OTVjZTRlNDhlY2I2ZTRhNzQ3NWJjM2YyMw=="
}
},
"tbs_fingerprint": "fdaa9038c1a94220b4aeba2d1b58bcc8b2fa269a50fddef0861afdcc88aef54f",
"validation_level": "OV",
"validity": {
"length_seconds": 473040000,
"not_after": "2031-07-10T01:32:15",
"not_before": "2016-07-13T01:32:15"
},
"version": 2
},
"fingerprint_sha256": "4CAA880F5DB7A65CB4554B8A07D7D178F4BC8076FA18A83A980E805E18998532",
"precert": false,
"raw": "MIID6DCCAtCgAwIBAgIJAJc3q5RGrtPeMA0GCSqGSIb3DQEBDQUAMIGhMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3VhbmdEb25nMREwDwYDVQQHEwhTaGVuemhlbjEMMAoGA1UEChMDWlRFMScwJQYDVQQLDB5XaXJlbGluZSBQcm9kdWN0IFImRCBJbnN0aXR1dGUxFDASBgNVBAMTC1pURS1ST09ULUNBMR4wHAYJKoZIhvcNAQkBFg96YW5lQHp0ZS5jb20uY24wHhcNMTYwNzEzMDEzMjE1WhcNMzEwNzEwMDEzMjE1WjCBqDELMAkGA1UEBhMCQ04xEDAOBgNVBAgTB0ppYW5nU3UxEDAOBgNVBAcTB05hbmppbmcxDDAKBgNVBAoTA1pURTExMC8GA1UECxMoRk4gTmFuamluZyBTb2Z0d2FyZSBEZXZlbG9wbWVudCBEZXB0IElJSTEUMBIGA1UEAxMLMTkyLjE2OC4xLjExHjAcBgkqhkiG9w0BCQEWD3phbmVAenRlLmNvbS5jbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL0JBPwg8rjcI0DdxsXTmfqx/31sMVa1LG3nmDSNmB70f4uukMk9lLC8JtHu37pZFHQyH3Oyx+IM6YZWWVjH1HqX4b3j1cTw5ooD1MlqZihhRvv7dMMhk0lmZwtvqxHhyaNEdWVELzqFLGdMnprYgPM5Lu0hFbGAuoblG1wJ6F4HDpq4tQ6c+HRjZluee+y+qKLSaGvfRrLQVaLmFAf4k7BbkjXETY+OnZEZvPOtLPhJF0RjjmYX3G5fQg4LXs2HIFLXB0iWa4fak7vDmVofCkvOuj2Dw55AQ6d4oZKCmOqZWjOofi0ql3/7nVLFR8ATmVGEjGlc5OSOy25KdHW8PyMCAwEAAaMaMBgwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwDQYJKoZIhvcNAQENBQADggEBAHYVUqollwBFb5GemnxDIF0WQtoYp5JWiKlh8KoNlJWS3YlCvgKkJa31xzlKC0VdX4T3o/c3vaxbeL17HnaaMspTLphFNRIP/rh7aCp4qAGmro0+77OVOIS7YvtdTCH91ZjxA1At8bBq4b5N2FM2lLDv4pvWZqTk/7D1YWYAZBaei5IPkHUyrxrwj9Nv01tNzkbMje3YlLDHKvCn8INdR1qwdhQ3SdsNWRKDTEPAwrVkhlvSooRDivKRg6ZJ3op4qIkCZ3Kj5IpYwe7HDoA/jMFEHbDUTIqTTTsHMOY5SgAwrI/TcTrGvhSxyBJQeq3z9QGWHOzHQ6WzXCR+8nXhUvk=",
"tags": [
"ov",
"trusted"
]
}
},
"url": "https://182.52.58.75/",
"_meta": {
"name": "",
"desc": "",
"category": ""
},
"last_updated_at": "2026-01-29T23:51:14.49Z"
}
],
"services_hash": "46641a464d91921c8b88f7a7720bfa30f53de12aeee5592b597c81823e726b1c",
"last_updated_at": "2026-01-29T23:51:14.49Z",
"banner": [
"http",
"tls"
],
"is_vuln": false
}