
/**
 * Enleve les caracteres blancs (espace et tabulations)
 * situes en debut et fin de chaine
 *
 * @param	str	la chaine a traiter
 * @result	une chaine de caractere sans caractere blanc (debut/fin)
 */
function trim(str)
{
  if (str.length == 0)
    return (str);

  while (str.substring(0, 1) == " " || str.substring(0, 1) == "\t")
    str = str.substring(1, str.length);

  while (str.substring(str.length-1, str.length) == " " || str.substring(str.length-1, str.length) == "\t")
    str = str.substring(0, str.length - 1);

  return (str);
}


function SubSpace(str)
{
	while (str.charAt(0) == ' ')
	{
		str = str.substring(1, str.length);
	}
	while (str.charAt(str.length - 1) == ' ')
	{
		str = str.substring(0, str.length - 1);
	}
	return str;
}

function ToDate(str)
{
	for (var count = 0; count < str.length; count++)
		if (str.charAt(count) == '-' || str.charAt(count) == '\.' || str.charAt(count) == '\?' || str.charAt(count) == '!' || str.charAt(count) == ':' || str.charAt(count) == ';' || str.charAt(count) == ',')
		{
			var begin = str.substr(0, count);
			var end = str.substr(count + 1, str.length);
			str = begin + "/" + end;
		}
	return str;
}

function Correction(theStr, theName, theControlType)
{
	switch (theControlType)
	{
		case "email":
			var verifemail = /^.+@[a-zA-Z0-9-\.]{2,}[.][a-zA-Z]{2,6}$/
			var verifemail2 = /^.{0,192}$/
			if (verifemail.exec(theStr) == null)
			{
				msg += "Erreur sur " + theName + ". La valeur d'entrée n'est pas un format d'adresse email valide\n";
				return false;
			}
			if (verifemail2.exec(theStr) == null)
			{
				msg += "Erreur sur " + theName + ". La longueur ne peut excéder 192 caractères\n";
				return false;
			}
		break;
		case "nom":
			var verifnom = /^.{0,128}$/
			if (verifnom.exec(theStr) == null)
			{
				msg += "Erreur sur " + theName + ". La longueur ne peut excéder 128 caractères\n";
				return false;
			}
		break;
		case "tel":
//		var	veriftel = /^([+])?[ ]*([(][0-9 ]+[)])?[ ]*[0-9 ]+$/
//			if (veriftel.exec(theStr) == null)
//			{
//				msg += "Format de téléphone/fax incorrect sur "+ theName + ".";
				return true;				
//			}
		break;
		case "date":
			theStr = ToDate(theStr);
			var verifdate1 = '/^([0-2][0-9]|[3][0-1])[/]([0][0-9]|[1][0-2])[/]([0-9]{2}|[0-9]{4})$/';
			var verifdate2 = '/^([0][0-9]|[1][0-2])[/]([0-9]{2}|[0-9]{4})$/';
			if (verifdate1.exec(theStr) == null && verifdate2.exec(theStr) == null)
			{
				msg += "Format de date incorrect sur " + theName + ".(JJ/MM/AA ou MM/AA)\n";
				return false;	
			}
		break;
		case "nombre":
			var theRegEx_isValid = new RegExp("^[0-9]+$");
			if (!theRegEx_isValid.test(theStr))
			{
				msg += "Erreur sur " + theName + ". La valeur entrée doit être numérique\n";
				return false;
			}
		break;
		case "texte":
			if (theStr.length > 1024)
			{
				msg += "Erreur sur " + theName + ". La longueur ne peut excéder 1024 caractères\n";
				return false;
			}
		break;
		case "image":
			var verifimage = /^.+([.]gif|[.]GIF|[.]jpg|[.]JPG|[.]jpeg|[.]JPEG|[.]bmp|[.]BMP)$/
			if (verifimage.exec(theStr) == null)
			{
				msg += "Erreur sur " + theName + ". L'image doit avoir l'extension gif, GIF, jpg, JPG, jpeg, JPEG, bmp ou BMP\n";
				return false;
			}
		break;
		default:
			return true;
		break;
	}
	return true;
}

function controleForm(theFormname, theFieldlist, goodMess, badMess, emailMess)
{	
	
	flag = false;
	if (document.forms[theFormname] && theFieldlist)
	{
		msg = "";
		var index = 1;
		var theRequired = split(theFieldlist, ",", index + 0);
		var theField = split(theFieldlist, ",", index + 1);
		var theName = split(theFieldlist, ",", index + 2);
		var theControleType = split(theFieldlist, ",", index + 3);
		var flag = true;
		while (theRequired && theField && theName && theControleType)
		{
			if (document.forms[theFormname].elements[theField])
			{
				var fObj = document.forms[theFormname].elements[theField];
				var type = fObj.type;
				if (!fObj.type)
					type = "radio";
				var value = "";
				switch (type)
				{
					case "text":
					case "password":
					case "file":
					case "textarea":
						value = fObj.value;
					break;
					case "select-one":
						if (fObj.selectedIndex>=0)
						{
							value = fObj.options[fObj.selectedIndex].text;
						}
					break;
					case "select-multiple":
						var l = fObj.length;
						for (a=0;a<l;a++)
						{
							if (fObj.options[a].selected)
							{
								 value += fObj.options[a].value;
							}
						}
					break;
					case "radio":
						var l = fObj.length;
						for (a = 0; a < l; a++)
						{
							if (fObj[a].checked)
							{
								value = fObj[a].value;
							}
						}
					break;
					default:
						value=1;
				}
				value = SubSpace(value);
			}
			if (value == "" && theRequired == "must")
			{
				alert("Le champ " + theName + " est un champ obligatoire. Veuillez le renseigner.\n");
				if(type!='radio'){
					document.forms[theFormname].elements[theField].focus();
				}				
				return (false);
			}
			else if (value != "")
			{
				if (Correction(value, theName, theControleType) == false)
				{
					alert(msg);
					document.forms[theFormname].elements[theField].focus();
				return (false);
				}
			}
			index += 4;
			theRequired = split(theFieldlist, ",", index + 0);
			theField = split(theFieldlist, ",", index + 1);
			theName = split(theFieldlist, ",", index + 2);
			theControleType = split(theFieldlist, ",", index + 3);
		}
		
		if (msg != "")
			alert(msg);
	}
	if(document.formulaire.exist.checked && msg==""){
		msg = Verif_Date(document.formulaire.crdate.value);
		if (msg != ""){
		  	flag = false;
		  	alert(msg);
		}
	} 
	return flag;
}

function controleFormTypo3(theAction, theUid, theFieldlist, goodMess, badMess, emailMess)
{
	document.forms[0].notSubmittedYet = true;
	document.forms[0].action = 'index.php?action='+theAction+'&uid='+theUid;
	if (controleForm(0, theFieldlist, goodMess, badMess, emailMess))
		document.forms[0].submit();
	return false;
}

function split(theStr1, delim, index) {
	var theStr = ''+theStr1;
	var lengthOfDelim = delim.length;
	sPos = -lengthOfDelim;
	if (index<1) {index=1;}
	for (a=1; a<index; a++)	{
		sPos = theStr.indexOf(delim, sPos+lengthOfDelim);
		if (sPos==-1)	{return null;}
	}
	ePos = theStr.indexOf(delim, sPos+lengthOfDelim);
	if(ePos == -1)	{ePos = theStr.length;}
	return (theStr.substring(sPos+lengthOfDelim,ePos));
}
function Verif_Date(valeur_date)
{   	msg="";
	var verifdate = new RegExp('^([0-2][0-9]|[3][0-1])[/]([0][0-9]|[1][0-2])[/]([0-9]{2}|[0-9]{4})$');
	if (valeur_date == "")
	{
		msg = "Le champ 'date de creation' est un champ obligatoire. Veuillez le renseigner.\n";	
		
	}else if (!verifdate.exec(valeur_date))
	{ 
		msg ="Format de date incorrect sur \"date de creation\". (JJ/MM/AAAA)";		
	}
	return msg;
}

function afficheId(baliseId)
{ 
     /*	if (document.getElementById && document.getElementById(baliseId) != null)
            {*/
            document.getElementById('dateCreation2').style.visibility='visible';
            document.getElementById('dateCreation2').style.display='block';

	    document.getElementById('dateCreation').style.visibility='visible';
            document.getElementById('dateCreation').style.display='block';
          /*  }
	afficheId('dateCreation2')*/
}
function cacheId(baliseId)
{ 		
         /* if (document.getElementById && document.getElementById(baliseId) != null)
            {*/
            document.getElementById('dateCreation2').style.visibility='hidden';
            document.getElementById('dateCreation2').style.display='none';

	    document.getElementById('dateCreation').style.visibility='hidden';
            document.getElementById('dateCreation').style.display='none';
           /* }
	cacheId('dateCreation2');*/
}

//cacheId('dateCreation2');
// si JavaScript est disponible, cache le contenu dÃ¨s le
// chargement de la page. Sans JavaScript, le contenu sera
// affichÃ©.