﻿// JScript 文件
var intpageamount = 1;
var intCurrPage = 1;
var	sRegExp_Email = /^[_a-z0-9][0-9a-zA-Z\_\-\.]{0,}@([_a-z0-9]+\.)+[a-z0-9]{2,4}$/;
	sRegExp_Email =  /^([a-z0-9])(([\-.]|[_]+)?([a-z0-9]+))*(@)([a-z0-9])((([-]+)?([a-z0-9]+))?)*((.[a-z]{2,3})?(.[a-z]{2,6}))$/i
var	sRegExp_Int = /^[0-9|-][0-9]{0,}$/;
var	sRegExp_Real = /^[+-]?\d+(\.\d+)?$/

var	sRegExp_IDCard15 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
var	sRegExp_IDCard18 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
var	sRegExp_Post = /^[1-9]\d{5}$/;
var	sRegExp_Mob = /(130|131|133|135|136|158|150|137|138|139)\d{8}/;
var	sRegExp_Date = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/;
var sRegExp_Cn=  /[u00-uFF]/ ;     
var sRegExp_En  = /\W/;


var intTargetPage = 0;
var sOverPage = "";
var sMessage;


function getcheckcode(){
	document.getElementById("CheckCodeImg").src = "../../checkcode.aspx";	
}

function setObj(){
	var sObj = "<table><tr>";
	var blnHasObj = false;
	if(typeof(blnCheckCode)!="undefined"){
		if(blnCheckCode==true){		
			sObj += '<td>验证码<input name="CheckCode" type="text" id="CheckCode" size="5" maxlength="5"><img src="../../checkcode.aspx" id="CheckCodeImg" onclick="getcheckcode()"></td>';
			blnHasObj = true;
		}
		else{
			sObj += '<td></td>';
		}
	}
	
	if(typeof(blnAnswerPSW)!="undefined"){
		if(blnAnswerPSW){
			sObj += '<td>独立答卷密码:<input name="AnswerPSW" type="text" id="AnswerPSW" size="10" maxlength="30"></td>';
			blnHasObj = true;
		}
		else{
			sObj += '<td></td>';
		}	
	}
	if(blnHasObj==true){
		sObj += "</tr></table>";
		sObj = "<BR>"+sObj
		document.getElementById("obj").innerHTML = sObj;
	}
	else{
		sObj = "";
	}
	
}
																													  
																													  
																													  
function init(){
    try{
        document.getElementById("page_1").style.display = "block";
    }
    catch(e){
        alert("问卷没有内容")
		return;
    }	
    try{
        document.getElementById("GUID").value = GUID;
    }
    catch(e){
    
    }
	setObj();
	
    setBT();
}


function setBT(){
	
	if(intpageamount==1){
		document.getElementById("submit").disabled = false;
		document.getElementById("submit").style.visibility = "visible";
		document.getElementById("nextpagebt").style.display = "none";
		return;
	}
	
	if(intCurrPage<intpageamount){
		document.getElementById("submit").style.visibility = "visible";
		document.getElementById("submit").disabled = true;
		document.getElementById("nextpagebt").disabled = false;
		document.getElementById("nextpagebt").style.visibility = "visible";
	}
	else{
		document.getElementById("submit").disabled = false;
		document.getElementById("submit").style.visibility = "visible";
		document.getElementById("nextpagebt").style.display = "none";
	}
	
}


function nextpage(){
	
	if(intCurrPage>=intpageamount){
		return
	}
	
	
	
	intTargetPage = 0;
	
	for(i=0;i<arrItem.length; i++){
		if(arrItem[i][2]==intCurrPage){
			
			if(setDataCheck(i)==false){
				alert(sMessage)
				try{
					document.getElementById("f"+arrItem[i][0]).focus();
				}
				catch(e){
					
					
				}
				
				try{
					//document.getElementById("f"+arrItem[i][0]+"_1").focus();
				}
					catch(e1){						
				}
				
				return;
			}
			else{
					
			}
		}
	}
	
	
	for(i=0;i<arrItem.length;i++){
		
		if(arrItem[i][2]==intCurrPage){			
			doLogic(i)
		}
	}
	
	document.getElementById("Page_"+intCurrPage).style.display = "none";

	switch(intTargetPage){
		case 0:
			intCurrPage++;
			document.getElementsByName("submit").disabled = true;			
			break;
		case -1:
			window.close();			
			break;
		case -2:
			document.getElementsByName("submit").disabled = true;
			document.getElementsByName("form").submit();
			break;
		default:
			intCurrPage = intTargetPage;
			break;
			
	}
	if(intTargetPage==-1){
		document.getElementsByName("form").reset();
		init();
		return;
	}
	
	if(sOverPage!=""){
		
		if(sOverPage.lastIndexOf(";")==0){
			sOverPage = sOverPage.substr(0,sOverPage.length-1)
		}
		var arrOverPage = sOverPage.split(";");
		arrOverPage = arrOverPage.sort();
		var ok= new Array();
		var result = arrOverPage;		
		for(i=0; i<arrOverPage.length; i++){
			for(j=i+1; j<arrOverPage.length;j++){
				if(arrOverPage[i]==arrOverPage[j]){
					result[i] = null
				}
			}
		}
		var m = 0
		for(i=0;i<result.length;i++){
			if(result[i]!=null){
				ok[m] = result[i]
				m++
			}
		}
		
		arrOverPage = ok;
		
		
		
		
		for(i=0; i<arrOverPage.length; i++){
			if(intCurrPage<=arrOverPage[i]){
				if(intCurrPage==arrOverPage[i]){
					intCurrPage++;
				}
				else{
					break;
				}
			}
		}
	}
	
	document.getElementById("Page_"+intCurrPage).style.display = "block";
	setBT();
	if(intCurrPage>=intpageamount){
		//document.getElementById("NextPageBT").style.visibility = "hidden";
		//document.getElementById("Submit").style.visibility = "visible";
		return
	}
}



function doLogic(sn){
	//'Select:429:ToPage>2:OverPage>3|Select:430:ToPage>3:OverPage>2';	
	
	if((arrItem[sn][4]>=7)||(arrItem[sn][4]<=3)){
		return;
	}

	if(arrItem[sn][5]==""){
		return;
	}

		
	var intSelectValue = 0;
	var obj = document.getElementsByName("f"+arrItem[sn][0])
		
	for(m=0; m<obj.length; m++){
		
		if(obj[m].checked==true){
			intSelectValue =obj[m].value;
			break;
		}
	}	
		
	if(intSelectValue==0){
		return;
	}
	
	var sLogic = "";
	var arrLogic = arrItem[sn][5].split("|");
	
	for(m=0;m<arrLogic.length;m++){
		
		if(arrLogic[m].indexOf("Select:"+intSelectValue+":")>=0){
			
			sLogic = arrLogic[m];
			break;
		}		
	}
	if(sLogic==""){
		return;
	}
	
	arrLogic = sLogic.split(":");
	
	intTargetPage = arrLogic[2].substr("ToPage>".length)
	sOverPage += arrLogic[3].substr("OverPage>".length)+";"
	
}


function checkform(){
	
	if(intCurrPage>intpageamount){		
		return false;
	}	
		
	intTargetPage = 0;
	
	for(i=0;i<arrItem.length; i++){
		
		if(arrItem[i][2]==intCurrPage){
			
			if(setDataCheck(i)==false){
				
				try{					
					document.getElementById("f"+arrItem[i][0]).focus();
					
				}
				catch(e){
					
				}
				alert(sMessage)
				
				return false;
			}			
			
		}
	}
	
	
	for(i=0;i<arrItem.length;i++){
		
		if(arrItem[i][2]==intCurrPage){			
			doLogic(i)
		}
	}
	
	document.getElementById("page_"+intCurrPage).style.display = "none";

	switch(intTargetPage){
		case 0:
			document.getElementsByName("submit").disabled = true;			
			
			if(blnCheckCode==true){
				if(document.getElementById("CheckCode").value==""){
					alert("请输入验证码");
					document.getElementById("CheckCode").focus();
					return false;
				}
			}
			if(blnAnswerPSW==true){
				if(document.getElementById("AnswerPSW").value==""){
					alert("请输入验证码");
					document.getElementById("AnswerPSW").focus();
					return false;
				}
			}
			statPoint();
			document.getElementsByName("form").submit();
			return true;	
			break;
		case -1:
			window.close();			
			break;
		case -2:
			if(blnCheckCode==true){
				if(document.getElementById("CheckCode").value==""){
					alert("请输入验证码");
					document.getElementById("CheckCode").focus();
					return false;
				}
			}
			if(blnAnswerPSW==true){
				if(document.getElementById("AnswerPSW").value==""){
					alert("请输入验证码");
					document.getElementById("AnswerPSW").focus();
					return false;
				}
			}
			
			
			document.getElementsByName("submit").disabled = true;
			statPoint();
			document.getElementsByName("form").submit();
			break;
		default:
			intCurrPage = intTargetPage;
			break;
			
	}
	
	if(intTargetPage==-1){
		document.getElementsByName("form").reset();
		init();
		return false;
	}
	
	if(sOverPage!=""){
		
		if(sOverPage.lastIndexOf(";")==0){
			sOverPage = sOverPage.substr(0,sOverPage.length-1)
		}
		var arrOverPage = sOverPage.split(";");
		arrOverPage = arrOverPage.sort();
		var ok= new Array();
		var result = arrOverPage;		
		for(i=0; i<arrOverPage.length; i++){
			for(j=i+1; j<arrOverPage.length;j++){
				if(arrOverPage[i]==arrOverPage[j]){
					result[i] = null
				}
			}
		}
		var m = 0
		for(i=0;i<result.length;i++){
			if(result[i]!=null){
				ok[m] = result[i]
				m++
			}
		}
		
		arrOverPage = ok;
		
		
		
		
		for(i=0; i<arrOverPage.length; i++){
			if(intCurrPage<=arrOverPage[i]){
				if(intCurrPage==arrOverPage[i]){
					intCurrPage++;
				}
				else{
					break;
				}
			}
		}
	}
	
	document.getElementById("page_"+intCurrPage).style.display = "block";
	
	return false;
}



function setDataCheck(sn){	
	var sCheckItem = "Empty|PostCode|IDCard|Data|Mob|Email|En|Cn|URL|MaxValue|MaxValue|MinValue|MinSelect|MaxSelect|MinTickOff"
	var sDiscription = "不能为空|不是有效的邮编|不是有效的身份证号|不是有效的日期|有是有效的手机|不是有效的Email|不是英文|不是中文|不是有效的网址|大于最大值|小于最小值|最少需要选择|最多只能选择|列举";

	/*
	arrItem[0][0] = 353;
	arrItem[0][1] = 'aaaaaaaaaaaaaaaa';
	arrItem[0][2] = 1;	页号
	arrItem[0][3] = 'Empty1|PostCode|IDCard|Data|Mob|Email|En|Cn|URL|MinLen0|MaxLen200';
	arrItem[0][4] = '1';	题目类型
	arrItem[0][5] = '';		逻辑串
	*/
	
	
	var arrCheckItem =  sCheckItem.split("|");
	var sCheckStr = arrItem[sn][3];
	var sReg = sReg = /[0-9]{1,}/;	
	var arr; 
	var intCount = 0;
	var arrCheck = sCheckStr.split("|")
	var arrCheckValue = new Array();
	var sTemp = "";
	var intMinLen = 0;
	var intMaxLen = 50;
	for(j=0; j<arrCheck.length;j++){
		arr = sReg.exec(arrCheck[j])
		if(arr!=null){
			arrCheckValue[intCount] = arr;
			sTemp = arrCheck[j].substr(0,arrCheck[j].length-arr[0].length)
		}
		else{
			arrCheckValue[intCount] = -1;
		}
		intCount++;			
	}

	var obj;
	var value;
	var blnSelected = false;
	switch(arrItem[sn][4]){
		case 1:
			
			if(arrItem[sn][6]> 0){
				return;
			}
			obj = document.getElementById("f"+arrItem[sn][0])
			value = obj.value
			if(sCheckStr.indexOf("Empty1")>=0){				
				if(value==""){
					sMessage = arrItem[sn][1]+"\n输入不能为空";
					return false;
				}
			}
			
			if(sCheckStr.indexOf("PostCode1")>=0){				
				if(sRegExp_PostCode.test(value)==false){
					sMessage = arrItem[sn][1]+"\n输入不是有效的邮编";
					return false;
				}
			}
			
			
			if(sCheckStr.indexOf("Data1")>=0){				
				if(sRegExp_Date.test(value)==false){
					sMessage = arrItem[sn][1]+"\n输入不是有效的日期";
					return false;
				}
			}
			
			if(sCheckStr.indexOf("IDCode1")>=0){				
				if(sRegExp_IDCode15.test(value)==false){
					if(sRegExp_IDCode18.test(value)==false){
						sMessage = arrItem[sn][1]+"\n输入不是有效的身份证号码";
						return false;
					}
				}
			}
			
			if(sCheckStr.indexOf("Mob1")>=0){				
				if(sRegExp_Mob.test(value)==false){
					sMessage = arrItem[sn][1]+"\n输入不是有效的手机号";
					return false;
				}
			}
			
			if(sCheckStr.indexOf("En1")>=0){				
				if(sRegExp_En.test(value)==false){
					sMessage = arrItem[sn][1]+"\n输入必须为英文";
					return false;
				}
			}
			
			if(sCheckStr.indexOf("Cn1")>=0){				
				if(sRegExp_En.test(value)==false){
					sMessage = arrItem[sn][1]+"\n输入必须为中文";
					return false;
				}
			}
			
			if(sCheckStr.indexOf("Email1")>=0){				
				if(sRegExp_En.test(value)==false){
					sMessage = arrItem[sn][1]+"\n输入不是有效的Email地址";
					return false;
				}
			}
			
			return true;
			break;
		case 2:			
			obj = document.getElementById("f"+arrItem[sn][0])
			value = obj.value
			if(sCheckStr.indexOf("Empty1")>=0){				
				if(value==""){
					sMessage = arrItem[sn][1]+"\n输入不能为空";
					return false;
				}
			}
			var vMaxValue = getCheckValue(sCheckStr,"MaxValue")
			var vMinValue = getCheckValue(sCheckStr,"MinValue")
			if(value!=""){
				if(sRegExp_Int.test(value)==false){
					sMessage = arrItem[sn][1]+"\n应该输入数字";
					return false;
				}
			}
			if(vMinValue!=""){
				vMinValue = parseFloat(vMinValue);
				if(value!=""){
					if(parseInt(value)<vMinValue){
						sMessage = arrItem[sn][1]+"\n输入值必须大于或等于"+intMinValue;
						return false;
					}
				}
			}
			
			if(vMaxValue!=""){
				vMaxValue = parseFloat(vMaxValue);
				if(value!=""){
					if(parseInt(value)>vMaxValue){
						sMessage = arrItem[sn][1]+"\n输入值必须小于或等于"+vMaxValue;
						return false;
					}
				}
			}
			break;
		case 3:
			
			obj = document.getElementById("f"+arrItem[sn][0])
			value = obj.value
			if(sCheckStr.indexOf("Empty1")>=0){				
				if(value==""){
					sMessage = arrItem[sn][1]+"\n输入不能为空";
					return false;
				}
			}
			break;
		case 4:case 5:case 11:
			
			
			if(sCheckStr.indexOf("Empty1")>=0){					

				for(n=0; n<document.getElementsByName("f"+arrItem[sn][0]).length;n++){
					
					if(document.getElementsByName("f"+arrItem[sn][0])[n].checked==true){	
					
						return true;
					}
				}
				
				sMessage = arrItem[sn][1]+"\n请选择";
				return false;
			}
			
			
			break;
		case 6:
			
			if(sCheckStr.indexOf("Empty1")>=0){	
				if(document.getElementsByName("f"+arrItem[sn][0]).selectedIndex==0){
					return false;
				}
			}
			return true;
			break;
		case 7:
			
			if(sCheckStr.indexOf("Empty1")<0){
				return true;
			}
			var intTemp = 0;
			var m;
			for(m=0; m<arrItem.length; m++){
				
				blnSelected = false;
				if(arrItem[m][6]==arrItem[sn][0]){
					
					for(n=0; n<document.getElementsByName("f"+arrItem[m][0]).length;n++){						
						if(document.getElementsByName("f"+arrItem[m][0])[n].checked==true){
							blnSelected = true;
							break;
						}
					}
					intTemp++;
					if(blnSelected==false){						
						sMessage = arrItem[m][1]+"\n请选择";
						document.getElementsByName("f"+arrItem[m][0])[0].focus();
						return false;
					}
					
				}
			}
			
			
			break;	
		case 8:case 9:
			
			if(sCheckStr.indexOf("Empty1")<0){
				return true;
			}
			
			var intMaxSelect = getCheckValue(sCheckStr,"MaxSelect");
			var intMinSelect = getCheckValue(sCheckStr,"MinSelect");
			var intSelectAmount = 0;
			for(m=0;m<document.getElementsByName("f"+arrItem[i][0]).length;m++){
				if(document.getElementsByName("f"+arrItem[i][0])[m].checked==true){
					intSelectAmount++;
				}
			}
			
			if(intSelectAmount==0){
				sMessage = arrItem[m][1]+"\n请选择";		
				return false;
			}
			if(intMaxSelect!=""){
				if(intMaxSelect<intSelectAmount){
					sMessage = arrItem[m][1]+"\n最多只能选择"+intMaxSelect+"项";
					return false;
				}
			}
			
			if(intMinSelect!=""){
				if(intMinSelect>intSelectAmount){
					sMessage = arrItem[m][1]+"\n至少需要选择"+intMinSelect+"项";
					return false;
				}
			}
			
			break;			
		case 10:
			
			var intMaxSelect = getCheckValue(sCheckStr,"MaxSelect");
			var intMinSelect = getCheckValue(sCheckStr,"MinSelect");
			var intSelectAmount = 0;
			
			for(m=0; m<document.getElementById("f"+arrItem[sn][0]).length; m++){					
				if(document.getElementById("f"+arrItem[sn][0])[m].selected==true){
					intSelectAmount++;
				}
			}
			
			if(sCheckStr.indexOf("Empty1")>=0){	
				if(intSelectAmount==0){
					sMessage = arrItem[sn][1]+"\n请选择";
					return false;
				}
			}
			
			if(intMaxSelect!=""){
				if(intMaxSelect<intSelectAmount){
					sMessage = arrItem[sn][1]+"\n最多只能选择"+intMaxSelect+"项";
					return false;
				}
			}
			
			if(intMinSelect!=""){
				if(intMinSelect>intSelectAmount){
					sMessage = arrItem[sn][1]+"\n至少需要选择"+intMinSelect+"项";
					return false;
				}
			}			
			return true;
			break;
		case 12:
			
			if(sCheckStr.indexOf("Empty1")<0){
				return true;
			}
			var intInputValue;
			var sInputValue = "";
			for(m=0; m<arrItem[sn][7];m++){
				
				intInputValue = document.getElementsByName("f"+arrItem[sn][0]+"_"+m)[0].value;//在firefox中不能通过
				
				if(sRegExp_Int.test(intInputValue)==false){
					sMessage = arrItem[sn][1]+"\n必须输入1到"+arrItem[sn][7]+"之间的整数";								
					return false;
				}
				if(intInputValue>arrItem[sn][7]){
					sMessage = arrItem[sn][1]+"\n输入不能大于"+arrItem[sn][7];					
					return false;
				}
				if(intInputValue<1){
					sMessage = arrItem[sn][1]+"\n输入不能小于1";				
					return false;
				}
				sInputValue += intInputValue+";";				
				
			}
			
			sInputValue = sInputValue.substr(0,sInputValue.length-1);			
			var arrInputValue = sInputValue.split(";");			
			arrInputValue = arrInputValue.sort();
			for(m=0;m<(arrInputValue.length-1); m++){

				if(parseInt(arrInputValue[m])+1!=parseInt(arrInputValue[m+1])){					
					sMessage = arrItem[sn][1]+"\n必须输入1到"+arrItem[sn][7]+"之间的整数\n输入值不能相同";			
					return false;
				}
			}
			break;
		
		case 13:
			//MinTickOff1
			
			var intMinTickOff = getCheckValue(sCheckStr,"MinTickOff");
			var intMaxTickOff = getCheckValue(sCheckStr,"MaxTickOff");
			var intInputAmount = 0;
			for(m=0; m<intMaxTickOff;m++){
				if(document.getElementById("f"+arrItem[sn][0]+"_"+m).value!=""){
						intInputAmount++;
				}
			}
			
			if(sCheckStr.indexOf("Empty1")>=0){	
				if(intInputAmount==0){
					sMessage = arrItem[sn][1]+"\n请输入";
					document.getElementById("f"+arrItem[sn][0]+"_0").focus();
					return false;
				}
			}
			
			
			if(intMinSelect!=""){
				if(intMinTickOff>intInputAmount){
					sMessage = arrItem[sn][1]+"\n至少需要列举"+intMinTickOff+"项";
					return false;
				}
			}			
			return true;
			break;
			
		default :
			return true;
			break;
	}

	return true;
			
		
	
}


function getCheckValue(sInput,sCheckItem){	
	var s = sInput.substr(sInput.indexOf(sCheckItem))
	var intPosi = s.indexOf("|");
	if(intPosi>=0){
		s = s.substring(0,intPosi)
	}	
	s = s.substr(sCheckItem.length)	
	return s;	
}

function statPoint(){
	var intAllPoint = 0;
	for(i=0; i<arrItem.length; i++){		
		if(arrItem[i][4]>=4&&(arrItem[i][4]<=10)){
			for(j=1; j<=arrItem[i][7];j++){
				if(document.getElementById("f"+arrItem[i][0]+"_"+j).checked==true){
					for(m=0; m<arrOption.length; m++){
						if(parseInt(document.getElementById("f"+arrItem[i][0]+"_"+j).value)==arrOption[m][0]){
							intAllPoint += arrOption[m][1]
							break;
						}
					}
				}
			}			
		}
	}
	document.getElementById("Point").value = intAllPoint;
	
}

