//Gen functions
function setFocus(element,next,lg){
    if($(element).value.length == lg){
        $(next).focus();	
    }						  	
};

//Form validation
var formErrors = new Array();
	formErrors[1000]="<p>Tous les champs marqués d'un astérique sont obligatoires.</p>";
	formErrors[1001]="<p>Le nombre de caractères est insuffisant.</p>";
	formErrors[1010]="<p>Le courriel n'est pas valide.</p>";
	formErrors[1020]="<p>Le mot de passe est trop court.</p>";
	formErrors[1021]="<p>Les mots de passe ne sont pas indentiques.</p>";
	formErrors[1030]="<p>Veiller selectionner parmis les choix.</p>";
	
	
var formErrorsList = new Array();	
var pwd = '';
var mainVF = {
	validateForm : function(theForm) {
		var inputname;
		var testStr;
		var strCheck;
		var okToSend=true;
		var inputs = $(theForm).getElements('[class^=req]');
		inputs.each(function(oneInput) {
			inputName = oneInput.getProperty("name");
			inputValue = oneInput.getProperty("value");
			inputclass = oneInput.getProperty("class");
			inputType = oneInput.get('tag');
			//console.log(inputType)
			strCheck = mainVF.validateString(inputName,inputValue,inputclass,inputType);
			//console.log("type->"+inputType+" || strCheck->"+strCheck+" ||inputName->"+inputName+" || inputValue->"+inputValue)
			if(strCheck!=true) {
				oneInput.addClass("erreur");
				okToSend=false;
				formErrorsList.push(strCheck);
			} else {
				oneInput.removeClass("erreur");
			}
		});
		if(okToSend==true) {
			eval("document."+theForm+".submit();");
		} else {
			mainVF.setMsg('error',formErrorsList,theForm);
			$$('.erreur').each(function(erreurInput,index) {
				if(index==1) {
					erreurInput.focus();
				}
			});
		}
	},
	validateString : function(name,str,inputclass,type) {
		switch(type) {
			case 'input':
				if(name.test("tel")==true || name.test("cell")==true || name.test("dateNaissance")==true) {
					if(str!='') {
						if(inputclass.test("char2")==true && str.length==2) {
							return true;
						} else if(inputclass.test("char3")==true && str.length==3) {
							return true;
						} else if(inputclass.test("char4")==true && str.length==4) {
							return true;
						} else {return 1001;}
						
					} else {return 1000}
				} else if(name.test("codepost")==true) {
					if(str!='') {
						if(str.length==3) {return true;} else {return 1001;}
					} else {return 1000}
				} else if(name.test("courriel")==true) {
					if(str!='') {
						var re = new RegExp(/^[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$/);
						if(str.match(re)) {return true;} else {return 1010;}
					} else {return 1000}
				} else if(inputclass.test("pwd")==true) {
					if(str!='') {
						if(str.length>=5) {
							if(inputclass.test("pwdCheck")==true) {
								if(pwd!=str) {
									pwd = str;
									return 1021;
								} else {
									pwd = str;
									return true;
								}
							} else {
								pwd = str;
								return true;
							}
						} else {
							return 1020;
						}	
					} else {return 1000}
				} else if(str!='') {
					return true;
				} else {
					return 1000;
				}
			break;
			case 'select':
				if(str=='' || str=='Choisir') {
					return 1000;
				} else {
					return true;
				}
			break;
			case 'textarea':
				if(str=='') {
					return 1000;
				} else {
					return true;
				}
			break;
			default:
				if(str=='') {
					return 1000;
				} else {
					return true;
				}
			break;
		}
	},
	setMsg : function(type,msgCode,theForm) {
		var msgOutPut = '';
		var msgCodeOutPut = '';
		var theClass;
		
		for(var i=0;i<=(msgCode.length-1);i++) {
			//console.log(msgCode[i])
			if(msgCode[i]==1000 || msgCode[i]==1001) {
				msgCodeOutPut = formErrors[msgCode[i]];
			} else {
				msgCodeOutPut += formErrors[msgCode[i]];
			}
		}
		
		msgOutPut += "<h3>Attention!</h3>";
		msgOutPut += msgCodeOutPut;
		theClass = "erreur";
		
		if($('msgV2')) {
			$('msgV2').removeClass(theClass);
			$('msgV2').removeClass('msgV2');
			$('msgV2').addClass("msgV2 "+theClass);
			$('msgV2').empty();
			$('msgV2').set('html',msgOutPut);
		}
		else{
			var theElement = new Element('div',{
				'id': 'msgV2',
				'class': "msgV2 "+theClass
			}).set('html',msgOutPut);
			theElement.injectTop($(theForm));
		}
		
		
		
		
		formErrorsList = new Array();
	}
}
//Form validation END


