/**
 * @package focus.common
 *
 * String??????????
 *
 * @author J. Jiang <jiangjing@focus.cn>
 * @create 2006-6-23
 * @update 
 *
 * @depended by
 *   form.js
 */

var STRING_TYPES = {
	"idcard" : "身份证号",
	"phone"  : "电话号码",
	"mobile" : "手机号码",
	"postcode" : "邮政编码",
	"email"  : "电子邮箱",
	"int"    : "整数"
};

String.prototype.trim=function(){
	return this.replace(/(^\s*)|(\s*$)/g,"");
}
String.prototype.isSpace = function() {
	var reg = /^\s*$/;
	return this.match(reg);
}

String.prototype.is = function(type) {
	var reg;
	switch (type.toLowerCase()) {
		case "idcard":
			reg = new RegExp("^([0-9]{6}[0-9]{2}((0[13578]{1}|10|12)(0[1-9]{1}|[1-2]{1}[0-9]{1}|30|31)|(0[469]{1}|11)(0[1-9]{1}|[1-2]{1}[0-9]{1}|30)|02(0?[1-9]{1}|[1-2]{1}[0-9]{1}))[0-9]{3}|[0-9]{6}[0-9]{4}((0[13578]{1}|10|12)(0[1-9]{1}|[1-2]{1}[0-9]{1}|30|31)|(0[469]{1}|11)(0[1-9]{1}|[1-2]{1}[0-9]{1}|30)|02(0?[1-9]{1}|[1-2]{1}[0-9]{1}))[0-9]{3}[a-z,A-Z,0-9]{1})$", "g");
			break;
		case "phone":
			reg = new RegExp("^[23568]{1}[0-9]{6,7}$", "g");
			break;
		case "mobile":
			reg = new RegExp("^(13|14|15|16|18)[0-9]{9}$", "g");
			break;
		case "postcode":
			reg = new RegExp("^[0-9]{6}$", "g");
			break;
		case "email":
			reg = new RegExp("^[a-zA-Z_0-9\.\-]+@([a-zA-Z_0-9\-]+\.)+[a-zA-Z]{2,4}$", "g");
			break;
		case "int":
			reg = new RegExp("^\-?[0-9]+$", "g");
			break;
	}
	return this.match(reg);
}

String.prototype.toBoolean = function() {
	var str = this.toLowerCase();
	return str == "true" || str == "t" || str == "1" || str == "yes" || str == "y";
}	

String.prototype.strLength = function() {
    
    var str = this;
    var realLength = 0, len = str.length, charCode = -1;
    for (var i = 0; i < len; i++) {
        charCode = str.charCodeAt(i);
        if (charCode >= 0 && charCode <= 128) realLength += 1;
        else realLength += 2;
    }
    return realLength;
}
