var toCheck = [
	{
		id : "nom",
		mode : "required",
		event : "blur"
	},{
		id : "prenom",
		mode : "required",
		event : "blur"
	},{
		id : "email",
		mode : "email",
		event : "blur"
	},{
		id : "societe",
		mode : "required",
		event : "blur"
	},{
		id : "username",
		mode : "username",
		event : "keyup"
	},{
		id : "passwd",
		mode : "required",
		event : "blur"
		
	},{
		id : "passwd2",
		mode : "passwd",
		event : "blur"
	}
];


var addTrialListeners = function(datas){
	for(var i in datas){
		var data = datas[i];
		var input = $(data.id);
		var mode = data.mode;
		var event = data.event;
		
		if($chk(input)){
			input.addEvent(event,checkValid.pass([input,mode]));
		}		
	}
}

function checkEmail(email) {	
	var regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return regex.test(email);
}

var showAndHideValidPic = function(show,hide){
	show.setStyle("display","block");
	hide.setStyle("display","none");
}

var interval;
var checkUsername = function(input,imgaccept,imgdelete,func){
	clearInterval(interval);
	interval = setInterval(function(){
		new Request({
	            method: 'post',
	            url :'/php/ajax.php?root=chkUserNameLigth',
	            data:'username='+ encodeURIComponent(input.value),
	            onComplete: func        
		}).send();
		clearInterval(interval);
	},200);	
}

var checkValid = function(input,mode){
	
	var imgaccept = $(input.id+"_accept");
	var imgdelete = $(input.id+"_delete");
	switch(mode){
		case "required":
			if(input.value.length > 0){
				showAndHideValidPic(imgaccept,imgdelete);
				return true;
			}else{
				showAndHideValidPic(imgdelete,imgaccept);
				return false;
			}
			break;
		case "email":
			if(checkEmail(input.value)){
				showAndHideValidPic(imgaccept,imgdelete);
				return true;
			}else{
				showAndHideValidPic(imgdelete,imgaccept);
				return false;
			}
			break;
		case "passwd":
			if(input.value == $("passwd").value && input.value.length > 0){
				showAndHideValidPic(imgaccept,imgdelete);
				return true;
			}else{
				showAndHideValidPic(imgdelete,imgaccept);
				return false;
			}
			break;
		case "username":
			checkUsername(input,imgaccept,imgdelete,function(p){
					showNameError(p);
	                if (p==0) {                        
	                    showAndHideValidPic(imgaccept,imgdelete);
	                }else{                        
	                    showAndHideValidPic(imgdelete,imgaccept);
	                }
            	}
			);
			break;
	}
	return true;
}

var showNameError = function(code){
	code = parseInt(code);
	$$(".error_msg").setStyle("display","none");
	if(code < 0){
		$("error_msg_"+Math.abs(code)).setStyle("display","");
	}else if(code > 0){
		$("error_msg_42").setStyle("display","");
	}
}

var checkTrial = function(){
	var datas = toCheck;
	var error = false;
	for(var i in datas){
		
		var data = datas[i];
		var input = $(data.id);
		var mode = data.mode;
		
		if($chk(input)){
			if(!checkValid(input,mode)) error = true;
		}
	
	}	
	
	var input = $("username");
	var imgaccept = $("username_accept");
	var imgdelete = $("username_delete");
	$("error_msg_captcha").setStyle("display","none");
	checkUsername(input,imgaccept,imgdelete,function(p){
					
					showNameError(p);
	                
	                if (p!=0){
	                	showAndHideValidPic(imgdelete,imgaccept);
	                	error = true;
	                }else{
	                	showAndHideValidPic(imgaccept,imgdelete);

	                }
	                           
	                if(!error){
	                	new Request({
							method: 'post',
					        url:'/php/ajax.php',
							data:$("trialLigth"),
							evalScripts:true,	
					        onComplete: function(p){
								var rtn = parseInt(p);
									switch(rtn){
										case -1:
											$("error_msg_captcha").setStyle("display","");
											break;
										default:
											window.location.href = "/"+LANG+"/free-trial-sent";
                                            //window.location.href ="/index.php?id=76";
									}									
								}								 
						}).send();
	                }            
            	}
			);
	
}

window.addEvent("domready",function(){
	addTrialListeners(toCheck);
});
