﻿///根据正则限制输入
function regInput(obj, reg, inputStr) {
	var docSel = document.selection.createRange();
	if (docSel.parentElement().tagName != "INPUT")
		return false;
	oSel = docSel.duplicate();
	oSel.text = "";
	var srcRange = obj.createTextRange();
	oSel.setEndPoint("StartToStart", srcRange);
	var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length);
	return reg.test(str);
}

jQuery.fn.extend({
	///关闭输入法
	imeDisable: function () {
		$(this).css("imeMode", "disabled");
		return $(this);
	}
});

///把所有的Querystring取出来当对象:
///var args=getArgs();
///alert(args.name + " | " + args.sex + " | " + args.age);
//测试链接：<a href="?name=abc&sex=男&age=12">test getQueryString</a>
function getArgs() {//get url querystring
	var params = document.location.search, reg = /(?:^\?|&)(.*?)=(.*?)(?=&|$)/g, temp, args = {};
	while ((temp = reg.exec(params)) != null) args[temp[1]] = decodeURIComponent(temp[2]);
	return args;
};


//获取queryString：
//var id = queryString('id');
function queryString(key) {
	return (document.location.search.match(new RegExp("(?:^\\?|&)" + key + "=(.*?)(?=&|$)")) || ['', null])[1];
}

var dec = /^-?\d*\.?\d{0,4}$/;
var integer = /^-?[1-9]\d*$/;

function isEmail(strEmail) {
	return (strEmail.search(regexEnum.email) != -1);
}
function isMobile(str) {
	return (str.search(regexEnum.mobile) != -1);
}

var regexEnum =
{
	intege: "^-?[1-9]\\d*$", 				//整数
	intege1: "^[1-9]\\d*$", 				//正整数
	intege2: "^-[1-9]\\d*$", 				//负整数
	num: "^-?\\d*\\.?\\d+$", 		//数字
	num1: "^[1-9]\\d*|0$", 				//正数（正整数 + 0）
	num2: "^-[1-9]\\d*|0$", 				//负数（负整数 + 0）
	//decmal: "^([+-]?)\\d*\\.\\d+$", 		//浮点数
	//,        //正负浮点数，最多4位小数
	//decmal1:"^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$",　　	//正浮点数
	//decmal2:"^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$",　 //负浮点数
	//decmal3:"^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$",　 //浮点数
	//decmal4:"^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$",　　 //非负浮点数（正浮点数 + 0）
	//decmal5:"^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$",　　//非正浮点数（负浮点数 + 0）

	email: /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/, //邮件
	color: "^[a-fA-F0-9]{6}$", 			//颜色（不带0x的）
	url: "^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$", //url
	chinese: "^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$", 				//仅中文
	ascii: "^[\\x00-\\xFF]+$", 			//仅ACSII字符
	zipcode: "^\\d{6}$", 					//邮编
	mobile: /^(13|15|18)[0-9]{9}$/, 			//手机
	ip4: "^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$", //ip地址
	notempty: "^\\S+$", 					//非空
	picture: "(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$", //图片
	rar: "(.*)\\.(rar|zip|7zip|tgz)$", 							//压缩文件
	date: "^\\d{4}(\\-|\\/|\.)\\d{1,2}\\1\\d{1,2}$", 				//日期
	qq: "^[1-9]*[1-9][0-9]*$", 			//QQ号码
	tel: "^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$", //电话号码的函数(包括验证国内区号,国际区号,分机号)
	username: "^\\w+$", 					//用来用户注册。匹配由数字、26个英文字母或者下划线组成的字符串
	userId: "^[a-zA-Z][a-zA-Z0-9_]{4,15}$",   ///用户名 以字母开头的5－16位字母＋数字（注册用户名）
	letter: "^[A-Za-z]+$", 				//字母
	letter_u: "^[A-Z]+$", 				//大写字母
	letter_l: "^[a-z]+$", 				//小写字母
	idcard: "^[1-9]([0-9]{14}|[0-9]{17})$"	//身份证
}


var aCity = { 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: "国外" }

function isCardID(sId) {
	var iSum = 0;
	var info = "";
	if (!/^\d{17}(\d|x)$/i.test(sId)) return "你输入的身份证长度或格式错误";
	sId = sId.replace(/x$/i, "a");
	if (aCity[parseInt(sId.substr(0, 2))] == null) return "你的身份证地区非法";
	sBirthday = sId.substr(6, 4) + "-" + Number(sId.substr(10, 2)) + "-" + Number(sId.substr(12, 2));
	var d = new Date(sBirthday.replace(/-/g, "/"));
	if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())) return "身份证上的出生日期非法";
	for (var i = 17; i >= 0; i--) iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11);
	if (iSum % 11 != 1) return "你输入的身份证号非法";
	return true; //aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女") 
}



$(function () {


	///删除确认
	$(".btnDelete").each(function (i) {
		$(this).click(function () { return confirm('您确信要删除吗?'); });
	})
	///审核确认
	$(".btnCheck").each(function (i) {
		$(this).click(function () { return confirm('您确信要审核吗?'); });
	})

	///小数
	$(".decimal").each(function (i) {
		$(this).focus(function () { this.style.imeMode = 'disabled'; });

		$(this).attr({ onpaste: "return regInput(this," + dec + ",window.clipboardData.getData('Text'))",
			ondrop: "return regInput(this," + dec + ",event.dataTransfer.getData('Text'))"
		});
		$(this).keypress(function () { return regInput(this, dec, String.fromCharCode(event.keyCode)); });
	})
	///整数
	$(".integer").each(function (i) {
		$(this).focus(function () { this.style.imeMode = 'disabled'; });

		$(this).attr({ onpaste: "return regInput(this," + integer + ",window.clipboardData.getData('Text'))",
			ondrop: "return regInput(this," + integer + ",event.dataTransfer.getData('Text'))"
		});
		$(this).keypress(function () { return regInput(this, integer, String.fromCharCode(event.keyCode)); });
	})
	///日期
	$(".datetime").each(function (i) {
		$(this).focus(function () { WdatePicker({ lang: 'zh-cn', skin: 'whyGreen' }) });
		$(this).attr({ oncleared: " $(this).blur(); ", onpicked: "$(this).blur();" })
	})

	$(".dateandtime").each(function (i) {
		$(this).focus(function () { WdatePicker({ lang: 'zh-cn', skin: 'whyGreen', dateFmt: 'yyyy-MM-dd HH:mm' }) });
		$(this).attr({ oncleared: " $(this).blur(); ", onpicked: "$(this).blur();" })
	})

});


