/*  -------------------------------------------------------------------------	                    JavaScript Form Validator                                 Version 2.0.2	Copyright 2003 JavaScript-coder.com. All rights reserved.	You use this script in your Web pages, provided these opening credit    lines are kept intact.	The Form validation script is distributed free from JavaScript-Coder.com	You may please add a link to JavaScript-Coder.com, 	making it easy for others to find this script.	Checkout the Give a link and Get a link page:	http://www.javascript-coder.com/links/how-to-link.php    You may not reprint or redistribute this code without permission from     JavaScript-Coder.com.		JavaScript Coder	It precisely codes what you imagine!	Grab your copy here:		http://www.javascript-coder.com/    -------------------------------------------------------------------------  */function Validator(frmname){	this.formobj=document.forms[frmname];	if(!this.formobj)	{	  	alert("BUG: couldnot get Form object "+frmname);		return;	}		if(this.formobj.onsubmit){		this.formobj.old_onsubmit = this.formobj.onsubmit;		this.formobj.onsubmit=null;	}	else{		this.formobj.old_onsubmit = null;	}		this.formobj.onsubmit		= form_submit_handler;	this.addValidation 		= add_validation;	this.setAddnlValidationFunction	= set_addnl_vfunction;	this.clearAllValidations 	= clear_all_validations;}function set_addnl_vfunction(functionname){	this.formobj.addnlvalidation = functionname;}function clear_all_validations(){	for(var itr=0;itr < this.formobj.elements.length;itr++){		this.formobj.elements[itr].validationset = null;	}}function form_submit_handler(){	for(var itr=0;itr < this.elements.length;itr++){		if(this.elements[itr].validationset && !this.elements[itr].validationset.validate()){		 	return false;		}	}		if(this.addnlvalidation){		str =" var ret = "+this.addnlvalidation+"()";	 	eval(str);    	    		if(!ret) return ret;	}		if(this.old_onsubmit)	{		return this.old_onsubmit();	}		return true;}function add_validation(itemname,descriptor,errstr){	if(!this.formobj){		alert("Probleem: het formulier object is niet gevonden");		return;	}//if		var itemobj = this.formobj[itemname];    	if(!itemobj){		alert("Probleem: Object is niet gevonden: "+itemname);		return;	}		if(!itemobj.validationset){		itemobj.validationset = new ValidationSet(itemobj);	}  	  	itemobj.validationset.add(descriptor,errstr);}function ValidationDesc(inputitem,desc,error){	this.desc=desc;	this.error=error;	this.itemobj = inputitem;	this.validate=vdesc_validate;}function vdesc_validate(){	if(!V2validateData(this.desc,this.itemobj,this.error)){    		this.itemobj.focus();		return false; 	} 	return true;}function ValidationSet(inputitem){	this.vSet=new Array();	this.add= add_validationdesc;	this.validate= vset_validate;	this.itemobj = inputitem;}function add_validationdesc(desc,error){	this.vSet[this.vSet.length]= 	new ValidationDesc(this.itemobj,desc,error);}function vset_validate(){	for(var itr=0;itr<this.vSet.length;itr++){		if(!this.vSet[itr].validate()){			return false;		}	 }	 return true;}function validateEmailv2(email){	// A very simple email validation checking. 	// You can add more complex email checking if it helps     	if(email.length <= 0){		return true;	}        	var splitted = email.match("^(.+)@(.+)$");    	if(splitted == null) return false;    	if(splitted[1] != null ){      		var regexp_user=/^\"?[\w-_\.]*\"?$/;      		if(splitted[1].match(regexp_user) == null) return false;    	}        	if(splitted[2] != null){      		var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;      		if(splitted[2].match(regexp_domain) == null){	    		var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;	    		if(splitted[2].match(regexp_ip) == null) return false;      		}// if      		return true;    	}	return false;}function V2validateData(strValidateStr,objValue,strError){ 	var epos = strValidateStr.search("=");     	var  command  = "";     	var  cmdvalue = "";     	if(epos >= 0){      		command  = strValidateStr.substring(0,epos);      		cmdvalue = strValidateStr.substr(epos+1);     	}     	else{      		command = strValidateStr;     	}     	    	switch(command){         	case "req":         	case "required":        		{            		if(eval(objValue.value.length) == 0){               			if(!strError || strError.length ==0){                 			strError = objValue.name + " : Veld is vereist";               			} //if               			              			alert(strError);               			return false;            		} //if            		break;                      	} //case required                 	case "maxlength":         	case "maxlen":           	{              		if(eval(objValue.value.length) >  eval(cmdvalue)){                			if(!strError || strError.length ==0){                  			strError = objValue.name + " : "+cmdvalue+" maximaal aantal karakters ";                			} //if                			alert(strError + "\n[Huidige aantal karakters = " + objValue.value.length + " ]");                			return false;              		} //if              		break;           	} //case maxlen                 	case "minlength":         	case "minlen":            	{              		if(eval(objValue.value.length) <  eval(cmdvalue)){                			if(!strError || strError.length ==0){                  			strError = objValue.name + " : " + cmdvalue + " minimaal aantal karakters  ";                			}//if                              			alert(strError + "\n[Huidige aantal karakters = " + objValue.value.length + " ]");                			return false;                              		}//if              		break;             	} //case minlen             			case "alnum": 		case "alphanumeric": 		{ 		      	var charpos = objValue.value.search("[^A-Za-z0-9]"); 		      	if(objValue.value.length > 0 &&  charpos >= 0){ 		      		if(!strError || strError.length ==0){ 			  		strError = objValue.name+": Alleen alphanumerieke karakters zijn toegestaan "; 				}//if 				alert(strError + "\n [Probleem is gevonden op positie " + eval(charpos+1)+"]"); 				return false; 		      	}//if 		      	break; 		   } //case alphanumeric		   		case "num": 		case "numeric": 		{ 		   	var charpos = objValue.value.search("[^0-9]"); 		      	if(objValue.value.length > 0 &&  charpos >= 0){ 				if(!strError || strError.length ==0){ 			  		strError = objValue.name+": Alleen numerieke karakters zijn toegestaan "; 				} //if               				alert(strError + "\n [Probleem is gevonden op positie " + eval(charpos+1)+"]"); 				return false; 		      	}//if 		      	break;               		   }//numeric            		case "alphabetic": 		case "alpha": 		{ 		   	var charpos = objValue.value.search("[^A-Za-z]"); 		      	if(objValue.value.length > 0 &&  charpos >= 0){ 				if(!strError || strError.length ==0){ 			  		strError = objValue.name+": Alleen alfabetische karakters zijn toegestaan "; 				} //if                             				alert(strError + "\n [Probleem is gevonden op positie " + eval(charpos+1)+"]"); 				return false; 		      	}//if 			break; 		   }// alpha            		case "alnumhyphen":		{              		var charpos = objValue.value.search("[^A-Za-z0-9\-_]");               		if(objValue.value.length > 0 &&  charpos >= 0){                   		if(!strError || strError.length ==0){                   			strError = objValue.name+": Toegestane karakters zijn A-Z,a-z,0-9,- en _";                 		} //if                                             		alert(strError + "\n [Probleem is gevonden op positie " + eval(charpos+1)+"]");                 		return false;               		} //if 						break;		}					case "email": 		{ 			if(!validateEmailv2(objValue.value)){ 			 	if(!strError || strError.length ==0){ 			    		strError = objValue.name+": Vul a.u.b. een geldig email adres in "; 			 	} //if                                               			 	alert(strError); 			 	return false; 		       	}//if 		   	break; 		} // case email           		case "lt": 		case "lessthan": 		{ 			if(isNaN(objValue.value)){ 		      		alert(objValue.name+": Moet een nummer zijn "); 		      		return false; 		    	} //if 		    	if(eval(objValue.value) >=  eval(cmdvalue)){ 		      		if(!strError || strError.length ==0){ 					strError = objValue.name + " : inhoud van het veld moet kleiner zijn dan "+ cmdvalue; 		      		} //if               		      		alert(strError); 		      		return false;                 		     	} //if             		    	break; 		} //case lessthan          		case "gt": 		case "greaterthan": 		{ 		 	if(isNaN(objValue.value)){ 		      		alert(objValue.name+": Moet een nummer zijn "); 		      		return false; 		    	} //if 		     	if(eval(objValue.value) <=  eval(cmdvalue)){ 		       		if(!strError || strError.length ==0){ 			 		strError = objValue.name + " : inhoud van het veld moet groter zijn dan "+ cmdvalue; 		       		} //if               		       		alert(strError); 		       		return false;                 		     	} //if             		    	break; 		} //case greaterthan          		case "regexp": 		{ 			if(objValue.value.length > 0){				if(!objValue.value.match(cmdvalue)){ 			      		if(!strError || strError.length ==0){ 						strError = objValue.name+": Er zijn ongeldige karakters gebruikt "; 			      		} //if                                                               			      		alert(strError); 			      		return false;                   			    	} //if 			}		   	break; 		} //case regexp         		case "dontselect": 		{ 			if(objValue.selectedIndex == null){ 		      		alert("BUG: dontselect command for non-select Item"); 		      		return false; 		    	} 		    	if(objValue.selectedIndex == eval(cmdvalue)){ 		     		if(!strError || strError.length ==0){ 		      			strError = objValue.name+": Selecteer 1 optie "; 		      		} //if                                                               		      		alert(strError); 		      		return false;                                   		     	} 		     	break; 		} //case dontselect              }//switch     return true; }/*	Copyright 2003 JavaScript-coder.com. All rights reserved.*/
