|
|
|
|
function checkPwdStrong(pwd) {
|
|
|
|
|
var c0 = pwd.length >= 6;
|
|
|
|
|
var c1 = /[a-z]+/.test(pwd);
|
|
|
|
|
var c2 = /[A-Z]+/.test(pwd);
|
|
|
|
|
var c3 = /[0-9]+/.test(pwd);
|
|
|
|
|
if (c0 && c1 && c2 && c3) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$.fn.serializeObject = function () {
|
|
|
|
|
var o = {};
|
|
|
|
|
var a = this.serializeArray();
|
|
|
|
|
$.each(a, function () {
|
|
|
|
|
if (o[this.name]) {
|
|
|
|
|
if (!o[this.name].push) {
|
|
|
|
|
o[this.name] = [o[this.name]];
|
|
|
|
|
}
|
|
|
|
|
o[this.name].push(this.value || '');
|
|
|
|
|
} else {
|
|
|
|
|
o[this.name] = this.value || '';
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
return o;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$.fn.toJson = function () {
|
|
|
|
|
var self = this,
|
|
|
|
|
json = {},
|
|
|
|
|
push_counters = {},
|
|
|
|
|
patterns = {
|
|
|
|
|
"validate": /^[a-zA-Z][a-zA-Z0-9_]*(?:\[(?:\d*|[a-zA-Z0-9_]+)\])*$/,
|
|
|
|
|
"key": /[a-zA-Z0-9_]+|(?=\[\])/g,
|
|
|
|
|
"push": /^$/,
|
|
|
|
|
"fixed": /^\d+$/,
|
|
|
|
|
"named": /^[a-zA-Z0-9_]+$/
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
this.build = function (base, key, value) {
|
|
|
|
|
base[key] = value;
|
|
|
|
|
return base;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
this.push_counter = function (key) {
|
|
|
|
|
if (push_counters[key] === undefined) {
|
|
|
|
|
push_counters[key] = 0;
|
|
|
|
|
}
|
|
|
|
|
return push_counters[key]++;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
$.each($(this).serializeArray(), function () {
|
|
|
|
|
// skip invalid keys
|
|
|
|
|
if (!patterns.validate.test(this.name)) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var k,
|
|
|
|
|
keys = this.name.match(patterns.key),
|
|
|
|
|
merge = this.value,
|
|
|
|
|
reverse_key = this.name;
|
|
|
|
|
|
|
|
|
|
while ((k = keys.pop()) !== undefined) {
|
|
|
|
|
// adjust reverse_key
|
|
|
|
|
reverse_key = reverse_key.replace(new RegExp("\\[" + k + "\\]$"), '');
|
|
|
|
|
|
|
|
|
|
// push
|
|
|
|
|
if (k.match(patterns.push)) {
|
|
|
|
|
merge = self.build([], self.push_counter(reverse_key), merge);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// fixed
|
|
|
|
|
else if (k.match(patterns.fixed)) {
|
|
|
|
|
merge = self.build([], k, merge);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// named
|
|
|
|
|
else if (k.match(patterns.named)) {
|
|
|
|
|
merge = self.build({}, k, merge);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
json = $.extend(true, json, merge);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return json;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$.fn.loadData = function (obj) {
|
|
|
|
|
var key, value, tagName, type, arr;
|
|
|
|
|
|
|
|
|
|
this.resetForm();
|
|
|
|
|
|
|
|
|
|
for (var x in obj) {
|
|
|
|
|
if (obj.hasOwnProperty(x)) {
|
|
|
|
|
key = x;
|
|
|
|
|
value = obj[x];
|
|
|
|
|
|
|
|
|
|
this.find("[name='" + key + "'],[name='" + key + "[]']").each(function () {
|
|
|
|
|
tagName = $(this)[0].tagName.toUpperCase();
|
|
|
|
|
type = $(this).attr('type');
|
|
|
|
|
if (tagName == 'INPUT') {
|
|
|
|
|
if (type == 'radio') {
|
|
|
|
|
if ($(this).val() == value) {
|
|
|
|
|
$(this).attr('checked', true);
|
|
|
|
|
}
|
|
|
|
|
} else if (type == 'checkbox') {
|
|
|
|
|
if (value) {
|
|
|
|
|
$(this).prop('checked', true);
|
|
|
|
|
} else {
|
|
|
|
|
$(this).prop('checked', false);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$(this).val(value);
|
|
|
|
|
}
|
|
|
|
|
} else if (tagName == 'SELECT' || tagName == 'TEXTAREA') {
|
|
|
|
|
$(this).val(value);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$(function () {
|
|
|
|
|
$(document).on('click', 'a.tabs', function () {
|
|
|
|
|
var url = $(this).data('url');
|
|
|
|
|
if (url != undefined && url.length > 0) {
|
|
|
|
|
var title = $(this).data('title');
|
|
|
|
|
if (title == undefined) {
|
|
|
|
|
title = "New Page";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//debugger;
|
|
|
|
|
if (url.indexOf('?') > -1) {
|
|
|
|
|
url += "&rnd=" + new Date()
|
|
|
|
|
} else {
|
|
|
|
|
url += "?rnd=" + new Date()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
parent.addMenuTab(url, title, 0)
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
function digitUppercase(n) {
|
|
|
|
|
var fraction = ['角', '分'];
|
|
|
|
|
var digit = [
|
|
|
|
|
'零', '壹', '贰', '叁', '肆',
|
|
|
|
|
'伍', '陆', '柒', '捌', '玖'
|
|
|
|
|
];
|
|
|
|
|
var unit = [
|
|
|
|
|
['元', '万', '亿'],
|
|
|
|
|
['', '拾', '佰', '仟']
|
|
|
|
|
];
|
|
|
|
|
var head = n < 0 ? '负' : '';
|
|
|
|
|
n = Math.abs(n);
|
|
|
|
|
var s = '';
|
|
|
|
|
for (var i = 0; i < fraction.length; i++) {
|
|
|
|
|
s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
|
|
|
|
|
}
|
|
|
|
|
s = s || '整';
|
|
|
|
|
n = Math.floor(n);
|
|
|
|
|
for (var i = 0; i < unit[0].length && n > 0; i++) {
|
|
|
|
|
var p = '';
|
|
|
|
|
for (var j = 0; j < unit[1].length && n > 0; j++) {
|
|
|
|
|
p = digit[n % 10] + unit[1][j] + p;
|
|
|
|
|
n = Math.floor(n / 10);
|
|
|
|
|
}
|
|
|
|
|
s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
|
|
|
|
|
}
|
|
|
|
|
return head + s.replace(/(零.)*零元/, '元')
|
|
|
|
|
.replace(/(零.)+/g, '零')
|
|
|
|
|
.replace(/^整$/, '零元整');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var REGEX_EMAIL = '([a-z0-9!#$%&\'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+/=?^_`{|}~-]+)*@' +
|
|
|
|
|
'(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)';
|
|
|
|
|
|
|
|
|
|
Date.prototype.format = function (fmt) {
|
|
|
|
|
var o = {
|
|
|
|
|
"M+": this.getMonth() + 1, //月份
|
|
|
|
|
"d+": this.getDate(), //日
|
|
|
|
|
"h+": this.getHours(), //小时
|
|
|
|
|
"m+": this.getMinutes(), //分
|
|
|
|
|
"s+": this.getSeconds(), //秒
|
|
|
|
|
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
|
|
|
|
|
"S": this.getMilliseconds() //毫秒
|
|
|
|
|
};
|
|
|
|
|
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
|
|
|
|
|
for (var k in o)
|
|
|
|
|
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
|
|
|
|
|
return fmt;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function PkgsToEn(strPkgs,strKindPkgs) {
|
|
|
|
|
return 'SAY:' + ToEn(strPkgs).toUpperCase() + ' ' + strKindPkgs + ' ONLY.'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function ToEn(a) {
|
|
|
|
|
var arr1 = new Array("", " thousand", " million", " billion");
|
|
|
|
|
var b = a.length,
|
|
|
|
|
f,
|
|
|
|
|
h = 0,
|
|
|
|
|
g = "",
|
|
|
|
|
e = Math.ceil(b / 3),
|
|
|
|
|
k = b - e * 3;
|
|
|
|
|
g = "";
|
|
|
|
|
for (f = k; f < b; f += 3) {
|
|
|
|
|
++h;
|
|
|
|
|
num3 = f >= 0 ? a.substring(f, f + 3) : a.substring(0, k + 3);
|
|
|
|
|
strEng = English(num3);
|
|
|
|
|
if (strEng != "") {
|
|
|
|
|
if (g != "") g += " ";
|
|
|
|
|
g += English(num3) + arr1[e - h]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return g
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function English(a) {
|
|
|
|
|
var arr1 = new Array("", " thousand", " million", " billion"),
|
|
|
|
|
arr2 = new Array("zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"),
|
|
|
|
|
arr3 = new Array("zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"),
|
|
|
|
|
arr4 = new Array("ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
strRet = "";
|
|
|
|
|
if (a.length == 3 && a.substr(0, 3) != "000") {
|
|
|
|
|
if (a.substr(0, 1) != "0") {
|
|
|
|
|
strRet += arr3[a.substr(0, 1)] + " hundred";
|
|
|
|
|
if (a.substr(1, 2) != "00") strRet += " and "
|
|
|
|
|
}
|
|
|
|
|
a = a.substring(1)
|
|
|
|
|
}
|
|
|
|
|
if (a.length == 2) if (a.substr(0, 1) == "0") a = a.substring(1);
|
|
|
|
|
else if (a.substr(0, 1) == "1") strRet += arr4[a.substr(1, 2)];
|
|
|
|
|
else {
|
|
|
|
|
strRet += arr2[a.substr(0, 1)];
|
|
|
|
|
if (a.substr(1, 1) != "0") strRet += "-";
|
|
|
|
|
a = a.substring(1)
|
|
|
|
|
}
|
|
|
|
|
if (a.length == 1 && a.substr(0, 1) != "0") strRet += arr3[a.substr(0, 1)];
|
|
|
|
|
return strRet
|
|
|
|
|
}
|