/**
 * les champs terminant par un _ sont les champs facultatifs 'obligatoire':'0'
 */
var check=[];
check['pseudo']={'min':'6','max':'20','regexp':'^[a-zA-Z0-9]{6,20}$','obligatoire':'1','info':'Votre pseudo doit contenir de 6 à 20 caractères sans caractères spéciaux.'};
check['password']={'min':'2','max':'30','regexp':'^[a-zA-Z0-9]{2,30}$','obligatoire':'1','info':'Votre mot de passe doit contenir de 6 à 30 caractères sans caractères spéciaux.'};
check['passwordconnexion']={'min':'2','max':'30','regexp':'^[\\S\\x20]{2,30}$','obligatoire':'1','info':'Votre mot de passe doit contenir de 6 à 30 caractères sans caractères spéciaux.'};
check['nom']={'min':'1','max':'64','regexp':'^[\\S]{1}[\\S\\x20]{0,62}[\\S]{1}$','obligatoire':'1','info':'Votre nom doit contenir de 2 à 64 caractères sans espace au début et sans espace à la fin.'};
check['prenom']={'min':'1','max':'64','regexp':'^[\\S]{1}[\\S\\x20]{0,62}[\\S]{1}$','obligatoire':'1','info':'Votre prénom doit contenir de 2 à 64 caractères sans espace au début et sans espace à la fin.'};
check['civilite']={'min':'1','max':'1','regexp':'^[\\d]{1}$','obligatoire':'1','info':'Veuillez choisir votre civilité.'};
check['cp']={'min':'0','max':'30','regexp':'^[\\S]{1}.{0,30}[\\S\\x20]{1}$','obligatoire':'1','info':'Veuillez saisir votre code postal.'};
check['pays']={'min':'1','max':'3','regexp':'^[0-9]{1,3}$','obligatoire':'1','info':'Veuillez choisir votre pays.'};
check['jour']={'min':'1','max':'2','regexp':'^[\\d]{2}$','obligatoire':'1','info':'Veuillez choisir votre jour de naissance.'};
check['mois']={'min':'1','max':'2','regexp':'^[\\d]{2}$','obligatoire':'1','info':'Veuillez choisir votre mois de naissance.'};
check['annee']={'min':'1','max':'4','regexp':'^[\\d]{4}$','obligatoire':'1','info':'Veuillez choisir votre année de naissance.'};
check['date']={'min':'10','max':'10','regexp':'^[\\d]{2}/[\\d]{2}/(200[\\d]{1})|(19[\\d]{2})$','obligatoire':'1','info':'Votre date de naissance n\'est pas valide.'};
check['profession']={'min':'1','max':'4','regexp':'^[\\d]{1,4}$','obligatoire':'1','info':'Veuillez choisir votre profession.'};
check['email']={'min':'6','max':'256','regexp':'^[a-zA-Z0-9\\.\\-_]{1,120}@[a-zA-Z0-9\\.\\-_]{1,120}\\.[a-zA-Z0-9\\.\\-_]{2,15}$','obligatoire':'1','info':'Votre adresse email n\'est pas valide.'};
check['cgu']={'min':'1','max':'1','regexp':'^[\\d]{1}$','obligatoire':'1','info':'Veuillez accepter les conditions générales d\'utilisation.'};
check['optin']={'min':'1','max':'1','regexp':'^[\\d]{1}$','obligatoire':'1','info':'Veuillez répondre à la question concernant les offres promotionnelles.'};
check['ville']={'min':'1','max':'128','regexp':'^[\\S]{1}[\\S\\x20]{0,62}[\\S]{1}$','obligatoire':'1','info':'Votre ville doit contenir de 2 à 128 caractères sans espace au début et sans espace à la fin.'};
check['adresse1']={'min':'1','max':'128','regexp':'^[\\S]{1}[\\S\\x20]{0,126}[\\S]{1}$','obligatoire':'1','info':'Le premier champ de votre adresse doit contenir de 2 à 256 caractères sans espace au début et sans espace à la fin.'};
check['adresse2']={'min':'1','max':'128','regexp':'^[\\S]{1}[\\S\\x20]{0,126}[\\S]{1}$','obligatoire':'0','info':'Le second champ de votre adresse doit contenir de 2 à 256 caractères sans espace au début et sans espace à la fin.'};
check['telephone']={'min':'1','max':'16','regexp':'^[\\S]{1}[\\S\\x20]{0,14}[\\S]{1}$','obligatoire':'1','info':'Votre téléphone doit contenir de 2 à 128 caractères sans espace au début et sans espace à la fin.'};
check['cp2']={'min':'0','max':'30','regexp':'^[\\S]{1}.{0,30}[\\S\\x20]{1}$','obligatoire':'1','info':'Veuillez saisir votre code postal pour les partenaires.'};

function TestEmail(strAdresseEmail)
{
    var strAdresseEmail;  
    pattern = /^([A-Za-z0-9\.\-_]*)(@)([A-Za-z0-9\.\-]*)(\.)([A-Za-z]{2,4})$/;
    return pattern.test(strAdresseEmail);
}

function TestCP(strCodePostal)
{
    var strCodePostal;
    pattern = /^([A-Za-z0-9\-\ ]+)$/;
    return pattern.test(strCodePostal);
}

function TestTelephone(strTelephone)
{
    var strTelephone;
    pattern = /^([0-9\.\-\s\/]*)$/;
    return pattern.test(strTelephone);
}

function AnneeBissextile(AnneeTest)
{
    var numReste;
    numReste = AnneeTest % 4;
    if (numReste == 0)
    {
	numReste = AnneeTest % 10;
	if (numReste == 0)
	{
	    reste = AnneeTest % 400;
	    if (numReste == 0)	return true;
	    else return false;
	}
	else
	    return true;
    }
    else
	return false;
}

function NombreJours(MoisTest, AnneeTest)
{
    var TabJour = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    var IdMois;
    if ((parseInt(MoisTest) == 2) && (AnneeBissextile(parseInt(AnneeTest)))) return 29;
    IdMois = MoisTest - 1;
    return TabJour[IdMois];
}

function TestDate(strDate)
{
    var strDate;
    var bTest;
    var numJour;
    var numMois;
    var numAnnee;
	var pattern ;
    pattern = /^([0-3])([0-9])\/([0-1])([0-9])\/([0-9]{4})$/;
    bTest = pattern.test(strDate);
    if (bTest)
    {
		numJour = strDate.substr(0, 2);
		numMois = strDate.substr(3, 2);
		numAnnee = strDate.substr(6, 4);
		if ((numMois > 12) || (numJour > NombreJours(numMois, numAnnee))) 
		{
			bTest = false;	
		}
    }
    return bTest;
}

function trim (chaine) {
 chaine = unescape(chaine);
 return chaine.replace(/(^\s*)|(\s*$)/g, "");
}
function ltrim (chaine) {
 chaine = unescape(chaine);
 return chaine.replace(/(^\s*)/, "");
}
function rtrim (chaine) {
 chaine = unescape(chaine);
 return chaine.replace(/(\s*$)/, "");
}

function getRadioButton(radios)
{
	var rdButton;
	var booChecked;
	var i;
	booChecked=false;
	i=0;
	while(i<radios.length && booChecked==false)
	{
		if($(radios[i]).checked==true)
		{
			rdButton=$(radios[i]);
			booChecked=$(radios[i]).checked;
		}
		else
		{
			i++;
		}
	}
	if(booChecked==true)
	{
		return rdButton;
	}
	else
	{
		return null;
	}
}

function checkForm(form)
{
	var inputs = form.getElements();
	var i;
	var re;
	var json;
	var booExitWhile=false;
	var booCheckForm;
	var elem;
	var inputs_error=[];
	booCheckForm=true;
	i=0
	
	while(booExitWhile==false)
	{
		if(i<inputs.length)
		{
			json=check[inputs[i].name]
			if(json && inputs[i].type!='radio')
			{
				re=new RegExp(json.regexp);
				if(json.obligatoire=='1' || $(inputs[i]).getValue().length>0)
				{
					if(re.test(inputs[i].getValue())==false)
					{
						if(inputs[i].disabled!=true)
						{
							booCheckForm=false;
							inputs_error.push(inputs[i]);
						}
					}
					else
					{
						switch(inputs[i].name)
						{
							case 'date':
								if(TestDate(inputs[i].getValue())==false)
								{
									booCheckForm=false;
									inputs_error.push(inputs[i]);
								}
							break;
						}
					}
				}
			}
			else
			{
//				if(console) console.log(inputs[i].name);
			}
			i++;
		}
		else
		{
			booExitWhile=true;
		}
	}
	if(booCheckForm==true)
	{
		return null;	
	}
	else
	{
		return inputs_error;
	}
	
}

function serializeForm(form)
{
	var post;
	post='ajax=1';
	$H(form.serialize(true)).each(function(key_value) {
			post=post+'&'+key_value.key + '=' + escape(key_value.value);
		});
	return post;
}



function setSelectedValue(slc,value)
{
var i=0;
	for(i=0;i<slc.options.length;i++)
	{
		if(slc.options[i].value==value) 
		{
			slc.selectedIndex=i;
		}
	}
}



