//是否为电话号码
function FormIstel(tel){
	tel=Trim(tel);
	if(tel.length<7) return false;

	var t="0123456789-";
	for(var i=0;i<t.length;i++){
		if(t.indexOf(tel.substr(i,1))<0) return false;
	}
	return true;
}

//是否为地址
function FormIsaddress(address){
	address=Trim(address);
	if(address.length<10) return false;
	return true;
}

//是否为邮政编码
function FormIszipcode(ThisValue){
	ThisValue=Trim(ThisValue);
	if(fnIsIntNum(ThisValue)){
		ThisValue=Math.ceil(ThisValue).toString();
		if(ThisValue.length==6) return true;
	}
	return false;
}



//手机号码检验函数
function isMobile(_mobile)
{
	var reg0=/^13\d{9}$/;   //130--139。
	var reg1=/^153\d{8}$/;  //联通153。
	var reg2=/^159\d{8}$/;  //移动159。
	var r=false;
	if (reg0.test(_mobile)) r=true;
	if (reg1.test(_mobile)) r=true;
	if (reg2.test(_mobile)) r=true;
 
	return r;
}


//判断是否链接地址
function FormIslink(_s)
{
	return _s.substring(0,7).toLowerCase()=="http://";
}


//身份证检查函数
function isPersonalNO(StrNo)
{
	this.isInteger=function(str)
	{
		if (/[^\d]+$/.test(str)) return false;
		return true;
	}

	this.isValidDate=function(iY, iM, iD)
	{ 
		sD=iY+"-"+iM+"-"+iD;
		if (!FormIsdate(sD))
		{
			
			return false;
		}
		else
		{
			//如果身份证生日超过90岁，也返回FALSE
			if((new Date()).getFullYear()-iY>90)
			{
				
				return false;
			}
		}
		return true;
	}

	StrNo = StrNo.toString();
	if((StrNo.length!=18)&&(StrNo.length!=15))	
	{
		return false;
	}

	if (StrNo.length==18)//18位身份证号
	{
		var a,b,c;
		if (!isInteger(StrNo.substr(0,17))) return false;

		a=parseInt(StrNo.substr(0,1))*7+parseInt(StrNo.substr(1,1))*9+parseInt(StrNo.substr(2,1))*10;
		a=a+parseInt(StrNo.substr(3,1))*5+parseInt(StrNo.substr(4,1))*8+parseInt(StrNo.substr(5,1))*4;
		a=a+parseInt(StrNo.substr(6,1))*2+parseInt(StrNo.substr(7,1))*1+parseInt(StrNo.substr(8,1))*6; 
		a=a+parseInt(StrNo.substr(9,1))*3+parseInt(StrNo.substr(10,1))*7+parseInt(StrNo.substr(11,1))*9; 
		a=a+parseInt(StrNo.substr(12,1))*10+parseInt(StrNo.substr(13,1))*5+parseInt(StrNo.substr(14,1))*8; 
		a=a+parseInt(StrNo.substr(15,1))*4+parseInt(StrNo.substr(16,1))*2;
		b=a%11;

		if (b==2) //最后一位为校验位
		{
			c=StrNo.substr(17,1).toUpperCase(); //转为大写X
		}
		else
		{
			c=parseInt(StrNo.substr(17,1));
		}

		switch(b)
		{
			case 0: if ( c!=1 ) {return false;}break;
			case 1: if ( c!=0 ) {return false;}break;
			case 2: if ( c!="X") {return false;}break;
			case 3: if ( c!=9 ) {return false;}break;
			case 4: if ( c!=8 ) {return false;}break;
			case 5: if ( c!=7 ) {return false;}break;
			case 6: if ( c!=6 ) {return false;}break;
			case 7: if ( c!=5 ) {return false;}break;
			case 8: if ( c!=4 ) {return false;}break;
			case 9: if ( c!=3 ) {return false;}break;
			case 10: if ( c!=2 ){return false;}
		}
		return isValidDate(StrNo.substr(6,4),StrNo.substr(10,2),StrNo.substr(12,2));
	}
	else //15位身份证号
	{
		if (!isInteger(StrNo)) {return false;} 
		return isValidDate("19"+StrNo.substr(6,2),StrNo.substr(8,2),StrNo.substr(10,2));
	}
}
// 判断是否是价格
function isPrice(price)
{
    var Ret = true;
    var NumStr="0123456789";
    var decUsed=false;
    var chr;
    for (i=0;i<price.length;++i)
    {
        chr=price.charAt(i);
        if (NumStr.indexOf(chr,0)==-1)
        {
            if ( (!decUsed) && chr==".")
            {
                decUsed=true;
            }
            else
            {
                Ret=false;
            }
        }
     }
    if(Ret)
    {
        if(decUsed&&(price.length-price.indexOf('.')<4))
        ;
        else if(decUsed)
        Ret=false;
    }
    if (!Ret)
    doCritCode(price);
    return(Ret);
}

//显示错误
function showErrMsg(_o,_msg)
{
	if(!document.getElementById(_o.name + '_error'))
	{
		strHtml="<div id='"+_o.name + "_error' style='color:#8C2C01;padding:3px 0px 3px 0px;display: none;'></div>";
		if(_o.type=="radio") _o.parentNode.insertAdjacentHTML("BeforeEnd",strHtml);
		else _o.insertAdjacentHTML("AfterEnd",strHtml);
	}
	document.getElementById(_o.name + '_error').innerHTML= _msg;
	document.getElementById(_o.name + '_error').style.display='block';
	try{_o.focus();}catch(e){}
	return false;
}
//隐藏错误
function hideErrMsg(_o)
{
	if(!document.getElementById(_o.name + '_error'))
	{
		strHtml="<div id='"+_o.name + "_error' style='color:#8C2C01;padding:3px 0px 3px 0px;display: none;'></div>";
		if(_o.type=="radio") _o.parentNode.insertAdjacentHTML("BeforeEnd",strHtml);
		else _o.insertAdjacentHTML("AfterEnd",strHtml);
	}
	document.getElementById(_o.name + '_error').style.display='none';
}

_imgUpload=null;
//检查FORM合法性
function checkFormValues(thisForm,formgroupname) 
{  
	returnValue=true;

	for (n=0;n<thisForm.elements.length;n++)
	{ 
		thisObj=thisForm.elements[n];
		if(thisObj.formgroupname==formgroupname)
		{

		    //检查是否不能为空
		    if (thisObj.noblank)
		    {
			    if (thisObj.type=="radio")
			    {
				
				    _name="";
				    o=thisObj;
				    while(true)
				    {
					    o=o.parentNode;
					    if(o.tagName=="FORM"||o.tagName=="BODY")
					    {
						    if(o.tagName=="FORM") _name=o.name+".";
						    break;
					    }

				    }
				    o=eval(_name+thisObj.name);
				    _return=false;
				    for(x=0;x<o.length;x++)
				    {
					    _return=o[x].checked;
					    if(_return) break;
				    }
				    if(!_return) returnValue=showErrMsg(thisObj,thisObj.noblank);
				    else hideErrMsg(thisObj);
			    }
			    else
			    {
				    _err=thisObj.noblank.split("|")[0];
				    if (FormIsempty(thisObj.value)||thisObj.value==thisObj.noblank.split("|")[1]) returnValue=showErrMsg(thisObj,_err);
				    else hideErrMsg(thisObj);
			    }
		    }

		    //检查上传文件格式
		    if (thisObj.mustupload)
		    {
		        p=thisObj.mustupload.split("|");
		        pFilenoblank="";	
			    if(p.length>4) pFilenoblank=p[4].replace(" ","");	
			    if(pFilenoblank!="")
			    {
			        if(FormIsempty(thisObj.value))
			        {
			            if(!document.getElementById(thisObj.name+"_Preview"))
			            {
			                returnValue=showErrMsg(thisObj,pFilenoblank);
			                thisObj.uploadPass="0";
			            }
			        }
			    }
    		    if(thisObj.uploadPass=="0") returnValue=false;
	            else hideErrMsg(thisObj);
		    }

		    //检查是否超出字符长度限制
		    if (thisObj.mustlen)
		    {
			    if (!FormIsempty(thisObj.value))
			    {
				    if (thisObj.value.length>Math.ceil(thisObj.mustlen)) returnValue=showErrMsg(thisObj,"请输入不超出"+thisObj.mustlen+"字符数的内容");
				    else hideErrMsg(thisObj);
			    }
		    }

		    //检查是否应该是链接地址
		    if (thisObj.mustlink)
		    {
			    if (!FormIsempty(thisObj.value))
			    {
				    if (!FormIslink(thisObj.value)) returnValue=showErrMsg(thisObj,thisObj.mustlink);
				    else hideErrMsg(thisObj);
			    }
		    }

		    //检查是否应该是邮政编码
		    if (thisObj.mustzipcode)
		    {
			    if (!FormIsempty(thisObj.value))
			    {
				    if (!FormIszipcode(thisObj.value)) returnValue=showErrMsg(thisObj,thisObj.mustzipcode);
				    else hideErrMsg(thisObj);
			    }
		    }

		    //检查是否应该是身份证号码
		    if (thisObj.mustpersonalno)
		    {
			    if (!FormIsempty(thisObj.value))
			    {
				    if (!isPersonalNO(thisObj.value)) returnValue=showErrMsg(thisObj,thisObj.mustpersonalno);
				    else hideErrMsg(thisObj);
			    }
		    }

		    //检查是否应该是EMAIL
		    if (thisObj.mustemail)
		    {
			    if (!FormIsempty(thisObj.value))
			    {
				    if (!FormIsemail(thisObj.value)) returnValue=showErrMsg(thisObj,thisObj.mustemail);
				    else hideErrMsg(thisObj);
			    }
		    }

		    //检查是否应该是手机号码
		    if (thisObj.mustmobile)
		    {
			    if (!FormIsempty(thisObj.value))
			    {
				    if (!isMobile(thisObj.value)) returnValue=showErrMsg(thisObj,thisObj.mustmobile);
				    else hideErrMsg(thisObj);
			    }
		    }

		    //检查是否应该是数字
		    if (thisObj.mustnumeric)
		    {
			    if (!FormIsempty(thisObj.value))
			    {
				    if (!FormIsnumeric(thisObj.value)) returnValue=showErrMsg(thisObj,thisObj.mustnumeric);
				    else hideErrMsg(thisObj);
			    }
		    }

		    //检查是否应该是日期
		    if (thisObj.mustdate)
		    {
			    if (!FormIsempty(thisObj.value))
			    {
				    if (!FormIsdate(thisObj.value)) returnValue=showErrMsg(thisObj,thisObj.mustdate);
				    else hideErrMsg(thisObj);
			    }
		    }
		}
	}  
	
	return returnValue;
}

//在FORM中移动焦点
function ChangeFocus(e,thisForm) 
{  
    var key=window.event?window.event.keyCode:e.which;
    var shift=window.event?window.event.shiftKey:e.shiftKey;
    var src=window.event?window.event.srcElement:e.target;
    if(key!=13||shift) return true;
    if(src.tagName=="TEXTAREA") return true;
    thisIndex=thisForm.elements.length;
    for (n=0;n<thisForm.elements.length;n++)  
    { 
        thisObj=thisForm.elements[n];
        if(src==thisObj) thisIndex=n;
        try
        {
            if((thisIndex<n) && (thisObj.style.display.toLowerCase()!="none") && (!thisObj.disabled) && (thisObj.type.toLowerCase()!="hidden"))
            { 
                if(thisObj.tabStop!="0")
		        {
			        thisObj.focus(); //移动焦点 
		            if(thisObj.type.toLowerCase()=="text") thisObj.select(); //全选
			        return false;
		        }
            }
        }
        catch(err){}  
    }  
    return false;
}

//让SUMBIT可以提交
document.onclick=function(aEvent)
{
    var o = window.event ? window.event.srcElement : aEvent.target;

    if(o.tagName=="INPUT")
    {
        if(o.type=="submit")
        {
            if(o.onclick) return;
            else document.forms[0].onsubmit=null;
        }
    }
}