var texte = 0; //on initialise la variable texte en variable globale pour pouvoir l'utilser ds tt le script

// Function for check the email address
function emailCheck (emailStr) 
{

	var emailPat=/^(.+)@(.+)$/
	
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	
	var validChars="\[^\\s" + specialChars + "\]"
	
	var quotedUser="(\"[^\"]*\")"
	
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	
	var atom=validChars + '+'
	
	var word="(" + atom + "|" + quotedUser + ")"
	// The following pattern describes the structure of the user
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	/* The following pattern describes the structure of a normal symbolic
	   domain, as opposed to ipDomainPat, shown above. */
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	
	
	/* Finally, let's start trying to figure out if the supplied address is
	   valid. */
	
	/* Begin with the coarse pattern to simply break up user@domain into
	   different pieces that are easy to analyze. */
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) 
	{
	  /* Too many/few @'s or something; basically, this address doesn't
		 even fit the general mould of a valid e-mail address. */
		writediv_email('<span style="color:#cc0000;font-size:10px;font-family:tahoma;"><b>"'+emailStr+'" :</b> Email address seems incorrect (check @ and .\'s)</span>');
		//alert("Email address seems incorrect (check @ and .'s)")
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	
	// See if "user" is valid 
	if (user.match(userPat)==null) 
	{
		// user is not valid
		writediv_email('<span style="color:#cc0000;font-size:10px;font-family:tahoma;"><b>"'+emailStr+'" :</b> The username doesn\'t seem to be valid.</span>');
		//alert("The username doesn't seem to be valid.")
		return false
	}
	
	/* if the e-mail address is at an IP address (as opposed to a symbolic
	   host name) make sure the IP address is valid. */
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) 
	{
		// this is an IP address
		for (var i=1;i<=4;i++) 
		{
			if (IPArray[i]>255) 
			{
				writediv_email('<span style="color:#cc0000;font-size:10px;font-family:tahoma;"><b>"'+emailStr+'" :</b> Destination IP address is invalid!</span>');
				//alert("Destination IP address is invalid!")
				return false
			}
		}
		return true
	}
	
	// Domain is symbolic name
	var domainArray=domain.match(domainPat)
	if (domainArray==null) 
	{
		writediv_email('<span style="color:#cc0000;font-size:10px;font-family:tahoma;"><b>"'+emailStr+'" :</b> The domain name doesn\'t seem to be valid !</span>');
		//alert("The domain name doesn't seem to be valid.")
		return false
	}
	
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>5) 
	{
	   // the address must end in a two letter or three letter word.
	   writediv_email('<span style="color:#cc0000;font-size:10px;font-family:tahoma;"><b>"'+emailStr+'" :</b> The address must end in a three, four or five-letter domain, or two letter country !</span>');
	   //alert("The address must end in a three-letter domain, or two letter country.")
	   return false
	}
	
	// Make sure there's a host name preceding the domain.
	if (len<2) 
	{
	   //var errStr="This address is missing a hostname!"
	   writediv_email('<span style="color:#cc0000;font-size:10px;font-family:tahoma;"><b>"'+emailStr+'" :</b> This address is missing a hostname !</span>');
	   //alert(errStr)
	   return false
	}
	
	// If we've gotten this far, everything's valid!
	return true;
}


function checkAvatar()
{
	var imgPath = document.getElementById('id_avatar');
	if ((imgPath.value.indexOf('.jpg') == -1) && (imgPath.value.indexOf('.gif') == -1) && (imgPath.value.indexOf('.png') == -1) && (imgPath.value.indexOf('.bmp') == -1) && (imgPath.value.indexOf('.jpeg') == -1) && (imgPath.value.indexOf('.JPG') == -1) && (imgPath.value.indexOf('.GIF') == -1) && (imgPath.value.indexOf('.PNG') == -1) && (imgPath.value.indexOf('.BMP') == -1) && (imgPath.value.indexOf('.JPEG') == -1))
	{
		alert("The avatar should be an image!");
		imgPath.value = '';
		return false;
	}
}

function checkBackground()
{
	var imgPath = document.getElementById('id_background');
	if ((imgPath.value.indexOf('.jpg') == -1) && (imgPath.value.indexOf('.gif') == -1) && (imgPath.value.indexOf('.png') == -1) && (imgPath.value.indexOf('.bmp') == -1) && (imgPath.value.indexOf('.jpeg') == -1) && (imgPath.value.indexOf('.JPG') == -1) && (imgPath.value.indexOf('.GIF') == -1) && (imgPath.value.indexOf('.PNG') == -1) && (imgPath.value.indexOf('.BMP') == -1) && (imgPath.value.indexOf('.JPEG') == -1))
	{
		alert("The background should be an image!");
		imgPath.value = '';
		return false;
	}
}

function file(fichier)
{
	if(window.XMLHttpRequest) // FIREFOX
		xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else
		return(false);
	xhr_object.open("GET", fichier, false);
	xhr_object.send(null);
	if(xhr_object.readyState == 4) 
		return(xhr_object.responseText);
	else 
		return(false);
}

function writediv_email(texte) //permet de specifier les renseignements sur l'email saisi(AJAX)
{
	document.getElementById('emailbox').innerHTML = texte;
}

function writediv_username(texte) //permet de specifier les renseignements sur le username saisi(AJAX)
{
	document.getElementById('pseudobox').innerHTML = texte;
}

function writediv_firstname(texte) //permet de specifier les renseignements sur le firstname saisi(AJAX)
{
	document.getElementById('fnamebox').innerHTML = texte;
}

function writediv_lastname(texte) //permet de specifier les renseignements sur le lastname saisi(AJAX)
{
	document.getElementById('lnamebox').innerHTML = texte;
}

function writediv_passwd(texte) //permet de specifier les renseignements sur le password saisi(AJAX)
{
	document.getElementById('passwdbox').innerHTML = texte;
}

function writediv_concord(texte) //permet de dire si l'email correspond au code d'invitation (AJAX)
{
	document.getElementById('invitbox').innerHTML = texte;
}

function writediv_givenpass(texte) //permet de specifier si l'acces wixi est bon(AJAX)
{
	document.getElementById('givenpassbox').innerHTML = texte;
}

function trim(string)// permet d'enlever les espaces de début et de fin (trim en php)
{
	return string.replace(/(^\s*)|(\s*$)/g,'');
}

function verifUsername(pseudo)
{
	pseudo = trim(pseudo);
	
	var regexp = "^[a-zA-Z0-9_-]*$" ;//pour verifier que le username ne contient que des chiffres, des lettres, "-" et "_"
	
	if(pseudo != '')
	{
		var tabPseudo = pseudo.split(" ");
		
		if (tabPseudo.length >= 2)
		{
			writediv_username('<span style="color:#cc0000;font-size:11px;font-family:tahoma;"><b>"'+pseudo+'" :</b> No space allowed in Wixi name !</span>');
			return(false);
		}
		else if(!pseudo.match(regexp))
		{
			writediv_username('<span style="color:#cc0000;font-size:11px;font-family:tahoma;"><b>"'+pseudo+'" :</b> Use only letters, numbers, "-" and "_" !</span>');
			return(false);
		}
		else if(pseudo.length<3)
		{
			writediv_username('<span style="color:#cc0000;font-size:11px;font-family:tahoma;"><b>"'+pseudo+'" :</b> Wixi name too short !</span>');
			return(false);
		}
		else if(pseudo.length>255)
		{
			writediv_username('<span style="color:#cc0000;font-size:11px;font-family:tahoma;"><b>"'+pseudo+'" :</b> Wixi name too long !</span>');
			return(false);
		}
		else if(texte = file('ajax_signup.php?pseudo='+escape(pseudo)))
		{
			if(texte == 1)
			{
				writediv_username('<span style="color:#cc0000;font-size:11px;font-family:tahoma;"><b>"'+pseudo+'" :</b> Wixi name already used !!</span>');
				return(false);
			}
			else if(texte == 2)
			{
				writediv_username('<span style="color:#1A7917;font-size:11px;font-family:tahoma;"><b>"'+pseudo+'" :</b> Wixi name available !</span>');
				return(true);
			}
			else
			{
				writediv_username(texte);
			}
		}
	}
	else
		writediv_username(' ');
}

function verifFirstname(name)
{
	name = trim(name);
	
	var regexp = "^[a-zA-Z-]*$" ;//pour verifier que le firstname ne contient que des lettres et "-"
	
	if(name != '')
	{
		if(!name.match(regexp))
		{
			writediv_firstname('<span style="color:#cc0000;font-size:11px;font-family:tahoma;"><b>"'+name+'" :</b> Use only letters and "-" !</span>');
			return(false);
		}
		else
			writediv_firstname(' ');
	}
	else
		writediv_firstname(' ');
}

function verifLastname(name)
{
	name = trim(name);
	
	var regexp = "^[a-zA-Z-]*$" ;//pour verifier que le lastname ne contient que des lettres et "-"
	
	if(name != '')
	{
		if(!name.match(regexp))
		{
			writediv_lastname('<span style="color:#cc0000;font-size:11px;font-family:tahoma;"><b>"'+name+'" :</b> Use only letters and "-" !</span>');
			return(false);
		}
		else
			writediv_lastname(' ');
	}
	else
		writediv_lastname(' ');
}

function verifEmail(email, param)
{
	if(email != '')
	{
		if(!emailCheck(email))
		{
			writediv_email('<span style="color:#cc0000;font-size:10px;font-family:tahoma;"><b>"'+email+'" :</b> email format is invalid !</span>');
			return (false);
		}
		else if(texte = file('ajax_signup.php?email='+email))
		{
			if(texte == 1)
			{
				writediv_email('<span style="color:#cc0000;font-size:10px;font-family:tahoma;"><b>"'+email+'" :</b> Email already used !!</span>');
				return (false);
			}
			else if(texte == 2)
			{
				writediv_email('<span style="color:#1A7917;font-size:10px;font-family:tahoma;"><b>This email address is available !</b></span>');
				if (param != 1)
					concord_email_invitCode();
				else
					return (true);
			}
		}
	}
	else
	{
		writediv_email(' ');
		return (false);
	}
}

function verifEmailSubmition(email)
{
	if(email != '')
	{
		if(!emailCheck(email))
		{
			writediv_email('<span style="color:#cc0000;font-size:11px;font-family:tahoma;"><b>"'+email+'" :</b> email format is invalid !</span>');
			return (false);
		}
		else if(texte = file('ajax_signup.php?email='+email))
		{
			if(texte == 1)
			{
				writediv_email('<span style="color:#cc0000;font-size:11px;font-family:tahoma;"><b>"'+email+'" :</b> Email already used !!</span>');
				return (false);
			}
			else if(texte == 2)
			{
				writediv_email('<span style="color:#1A7917;font-size:11px;font-family:tahoma;"><b>This email address is available !</b></span>');
				return (true);
			}
		}
	}
	else
	{
		writediv_email(' ');
		return (false);
	}
}

function concord_email_invitCode()
{
	var invitation_code = document.forms["signup"].elements["invitation_code"].value;
	var email_address = document.forms["signup"].elements["email_address"].value;
	
	if(invitation_code != '' && email_address != '')
	{
		if(verifEmail(email_address, 1))
		{
			if(texte = file('ajax_signup.php?adress_mail='+email_address+'&invit_code='+invitation_code))
			{
				if(texte == 2)
				{
					writediv_concord('<span style="color:#cc0000;font-size:10px;font-family:tahoma;">The invitation code <b>"'+invitation_code+'" :</b> doesn\'t match with this email address <b>"'+email_address+'"</b> !!</span>');
					return(false);
				}
				else if(texte == 1)
				{
					writediv_concord('<span style="color:#1A7917;font-size:10px;font-family:tahoma;"><b>Valid invitation code !</b></span>');
					return(true);
				}
				else
				{
					writediv_concord(texte);
				}
			}
		}
	}
	else
		writediv_concord(' ');
}

function verif_given_pass() //Pass pour le submission
{
	var given_pass = document.forms["signup"].elements["given_pass"].value;
	
	if (given_pass != '')
	{		
		var verif = file('ajax_signup.php?passcode='+given_pass); //verifie le pass wixi access
		
		if (verif != 1)
		{
			writediv_givenpass('<span style="color:#cc0000;font-size:10px;font-family:tahoma;">"'+given_pass+'" : Wrong Wixi access pass !!</span>');
			//return(false);
		}
		else
		{
			writediv_givenpass('<span style="color:#1A7917;font-size:10px;font-family:tahoma;">Valid Wixi access pass !!</span>');
			document.forms["signup"].elements["selected_plan"].value = 'Special Offer';
			document.getElementById('all_plans').style.display = 'none';
			return(true);
		}
	}
	else
	{
		writediv_givenpass(' ');
		return(false);
	}
}

function concord_passwords()
{
	var password = document.forms["signup"].elements["password"].value;
	var verif_password = document.forms["signup"].elements["verif_password"].value;
	
	if(password != '' && verif_password != '')
	{
		if(password != verif_password)
		{
			document.getElementById('id_password').value='';
			document.getElementById('id_password').focus();
			writediv_passwd('<span style="color:#cc0000;font-size:11px;font-family:tahoma;">Please verify your password !!</span>');
		}
		else
		writediv_passwd(' ');
	}
	else
		writediv_passwd(' ');
}


function changeDisplayAvatar(box)
{
	choice = box.options[box.selectedIndex].value;
	if (choice == "upload")
	{
		document.getElementById('all_avatar').style.display = "none";
		document.getElementById('upload_avatar').style.display = "block";
	}
	else if (choice == "default")
	{
		document.getElementById('upload_avatar').style.display = "none";
		document.getElementById('all_avatar').style.display = "block";
	}
}

function changeDisplayBackground(box)
{
	choice = box.options[box.selectedIndex].value;
	if (choice == "upload")
	{
		document.getElementById('all_background').style.display = "none";
		document.getElementById('upload_background').style.display = "block";
	}
	else if (choice == "default")
	{
		document.getElementById('upload_background').style.display = "none";
		document.getElementById('all_background').style.display = "block";
	}
}

function func_select_avatar(img)
{
	var image = '<img style="margin-top:20px;margin-left:30px;width:64px;height:64px;" src="' + img.src + '" />';
	document.getElementById('chosen_avatar').innerHTML = image;
	
	var tab_link = img.src.split("/");
	var link_img = '../' + tab_link[tab_link.length - 3] + '/' + tab_link[tab_link.length - 2] + '/' + tab_link[tab_link.length - 1];
	
	document.forms.signup_choose.selected_avatar.value = link_img;
}

function func_select_background(img)
{
	var image = '<img style="margin:8px;width:109px;height:89px;" src="' + img.src + '" />';
	document.getElementById('chosen_background').innerHTML = image;
	
	var tab_link = img.src.split("/");
	//on met le nom de l'image reelle a la place de celui du thumbnail
	var tab_real_name = tab_link[tab_link.length - 1].split(".");
	//alert(tab_real_name[0]);
	
	//var link_img = '../' + tab_link[tab_link.length - 3] + '/' + tab_link[tab_link.length - 2] + '/' + tab_real_name[0] + '_r.' + tab_real_name[1];
	var link_img = '../' + tab_link[tab_link.length - 3] + '/' + tab_link[tab_link.length - 2] + '/' + tab_real_name[0] + '_r.jpg';
	//alert(link_img);
	document.getElementById('the_background').value = link_img;
}

function checkFormUserSubmission()
{
	var verification = 1;
	
	var unique_username = document.forms["signup"].elements["unique_username"];
	var first_name = document.forms["signup"].elements["first_name"];
	var last_name = document.forms["signup"].elements["last_name"];
	var email_address = document.forms["signup"].elements["email_address"];
	var password = document.forms["signup"].elements["password"];
	var verif_password = document.forms["signup"].elements["verif_password"];
	var premium_plan = document.forms["signup"].elements["premium_plan"];
	var selected_plan = document.forms["signup"].elements["selected_plan"];
	
	
	if (unique_username.value.length == 0)
	{
		unique_username.className = "empty";
		verification = 0;
	}
	else
	{
		verifUsername(unique_username.value);
		unique_username.className = "normal";
	}
	
	if (first_name.value.length == 0)
	{
		first_name.className = "empty";
		verification = 0;
	}
	else
	{
		verifFirstname(first_name.value);
		first_name.className = "normal";
	}
	
	if (last_name.value.length == 0)
	{
		last_name.className = "empty";
		verification = 0;
	}
	else
	{
		verifLastname(last_name.value);
		last_name.className = "normal";
	}
	
	
	if (email_address.value.length == 0)
	{
		email_address.className = "empty";
		verification = 0;
	}
	else
	{
		verifEmailSubmition(email_address.value);
		email_address.className = "normal";
	}
	
	if (password.value.length == 0)
	{
		password.className = "empty";
		verification = 0;
	}
	if (verif_password.value.length == 0)
	{
		verif_password.className = "empty";
		verification = 0;
	}
	
	if (premium_plan[0].checked || premium_plan[1].checked || premium_plan[2].checked || premium_plan[3].checked)
	{
		if(premium_plan[3].checked)
		{
			verif_given_pass();
		}
		selected_plan.className = "plans";
	}
	else
	{
		selected_plan.className = "empty_plans";
		verification = 0;
	}
	
	
	if (verification == 0) //Si tous les champs ne sont pas tous renseignes
	{
		document.getElementById('miss_msg').style.visibility = "visible";
		return(false);
	}
	else 
	{
		document.forms.signup.submit();
		return(true);
	}
}

function checkFormChoose()
{
	document.forms.signup_choose.submit();
	return(true);
}

function toto(obj)
{
	var form = document.getElementById('id_choose_upload_avatar');
	alert(form);
	form.submit();
	return true;
}