/*=================================================================================================================
pesi_basic.js 2015.07.14 Author: RoyLan
=================================================================================================================*/
/*
Index Function name Description Author Last updated
1 showPage_a Dynamic change webpage Roy 2015.07.15
2 Gen_box_menu build box_menu list by javascript Roy 2015.07.15
3 menu_title_item_bindClick menu_title_item bind click event Roy 2015.07.15
4 menu_sub_item_SetHidden all menu_sub_item div set hidden Roy 2015.07.15
5 GetBrowserType Get what browser user using Roy 2015.07.16
6 preload_state_icons preload icon to array object Roy 2015.07.30
7 create_img create img DOM object copy from B593 Roy 2015.07.30
8 Show_Icon show icon on page Roy 2015.07.30
9 DoBlock block window when apply Roy 2015.08.04
10 UndoBlock unblock window when apply complete Roy 2015.08.04
11 ErrorBlock show error msg in block window Roy 2015.08.06
12 AlertBlock show alert msg remind user Roy 2015.08.06
13 blockSetCenter set block center Roy 2015.08.12
14 ProgressBlock build progress bar block Roy 2015.08.12
15 ProgressBlockStart show progress bar block Roy 2015.08.12
16 ProgressBlockSetValue set progress value Roy 2015.08.12
17 CanBlockWork block display controller Roy 2015.08.12
18 includeJS dynamic include js file Roy 2015.08.14
19 WaitForScriptLoad wait js load complete then do _fun Roy 2015.08.14
20 REV read designation value & return cgi param Roy 2015.08.17
21 box_menu_marker mark box menu Roy 2015.08.17
22 PasswordStrength password strength warn Roy 2016.02.26
23 AccountPassword account password strength check Roy 2016.02.26
24 InfoBlock show msg in block window Roy 2015.09.03
25 guid generate unique id Roy 2015.09.03
26 WifiPassword wifi password strength rule check Roy 2015.09.09
27 Gen_ProgressDiv generate inside progress bar Roy 2015.12.11
28 SetPRG_Percentage update inside progress bar percentage Roy 2015.12.11
29 ResetDoBlock Reset DoBlock message Roy 2016.03.21
30 waitUndoBlock Solve InfoBlock behind AlertBlock problem Roy 2016.10.21
*/
//1. Dynamic change webpage Div_ID: the div id whole will change.
function showPage_a(Div_ID,URL){
Div_ID = '#' + Div_ID;
$(Div_ID).load(URL,function (){
//do something here also.
});
}
//2. build box_menu list by javascript
//pass_level
var box_menu_down = false;
function Gen_box_menu(Div_ID, json_URI, pass_level){
var check_Login_count = 0;
var check_Login = setInterval(function(){
check_Login_count++;
if(wkey_LoginName != null)
{
clearInterval(check_Login);
_Gen_box_menu_Start();
}
else
{
if(check_Login_count > 10)
{
check_Login_count = 0;
getCheckLogin();
}
}
},50);
function _Gen_box_menu_Start(){
$.ajax({
url: json_URI,
type: "GET",
dataType: "json",
success: function(data) {
var resultHtml = null;
var Div = document.getElementById(Div_ID);
resultHtml = "
";
//"Logout ";
Div.innerHTML = resultHtml;
//菜单头部下拉和折叠
$('.submenu > a').click(function(e)
{
e.preventDefault();
var submenu = $(this).siblings('ul');
var li = $(this).parents('li');
var submenus = $('#sidebar li.submenu ul');
var submenus_parents = $('#sidebar li.submenu');
if(li.hasClass('open'))
{
submenu.slideUp();
li.removeClass('open');
} else
{
submenus.slideUp();
submenu.slideDown();
submenus_parents.removeClass('open');
li.addClass('open');
}
});
box_menu_marker();
box_menu_down = true;
//帮助连接
// $('#help_btn').bind('click',function(){
// window.open('usermanual/online_help_' + trans_str.replace('.xml','') + '.html');
// });
$('#Exit').bind('click',function(){
var param = REV('setLOGINvalue');
XHRGet(LogoutHandle, "./cgi-bin/maintenance.cgi?Command=getSessinStok", true);
});
function LogoutHandle(xmlDoc)
{
var error = getDataFromTag(xmlDoc, "Error");
if (error){
ErrorBlock("Command Error.");
return;
}
var param =REV('setLOGINvalue');
XHRPost(LogoutSetSettingHandle, "./cgi-bin/login.cgi","Command=setLOGOUTvalue", true);
}
function LogoutSetSettingHandle(xmlDoc)
{
if(checkError(xmlDoc,"window.location.reload(true)"))
return;
localStorage.removeItem("level");
window.location.href = 'Login.html';
}
//reboot
$("#reboot").bind("click",function () {
AlertBlock('Are you sure want to reboot ?','test_system_reboot()','b()');
})
function ConfirmAlert(button_value){
// if(button_value == TT('Load Default'))
// AlertBlock('Are you sure want to load default ?','restore_default()');
// else if(button_value == TT('Reboot'))
// AlertBlock('Are you sure want to reboot ?','test_system_reboot()');
// if(button_value =='Load Default')
// AlertBlock('Are you sure want to load default ?','restore_default()');
// else if(button_value == 'Reboot')
// AlertBlock('Are you sure want to reboot ?','test_system_reboot()');
//test_system_reboot()
}
function restore_default(){
setTimeout(function(){DoBlock('', '', 1)},500);
var param = "Command=";
param+= "RestoreDefault";
clearInterval(checkState);
XHRPost(restore_defaultHandle, "./cgi-bin/maintenance.cgi", param, true);
}
function restore_defaultHandle(xmlDoc){
var error = getDataFromTag(xmlDoc, "Error");
if (error){
ErrorBlock("Failure on restore default");
return;
}
redirect_system_reboot();
}
},
error: function() {
//do something here if error.
}
});
}
}
function test_system_reboot(){
var url="system_reboot.html";
if(WhatBrowser.match("IE")!=null)
{
var referLink = document.createElement('a');
referLink.href = url;
document.body.appendChild(referLink);
referLink.click();
}
else{
window.location.href = "system_reboot.html";
}
}
function b() {
}
//21. mark box menu
function box_menu_marker(){
var this_location=window.location.href;
var location_arr=this_location.split("/");
var this_html=location_arr[location_arr.length-1];
var menu_mark;
var find = 0;
//初始化菜单样式
$('#sidebar li.submenu').removeClass('open');
var all_url_admin=[ "overview.html/", "lan_settings.html/wan_settings.html/vpn_settings.html/wlan.html/ddns.html/route_settings.html/dmz.html/upnp.html/", "internet_settings.html/edit_apn_profile.html/pin_management.html/cell_selection.html/", "firewall_settings.html/ip_filtering.html/ipv6_filtering.html/mac_filtering.html/url_filter.html/connect_limit.html/schedule.html/", "port_forwarding.html/alg_setting.html/", "account.html/ntp.html/snmp.html/backup_setting.html/traffic_statistics.html/" ]
var all_url_root=[ "overview.html/", "lan_settings.html/wan_settings.html/vpn_settings.html/wlan.html/ddns.html/wifidog_settings.html/route_settings.html/dmz.html/upnp.html/", "internet_settings.html/edit_apn_profile.html/pin_management.html/cell_selection.html/cell_scan.html/sms_message.html", "firewall_settings.html/ip_filtering.html/ipv6_filtering.html/mac_filtering.html/url_filter.html/system_security.html/connect_limit.html/schedule.html/", "port_forwarding.html/alg_setting.html/port_trigger.html/", "account.html/web_service.html/ntp.html/tr069.html/tr069_2.html/snmp.html/update.html/backup_setting.html/diagnostic.html/traffic_statistics.html/ping_watchdog.html/terminal_tool.html/system_message.html/" ]
var all_url1="";
if(localStorage.getItem("level")=="01"){
all_url1=all_url_root;
}
if(localStorage.getItem("level")=="02"){
all_url1=all_url_admin;
}
for(var j=0;j a');
//在该页面展开,加背景蓝色
for(var i = 0 ; i < temp.length ; i++)
{
if(i == menu_mark)
{
temp[i].setAttribute("class","active");
temp[i].parentNode.setAttribute("class","open");
}
}
}
// //3. menu_title_item bind click event
// function menu_title_item_bindClick(){
// $('.menu_title_item').bind("click",function(){
//
// var target = null;
// var target_range = $(this).parent().children();
//
// if( target_range.length >= 2 )
// {
// target = target_range[1];
//
// if($(target).css('display') == 'block')
// $(target).css('display','none');
// else
// {
// menu_sub_item_SetHidden();
// $(target).css('display','block');
// }
// }
// else
// {
// //if no sub menu, then direct link here.
// }
// });
// }
//
// //4. all menu_sub_item div set hidden
// function menu_sub_item_SetHidden(){
// $('.menu_sub_item').css('display','none');
// $('.menu_title_item').attr('class','menu_title_item'); //for IE8 block close problem.
// }
//5. Get what browser user using
var BrowserType = {
'IE_Edge':'IE_Edge',
'IE11':'IE11',
'IE10':'IE10',
'IE9':'IE9',
'IE8':'IE8',
'IE7':'IE7',
'IE6':'IE6',
'Firefox':'Firefox',
'Chrome':'Chrome',
'Safari':'Safari',
'Unknown':'Unknown'
}
function GetBrowserType(){
var WhatBrowser = navigator.userAgent;
if (WhatBrowser.indexOf("MSIE 8.0") != -1)
WhatBrowser = BrowserType.IE8;
else if (WhatBrowser.indexOf("MSIE 7.0") != -1)
WhatBrowser = BrowserType.IE7;
else if (WhatBrowser.indexOf("MSIE 6.0") != -1)
WhatBrowser = BrowserType.IE6;
else if (WhatBrowser.indexOf("Firefox") != -1)
WhatBrowser = BrowserType.Firefox;
else if (WhatBrowser.indexOf("Edge") != -1)
WhatBrowser = BrowserType.IE_Edge;
else if (WhatBrowser.indexOf("Chrome") != -1)
WhatBrowser = BrowserType.Chrome;
else if (WhatBrowser.indexOf("Safari") != -1)
WhatBrowser = BrowserType.Safari;
else if (WhatBrowser.indexOf("MSIE 9.0") != -1)
WhatBrowser = BrowserType.IE9;
else if (WhatBrowser.indexOf("MSIE 10.0") != -1)
WhatBrowser = BrowserType.IE10;
else
{
if((WhatBrowser.indexOf(".NET") != -1) & (WhatBrowser.indexOf("rv:11.0") != -1))
WhatBrowser = BrowserType.IE11;
else
WhatBrowser = BrowserType.Unknown;
}
return WhatBrowser;
}
//6. status icon preload as array
var icon_usim = null;
var icon_rssi = null;
var icon_rssi_5_SG = null;
var icon_internet = null;
var icon_roam = null;
var icon_rssi_text=null;
var icon_rssi_5_SG_text=null;
var icon_internet_text = null;
var icon_usim_text = null;
var icon_roam_text = null;
var icon_sms_msg = null;
function preload_state_icons(){
icon_usim = [
/* 0 */ create_img('img/usim_No.png',"No USIM Card"),
/* 1 */ create_img('img/usim.png',"PIN Verified"),
/* 2 */ create_img('img/usim_Lock.png',"PIN Required"),
/* 3 */ create_img('img/usim_Lock.png',"PIN Permanently Locked"),
/* 4 */ create_img('img/usim_Error.png',"Can't Recognize"),
/* 5 */ create_img('img/usim.png',"PIN Disabled"),
/* 6 */ create_img('img/usim_Lock.png',"PIN Locked"),
/* 7 */ create_img('img/usim_No.png',"Invalid SIM"),
/* 8 */ create_img('img/usim_No.png',"Illegal SIM Card"),
/* 9 */ create_img('img/usim_No.png',"Waiting For Unlock"),
/* 10 */ create_img('img/usim_No.png',"Unlock Failure"),
/* 11 */ create_img('img/usim_No.png',"Invalid USIM")
];
icon_usim_text = ["No USIM Card","PIN Verified","PIN Required","PIN Permanently Locked","Can't Recognize","PIN Disabled","PIN Locked","Invalid SIM","Illegal SIM Card","Waiting For Unlock","Unlock Failure","Invalid USIM"];
icon_lan_status = [
create_img('img/port_up.png',),
create_img('img/port_down.png')
];
icon_sms_msg = [
create_img('img/sms_msg.png'),
];
icon_rssi = [
/* 0 */ create_img('img/Signal_No.png'),
/* 1 */ create_img('img/Signal_1.png'),
/* 2 */ create_img('img/Signal_2.png'),
/* 3 */ create_img('img/Signal_3.png'),
/* 4 */ create_img('img/Signal_4.png'),
/* 5 */ create_img('img/Signal_5.png'),
/* 6 */ create_img('img/Signal_No.png'),
/* 7 */ create_img('img/Signal_No.png')
];
icon_rssi_text=["No Signal","Weak","Good","Strong","4G","4G","No Signal","Poor"];
icon_rssi_5_SG = [
/* 0 */ create_img('img/Signal_5_No.png'),
/* 1 */ create_img('img/Signal_5_1.png'),
/* 2 */ create_img('img/Signal_5_2.png'),
/* 3 */ create_img('img/Signal_5_3.png'),
/* 4 */ create_img('img/Signal_5_4.png'),
/* 5 */ create_img('img/Signal_5_5.png'),
/* 6 */ create_img('img/Signal_5_No.png'),
/* 7 */ create_img('img/Signal_5_No.png')
];
icon_rssi_5_SG_text=["No Signal","Poor","Weak","Normal","Good","Strong","No Signal","Poor"];
icon_internet = [
/* 0 */ create_img('img/Internet_No.png'),
/* 1 */ create_img('img/Internet_No.png'),
/* 2 */ create_img('img/Internet.png'),
/* 3 */ create_img('img/Internet_No.png')
];
icon_internet_text=["Disconnected","Disconnected","Connected","Disconnected"];
icon_roam = [
/* 0 */ create_img('img/roam_On.png',"Roaming"),
/* 1 */ create_img('img/roam_Off.png',"Roaming disabled"),
/* 2 */ create_img('img/roam_Off.png',"Roaming disabled"),
/* 3 */ create_img('img/roam_Lock.png',"Roaming invalid")
];
icon_roam_text=["Roaming","Roaming disabled","Roaming disabled","Roaming invalid"];
}
//7. create img DOM object
function create_img(src){
var img = document.createElement('img');
img.src = src;
img.className="img_styles";
return img;
}
//8. add in icon on div
function Show_Icon(Div_ID,preload_icon){
//preload_icon.title = TT(preload_icon.title);
document.getElementById(Div_ID).appendChild(preload_icon);
}
function Show_Text(Div_ID,preload_text){
document.getElementById(Div_ID).innerHTML=TT(preload_text);
}
//9. block window when apply
function DoBlock(customize_msg, no_return_success, auto_close){
if(!CanBlockWork('Block'))
return;
customize_msg = (customize_msg == null | customize_msg == '') ? 'Initializing, please wait......' : customize_msg ;
if(no_return_success)
{
if(auto_close == '')
no_return_success = 'customize_Block';
else if(auto_close == 1)
no_return_success = 'customize_Block_no_auto_close';
else if(auto_close == 0)
no_return_success = 'customize_Block_auto_close';
else
no_return_success = 'customize_Block';
}
else
no_return_success = 'Block';
$.blockUI({
message: '' + TT(customize_msg) + '
',
css:{
left: '32%',
minWidth: '550px',
borderColor: '#FFF',
borderWidth: '1px'
}
});
if(WhatBrowser.indexOf('IE') != -1)
$('.Block').css('padding','18px');
blockSetCenter();
}
//9.1 block window when apply,only about FOTA.
function DoBlock_Fota(customize_msg, no_return_success, auto_close){
customize_msg = (customize_msg == null | customize_msg == '') ? 'Initializing, please wait......' : customize_msg ;
if(no_return_success)
{
if(auto_close == '')
no_return_success = 'customize_Block';
else if(auto_close == 1)
no_return_success = 'customize_Block_no_auto_close';
else if(auto_close == 0)
no_return_success = 'customize_Block_auto_close';
else
no_return_success = 'customize_Block';
}
else
no_return_success = 'Block';
$.blockUI({
message: '' + TT(customize_msg) + '
',
css:{
left: '32%',
minWidth: '550px',
borderColor: '#FFF',
borderWidth: '1px'
}
});
if(WhatBrowser.indexOf('IE') != -1)
$('.Block').css('padding','18px');
blockSetCenter();
}
//10. unblock window when apply complete
function UndoBlock(){
$.unblockUI();
}
//11. show error msg in block window when error
function ErrorBlock(error_msg,fun_OK){
if(!CanBlockWork('ErrorBlock'))
return;
var check_lang_interval = setInterval(function() {
if (trans_xml != null)
{
clearInterval(check_lang_interval);
var msgStr = (error_msg) ? TT(error_msg).replace(/\\n/g,"\n").replace(/\\t/g,"\t") : error_msg;
$.blockUI({
message: '',
css:{
left: '32%',
minWidth: '550px',
borderColor: '#FFF',
borderWidth: '1px'
}
});
blockSetCenter();
}
},100);
}
function setBlockButtonDisable()
{
$(".BlockButton").attr("disabled","disabled");
}
//12. show alert msg in block window when remind user
var AB_YES = null;
function AlertBlock(alert_msg,fun_YES,fun_NO){
AB_YES = null;
if(!CanBlockWork('AlertBlock'))
return;
var check_lang_interval = setInterval(function() {
if (trans_xml != null)
{
clearInterval(check_lang_interval);
var msgStr = (alert_msg) ? TT(alert_msg).replace(/\\n/g,"\n").replace(/\\t/g,"\t") : alert_msg;
$.blockUI({
message: '',
css:{
left: '32%',
minWidth: '550px',
borderColor: '#FFF',
borderWidth: '1px'
}
});
blockSetCenter();
}
},100);
}
//13. set block center
function blockSetCenter() {
var temp = $('.blockUI.blockMsg.blockPage');
var shift_top = 50;
var shift_left = 0;
var center_Top = ((($(window).height() - temp.height()) /2) - shift_top + "px");
var center_Left = (( $(window).width() - temp.width() ) /2 + "px");
temp.css({
top: center_Top,
left: center_Left
});
if($(".BlockButton").val() == TT("OK") || $(".BlockButton").val() == TT("YES"))
$(".BlockButton").focus();
}
//14. build progress bar block
function ProgressBlock(){
$.blockUI({
message: '',
css:{
minWidth: '550px',
height: '38px',
borderColor: '#FFF',
borderWidth: '5px'
}
});
blockSetCenter();
}
//15. show progress bar block when processing
function ProgressBlockStart(add_btn_cancel){
if(!CanBlockWork('ProgressBlock'))
return;
ProgressBlock();
var progressbar = $( "#progressbar" ),
progressLabel = $( ".progress-label" ),
progressText = $( ".progress-text" );
//Add cancel button
if(add_btn_cancel != null)
{
var btn_cancel = document.createElement('input');
btn_cancel.id = 'pgb_cancel';
btn_cancel.type = 'button';
btn_cancel.className = 'Button BlockButton progress-button-cancel';
btn_cancel.value = TT('Cancel');
btn_cancel.onclick = function(){
if(typeof(ProgressCancel) == 'function')
ProgressCancel();
UndoBlock();
};
progressbar[0].appendChild(btn_cancel);
}
progressbar.progressbar({
value: false,
change: function() {
progressLabel.text('[' + progressbar.progressbar( "value" ) + "%]" );
if(progressText.text() == TT('Loading...'))
progressText.text(TT('Now processing please wait ...'));
},
complete: function() {
if(add_btn_cancel != null)
progressbar[0].removeChild(btn_cancel);
if(progressText.text() == TT('Now processing please wait ...'))
progressText.text( TT('Complete!') );
if(add_btn_cancel != null)
{
var btn = document.createElement('input');
btn.type = 'button';
btn.className = 'Button BlockButton progress-button';
btn.value = TT('OK');
btn.onclick = function(){
if(typeof(ProgressComplete) == 'function')
ProgressComplete();
UndoBlock();
};
progressbar[0].appendChild(btn);
}
}
});
}
//16. set progress value
function ProgressBlockSetValue(value) {
var progressbar = $( "#progressbar" );
if(value < progressbar.progressbar("value"))
return false;
else
progressbar.progressbar( "value", value );
}
//17. block display controller
function CanBlockWork(blockType){
//Error Block always top
if($('.ErrorBlock').length != 0)
return false;
switch(blockType){
case 'Block':
if(($('.Block').length != 0) | ($('#progressbar').length != 0))
return false;
break;
case 'ErrorBlock':
return true;
case 'AlertBlock':
return true;
case 'ProgressBlock':
if(($('#progressbar').length != 0) | (eval("typeof $().progressbar") == 'undefined'))
return false;
break;
default:
break;
}
return true;
}
//18. dynamic include js file
function includeJS(URI){
var s = document.createElement('script');
s.setAttribute('type', 'text/javascript');
s.setAttribute('src', URI);
var head = document.getElementsByTagName('head')[0];
if (head)
head.appendChild(s);
else
document.body.appendChild(s);
}
//19. wait js load complete then do _function
function WaitForScriptLoad(Script, _function) {
var interval = setInterval(function() {
if (eval("typeof " + Script) != 'undefined') {
clearInterval(interval);
_function;
}
},50);
}
//20. read designation value & return cgi param
function REV(CommandStr, Apply_tag){
var result = 'Command=' + CommandStr;
var radio_scaned = '';
Apply_tag = Apply_tag || 'middle';
var ele_items = $('#' + Apply_tag)[0];
ReadEleValue(ele_items);
function ReadEleValue(ele){
if(ele.children.length > 0)
{
if(ele.value)
{
if(ele.id)
result += '&' + ele.id + '=' + encodeURIComponent(ele.value);
else if(ele.name)
result += '&' + ele.name + '=' + encodeURIComponent(ele.value);
}
else
{
for(var i = 0 ; i < ele.children.length ; i++)
{
if(ele.children[i].type == 'radio')
{
if(radio_scaned != ele.children[i].name)
{
var temp = document.getElementsByName(ele.children[i].name);
var temp_value = '';
for(var n = 0 ; n < temp.length ; n++)
if(temp[n].checked)
temp_value = temp[n].value;
result += '&' + ele.children[i].name + '=' + encodeURIComponent(temp_value);
radio_scaned = ele.children[i].name;
}
}
else
ReadEleValue(ele.children[i]);
}
}
}
else
{
if(ele.value)
{
if(ele.type != "button")
{
//id
if(ele.id)
result += '&' + ele.id + '=';
else if(ele.name)
result += '&' + ele.name + '=';
//value
if(ele.type == "checkbox")
result += (ele.checked)?1:0;
else
result += encodeURIComponent(ele.value);
}
}
}
}
return result;
}
//22. password strength warn
var PasswordMode = {
'Account':'account',
'WiFi':'wifi',
'SSID':'ssid'
}
function PasswordStrength(ele_id, password_mode, check_reverse_id, add_arrow){
if(typeof(add_arrow) == 'undefined')
add_arrow = true;
var Ele = $('#' + ele_id);
Ele.keyup(function(e){
var Text_tag = $('.' + ele_id);
if($('.' + ele_id).size() == 0)
{
var aContent = document.createElement('div');
aContent.className = 'Strength ' + ele_id;
Ele[0].parentElement.appendChild(aContent);
Text_tag = $('.' + ele_id);
if(add_arrow)
{
var aArrow = document.createElement('div');
var aDiv = document.createElement('div');
aArrow.className = 'Strength_Arrow';
aDiv.className = 'Strength_Text ' + ele_id;
$('.Strength.' + ele_id)[0].appendChild(aArrow);
$('.Strength.' + ele_id)[0].appendChild(aDiv);
}
}
if(add_arrow)
Text_tag = $('.Strength_Text.' + ele_id);
if(password_mode == PasswordMode.Account)
{
var s = $('#' + check_reverse_id).html();
AccountPassword(Ele, Text_tag, s);
}
else if(password_mode == PasswordMode.WiFi)
{
var s = $('#' + check_reverse_id).val();
WifiPassword(Ele, Text_tag, s);
}
else if(password_mode == PasswordMode.SSID)
{
var s = $('#' + check_reverse_id).val();
SsidPassword(Ele,Text_tag, s);
}
});
}
function SsidPassword(Ele, Text_tag, Check_Reverse_Str)
{
var i = 0;
var input_Ssid = Ele.val();
if(input_Ssid.match(/[0-9]/) != null)
{
i++;
}
if(input_Ssid.match(/[a-z]/) != null)
{
i++;
}
if(input_Ssid.match(/[A-Z]/) != null)
{
i++;
}
if(input_Ssid.match(/[-_]/) != null)
{
i++;
}
if(input_Ssid.length<8)
{
Text_tag.css('color','gray');
Text_tag[0].innerHTML = TT('Weak');
$('.Strength.' + Ele[0].id).removeClass('hidden');
}
else
{
if(i>=3)
{
Text_tag.css('color','blue');
Text_tag[0].innerHTML = TT('Strong!');
$('.Strength.' + Ele[0].id).removeClass('hidden');
}
else if(i>=2)
{
Text_tag.css('color','green');
Text_tag[0].innerHTML = TT('Medium!');
$('.Strength.' + Ele[0].id).removeClass('hidden');
}
else
{
Text_tag.css('color','red');
Text_tag[0].innerHTML = TT('Weak!');
$('.Strength.' + Ele[0].id).removeClass('hidden');
}
}
}
//23. account password strength rule check
function AccountPassword(Ele, Text_tag, Check_Reverse_Str){
var input_value = Ele.val();
if(input_value.length < 8)
{
Text_tag.css('color','gray');
Text_tag[0].innerHTML = TT('More Characters');
$('.Strength.' + Ele[0].id).removeClass('hidden');
}
else if(input_value.length > 15)
{
Text_tag.css('color','red');
Text_tag[0].innerHTML = TT('Less Characters');
$('.Strength.' + Ele[0].id).removeClass('hidden');
}
else if(_PwdRulePass())
{
Text_tag.css('color','blue');
Text_tag[0].innerHTML = TT('OK');
$('.Strength.' + Ele[0].id).removeClass('hidden');
}
else
$('.Strength.' + Ele[0].id).addClass('hidden');
function _PwdRulePass(){
var range = input_value.length;
for(var i = 0 ; i < range ; i++)
{
//check it's in ASCII 32 ~ 126
if((input_value[i].charCodeAt() < 32) | (input_value[i].charCodeAt() > 126))
return false;
else
{
//check it's no same char with three
var triple_char = input_value[i] + input_value[i] + input_value[i];
if(input_value.indexOf(triple_char) > 0)
return false;
}
}
/*
Simplify password rules, modified by hua
if(input_value.match(/[,'":;%+<>?&\\]/))
return false;
else if(input_value.match(/[!#$()*-./=@\[\]^_`{|}~]/) == null)
return false;
else if(input_value.match(/[a-z]/) == null)
return false;
else if(input_value.match(/[A-Z]/) == null)
return false;
else if(input_value.match(/[0-9]/) == null)
return false;
else if((input_value[0] == ' ') | (input_value[range - 1] == ' '))
return false;
else
{
var head_Str = input_value.substring(0, Check_Reverse_Str.length);
if((head_Str == Check_Reverse_Str) | (IsReverse(head_Str, Check_Reverse_Str)))
return false;
}
*/
return true;
}
}
//24. show msg in block
var BlockQue = new Array();
function InfoBlock(msg, fun_OK){
var check_lang_interval = setInterval(function() {
if (trans_xml != null)
{
clearInterval(check_lang_interval);
_InfoBlock();
}
},100);
function _InfoBlock(){
var _BlockQueNumber = guid();
BlockQue.push(_BlockQueNumber);
var interval = setInterval(function() {
if (($('.Block').length == 0) & ($('#progressbar').length == 0))
{
if(_BlockQueNumber == BlockQue[0])
{
clearInterval(interval);
_function();
BlockQue.splice(0,1);
}
}
},50);
function _function(){
var msgStr = (msg) ? TT(msg).replace(/\\n/g,"\n").replace(/\\t/g,"\t") : msgStr;
$.blockUI({
message: '',
css:{
left: '32%',
minWidth: '550px',
borderColor: '#FFF',
borderWidth: '1px'
}
});
blockSetCenter();
}
}
}
//25. generate unique id
function guid(){
function rn() {
return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
}
return rn() + rn() + '-' + rn() + '-' + rn() + '-' + rn() + '-' + rn() + rn() + rn();
}
//26. wifi password strength rule check
function WifiPassword(Ele, Text_tag , Check_Reverse_Str){
var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
var mediumRegex = new RegExp("^(?=.{8,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[a-z])(?=.*\\W))|((?=.*[0-9])(?=.*\\W))|((?=.*[A-Z])(?=.*\\W))).*$", "g");
var enoughRegex = new RegExp("(?=.{8,}).*", "g");
var input_value = Ele.val();
if(input_value.length < 8)
{
Text_tag.css('color','gray');
Text_tag[0].innerHTML = TT('More Characters');
$('.Strength.' + Ele[0].id).removeClass('hidden');
}
if(input_value.length > 64)
{
Text_tag.css('color','red');
Text_tag[0].innerHTML = TT('Less Characters');
$('.Strength.' + Ele[0].id).removeClass('hidden');
}
else if(input_value == Check_Reverse_Str )
{
Text_tag.css('color','red');
Text_tag[0].innerHTML = TT('Weak!');
$('.Strength.' + Ele[0].id).removeClass('hidden');
}
else if(IsReverse(input_value, Check_Reverse_Str)&&( input_value.length != 0))
{
Text_tag.css('color','red');
Text_tag[0].innerHTML = TT('Weak!');
$('.Strength.' + Ele[0].id).removeClass('hidden');
}
else if(strongRegex.test(input_value))
{
Text_tag.css('color','blue');
Text_tag[0].innerHTML = TT('Strong!');
$('.Strength.' + Ele[0].id).removeClass('hidden');
}
else if(mediumRegex.test(input_value))
{
Text_tag.css('color','green');
Text_tag[0].innerHTML = TT('Medium!');
$('.Strength.' + Ele[0].id).removeClass('hidden');
}
else
{
if(input_value.length >= 8 &&input_value.length <=64)
{
Text_tag.css('color','red');
Text_tag[0].innerHTML = TT('Weak!');
$('.Strength.' + Ele[0].id).removeClass('hidden');
}
}
}
//27. generate inside progress bar
function Gen_ProgressDiv(parent_id){
var New_PRG = '';
$('#' + parent_id).html(New_PRG);
}
//28. update inside progress bar percentage
function SetPRG_Percentage(value_max, value_now){
var value = (value_now / value_max) * 100;
if(value > 100)
value = 100;
else
value = Math.round(value);
var prg_2 = parseInt($('#PRG_2').css('width').replace('px'));
var prg_1 = parseInt($('#PRG_1').css('width').replace('px'));
var last_percent = Math.round((prg_2 / prg_1)*100);
if(value < last_percent)
return;
$('#PRG_2').css('width', value + '%');
$('#PRG_Value').html('[ ' + value + '% ]');
}
//29. Reset DoBlock message
function ResetDoBlock(msgStr, bt_ok){
msgStr = (msgStr == null | msgStr == '') ? TT('Setting changed successfully.') : TT(msgStr) ;
bt_ok = (bt_ok == null) ? true : bt_ok ;
if($('#Block').html() != null)
{
if($('#Block').html().match(msgStr) != null)
return;
else
{
if($('.Button.BlockButton')[0] == undefined)
$('.BlockTextArea').html(msgStr);
if(bt_ok == true)
{
$('.Block_Loading_Img').remove();
$('#Block').append(' ');
if($(".BlockButton").val() == TT("OK") || $(".BlockButton").val() == TT("YES"))
$(".BlockButton").focus();
}
}
}
}
//30. Solve InfoBlock behind AlertBlock problem
function waitUndoBlock(cus_fn){
var check_count = 0;
var checkAlertBlock = setInterval(function(){
if($('.AlertBlock').length==0)
{
clearInterval(checkAlertBlock);
setTimeout(cus_fn,50);
}
else
check_count++;
if(check_count >= 20)
UndoBlock();
else if(check_count >= 50)
{
clearInterval(checkAlertBlock);
setTimeout(cus_fn,50);
}
},50)
}