/********************************************************************************************************************
*			fonction NBEACHTYPE																						*
*			paramètre: chaine																						*
*			Met dans un tableau le nombre de valeurs alphanumérique et le nombre de valeurs de type entier			*
*			Renvoi un tableau : tab[0] nb d'éléments alpha, tab[1] nb d'entiers										*
*																													*
********************************************************************************************************************/

function nbEachType(val)//0 => alpha // 1 = entier
{
	var tabType = new Array(0,0);
	for(var i =0 ; i<val.length ; i++)
	{
		if((val.substr(i,1)-val.substr(i,1))==0)
			tabType[1] +=1;
		else
			tabType[0] +=1;
	}
	return tabType;
}

/********************************************************************************************************************
*			fonction TESTRADIO																						*
*			paramètre: objet radio d'un formulaire																	*
*			Renvoi la valeur sélectionnée si plusieurs objets radio ont le même nom 								*
*																													*
********************************************************************************************************************/

function testRadio(objRadio) 
{
	var radioVal = '';
	for (var i=0; i<objRadio.length ; i++) 
	{
		if (eval(objRadio)[i].checked) 
		{
			radioVal = eval(objRadio)[i].value;
		}
	}
	return radioVal;
}

/********************************************************************************************************************
*			fonction CHECKEMAIL																						*
*			paramètre: chaine																						*
*			Renvoi true ou false 																					*
*																													*
********************************************************************************************************************/

function checkEmail(chaine)
{
	
	var compte 		= "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
	var domaine		= "([a-zA-Z0-9][a-zA-Z0-9._-]*\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\.[a-zA-Z]{2,5}";
	var reg 		= "^"+compte+"@"+domaine+"$";
	var regExp 		= new RegExp(reg);
	return regExp.test(chaine);
}

/********************************************************************************************************************
*			fonction CHECKFORM																						*
*			paramètres: objet formulaire, tableau avec le nom des champs, tableau avec msg d'erreur pour ces champs	*
*																													*
********************************************************************************************************************/
function checkForm(objForm,tabObli,tabEquiv,ajax,bulleLeft,bulleTop)
{
	bulleLeft		= (bulleLeft=='' || bulleLeft==undefined) ?0 : bulleLeft;
	bulleTop		= (bulleTop=='' || bulleTop==undefined) ? -60: bulleTop;
		
	var tabObli		= tabObli.split(',');
	var tabEquiv 	= tabEquiv.split(',');
	var alEr		= false;
	var newMsg		= '';

	for(var i=0; i<tabObli.length ; i++)
	{
		var deb 	= tabObli[i].substr(0,3);
		var nomCheck= tabObli[i].substr(3,tabObli[i].length);//pour cas autres que default
		switch(deb)
		{
			case 'CHK':		var resultats	= 0;
							for (var j=0; j<objForm.length;j++)
							{
								if (objForm[j].name.substr(0,nomCheck.length)==nomCheck && objForm[j].checked)
									resultats++;
							}
							if(resultats>0)	alEr = false; else alEr = true;
							break;
							
			case 'RAD':		if(testRadio(eval('objForm.'+nomCheck))=='')
								alEr = true;
							break;
							
			case 'PSW': 	alEr			= true;
							if(eval('objForm.'+nomCheck) && eval('objForm.'+nomCheck+'.value.length')==0)
								newMsg		= 'Veuillez préciser '+tabEquiv[i];
							else if(eval('objForm.'+nomCheck) && eval('objForm.'+nomCheck+'.value.length')<6)
								newMsg		= 'Le mot de passe doit faire au moins 6 caractères';
							else
							{
								var tabType	= nbEachType(eval('objForm.'+nomCheck+'.value'));
								if(tabType[1] == 0)
									newMsg	= 'Veuillez mettre au moins un chiffre dans votre mot de passe';
								else if(eval('objForm.'+nomCheck+'.value')!='')
									alEr = false;
							}
							break;
							
			case 'EMA':		if(eval('objForm.'+nomCheck+'.value')=='')
								alEr = true;
							else if(!checkEmail(eval('objForm.'+nomCheck+'.value')))
							{
								alEr 		= true;
								newMsg		= 'Votre adresse email est incorrecte';
							}
							break;								
							
			default	 : 		if(eval('objForm.'+tabObli[i]+'.value')=='')
								alEr = true;
							break;
		}
		
		if(alEr)
		{
			newMsg = (newMsg=='') ? 'Veuillez préciser '+tabEquiv[i] : newMsg;
			bulle('zoneBulle','bottom',newMsg,'150','efefef','20',bulleLeft,bulleTop);
			return false;
		}
	}
	//AJAX le cas échéant
	if(ajax!='')
	{
		var paramAjax 	= new Array();
		paramAjax		= ajax.split('¤');
		//valeurs formulaire
		var getForm 	= '';
		paramForm		= paramAjax[3].split('|');
		if(paramForm!='')
		{
			for (var i=0; i<paramForm.length;i++)
			{
				getForm += '&'+paramForm[i]+'='+escape(eval('objForm.'+paramForm[i]+'.value'));
			}
		}
		var getParams = paramAjax[2]+'&'+getForm;
		getParams	  = getParams.replace(/"/g,'\\\"');

		eval(paramAjax[0]+'("'+paramAjax[1]+'","'+getParams+'")');
		return false;
	}
}
/********************************************************************************************************************
*			fonction switchReturn																					*
*			Effectue le test pour chaque champ, si un est rempli return true										*
*			Renvoi true ou false 																					*
*																													*
********************************************************************************************************************/

function switchReturn(objForm,tabObli,tabEquiv,ajax,bulleLeft,bulleTop)
{
	tmpTab = tabObli.split(',');
	for(i=0 ; i<tmpTab.length ; i++)
	{
		if(eval('objForm.'+tmpTab[i]+'.value')!='')
		{
			var paramAjax 	= new Array();
			paramAjax		= ajax.split('¤');
			//alert(paramAjax[0]+'("'+paramAjax[1]+'","'+paramAjax[2]+'")');
			eval(paramAjax[0]+'("'+paramAjax[1]+'","'+paramAjax[2]+'")');
			return false;			
		}
	}
	//alert(objForm+' -  '+tabObli+' -  '+tabEquiv+' -  '+ajax+' -  '+bulleLeft+' -  '+bulleTop);
	checkForm(objForm,tabObli,tabEquiv,ajax,bulleLeft,bulleTop);
	return false;
}