/* ***************************************** Fonctions-outils ********************************************** */

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_findObj(n, d)
{
	var p,i,x;
	if(!d) d=document;
	if((p=n.indexOf("?"))>0&&parent.frames.length)
	{
		d=parent.frames[n.substring(p+1)].document;
		n=n.substring(0,p);
	}
	
	if(!(x=d[n])&&d.all) x=d.all[n];
	
	for(i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_openBrWindow(theURL,winName,features)
{
	var tmp = window.open(theURL,winName,features);
	tmp.focus();
}

function PopupCentrer(page,largeur,hauteur,options)
{
	var top=(135);
	var left=(screen.width-largeur)/2;
	var tmp = window.open(page,"","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
	tmp.focus();
}

function launch(newURL, newName, newFeatures, orgName)
{
	window.open(newURL, newName, newFeatures);
	window.name = orgName;
	return;
}

function CatchEnter()
{
	if(window.event && window.event.keyCode == 13)	{return true;}
	else											{return false;}
}

function isInteger(val)
{
	return /^\d+$/.test(val);
}

function isDecimal(val)
{
	//return /^\d*[,\.]?\d*$/.test(val);
	return( (/^\d*[,\.]?\d+$/.test(val)) || (/^\d+[,\.]?\d*$/.test(val)) );
}

function msgFormValidation()
{
	var i,p,q,nm,label,test,num,min,max,errors='',args=msgFormValidation.arguments;
	
	for(i = 0; i < (args.length-2); i += 3)
	{
		val		= MM_findObj(args[i]);
		label	= args[i+1];
		test	= args[i+2];
		
		if(val)
		{
			nm = val.name;
			if( (val=val.value) != "")
			{
				if(test.indexOf('isEmail') != -1)
				{
					p = val.indexOf('@');
					if( (p < 1) || (p == (val.length-1)) ){errors += ' -> Le champ "'+label+'" doit contenir une adresse e-mail.\n';}
				}
				else if(test != 'R')
				{
					if(test.indexOf('isINT') != -1)
					{
						if(!isInteger(val)){errors += ' -> Le champ "'+label+'" doit contenir un entier.\n';}
					}
					else if(test.indexOf('isDEC') != -1)
					{
						if(!isDecimal(val)){errors += ' -> Le champ "'+label+'" doit contenir un nombre décimal.\n';}
					}
					else
					{
						num = parseFloat(val);
						if(isNaN(val)){errors += ' -> Le champ "'+label+'" doit contenir un nombre.\n';}
						if(test.indexOf('inRange') != -1)
						{
							p = test.indexOf(':');
							min = test.substring(8, p);
							max = test.substring(p+1);
							if( (num < min) || (max < num) ){errors+=' -> Le champ "'+label+'" doit contenir un nombre entre '+min+' et '+max+'.\n';}
						}
					}
				}
			}
			else if(test.charAt(0) == 'R') errors += ' -> Le champ "'+label+'" est requis.\n';
		}
	}
	
	return(errors);
}

function MM_validateForm()
{
	var i,p,q,nm,label,test,num,min,max,errors='',args=MM_validateForm.arguments;
	
	for(i = 0; i < (args.length-2); i += 3)
	{
		val		= MM_findObj(args[i]);
		label	= args[i+1];
		test	= args[i+2];
		
		if(val)
		{
			nm = val.name;
			if( (val=val.value) != "")
			{
				if(test.indexOf('isEmail') != -1)
				{
					p = val.indexOf('@');
					if( (p < 1) || (p == (val.length-1)) ){errors += ' - Le champ "'+label+'" doit contenir une adresse e-mail.\n';}
				}
				else if(test != 'R')
				{
					if(test.indexOf('isINT') != -1)
					{
						if(!isInteger(val)){errors += ' - Le champ "'+label+'" doit contenir un entier.\n';}
					}
					else if(test.indexOf('isDEC') != -1)
					{
						if(!isDecimal(val)){errors += ' - Le champ "'+label+'" doit contenir un nombre décimal.\n';}
					}
					else
					{
						num = parseFloat(val);
						if(isNaN(val)){errors += ' - Le champ "'+label+'" doit contenir un nombre.\n';}
						if(test.indexOf('inRange') != -1)
						{
							p = test.indexOf(':');
							min = test.substring(8, p);
							max = test.substring(p+1);
							if( (num < min) || (max < num) ){errors+=' - Le champ "'+label+'" doit contenir un nombre entre '+min+' et '+max+'.\n';}
						}
					}
				}
			}
			else if(test.charAt(0) == 'R') errors += ' - Le champ "'+label+'" est requis.\n';
		}
	}
	
	//if(errors){alert('Les erreurs suivantes se sont produites:\n'+errors);}
	if(errors){alert('Certains champs du formulaire ne sont pas valides :\n'+errors);}
	document.MM_returnValue = (errors == '');
	return(errors == '');
}

