// Student Test --By Jiang Hongbin

var Timer=0;
var Timer_s=0;
var Timer_m=0;
var Timer_h=0;

var maxid=0;
var lbid=0;
var maxtime=0;

var now;

//启动计时器
function startclock(){
	myclock=window.setInterval('showclock()',1000);
}

//停止计时器
function stopclock(){
	window.clearInterval(myclock);
}

//显示计时器
function showclock(){
	if(Timer_s==60){
		Timer_s=0;
		Timer_m=Timer_m+1;
		if(Timer_m==60)
			Timer_h=Timer_h+1;
	}
	if(maxtime>0){
		//提前5分钟报警
		if(Timer==(maxtime-5)*60)
			alert("本量表限时为 "+maxtime+" 分钟，现在还剩下最后 5 分钟！");
		//超时断开
		if(Timer==maxtime*60){
			alert("本量表限时为 "+maxtime+" 分钟，现在时间已到！");
			document.getElementById("End").disabled=true;
			for(var i=1;i<=maxid;i++) //隐藏所有题目
				document.getElementById("q_"+i).style.display="none";
			document.getElementById("CloseWin").disabled=true;
			document.getElementById("bt_prev").style.display="none";
			document.getElementById("bt_next").style.display="none";
			document.getElementById("select").style.display="none";
			//window.close();
		}
	}
	document.all.clock.innerText=Timer_h+':'+Timer_m+':'+Timer_s;
	Timer_s++;
	Timer++;
}

//屏蔽鼠标右键
document.onmousedown=click;
function click(){
	if(event.button==2)
		alert('提示：专心测验，不要做其他事情！');
}

//控制装载进度条
function loadbar_width(id){
	var len=parseInt((id+1)*(100/maxid));
	with(document.all){
		if(len<100){
			loading.style.width=len+"%";
			loaded.innerText=len+"%";
		}
		else{
			loading.style.width="100%";
			loaded.innerText="100%";
		}
	}
}

//开始按钮事件
function Start_onclick(){
	startclock();
	now=new Date().getTime();
	with(document.all){
		q_1.style.display="";
		q_act.style.display="";
		Start.disabled=true;
		End.disabled=false;
		bar_load.style.display="none";
		bar_test.style.display="";
	}
}

//关闭窗口按钮事件
function CloseWin_onclick(){
	if(document.all.Start.disabled){
		if(confirm("在测验中途退出，下次必须重新做，您确定吗？"))
			window.close();
	}
	else
		window.close();
}

//前一题按钮事件
function prev_onclick(){
	var o=document.getElementById("select");
	var id=o.options[o.selectedIndex].value*1;
	var len=parseInt((id-1)/maxid*100);
	if(len>100) len=100
	
	document.getElementById("q_"+(id-1)).style.display=""; //前一题显示
	document.getElementById("q_"+id).style.display="none"; //后一题消失
	document.getElementById("gowhere").style.width=len+"%";
	o.selectedIndex=id-2;
	
	if(id==2)
		document.getElementById("bt_prev").disabled=true;
}

//后一题按钮事件
function next_onclick(){
	var o=document.getElementById("select");
	var id=o.options[o.selectedIndex].value*1;
	var len=parseInt((id+1)/maxid*100);
	if(len>100) len=100

	//记录每道题的呈现时间
	var today=new Date();
	document.getElementById("t_"+id).value=TimeDiff(now,today.getTime());
	now=today.getTime();

	if(id==maxid){
		if(confirm("这已经是最后一道题目了，您想现在就保存结果并结束测试吗？"))
			document.getElementById("End").click();
	}
	else{
		document.getElementById("q_"+id).style.display="none"; //前一题消失
		document.getElementById("q_"+(id+1)).style.display=""; //后一题显示
		document.getElementById("gowhere").style.width=len+"%";
		o.selectedIndex=id;
	}
	
	if(id==1)
		document.getElementById("bt_prev").disabled=false;
}

//选择列表事件
function select_change(o){
	var id=o.options[o.selectedIndex].value*1;
	var i;
	var len=parseInt(id/maxid*100);
	if(len>100) len=100

	document.getElementById("bt_prev").disabled=(id==1?true:false);
	document.getElementById("gowhere").style.width=len+"%";
	for(i=1;i<=maxid;i++)
		document.getElementById("q_"+i).style.display=(id==i?"":"none");
}

//计算时间间隔（精确到秒）
function TimeDiff(t1,t2){
	return Number((t2-t1)/1000).toFixed(0);
}

//只有选择题，要求每题作答
function CheckAnswer(theform){
	if(lbid==10||lbid==67)
		return CheckAnswer3(theform);
	else if(lbid==44||lbid==50||lbid==52)
		return CheckAnswer2(theform);
	else if(lbid==9)
		return CheckAnswer_EMBU(theform);
	else if(lbid==16||lbid==51||lbid==66||lbid==94||lbid==95)
		return CheckAnswer4(theform);
	else{
		var i,j,err,o;
		var errmsg="";
		var answer="";
		var time="";
		for(i=1;i<=maxid;i++){
			time+="|"+theform["t_"+i].value; //记录每道题的呈现时间
			err=true;
			o=theform["rb_"+i];
			for(j=0;j<o.length;j++)
				if(o[j].checked){
					answer+="|"+o[j].value;
					err=false;
				}
			if(err)
				errmsg+="、"+i;
		}
		if(errmsg!=''){
			alert('第 '+errmsg.substring(1)+' 题未选答案！');
			return false;
		}
		theform.answer.value=answer.substring(1);
		theform.time.value=time.substring(1);
	}
}

//========有输入题和选择题，要求必须作答==========
function CheckAnswer2(theform){
	var i,j,err,o;
	var errmsg="";
	var answer="";
	var time="";
	
	for(i=1;i<=maxid;i++){
		time+="|"+theform["t_"+i].value; //记录每道题的呈现时间
		err=true;
		o=theform["rb_"+i];
		if(o.type=="text"){
			if(o.value!=""){
				answer+="|"+o.value;
				err=false;
			}
		}
		else{
			for(j=0;j<o.length;j++)
				if(o[j].checked){
					answer+="|"+o[j].value;
					err=false;
				}
		}
		if(err)
			errmsg+="、"+i;
	}

	if(errmsg!=''){
		alert('第 '+errmsg.substring(1)+' 题未选答案！');
		return false;
	}
	
	theform.answer.value=answer.substring(1);
	theform.time.value=time.substring(1);
}

//========有输入题和选择题（输入题可选，选择题必答）======
function CheckAnswer3(theform){
	var i,j,err,o;
	var errmsg="";
	var answer="";
	var time="";
	
	for(i=1;i<=maxid;i++){
		time+="|"+theform["t_"+i].value; //记录每道题的呈现时间
		err=true;
		o=theform["rb_"+i];
		if(o.type=="textarea"||o.type=="text"){
			answer+="|"+o.value;
			err=false;
		}
		else{
			for(j=0;j<o.length;j++)
				if(o[j].checked){
					answer+="|"+o[j].value;
					err=false;
				}
		}
		if(err)
			errmsg+="、"+i;
	}
	if(errmsg!=""){
		alert('第 '+errmsg.substring(1)+' 题未选答案！');
		return false;
	}
	
	theform.answer.value=answer.substring(1);
	theform.time.value=time.substring(1);
}

//=== 有单选题和多选题 ===
function CheckAnswer4(theform){
	var i,j,err,o,s;
	var errmsg="";
	var answer="";
	var time="";
	
	for(i=1;i<=maxid;i++){
		time+="|"+theform["t_"+i].value; //记录每道题的呈现时间
		err=true;
		o=theform["rb_"+i];
		if(o[0].type=="checkbox"){
			answer+="|";
			err=false;
			s="";
			for(j=0;j<o.length;j++)
				if(o[j].checked){
					s+=","+o[j].value;
				}
			answer+=s.substring(1);
		}
		else{
			for(j=0;j<o.length;j++)
				if(o[j].checked){
					answer+="|"+o[j].value;
					err=false;
				}
		}
		if(err)
			errmsg+="、"+i;
	}
	if(errmsg!=""){
		alert('第 '+errmsg.substring(1)+' 题未选答案！');
		return false;
	}
	
	theform.answer.value=answer.substring(1);
	theform.time.value=time.substring(1);
}

//======专门用于EMBU量表的答案检测============
function CheckAnswer_EMBU(theform){
	var i,j,err;
	var errmsg="";
	var answer="";
	var time="";
	
	for(i=1;i<=maxid;i++){
		time+="|"+theform["t_"+i].value; //记录每道题的呈现时间
		err_fa=true;
		err_mo=true;
		for(j=0;j<5;j++){
			if(theform["rb_fa_"+i][j].checked){
				answer+="|"+theform["rb_fa_"+i][j].value;
				err_fa=false;
			}
			if(theform["rb_mo_"+i][j].checked){
				answer+="|"+theform["rb_mo_"+i][j].value;
				err_mo=false;
			}
		}
		if(err_fa||err_mo)
			errmsg+="、"+i;
	}
	if(errmsg!=""){
		alert('第 '+errmsg.substring(1)+' 题未选答案！');
		return false;
	}
	
	theform.answer.value=answer.substring(1);
	theform.time.value=time.substring(1);
}