var glbLang=1;
function checkNumber(theValue,isDec){

			if (isDec==1){
				theValue=theValue.replace(".","");
				if (theValue==""){return false;}
				lc="1234567890";
			}else{
				lc="1234567890";
			}
			var tonum=1;  
			for (var k=0; k < theValue.length; k++){
				var subs=theValue.substring(k, tonum);
				if (lc.indexOf(subs)==-1){
					return false;
					break;
				}else{
					tonum+=1;
				}
			}
			return true;

}

function checkAlpha(theValue,ext){

			lc="1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + ext;

			var tonum=1;  
			for (var k=0; k < theValue.length; k++){
				var subs=theValue.substring(k, tonum);
				if (lc.indexOf(subs)==-1){
					return false;
					break;
				}else{
					tonum+=1;
				}
			}
			return true;

}

function validateFormCore(f){
	var errs='';
	for (x=0;x<f.elements.length;x++){
		var ffeed = f.elements[x].getAttribute('validation');
		var fname = f.elements[x].getAttribute('valname');
		if (ffeed!=null){
			var farr = ffeed.split(",");
		
			if ((farr[0]=="required")||(farr[0]=="optional")){
				switch (farr[1]){
					case "number":
						if (f.elements[x].value==0){
							if (farr[0]=="required"){
                if(glbLang==1){
                  errs=errs + fname + ' cannot be empty!\n';
                }else if(glbLang==2){
                  errs=errs + fname + ' ne peut être vide!\n';
                }
              }
						}else{
							if (!checkNumber(f.elements[x].value,0)){
                if(glbLang==1){
                  errs=errs + fname + ' must be a number!\n';
                }else if(glbLang==2){
                  errs=errs + fname + ' doit être un chiffre!\n';
                }
							}
						}
					break;
					case "decimal":
						if (f.elements[x].value==0){
							if (farr[0]=="required"){
                if(glbLang==1){
                  errs=errs + fname + ' cannot be empty!\n';
                }else if(glbLang==2){
                  errs=errs + fname + ' ne peut être vide!\n';
                }
              }
						}else{
							if (!checkNumber(f.elements[x].value,1)){
                if(glbLang==1){
                  errs=errs + fname + ' must be a number, with periods for decimals!\n';
                }else if(glbLang==2){
                  errs=errs + fname + ' doit être un chiffre, avec des points pour les décimales!\n';
                }
							}
						}
					break;
					case "text":
						if (f.elements[x].value==0){
							if (farr[0]=="required"){
                if(glbLang==1){
                  errs=errs + fname + ' cannot be empty!\n';
                }else if(glbLang==2){
                  errs=errs + fname + ' ne peut être vide!\n';
                }
              }
						}
					break;
					case "alpha":
						if (f.elements[x].value==0){
							if (farr[0]=="required"){
                if(glbLang==1){
                  errs=errs + fname + ' cannot be empty!\n';
                }else if(glbLang==2){
                  errs=errs + fname + ' ne peut être vide!\n';
                }
              }
						}else{
							if (!checkAlpha(f.elements[x].value,farr[2])){
                if(glbLang==1){
                  errs=errs + fname + ' must be alphanumeric';
                }else if(glbLang==2){
                  errs=errs + fname + ' doit être alpha-numérique';
                }
                if (farr[2]!=''){
                  if(glbLang==1){
                    errs=errs +' (also allowed: '+farr[3]+')';
                  }else if(glbLang==2){
                    errs=errs +' (aussi permis: '+farr[3]+')';
                  }
                }
								errs=errs + '\n';
							}
						}
					break;
					case "email":
						if (f.elements[x].value==0){
							if (farr[0]=="required"){
                if(glbLang==1){
                  errs=errs + fname + ' cannot be empty!\n';
                }else if(glbLang==2){
                  errs=errs + fname + ' ne peut être vide!\n';
                }
              }
						}else{
							myRe= new RegExp ("^[a-zA-Z0-9]+([_\\.-][a-zA-Z0-9]+)*@([a-zA-Z0-9]+([\.-][a-zA-Z0-9]+))*$");
							myArray = myRe.exec(f.elements[x].value);
							if (myArray==null){
                if(glbLang==1){
                  errs=errs + fname + ': invalid email!\n';
                }else if(glbLang==2){
                  errs=errs + fname + ': courriel invalide!\n';
                }
							}
							

						}
					break;

				}
			}
		}

	}
	return errs;

}

function validateForm(f){
	var errs='';
	errs= validateFormCore(f);
	if (errs==''){
		return true;
	}else{
    if(glbLang==1){
      alert('Before submitting, please complete the following fields:\n\n'+errs);
    }else if(glbLang==2){
      alert('Avant de soumettre, veuillez completer les champs suivant:\n\n'+errs);
    }
		return false;
	}

}
