var chkObj		= new Array();
var cmpObj		= new Array();
var preObj		= new Array();
var yetdefined = "0";
var errors		= "";
var hihh		= 0 ;
var htmll		= "" ;
var htmlo		= "<p><a href='javascript:window.close()'><b>Ok</b></a></p>";
var htmls		= "<img src='/wabxlint/images/content_arrow.gif'>";
var errorbg   	= "";
var normalbg   	= "";
var returnVal	= false;
var lng			= new Array();
lng.english		= new Array();
lng.dutch		= new Array();
lng.french		= new Array();

// Error messages in english:
	lng.english.title		= "Form error"
	lng.english.header		= "The following error(s) occured:"
	lng.english.start		= "->";
	lng.english.field		= " The field ";
	lng.english.und	= " and the field ";
	lng.english.require	= " is required";
	lng.english.and	= " and";
	lng.english.min		= " must consist of at least ";
	lng.english.max		= " must not contain more than ";
	lng.english.minmax		= " and no more than ";
	lng.english.chars		= " character(s)";
	lng.english.digits		= " digit(s)";
	lng.english.selected	= " selection(s)";
	lng.english.num		= " must contain a number";
	lng.english.numbtwn		= " must contain a number between ";
	lng.english.email		= " must contain a valid e-mail address";
	lng.english.date		= " must be in DD/MM/YYYY format";
	lng.english.hour		= " must be in HH:MM format";
	lng.english.nodate		= " contains an invalid date";
	lng.english.nohour		= " contains an invalid hour";
	lng.english.mindate		= " must contain a year greater than ";
	lng.english.maxdate		= " must contain a year smaller than ";
	lng.english.mmdate		= " must contain a year between ";
	lng.english.option		= " must be selected";
	lng.english.compare		= " must be identical";
	lng.english.invalid		= " is invalid";
	
// Error messages in Dutch:
	lng.dutch.title		= "Fout in het formulier"
	lng.dutch.header		= "Fout in het formulier:"
	lng.dutch.start		= "->";
	lng.dutch.field		= " Het veld ";
	lng.dutch.und		= " en het veld ";
	lng.dutch.require		= " is verplicht";
	lng.dutch.and	= " en";
	lng.dutch.min		= " moet bestaan uit minstens ";
	lng.dutch.max		= " moet bestaan uit minder dan ";
	lng.dutch.minmax		= " en niet meer dan ";
	lng.dutch.chars		= " karakter(s)";
	lng.dutch.digits		= " cijfer(s)";
	lng.dutch.selected		= " selectie(s)";
	lng.dutch.num		= " moet een getal zijn";
	lng.dutch.numbtwn		= " moet een getal zijn tussen ";
	lng.dutch.email		= " moet een geldig e-mail adres zijn";
	lng.dutch.date		= " moet in DD/MM/JJJJ formaat zijn";
	lng.dutch.hour		= " moet in HH:MM formaat zijn";
	lng.dutch.nodate		= " bevat een ongeldige datum";
	lng.dutch.nohour		= " bevat een ongeldig uur";
	lng.dutch.mindate		= " moet een jaar bevatten groter dan ";
	lng.dutch.maxdate		= " moet een jaar bevatten kleiner dan ";
	lng.dutch.mmdate		= " moet een jaar bevatten tussen ";
	lng.dutch.option		= " moet een keuze bevatten";
	lng.dutch.compare		= " moeten identiek zijn";
	lng.dutch.invalid		= " is ongeldig";

// Error messages in French:
	lng.french.title		= "Erreur dans le formulaire"
	lng.french.header		= "L'erreur suivante s'est produite: "
	lng.french.start		= "->";
	lng.french.field		= " le champ ";
	lng.french.und		= " et le champ ";
	lng.french.require		= " est obligatoire";
	lng.french.and	= " et";
	lng.french.min		= " doit contenir au moins ";
	lng.french.max		= " ne doit pas contenir plus de ";
	lng.french.minmax		= " et pas plus de ";
	lng.french.chars		= " caract\350re(s)";
	lng.french.digits		= " chiffre(s)";
	lng.french.selected	= " s\351lection(s)";
	lng.french.num		= " doit contenir un nombre ";
	lng.french.numbtwn		= " doit contenir un nombre entre ";
	lng.french.email		= " doit contenir une adresse e-mail valide";
	lng.french.date		= " doit \352tre en format JJ/MM/AAAA";
	lng.french.hour		= " doit \352tre en format HH:MM";
	lng.french.mindate		= " doit contenir une ann\351e \340 partir de ";
	lng.french.maxdate		= " doit contenir une ann\351e jusqu'\340 maximum ";
	lng.french.mmdate		= " doit contenir une ann\351e comprise entre ";
	lng.french.nodate		= " ne contient pas une date correcte";
	lng.french.nohour		= " ne contient pas une heure correcte";
	lng.french.option		= " doit \352tre s\351lectionn\351";
	lng.french.compare		= " doivent \352tre identiques";
	lng.french.invalid		= " n'est pas dans le bon format";

function define(n,type,HTMLname,min,max,d){
	var p;
	var i;
	var x;
	if(!d) d=document;
	if((p=n.indexOf("?"))>0&&parent.frames.length){
    	d=parent.frames[n.substring(p+1)].document;
    	n=n.substring(0,p);
    	}
	if(!(x=d[n])&&d.all){
		x=d.all[n];
	}
	
  	for (i=0;!x&&i<d.forms.length;i++){
  		x=d.forms[i][n];
  	}
	for(i=0;!x&&d.layers&&i<d.layers.length;i++){
		x=define(n,type,HTMLname,min,max,d.layers[i].document);
		return x;
	}
	for (i=0;i<chkObj.length;i++){
		if (chkObj[i].form == x){
			yetdefined="1";
		}
	}
	if (yetdefined!="1"){
		eval("V_"+n+" = new formResult(x,type,HTMLname,min,max,n);");
		chkObj[eval(chkObj.length)] = eval("V_"+n);
	}	
	yetdefined="0";
	srtObj();
}

function undefine(n,d){
	var p;
	var i;
	var x;
	if(!d) d=document;
	if((p=n.indexOf("?"))>0&&parent.frames.length){
    	d=parent.frames[n.substring(p+1)].document;
    	n=n.substring(0,p);
    	}

	if(!(x=d[n])&&d.all){
		x=d.all[n];
	}
	
  	for (i=0;!x&&i<d.forms.length;i++){
  		x=d.forms[i][n];
  	}
	for(i=0;!x&&d.layers&&i<d.layers.length;i++){
		x=undefine(n,d.layers[i].document);
		return x;
	}
	eval("V_"+n+" = new unformResult(x);");
	for (i=0;i<chkObj.length;i++){
		if (chkObj[i].form == x){
			if (!document.layers && normalbg != "" && chkObj[i].type != "radio" && chkObj[i].type != "checkbox") chkObj[i].form.style.background=normalbg;
			RemoveElement(i);
		}
	}
}

function unpredefine(n){
	for (i=0;i<preObj.length;i++){
		if (preObj[i][0] == n){
			RemovePreElement(i);
		}
	}
}
function RemoveElement(arr) {
    for (arr;arr<chkObj.length;arr++) {
        chkObj[arr] = chkObj[arr + 1];
    }
    chkObj.length=chkObj.length-1;
}

function RemovePreElement(arr) {
    for (arr;arr<preObj.length;arr++) {
        preObj[arr] = preObj[arr + 1];
    }
    preObj.length=preObj.length-1;
}
function chkdef(a,b,c,d,e,f,g){
	if (a.checked){
		define(b,c,d,e,f,g);
	}else{
		undefine(b);
	}
}

function prechkdef(a,b,c,d,e,f,g){
	if (a.checked){
		predefine(b,c,d,e,f,g);
	}else{
		unpredefine(b);
	}
}


function compare(n,m,HTMLn,HTMLm,d){
	var p;
	var q;
	var i;
	var x;
	var y;
	if(!d) d=document;

	if((p=n.indexOf("?"))>0&&parent.frames.length){
    	d=parent.frames[n.substring(p+1)].document;
    	n=n.substring(0,p);
    	}
	if((q=m.indexOf("?"))>0&&parent.frames.length){
    	d=parent.frames[m.substring(q+1)].document;
    	m=m.substring(0,q);
    	}

	if(!(x=d[n])&&d.all){
		x=d.all[n];
	}
	if(!(y=d[m])&&d.all){
		y=d.all[m];
	}
	
  	for (i=0;!x&&i<d.forms.length;i++){
  		x=d.forms[i][n];
  	}
  	for (i=0;!y&&i<d.forms.length;i++){
  		y=d.forms[i][m];
  	}

	for(i=0;!x&&!y&&d.layers&&i<d.layers.length;i++){
		x=compare(n,m,HTMLn,HTMLm,d.layers[i].document);
		return x;
	}

	eval("V_"+n+" = new formCompare(x,y,HTMLn,HTMLm,n);");
	cmpObj[eval(cmpObj.length)] = eval("V_"+n);
}

function formResult(form,type,HTMLname,min,max,n){
	this.form = form;
	this.type = type;
	this.HTMLname = HTMLname;
	this.min  = min;
	this.max  = max;
	for(var xxx=0;xxx<document.forms.length;xxx++){
		for(var xx=0;xx<document.forms[xxx].length;xx++){
			if (n==document.forms[xxx][xx].name){
				 this.order=xxx + "_" + xx;
			}
		}
	}
}

function unformResult(form){
	this.form = form;
}

function formCompare(formn,formm,HTMLn,HTMLm,n){
	this.formn = formn;
	this.formm = formm;
	this.HTMLn = HTMLn;
	this.HTMLm = HTMLm;
	for(var xxx=0;xxx<document.forms.length;xxx++){
		for(var xx=0;xx<document.forms[xxx].length;xx++){
			if (n==document.forms[xxx][xx].name){
				 this.order=xxx + "_" + xx;
			}
		}
	}
}

function htmllogo(src){
	htmll = "<img src=" + src + " align=left>";
}
function htmlok(src){
	htmlo = "<a href=\"javascript:window.close()\"><img src=" + src + " border=\"0\"></a>";
}
function htmlstart(src){
	htmls = "<img src=" + src + " align=absmiddle>";
}

function textbg(a,b){
	if(a) normalbg="#"+a;
	if(b) errorbg="#"+b;
}

function rstCol(){
	if(chkObj.length>0){
		for(i=0;i<chkObj.length;i++){
			if (chkObj[i].type!="radio" && chkObj[i].type!="checkbox"){
				if (!document.layers && normalbg != "") chkObj[i].form.style.background=normalbg;
			}
		}
	}

	if(cmpObj.length>0){
		for(i=0;i<cmpObj.length;i++){
			if (!document.layers && normalbg != ""){
				cmpObj[i].formn.style.background=normalbg;
				cmpObj[i].formm.style.background=normalbg;
			}
		}
	}
}

function srtObj(){
	if(chkObj.length > 1){
		var tmpObj = new Array();	
		for(var xxx=0;xxx<document.forms.length;xxx++){
			for(var xx=0;xx<document.forms[xxx].length;xx++){
				for(i=0;i<chkObj.length;i++){
					if (chkObj[i].order==xxx + "_" + xx){
						tmpObj[tmpObj.length]=chkObj[i];
					}
				}
			}
		}
		chkObj = tmpObj;
	}
}

function validate(lang,html,bgcolor,txtcolor,fieldcolor,high,widd){
	if (!lang || (lang.toLowerCase() != "english" && lang.toLowerCase() != "french" && lang.toLowerCase() != "dutch" && lang.toLowerCase() != "en" && lang.toLowerCase() != "fr" && lang.toLowerCase() != "nl")){
		var secLng = "english";	// Choose between "english", "dutch", "french"
	} 
	else{
		var secLng = lang.toLowerCase();
	}
	if (secLng=="en") secLng = "english";
	if (secLng=="fr") secLng = "french";
	if (secLng=="nl") secLng = "dutch";
	rstCol(); //reset colors if any set for errored fields.

	if(chkObj.length>0){
		errorObject = "";
		for(i=0;i<chkObj.length;i++){
			valObj 			= new Object();
			valObj.form 	= chkObj[i].form;
			valObj.HTMLname = chkObj[i].HTMLname;
			valObj.type 	= chkObj[i].type;
			if (valObj.type!="radio" && valObj.type!="option" && valObj.type!="checkbox"){
				valObj.len 		= chkObj[i].form.value.length;
			}
			else{
				valObj.len 		= null;
			}
			if (valObj.type!="radio" && valObj.type!="checkbox"){
				valObj.val 		= chkObj[i].form.value;
			}
			else{
				valObj.val 		= null;
			}
			valObj.min 		= chkObj[i].min;
			valObj.max 		= chkObj[i].max;
			//**********************************************************************************************************************************
			//alert("valObj: "+valObj.HTMLname+"\nvalObj.val: "+valObj.val+"\nvalObj.len: "+valObj.len+"\nvalObj.min,valObj.max: "+valObj.min+","+valObj.max+"\nvalObj.type: "+valObj.type);
			//**********************************************************************************************************************************
			if(valObj.type == "num"){
				if(valObj.len > 0 && isNaN(valObj.val)){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].num+( (html=="1") ? "<br>\n" : "\n");
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
				} else if (valObj.min && valObj.max && (valObj.len < valObj.min || valObj.len > valObj.max)){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].min+valObj.min+lng[secLng].minmax+valObj.max+lng[secLng].digits+( (html=="1") ? "<br>\n" : "\n");
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
				} else if (valObj.min && !valObj.max && (valObj.len < valObj.min)){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].min+valObj.min+lng[secLng].digits+( (html=="1") ? "<br>\n" : "\n");
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
				} else if (valObj.max && !valObj.min &&(valObj.len > valObj.max)){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].max+valObj.max+lng[secLng].digits+( (html=="1") ? "<br>\n" : "\n");
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
				} else if (!valObj.min && !valObj.max && valObj.len <= 0){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].require+( (html=="1") ? "<br>\n" : "\n");
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
				}
			}
			else if(valObj.type == "string"){
				if (valObj.min && valObj.max && (valObj.len < valObj.min || valObj.len > valObj.max)){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].min+valObj.min+lng[secLng].minmax+valObj.max+lng[secLng].chars+( (html=="1") ? "<br>\n" : "\n");
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
				} else if (valObj.min && !valObj.max && (valObj.len < valObj.min)){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].min+valObj.min+lng[secLng].chars+( (html=="1") ? "<br>\n" : "\n");
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
				} else if (valObj.max && !valObj.min &&(valObj.len > valObj.max)){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].max+valObj.max+lng[secLng].chars+( (html=="1") ? "<br>\n" : "\n");
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
				} else if (!valObj.min && !valObj.max && valObj.len <= 0){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].require+( (html=="1") ? "<br>\n" : "\n");
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
				}
			}
			else if(valObj.type == "value"){
				var tbl = valObj.val.split(",");
				var val = tbl[0];
				if ((val < valObj.min) || (val > valObj.max)){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].numbtwn+valObj.min+lng[secLng].and+" "+valObj.max+( (html=="1") ? "<br>\n" : "\n");
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
				}
			}
			else if(valObj.type == "email"){
				if((valObj.val.indexOf("@") == -1) || (valObj.val.charAt(0) == ".") || (valObj.val.charAt(0) == "@") || (valObj.val.charAt(valObj.len-1) == ".") || (valObj.val.charAt(valObj.len-2) == ".") || (valObj.len < 6) || (valObj.val.indexOf(".") == -1) || (valObj.val.charAt(valObj.val.indexOf("@")+1) == ".") || (valObj.val.charAt(valObj.val.indexOf("@")-1) == ".")){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].email+( (html=="1") ? "<br>\n" : "\n");
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
				}
			}
			else if(valObj.type == "radio"){
  				var selecion=null;

				if(valObj.form.length){
					for (var ii=0;ii<valObj.form.length;ii++){
						if (valObj.form[ii].checked){
							selecion="selected";
						}
					}
				}else{
					if(valObj.form.checked) selecion="selected";
				}

				if (!selecion){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].option+( (html=="1") ? "<br>\n" : "\n");	
				}
			}
			else if(valObj.type == "option"){
				if (!valObj.min) valObj.min = 0;
  				if (valObj.form.options[valObj.form.selectedIndex].value == valObj.min){
					hihh++;
  					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].option+( (html=="1") ? "<br>\n" : "\n");
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
  				}
			}
			else if(valObj.type == "time"){
				if (valObj.len == 0 && valObj.min==null){}
				else if (valObj.len == 0 && valObj.min!=null){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].require+lng[secLng].and+lng[secLng].hour+( (html=="1") ? "<br>\n" : "\n");	
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
				}

				else if (valObj.len != 5){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].hour+( (html=="1") ? "<br>\n" : "\n");	
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
				}
				else{
					var elems = valObj.val.split(":");
   					result = (elems.length == 2);
   					if (result){
   						var hh = elems[0];
						var mm = elems[1];
						if (elems[0].length==2 && elems[1].length==2){
   							if (hh < 0 || hh > 23 || isNaN(hh)) result=null;
							if (mm < 0 || mm > 59 || isNaN(mm)) result=null;
						}
						else{
							hihh++;
							errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].hour+( (html=="1") ? "<br>\n" : "\n");	
	 						if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
						}
					}
					if (!result){
						hihh++;
						errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].nohour+( (html=="1") ? "<br>\n" : "\n");	
	 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
					}
				}
			}
			else if(valObj.type == "checkbox"){
				var total = 0;
				if(valObj.form.length){
					for (var ii=0;ii<valObj.form.length;ii++){
						if (valObj.form[ii].checked){
							total++;
						}
					}
					if (valObj.min && valObj.max && (total < valObj.min || total > valObj.max)){
						hihh++;
						errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].min+valObj.min+lng[secLng].minmax+valObj.max+lng[secLng].selected+( (html=="1") ? "<br>\n" : "\n");
					}
					else if (valObj.min && !valObj.max && (total < valObj.min)){
						hihh++;
						errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].min+valObj.min+lng[secLng].selected+( (html=="1") ? "<br>\n" : "\n");
					}
					else if (valObj.max && !valObj.min &&(total > valObj.max)){
						hihh++;
						errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].max+valObj.max+lng[secLng].selected+( (html=="1") ? "<br>\n" : "\n");
					}
				}else{
					if(!valObj.form.checked){
						hihh++;
						errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].option+( (html=="1") ? "<br>\n" : "\n");	
					}
				}
				
			}
			else if(valObj.type == "date"){
				if (valObj.len == 0){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].require+lng[secLng].and+lng[secLng].date+( (html=="1") ? "<br>\n" : "\n");	
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
				}

				else if (valObj.len != 10){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].date+( (html=="1") ? "<br>\n" : "\n");	
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
				}
				else {
					var elems = valObj.val.split("/");
    				result = (elems.length == 3);
    				if (result){
    					var day = elems[0];
						var month = elems[1];
	   					var year = elems[2];
						if (elems[0].length==2 && elems[1].length==2 && elems[2].length==4){
       						if (month < 1 || month > 12) result=null;
							if (isNaN(year)) result=null;
	       					if ((month == 4 || month == 6 || month == 9 || month == 11) && (day > 30 || day < 1)) result=null;
    	   					if ((month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) && (day > 31 || day < 1)) result=null;
       						if ((month == 2) && (day > (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 ))) result=null;
       						if (valObj.min && !valObj.max && year<valObj.min){
								hihh++;
								errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].mindate+valObj.min+( (html=="1") ? "<br>\n" : "\n");	
			 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
							}
       						if (!valObj.min && valObj.max && year>valObj.max){
								hihh++;
								errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].maxdate+valObj.max+( (html=="1") ? "<br>\n" : "\n");	
			 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
							}
       						if (valObj.min && valObj.max && (year<valObj.min || year>valObj.max)){
								hihh++;
								errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].mmdate+valObj.min+lng[secLng].and+" "+valObj.max+( (html=="1") ? "<br>\n" : "\n");	
			 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
							}
						}
						else{
							hihh++;
							errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].date+( (html=="1") ? "<br>\n" : "\n");	
		 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
						}
					}
					if (!result){
						hihh++;
						errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].nodate+( (html=="1") ? "<br>\n" : "\n");	
	 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
					}
				}
			}
			else if(valObj.type == "exp"){
				if(valObj.min) var expr1 = new RegExp(valObj.min);
				if(valObj.max) var expr2 = new RegExp(valObj.max);
				if (valObj.len == 0){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].require+( (html=="1") ? "<br>\n" : "\n");	
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
				}
				else if ((expr1?!(expr1.exec(valObj.val)!=null):true) && (expr2?!(expr2.exec(valObj.val)!=null):true)){
					hihh++;
					errors+=((html=="1" && htmls != "")? htmls : lng[secLng].start)+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLname+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].invalid+( (html=="1") ? "<br>\n" : "\n");
 					if (!document.layers && errorbg != "") valObj.form.style.background=errorbg;
				}
			}
		}
	}

	if(cmpObj.length>0){
		for(i=0;i<cmpObj.length;i++){
			valObj 			= new Object();
			valObj.formn 	= cmpObj[i].formn;
			valObj.formm 	= cmpObj[i].formm;
			valObj.HTMLn 	= cmpObj[i].HTMLn;
			valObj.HTMLm 	= cmpObj[i].HTMLm;
			if(valObj.formn.value != valObj.formm.value){
				hihh++;
  				errors+=((html=="1" && htmls != "")? htmls : ((html=="1" && htmls != "")? htmls : lng[secLng].start))+lng[secLng].field+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLn+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].und+"'"+((html=="1" && fieldcolor) ? "<b><font color=#"+ fieldcolor+">" : "")+valObj.HTMLm+((html=="1" && fieldcolor) ? "</font></b>" : "")+"'"+lng[secLng].compare+( (html=="1") ? "<br>\n" : "\n");
				if (!document.layers && errorbg != ""){
					valObj.formn.style.background=errorbg;				
					valObj.formm.style.background=errorbg;				
				}
			}
		}
	}

	if(errors){
		if (html=="1"){
			var errWin = window.open('','error',"\'location=no,left="+ ((screen.width-(widd ? widd : 550))/2) +",top="+ ((screen.height-(high ? high : 130+hihh*16))/2)+",width="+ (widd ? widd : 500) +",height="+ (high ? high : 130+hihh*16) +"\'");
			var msg ="<html>\n<head>\n";
			msg += "<style type=text/css>\n<!--body {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; text-decoration: none;}-->\n</style>\n";
			msg += "<title>"+ lng[secLng].title +"</title>\n</head>\n";
			msg += "<body bgcolor=#"+(bgcolor ? bgcolor : "FFFFFF") + " text=#" + (txtcolor ? txtcolor : "000000") + ">\n";
			msg += htmll;
			msg += "<b>" + lng[secLng].header + "</b>\n<br><br>\n";
			msg += errors+"<br><br>\n<center>";
			msg += (htmlo != "" ? htmlo : (document.layers)? "" :"<input type=button value='    OK    ' onclick='window.close();'><br>");
			msg += "</center>\n</body>\n</html>";
			errWin.document.open();
			errWin.document.write(msg);
			errWin.document.close();
			errWin.focus();
		}
		else{
			alert(lng[secLng].header.concat("\n\n"+errors));
		}
		errors = "";
		hihh = 0 ;
		returnVal = false;
	} else {
		returnVal = true;
	}
}

function cntr(a,b,c){
	if (!b) b=255;
	if (a.value.length > b){
		a.value = a.value.substring(0,b);
		if (c){
			c.value = 0;
		}
	}else{
		if (c){
			c.value = b - a.value.length;
		}
	}
}
 
function endis(a,b){
	if (a.checked){
		en(b);
	}else{
		dis(b);
	}
}

function dis(a){
	for(var xxx=0;xxx<document.forms.length;xxx++){
		for(var xx=0;xx<document.forms[xxx].length;xx++){
			if(a==document.forms[xxx][xx].name){
				document.forms[xxx][xx].disabled = true;
				document.forms[xxx][xx].value="";
			}
		}
	}
}

function en(a){
	for(var xxx=0;xxx<document.forms.length;xxx++){
		for(var xx=0;xx<document.forms[xxx].length;xx++){
			if(a==document.forms[xxx][xx].name){
				document.forms[xxx][xx].disabled = false;
			}
		}
	}
}
function initform(){
	var popupmsg="<head>\n";
	popupmsg+="<style type=\"text/css\">\n";
	popupmsg+="<!--\n";
	popupmsg+="p,td,a {font-family: verdana; font-size: 10px; color: #FFFFFF; background-color: #000000}\n";
	popupmsg+="-->\n";
	popupmsg+="</style>\n";
	popupmsg+="</head>\n";
	popupmsg+="<body bgcolor=\"#000000\">\n";
	popupmsg+="<script src=\"http://ai0.be/wa/admin/scripts/val.js\">\n";
	popupmsg+="</script>\n";
	popupmsg+="</body>\n";
	popupmsg+="</html>\n";
	var popup = window.open('','selector','left=100,top=100,scrollbars=yes,resizable=yes,width=691');
	popup.document.open();
	popup.document.write(popupmsg);
	popup.document.close();
}

function findform(n,d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findform(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}


function predefine(n,type,HTMLname,min,max,d){
	preObj[preObj.length] = new Array();
	preObj[preObj.length-1][0]=n;
	preObj[preObj.length-1][1]=type;
	preObj[preObj.length-1][2]=HTMLname;
	preObj[preObj.length-1][3]=min;
	preObj[preObj.length-1][4]=max;
	preObj[preObj.length-1][5]=d;
}

function formreset(a){
	findform(a).reset();
}

function formsubmit(a){
	findform(a).submit();
}

function formsubmitval(a,b){
	if (preObj.length){

		for(fsv=0;fsv<findform(a).length;fsv++){
			for(fsv2=0;fsv2<preObj.length;fsv2++){
				if (findform(a)[fsv].name == preObj[fsv2][0]){
					define(preObj[fsv2][0],preObj[fsv2][1],preObj[fsv2][2],preObj[fsv2][3],preObj[fsv2][4],preObj[fsv2][5]);
				}
			}
		}


		validate(b,1,'FFFFFF','000000','B20000');

		for(fsv=0;fsv<findform(a).length;fsv++){
			for(fsv2=0;fsv2<preObj.length;fsv2++){
				if (findform(a)[fsv].name == preObj[fsv2][0]){
					undefine(preObj[fsv2][0]);
				}
			}
		}
	}
	if(returnVal) findform(a).submit();
}
