/**********************************************            VARIABLE          ************************************************************/
var login_min = 3;

var login_max = 18;

var pass_min = 3;

var pass_max = 12;

/**********************************************               ALERT             ************************************************************/

var invalid_login_type = "<span class='error'>Invalid username: a-Z 0-9 -_ characters only</span>"; 

var invalid_login_size = "<span class='error'>Invalid username: Must be at least "+login_min+"-"+login_max+" in length</span>"; 

var invalid_login_taken = "<span class='error'>Invalid username: Already taken</span>";

var invalid_login_empty = "<span class='error'>Username is required</span>";

var ip_sharing = "<span class='error'>IP sharing is not allowed</span>"; 

var invalid_pass_type = "<span class='error'>Invalid password: a-Z 0-9 -_ characters only</span>"; 

var invalid_pass_size = "<span class='error'>Invalid password: Must be at least "+pass_min+"-"+pass_max+" in length</span>"; 

var invalid_pass_match = "<span class='error'>Invalid password: Your passwords do not match</span>"; 

var invalid_pass_empty = "<span class='error'>Password is required</span>"; 

var invalid_mail_type = "<span class='error'>Invalid e-mail: Not a valid e-mail adress</span>"; 

var invalid_mail_used = "<span class='error'>Invalid e-mail: Already taken</span>"; 

var invalid_mail_match = "<span class='error'>Invalid e-mail: Your e-mails do not match</span>"; 

var invalid_mail_empty = "<span class='error'>E-mail is required</span>"; 

var invalid_mail_first = "<span class='error'>Invalid e-mail: Enter the email first</span>"; 

var invalid_age_old = "<span class='error'>Invalid age: You must be at least 18 years old</span>";

var invalid_age_type = "<span class='error'>Invalid age: Enter a valid age</span>";

var invalid_age_empty = "<span class='error'>Age is required</span>"

var invalid_agree = "<span class='error'>You must agree with the terms of services</span>";

var first_name_empty = "<span class='error'>First name is required</span>"

var first_name_type = "<span class='error'>Invalid first name, letters only</span>"

var first_name_size = "<span class='error'>Invalid first name: Must be at least "+login_min+"-"+login_max+" in length</span>"

var last_name_empty = "<span class='error'>Last name is required</span>"

var last_name_type = "<span class='error'>Invalid last name, letters only</span>"

var last_name_size = "<span class='error'>Invalid last name: Must be at least "+login_min+"-"+login_max+" in length</span>"

var gender_name_empty = "<span class='error'>Gender is required</span>"

/******************************************************************************************************************************/


function file(fichier)
	{
		xhr_object = getXhr();
		xhr_object.open("GET", fichier, false);
		xhr_object.send(null);
		if(xhr_object.readyState == 4)
		{
			if(xhr_object.status == 200)
			{
				return(xhr_object.responseText);
			}
		}
		else {return(false);}
	}

function getXhr()
	{
		var xhr = null; 
		if(window.XMLHttpRequest) 		// Firefox et autres
			xhr = new XMLHttpRequest(); 
		else if(window.ActiveXObject)
		{ 								// Internet Explorer 
			try 
			{
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			} 
			catch (e) 
			{
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
		}
		else 
		{ // XMLHttpRequest non supporté par le navigateur 
			alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
			xhr = false; 
		}
		return xhr
	}
	
function is_int(num)
	{
		if(!(num-parseInt(num)>0))
		{
			if(!isNaN(num))
			{
				return 1;
			}
			else
			{
				return 0;
			}
		}
		else
		{
			return 0;
		}
	}

function valider_logine()
	{
		v = document.getElementById('username').value;
		if(v != "")
		{	var reg = /^[a-z0-9][a-z0-9\.\-_]*$/;
			var result = ((reg.exec(v)!=null));
			if(result==false) //si login n'est pas valide
			{
				document.getElementById('div-msg-user').innerHTML = invalid_login_type;
				document.getElementById('username').className = 'input_txt_err';
				return 1;
			}
			else if (v.length < login_min || v.length > login_max)
			{
				document.getElementById('div-msg-user').innerHTML = invalid_login_size;
				document.getElementById('username').className = 'input_txt_err';
				return 1;
			}
			else if (file('test_login.php?val_sel='+v)==1)
			{
				document.getElementById('div-msg-user').innerHTML = invalid_login_taken;
				document.getElementById('username').className = 'input_txt_err';
				return 1;
			}
			else
			{
				document.getElementById('div-msg-user').innerHTML = '<span class="success">&nbsp;</span>';
				document.getElementById('username').className = 'input_txt';
				return 0;
			}
		}
		else
		{
			document.getElementById('div-msg-user').innerHTML = invalid_login_empty;
			document.getElementById('username').className = 'input_txt_err';
			return 1;
		}
	}
	
function valider_pass()
	{
		v = document.getElementById('password').value;
		var chifre_min = 6;
		if(v != "")
		{
			if (v.length < pass_min)
			{
				document.getElementById('div-msg-pass').innerHTML = invalid_pass_size ;
				document.getElementById('password').className = 'input_txt_err';
				return 1;
			}
			else
			{
				document.getElementById('div-msg-pass').innerHTML = '<span class="success">&nbsp;</span>';
			document.getElementById('password').className = 'input_txt';
				return 0;
			}
		}
		else
		{
			document.getElementById('div-msg-pass').innerHTML = invalid_pass_empty;
			document.getElementById('password').className = 'input_txt_err';
			return 1;
		}
	}
	
function confirm_pass()
	{
		var p = document.getElementById('password').value;
		var cp = document.getElementById('cpassword').value;
		if(cp == "")
		{
			if( valider_pass(p) == 0)
			{
				document.getElementById('div-msg-cpass').innerHTML = '';
				document.getElementById('cpassword').className = 'input_txt';
				return 1;
			}
			else
			{
				document.getElementById('div-msg-cpass').innerHTML = invalid_pass_match;
				document.getElementById('cpassword').className = 'input_txt_err';
				return 1;
			}
		}
		else if(p != cp)
		{
			document.getElementById('div-msg-cpass').innerHTML = invalid_pass_match;
			document.getElementById('cpassword').className = 'input_txt_err';
			return 1;
		}
		else
		{
			document.getElementById('div-msg-cpass').innerHTML = '<span class="success"> </span>';
			document.getElementById('cpassword').className = 'input_txt';
			return 0;
		}
	}


function valider_mail()
	{
		var email = document.getElementById('email').value;
		var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/;
		if(email == "") //si pas d'email entrer
		{
			document.getElementById('div-msg-mail').innerHTML = invalid_mail_empty;
			document.getElementById('email').className = 'input_txt_err';
			return 1;
		}
		else 
		{
			var result = ((reg.exec(email)!=null));
			if(result==false) //si l'email n'est pas valide
			{
				document.getElementById('div-msg-mail').innerHTML = invalid_mail_type;
				document.getElementById('email').className = 'input_txt_err';
				return 1;
			}
			else if(file('test_mail.php?val_sel='+email)==1) //si l'email n'est pas valide
			{
				document.getElementById('div-msg-mail').innerHTML = invalid_mail_used;
				document.getElementById('email').className = 'input_txt_err';
				return 1;
			}
			else //si l'email est valide
			{
				document.getElementById('div-msg-mail').innerHTML = '<span class="success"> </span>An activation e-mail will be sent';
				document.getElementById('email').className = 'input_txt';
				return 0;
			}
		}
	}

function confirm_mail()
	{
		var p = document.getElementById('email').value;
		var cp = document.getElementById('cemail').value;
		if(valider_mail()>0)
		{
			document.getElementById('div-msg-cmail').innerHTML = '';
			document.getElementById('cemail').className = 'input_txt_err';
			return 1;
		}
		else 
		{
			if(p != cp)
			{
				document.getElementById('div-msg-cmail').innerHTML = invalid_mail_match;
				document.getElementById('cemail').className = 'input_txt_err';
				return 1;
			}
			else
			{
				document.getElementById('div-msg-cmail').innerHTML = '<span class="success"> </span>';
				document.getElementById('cemail').className = 'input_txt';
				return 0;
			}
		}
	}
	
	
function valider_fname()
	{
		var frst = document.getElementById('id_fnam').value;
		var reg = /^[a-z][a-z]*$/;
		var result = ((reg.exec(frst)!=null));
			
		if(frst=="")
		{
			document.getElementById('div-msg-fnam').innerHTML= first_name_empty;
			document.getElementById('id_fnam').className = 'input_txt_err';
			return 1;
		}
		else if (frst.length < login_min || frst.length > login_max)
		{
			document.getElementById('div-msg-fnam').innerHTML = first_name_size;
			document.getElementById('id_fnam').className = 'input_txt_err';
			return 1;
		}
		else if(result==false)
		{
			document.getElementById('div-msg-fnam').innerHTML = first_name_type;
			document.getElementById('id_fnam').className = 'input_txt_err';
			return 1;
		}
		else 
		{
			document.getElementById('div-msg-fnam').innerHTML='<span class="success"> </span>';
			document.getElementById('id_fnam').className = 'input_txt';
			return 0;
		}
	}
	
function valider_lname()
	{
		var last = document.getElementById('id_lnam').value;
		var reg = /^[a-z][a-z]*$/;
		var result = ((reg.exec(last)!=null));
		if(last=="")
		{
			document.getElementById('div-msg-lnam').innerHTML= last_name_empty;
			document.getElementById('id_lnam').className = 'input_txt_err';
			return 1;
		}
		else if (last.length < login_min || last.length > login_max)
		{
			document.getElementById('div-msg-lnam').innerHTML = last_name_size;
			document.getElementById('id_lnam').className = 'input_txt_err';
			return 1;
		}
		else if(result==false)
		{
			document.getElementById('div-msg-lnam').innerHTML = last_name_type;
			document.getElementById('id_lnam').className = 'input_txt_err';
			return 1;
		}
		else
		{
			document.getElementById('div-msg-lnam').innerHTML='<span class="success"> </span>';
			document.getElementById('id_lnam').className = 'input_txt';
			return 0;
		}
	}
	
function valider_age()
	{
		var age = document.getElementById('age').value;
		if(age=="")
		{
			document.getElementById('div-msg-age').innerHTML = invalid_age_empty;
			document.getElementById('age').className = 'input_txt_err';
			return 1;
		}
		else if(!is_int(age))
		{
			document.getElementById('div-msg-age').innerHTML = invalid_age_type;
			document.getElementById('age').className = 'input_txt_err';
			return 1;
		}
		else if((age <= 17) || (age >= 80))
		{
			document.getElementById('div-msg-age').innerHTML = invalid_age_old;
			document.getElementById('age').className = 'input_txt_err';
			return 1;
		}
		else
		{
			document.getElementById('div-msg-age').innerHTML='<span class="success"> </span>';
			document.getElementById('age').className = 'input_txt';
			return 0;
		}
	}
	
function valider_gender()
	{
		var gdr1 = document.getElementById('m').checked;
		var gdr2 = document.getElementById('f').checked;
		if(gdr1 == false && gdr2 == false)
		{
			document.getElementById('div-msg-gender').innerHTML= gender_name_empty;
			//document.getElementById('m').className = 'input_txt_err';
			//document.getElementById('f').className = 'input_txt_err';
			return 1;
		}
		else
		{
			document.getElementById('div-msg-gender').innerHTML='<span class="success"> </span>';
			//document.getElementById('m').className = 'input_txt';
			//document.getElementById('f').className = 'input_txt';
			return 0;
		}
	}
	
function valider_contrat()
	{
		var ctr = document.getElementById('agree').checked;
		if(ctr == false)
		{
			document.getElementById('div-msg-agree').innerHTML= invalid_agree ;
			//document.getElementById('agree').className = 'input_txt_err';
			return 1;
		}
		else
		{
			document.getElementById('div-msg-agree').innerHTML='';
			//document.getElementById('agree').className = 'input_txt';
			return 0;
		}
	}
	
	
function valider_ip()
	{
		if (file('test_login.php')==1)
		{
			document.getElementById('div-msg-ip').innerHTML = ip_sharing;
			return 1;
		}
		else
		{
			document.getElementById('div-msg-ip').innerHTML = '';
			return 0;
		}
	}
	
	
function tester_signup()
	{
		var test = valider_logine()+valider_pass()+confirm_pass()+valider_mail()+confirm_mail()+valider_fname()+valider_lname()+valider_age()+valider_gender()+valider_contrat()+valider_ip();
		if(test == 0)
		{
			document.form_submit.submit();
		}
	}
	
	
function evalPwd(s)
{
	var cmpx = 0;
	
	if (s.length >= pass_min)
	{
		cmpx++;
		if(s.length >=10){
		cmpx=cmpx+2;
		}else{
	if (s.search("[0-9]") != -1 && s.search("[a-z]") != -1)
		{
			cmpx++;
		}
	if (s.length >= 8 || s.search("[\x20-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]") != -1)
		{
			cmpx++;
		}
	}
	}
	if (cmpx == 0)
	{
		document.getElementById("weak").className = "nrm";
		document.getElementById("medium").className = "nrm";
		document.getElementById("strong").className = "nrm";
	}
	else if (cmpx == 1)
	{
		document.getElementById("weak").className = "2red";
		document.getElementById("medium").className = "nrm";
		document.getElementById("strong").className = "nrm";
	}
	else if (cmpx == 2)
	{
		document.getElementById("weak").className = "yellow";
		document.getElementById("medium").className = "yellow";
		document.getElementById("strong").className = "nrm";
	}
	else
	{
		document.getElementById("weak").className = "green";
		document.getElementById("medium").className = "green";
		document.getElementById("strong").className = "green";
	}
}