whois.handle: VIETTEL-VN
whois.name: Viettel Group
whois.cidrs: 171.224.0.0/11
whois.updated: 2017-11-11T00:00:00.000000
services.protocol: HTTP
services.transport_protocol: TCP
services.scan_time: 2025-07-28T04:46:30.872288
services.banner: HTTP/1.1 302 Moved Temporarily
  Connection: close
  Cache-Control: no-cache,no-store
  Pragma: no-cache
  Content-Length: 793
  Set-Cookie: SID=b7cfaffccc7617e6d4b35edc2e40a7ecffccfccdcadcbf2751beeb6152cda5ef; PATH=/; HttpOnly; SameSite=strict
  Server: 
  Accept-Ranges: bytes
  X-Content-Type-Options: nosniff
  X-XSS-Protection: 1; mode=block
  Content-Security-Policy: frame-ancestors 'self' 
  X-Frame-Options: SAMEORIGIN
  Location: https://171.246.104.29:443/
  Content-Type: text/html; charset=utf-8
  
services.path: /
services.endpoint_type: HTTP
services.scan_time: 2025-07-28T04:46:30.872288
services.uri: http://171.246.104.29/
services.protocol: HTTP/1.1
services.status_reason: Moved Temporarily
services.key: Location
services.headers: https://171.246.104.29:443/
services.key: Server
services.key: Accept-Ranges
services.headers: bytes
services.key: X-Frame-Options
services.headers: SAMEORIGIN
services.key: X-XSS-Protection
services.headers: 1; mode=block
services.key: X-Content-Type-Options
services.headers: nosniff
services.key: Content-Type
services.headers: text/html; charset=utf-8
services.key: Pragma
services.headers: no-cache
services.key: Set-Cookie
services.headers: SID=b7cfaffccc7617e6d4b35edc2e40a7ecffccfccdcadcbf2751beeb6152cda5ef; PATH=/; HttpOnly; SameSite=strict
services.key: Connection
services.headers: close
services.key: Content-Length
services.headers: 793
services.key: Cache-Control
services.headers: no-cache,no-store
services.key: Content-Security-Policy
services.headers: frame-ancestors 'self'
services.html_tags: <title>302 Found</title>
services.body: 
  <html>
  <head>
  <title>302 Found</title>
  </head>
  <body bgcolor="#FFFFFF" text="#000000" link="#2020ff" vlink="#4040cc">
  <h2>302 Found</h2>
  <span>The requested URL is going to be https.</span>
  <div style="display:none">
  <span>Padding so that MSIE deigns to show this error instead of its own canned one.</span>
  <span>Padding so that MSIE deigns to show this error instead of its own canned one.</span>
  <span>Padding so that MSIE deigns to show this error instead of its own canned one.</span>
  <span>Padding so that MSIE deigns to show this error instead of its own canned one.</span>
  <span>Padding so that MSIE deigns to show this error instead of its own canned one.</span>
  <span>Padding so that MSIE deigns to show this error instead of its own canned one.</span>
  </div>
  <hr/>
  </body>
  </html>
  
services.body_hash_sha1: sha1:ad3ce5024ae10e0c3e9bad728627ea2ba837a01e
services.supported_versions: HTTP/1.1
services.protocol: HTTP
services.transport_protocol: TCP
services.scan_time: 2025-07-28T04:49:02.883795
services.banner: HTTP/1.1 200 OK
  Connection: close
  Cache-Control: no-cache,no-store
  Pragma: no-cache
  Content-Length: 156147
  Set-Cookie: SID_HTTPS_=6c5f9897d552430703a8fb3605e3d175800d4361515c3783fd8430fd1b61809c; PATH=/; Secure; HttpOnly; SameSite=strict
  Set-Cookie: _TESTCOOKIESUPPORT_HTTPS_=1; PATH=/; Secure; HttpOnly; SameSite=strict
  Server: 
  Accept-Ranges: bytes
  X-Content-Type-Options: nosniff
  X-XSS-Protection: 1; mode=block
  Content-Security-Policy: frame-ancestors 'self' 
  X-Frame-Options: SAMEORIGIN
  Content-Type: text/html; charset=utf-8
  
services.version_selected: TLSv1_2
services.cipher_selected: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
services.ja4s: t120300_c02f_bec8bdbaef8a
services.version: TLSv1_2
services.ja4s: t120300_c02f_bec8bdbaef8a
services.names: 192.168.1.1
services.issuer_dn: C=CN, ST=JiangSu, L=NanJing, O=ZTE, emailAddress=xiaoming@zte.com
services.country: CN
services.locality: NanJing
services.province: JiangSu
services.organization: ZTE
services.email_address: xiaoming@zte.com
services.subject_dn: C=CN, ST=JiangSu, L=NanJing, O=ZTE, CN=192.168.1.1, emailAddress=xiaoming@zte.com
services.common_name: 192.168.1.1
services.country: CN
services.locality: NanJing
services.province: JiangSu
services.organization: ZTE
services.email_address: xiaoming@zte.com
services.scan_time: 2025-07-24T17:24:51.448425
services.value: crypto-js
services.value: jquery
services.path: /
services.endpoint_type: HTTP
services.scan_time: 2025-07-28T04:49:02.883795
services.uri: https://171.246.104.29/
services.protocol: HTTP/1.1
services.status_reason: OK
services.key: Server
services.key: Accept-Ranges
services.headers: bytes
services.key: X-Frame-Options
services.headers: SAMEORIGIN
services.key: X-XSS-Protection
services.headers: 1; mode=block
services.key: X-Content-Type-Options
services.headers: nosniff
services.key: Content-Type
services.headers: text/html; charset=utf-8
services.key: Pragma
services.headers: no-cache
services.key: Set-Cookie
services.headers: SID_HTTPS_=6c5f9897d552430703a8fb3605e3d175800d4361515c3783fd8430fd1b61809c; PATH=/; Secure; HttpOnly; SameSite=strict _TESTCOOKIESUPPORT_HTTPS_=1; PATH=/; Secure; HttpOnly; SameSite=strict
services.key: Connection
services.headers: close
services.key: Content-Length
services.headers: 156147
services.key: Cache-Control
services.headers: no-cache,no-store
services.key: Content-Security-Policy
services.headers: frame-ancestors 'self'
services.html_tags: <title>&#70;&#54;&#54;&#48;&#49;&#80;</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge">
services.body: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  
  <link rel="shortcut icon" href="/img/favicon_viet.ico" />
  
  <title>&#70;&#54;&#54;&#48;&#49;&#80;</title>
  <style type="text/css">
  ﻿html, body {
  min-height:101%;
  }
  body {
  text-align: center;
  background: #F2F2F2;
  overflow-y: scroll;
  }
  body, input, textarea, select, label, td, th {
  font-size: 12px;
  color: #313131;
  font-family: "Microsoft YaHei",Arial,SimSun,Verdana,Helvetica,Sans-Serif,Geneva;
  }
  body, form, h1, h3, h4, p, ul, ol {
  margin: 0;
  }
  ul, ol {
  padding-left: 0;
  list-style-type: none;
  }
  a img {border: 0;}
  table {
  border-collapse: collapse;
  border-spacing: 0;
  }
  #page_container {
  position: relative;
  width: 960px;
  margin: 0 auto;
  padding: 0 30px 15px 30px;
  text-align: left;
  background: url(../img/site_holder.gif) repeat-y scroll center top;
  }
  #page_header {
  padding-bottom: 20px;
  }
  #banner {
  position: relative;
  width: 100%;
  height: 74px;
  padding-bottom: 5px;
  }
  .languageListShow{
  z-index: 103;
  }
  #mainNavigator {
  width: 100%;
  height: 38px;
  text-align: center;
  margin: 0 auto;
  overflow:hidden;
  background: #737373;
  }
  #page_content {
  position: relative;
  min-height: 510px;
  height: auto !important;
  height: 480px;
  overflow: visible;
  text-align: center;
  }
  #page_footer {
  height: 43px;
  line-height: 43px;
  text-align: left;
  background-color: #F4F4F4;
  margin-top: 15px;
  padding: 0 10px;
  border-top: 1px solid #D7D7D7;
  }
  .logo {
  width: 110px;
  height: 72px;
  float: left;
  background: url(../img/Logo_ZTE.png) no-repeat 5px 30px;
  }
  #banner_switchArea {
  width: 500px;
  height: 25px;
  line-height: 25px;
  position: absolute;
  bottom: 2px;
  right: 0px;
  }
  .timeArea {
  width: 300px;
  height: 25px;
  line-height: 25px;
  position: absolute;
  bottom: 2px;
  left: 140px;
  }
  #banner_switchArea div {
  float: right;
  text-align: center;
  margin: 0 8px;
  }
  #banner_switchArea div.logUser{
  padding: 0px;
  text-align: right;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 180px;
  }
  .clickable {
  cursor: pointer;
  }
  #mainNavigator ul,li {
  margin:0;
  padding:0;
  list-style: none;
  }
  #mainNavigator {
  position: relative;
  }
  #mainNavigator ul {
  position: relative;
  left: 50%;
  float: left;
  }
  #mainNavigator li {
  float: left;
  position: relative;
  right: 50%;
  line-height: 34px;
  }
  #homeLi {
  }
  #mainNavigator a {
  display: block;
  width: 100%;
  height: 100%;
  background: url(../img/nv_middle.gif) repeat-x;
  text-decoration: none;
  }
  #mainNavigator a:link,
  #mainNavigator a:visited {
  color: #FFFFFF;
  }
  #mainNavigator a.SelectMenuItem {
  color: #FFFFFF;
  background: url(../img/nv_s.gif) repeat-x;
  }
  #mn_first, #mn_last {
  height: 100%;
  width: 5px;
  position: absolute;
  }
  #mn_li {
  background: url(../img/nv_middle.gif) repeat-x;
  height: 100%;
  }
  #mn_first {
  background: url(../img/nv_left.gif) no-repeat;
  top: 0px;
  left: 0px;
  }
  #mn_last {
  background: url(../img/nv_right.gif) no-repeat;
  top: 0px;
  right: 0px;
  }
  #slogan {
  width: 200px;
  float: right;
  margin: 0px;
  text-align: right;
  }
  .caption2,
  h1 {
  border-bottom: 1px dotted #313131;
  font-size: 16px;
  font-weight: normal;
  padding-bottom: 8px;
  margin-bottom: 10px;
  }
  input[type="text"],
  input[type="password"],
  input[type="file"],
  textarea,
  select {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  height: 26px;
  *height: 20px;
  padding: 2px;
  margin: 2px 0;
  border: 1px solid;
  border-color: #AAAAAA #CCCCCC #CCCCCC #AAAAAA;
  border-radius: 3px;
  box-shadow: 0 1px 2px #CCCCCC inset;
  }
  .SpecialPassword{
  font-family: text-security-disc;
  }
  select {
  *height: 26px;
  }
  textarea {
  margin: 0;
  width: 100%;
  *width: 99%;
  resize: none;
  height: 180px;
  overflow: auto;
  }
  input[type="text"]:focus,
  input[type="password"]:focus,
  input[type="file"]:focus,
  textarea:focus {
  border-color: #FF8040;
  -webkit-box-shadow: 0 0 3px rgba(255, 128, 64, 0.7);
  -moz-box-shadow: 0 0 3px rgba(255, 128, 64, 0.7);
  box-shadow: 0 0 3px rgba(255, 128, 64, 0.7);
  }
  select:focus {
  border-color: #FF8040;
  }
  input[type="text"]:disabled,
  input[type="password"]:disabled,
  input[type="file"]:disabled,
  textarea:disabled,
  select:disabled {
  color: #898989;
  background-color: #ECE9D8;
  }
  input[type="checkbox"] {
  margin-left: 0;
  margin-top: 9px;
  }
  input[type="radio"] {
  margin-left: 0;
  }
  .Button,
  .button,
  .longBtn ,
  .disableBtn,
  .disableLongBtn,
  .BrowseBtn {
  cursor: pointer;
  height: 28px;
  border: none;
  padding: 0 15px;
  min-width: 100px;
  border-radius: 3px;
  }
  .Button,
  .button,
  .longBtn  {
  background-color: #0099cc;
  background-image: -moz-linear-gradient(top , #34c3f9, #0099cc);
  background-image: -webkit-gradient(linear,0% 0%, 0% 100%, from(#34c3f9), to(#0099cc));
  background-image: -webkit-linear-gradient(top, #34c3f9, #0099cc);
  background-image: -o-linear-gradient(top, #34c3f9, #0099cc);
  background-image: -ms-linear-gradient(top, #34c3f9, #0099cc);
  background-image: linear-gradient(top, #34c3f9, #0099cc);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#34c3f9', endColorstr='#0099cc', GradientType=0);
  color: #fff;
  }
  .Button:hover,
  .button:hover,
  .longBtn:hover,
  .Button:focus,
  .button:focus,
  .longBtn:focus {
  font-weight: bold;
  font-style: oblique;
  }
  .disableBtn,
  .disableLongBtn,
  .BrowseBtn {
  border: 1px solid #878889;
  background-color: #ddd;
  background-image: -moz-linear-gradient(top , #ebebeb 15%, #ddd 45%, #cdcdcd 85%);
  background-image: -webkit-gradient(linear,0% 0%, 0% 100%, from(#ebebeb), to(#cdcdcd),color-stop(45%,#ddd));
  background-image: -webkit-linear-gradient(top, #ebebeb 15%, #ddd 45%, #cdcdcd 85%);
  background-image: -o-linear-gradient(top, #ebebeb 15%, #ddd 45%, #cdcdcd 85%);
  background-image: -ms-linear-gradient(top, #ebebeb, #cdcdcd);
  background-image: linear-gradient(top, #ebebeb, #cdcdcd);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb', endColorstr='#cdcdcd', GradientType=0);
  }
  .BrowseBtn
  {
  color: #000;
  }
  .disableBtn,
  .disableLongBtn {
  cursor: default;
  color: #898989;
  }
  .disableBtn:hover,
  .disableBtn:focus,
  .disableLongBtn:hover,
  .disableLongBtn:focus {
  font-weight: normal;
  font-style: normal;
  }
  .mac {
  width: 23px;
  }
  .ip {
  width: 32px;
  }
  .port {
  width: 67px;
  }
  .w37 {
  width: 37px;
  }
  .w40 {
  width: 40px;
  }
  .w45 {
  width: 45px;
  }
  .w50 {
  width: 50px;
  }
  .w60 {
  width: 60px;
  }
  .w70 {
  width: 70px;
  }
  .w75 {
  width: 75px;
  }
  .w80 {
  width: 80px;
  }
  .w100, .inputShort {
  width: 100px;
  }
  .w120 {
  width: 120px;
  }
  .w130 {
  width: 130px;
  }
  .w140 {
  width: 140px;
  }
  .w150, .inputNorm , .selectNorm {
  width: 150px;
  }
  .w160 {
  width: 160px;
  }
  .w165 {
  width: 165px;
  }
  .w170 {
  width: 170px;
  }
  .w175 {
  width: 175px;
  }
  .w180 {
  width: 180px;
  }
  .w200 {
  width: 200px;
  }
  .w210 {
  width: 210px;
  }
  .w217 {
  width: 217px;
  }
  .w220 {
  width: 220px;
  }
  .w230 {
  width: 230px;
  }
  .w250, .inputNormLong, .selectNormLong {
  width: 250px;
  }
  .w280 {
  width: 280px;
  }
  .w330, .inputLong, .selectLong {
  width: 330px;
  }
  .w400 {
  width: 400px;
  }
  .emColor {
  color: #0099cc;
  }
  .bgColorRow {
  background-color: #F2F2F2;
  }
  .green {
  color:#385401;
  font-weight: bold;
  }
  .red {
  color:#6c0101;
  font-weight: bold;
  }
  .emFont {
  font-weight: bold;
  }
  .ctrlFont,
  .link2More {
  text-decoration: underline;
  cursor: pointer;
  }
  .ctrlFont {
  text-decoration: none;
  }
  .sdRightPos{
  float:right;
  margin-right:10px;
  }
  .disableFont {
  cursor: default;
  text-decoration: none;
  color: #898989;
  }
  .readonlyInputBg {
  background-color: #ECE9D8;
  }
  .alignLeft {
  text-align: left;
  }
  .alignRight {
  text-align: right;
  }
  .alignCenter {
  text-align: center;
  }
  .caption1 {
  font-size: 1.1em;
  font-weight: bold;
  }
  .caption3 {
  font-size: 1em;
  font-weight: bold;
  }
  .statusRow {
  width: 100%;
  height: 24px;
  }
  .statusRow div {
  float: left;
  border: 1px solid #BDBDBD;
  padding: 3px;
  text-align: center;
  overflow: hidden;
  }
  .redFont {
  color: red;
  }
  .instCfgArea {
  margin: 0;
  padding: 0 0 50px 0;
  }
  .buttongroup,
  .unfloatBtnGroup {
  padding: 25px 25px 20px 25px;
  height: 30px;
  }
  .buttongroup input {
  float: right;
  margin-left: 15px;
  }
  .unfloatBtnGroup input {
  margin: 0;
  }
  .radioInput {
  width: auto;
  float: left;
  }
  .submitArea {
  text-align: right;
  padding: 20px 0;
  }
  .externErrorHint,
  .succHint,
  .errorHint,
  .warnHint,
  .infoHint,
  .waitHint {
  margin: 30px 0;
  text-align: left;
  padding: 10px 10px 10px 70px;
  }
  .externErrorHint,
  .errorHint {
  color: #6c0101;
  background: #FFEBE4 url(../img/err_m.png) no-repeat 15px;
  }
  .succHint {
  color: #385401;
  background: #E7FFE4 url(../img/succ_m.png) no-repeat 15px;
  }
  .warnHint {
  color: #443500;
  background: #FFF9E4 url(../img/warn_m.png) no-repeat 15px;
  }
  .infoHint {
  color: #012f4c;
  background: #E4EFFF url(../img/info_m.png) no-repeat 15px;
  }
  .waitHint {
  color: #012f4c;
  background: #E7FFE4 url(../img/waiting_Small.gif) no-repeat 15px;
  }
  .staticInfoHint,
  .staticInfoHintReal {
  display: block;
  background: url(../img/info_s.png) no-repeat 25px 1px;
  margin-bottom: 20px;
  text-align: left;
  padding: 0 25px;
  }
  .staticInfoHintReal {
  background: url(../img/info_s.png) no-repeat 0px 1px;
  padding: 0;
  }
  .staticInfoHint p,
  .staticInfoHintReal p {
  line-height: 18px;
  text-align: justify;
  text-indent: 2em;
  margin-bottom: 5px;
  }
  .sceneTip {
  padding: 0 0 10px 0;
  margin: 0;
  text-align: justify;
  }
  .sceneTipLink {
  padding: 0;
  }
  .sceneTip a,
  .sceneTipLink a,
  .sceneTip_close a {
  color: #0099CC;
  text-decoration: underline;
  cursor: pointer;
  }
  .sceneTip_close a {
  text-decoration: none;
  padding-right: 5px;
  }
  .help_content,
  .sceneTip_container {
  background-color: #EFF8FF;
  padding: 5px 0;
  }
  .help_close,
  .sceneTip_close {
  text-align: right;
  }
  .inlineTip {
  float: left;
  padding-left: 60px;
  line-height: 30px;
  }
  .black_overlay
  {
  position: fixed;
  _position: absolute;
  top: 0%;
  left: 0%;
  width: 100%;
  height: 100%;
  background-color: #A7A7A7;
  z-index: 100;
  -moz-opacity: 0.5;
  -khtml-opacity: 0.5;
  opacity: 0.5;
  filter: alpha(opacity=50);
  }
  .white_content
  {
  display: none;
  width: 365px;
  min-height: 195px;
  height: auto !important;
  height: 195px;
  background:  url(../img/waiting.gif) no-repeat center center;
  z-index: 101;
  overflow: auto;
  position: fixed;
  _position: absolute;
  }
  .white_content_Qos
  {
  display: none;
  width: 775px;
  height: auto !important;
  background: #FFFFFF;
  z-index: 101;
  overflow: auto;
  position: fixed;
  left: 25%;
  top: 80px;
  }
  #confirmLayer {
  border: 8px solid #7D7D7D;
  text-align: left;
  padding: 0 10px;
  background: #FFFFFF;
  }
  #confirmMsg {
  min-height: 32px;
  height: auto !important;
  height: 32px;
  padding: 25px 0;
  background: url("../img/info_m.png") no-repeat 20px 50%;
  }
  #confirmMsg p {
  padding-left: 60px;
  font-size: 1.2em;
  line-height: 24px;
  }
  #waitingImgArea {
  height: 50px;
  padding-bottom: 25px;
  background:  url(../img/waiting_w.gif) no-repeat top center;
  }
  #confirmBtnArea {
  height: 28px;
  border-top: 1px dotted #313131;
  padding: 10px;
  }
  #confirmBtnArea input {
  float: right;
  margin-left: 20px;
  }
  #dynamicTip {
  position: absolute;
  display: none;
  font-size: 11px;
  }
  #dynamicTip div {
  float: left;
  height: 34px;
  padding-top: 5px;
  }
  #dTip_l {
  width: 16px;
  background: url(../img/dTip_l.gif) no-repeat left top;
  }
  #dTip_m {
  padding: 2px 8px 0 5px;
  background: url(../img/dTip_m.gif) repeat-x;
  }
  #dTip_r {
  width: 6px;
  background: url(../img/dTip_r.gif) no-repeat left top;
  }
  div.errorLabelWraper{
  background: url(../img/fail_s.png) no-repeat 5px 6px;
  display:inline-block;
  padding-left: 23px;
  line-height: 30px;
  }
  label.error{
  color: #FF0000;
  }
  .expandArrow {
  background: url(../img/expandArrow.png) no-repeat 0px 8px;
  }
  .collapseArrow {
  background: url(../img/collapseArrow.png) no-repeat 0px 8px;
  }
  .apStatusRow {
  cursor:pointer
  }
  .apConnectting {
  background: url(../img/waiting_Small.gif) no-repeat 0px 8px;
  }
  .qrCodeContainer {
  bottom: 160px;
  position: fixed;
  right: 0;
  z-index: 1;
  }
  @media screen and (max-width: 1100px) {
  .qrCodeContainer {
  display: none;
  }
  }
  .captchaImg {
  vertical-align: middle;
  }
  .bannerswtch {
  color: #0099cc;
  }
  .showLanguage,.languageList{
  width: 60px;
  text-align: center;
  }
  .showLanguage{
  display: inline-block;
  cursor: default;
  text-decoration: none;
  color: #21B5E3;
  }
  .languageList{
  display: none;
  width: 60px;
  text-align: center;
  background-color: #FFFFFF;
  }
  .languageList li:hover{
  background-color: #D3D3D3;
  }
  #commLeft {
  width: 197px;
  margin: 0;
  padding:0;
  float: left;
  background-color: #EEEFF5;
  }
  #commRight {
  min-height:415px;
  height:auto !important;
  height: 415px;
  margin-left: 215px;
  margin-right: 0;
  padding-left: 0px;
  text-align: left;
  }
  #class2MenuItem {
  width: 100%;
  margin: 0px;
  padding: 0px;
  }
  #class2MenuItem li {
  display: block;
  margin: -1px 0 0 0;
  }
  #class2MenuItem a {
  display: block;
  height: 30px;
  line-height: 30px;
  text-align: left;
  text-decoration: none;
  color: #000;
  padding: 0 20px;
  background-color: #fbfbfb;
  border: 1px solid #d0d0d0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  }
  #class2MenuItem a.selectClass2Menu {
  background-color: #eee;
  background-image: -moz-linear-gradient(top , #f7f7f7, #e6e6e6);
  background-image: -webkit-gradient(linear,0% 0%, 0% 100%, from(#f7f7f7), to(#e6e6e6));
  background-image: -webkit-linear-gradient(top, #f7f7f7, #e6e6e6);
  background-image: -o-linear-gradient(top, #f7f7f7, #e6e6e6);
  background-image: -ms-linear-gradient(top, #f7f7f7, #e6e6e6);
  background-image: linear-gradient(top, #f7f7f7, #e6e6e6);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7f7f7', endColorstr='#e6e6e6', GradientType=0);
  color: #0099CC;
  }
  #class3Menu {
  height:30px;
  margin-bottom: 30px;
  border-bottom: 1px solid #0099CC;
  }
  #scrollLeftBtn,
  #scrollRightBtn {
  height: 30px;
  width: 30px;
  float: left;
  }
  .EnableScrollBtn {
  cursor: pointer;
  }
  .scrollRightBtn {
  background: url("../img/collapse_B.png") no-repeat scroll right center;
  }
  .scrollLeftBtn {
  background: url("../img/leftArrow.png") no-repeat scroll left center;
  }
  .scrollRightBtnDisable {
  background: url("../img/rightArrowDisable.png") no-repeat scroll right center;
  cursor: default;
  }
  .scrollLeftBtnDisable {
  background: url("../img/leftArrowDisable.png") no-repeat scroll left center;
  cursor: default;
  }
  #scrollLeftBtn p,
  #scrollRightBtn p {
  height: 30px;
  }
  #class3MenuMainContent {
  width:697px;
  overflow:hidden;
  float:left;
  margin-top: -1px;
  }
  #class3MenuMainContent ul {
  width: 5000px;
  }
  #class3MenuMainContent li {
  float: left;
  list-style: none outside none;
  }
  #class3MenuMainContent ul p {
  text-decoration: none !important;
  height: 30px;
  line-height: 30px;
  padding: 0 30px;
  float: left;
  cursor: pointer;
  }
  .AEleMenu3 {
  color: #313131;
  border: 1px solid #D0D0D0;
  border-bottom: 1px solid #0099CC;
  background-color: #F5F5F5;
  }
  .AEleMenu3Selected {
  color: #0099CC;
  border: 1px solid #0099CC;
  border-bottom: 1px solid #FFFFFF;
  }
  .HeadDIV,
  .fakeHeadDIV  {
  padding-top: 20px;
  }
  .pageIntroduce {
  font-size: 18px;
  }
  .pIntroContent {
  padding: 8px 0;
  }
  .row,
  .rowBox,
  .colorTblRow,
  .segmentRow {
  clear: both;
  }
  .row,
  .rowBox,
  .colorTblRow,
  .outRow,
  .rowWithoutClear {
  min-height: 30px;
  height: auto !important;
  height: 30px;
  padding: 0 25px;
  }
  .rowBox div {
  display: inline-block;
  }
  .rowPaddingClear {
  padding: 0px;
  }
  .outRow  {
  padding: 0;
  margin: 10px 0;
  }
  .selectRow {
  min-height: 80px;
  }
  .segmentRow {
  height: 15px;
  background-color: #F7F7F7;
  }
  .left,
  .right,
  label.cfgLabel {
  float: left;
  line-height: 30px;
  }
  .collapBarWithDataTrans,
  .collapsibleBar {
  padding-left: 25px;
  cursor: pointer;
  background: url(../img/collapse_B.png) no-repeat 0px 30%;
  }
  .collapsibleBarExp {
  background: url(../img/expand_B.png) no-repeat 0px 30%;
  }
  .colorTbl {
  border: 1px solid #D0D0D0;
  line-height: 30px;
  margin-top: 10px;
  overflow: auto;
  }
  .colorRow {
  background: #EFF8FF;
  }
  .colorTblRow,
  .textareaRow {
  padding: 0 25px;
  }
  .colorTblRow span {
  display:inline-block;
  *display:inline;
  *zoom:1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-right: 3px;
  vertical-align: middle;
  *vertical-align: top;
  }
  .titleRow {
  background: #C8E6FE;
  }
  .noDataHint {
  height: 30px;
  line-height: 30px;
  border: 1px solid #D0D0D0;
  padding: 0 5px 0 45px;
  background: #C8E6FE url(../img/info_s.png) no-repeat 23px 50%;
  }
  .formTblWrap {
  border: 1px solid #D0D0D0;
  line-height: 30px;
  background: #F7F7F7;
  margin: -1px 0;
  zoom: 1;
  }
  .formTbl {
  padding: 10px 0 0;
  overflow: auto;
  *overflow: hidden;
  }
  .formTblCtrlBar, .addInstBar {
  height: 30px;
  line-height: 30px;
  border: 1px solid #D0D0D0;
  background: #EEEEEE;
  position: relative;
  }
  .formTblCtrlBar div {
  display: inline;
  }
  .instName, .instNew {
  padding-left: 25px;
  outline: none;
  color: #313131;
  height: 100%;
  cursor: pointer;
  display: block;
  width: 200px;
  }
  .instName {
  background: url(../img/collapse.png) no-repeat 0 50%;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  }
  .instNew {
  background: url(../img/newInst.png) no-repeat 2px 50%;
  }
  .instNameExp {
  background: url(../img/expand.png) no-repeat 0 50%;
  }
  .noHand {
  cursor: default;
  }
  .instSwitch {
  position: absolute;
  left: 300px;
  top: 3px;
  }
  .instDelete,
  .closePopLayer {
  position: absolute;
  right: 20px;
  top: 7px;
  cursor: pointer;
  }
  .closePopLayer {
  top: 10px;
  }
  .clear {
  clear: both;
  overflow:hidden;
  }
  .ExceedWidthEllipsis {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  }
  .divQoSStatisticsCfg {
  padding: 20px;
  text-align: left;
  }
  .picQoSTrans {
  background:  url(../img/uploading.gif) no-repeat;
  }
  .partDivision {
  border-bottom: 1px dotted #313131;
  padding-bottom: 8px;
  margin: 10px 0 30px;
  }
  .emptyRow10 {
  margin: 10px;
  }
  .emptyRow20 {
  margin: 20px;
  }
  .fontSize {
  font-size:15px;
  }
  .DMSPathDiv {
  border: 1px solid #0099CC;
  width: 710px;
  *width: 690px;
  overflow: auto;
  margin: 10px auto;
  padding: 5px;
  }
  .hr0 {
  height:1px;
  border:none;
  border-top:1px solid #D0D0D0;
  }
  .sideShortCut {
  position: fixed;
  width:28px;
  height:50px;
  bottom:105px;
  right:0px;
  _position:absolute;
  _right:auto;
  cursor:pointer;
  z-index: 1000;
  }
  .BackToTop {
  display: block;
  height: 50px;
  width: 28px;
  text-decoration:none;
  background: url(../img/TOP.gif) no-repeat;
  }
  .pinspan {
  color: #313131;
  background: #E7FFE4;
  }
  .pin_remain {
  color: red;
  font-size: 1.1em;
  font-weight: bold;
  }
  ._LuQUID_SelAccessDevice{
  color: #0099CC;
  cursor: pointer;
  text-decoration: none;
  }
  ._LuQUID_AccessDeviceList{
  margin-left:150px;
  height:auto !important;
  min-height: 30px;
  padding: 0 5px 0 0;
  clear: both;
  }
  ._LuQUID_HideAccessDevice{
  color: #0099CC;
  cursor: pointer;
  text-decoration: none;
  }
  ._LuQUID_SelAccessDeviceDmz{
  color: #0099CC;
  cursor: pointer;
  text-decoration: none;
  }
  .AddIconControl{
  cursor: pointer;
  position: relative;
  top: 2px;
  }
  .DelIconControl{
  cursor: pointer;
  position: relative;
  top: 2px;
  }
  .IconControl{
  cursor: pointer;
  position: relative;
  top: 2px;
  }
  @font-face{font-family:'text-security-disc';src:url('../fonts/text-security-disc-compat.eot');src:url('../fonts/text-security-disc-compat.eot?#iefix') format('embedded-opentype'),url('../fonts/text-security-disc-compat.woff2') format('woff2'),url('../fonts/text-security-disc-compat.ttf') format('truetype')}@supports((content-visibility:visible) or selector(:-moz-is-html)) and (not (-webkit-hyphens:none)){@font-face{font-family:'text-security-disc';src:url('../fonts/text-security-disc.woff2') format('woff2'),url('../fonts/text-security-disc-compat.ttf') format('truetype')}}
  #wizard_wrapper {
  margin: 0 auto;
  width: 550px;
  padding: 20px 30px;
  }
  .wizardContainer {
  margin: 0;
  min-height: 275px;
  height: auto !important;
  height: 275px;
  text-align: left;
  padding: 15px;
  border: 1px solid #BFBDBE;
  background-color: #F7F7F7;
  }
  .wizardTitle {
  background: #DFDFDF;
  height: 40px;
  line-height: 40px;
  margin: 0;
  padding: 0 0 0 15px;
  border-left: 1px solid #BFBDBE;
  border-right: 1px solid #BFBDBE;
  border-radius: 5px 5px 0 0;
  overflow: visible;
  }
  div.wizardTitle span.stepDone,
  div.wizardTitle span.stepUndone{
  display: block;
  float: left;
  height: 12px;
  width: 12px;
  margin: 13px 5px;
  font-size: 0px;
  }
  .stepDone {
  border: 1px solid #FFFFFF;
  background: #00D8F3;
  }
  .stepUndone {
  background: #717171;
  border: 1px solid #DFDFDF;
  }
  .wizardClose {
  width: 180px;
  height: 32px;
  margin: 8px 8px;
  float: right;
  }
  #forClose {
  position: absolute;
  top: -999em;
  left: -999em;
  }
  .welcomeHint {
  margin: 15px 0px 6px 0px;
  }
  .wizardIntroP {
  margin: 0px 0px 30px;
  line-height: 24px;
  }
  .wizardSubmitArea {
  padding: 5px;
  height: 24px;
  border: 1px solid #BFBDBE;
  border-top: none;
  background-color: #F7F7F7;
  }
  .wizardBtn {
  float: right;
  margin-right: 15px
  }
  .wizardCloseBtn {
  float: left;
  margin-left: 15px
  }
  #iconArea {
  margin: 20px 0;
  }
  #iconArea td {
  height: 60px;
  width: 60px;
  vertical-align: middle;
  font-weight: bold;
  padding: 0px 10px;
  }
  table.item {
  width:450px;
  margin:auto;
  }
  table.item td.td1{
  width:140px
  vertical-align: middle;
  text-align:center;
  }
  .title_1 {
  background-color:#09C;
  text-align:center;
  height:18px;
  }
  .white {
  background-color:#FFFFFF;
  text-align:center;
  height:25px;
  }
  .statusP p {
  padding: 5px 0px;
  }
  .Over_container {
  background-color: #EEEEEE;
  border: 1px solid #D0D0D0;
  padding: 6px;
  }
  h2 {
  border-bottom: 1px dotted #313131;
  font-size: 6px;
  font-weight: normal;
  padding-bottom: 1px;
  margin: 10px 0 10px
  }
  .logoViet {
  width: 140px;
  height: 72px;
  float: left;
  background: url(../img/Logo_viet.png) no-repeat 5px 20px;
  }
  .logoBitel {
  width: 140px;
  height: 72px;
  float: left;
  background: url(../img/Logo_bitel.png) no-repeat 5px 0px;
  }.logo_IvoryOrange {
  background: url(../img/Logo_IvoryOrange.png) no-repeat 5px 30px;
  }
  .logo_KAMA_Orange {
  width: 300px;
  height: 72px;
  float: left;
  background: url(../img/Logo_OMA.png) no-repeat 5px 15px;
  }
  .color_OMA
  {
  color:#FF6600 !important;
  }.logo_OMA {
  width: 300px;
  height: 72px;
  float: left;
  background: url(../img/Logo_OMA.png) no-repeat 5px 15px;
  }
  .color_OMA
  {
  color:#FF6600 !important;
  }
  
  </style>
  <script type="text/javascript" src="/jquery/jquery.min.js"></script>
  <script type="text/javascript" src="/jquery/crypto-js.min.js"></script>
  <script type="text/javascript" src="/jquery/jsencrypt.min.js"></script>
  <script type="text/javascript" src="/jquery/common_lib.js"></script>
  <script type="text/javascript">
  function StatusOfLRBtnOf3MenuHandle(nowScrollLocation)
  {
  if (nowScrollLocation == "")
  {
  nowScrollLocation = 0;
  }
  var class3MenuContainerWidth = $("#class3MenuMainContent").width();
  var totalTabWidth = $("#_totalTabWidth").val();
  if ( nowScrollLocation >= (totalTabWidth - class3MenuContainerWidth) )
  {
  $("#scrollRightBtn").attr("class","scrollRightBtnDisable");
  $("#scrollLeftBtn").attr("class", "scrollLeftBtn EnableScrollBtn");
  }
  else if ( nowScrollLocation == 0 )
  {
  $("#scrollLeftBtn").attr("class", "scrollLeftBtnDisable");
  $("#scrollRightBtn").attr("class","scrollRightBtn EnableScrollBtn");
  }
  else
  {
  $("#scrollRightBtn").attr("class","scrollRightBtn EnableScrollBtn");
  $("#scrollLeftBtn").attr("class", "scrollLeftBtn EnableScrollBtn");
  }
  }
  function Menu3TabStyleHandle()
  {
  var class3MenuContainer = $("#class3MenuMainContent");
  var ContainerWidth = $("#commRight").width()- $("#scrollLeftBtn").width()
  - $("#scrollRightBtn").width();
  class3MenuContainer.width(ContainerWidth);
  var tabTotalWidth = 0;
  var tab = $("li",class3MenuContainer);
  for (var i=0; i< tab.length; i++)
  {
  var LiWidth = parseInt(tab[i].offsetWidth);
  tabTotalWidth = tabTotalWidth + LiWidth;
  }
  $("#_totalTabWidth").val(tabTotalWidth);
  var class3MenuUl = $("ul",class3MenuContainer);
  if ( tabTotalWidth > ContainerWidth )
  {
  class3MenuUl.css("width", 5000);
  $("#scrollLeftBtn,#scrollRightBtn").addClass("EnableScrollBtn");
  var nowScrollLocation = $("#_Menu3Location").text();
  if ((tabTotalWidth-ContainerWidth) < nowScrollLocation)
  {
  nowScrollLocation = tabTotalWidth-ContainerWidth;
  }
  class3MenuContainer.scrollLeft(nowScrollLocation);
  StatusOfLRBtnOf3MenuHandle(nowScrollLocation);
  }
  else
  {
  $("#scrollLeftBtn").removeClass("scrollLeftBtn");
  $("#scrollRightBtn").removeClass("scrollRightBtn");
  }
  }
  function MenuItemClass(menuItemJSON) {
  this.menuItemJSON = menuItemJSON;
  }
  MenuItemClass.prototype.findMenu = function (menuid) {
  var menuItemJSON = this.menuItemJSON;
  var menuItemId = menuItemJSON.id;
  if (menuItemId == menuid)
  {
  return menuItemJSON;
  }
  var children = menuItemJSON.children;
  if ( !children )
  {
  return null;
  }
  for (var i = 0; i < children.length; i++) {
  var childItem = children[i];
  var childID = childItem.id;
  if ( menuid == childID )
  {
  return childItem;
  }
  if ( childItem.children )
  {
  var childObj = new MenuItemClass(childItem);
  var targetMenu = childObj.findMenu(menuid);
  if (targetMenu)
  {
  return targetMenu;
  }
  }
  }
  return null
  }
  MenuItemClass.prototype.getLeftMostPageJSON = function () {
  var menuItemJSON = this.menuItemJSON;
  var menuItemId = menuItemJSON;
  var children = menuItemJSON.children;
  if ( !children )
  {
  return menuItemJSON;
  }
  var leftMostSon = children[0];
  var menuObj = new MenuItemClass(leftMostSon);
  return menuObj.getLeftMostPageJSON();
  }
  function MenuTreeClass(menuTreeJSON)
  {
  this.menuTreeJSON = menuTreeJSON
  }
  MenuTreeClass.prototype.findMenu = function(menuid) {
  var menuTreeJSON = this.menuTreeJSON
  for (var i = 0; i < menuTreeJSON.length; i++) {
  var menu1table = menuTreeJSON[i];
  var menu1Obj = new MenuItemClass(menu1table);
  var targetMenu = menu1Obj.findMenu(menuid);
  if ( targetMenu )
  {
  return targetMenu;
  }
  }
  return null
  };
  function GetLeftMostPageID(menuid)
  {
  var menuTable = menuTreeObj.findMenu(menuid);
  var menuObj = new MenuItemClass(menuTable);
  var pageJSON = menuObj.getLeftMostPageJSON();
  return pageJSON.id;
  }
  function Class3MenuShow(selectPageID, selectSupId, selectMidId, selectThdId)
  {
  if ( selectThdId == "" )
  {
  $("#class3Menu").css("display", "none");
  return;
  }
  var class2MenuNode = menuTreeObj.findMenu(selectMidId);
  var class3MenuJSON = class2MenuNode.children;
  var class3MenuContent = "";
  for (var index in class3MenuJSON)
  {
  var menu = class3MenuJSON[index]
  var class3MenuID = menu.id
  var class3MenuName = menu.name
  if ( class3MenuID == selectThdId )
  {
  AEleMenu3Class = "AEleMenu3Selected";
  }
  else
  {
  AEleMenu3Class = "AEleMenu3";
  }
  class3MenuContent = class3MenuContent
  + "<li><p class='" + AEleMenu3Class + "'"
  + "MenuClass='3'"
  + "id='"+ class3MenuID + "'"
  + "MenuPage='"+ GetLeftMostPageID(class3MenuID) +"'"
  + "href='#" + class3MenuID + "'>"
  + class3MenuName
  + "</p></li>";
  }
  $("#class3MenuMainContent ul").html(class3MenuContent);
  $("#class3MenuMainContent ul li p").click(function(){
  var MenuOBJ = $(this);
  if ( !checkDisClickAttr(MenuOBJ) )
  {
  return;
  }
  AjaxQuery_ClassMenuClick(MenuOBJ);
  });
  Menu3TabStyleHandle();
  $(window).resize(function(){
  Menu3TabStyleHandle();
  });
  $("#scrollRightBtn,#scrollLeftBtn").click(function () {
  if ( ! $(this).hasClass("EnableScrollBtn"))
  {
  consoleLog("no scroll button!!");
  return;
  }
  var scrollTarget = $("#class3MenuMainContent");
  var tabWidth = $("#_totalTabWidth").val();
  var srcollTotalLen = tabWidth - scrollTarget.width();
  if ( $(this).attr("id") == "scrollLeftBtn" )
  {
  scrollTarget.scrollLeft(0);
  }
  else
  {
  scrollTarget.scrollLeft(srcollTotalLen);
  }
  var afterPosition = scrollTarget.scrollLeft();
  StatusOfLRBtnOf3MenuHandle(afterPosition);
  });
  }
  function Class2MenuShow(selectPageID, selectSupId, selectMidId)
  {
  if ( selectMidId == "" )
  {
  return;
  }
  var class1MenuNode = menuTreeObj.findMenu(selectSupId);
  var class2MenuJSON = class1MenuNode.children;
  var class2MenuContent = "";
  var class2MenuClass = "";
  for (var index in class2MenuJSON)
  {
  var menu = class2MenuJSON[index]
  var class2MenuID = menu.id
  var class2MenuName = menu.name
  if ( class2MenuID == selectMidId )
  {
  class2MenuClass = "selectClass2Menu";
  }
  else
  {
  class2MenuClass = "";
  }
  class2MenuContent = class2MenuContent
  + "<li>"
  + "<a class='" + class2MenuClass + "' "
  + "href='javascript:void(0);' "
  + "MenuClass='2' "
  + "id='"+ class2MenuID + "' "
  + "MenuPage='"+ GetLeftMostPageID(class2MenuID)
  + "' title='" + class2MenuName
  + "'>"
  + class2MenuName
  + "</a></li>";
  }
  $("#class2MenuItem").html(class2MenuContent);
  $("#class2MenuItem li a").click(function(){
  var MenuOBJ = $(this);
  if ( !checkDisClickAttr(MenuOBJ) )
  {
  return;
  }
  AjaxQuery_ClassMenuClick(MenuOBJ);
  });
  }
  function Class1MenuShow(selectPageID, selectSupId)
  {
  var FirstMenuContent = "<ul>";
  var SupClass = "";
  var SupLiID = "";
  var FirstOne = "yes";
  var navBarWidth = $("#mainNavigator").width();
  var leftPadWidth = $("#mn_first").width();
  var rightPadWidth = $("#mn_last").width();
  var menuAreaWidth = navBarWidth - leftPadWidth - rightPadWidth;
  menuAreaWidth -= 7;
  var menuWidth = menuAreaWidth/(menuTreeJSON.length);
  menuWidth = Math.floor(menuWidth);
  for (var index in menuTreeJSON)
  {
  var menu = menuTreeJSON[index]
  var supId = menu.id
  var supName = menu.name
  if ( supId == selectSupId )
  {
  SupClass = "SelectMenuItem";
  }
  else
  {
  SupClass = "MenuItem";
  }
  if ( FirstOne == "yes" )
  {
  SupLiID = "homeLi";
  FirstOne = "no";
  }
  else
  {
  SupLiID = "";
  }
  FirstMenuContent = FirstMenuContent
  + "<li id=\"" + SupLiID + "\">"
  + "<a href=\"javascript:void(0);\" class=\"" + SupClass
  + "\" "
  + "style='width:" + menuWidth + "px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;' "
  + "MenuClass='1' "
  + "id='"+ supId + "' "
  + "MenuPage='"+ GetLeftMostPageID(supId) +"'"
  + " title='" + supName +"'>"
  + supName
  + "</a></li>";
  }
  FirstMenuContent = FirstMenuContent + "</ul>";
  $("#mn_li").html(FirstMenuContent);
  $("#mn_li li a").click(function(){
  var MenuOBJ = $(this);
  if ( !checkDisClickAttr(MenuOBJ) )
  {
  return;
  }
  AjaxQuery_ClassMenuClick(MenuOBJ);
  });
  }
  function checkDisClickAttr(obj)
  {
  if ("off" == obj.attr("EnableClick"))
  {
  return false;
  }
  handleDisClickAttr("off");
  return true;
  }
  function handleDisClickAttr(ret)
  {
  var selectSupId = $("#_NowSupIdInfo",_MenuInfo).text();
  var selectMidId = $("#_NowMidIdInfo",_MenuInfo).text();
  var selectThdId = $("#_NowThdIdInfo",_MenuInfo).text();
  if(selectThdId)
  {
  var objs = [$("#" + selectSupId),$("#" + selectMidId),$("#" + selectThdId)];
  }
  else
  {
  if(selectMidId)
  {
  var objs = [$("#" + selectSupId),$("#" + selectMidId)];
  }
  else
  {
  var objs = [$("#" + selectSupId)];
  }
  }
  for (var i = 0; i < objs.length; i++)
  {
  if (objs[i].length > 0)
  {
  objs[i].attr("EnableClick", ret);
  }
  }
  }
  function AjaxPageGet(PageName, MenuClass, Area)
  {
  var pageContainer = $("#commPageContainer");
  pageContainer.succfunction = function(html){
  pageContainer.html(html);
  var _MenuInfo = $("#_MenuInfo");
  var selectPageID = $("#_NextPageInfo",_MenuInfo).text();
  var selectSupId = $("#_NowSupIdInfo",_MenuInfo).text();
  var selectMidId = $("#_NowMidIdInfo",_MenuInfo).text();
  var selectThdId = $("#_NowThdIdInfo",_MenuInfo).text();
  if ( "mmHome" == selectPageID )
  {
  $(document).scrollTop(0);
  return;
  }
  if (MenuClass == '1')
  {
  Class1MenuShow(selectPageID, selectSupId);
  }
  Class2MenuShow(selectPageID, selectSupId, selectMidId);
  Class3MenuShow(selectPageID, selectSupId, selectMidId, selectThdId);
  $(document).scrollTop(0);
  handleDisClickAttr("on");
  var targetAreaId = Area;
  if (targetAreaId){
  setTimeout(function(){
  var thisPage = $(".instCfgArea");
  var areas = $("h1", thisPage);
  var targetArea = $("#"+targetAreaId, thisPage);
  areas.each(function(){
  if ($(this).hasClass("collapsibleBarExp")) {
  $(this).click();
  }
  });
  if (targetArea.length > 0){
  targetArea.click();
  $(document).scrollTop(targetArea.offset().top);
  }
  }
  ,500);
  }
  };
  pageContainer.errorfunction = function(){
  consoleLog("page get fail");
  showWaitTip(false);
  pageContainer.html("Page request failed, please try again!");
  handleDisClickAttr("on");
  };
  showWaitTip(true);
  pageContainer.dataTransfer( PageName, "GET", pageContainer.succfunction,
  pageContainer.errorfunction, false,
  undefined, 'html'
  );
  }
  function AjaxQuery_ClassMenuClick(MenuOBJ)
  {
  var MenuClass = MenuOBJ.attr("MenuClass");
  var page = MenuOBJ.attr("MenuPage");
  var scrollTarget = $("#class3MenuMainContent");
  var Menu3Location = scrollTarget.scrollLeft();
  var pageFile = "/?_type=menuView&_tag="
  + page + "&Menu3Location=0";
  if ( MenuClass == 3 )
  {
  pageFile = "/?_type=menuView&_tag="
  + page + "&Menu3Location=" + Menu3Location;
  }
  AjaxPageGet(pageFile, MenuClass);
  }
  function openLink(pageurl, areaId)
  {
  var PageName = "/?_type=menuView&_tag=" + pageurl;
  AjaxPageGet(PageName, 1, areaId);
  }
  function MenuShow(Menuclass, selectPageID, selectSupId, selectMidId, selectThdId)
  {
  if (Menuclass == "ClassAll")
  {
  Class1MenuShow(selectPageID, selectSupId);
  Class2MenuShow(selectPageID, selectSupId, selectMidId);
  Class3MenuShow(selectPageID, selectSupId, selectMidId, selectThdId);
  }
  else if (Menuclass == "ClassOne")
  {
  Class1MenuShow(selectPageID, selectSupId);
  }
  else if (Menuclass == "ClassTwo")
  {
  Class2MenuShow(selectPageID, selectSupId);
  }
  else
  {
  consoleLog("[menu_api.lp][MenuShow]    Menuclass("+ Menuclass + "filling is not right!!");
  }
  }
  function FakeClass1MenuShow()
  {
  var FirstMenuContent = "<ul>";
  var SupClass = "MenuItem";
  var SupLiID = "";
  var FirstOne = "yes";
  var navBarWidth = $("#mainNavigator").width();
  var leftPadWidth = $("#mn_first").width();
  var rightPadWidth = $("#mn_last").width();
  var menuAreaWidth = navBarWidth - leftPadWidth - rightPadWidth;
  menuAreaWidth -= 7;
  var menuWidth = menuAreaWidth/(menuTreeJSON.length);
  menuWidth = Math.floor(menuWidth);
  for (var index in menuTreeJSON)
  {
  var menu = menuTreeJSON[index]
  var supId = menu.id
  var supName = menu.name
  if ( FirstOne == "yes" )
  {
  SupLiID = "homeLi";
  FirstOne = "no";
  }
  else
  {
  SupLiID = "";
  }
  FirstMenuContent = FirstMenuContent
  + "<li id=\"" + SupLiID + "\">"
  + "<a href=\"javascript:void(0);\" class=\"" + SupClass
  + "\" "
  + "style='width:" + menuWidth + "px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; "
  + "color:#BFBDBE; cursor:default;'"
  + " hidefocus=\"true\" onclick=\" \" title=\"" + supName + "\">"
  + supName
  + "</a></li>";
  }
  FirstMenuContent = FirstMenuContent + "</ul>";
  $("#mn_li").html(FirstMenuContent);
  }
  function showWaitTip(show, TipMsg, StopTag)
  {
  var TipMsgTmp = TipMsg;
  if( show )
  {
  $("#blackMask,#tipLayer,#confirmBtnArea").css("display", "block");
  if (TipMsgTmp == undefined || TipMsgTmp == "")
  {
  $("#waitingImgArea").css("display", "none");
  if(true==StopTag)
  {
  $("#confirmStop").css("display", "block");
  $("#confirmCancel,#confirmOK").css("display", "none");
  }
  else
  {
  $("#confirmStop").css("display", "none");
  $("#confirmCancel,#confirmOK").css("display", "block");
  }
  }
  else
  {
  $("#confirmLayer, #waitingImgArea").css("display", "block");
  $("#confirmMsg p").text(TipMsgTmp);
  if(true==StopTag)
  {
  $("#confirmStop").css("display", "block");
  $("#confirmCancel,#confirmOK").css("display", "none");
  }
  else
  {
  $("#confirmCancel,#confirmOK,#confirmStop").css("display", "none");
  }
  }
  reposition_box("tipLayer");
  }
  else
  {
  $("#blackMask, #tipLayer, #confirmLayer").css("display", "none");
  }
  }
  function IniConfirm(msg)
  {
  showWaitTip(true);
  var confirmLayerOBJ = $("#confirmLayer");
  confirmLayerOBJ.css("display", "block");
  $("#confirmMsg p",confirmLayerOBJ).text(msg);
  $("#confirmCancel",confirmLayerOBJ).unbind( "click" );
  $("#confirmOK",confirmLayerOBJ).unbind( "click" );
  $("#confirmStop",confirmLayerOBJ).unbind( "click" );
  $("#confirmCancel",confirmLayerOBJ).bind("click", function(event){
  showWaitTip(false);
  });
  $("#confirmCancel",confirmLayerOBJ).focus();
  return confirmLayerOBJ;
  }
  function IniTip(msg, infoType)
  {
  showWaitTip(true);
  var confirmLayerOBJ = $("#confirmLayer");
  $("#confirmCancel",confirmLayerOBJ).css("display", "none");
  confirmLayerOBJ.css("display", "block");
  if (infoType == "err")
  {
  $("#confirmMsg",confirmLayerOBJ).css("background", 'url("../img/err_m.png") no-repeat 20px 50%');
  }
  else if (infoType == "succ")
  {
  $("#confirmMsg",confirmLayerOBJ).css("background", 'url("../img/succ_m.png") no-repeat 20px 50%');
  }
  else
  {
  $("#confirmMsg",confirmLayerOBJ).css("background", 'url("../img/info_m.png") no-repeat 20px 50%');
  }
  $("#confirmMsg p",confirmLayerOBJ).text(msg);
  $("#confirmCancel",confirmLayerOBJ).unbind( "click" );
  $("#confirmOK",confirmLayerOBJ).unbind( "click" );
  $("#confirmStop",confirmLayerOBJ).unbind( "click" );
  $("#confirmOK",confirmLayerOBJ).bind("click", function(event){
  showWaitTip(false);
  $("#confirmMsg",confirmLayerOBJ).css("background", 'url("../img/info_m.png") no-repeat 20px 50%');
  });
  $("#confirmOK",confirmLayerOBJ).focus();
  return confirmLayerOBJ;
  }
  function getStyle(obj,attr)
  {
  if (obj.currentStyle)
  {
  return obj.currentStyle[attr];
  }
  else
  {
  return document.defaultView.getComputedStyle(obj,null)[attr];
  }
  }
  function reposition_box(divId)
  {
  var box=document.getElementById(divId);
  if (null!=box)
  {
  var boxObj = $("#"+divId);
  var winH = $(window).height();
  var winW = $(window).width();
  var divH = boxObj.height();
  var divW = boxObj.width();
  var h = (winH-divH)/2;
  h = (h > 0) ? h : 5;
  var w = (winW-divW)/2;
  w = (w > 0) ? w : 5;
  boxObj.css({top:h, left:w});
  if ( divH > winH || divW > winW)
  {
  boxObj.css("position", "absolute");
  }
  else
  {
  boxObj.css("position", "fixed");
  }
  }
  }
  $.validator.setDefaults({
  errorPlacement: function (error, element) {
  var tipHTML = "<div class=\"errorLabelWraper\"></div>";
  var tipObj = $(tipHTML);
  error.appendTo(tipObj);
  var rowObj = element.closest(".row");
  if ( rowObj.length == 0 )
  {
  consoleLog("element id=["+element.attr("id")+"] is not in row div.");
  return ;
  }
  var rowWidth = rowObj.width();
  var usedWidth = 0;
  var rightObj = undefined;
  rowObj.children().each(function(){
  if (!($(this).hasClass("_LuQUID_AccessDeviceList")||
  $(this).hasClass("clear"))){
  usedWidth += $(this).outerWidth(true);
  }
  if ($(this).hasClass("right")){
  rightObj = $(this);
  }
  });
  var errWidth = rowWidth - usedWidth;
  var warpTip = "";
  warpTip = "";
  var widthtmp = errWidth-5-23-10;
  if(widthtmp < 1 || warpTip=="warp")
  {
  tipObj.removeAttr("style","");
  }
  else
  {
  tipObj.width(widthtmp);
  }
  if (rightObj != undefined)
  {
  tipObj.insertAfter(rightObj);
  }
  else
  {
  tipObj.appendTo(rowObj);
  }
  },
  onkeyup: function(element, event) {
  var excludedKeys = [
  16, 17, 18, 20, 35, 36, 37,
  38, 39, 40, 45, 144, 225
  ];
  if (event.which === 9 && this.elementValue(element) === "" || $.inArray(event.keyCode, excludedKeys) !== -1 ) {
  return;
  } else if (element.name in this.submitted || element.name in this.invalid || element === this.lastActive) {
  this.element(element);
  }
  }
  });
  jQuery.extend(jQuery.validator.messages, {
  required: "This field is required. ",
  remote: "Please fix this field. ",
  email: "Please enter a valid email address. ",
  url: "Please enter a valid URL. ",
  date: "Please enter a valid date. ",
  dateISO: "Please enter a valid date (ISO). ",
  number: "Please enter a valid number. ",
  digits: "Please enter an integer. ",
  creditcard: "Please enter a valid credit card number. ",
  equalTo: "Please enter the same value again. ",
  maxlength: jQuery.validator.format("Please enter no more than {0} characters. "),
  minlength: jQuery.validator.format("Please enter at least {0} characters. "),
  rangelength: jQuery.validator.format("Please enter a value with {0} ~ {1} characters. "),
  range: jQuery.validator.format("Please enter a value between {0} and {1}. "),
  max: jQuery.validator.format("Please enter a value less than or equal to {0}. "),
  min: jQuery.validator.format("Please enter a value greater than or equal to {0}. ")
  });
  function AsciiPasswordCheck(Key)
  {
  for (var j = 0 ;j < Key.length; j++)
  {
  var ch = Key.charCodeAt(j);
  if(ch == 9)
  {
  return false;
  }
  }
  return true;
  }
  function AsciiCheck(Key)
  {
  for (var j = 0 ;j < Key.length; j++)
  {
  var ch = Key.charCodeAt(j);
  if(ch<32 || ch>126)
  {
  return false;
  }
  }
  return true;
  }
  function AsciiCheckWithLen(Key, LenLimit)
  {
  if (Key.length != LenLimit)
  {
  return false;
  }
  if ( false == AsciiCheck(Key) )
  {
  return false;
  }
  return true;
  }
  function HexCheck(Key)
  {
  for (var j = 0 ;j < Key.length; j++)
  {
  var ch = Key.charCodeAt(j);
  if (!((ch >= 65 && ch <= 70)
  ||(ch >= 97 && ch <= 102)
  ||(ch >= 48 && ch <= 57)))
  {
  return false;
  }
  }
  return true;
  }
  function HexCheckWithLen(Key, LenLimit)
  {
  if (Key.length != LenLimit)
  {
  return false;
  }
  if ( false == HexCheck(Key) )
  {
  return false;
  }
  return true;
  }
  function checkDomain(value)
  {
  var len = value.length;
  var firstChar = value.substr(0,1);
  var lastChar = value.substr(len-1,1);
  var maxlen = 64;
  if(len>64||len<1)
  {
  return false;
  }
  if (value.match("[^0-9a-zA-Z.-]") != null)
  {
  return false;
  }
  if(firstChar.match("[^0-9a-zA-Z]") != null)
  {
  return false;
  }
  if(lastChar.match("[^0-9a-zA-Z]") != null)
  {
  return false;
  }
  var pos = value.lastIndexOf(".");
  if(pos == -1)
  {
  var str = value;
  var templen = value.length;
  for(var i=0;i<len;i++)
  {
  var tempvalue = str.substring(i,i+1);
  if(isNaN(parseInt(tempvalue)))
  {
  return true;
  }
  }
  return false;
  }
  else
  {
  var str = value.substr(pos+1);
  var tmplen = value.length - (pos + 1);
  for(var i=0;i<tmplen;i++)
  {
  var tmpvalue = str.substring(i,i+1);
  if(isNaN(parseInt(tmpvalue)))
  {
  return true;
  }
  }
  return false;
  }
  }
  function checkIPv4Addr(ipaddr)
  {
  var re = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
  if(re.test(ipaddr) == true)
  {
  var parts = ipaddr.split(".");
  for(var i=0; i<parts.length; i++)
  {
  if(parts[i].indexOf("0") == 0 && parts[i].length > 1)
  return false;
  if (parseInt((parts[i]),10) > 255 || parseInt((parts[i]),10) < 0)
  {
  return false;
  }
  }
  return true;
  }
  return false;
  }
  function checkIPv6Addr(ipaddr)
  {
  if (ipaddr.match("[^0-9a-fA-F:.]") != null)
  return false;
  var addrParts = ipaddr.split(':');
  var Doublecolon = ipaddr.split('::');
  var ipv4Parts = ipaddr.split('.');
  if(addrParts.length<3||addrParts.length>8)
  {
  return false;
  }
  else if(Doublecolon.length==1&&ipv4Parts.length==1&&addrParts.length!=8)
  {
  return false;
  }
  else if(Doublecolon.length==1&&ipv4Parts.length>1&&addrParts.length!=6)
  {
  return false;
  }
  else if(Doublecolon.length>1&&ipv4Parts.length>1&&addrParts.length>6)
  {
  return false;
  }
  else if(Doublecolon.length>2||ipaddr.split(':::').length>1)
  {
  return false;
  }
  else
  {
  if(addrParts[0]==""&&addrParts[1]!="")
  {
  return false;
  }
  for(var i=0;i<addrParts.length;i++)
  {
  if(i==addrParts.length-1&&addrParts[i]==""&&addrParts[i-1]!="")
  {
  return false;
  }
  if(addrParts[i].length>4 && addrParts[i].split('.').length<2)
  {
  return false;
  }
  }
  }
  var pos = ipaddr.lastIndexOf(":");
  var ipv4Parts = ipaddr.split('.');
  if(ipv4Parts.length>1)
  {
  var ipv4=ipaddr.substring(pos+1,ipaddr.length);
  if( false == checkIPv4Addr(ipv4) )
  {
  return false;
  }
  }
  return true;
  }
  function checkMacAddr(macaddr)
  {
  var regSingleByte = new RegExp(":","g");
  var regexp = /^([A-Fa-f0-9]{2}-){5}[A-Fa-f0-9]{2}$/;
  macaddr = macaddr.replace(regSingleByte,"-");
  if (!regexp.test(macaddr)) {
  return false;
  }
  return true;
  }
  jQuery.validator.addMethod(
  "macAddr",
  function(value, element, params) {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  if(checkMacAddr(value) == true)
  {
  return true;
  }
  return false;
  },
  "Please enter a valid MAC Address. "
  );
  jQuery.validator.addMethod(
  "IPv4Addr",
  function(value, element, params) {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  if(checkIPv4Addr(value) == true)
  {
  return true;
  }
  return false;
  },
  "Please enter a valid IPv4 Address. "
  );
  jQuery.validator.addMethod(
  "IPv6Addr",
  function(value, element, params) {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  return checkIPv6Addr(value);
  },
  "Please enter a valid IPv6 Address. "
  );
  jQuery.validator.addMethod(
  "DomainName",
  function(value, element, params) {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  return checkDomain(value);
  },
  "Please enter a valid Domain Name. "
  );
  jQuery.validator.addMethod(
  "HostName",
  function(value, element, params) {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  var len = value.length;
  var firstChar = value.substr(0,1);
  var lastChar = value.substr(len-1,1);
  if (value.match("[^0-9a-zA-Z.-]") != null)
  {
  return false;
  }
  if(firstChar.match("[^0-9a-zA-Z]") != null)
  {
  return false;
  }
  if(lastChar.match("[^0-9a-zA-Z]") != null)
  {
  return false;
  }
  var pos = value.lastIndexOf(".");
  if(pos == -1)
  {
  var str = value;
  var templen = value.length;
  for(var i=0;i<len;i++)
  {
  var tempvalue = str.substring(i,i+1);
  if(isNaN(parseInt(tempvalue)))
  {
  return true;
  }
  }
  return false;
  }
  else
  {
  var str = value.substr(pos+1);
  var tmplen = value.length - (pos + 1);
  for(var i=0;i<tmplen;i++)
  {
  var tmpvalue = str.substring(i,i+1);
  if(isNaN(parseInt(tmpvalue)))
  {
  return true;
  }
  }
  return false;
  }
  },
  "Please enter a valid Host Name. "
  );
  jQuery.validator.addMethod(
  "url",
  function(value, element, params) {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  var len = value.length;
  if( (len < 1) || (len > 256) )
  {
  return false;
  }
  if (value.match("[^0-9a-zA-Z.:;,!@%#?_/&=+*'$()\\[\\]-]") != null)
  {
  return false;
  }
  return true;
  },
  "Please enter a valid URL. "
  );
  jQuery.validator.addMethod(
  "DomainOrIPV4",
  function(value, element, params) {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  if(checkIPv4Addr(value) == true || checkDomain(value) == true)
  {
  return true;
  }
  return false;
  },
  $.validator.format("Please enter domain name or IPv4 address. ")
  );
  jQuery.validator.addMethod(
  "ChkPass",
  function(val, element)
  {
  if ( !(/[0-9]+/).test(val) ||
  !(/[a-zA-Z]+/).test(val) ||
  !(/[!"#$%&'()*+,-./:;<=>?@\[\\\]^_`{|}~]+/).test(val) )
  {
  return false;
  }
  if (val.length < 8)
  {
  return false;
  }
  return true;
  },
  $.validator.format("Password does not meet specifications")
  );
  jQuery.validator.addMethod(
  "PasswordASCII",
  function(value, element, params)
  {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  if (value == "						")
  {
  return true;
  }
  if ( false == AsciiPasswordCheck(value) )
  {
  params = 0;
  return false;
  }
  if ( false == AsciiCheck(value) )
  {
  params = 1;
  return false;
  }
  return true;
  },
  function(param, element)
  {
  var error = ["The format of password is wrong. Please clear it and re-enter. ", "Please enter only ASCII characters. "];
  var value = $(element).val();
  var ret = 0;
  if ( false == AsciiPasswordCheck(value) )
  {
  ret = 0;
  }
  else if( false == AsciiCheck(value) )
  {
  ret = 1;
  }
  else
  {
  }
  if ( ret <= error.length )
  {
  return error[ret];
  }
  }
  );
  jQuery.validator.addMethod(
  "ASCII",
  function(value, element, params)
  {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  if ( false == AsciiCheck(value) )
  {
  return false;
  }
  return true;
  },
  "Please enter only ASCII characters. "
  );
  jQuery.validator.addMethod(
  "PassStrong",
  function(value, element, params)
  {
  var num = 0;
  for (var j = 0 ;j < value.length; j++)
  {
  var ch = value.charCodeAt(j);
  if(ch<32 || ch>126)
  {
  return false;
  }
  }
  if (value.length < 8)
  return false;
  if((/[0-9]+/).test(value))
  num = num+1;
  if((/[a-z]+/).test(value))
  num = num+1;
  if((/[A-Z]+/).test(value))
  num = num+1;
  if((/[!"#$%&'()*+,-./:;<=>?@\[\\\]^_`{|}~]+/).test(value))
  num = num+1;
  if(num < 3)
  return false;
  return true;
  },
  "Please enter a strong password!"
  );
  jQuery.validator.addMethod(
  "utf8",
  function(value, element, params)
  {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  return true;
  },
  "Please enter only ASCII characters. "
  );
  jQuery.validator.addMethod(
  "WEPKey128Bit",
  function(value, element, params)
  {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  var AsciiLenLimit = 13;
  var HexLenLimit = 26;
  if ( AsciiCheckWithLen(value, AsciiLenLimit) == false
  && HexCheckWithLen(value, HexLenLimit) == false )
  {
  return false;
  }
  return true;
  },
  "Please enter 13 ASCII characters or 26 hexadecimal digits. "
  );
  jQuery.validator.addMethod(
  "WEPAsciiOrHexLen",
  function(value, element, params)
  {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  var AsciiLenLimit = 5;
  var HexLenLimit = 10;
  var AsciiLenLimit13 = 13;
  var HexLenLimit26 =26;
  if (AsciiCheckWithLen(value, AsciiLenLimit) == false
  && HexCheckWithLen(value, HexLenLimit) == false
  && AsciiCheckWithLen(value, AsciiLenLimit13) == false
  && HexCheckWithLen(value, HexLenLimit26) == false)
  {
  return false;
  }
  return true;
  },
  "Please enter 5 or 13 ASCII characters, or enter 10 or 26 hexadecimal digits. "
  );
  jQuery.validator.addMethod(
  "HEX",
  function(value, element, params)
  {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  if ( HexCheck(value) == false )
  {
  return false;
  }
  return true;
  },
  "Please enter only hexadecimal characters. "
  );
  jQuery.validator.addMethod(
  "fixedlength",
  function(value, element, param)
  {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  if (value.length != param)
  {
  return false;
  }
  return true;
  },
  jQuery.validator.format("Please enter {0} characters. ")
  );
  jQuery.validator.addMethod(
  "fixedValue",
  function(value, element, param)
  {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  if (value != param)
  {
  return false;
  }
  return true;
  },
  jQuery.validator.format("The only allowed value is {0}.")
  );
  function hexCompare(hexNum, hexRefer)
  {
  var num = parseInt(hexNum, 16);
  var refer = parseInt(hexRefer, 16);
  if (num < refer)
  {
  return -1;
  }
  else if (num > refer)
  {
  return 1;
  }
  else
  {
  return 0;
  }
  }
  jQuery.validator.addMethod(
  "hexRange",
  function(value, element, params)
  {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  if (typeof(params[0]) == "object")
  {
  for (var i=0; i<params.length; i++)
  {
  var range = params[i];
  if (typeof(range) == "object")
  {
  if (hexCompare(value, range[0]) != -1 && hexCompare(value, range[1]) != 1 )
  {
  return true;
  }
  }
  }
  }
  else
  {
  if (hexCompare(value, params[0]) != -1 && hexCompare(value, params[1]) != 1 )
  {
  return true;
  }
  }
  return false;
  },
  function(params, element){
  var rangesStr = "";
  if (typeof(params[0]) == "object")
  {
  var rangesLen = params.length;
  for (var i=0; i<rangesLen; i++)
  {
  var range = params[i];
  if (hexCompare(range[0], range[1]) != 0)
  {
  rangesStr += range[0] + "~" + range[1];
  }
  else
  {
  rangesStr += range[0];
  }
  if ( i < rangesLen-1 )
  {
  rangesStr += ", ";
  }
  }
  }
  else
  {
  rangesStr = params[0] + "~" + params[1];
  }
  return $.validator.format("Please enter a hexadecimal value in the ranges of {0}. ", rangesStr);
  }
  );
  jQuery.validator.addMethod(
  "ranges",
  function(value, element, param)
  {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  var rangesLen = param.length;
  for (var i=0; i<rangesLen; i++)
  {
  var range = param[i];
  if ( typeof range === 'number' )
  {
  if ( value == range )
  {
  return true;
  }
  }
  else
  {
  if ( value >= range[0] && value <= range[1] )
  {
  return true;
  }
  }
  }
  return false;
  },
  function(param, element){
  var rangesStr = "";
  var rangesLen = param.length;
  for (var i=0; i<rangesLen; i++)
  {
  var range = param[i];
  if ( typeof range === 'number' )
  {
  rangesStr += range;
  }
  else
  {
  rangesStr += range[0] + "~" + range[1];
  }
  if ( i < rangesLen-1 )
  {
  rangesStr += ",";
  }
  }
  return $.validator.format("Please enter a value in the ranges of {0}. ", rangesStr);
  }
  );
  jQuery.validator.addMethod(
  "integer",
  function(value, element, params)
  {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  return /^-?\d+$/.test(value);
  },
  "Please enter an integer. "
  );
  jQuery.validator.addMethod(
  "concurrence",
  function(value, element, param)
  {
  if (1 > param.length)
  {
  return true;
  }
  var obj = get_element_obj($(element), param[0]);
  if (obj.is(":hidden"))
  {
  return true;
  }
  if ("" == value && "" == obj.val())
  {
  return true;
  }
  if ("" != value && "" != obj.val())
  {
  return true;
  }
  return false;
  },
  "Please input valid prefix. "
  );
  function get_element_obj(obj, id)
  {
  var instTplt = obj.closest("[id^=template_]");
  var elementID = obj.attr("id");
  var arr = elementID.split(':');
  var strId = id;
  if (arr.length > 1)
  {
  var exNum = arr[arr.length-1];
  strId = id + ":" + exNum;
  }
  return $("[id='"+strId+"']", instTplt);
  };
  function test_greatThan(obj, value, param, type)
  {
  if ("errstring" == type )
  {
  var tempstring = {
  "1" : param[2].separate ? "Please enter a value greater than \"{0}\". " : "Please enter a value greater than the former. " ,
  "2" : param[2].separate ? "Please enter a value not less than \"{0}\". " : "Please enter a value not less than the former. " ,
  "3" : param[2].separate ? "Please ensure the difference with the latter not greater than {1}. " : "Please ensure the difference with the former not greater than {1}. "
  };
  return $.validator.format(tempstring[param[2].ret], param[2].idtext, param[2].discrepantMode);
  }
  else
  {
  var tmpvalue = obj.val();
  var ret = true;
  if (param[2].equal)
  {
  ret = Number(value) >= Number(tmpvalue);
  if (!ret)
  {
  param[2].ret = "2";
  return false;
  }
  }
  else
  {
  ret = Number(value) > Number(tmpvalue);
  if (!ret)
  {
  param[2].ret = "1";
  return false;
  }
  }
  if (param[2].discrepantMode)
  {
  ret = Number(value) - Number(tmpvalue) <= Number(param[2].discrepantMode);
  if (!ret)
  {
  param[2].ret = "3";
  return false;
  }
  }
  obj.parent().next().children().hide();
  return true;
  }
  };
  function test_lessThan(obj, value, param, type)
  {
  if ("errstring" == type )
  {
  var tempstring = {
  "1" : param[2].separate ? "Please enter a value less than \"{0}\". " : "Please enter a value less than the latter. " ,
  "2" : param[2].separate ? "Please enter a value not greater than \"{0}\". " : "Please enter a value not greater than the latter. " ,
  "3" : param[2].separate ? "Please ensure the difference with the former not greater than {1}. " : "Please ensure the difference with the latter not greater than {1}. "
  };
  return $.validator.format(tempstring[param[2].ret], param[2].idtext, param[2].discrepantMode);
  }
  else
  {
  var tmpvalue = obj.val();
  var ret = true;
  if (param[2].equal)
  {
  ret = Number(value) <= Number(tmpvalue);
  if (!ret)
  {
  param[2].ret = "2";
  return false;
  }
  }
  else
  {
  ret = Number(value) < Number(tmpvalue);
  if (!ret)
  {
  param[2].ret = "1";
  return false;
  }
  }
  if (param[2].discrepantMode)
  {
  ret = Number(tmpvalue) - Number(value) <= Number(param[2].discrepantMode)
  if (!ret)
  {
  param[2].ret = "3";
  return false;
  }
  }
  obj.parent().next().children().hide();
  return true;
  }
  };
  jQuery.validator.addMethod(
  "extremumRange",
  function(value, element, param)
  {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  if (2 > param.length)
  {
  return true;
  }
  var obj = get_element_obj($(element), param[1]);
  if (3 > param.length)
  {
  param[2] = {};
  }
  param[2]["idtext"] = obj.parent().prev().text();
  if (obj.is(":hidden") || "" == obj.val())
  {
  return true;
  }
  var selectMode = {
  "greatThan" : test_greatThan,
  "lessThan" : test_lessThan
  };
  return selectMode[param[0]](obj, value, param);
  },
  function(param,element)
  {
  var selectMode = {
  "greatThan" : test_greatThan,
  "lessThan" : test_lessThan
  };
  return selectMode[param[0]]("", "", param, "errstring");
  }
  );
  function range_greatThan(obj, value, param, type)
  {
  if ("errstring" == type )
  {
  var tempstring = {
  "1" : param[2].separate ? "Please enter a value greater than \"{0}\". " : ( param[2].objPosition =="first" ? "Please enter a value greater than the former. " : "Please enter a value greater than the latter." ),
  "2" : param[2].separate ? "Please enter a value not less than \"{0}\". " : ( param[2].objPosition =="first" ? "Please enter a value not less than the former. " : "Please enter a value not less than the latter. " ) ,
  "3" : param[2].separate ? "Please ensure the difference with \"{0}\" not greater than {1}. " : ( param[2].objPosition =="first" ? "Please ensure the difference with the former not greater than {1}. " : "Please ensure the difference with the latter not greater than {1}. ")
  };
  return $.validator.format(tempstring[param[2].ret], param[2].idtext, param[2].discrepantMode);
  }
  else
  {
  obj.parent().next().children().hide();
  var tmpvalue = obj.val();
  var ret = true;
  if (param[2].equal)
  {
  ret = Number(value) >= Number(tmpvalue);
  if (!ret)
  {
  param[2].ret = "2";
  return false;
  }
  }
  else
  {
  ret = Number(value) > Number(tmpvalue);
  if (!ret)
  {
  param[2].ret = "1";
  return false;
  }
  }
  if (param[2].discrepantMode)
  {
  ret = Number(value) - Number(tmpvalue) <= Number(param[2].discrepantMode);
  if (!ret)
  {
  param[2].ret = "3";
  return false;
  }
  }
  return true;
  }
  };
  function range_lessThan(obj, value, param, type)
  {
  if ("errstring" == type )
  {
  var tempstring = {
  "1" : param[2].separate ? "Please enter a value less than \"{0}\". " : ( param[2].objPosition == "first" ? "Please enter a value less than the former. " : "Please enter a value less than the latter. " ),
  "2" : param[2].separate ? "Please enter a value not greater than \"{0}\". " : ( param[2].objPosition == "first" ? "Please enter a value not greater than the former." : "Please enter a value not greater than the latter. " ),
  "3" : param[2].separate ? "Please ensure the difference with \"{0}\" not greater than {1}. " : ( param[2].objPosition == "first" ? "Please ensure the difference with the former not greater than {1}. " : "Please ensure the difference with the latter not greater than {1}. " )
  };
  return $.validator.format(tempstring[param[2].ret], param[2].idtext, param[2].discrepantMode);
  }
  else
  {
  obj.parent().next().children().hide();
  var tmpvalue = obj.val();
  var ret = true;
  if (param[2].equal)
  {
  ret = Number(value) <= Number(tmpvalue);
  if (!ret)
  {
  param[2].ret = "2";
  return false;
  }
  }
  else
  {
  ret = Number(value) < Number(tmpvalue);
  if (!ret)
  {
  param[2].ret = "1";
  return false;
  }
  }
  if (param[2].discrepantMode)
  {
  ret = Number(tmpvalue) - Number(value) <= Number(param[2].discrepantMode)
  if (!ret)
  {
  param[2].ret = "3";
  return false;
  }
  }
  return true;
  }
  };
  jQuery.validator.addMethod(
  "compareRange",
  function(value, element, param)
  {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  if (2 > param.length)
  {
  return true;
  }
  var obj = get_element_obj($(element), param[1]);
  if (3 > param.length)
  {
  param[2] = {};
  }
  param[2]["idtext"] = obj.parent().prev().text();
  var selectMode = {
  "greatThan" : range_greatThan,
  "lessThan" : range_lessThan
  };
  return selectMode[param[0]](obj, value, param);
  },
  function(param,element)
  {
  var selectMode = {
  "greatThan" : range_greatThan,
  "lessThan" : range_lessThan
  };
  return selectMode[param[0]]("", "", param, "errstring");
  }
  );
  jQuery.validator.addMethod(
  "banValue",
  function(value, element, param)
  {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  var paramLen = param.length;
  for (var i = 0;i < paramLen;i++)
  {
  var range = param[i];
  if (typeof range === 'string' )
  {
  if (value == range)
  {
  return false;
  }
  }
  else
  {
  if (value >= range[0] && value <= range[1])
  {
  return false;
  }
  }
  }
  return true;
  },
  function(param, element){
  var rangesStr = "";
  var paramLen = param.length;
  for (var i=0; i<paramLen; i++)
  {
  var paraVal = param[i];
  if ( "object" === typeof paraVal )
  {
  rangesStr += paraVal[0] + "~" + paraVal[1];
  }
  else
  {
  rangesStr += paraVal;
  }
  if ( i < paramLen-1 )
  {
  rangesStr += ", ";
  }
  }
  if (paramLen > 1)
  {
  return $.validator.format("Please ensure the input NOT in the ranges of \"{0}\". ", rangesStr);
  }
  else
  {
  return $.validator.format("Please ensure the input NOT equal to \"{0}\". ", rangesStr);
  }
  }
  );
  jQuery.validator.addClassRules({
  ipSepCheck: {
  "required": true,
  "integer": true,
  "range":[0,255]
  },
  macSepCheck:{
  "required": true,
  "HEX": true,
  "fixedlength": 2
  }
  });
  function checkTimeHMS(timestr) {
  var re = /^([0-1]{1}[0-9]{1}|[2]{1}[0-3]{1}):[0-5]{1}[0-9]{1}:[0-5]{1}[0-9]{1}$/;
  if (re.test(timestr) == true) {
  return true;
  }
  return false;
  }
  jQuery.validator.addMethod(
  "checkTimeHMS",
  function (value, element, params) {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  if (checkTimeHMS(value) == true) {
  return true;
  }
  return false;
  },
  "Please enter the correct time format like HH:MM:SS."
  );
  function time_earlierThan(obj, value, param, type)
  {
  var tmpvalue = obj.val();
  var ret = true;
  var valuearr = value.split(":")
  var tmpvaluearr = tmpvalue.split(":")
  if (valuearr[0] < tmpvaluearr[0])
  {
  return true;
  }
  else
  {
  if (valuearr[0] === tmpvaluearr[0] && valuearr[1] < tmpvaluearr[1])
  {
  return true;
  }
  else
  {
  if (valuearr[1] === tmpvaluearr[1] && valuearr[2] < tmpvaluearr[2])
  {
  return true;
  }
  }
  return false;
  }
  };
  function time_laterThan(obj, value, param, type)
  {
  var tmpvalue = obj.val();
  var ret = true;
  var valuearr = value.split(":")
  var tmpvaluearr = tmpvalue.split(":")
  if (valuearr[0] > tmpvaluearr[0])
  {
  return true;
  }
  else
  {
  if (valuearr[0] === tmpvaluearr[0] && valuearr[1] > tmpvaluearr[1])
  {
  return true;
  }
  else
  {
  if (valuearr[1] === tmpvaluearr[1] && valuearr[2] > tmpvaluearr[2])
  {
  return true;
  }
  }
  return false;
  }
  };
  jQuery.validator.addMethod(
  "timeComparison",
  function (value, element, param) {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  if (2 > param.length) {
  return true;
  }
  var obj = get_element_obj($(element), param[1]);
  if (3 > param.length) {
  param[2] = {};
  }
  param[2]["idtext"] = obj.parent().prev().text();
  if (obj.is(":hidden") || "" == obj.val()) {
  return true;
  }
  var selectMode = {
  "laterThan": time_laterThan,
  "earlierThan": time_earlierThan
  };
  return selectMode[param[0]](obj, value, param);
  },
  "Start time must be earlier than end time."
  );
  function compareIPv4(firstIP, secondIP)
  {
  var fIP;
  var sIP;
  fIP = firstIP.split(".");
  sIP = secondIP.split(".");
  for (var i = 0; i < 4; i++)
  {
  if (fIP[i] != "" && sIP[i] != "")
  {
  fIP[i] = parseInt(fIP[i],10);
  sIP[i] = parseInt(sIP[i],10);
  }
  if (fIP[i] > sIP[i])
  {
  return 1;
  }
  else if (fIP[i] < sIP[i])
  {
  return -1;
  }
  }
  return 0;
  }
  function checkWholeIPv4(k, v, ipValue,template)
  {
  var vLen = v.length;
  var retMsg = "";
  for (var j = 0; j < vLen; j++)
  {
  if (retMsg != "")
  {
  retMsg += ", ";
  }
  var range = v[j];
  if (typeof range === 'string')
  {
  retMsg += range;
  }
  else
  {
  retMsg += range[0]+" ~ "+range[1];
  }
  }
  if (k == "banValue")
  {
  retMsg = " is NOT allowed to input the following value(s): {0}. ".format(retMsg);
  for (var i = 0; i < vLen; i++)
  {
  var range = v[i];
  if (typeof range === 'string')
  {
  if (ipValue == range)
  {
  return [false, k, retMsg];
  }
  }
  else
  {
  if ("-1" != compareIPv4(ipValue, range[0]) &&
  "1" != compareIPv4(ipValue, range[1]))
  {
  return [false, k, retMsg];
  }
  }
  }
  }
  else if (k == "allowRange")
  {
  retMsg = "'s input is invalid. Please ensure the input is in the following range: {0}. ".format(retMsg);
  for (var i = 0; i < vLen; i++)
  {
  var range = v[i];
  if ("-1" != compareIPv4(ipValue, range[0]) &&
  "1" != compareIPv4(ipValue, range[1]))
  {
  return [true, "", ""];
  }
  }
  return [false, k, retMsg];
  }
  else if (k == "notLessThan")
  {
  retMsg = "";
  var IPObj = $("[id^='"+v+"']",template);
  IPObj.FillIPorMacDataCombination("sub_"+v, ".", 4);
  var minValue = IPObj.val();
  if (-1 == compareIPv4(ipValue, minValue)){
  return [false, k, retMsg];
  }
  }
  else if (k == "notMoreThan")
  {
  retMsg = "";
  var IPObj = $("[id^='"+v+"']",template);
  IPObj.FillIPorMacDataCombination("sub_"+v, ".", 4);
  var maxValue = IPObj.val();
  if (1 == compareIPv4(ipValue, maxValue)){
  return [false, k, retMsg];
  }
  }
  else
  {
  }
  return [true, "", ""];
  }
  function checkWholeMac(k, v, macValue)
  {
  var vLen = v.length;
  var retMsg = "";
  for (var j = 0; j < vLen; j++)
  {
  if (retMsg != "")
  {
  retMsg += ", ";
  }
  var range = v[j];
  if (typeof range === 'string')
  {
  retMsg += range;
  }
  else
  {
  retMsg += range[0]+" ~ "+range[1];
  }
  }
  if (k == "banValue")
  {
  retMsg = " is NOT allowed to input the following value(s): {0}. ".format(retMsg);
  for (var i = 0; i < vLen; i++)
  {
  var range = v[i];
  if (typeof range === 'string')
  {
  if (macValue.toLowerCase() == range.toLowerCase())
  {
  return [false, k, retMsg];
  }
  }
  }
  }
  else
  {
  }
  return [true, "", ""];
  }
  function getMsgofWholeMACIPCheck(checkRetArray, ruleObj, checkValue, checkParaName)
  {
  var errMsg = "";
  var ruleName = checkRetArray[1];
  if(ruleObj.messages[ruleName] != undefined){
  return ruleObj.messages[ruleName];
  }
  switch (ruleName){
  case "banValue":{
  if (checkParaName != "")
  {
  errMsg = checkParaName + checkRetArray[2];
  }
  else{
  errMsg = "Current operation is invalid, please check configuration parameters. "+"["+"Error Input: "+checkValue+"]";
  }
  break;
  }
  case "allowRange":{
  if (checkParaName != ""){
  errMsg = checkParaName + checkRetArray[2];
  }
  else{
  errMsg = "Current operation is invalid, please check configuration parameters. "+"["+"Error Input: "+checkValue+"]";
  }
  break;
  }
  default:{
  errMsg = "error msg undefined!"
  }
  }
  return errMsg;
  }
  jQuery.validator.addMethod(
  "utf8LengthRange",
  function(value, element, param)
  {
  if ( this.optional(element) )
  {
  return "dependency-mismatch";
  }
  var valLength = value.length;
  var param1 = param[0];
  var param2 = param[1];
  if (param2 < 3)
  {
  alert("utf8LengthRange is invalid!["+param2+"<"+3 +"]");
  }
  else
  {
  param1 = Math.ceil(parseInt(param[0])/ 3);
  param2 = Math.floor(parseInt(param[1]) / 3);
  if (param1 < param2)
  {
  if (valLength >= param1 && valLength <= param2 )
  {
  return true;
  }
  }
  else if (param1 == param2)
  {
  if (valLength == param2)
  {
  return true;
  }
  }
  else
  {
  alert("utf8LengthRange ["+param1+","+param2+"] is invalid!");
  }
  }
  return false;
  },
  function(param, element){
  var lengthStr = "";
  var param1 = param[0];
  var param2 = param[1];
  if (param2 < 3)
  {
  lengthStr = " Range Error!!!!!![param2<WEB_UTF8_REALBYTE]";
  }
  else
  {
  param1 = Math.ceil(parseInt(param[0])/ 3);
  param2 = Math.floor(parseInt(param[1]) / 3);
  if (param1 < param2)
  {
  lengthStr = param1 + " ~ " + param2;
  }
  else if (param1 == param2)
  {
  lengthStr = param2;
  }
  else
  {
  lengthStr = " Range Error!!!!!!["+param1+","+param2+"]";
  }
  }
  return $.validator.format("Please enter a value with {0} characters.", lengthStr);
  }
  );
  jQuery.validator.addMethod(
  "notEqualTo",
  function(value, element, param)
  {
  var obj = $("[id^='"+param+"']");
  if ( value == obj.val())
  {
  return false;
  }
  return true;
  },
  function(param, element){
  var paramName = "";
  var obj = $("[id^='"+param+"']");
  paramName = $("label[for='"+param+"']").text();
  return $.validator.format("Please enter a different value with {0}. ", paramName);
  }
  );
  
  (function(){
  $(document).ready(function(){
  var curv = 54;
  if (curv == "65")
  $("#languageSwitch").hide();
  });
  })();
  
  (function(){
  $(document).ready(function(){
  $("#languageSwitch").hide();
  $("#page_footer").hide();
  
  });
  })();
  (function(){
  $(document).ready(function(){
  var CountryCode = "54";
  if (CountryCode == "138")
  {
  $("#logo").addClass("logo_IvoryOrange");
  }
  });
  })();
  
  
  var menuTreeJSON = [{"id":"homePage","name":"Home","extData":"Show the important information.","area":[{"area":"home_t.lp"}]},{"id":"mmTopology","name":"Topology","area":[{"area":"topo_t.lp"}]},{"id":"internet","name":"Internet"},{"id":"localnet","name":"Local Network"},{"id":"mgrAndDiag","name":"Management & Diagnosis"}];
  var menuTr
services.body_hash_sha1: sha1:5854c79bf09b88785b6b8759b0c396b1a2763487
services.supported_versions: HTTP/1.1
[binary data, 11 values, 286 bytes]