
function toString(v){
	return ""+v;
}

function ltrim(s){
	var len,i;
	if(s!=null)
		s=toString(s);
	else{
		return "";
	}
	len=s.length;
	for(i=0;i<len;i++)
		if(s.charAt(i)>" ")
			break;
	return s.substring(i,len);
}

function rtrim(s){
	var len,i;
	if(s!=null)
		s=toString(s);
	else{
		s="";
		return s;
	}
	len=s.length;
	for(i=len-1;i>-1;i--)
		if(s.charAt(i)>" ")
			break;
	return s.substring(0,i+1);
	
}

function trim(s){
	return ltrim(rtrim(s));
}

function get_str_len(str){
	var len=str.length;
	var length=0
	for(var i=0;i<len;i++){
		length++;
		var code=str.charCodeAt(i)
		if(code>255)
			length++;
	}
	return length;
}

//字符穿长度的另一算法
function strLen(s){
	var i,str1,str2,str3,nLen;
	str1 = s;
	nLen = 0;
	
	for(i=1;i<=str1.length;i++){
		nLen++;
		str2=str1.substring(i-1,i)
		str3=escape(str2);
		if(str3.length>3)
			nLen++
	}
	return nLen;
}

//字符串替换
function Replace(s1,s2,s3){
	var len1 , len2 , i;
	var str1 , str2 ; 
	str1 = s1;
	len1 = str1.length;
	len2 = s2.length;
	if (len2 > len1)
		return s1;
	for (i=1;i<= len1-len2+1 ; i++){
		str2 = str1.substring(i-1,i-1+len2);
		if (str2 == s2){
			str1 = str1.substring(0,i-1) + s3 + str1.substring(i+len2-1,len1 );
			i = 0;
			len1 = str1.length;
		}
	}
	return str1;
}

//字符串位置查找
function Pos(s1,s2){
	var len1 , len2 , i,flag;
	var str1 , str2 ; 
	str1 = s1;
	len1 = str1.length;
	len2 = s2.length;
	if (len2==0 || len1==0)
		return 0;
	flag = false;
	if (len2 > len1)
		return s1;
	for (i=1;i<= len1-len2+1 ; i++){
		str2 = str1.substring(i-1,i-1+len2);
		if (str2 == s2){
			flag = true;
			break;
		}
	}
	if (flag)
		return i;
	else
		return 0;
}

function isNumber(string) {
    if (string =="") string = "0";
    valid = '0123456789';
    for (var i=0; i< string.length; i++) {
        if (valid.indexOf(string.charAt(i)) == -1) {
            return false;
        }
    }
    return true;
}

//身份证
function fucCheckID(string) {
    if(!isNumber(string))
		return false;
	var str_len=strLen(string);
	str_len=parseInt(parseInt);
	if(str_len!=15 && str_len!=18)
		return false
    return true;
}

//手机
function fucCheckMobile(string) {
    if(!isNumber(string))
		return false;
	var str_len=strLen(string);
	str_len=parseInt(str_len);
	if(str_len!=11)
		return false;
    return true;
}

//固定电话
function fucCheckTEL(TEL){
	var i,j,strTemp;
	strTemp="0123456789-()# ";
	for (i=0;i<TEL.length;i++){
		j=strTemp.indexOf(TEL.charAt(i)); 
		if (j==-1)
			return false;
	}
	return true;
}

function chkemail(strEmail){	
	var s=strEmail
	var i=s.length;
	var temp = s.indexOf('@');
	var tempd = s.indexOf('.');
	if (temp > 1) {
		if ((i-temp) > 7){
			if ((tempd-temp) > 2){
				if ((i-tempd)>2){
					return true;
				}
			}
		}
	}
	return false;
}  

function check_input_chinese(str){
	var len=str.length;
	for(var i=0;i<len;i++){
		var code=str.charCodeAt(i)
		if(code<255)
			return false;
	}
	return true;
}	




//***************************************************************************************************
//日期相关函数
//***************************************************************************************************


/* -- 计算两个字符(YYYY-MM-DD)的日期相隔天数 -- */
function Date_Compare(asStartDate,asEndDate){
	var miStart = Date.parse(asStartDate.replace(/\-/g, '/'));
	var miEnd   = Date.parse(asEndDate.replace(/\-/g, '/'));
	return (miEnd-miStart)/(1000*24*3600);
}

/*-- 判断一个字符串(YYYY-MM-DD)的日期是否正确 -- */
function Date_istrue(asDate){
	var lsDate  = asDate + "";
	var loDate  = lsDate.split("-");
	if (loDate.length!=3) return false; 
	var liYear  = parseInt(loDate[0]);
	var liMonth = parseInt(loDate[1]);
	var liDay   = parseInt(loDate[2]);
	if ((loDate[0].length>4)||(loDate[1].length>2)||(loDate[2].length>2)) return false;
	if (isNaN(liYear)||isNaN(liMonth)||isNaN(liDay)) return false;
	if ((liYear<1900)||(liYear>3000)) return false;
	if ((liMonth>12)||(liMonth<=0))   return false;
	if (Date_getDay(liYear,liMonth)<liDay) return false;
	return !isNaN(Date.UTC(liYear,liMonth,liDay));
}

/*-- 返回某年某月的天数-- */
function Date_getDay(aiYear,aiMonth){
	var loDay = [0,31,28,31,30,31,30,31,31,30,31,30,31];
	if (aiYear%4==0) loDay[2] = 29;
	return loDay[aiMonth];
}

/*
用正则表达式写的日期型网页输入框数据是否有效的判定函数。
包含闰年的处理。同时函数支持自我日期输入形式定义。
*/
//辅助函数--闰年判定

function isLeapYear(year){
	if((year%4==0&&year%100!=0)||(year%400==0))
		return true;
	return false;
}

//判定主函数

function dateValidation(object,format){
	var regexp,value,index;
	var year,month,day;
	var iyear,imonth,iday;
	var fmt,regfmt,ordfmt;
	var dateArray;
	
	if(isObject(object))
		value=object.value;
	else if(isString(object)&&!isEmpty(object))
		value=object;
	else
		return false;
	if(isEmpty(format))
		return false;

	fmt=new Array("yyyy/mm/dd","mm/dd/yyyy","dd/mm/yyyy");
	regfmt=new Array("/^([0-9]{4})\\/([0-9]{2})\\/([0-9]{2})$/","/^([0-9]{2})\\/([0-9]{2})\\/([0-9]{4})$/","/^([0-9]{2})\\/([0-9]{2})\\/([0-9]{4})$/");
	ordfmt=new Array("123","312","321");

	format=format.toLowerCase();
	for(index=0;index<fmt.length;index++){
		if(format==fmt[index]){ 
			eval('regexp='+regfmt[index]+';');
			
			iyear=parseInt(ordfmt[index].charAt(0));
			imonth=parseInt(ordfmt[index].charAt(1));
			iday=parseInt(ordfmt[index].charAt(2));
			
			break;
		}
	}
 
	if(index==fmt.length){
		alert("Date Format Not Supported!");
		return false;
	}

	if(regexp.test(value)){
		//alert("Date is matched with Format!");
		dateArray=value.match(regexp);
		
		year=dateArray[iyear];
		month=dateArray[imonth];
		day=dateArray[iday];
	
		//alert("The Date you have filled is:\nYear:"+year+"\nMonth:"+month+"\nDay:"+day);
		
		if(year<2001){
			alert("Year must be greater than 2001!");
			return false;
		}
		if(month<0||month>12){
			alert("Month must range from 1 to 12!");
			return false;
		}

		if(day<0||day>31){
			alert("Day must range from 1 to 31!");
			return false;
		}
		else{ 
			if(month==2){ 
				if(isLeapYear(year)&&day>29){
					alert("In Month 2,Day must range from 1 to 29!");
					return false;
				}
				
				if(!isLeapYear(year)&&day>28){
					alert("In Month 2,Day must range from 1 to 28!");
					return false;
				}
		   }

		   if((month==4||month==6||month==9||month==11)&&(day>30)){
			   alert("In this Month ,Day must range from 1 to 30!");
			   return false;
		   }
		}

	}
	else{
		alert("Date isn't matched with Format!\nDate Format:"+format);
		return false;
	}
   return true;
}



function check_frm(form){
	var curtime=document.form1.curtime.value;
	d = new Date();
	t = d.getTime();
	if(Math.floor(t/1000)>curtime){
		alert('该调查已经过期，多谢您的关注！');
		return false;
	}
	var bln_valite=false;
	var pre_ele_name="";
	var ele_value_len;
	var ele_value;
	var ele_len=document.form1.elements.length;
	for(var cun=0;cun<ele_len;cun++){
		var obj_ele=document.form1.elements[cun];
		var obj_title=obj_ele.title;
		var obj_hint=obj_ele.req_hint;
		var ele_name=obj_ele.name;
		ele_name=ele_name.replace("[","");
		ele_name=ele_name.replace("]","");
		if(pre_ele_name==ele_name)
			continue;
		pre_ele_name=ele_name;
		var ele_type=obj_ele.type;
		
		if(ele_type!="submit" && ele_type!="hidden" && ele_type!="reset" && ele_type!="button"){//有效检验类型
			var ele_req_type=obj_ele.req_type;//检验类型
			var ele_req_len=obj_ele.req_len;//检验长度
			if(ele_req_type!="no_quire" && typeof(ele_req_type)!="undefined"){//如果需要检验
				ele_value=obj_ele.value;//检验元素的值
				ele_value=trim(ele_value);
				//alert(ele_type);continue;
				if(ele_value=="" && ele_type!="select-one"){
				
					alert(obj_title+"内容不能为空，请填写！");
					obj_ele.focus();
					return false;
				}
				ele_value_len=get_str_len(ele_value);
				switch(ele_req_type){
					case "chinese"://中文类型
						bln_valite=check_input_chinese(ele_value);
						if(!bln_valite){
						
							if(typeof(obj_hint)!="undefined")
								alert(obj_hint)
							else
								alert("请正确填写"+obj_title+"内容，必须是中文！");
							obj_ele.focus();
							return false;
						}
						if((!isNaN(ele_req_len)) && (ele_value_len>ele_req_len)){//检验值的长度
							alert(obj_title+"内容太长，不能提交");
							obj_ele.focus();
							return false;
						}
						break;
					case "char"://任意字符类型
						if((!isNaN(ele_req_len)) && (ele_value_len>ele_req_len)){//检验值的长度
							alert(obj_title+"内容太长，不能提交");
							obj_ele.focus();
							return false;
						}
						break;
					case "number"://数字字符类型
						bln_valite=isNumber(ele_value);
						if(!bln_valite){
							if(typeof(obj_hint)!="undefined")
								alert(obj_hint)
							else
								alert("请正确填写"+obj_title+"内容，必须是数字！");
							obj_ele.focus();
							return false;
						}
						if((!isNaN(ele_req_len)) && (ele_value_len>ele_req_len)){//检验值的长度
							alert(obj_title+"内容太长，不能提交");
							obj_ele.focus();
							return false;
						}
						break;
					case "post"://邮编类型
						if((ele_value_len!=6) || (!isNumber(ele_value))){//邮编类型的长度必须是6
							if(typeof(obj_hint)!="undefined")
								alert(obj_hint)
							else
								alert("邮编长度必须是6位正整数，请检查！");
							obj_ele.focus();
							return false;
						}
						break;
					case "ID"://身份证类型
						if(!fucCheckID(ele_value)){
							if(typeof(obj_hint)!="undefined")
								alert(obj_hint)
							else
								alert("请你正确输入身份证号，十五位或十八位正整数！");
							obj_ele.focus();
							return false;
						}
						break;
					case "mobile"://手机类型
						if(!fucCheckMobile(ele_value)){
							if(typeof(obj_hint)!="undefined")
								alert(obj_hint)
							else
								alert("请你正确输入手机号码，只能是11位整数！");
							obj_ele.focus();
							return false;
						}
						break;
					case "tel"://固定电话类型
						bln_valite=fucCheckTEL(ele_value);
						if(!bln_valite || ele_value_len<7){
							if(typeof(obj_hint)!="undefined")
								alert(obj_hint)
							else
								alert("请你正确输入电话号码，只能是整数、#、-形式！");
							obj_ele.focus();
							return false;
						}
						if((!isNaN(ele_req_len)) && (ele_value_len>ele_req_len)){//检验值的长度
							alert(obj_title+"内容填写太长，不能提交");
							obj_ele.focus();
							return false;
						}
						break;
					case "mail"://mail类型
						if(!chkemail(ele_value)){
							if(typeof(obj_hint)!="undefined")
								alert(obj_hint)
							else
								alert("请你正确输入Email！");
							obj_ele.focus();
							return false;
						}
						break;
					case "date"://date类型
						if(!Date_istrue(ele_value)){
							if(typeof(obj_hint)!="undefined")
								alert(obj_hint)
							else
								alert("请你正确输入时间,必须是YYYY-MM-DD格式！");
							obj_ele.focus();
							return false;
						}
						break;
					case "select"://select下拉框类型
						if(ele_value==""){
							if(typeof(obj_hint)!="undefined")
								alert(obj_hint)
							else
								alert("请选择"+obj_title+"！");
							obj_ele.focus();
							return false;
						}
						break;
					case "check"://check单、复选框类型
						var chk = false;
						
						for (var i=0;i<eval("document.form1."+ele_name+".length");i++){
							if (eval("form1."+ele_name+"["+i+"].checked")){
								chk = true;
							}
						}
						if(!chk){
							if(typeof(obj_hint)!="undefined")
								alert(obj_hint)
							else
								alert("请选择"+obj_title+"！");
							obj_ele.focus();
							return false;
						}
						break;
					default:
						break;
				}//end switch
			}//end ele_req_type
			if(ele_type=="textarea" ){//textarea必须要检查它的最大长度
				if(trim(ele_type)!=""){
					ele_value=obj_ele.value;
					ele_value_len=get_str_len(ele_value);
					if(ele_value_len>=255){
						alert(obj_title+" 内容填写太长，请检查！");
						obj_ele.focus();
						return false;
					}
				}
			}
			
		}//end ele_type
	}//end for loop
	
	//the following is check user login
	var require_user=form.require_user.value;
	if(require_user!=0){//需要用户登陆
		var zol_userid=form.zol_userid.value;
		var bln_anonymous=form.anonymous.value;
		if(bln_anonymous!=0){//如果可以为匿名形式
			var bln_anonymous_check=form.anonymous.checked;
			if(!bln_anonymous_check && zol_userid==""){
				alert ("请输入用户名！");
				form.zol_userid.focus();
				return false;
			}
			if(bln_anonymous_check && zol_userid!=""){
				alert ("请选择提交个人信息和匿名其中的一种形式！");
				form.zol_userid.focus();
				return false;
			}
		}else{//如果为非匿名形式
			if(zol_userid==""){
				alert ("请输入用户名！");
				form.zol_userid.focus();
				return false;
			}
		}
	}
	
}//end of function

//新添提交表单



