/*
Copyright (c) 2008, Meiya! Inc. All rights reserved.
version: 1.0
created:songzm
date:2011-11-05
*/
/*浏览器判断*/
var
gsAgent = navigator.userAgent.toLowerCase(),
gsAppVer = navigator.appVersion.toLowerCase(),
gsAppName = navigator.appName.toLowerCase(),
gbIsOpera = gsAgent.indexOf("opera") > -1,
gbIsWebKit = gsAgent.indexOf("applewebkit") > -1,
gbIsKHTML = gsAgent.indexOf("khtml") > -1
|| gsAgent.indexOf("konqueror") > -1 || gbIsWebKit,
gbIsChrome = gbIsWebKit && gsAgent.indexOf("chrome") > -1,
gbIsSafari = gbIsWebKit && !gbIsChrome,
gbIsIE = (gsAgent.indexOf("compatible") > -1 && !gbIsOpera)
|| gsAgent.indexOf("msie") > -1,
gbIsTT = gbIsIE ? (gsAppVer.indexOf("tencenttraveler") != -1 ? 1 : 0) : 0,
gbIsQBWebKit = gbIsWebKit ? (gsAppVer.indexOf("qqbrowser") != -1 ? 1 : 0) : 0,
gbIsQBIE = gbIsIE,
gbIsFF = gsAgent.indexOf("gecko") > -1 && !gbIsKHTML,
gbIsNS = !gbIsIE && !gbIsOpera && !gbIsKHTML && (gsAgent.indexOf("mozilla") == 0)
&& (gsAppName == "netscape"),
gbIsAgentErr = !(gbIsOpera || gbIsKHTML || gbIsSafari || gbIsIE || gbIsTT
|| gbIsFF || gbIsNS),
gbIsWin = gsAgent.indexOf("windows") > -1 || gsAgent.indexOf("win32") > -1,
gbIsVista = gbIsWin && (gsAgent.indexOf("nt 6.0") > -1 || gsAgent.indexOf("windows vista") > -1),
gbIsWin7 = gbIsWin && gsAgent.indexOf("nt 6.1") > -1,
gbIsMac = gsAgent.indexOf("macintosh") > -1 || gsAgent.indexOf("mac os x") > -1,
gbIsLinux = gsAgent.indexOf("linux") > -1,
gbIsAir = gsAgent.indexOf("adobeair") > -1;
String.prototype.trim = function () { return this.replace(/(^\s*)|(\s*$)/g, ""); }
String.prototype.isInt = function () { return new RegExp('^[\\d]+$').test(this) ? true : false; }
String.prototype.toNumber = function () { return Number(this); }
String.prototype.isChar = function () { return new RegExp('^[A-Za-z]+$').test(this) ? true : false; }
String.prototype.isPhone = function () { return new RegExp('^0[1-9]{1,2}[0-9]{1}-[1-9]{1}[0-9]{6,7}$').test(this) ? true : false; }
String.prototype.isMobile = function () { return new RegExp('^1[358]{1}[0-9]{1}[0-9]{8}$').test(this) ? true : false; }
String.prototype.getLength = function () {
var len = 0;
for (var i = 0; i < this.length; i++) {
if (this.charCodeAt(i) > 256)
len += 2;
else
len++;
}
return len;
}
String.prototype.isIdcard = function () {
var Errors = new Array("true", "身份证号码位数不对!", "身份证号码出生日期超出范围或含有非法字符!", "身份证号码校验码错误!", "身份证地区非法!");
var area = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外" }
var idcard = this, Y, JYM;
var S, M;
var idcard_array = new Array();
idcard_array = idcard.split("");
//地区检验
if (area[parseInt(idcard.substr(0, 2))] == null) return Errors[4];
//身份号码位数及格式检验
switch (idcard.length) {
case 15:
if ((parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0 || ((parseInt(idcard.substr(6, 2)) + 1900) % 100 == 0 && (parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0)) {
ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;
//测试出生日期的合法性
} else {
ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;
//测试出生日期的合法性
}
if (ereg.test(idcard)) return Errors[0];
else return Errors[2];
break;
case 18:
//18位身份号码检测
//出生日期的合法性检查
//闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
//平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
if (parseInt(idcard.substr(6, 4)) % 4 == 0 || (parseInt(idcard.substr(6, 4)) % 100 == 0 && parseInt(idcard.substr(6, 4)) % 4 == 0)) {
ereg = /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;
//闰年出生日期的合法性正则表达式
} else {
ereg = /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;
//平年出生日期的合法性正则表达式
}
if (ereg.test(idcard)) {//测试出生日期的合法性
//计算校验位
S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
+ parseInt(idcard_array[7]) * 1
+ parseInt(idcard_array[8]) * 6
+ parseInt(idcard_array[9]) * 3;
Y = S % 11;
M = "F";
JYM = "10X98765432";
M = JYM.substr(Y, 1);
//判断校验位
if (M == idcard_array[17].toUpperCase()) return Errors[0]; //检测ID的校验位
else return Errors[3];
}
else return Errors[2];
break;
default:
return Errors[1];
break;
}
}
jQuery.extend(
{
/**
* @see 将javascript数据类型转换为json字符串
* @param 待转换对象,支持object,array,string,function,number,boolean,regexp
* @return 返回json字符串
*/
toJSON: function (object) {
var type = typeof object;
if ('object' == type) {
if (Array == object.constructor)
type = 'array';
else if (RegExp == object.constructor)
type = 'regexp';
else
type = 'object';
}
switch (type) {
case 'undefined':
case 'unknown':
return;
break;
case 'function':
case 'boolean':
case 'regexp':
return object.toString();
break;
case 'number':
return isFinite(object) ? object.toString() : 'null';
break;
case 'string':
return '"' + object.replace(/(\\|\")/g, "\\$1").replace(/\n|\r|\t/g,
function () {
var a = arguments[0];
return (a == '\n') ? '\\n' :
(a == '\r') ? '\\r' :
(a == '\t') ? '\\t' : ""
}) + '"';
break;
case 'object':
if (object === null) return 'null';
var results = [];
for (var property in object) {
var value = jQuery.toJSON(object[property]);
if (value !== undefined)
results.push(jQuery.toJSON(property) + ':' + value);
}
return '{' + results.join(',') + '}';
break;
case 'array':
var results = [];
for (var i = 0; i < object.length; i++) {
var value = jQuery.toJSON(object[i]);
if (value !== undefined) results.push(value);
}
return '[' + results.join(',') + ']';
break;
}
}
});
var Meiya = {};
Meiya.PlugIn = {};
/*遮罩使用方式:
显示:Meiya.PlugIn.Mask.show();
关闭: Meiya.PlugIn.Mash.hide();
*/
Meiya.PlugIn.Mask = {
show: function () {
if (!document.getElementById('mask_layer')) {
var div = document.createElement('div');
div.id = 'mask_layer';
div.style.backgroundColor = "#FFFF00";
div.style.display = "none";
div.innerHTML = "<iframe id='maskBgfrm' frameborder='1' style='z-index:10;position: absolute;left:0px;top:-1px;width:100%;height:100px;filter:Alpha(Opacity=30);-moz-opacity:0.4;opacity:0.4' scrolling='no' src=''></iframe>";
document.body.appendChild(div);
//$('#mask_layer').addClass("maskbg");
$("#mask_layer").css({ "background": "#000000 none repeat scroll 0 0", "height": "100%", "left": "0", "opacity": "0.2", "position": "absolute", "top": "0", "width": "100%", "z-index": "11" });
}
$('#mask_layer').height($(document).height());
$('#maskBgfrm').height($(document).height());
$('#mask_layer').css("filter", "Alpha(Opacity=30)");
$('#mask_layer').css("-moz-opacity", "0.3");
$('#mask_layer').css("opacity", "0.3");
$('#mask_layer').show();
},
hide: function () {
if (document.getElementById('mask_layer'))
$('#mask_layer').hide();
}
}
/*
弹出提示框调用方式:
打开:
Meiya.PlugIn.Pop.show(params);
params参数格式为:
{
title:"温馨提示",//提示标题
Content:"内容",//提示内容
IsClose:false,//是否有关闭按钮
IsEnter:false,//是否有确定按钮
IsCancel:false,//是否有取消按钮
Data:'sssss',//传递到按钮事件中的数据参数
CallBack:{
Close:function(){},//绑定到关闭按钮上的事件
Enter:function(){},//绑定到确定按钮上的事件
Cancel:function(){}//绑定到取消按钮上的事件
}
}
关闭:
Meiya.PlugIn.Pop.hide();
*/
Meiya.PlugIn.Pop = {
HTML: function (params) {
var html = [];
html.push('<div class="popUp">');
html.push(' <h2>{0}{1}<span title="最小化后点击右下角还原按钮可恢复" onclick=\'$(".popUp").hide();$("#mini").show()\'>最小化</span></h2>');
html.push(' <div class="tipsinfo">');
html.push(' <p >{2}</p>');
html.push(' <p class="caozuo">');
html.push(' {3}'); //<input type="button" value="确 定" name="" />
html.push(' {4}'); //<input type="button" value="取 消" name="" />
html.push(' {5}'); //<input type="button" value="关 闭" name="" />
html.push(' </p>');
html.push(' </div>');
html.push('</div>');
if (params.title) html[1] = html[1].replace("{1}", params.title);
if (params.Content) html[3] = html[3].replace("{2}", params.Content);
var btnEnterText = "确 定", btnCancelText = "取 消", btnCloseText = "关 闭";
if (params.BtnEnterText && params.BtnEnterText.length > 0) {
btnEnterText = params.BtnEnterText;
}
if (params.BtnCancelText && params.BtnCancelText.length > 0) {
btnCancelText = params.BtnCancelText;
}
if (params.BtnCloseText && params.BtnCloseText.length > 0) {
btnCloseText = params.BtnCloseText;
}
if (params.IsClose) {
html[1] = html[1].replace("{0}", '<a href="javascript:void(0)" id="aClose" title="关闭"></a>');
html[7] = html[7].replace("{5}", '<input type="button" id="btnClose" value="' + btnCloseText + '" name="" />');
}
else {
html[1] = html[1].replace("{0}", '');
html[7] = html[7].replace("{5}", '');
}
if (params.IsEnter) {
html[5] = html[5].replace("{3}", '<input type="button" id="btnEnter" value="' + btnEnterText + '" name="" />');
}
else {
html[5] = html[5].replace("{3}", '');
}
if (params.IsCancel) {
html[6] = html[6].replace("{4}", '<input type="button" id="btnCancel" value="' + btnCancelText + '" name="" />');
}
else {
html[6] = html[6].replace("{4}", '');
}
return html.join("");
},
show: function (params) {
if (!params) {
params = {};
}
params.title = params.title ? params.title : "温馨提示";
params.IsClose = params.IsClose ? params.IsClose : false;
params.IsEnter = params.IsEnter ? params.IsEnter : false;
params.IsCancel = params.IsCancel ? params.IsCancel : false;
params.Content = params.Content ? params.Content : "......";
params.CallBack = params.CallBack ? params.CallBack : false;
params.Data = params.Data ? params.Data : "";
if ($(".popUp").length > 0) $("div").remove(".popUp");
$(document.body).append(Meiya.PlugIn.Pop.HTML(params));
$(".popUp").css("top", ($(document).scrollTop() + 260) + "px");
$(".popUp").css("left", ($("body").width() - $(".popUp").width()) / 2);
if (params.IsClose) {
$("#aClose,#btnClose").bind("click", params.Data, params.CallBack.Close);
}
if (params.IsCancel) {
$("#btnCancel").bind("click", params.Data, params.CallBack.Cancel);
}
if (params.IsEnter) {
$("#btnEnter").bind("click", params.Data, params.CallBack.Enter);
}
$(".popUp").show();
},
hide: function () {
$(".popUp").hide();
if ($("#btnEnter").length > 0)
$("#btnEnter").unbind();
if ($("#btnCancel").length > 0)
$("#btnCancel").unbind();
if ($("#btnClose").length > 0)
$("#btnClose,#aClose").unbind();
},
SetTips: function (msg) {
$(".tipsinfo > p:first-child").html(msg);
},
Reset: function (params) {
$("div").remove(".popUp");
Meiya.PlugIn.Pop.show(params);
}
}
//登录弹出框调用方式:Meiya.PlugIn.Login.show({ CallBack: 回调函数名 });
Meiya.PlugIn.Login = {
HTML: function () {
var html = [];
html.push('<div class="popLoginBox">');
html.push(' <h2></h2>');
html.push(' <div class="popLogin">');
html.push(' <ul>');
html.push(' <li>');
html.push(' <span>用户名:</span>');
html.push(' <input type="text" value="" id="txtLoginName" class="right_color" maxlength=20/>');
html.push(' </li>');
html.push(' <li>');
html.push(' <span>密 码:</span>');
html.push(' <input type="password" value="" id="txtLoginPwd" class="" maxlength=20/>');
html.push(' </li>');
html.push(' <li>');
html.push(' <span>验证码:</span>');
html.push(' <input type="text" maxlength=5 id="txtValidCode" class="validate" />');
html.push(' <span class="validateImg"><img id="imgvcode" src="/code.aspx?r=' + new Date().getTime() + '" /></span>');
html.push(' <a href="javascript:void(0)" onclick="$(\'#imgvcode\').attr(\'src\',\'/code.aspx?r=\' + new Date().getTime());return false;" class="change">换一张</a>');
html.push(' </li>');
html.push(' <li>');
html.push(' <span> </span>');
html.push(' <input type="button" id="btnPopLogin" value="" class="login_icon" />');
html.push(' </li>');
html.push(' </ul>');
html.push(' </div>');
html.push('</div>');
return html.join("");
},
show: function (params) {
Meiya.PlugIn.Mask.show();
if ($(".popLoginBox").length == 0) {
$(document.body).append(Meiya.PlugIn.Login.HTML());
}
$(".popLoginBox").css("top", ($(document).scrollTop() + 200) + "px");
$(".popLoginBox").css("left", ($("body").width() - $(".popLoginBox").width()) / 2);
$("#btnPopLogin").bind("click", { CallBack: params.CallBack }, Meiya.PlugIn.Login.login);
$(".popLoginBox").show();
},
hide: function () {
$(".popLoginBox").hide();
},
login: function (d) {
var data = {
name: $("#txtLoginName").val(),
pwd: $("#txtLoginPwd").val(),
code: $.trim($("#txtValidCode").val())
}
if (data.name == "") {
alert("请输入用户名。"); $("#txtLoginName").select(); return;
}
if (data.pwd == "") {
alert("请输入登录密码。"); $("#txtLoginPwd").select(); return;
}
if (data.code == "") {
alert("请输入验证码。"); $("#txtValidCode").select(); return;
}
$.ajax({
type: 'POST',
url: "/Login.aspx",
//contentType: "application/json",
dataType: 'json',
data: "name=" + data.name + "&pwd=" + data.pwd + "&code=" + data.code,
success: function (json) {
if (json.Success) {
Meiya.PlugIn.Login.hide();
d.data.CallBack(false); //回调后续的操作
}
else {
alert(json.Info);
}
},
error: function (e) {
alert(e.responseText);
}
});
}
}
//获取CheckBox的所选值
function getCheckBoxVal(name) {
var rValue = '';
$("input[name='" + name + "']").each(function () {
if ($(this).attr("checked")) {
rValue += "," + $(this).attr("value");
}
})
return rValue.substr(1);
}
//CheckBox全选
function checkAll(ojb, name, isReverse) {
var checked = $(ojb).attr("checked");
$("input[name='" + name + "']").each(function () {
if (isReverse) {
if ($(this).attr("checked"))
$(this).attr("checked", false);
else
$(this).attr("checked", true);
$(ojb).parent().find("input").eq(0).attr("checked", false);
}
else {
$(this).attr("checked", checked);
}
})
}
//日期校验
function validateCNDate(date,time) {
var strDate = date;
var result = strDate.match(/((^((1[8-9]\d{2})|([2-9]\d{3}))(-)(10|12|0?[13578])(-)(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(11|0?[469])(-)(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(0?2)(-)(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)(-)(0?2)(-)(29)$)|(^([3579][26]00)(-)(0?2)(-)(29)$)|(^([1][89][0][48])(-)(0?2)(-)(29)$)|(^([2-9][0-9][0][48])(-)(0?2)(-)(29)$)|(^([1][89][2468][048])(-)(0?2)(-)(29)$)|(^([2-9][0-9][2468][048])(-)(0?2)(-)(29)$)|(^([1][89][13579][26])(-)(0?2)(-)(29)$)|(^([2-9][0-9][13579][26])(-)(0?2)(-)(29)$))/);
if (time)
result = strDate.match(/^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))\s+([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/); //:([0-5][0-9])
if (result == null) {
return false;
}
return true;
}
//保留两位小数
//功能:将浮点数四舍五入,取小数点后2位
function toDecimal(x) {
var f = parseFloat(x);
if (isNaN(f)) {
return 0;
}
f = Math.round(x * 100) / 100;
return f;
}
//正则表达式判断 yyyy-MM-dd HH:mm 时间格式
function checkDate(obj) {
var str = obj
var re = /^(\d{4})-(\d{2})-(\d{2})\s(\d{2}):(\d{2})$/
if (!re.test(str))
return false;
var strYear = RegExp.$1;
var strMonth = RegExp.$2;
strMonth = parseInt(strMonth, 10) - 1
var strDate = RegExp.$3;
strDate = parseInt(strDate, 10)
var strHour = RegExp.$4;
strHour = parseInt(strHour, 10)
var strMinute = RegExp.$5;
strMinute = parseInt(strMinute, 10)
var tempDate = new Date(strYear, strMonth, strDate, strHour, strMinute, 0)
if ((tempDate.getFullYear() == strYear) && (tempDate.getMonth() == strMonth) && (tempDate.getDate() == strDate) && (tempDate.getHours() == strHour) && (tempDate.getMinutes() == strMinute) == true) {
return true;
}
return false;
}
function compareDate(begainDate, endDate) {
var re = /^(\d{4})-(\d{1,2})-(\d{1,2})(\s(\d{1,2}):(\d{1,2})(:(\d{1,2}))?)?$/
if (!re.test(begainDate)) return -1;
var bYear = RegExp.$1;
var bMonth = parseInt(RegExp.$2, 10) - 1;
var bDay = parseInt(RegExp.$3, 10);
var bHour = isNaN(parseInt(RegExp.$5, 10)) ? "0" : parseInt(RegExp.$5, 10);
var bMinute = isNaN(parseInt(RegExp.$6, 10)) ? "0" : parseInt(RegExp.$6, 10);
var bSecond = isNaN(parseInt(RegExp.$8, 10)) ? "0" : parseInt(RegExp.$8, 10);
var bDate = new Date(bYear, bMonth, bDay, bHour, bMinute, bSecond);
if (!re.test(endDate)) return -2;
var eYear = RegExp.$1;
var eMonth = parseInt(RegExp.$2, 10) - 1;
var eDay = parseInt(RegExp.$3, 10);
var eHour = isNaN(parseInt(RegExp.$5, 10)) ? "0" : parseInt(RegExp.$5, 10);
var eMinute = isNaN(parseInt(RegExp.$6, 10)) ? "0" : parseInt(RegExp.$6, 10);
var eSecond = isNaN(parseInt(RegExp.$8, 10)) ? "0" : parseInt(RegExp.$8, 10);
var eDate = new Date(eYear, eMonth, eDay, eHour, eMinute, eSecond);
return eDate - bDate;
}
$(function () {
var $f_tr = $("table.f_info > tbody > tr");
var $p_tr = $("table.p_info > tbody > tr");
$("table.f_info > tbody > tr:odd").addClass("odd");
$f_tr.mouseover(function () {
$(this).addClass("bgcolor");
}).mouseout(function () {
$(this).removeClass("bgcolor");
});
$("table.p_info > tbody > tr:odd").addClass("odd");
$p_tr.mouseover(function () {
$(this).addClass("bgcolor");
}).mouseout(function () {
$(this).removeClass("bgcolor");
});
});
function openNewPage(subtitle, url) {
window.parent.openPage(subtitle, url, "_blank");
}
function openInSelfPage(subtitle, url) {
window.parent.openPage(subtitle, url);
}
function closeCurrentTab() {
window.parent.closeCurrentTab();
}
//获取url参数值
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) {
// return unescape(r[2]);
return decodeURI(r[2]);
}
return null;
}
function isTel(s) {
var patrn = /^[0-9\-]+$/;
if (patrn.exec(s) == null) return false;
return true;
}
function isLetter(s) {
var patrn = /^[a-z\sA-Z]+$/;
if (patrn.exec(s) == null) return false;
return true;
}
function isMobile(s) {
var patrn = /^0?1[0-9]{10}$/;
if (patrn.exec(s) == null) return false;
return true;
}
function isEmail(s) {
var patrn = /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/;
if (patrn.exec(s) == null) return false;
return true;
}
function isDigit(s) {
var patrn = /^\d+$/;
if (patrn.exec(s) == null) return false;
return true;
}
function isAirline(s) {
var patrn = /^[0-9a-zA-Z]{2}$/;
if (patrn.exec(s) == null) return false;
return true;
}
function isTime(s) {
var patrn = /^(([0-1][0-9])|([2][0-3])):?([0-5][0-9])$/;
if (patrn.exec(s) == null) return false;
return true;
}
//设置cookie
function setCookie(name, value, expires, path, domain, secure) {
var today = new Date();
today.setTime(today.getTime());
if (expires) {
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date(today.getTime() + (expires));
document.cookie = name + "=" + escape(value) + ((expires) ? ";expires=" +
expires_date.toGMTString() : "") + ((path) ? ";path=" +
path : "") + ((domain) ? ";domain=" + domain : "") +
((secure) ? ";secure" : "");
}
//获取cookie
function getCookie(name) {
var start = document.cookie.indexOf(name + "=");
var len = start + name.length + 1;
if ((!start) && (name != document.cookie.substring(0, name.length))) {
return null;
}
if (start == -1) {
return null;
}
var end = document.cookie.indexOf(";", len);
if (end == -1) {
end = document.cookie.length;
}
return unescape(document.cookie.substring(len, end));
}
//删除cookie
function deleteCookie(name, path, domain) {
var self = this;
if (self.getCookie(name)) {
document.cookie = name + "=" + ((path) ? ";path=" + path : "") +
((domain) ? ";domain=" + domain : "") +
";expires=Thu,01-Jan-1970 00:00:01 GMT";
}
}
//日期格式化
Date.prototype.format = function (format) //author: meizz
{
var o = {
"M+": this.getMonth() + 1, //month
"d+": this.getDate(), //day
"h+": this.getHours(), //hour
"m+": this.getMinutes(), //minute
"s+": this.getSeconds(), //second
"q+": Math.floor((this.getMonth() + 3) / 3), //quarter
"S": this.getMilliseconds() //millisecond
}
if (/(y+)/.test(format)) format = format.replace(RegExp.$1,
(this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o) if (new RegExp("(" + k + ")").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length == 1 ? o[k] :
("00" + o[k]).substr(("" + o[k]).length));
return format;
}
//精确加法
function accAdd(arg1, arg2) {
arg1 = $.trim(arg1);
arg2 = $.trim(arg2);
var r1, r2, m, c;
try {
r1 = arg1.toString().split(".")[1].length;
}
catch (e) {
r1 = 0;
}
try {
r2 = arg2.toString().split(".")[1].length;
}
catch (e) {
r2 = 0;
}
c = Math.abs(r1 - r2);
m = Math.pow(10, Math.max(r1, r2));
if (c > 0) {
var cm = Math.pow(10, c);
if (r1 > r2) {
arg1 = Number(arg1.toString().replace(".", ""));
arg2 = Number(arg2.toString().replace(".", "")) * cm;
} else {
arg1 = Number(arg1.toString().replace(".", "")) * cm;
arg2 = Number(arg2.toString().replace(".", ""));
}
} else {
arg1 = Number(arg1.toString().replace(".", ""));
arg2 = Number(arg2.toString().replace(".", ""));
}
return (arg1 + arg2) / m;
}
//精确减法
function accSub(arg1, arg2) {
arg1 = $.trim(arg1);
arg2 = $.trim(arg2);
var r1, r2, m, n;
try {
r1 = arg1.toString().split(".")[1].length;
}
catch (e) {
r1 = 0;
}
try {
r2 = arg2.toString().split(".")[1].length;
}
catch (e) {
r2 = 0;
}
m = Math.pow(10, Math.max(r1, r2)); //last modify by deeka //动态控制精度长度
n = (r1 >= r2) ? r1 : r2;
return ((arg1 * m - arg2 * m) / m).toFixed(n);
}
//精确乘法
function accMul(arg1, arg2) {
arg1 = $.trim(arg1);
arg2 = $.trim(arg2);
var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
try { m += s1.split(".")[1].length } catch (e) { }
try { m += s2.split(".")[1].length } catch (e) { }
return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
}
//精确除法
function accDiv(arg1, arg2) {
arg1 = $.trim(arg1);
arg2 = $.trim(arg2);
var t1 = 0, t2 = 0, r1, r2;
try { t1 = arg1.toString().split(".")[1].length } catch (e) { }
try { t2 = arg2.toString().split(".")[1].length } catch (e) { }
with (Math) {
r1 = Number(arg1.toString().replace(".", ""));
r2 = Number(arg2.toString().replace(".", ""));
return (r1 / r2) * pow(10, t2 - t1);
}
}
/*
保留两位小数,第三位直接舍去
*/
function keepTwoDecimal(num) {
if (num > 0) {
return accDiv(parseInt(accMul(accAdd(num, 0.00999999), 100)), 100);
}
else {
return accDiv(parseInt(accMul(num, 100)), 100);
}
}
/*
保留两位小数,第三位四舍五入
*/
function mathRound(num) {
return Math.round(num * 100) / 100;
}
/*
返回值:返回大于或等于x,并且与之最接近的整数。
注:如果x是正数,则把小数“入”;如果x是负数,则把小数“舍”。
*/
function mathCeil(num) {
return Math.ceil(num * 100) / 100;
}
/*
返回值:返回小于或等于x,并且与之最接近的整数。
注:如果x是正数,则把小数“舍”;如果x是负数,则把小数“入”。
*/
function mathFloor(num) {
return Math.floor(num * 100) / 100;
}
function closeCurrentTabAndrefreshTab(refreshTabTitle) {
//刷新列表页面
window.parent.refreshTab(refreshTabTitle);
//关闭当前页面
window.parent.closeCurrentTab();
}
/*
保留整数,小数位进1
*/
function keepInt(num) {
if (num > 0) {
return parseInt(accAdd(num, 0.99999999));
}
else {
return parseInt(num);
}
}
function meiya_alert(content, callback) {
Meiya.PlugIn.Mask.show();
Meiya.PlugIn.Pop.Reset({ title: "", Content: content, IsEnter: true, CallBack: { Enter: function () {
if (typeof (callback) == "function") {
callback();
}
Meiya.PlugIn.Mask.hide();
Meiya.PlugIn.Pop.hide();
}
}
});
}
function jsonDateFormat(jsonDate) {//json日期格式转换为正常格式
try {//出自http://www.cnblogs.com/ahjesus 尊重作者辛苦劳动成果,转载请注明出处,谢谢!
var date = new Date(parseInt(jsonDate.replace("/Date(", "").replace(")/", ""), 10));
var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
// var hours = date.getHours();
// var minutes = date.getMinutes();
// var seconds = date.getSeconds();
// var milliseconds = date.getMilliseconds();
return date.getFullYear() + "-" + month + "-" + day;
//return date.getFullYear() + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds + "." + milliseconds;
} catch (ex) {//出自http://www.cnblogs.com/ahjesus 尊重作者辛苦劳动成果,转载请注明出处,谢谢!
return "";
}
}