//????????????????????????


//????????????????????????????????????????????????????????????????????????,
//(1). ???????????????

//(2).?????????11???

//(3).???????????????????????????5,6,7,8,9
//?????????????????????????????????,??????????????????
function checkCellPhone(cellPhone) 
{
	var reg=/13[5,6,7,8,9]\d{8}/; 
	if (cellPhone.match(reg)== null)
	{ 
		return false;
	} 
	return true; 
}

//???????????????

function checkIdcard(idcard){
	var Errors=new Array(
		"ok",
		"???????????????????????????!",
		"????????????????????????????????????????????????????????????!",
		"???????????????????????????!",
		"?????????????????????!"
	);
	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,Y,JYM;
	var S,M;
	var idcard_array = new Array();
	idcard_array = idcard.split("");
	
	//????????????

	if(area[parseInt(idcard.substr(0,2))]==null) return false;
	
	//?????????????????????????????????

	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 true;
			else return false;
			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[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[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]) return true; //??????ID????????????
				else return false;
			}
			else return false;
			break;
		default:
			return false;
			break;
	}

}

//?????????????????????????????? 
function isDigit(s) 
{ 
	var patrn=/^[0-9]{1,20}$/; 
	if (!patrn.exec(s)) return false 
	return true 
} 

//????????????????????????????????????5-30???????????????????????????????????????_?????????.???????????? 
function isRegisterCode(s) 
{ 
	var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,29}$/; 
	if (!patrn.exec(s)) return false 
	return true 
} 

//??????????????????????????????5-20???????????????????????????????????????_?????????.???????????? 
function isRegisterUserName(s) 
{ 
	var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; 
	if (!patrn.exec(s)) return false 
	return true 
} 

//?????????????????????5-20???,???????????????????????????,??????,._??????

function isAccount(s) 
{ 
	var partn=/^([a-zA-Z0-9]|[._]){5,20}$/; 
	if (!partn.exec(s)) return false 
	return true 
} 

//???????????????????????????6-20??????????????????????????????

function isPasswd(s) 
{ 
	var patrn=/^(\w){6,20}$/;
	if (!patrn.exec(s)) return false; 
	return true 
} 

//?????????????????????????????????????????????+???????????????????????????????????????-??? 
function isTel(s) 
{ 
	var patrn=/^\d{3,4}-\d{7,8}$/; 
	if (!patrn.exec(s)) return false 
	return true 
} 

//????????????????????????????????????????????????????????????????????????-??? 
function isMobil(s) 
{ 
	var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; 
	if (!patrn.exec(s)) return false 
	return true 
} 

//?????????????????? 
function isPostalCode(s) 
{ 
	//var patrn=/^[a-zA-Z0-9]{3,12}$/; 
	var patrn=/^[0-9 ]{6}$/; 
	if (!patrn.exec(s)) return false 
	return true 
} 

//??????????????????
function checkNull(str)
{
	if(str=="" || str=="null" || str==null){
		return false;
	}
	return true;
}

/**
*?????????????????????????????????

*????????????
*????????????????????????????????????           ??????true
*??????????????????????????????????????????       ??????true
*????????????????????????                   ??????false    ??????????????????????????????????????????????????????yyyy-MM-dd???

*/
function checkIsValidDate(str)
{
    //??????????????????????????????
    if(str == "")
        return true;
    var pattern = /^((\\d{4})|(\\d{2}))-(\\d{1,2})-(\\d{1,2})$/g;
    if(!pattern.test(str))
        return false;
    var arrDate = str.split("-");
    if(parseInt(arrDate[0],10) < 100)
        arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
    var date =  new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
    if(date.getYear() == arrDate[0]
       && date.getMonth() == (parseInt(arrDate[1],10) -1)+""
       && date.getDate() == arrDate[2])
        return true;
    else
        return false;
}//~~~

/**
*checkEmail ????????????????????????????????????email????????????,????????????????????????,true???false;
*
*Object????????????,Desc???????????????.
*/
function isEmail(s){
	var emailPat = /^(.+)@(.+)$/;
	if (s.match(emailPat) == null) {
		return false;
	}
	return true;
}

/*
==================================================================
LTrim(string):?????????????????????

==================================================================
*/
function LTrim(str)
{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);

    if (whitespace.indexOf(s.charAt(0)) != -1)
    {
        var j=0, i = s.length;
        while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
        {
            j++;
        }
        s = s.substring(j, i);
    }
    return s;
}

/*
==================================================================
RTrim(string):?????????????????????

==================================================================
*/
function RTrim(str)
{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);

    if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
    {
        var i = s.length - 1;
        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
        {
            i--;
        }
        s = s.substring(0, i+1);
    }
    return s;
}

/*
==================================================================
Trim(string):??????????????????
==================================================================
*/
function Trim(str)
{
    return RTrim(LTrim(str));
}

String.prototype.ltrim = function()
{
    return this.replace(/(^\s*)/, "");
}

String.prototype.trim = function()
{
   return this.replace(/(^\s*)|(\s*$)/g, "");
}

String.prototype.rtrim = function()
{
   return this.replace(/(\s*$)/, "");
}

/**
 * ??????????????????
 */
function resetCity(){
	var city = document.all.city;
	city.innerHTML = "";
	for(var i = 0; i < document.all.oldCities.options.length; i++){
		document.all.city.options[i] = new Option();
		document.all.city.options[i].value = document.all.oldCities.options[i].value;
		document.all.city.options[i].innerHTML = document.all.oldCities.options[i].innerHTML;
	}
}

	
	
