function checkinput(el, re, msg, url, urlmsg){
	var b = true;
	if(el.defaultValue){
		if(el.value === el.defaultValue){
			b=false;
		}
	}
	if(b){
		b = re.test(el.value);
	}
	if(b && url){
		b = get(url+ el.value) !== '1';
		msg = urlmsg;
	}
	if(b){
		removeClass(el, 'err');
		showok(el,'&nbsp;');
		clearerror();
	}else{
		addClass(el, 'err');
		showerror(el,'<div class="explain">'+msg||el.title+'</div>');
	}
	return b;
}
function showok(el, msg){
	if(el.type == 'checkbox'){
		return;
	}
	var ok = el.type == 'radio' ? el.parentNode.parentNode.lastChild : el.nextSibling;
	if(!ok || ok.className !== 'ok'){
		ok = document.createElement('span');
		ok.className='ok';
		if(el.type === 'radio'){
			el.parentNode.parentNode.appendChild(ok);
		}else{
			el.parentNode.insertBefore(ok, el.nextSibling);
		}
	}
	ok.innerHTML = msg;
}
function showerror(el, msg){
	
	var ok = el.nextSibling;
	if(ok && ok.className === 'ok') {
		ok.innerHTML='';
	}
	
	var id = 'error';
	var err = $(id);
	if(!err){
		err = document.createElement('SPAN');
		err.id = id;
	}
	err.innerHTML = msg;
	el.parentNode.insertBefore(err, el.nextSibling);
	if(err.currentStyle.position=='absolute'){
		var x = xoffset(el);
		err.style.top = x.t;
		err.style.left = x.l + el.offsetWidth;
	}
	err.style.display='';
}
function checkoption(el, b, msg){
	var li = el;
	while(li.nodeName !== 'LI'){
		li = li.parentNode;
	}
	li = li||el;
	if(b){
		li.style.border='';
		//showok(el,'&nbsp;');
		clearerror();
	} else {
		li.style.border = '1px solid #f60';
		showerror(li,'<div class="explain">'+msg+'</div>');
	}
	return b;
}
function clearerror(){
	var err = $('error');
	if(err){
		err.style.display='none';
	}
}
var fieldfunction = {
	email:function(){
		return checkinput(this,/^\w+@\w+(\.\w+)+$/,'Spiiker登录用户名', '/validemail.jsp?email=', '您已申请过等级测试，如需进一步了解Spiiker课程，请联系400-600-9144。');
	},
	name: function(){
		return checkinput(this, /^[\u4e00-\u9fa5]{1,6}$/,'请输入您的中文姓名');
	},
	englishname: function(){
		return checkinput(this, /^\w+$/,'请输入英文名，如无英文名，建议使用汉语拼音');
	},
	phone2:function(){
		return checkinput(this, /^(0\d{10,11}|1\d{10})$/,'请填写正确的电话号码以便顺利接听外教来电。', '/validphone.jsp?phone2=', '您已申请过等级测试，如需进一步了解Spiiker课程，请联系400-600-9144。');
	},
	password: function(){
		return checkinput(this, /^\w+$/,'请填写6位以上密码');
	},
	privacy:function(){
		return checkoption(this, this.checked, '请阅读并勾选《隐私保护协议》。');
	},
	selfevaluation:function(){
		return checkoption(this, !!this.value, '请选择自我评估英语水平。');
	},
	testdate:function(){
		return checkoption(this, !!this.value, '请选择测试日期和时间。');
	},
	testhour:function(){
		return checkoption(this, !!this.value, '请选择测试时间。');
	}
};
	
var fapply =  document.getElementById('fapply');

for(var k in fieldfunction){
	var i = fapply[k];
	if(i && i.name){
		addEvent(i, 'onblur',fieldfunction[k]);
	}
}
showtips(fapply.email, '作为网站登陆帐号');

var  elems = fapply.selfevaluation;
for( var i = elems.length; --i >= 0; ) {
	elems[i].parentNode.onclick = function() {
		var radio = this.firstChild;
		fieldfunction.selfevaluation.apply(radio);
		document.getElementById('sfdiv').innerHTML = this.title;
		//validtime(radio.form.testdate, radio.form.testhour.value, radio.value);
	};
}

function validtime(date, hour, sl){
	if(date.value && hour){
		var r = get('/validtime.jsp?sl='+sl+'&testtime='+date.value+' '+hour+':00');
		if(r !== '1'){
			changetestdate(date);
		}
	}
}

function apply(f){
	try{
		var r = new ifr(f);
		var els = f.elements;
		var radio = {};
		for(var i=0;i<els.length;i++){
			var k = els[i].name;
			if(k && fieldfunction[k]){
				var b;
				if(els[i].type === 'radio'){
					if(radio[k] === true){
						continue;
					}
					var div = els[i].parentNode.parentNode;
					div.value = getradio(k, f);
					b = fieldfunction[k].apply(div);
					radio[k] = true;
				}else{
					b = fieldfunction[k].apply(f[k]);
				}
				if(!b){
					return false;
				}
			}
		}
	}catch(err){}
	r.submit();
	return false;
}
function changetestdate(el){
	var span = document.getElementById('testhourspan');
	span.innerHTML=get('/testhour.jsp?date='+el.value);
	var testhour = span.getElementsByTagName('select')[0];
	testhour.onblur=fieldfunction.testhour;
}