//EMAIL VALIDATION *******************************************/
//VERSION: 1.4 13-sep-2005 PV
//VERSION: 1.3 6-okt-2004 RD
//VERSION: 1.2 8-april-2003 JK
// RegExp \w test bij win98 en IE5.0 niet op underscore _ 
// /^([\w\-\.]+)@{1} enz. verandert in /^([\w\-\._]+)@{1} enz. regel 85

//declaration of the variables and arrays
//DO NOT CHANGE!!! *******************************************/
var user, domain
arr_nondomein = new Array();																	
arr_adres = new Array();																			
arr_domein = new Array();
err_msg = new Array();
//************************************************************/


//array with non-exixting domains
//(editable...)
arr_nondomein[0]	= 'hotmail.nl'
arr_nondomein[1]	= 'yahoo.nl'
arr_nondomein[2]	= 'hotmil.com'
arr_nondomein[3]	= 'hotmailo.com'
arr_nondomein[4]	= 'hotmailc.om'
arr_nondomein[5]	= 'hotmail.co'
arr_nondomein[6]	= 'hotmai.com'
arr_nondomein[7]	= 'hotamil.com'
arr_nondomein[8]	= 'homtail.com'
arr_nondomein[9]	= 'vhello.nl'
arr_nondomein[10]	= 'chelo.nl' 
arr_nondomein[11]	= 'wannadoo.nl'
arr_nondomein[12]	= 'wnadoo.nl'
arr_nondomein[13]	= 'hotmaill.com'
arr_nondomein[14]	= 'hotmail.om'
arr_nondomein[15]	= 'hotmail.cm'
arr_nondomein[16]	= 'hotmaili.com'
arr_nondomein[17]	= 'hotail.com'
arr_nondomein[18]	= 'homail.com'
arr_nondomein[19]	= 'hotrmail.com'
arr_nondomein[20]	= 'hotmial.com'
arr_nondomein[21]	= 'hotmal.com'
arr_nondomein[22]	= 'hotnail.com'
arr_nondomein[23]	= 'hotmqil.com'
arr_nondomein[24]	= 'hotmsil.com'
arr_nondomein[25]	= 'hotmaol.com'
arr_nondomein[26]	= 'hotlmail.com'
arr_nondomein[27]	= 'hotamail.com'
arr_nondomein[28]	= 'hotmaiil.com'
arr_nondomein[29]	= 'hotmaikl.com'
arr_nondomein[30]	= 'hotmail.com.nl'
arr_nondomein[31]	= 'hotmaail.com'
arr_nondomein[32]	= 'hotmmail.com'
arr_nondomein[33]	= 'hotmaik.com'
arr_nondomein[34]	= 'hotmaik.com'
arr_nondomein[35]	= 'hotmsail.com'
arr_nondomein[36]	= 'hotmailc.com'

//array with forbidden email addresses
//(editable...)
arr_adres[0] = 'vragen@ib-groep.nl'


//array with domains where user can only contain underscore and literal- and nummeric characters
//(editable...)
arr_domein[0] = 'hotmail.com'
arr_domein[1] = 'msn.com'


//array with error messages
//(editable...)
err_msg[0] = 'U heeft geen E-mail adres ingevuld!'
err_msg[1] = 'Uw E-mail adres moet minimaal 7 karakters bevatten (x@yy.zz)!'
err_msg[2] = 'Uw E-mail adres mag geen spaties bevatten!'
err_msg[3] = 'Uw E-mail adres voldoet niet aan de W3C* standaard!\n\n    * W3C = World Wide Web Consortium'
err_msg[4] = 'Uw E-mail adres heeft een ongeldig Top-level domein*!\n\n    * Top-level domein = zz (x@yy.zz)'
err_msg[5] = 'Het E-mail adres dat u heeft gekozen is niet toegestaan!'
err_msg[6] = 'Het E-mail adres heeft een onbekend domein*!\n\n    * domein = yy.zz (x@yy.zz)'
err_msg[7] = 'De gebruikersnaam* mag voor dit domein** alleen letters (a-zA-Z), cijfers (0-9), onderstrepingstekens (_), mintekens (-) en punten (.) bevatten!\n\n    *   gebruikersnaam = x (x@yy.zz)\n    ** domein = yy.zz (x@yy.zz)'


// E-mail validation
// DO NOT CHANGE!!! ******************************************/
//function containing the email validations
//usage: mailValidation(mailField,isOptional)
//					mailField = a object (document.[form_name].[element_name]) where the email has to be entered.
//					isOptional = a boolean (true|false) specifies if the input is optional
//
//the return value is either 'null' or a message, if 'null' is returned the input is valid.
//the message contains the error message corresponding the error occurred

function mailValidation(mailField,isOptional)
{

	//declaring variables
	var s = "", re;

	//retrieve email instance.
	s = mailField;

	//split email address in two parts, user and domain.
	user = s.substring(0,s.indexOf("@"));
	domain = s.substring(s.indexOf("@")+1,s.length);

	//remove leading and trailing spaces
	s = s.replace(/^\s*|\s*$/g, "");


	//input check: if input is optional (isOptional = true), the length of
	//the string cannot be zero-length
	if (isOptional){if (s.length == 0) {return null;}}


	//length check: x@xx.xx is the smallest address. that's 7 characters. so, length
	//must be greater than 6 to continue.
	if (s == "undefined" || s.length < 7) {return err_msg[1];}


	//validate email address syntax and remove any emails that don't 
	//match the basic syntax pattern below.
	re = /^([\w\-\._+]+)@{1}(([\w\-]{1,67})|(([\w\-]{1,67})+\.[\w\-]{1,67}))\.(([a-zA-Z\d]{1,67})(\.[a-zA-Z\d]{2,6})?)$/i

	if (!re.test(s)) {return err_msg[3];}

	
	//validate domain part of the email against all known TLDs as of May 2001. 
	//see for new domains: (http://www.iana.org/domain-names.htm)
	re = /\.(a[c-gil-oq-uwz]|b[a-bd-jm-or-tvwyz]|c[acdf-ik-orsuvx-z]|d[ejkmoz]|e[ceghr-u]|f[i-kmorx]|g[abd-ilmnp-uwy]|h[kmnrtu]|i[delm-oq-t]|j[emop]|k[eg-imnprwyz]|l[a-cikr-vy]|m[acdghk-z]|n[ace-giloprtuz]|om|p[ae-hk-nrtwy]|qa|r[eouw]|s[a-eg-ort-vyz]|t[cdf-hjkm-prtvwz]|u[agkmsyz]|v[aceginu]|w[fs]|y[etu]|z[admrw]|com|edu|net|org|mil|gov|biz|pro|aero|coop|info|name|museum|name|int)$/i
	if (!re.test(s)) {return err_msg[4];}


	//check if email address is valid using the array 'arr_adres'
	for (i = 0; i < arr_adres.length; i++) {if(arr_adres[i] == s) {return err_msg[5];}}


	//check if domain is valid using the array 'arr_nondomain'
	for (i = 0; i < arr_nondomein.length; i++) {if (arr_nondomein[i] == domain) {return err_msg[6];}}
	
	
	//check if user has correct syntax for this domain (comparing domain with array 'arr_domain'). 
	//user can only contain [a-zA-Z0-9_\-\.].
	re = /[^a-zA-Z0-9_\-\.]/
	for (i = 0; i < arr_domein.length; i++) if (arr_domein[i] == domain) {if(re.test(user)) {return err_msg[7];}}
		

	//everything went OK
	return null;
}
//************************************************************/