String.prototype.trim=new Function("return(this.replace(/^\\s+|\\s+$/g,''));");
String.prototype.isEmpty=new Function("var v=this.trim();if(v.length==0){return(true);}else{return(false);}");
var objHttpReq = null; var objEmailCache = {};
function registerInit() {
	if (dom_GE("fname")!=null) {
		dom_GE("fname").onkeyup=checkFirstname;	dom_GE("fname").onclick=checkFirstname;
		dom_GE("lname").onkeyup=checkLastname; dom_GE("lname").onclick=checkLastname;
		dom_GE("email").onkeyup=checkEmail; dom_GE("email").onclick=checkEmail;
		dom_GE("pw").onkeyup=checkPassword; dom_GE("pw").onclick=checkPassword;
		dom_GE("pw2").onkeyup=checkPassword2; dom_GE("pw2").onclick=checkPassword2;
		dom_GE("terms").onclick=checkTerms;	
		dom_GE("regform").onsubmit=checkRegisterForm;
	}
}
function dom_GE(p_name) {
	if (document.getElementById == null) retun(null);
	return (document.getElementById(p_name));
}
function setStatus(p_o,p_m,p_s){
	p_o.innerHTML="<span class=\"status"+p_s+"\">"+(p_m==null?"&nbsp;":p_m)+"</span>";p_o.className=p_s;
}
function checkFirstname() {
	if (!dom_GE("fname").value.isEmpty()) { setStatus(dom_GE("statusFname"),"","success"); return(true); }
	else { setStatus(dom_GE("statusFname"),"Voornaam verplicht","error"); return(false); }
}
function checkLastname() {
	if (!dom_GE("lname").value.isEmpty()) { setStatus(dom_GE("statusLname"),"","success"); return(true); }
	else { setStatus(dom_GE("statusLname"),"Achternaam verplicht","error"); return(false); }
}
function checkEmail() {
	var sE; sE=dom_GE("email").value;
	if (validEmailSyntax(sE)) {
		if (objEmailCache[sE]==null) { httpRequest("email",sE,objEmailCache,showAjaxEmailResult); return(false); } else { return(showAjaxEmailResult(sE)); }
	} else {
		if (sE.isEmpty()) { setStatus(dom_GE("statusEmail"),"E-mailadres verplicht","error"); return(false); } 
		else { setStatus(dom_GE("statusEmail"),"E-mailadres ongeldig","error"); return(false); }
	  }
}
function checkPassword() {
	if (!dom_GE("pw").value.isEmpty()) { 
		if (dom_GE("pw").value.trim().length >= 6) { setStatus(dom_GE("statusPassword"),"","success"); return(true); }
		else { setStatus(dom_GE("statusPassword"),"Minstens 6 karakters","error"); return(false); }
	} else { setStatus(dom_GE("statusPassword"),"Paswoord verplicht","error"); return(false); }
}
function checkPassword2() {
	var sP2; sP2=dom_GE("pw2").value;
	if (!sP2.isEmpty()) { 
		if (sP2.trim().length >= 6) { 
			if (sP2 == dom_GE("pw").value) { setStatus(dom_GE("statusPassword2"),"","success"); return(true); }
			else { setStatus(dom_GE("statusPassword2"),"Paswoorden matchen niet","error"); return(false); }
		} else { setStatus(dom_GE("statusPassword2"),"Minstens 6 karakters","error"); return(false); }
	} else { setStatus(dom_GE("statusPassword2"),"Bevestig paswoord","error"); return(false); }
}
function checkTerms(p_mode) {
	if (dom_GE("terms").checked) { setStatus(dom_GE("statusTerms"),"","success"); return(true); }
	else { setStatus(dom_GE("statusTerms"),"Gelieve eerst akkoord te gaan met de gebruikersvoorwaarden!","error"); return(p_mode?false:true); }
}
function checkRegisterForm() {
	checkLastname(); checkFirstname(); checkEmail(); checkPassword(); checkPassword2(); checkTerms(false);
	if (checkLastname() && checkFirstname() && checkEmail() && checkPassword() && checkPassword2() && checkTerms(true)) { return(true); }
	else { return(false); }
}

function showAjaxEmailResult(p_e) {
	if (objEmailCache[p_e]=="true") { setStatus(dom_GE("statusEmail"),"","success"); return(true); } 
	else { setStatus(dom_GE("statusEmail"),"e-mail address reeds in gebruik","error"); return(false); }
}
function validEmailSyntax(p_e) {
	var filter=/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if(filter.test(p_e)) { return(true);} else { return(false); }
}
function validPhoneSyntax(p_e) {
	var filter=/^([0-9 \.\-\+\\/)\(]{9,17})+$/;
	if(filter.test(p_e)) { return(true);} else { return(false); }
}
function httpRequest(p_func,p_arg,p_obj,p_disp) {
    	if(objHttpReq && objHttpReq.readyState!=0) { objHttpReq.abort(); }
    	objHttpReq = getlHttp();
    	if(objHttpReq) {
        	q="/content/bordboeken/ajax/"+p_func+".asp?arg="+p_arg;
        	objHttpReq.open("GET",q,true);
        	objHttpReq.onreadystatechange=function() { if(objHttpReq.readyState==4) { if(objHttpReq.responseText){ p_obj[p_arg]=objHttpReq.responseText;p_disp(p_arg); } } };
		objHttpReq.send(null);
	} 
}
function getlHttp(){
	var req=null;
	try{ req=new ActiveXObject("Msxml2.XMLHTTP"); }
	catch(e) {
		try { req=new ActiveXObject("Microsoft.XMLHTTP"); }
		catch(x) { req=null; }
	}
	if(!req&&typeof XMLHttpRequest!="undefined") { req=new XMLHttpRequest(); }
	return(req);
}
