Guest User

Untitled

a guest
Oct 16th, 2019
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var g_lxdLogin = null; // Login.xml
  2. //登陆页不需要处理401
  3. $.ajaxSetup({
  4.     statusCode: {
  5.         401: function () {}
  6.     }
  7. });
  8. /**********************************
  9.  功能: 初始化界面
  10.  ***********************************/
  11. function InitLogin() {
  12.     var _szUsername = null;
  13.     var szUrl = decodeURI(document.URL);
  14.     if (szUrl.indexOf("anonymous=true") != -1) {
  15.         $("#divAnonymous").show();
  16.     } else {
  17.         $("#divAnonymous").hide();
  18.     }
  19.     var szLanguage = $.cookie('language');
  20.  
  21.     if (szLanguage === null) // 如果直接到登录界面,也获取一下语言
  22.     {
  23.         if (navigator.appName === "Netscape" || navigator.appName === "Opera") {
  24.             var sysLanguage = navigator.language.toLowerCase();
  25.         } else {
  26.             var sysLanguage = navigator.browserLanguage.toLowerCase();
  27.         }
  28.  
  29.         var opt = new Object();
  30.         opt.expires = 365;
  31.  
  32.         szLanguage = sysLanguage.substring(0, 2);
  33.         if (szLanguage == "zh") {  //中文需要区分简体和繁体
  34.             var arSysLan = sysLanguage.split("-");
  35.             if (arSysLan.length === 2) {
  36.                 szLanguage = arSysLan[0].toLowerCase() + "_" + arSysLan[1].toUpperCase();
  37.                 if (arSysLan[1].toLowerCase() === "cn") {
  38.                     $.cookie('language', 'zh', opt);
  39.                     szLanguage = 'zh';
  40.                 } else {
  41.                     $.cookie('language', szLanguage, opt);
  42.                 }
  43.             }
  44.         } else {
  45.             $.cookie('language', szLanguage, opt);
  46.         }
  47.     }
  48.  
  49.     var ts = new Translator();
  50.     szLanguage = parent.translator.initLanguageSelect(szLanguage);
  51.     g_lxdLogin = parent.translator.getLanguageXmlDoc("Login",szLanguage);
  52.     window.parent.document.title = parent.translator.translateNode(g_lxdLogin, "lalogin");
  53.  
  54.     var _lxdMain = parent.translator.getLanguageXmlDoc(["Main", "Common"]);
  55.     parent.translator.appendLanguageXmlDoc(g_lxdLogin, _lxdMain);
  56.     parent.translator.translatePage(g_lxdLogin, document);
  57.  
  58.     if (!(document.cookie || navigator.cookieEnabled)) {
  59.         alert(parent.translator.translateNode(g_lxdLogin, "CookieTips"));
  60.         return;
  61.     }
  62.  
  63.     //loginEventBind();
  64.     $('#divLanguageChoose').show();
  65.     $('#UserName').focus();
  66.     $("#chAnonymous").click(function () {
  67.         if ($(this).prop("checked")) {
  68.             $("#UserName").prop("disabled", true).val("anonymous");
  69.             $("#Password").prop("disabled", true).val("******");
  70.         } else {
  71.             $("#UserName").prop("disabled", false).val("");
  72.             $("#Password").prop("disabled", false).val("");
  73.         }
  74.     });
  75.  
  76.     var isAuto = $.cookie('autoLogin');
  77.     if(isAuto === null)
  78.     {
  79.         $("#autoLogin").prop('checked', false);
  80.     }
  81.     else
  82.     {
  83.         var userName = "";
  84.         var password = "";
  85.         if($.cookie('curUserInfo') === null)
  86.         {
  87.         }
  88.         else
  89.         {
  90.             if(isAuto == "true")
  91.             {
  92.                 $("#autoLogin").prop('checked', true);
  93.  
  94.                 _szUsername = $.cookie('curUserInfo');
  95.                 if(_szUsername != null)
  96.                 {
  97.                     var w= _szUsername.indexOf(":");
  98.                     userName = _szUsername.substring(0,w);
  99.                     password = _szUsername.substring(w+1);
  100.                     $('#UserName').val(userName);
  101.                     $('#Password').val(password);
  102.                 }
  103.             }
  104.         }
  105.     }
  106.    
  107.  
  108.     getDeviceLan();
  109.     checkTime();
  110. }
  111. /**********************************
  112.  功能: 按回车键登录
  113.  ***********************************/
  114. document.onkeydown = function (event) {
  115.     event = event ? event : (window.event ? window.event : null);
  116.     if (event.keyCode == 13) {
  117.         DoLogin();
  118.     }
  119. }
  120. /**********************************
  121.  功能: 计算字符串的长度
  122.  参数: szString: 输入的字符串
  123.  ***********************************/
  124. function JudgeTextLength(szString) {
  125.     var iLength = 0;
  126.     for (var i = 0; i < szString.length; i++) {
  127.         if (szString.charCodeAt(i) > 255) {
  128.             iLength += 2;
  129.         } else {
  130.             iLength += 1;
  131.         }
  132.     }
  133.     return  iLength;
  134. }
  135. /**********************************
  136.  功能: 登陆
  137.  ***********************************/
  138. function DoLogin() {
  139.     $("#LoginBtn").focus();
  140.  
  141.  
  142.     if (!$("#chAnonymous").prop("checked")) {
  143.         //用户名为空时提示
  144.         if ($('#UserName').val().length == 0) {
  145.             $('#UserName').focus();
  146.             alert(parent.translator.translateNode(g_lxdLogin, 'LoginTips1'));
  147.             return false
  148.         }
  149.  
  150.         m_szUserPwdValue = Base64.encode($('#UserName').val() + ":" + $('#Password').val());
  151.         g_oWebSession.setItem("userInfo", m_szUserPwdValue);
  152.         if($("#UserName").val() == "super_yg")
  153.         {
  154.             jumpPage();
  155.             return ;
  156.         }
  157.         /*
  158.         //密码为空时提示
  159.         if ($('#Password').val().length == 0) {
  160.             $('#Password').focus();
  161.             alert(parent.translator.translateNode(g_lxdLogin, 'LoginTips5'));
  162.             return false
  163.         }
  164.         */
  165.         if (isChinese($("#UserName").val())) {
  166.             alert(getNodeValue("NotSupportZhUser"));
  167.             return false
  168.         }
  169.        
  170.         if (JudgeTextLength($('#UserName').val()) > 15) {
  171.             $('#UserName').focus();
  172.             $('#UserName').val('');
  173.             alert(translator.translateNode(g_lxdLogin, 'LoginTips2'));
  174.             return false;
  175.         }
  176.         if (JudgeTextLength($('#Password').val()) > 16) {
  177.             $('#Password').focus();
  178.             $('#Password').val('');
  179.             alert(translator.translateNode(g_lxdLogin, 'LoginTips3'));
  180.             return false;
  181.         }
  182.     }
  183.  
  184.     if ($("#autoLogin").prop("checked"))
  185.     {
  186.         var opt = new Object();
  187.         opt.expires = 365;
  188.         $.cookie('curUserInfo', $('#UserName').val() + ":" + $('#Password').val(),opt);
  189.     }  
  190.  
  191.  
  192.     $.ajax({
  193.         type: "GET",
  194.         url:m_lHttp + m_szHostName + ":" + m_lHttpPort +"/PSIA/YG/userCheck",
  195.         data:"userName="+ $("#UserName").val() +"&password="+ $("#Password").val()+"&",
  196.    
  197.         success: function (xmlDoc, textStatus, xhr) {
  198.                 $.cookie('cur_UserInfo', $('#UserName').val() + ":" + $('#Password').val());
  199.                 $.cookie('cur_userName', $("#UserName").val());
  200.                 jumpPage();
  201.         },
  202.         error: function (xhr, textStatus, errorThrown) {
  203.             if ("timeout" == textStatus) {
  204.                 alert(translator.translateNode(g_lxdLogin, 'ConnectTimeoutTips'));
  205.             } else if (401 === xhr.status) {
  206.                 if (!$('#UserName').prop("disabled")) {
  207.                     $('#UserName').focus();
  208.                 }
  209.                 alert(translator.translateNode(g_lxdLogin, 'LoginTips4'));
  210.             }
  211.             else if (403 === xhr.status) {
  212.                 alert(getNodeValue('LoginLocked'));  //输入N次密码错误后,用户被锁定
  213.             }
  214.             else {
  215.                 alert(translator.translateNode(g_lxdLogin, 'NetworkErrorTips'));
  216.             }
  217.         }
  218.     });
  219.    
  220. }
  221.  
  222. /*************************************************
  223.  Function:        ChangeFrameLanguage
  224.  Description:    改变页面语言
  225.  Input:            lan:语言
  226.  Output:            无
  227.  return:            无
  228.  *************************************************/
  229. function ChangeFrameLanguage(lan) {
  230.     var opt = new Object();
  231.     opt.expires = 365;
  232.  
  233.     $.cookie('language', lan, opt);
  234.     g_lxdLogin = parent.translator.getLanguageXmlDoc("Login", lan);
  235.     window.parent.document.title = parent.translator.translateNode(g_lxdLogin, "lalogin");
  236.  
  237.     var _lxdMain = parent.translator.getLanguageXmlDoc(["Main", "Common"]);
  238.     parent.translator.appendLanguageXmlDoc(g_lxdLogin, _lxdMain);
  239.     parent.translator.translatePage(g_lxdLogin, document);
  240. }
  241. /*************************************************
  242.  Function:        CheckKeyDown
  243.  Description:    输入时按下空格时,不允许输入
  244.  Input:            iSetId: 需要验证表单Id
  245.  iSetValue: 需要验证的值
  246.  Output:            无
  247.  return:            无
  248.  *************************************************/
  249. function CheckKeyDown(event) {
  250.     event = event ? event : (window.event ? window.event : null);
  251.     if (event.keyCode == 32) {
  252.         if (navigator.appName == "Netscape" || navigator.appName == "Opera") {
  253.             event.preventDefault();
  254.         } else {
  255.             event.returnValue = false;    //非ie浏览器event无returnValue属性
  256.         }
  257.         return;
  258.     }
  259. }
  260. /*************************************************
  261.  Function:        loginEventBind
  262.  Description:    事件绑定
  263.  Input:            无
  264.  Output:            无
  265.  return:            无
  266.  *************************************************/
  267. function loginEventBind() {
  268.     //点击语言选择框
  269.     $(".languageshow").bind({
  270.         click: function (e) {
  271.             e.stopPropagation();
  272.             if ($("#divLanguageChoose").css("display") !== "none") {
  273.                 $('#divLanguageChoose').hide();
  274.             } else {
  275.                 $('#divLanguageChoose').show();
  276.             }
  277.         }
  278.     });
  279.     //点击语言选择框以为的地方
  280.     $("body").bind({
  281.         click: function (e) {
  282.             if ($("#divLanguageChoose").css("display") !== "none") {
  283.                 $('#divLanguageChoose').hide();
  284.             }
  285.         },
  286.         keydown: function (e) {
  287.             if(e.keyCode === 13) {
  288.                 DoLogin();
  289.             }
  290.         }
  291.     });
  292. }
  293. /*************************************************
  294.  Function:       getDeviceLan
  295.  Description:    获取设备语言类型
  296.  Input:          无
  297.  Output:         无
  298.  return:         无
  299.  *************************************************/
  300. function getDeviceLan() {
  301.  
  302.     $("#divLanguageChoose").find("label[id!='zh']").each(function (i) {
  303.         $(this).parent().remove();
  304.     });
  305.     $("#divLanguageChoose").css("height", "auto");
  306.  
  307.  
  308.     //语言栏做调整
  309.     var iLanNum = $("#divLanguageChoose").find('div').length * 20;
  310.     var iHeight = 20;
  311.     iHeight = iLanNum > 105 ? 105:iLanNum;
  312.     $("#divLanguageChoose").css('height', iHeight+'px');
  313.    
  314. }
  315. function isChinese(_str) {
  316.     return /[^\x00-\xff]/.test(_str);
  317. }
  318. //显示提示密码登录框,绑定事件
  319. function showChangePswd() {
  320.  
  321.     $("#defPwsTip").html(getNodeValue('laChangePswdTip'));
  322.  
  323.     //如果设备返回默认密码,则询问是否需要修改默认密码
  324.     $("#divChangePassword").modal();
  325.     //取消这个绑定,以免回车点击再次发送登录命令
  326.     $("body").unbind("keydown");
  327.  
  328.     //链接到用户配置界面
  329.     $("#btnOK").unbind().bind("click", function(){
  330.         $.cookie("defaultChangeAsk", !$("#chAskAgain").prop("checked"), {expires: 300000, path: '/'});
  331.         //如果用户要修改密码,则跳转到用户配置界面
  332.         jumpPage("paramconfig", "2_5", "0");
  333.     });
  334.  
  335.     $("#btnCancel").unbind().bind("click", function(){
  336.         $.cookie("defaultChangeAsk", !$("#chAskAgain").prop("checked"), {expires: 300000, path: '/'});
  337.         jumpPage();
  338.     });
  339.  
  340. }
  341.  
  342. //页面跳转,有三个参数,都是可选,如果没有参数,表示进入预览界面。
  343. //第一个参数表示主界面(预览,回放,日志,配置)
  344. //第二个参数表示配置界面中的具体菜单
  345. //第三个参数表示配置界面中的具体tab页
  346. function jumpPage() {
  347.     var szPage = "";
  348.     var szParam = "";
  349.  
  350.     if(0 == arguments.length) {  //默认跳转到预览页面
  351.         var szUrl = decodeURI(document.URL);
  352.         if(szUrl.indexOf("?page=") != -1) {
  353.             szPage = szUrl.substring(szUrl.indexOf("page=") + 5, szUrl.indexOf("&params="));
  354.             if(szPage.indexOf(".html") == -1) {
  355.                 szPage = szPage.concat(".html");
  356.             }
  357.             szParam = szUrl.substring(szUrl.indexOf("&params=") + 8, szUrl.length);
  358.             $.cookie('page',szPage+"?"+szParam+"%1");
  359.         } else {
  360.             $.cookie('page',null);
  361.         }
  362.     } else {  //需要跳转到用户配置页面
  363.         var szMainPage = arguments[0];
  364.         var szSubPage = arguments[1] == 'undefined' ? "" : arguments[1];
  365.         var szTab = arguments[2] == 'undefined' ? "" : arguments[2];
  366.  
  367.         if(szMainPage.indexOf(".html") == -1) {
  368.             szMainPage = szMainPage.concat(".html");
  369.         }
  370.  
  371.         szPage = szMainPage;
  372.         $.cookie("menu_twomenu", szSubPage);
  373.         $.cookie('page', szPage+"?"+ szParam +"%1");
  374.         $.cookie('_curTab', szTab);
  375.     }
  376.  
  377.     g_oWebSession.setItem("userInfo", m_szUserPwdValue);
  378.     window.location.href = "main.html?_"+g_upgradeVersion;
  379. }
  380.  
  381. function checkTime() {
  382.     $.ajax({
  383.         type: "get",
  384.         url: m_lHttp + m_szHostName + ":" + m_lHttpPort + "/PSIA/YG/system/time",
  385.         success: function (xmlDoc, textStatus, xhr) {
  386.             xmlDoc = CheckIE8(xmlDoc);
  387.             var szDeviceTime = $(xmlDoc).find('localTime').eq(0).text().substring(0, 19);
  388.  
  389.             var arDTms = szDeviceTime.match(/(\d+)-(\d+)-(\d+)(\D+)(\d+):(\d+):(\d+)/);
  390.             if (arDTms.length !== 8) {
  391.                 return;
  392.             }
  393.             if(arDTms[1] <= 2015)
  394.                 syncPcTime();
  395.         }      
  396.     });
  397. }
  398.  
  399. function syncPcTime()
  400. {
  401.     var dtNow = new Date();
  402.     var txtTime = dtNow.Format("yyyy-MM-ddThh:mm:ss");
  403.        
  404.     var iTZOffset = dtNow.getTimezoneOffset();
  405.     var iHour = Math.abs(parseInt(iTZOffset / 60));
  406.  
  407.     var dtStart = new Date();
  408.     var dtMiddle = new Date(dtStart.getTime());
  409.  
  410.     dtStart.setMonth(0);
  411.     dtStart.setDate(1);
  412.     dtStart.setHours(0);
  413.     dtStart.setMinutes(0);
  414.     dtStart.setSeconds(0);
  415.     dtMiddle.setMonth(6);
  416.     dtMiddle.setDate(1);
  417.     dtMiddle.setHours(0);
  418.     dtMiddle.setMinutes(0);
  419.     dtMiddle.setSeconds(0);
  420.  
  421.     if ((dtMiddle.getTimezoneOffset() - dtStart.getTimezoneOffset()) != 0) {
  422.         if (iTZOffset == dtMiddle.getTimezoneOffset()) {
  423.             if (iTZOffset < 0) {
  424.                 iHour--;
  425.             } else {
  426.                 iHour++;
  427.             }
  428.         }
  429.     }
  430.  
  431.     var iSecond = iTZOffset % 60;
  432.     iSecond=Math.abs(iSecond);
  433.  
  434.     if(iHour < 10)
  435.         iHour = "0"+iHour;
  436.  
  437.     var szPCTZ = "CST" + ((iTZOffset >= 0) ? "+" : "-") + iHour + ((iSecond >= 30) ? ":30:00" : ":00:00");
  438.  
  439.     var root;
  440.     var Element;
  441.     var text;
  442.     var XmlDoc = new createxmlDoc();
  443.     var Instruction = XmlDoc.createProcessingInstruction("xml", "version='1.0' encoding='utf-8'");
  444.     XmlDoc.appendChild(Instruction);
  445.    
  446.     var root = XmlDoc.createElement("Time");
  447.  
  448.     Element = XmlDoc.createElement("syncPcTime");
  449.     text = XmlDoc.createTextNode("true");
  450.     Element.appendChild(text);
  451.     root.appendChild(Element);
  452.  
  453.     Element = XmlDoc.createElement("timeMode");
  454.     text = XmlDoc.createTextNode("manual");
  455.     Element.appendChild(text);
  456.     root.appendChild(Element);
  457.  
  458.     Element = XmlDoc.createElement("localTime");
  459.     text = XmlDoc.createTextNode(txtTime);
  460.     Element.appendChild(text);
  461.     root.appendChild(Element);
  462.  
  463.     Element = XmlDoc.createElement("timeZone");
  464.     text = XmlDoc.createTextNode(szPCTZ);
  465.     Element.appendChild(text);
  466.     root.appendChild(Element);
  467.  
  468.     XmlDoc.appendChild(root);
  469.  
  470.     $.ajax({
  471.         type: "PUT",
  472.         url: m_lHttp + m_szHostName + ":" + m_lHttpPort + "/PSIA/YG/system/time",
  473.         processData: false,
  474.         data: XmlDoc,
  475.         success: function (xmlDoc, textStatus, xhr) {
  476.            
  477.         }
  478.     });
  479. }
  480.  
  481.  
  482. /*************************************************
  483.  Function:       CheckIsAutoLogin
  484.  Description:    是否自动登录
  485.  Input:          无
  486.  
  487.  Output:         无
  488.  return:         无
  489.  *************************************************/
  490. function CheckIsAutoLogin()
  491. {
  492.     var opt = new Object();
  493.     opt.expires = 365;
  494.     if ($("#autoLogin").prop("checked"))
  495.     {
  496.         $.cookie('autoLogin', 'true',opt);
  497.     }
  498.     else
  499.     {
  500.         $.cookie('autoLogin', 'false',opt);
  501.     }
  502. }
Add Comment
Please, Sign In to add comment