// ** Your Element - Form validatie functies

// E-mail validatie routine
function valEmail(value) {
	if (value != '') {
		return emailCheck(value)
	}
}
	 
function emailCheck (emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
		alert("Email adres lijkt incorrect (let op @ and .'s)")
		return false
	}

	var user=matchArray[1]
	var domain=matchArray[2]
	
	if (user.match(userPat)==null) {
        alert("Fout in email adres! De usernaam voor de @ is onjuist.")
    	return false
	}
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
    	for (var i=1;i<=4;i++) {
	    	if (IPArray[i]>255) {
	        	alert("Fout in email adres! IP adres is onjuist!")
				return false
	    	}
    }
    return true
	}
	
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		alert("Fout in email adres! De domeinnaam is onjuist.")
	    return false
	}

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || 
    	domArr[domArr.length-1].length>3) {
	   alert("Fout in email adres! Het adres moet eindigen met een 2 of 3 letterige code.")
	   return false
	}
	if (len<2) {
   		var errStr="Fout in email adres! Er is geen hostname."
   		alert(errStr)
	   return false
	}

return true;
}


// Check input (vergelijk controlerende velden
function check_dubbel(x, field){
var y = document.create_profile.elements[field].value
	if (y != x.value) {
   		var errStr="Het controleveld komt niet overeen!"
   		alert(errStr)
  		return false
	}
}


function empty(x) { if (x.length > 0) return false; else return true; }
function stripSpaces(x) { return x.replace(/^\W+/,''); }

// Username validatie routine
function form_username(x){
	var invalid = " "; // Invalid character is a space
	if (x.value.indexOf(invalid) > -1) {
		alert("Een username kan geen spaties bevatten.");
		return 'nee' ; 
	}
}

// Verplicht veld
function form_verplicht(naam,contents) {
if (empty(stripSpaces(contents.value))) {
	alert('De invoer van \''+ naam + '\' is verplicht.');
	return 'nee' ; 
	}	
}

function ae_checkdubbel(naam,contents,contents2) {
if (contents.value != contents2.value) {
	alert('Het checkveld van \''+ naam + '\' komt niet overheen.');
	return 'nee' ; 
	}	
}

function ae_padnummer(number,length) {
    var str = '' + number;
    while (str.length < length)
        str = '0' + str;
    return str;
}

function ae_checknumber(naam,contents,digits) {
    if (((contents.value / contents.value) != 1) && (contents.value != 0) || (empty(stripSpaces(contents.value)))) {
	alert('De invoer van \''+ naam + '\' moet bestaan uit cijfers.');
	contents.value = 0
	contents.value = ae_padnummer(contents.value,digits);
	contents.focus();
	return false;
	}
	contents.value = ae_padnummer(contents.value,digits);
}

function ae_checknumberrange(naam,contents,val,val2,digits) {
  	if (((contents.value / contents.value) != 1) && (contents.value != 0) || (empty(stripSpaces(contents.value))))  {
	alert('De invoer van \''+ naam + '\' moet bestaan uit cijfers.');	
	contents.value = val
	contents.value = ae_padnummer(contents.value,digits);
	contents.focus();	
	return false;
	}
	if ((contents.value < val) || (contents.value > val2) || (empty(stripSpaces(contents.value)))) {
	alert('De invoer van \''+ naam + '\' moet bestaan uit cijfers (in het bereik ' + val +' t/m ' + val2 + ').');
	contents.value = val
	contents.value = ae_padnummer(contents.value,digits);
	contents.focus();
	return false;
	}
	contents.value = ae_padnummer(contents.value,digits);
}

function stripLeading(string,chr) {
   var finished = false;
   for (var i = 0; i < string.length && !finished; i++)
       if (string.substring(i,i+1) != chr) finished = true;
   if (finished) return string.substring(i-1); else return string;
}

function stripTrailing(string,chr) {
   var finished = false;
   for (var i = string.length - 1; i > -1 && !finished; i--)
       if (string.substring(i,i+1) != chr) finished = true;
   if (finished) return string.substring(0,i+2); else return string;
}
