﻿/* 
 * 	JavaScript Document
 * 	TAC系统公用JS库,需要jQuery支持
 *  ver.1.11.0201
 *  作者：夏朝东
 *  最后更新：20110901 
 */
/*
 * ＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
 * 
 * 字符串原型扩展
 * 
 * ＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
 */
/*
 *  利用传于的s对字符串对象进行简单的混淆
 */
String.prototype.hash = function(s) {
	var _s = this;
	var i = 0;
	var j = 0;
	var r = "";
	for (i = 0; i < _s.length; i++) {
		r += _s.charAt(i)

		if (s != null && typeof (s).toString() == "string") {
			if (j < s.length) {
				r += s.charAt(j);
				j++;
			} else {
				j = 0;
			};
		}

	}
	return r;
}
/*
 * 对字符串进行Html编码
 */
String.prototype.htmlEncode = function() {
	var _s = this;
	_s = _s.replace("&", "&amp;");
	_s = _s.replace("\"", "&quot;");
	_s = _s.replace("<", "&lt;");
	_s = _s.replace(">", "&gt;");
	return _s;
}

String.prototype.urlEncode = function() {
	return encodeURI(this);
}
/*
 * 在字符串左侧 添加指定长度len的字符c
 * */
String.prototype.padLeft = function(len, c) {
	if (this.length >= len) {
		return this;
	}
	s = this;
	if (c == null) {
		c = " ";
	}
	while (s.length < len) {
		s = c + s;
	}
	return s;
}
/*
 * 返回去除两端空白的字符串
 */
String.prototype.trim = function() {
	var s = this;
	s = s.replace(/(^\s+|\s+$)/ig, '');
	return s;
}
/*
 * 验证是否为日期，简单的判断格式
 */
String.prototype.date = function() {
	var re = /^\d{4}([\/\-])\d{1,2}\1\d{1,2}$/ig;
	return re.test(this.trim());
}
/*
 * 验证是否为时间格式
 */
String.prototype.time = function() {
	var re = /^\d{1,2}\:\d{1,2}(\:\d{1,2})?$/ig;
	return re.test(this.trim());
}
/*
 * 验证是否手机号，以1开头，并且长度为11位的数字
 */
String.prototype.mobile = function() {
	var re = /^1\d{10}$/ig;
	return re.test(this.trim());
}

/*
 * 验证字符串是否邮件地址
 */
String.prototype.email = function() {
	var re = /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/ig;
	return re.test(this.trim());
}

/*
 * 验证是否电话号码
 */
String.prototype.phone = function() {
	var re = /^(\d{2,6}-)?(\d{2,6}-)?\d{6,12}(-\d{2,6})?$/ig;
	return re.test(this.trim());
}
/*
 *  验证是否为数字组合
 */
String.prototype.number = function() {
	var re = /^\-?\d+$/ig;
	return re.test(this.trim());
}
/*
 * 验证是否为中文字符
 */
String.prototype.chinese = function() {
	var re = /^[\u4e00-\u9fa5]$/ig;
	return re.test(this.trim());
}

/*
 * 验证是否为空
 */
String.prototype.empty = function() {
	return this.trim().length == 0;
}
/*
 * 验证字符串是否是URL地址，必须以http或https开始
 */
String.prototype.url = function() {
	if (this.trim().length == 0) {
		return false;
	}
	var re = new RegExp("^http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?$", "ig");
	return re.test(this.trim());
}
/*
 * 简单判断是否为图片文件
 */
String.prototype.image = function() {
	var ext = this.substr(this.lastIndexOf("."));
	var re = /^\.(jpg|gif|png|bmp)$/ig;
	return re.test(ext);
}

/*
 * 验证是否为身份证号(国内)，验证位数和大致的格式
 */
String.prototype.idcard = function() {
	function GetVerifyCode(s) {

	}
	var s = this.trim();

	if (s.length != 15 && s.length != 18) {
		return false;
	}

	var re = /^(\d{15}|\d{17}[0-9X])$/ig;
	if (!re.test(s)) {
		return false;
	}

	if (s.length == 15) {
		var s1 = s.substr(0, 6);
		var s2 = s.substr(6);
		s = s1.concat("19", s2);
	}

	var year = parseInt(s.substr(6, 4));
	var month = parseInt(s.substr(10, 2)) - 1;
	var day = parseInt(s.substr(12, 2));

	var birth = new Date(year, month, day);

	var _year = birth.getFullYear();
	var _nowYear = (new Date()).getFullYear();

	if (_nowYear - _year < 10 || _nowYear - _year > 120) {
		return false;
	}

	var quotiety = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
	var residual = "10X98765432";
	var result = 0;
	for (var numIndex = 0; numIndex < quotiety.length; numIndex++) {
		result += quotiety[numIndex] * parseInt(s[numIndex]);
	}
	var vcode = residual[result % 11];
	return s.length = 18 ? s.substr(17, 1).toLowerCase() == vcode.toLowerCase() : true;
}
// /*
// * 将字符串添加到指定ID的元素后
// */
// String.prototype.tips = function (){
//
// }
// Date.prototype.fo
/*
 * Cookie 读写
 * */
/*
 * 	将sValue写入当前域的Cookie中
 * 	sName:Cookie 名称
 * 	sValue:写入的值
 * 	timeKeep:过期时间，单位：分钟
 * */
function SetCookie(sName, sValue, timeKeep) {
	var now = new Date();
	var expireTime = new Date(now.valueOf() + timeKeep * 60000);
	document.cookie = sName + "=" + escape(sValue) + "; path=/; expires=" + expireTime.toGMTString() + ";";
}
/*
 * 	读取当前域中指定名称的Cookie的值
 * 	sName:Cookie 名称
 * */
function GetCookie(sName) {
	var aCookie = document.cookie.split("; ");
	for (var i = 0; i < aCookie.length; i++) {
		var aCrumb = aCookie[i].split("=");
		if (sName == aCrumb[0])
			return unescape(aCrumb[1]);
	}
	return null;
}
/*
 * 删除指定的Cookie
 */
function DeleteCookie(sName) {
	var now = new Date();
	var expireTime = new Date(now.valueOf() - 60000);
	document.cookie = sName + "=; path=/; expires=" + expireTime.toGMTString() + ";";
}

