/* ***************************************** 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 addToFavorites(url, title)
{
	if(document.all)
	{
		window.external.AddFavorite(url, title);
	}
	else//if(window.sidebar)
	{
		window.sidebar.addPanel(title, url, "");
	}
}

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';}
					//if( (p < 1) || (p == (val.length-1)) ){errors += ' -> The field "'+label+'" must contain an e-mail address.\n';}
				}
				else if(test != 'R')
				{
					if(test.indexOf('isINT') != -1)
					{
						if(!isInteger(val)){errors += ' -> Le champ "'+label+'" doit contenir un entier.\n';}
						//if(!isInteger(val)){errors += ' -> The field "'+label+'" must contain an integer.\n';}
					}
					else if(test.indexOf('isDEC') != -1)
					{
						if(!isDecimal(val)){errors += ' -> Le champ "'+label+'" doit contenir un nombre décimal.\n';}
						//if(!isDecimal(val)){errors += ' -> The field "'+label+'" must contain a decimal number.\n';}
					}
					else
					{
						num = parseFloat(val);
						if(isNaN(val)){errors += ' -> Le champ "'+label+'" doit contenir un nombre.\n';}
						//if(isNaN(val)){errors += ' -> The field "'+label+'" must contain a number.\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';}
							//if( (num < min) || (max < num) ){errors += ' -> The field "'+label+'" must contain a number betwen '+min+' and '+max+'.\n';}
						}
					}
				}
			}
			else if(test.charAt(0) == 'R') errors += ' -> Le champ "'+label+'" est requis.\n';
			//else if(test.charAt(0) == 'R') errors += ' -> The field "'+label+'" is required.\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 == '');
}


/* ***************************************** Fonctions spécifiques ***************************************** */
// Message de confirmation pour valider ou annuler sa sélection avant qu’il quitte l’espace professionnel
/*function LogoutConfirm()
{
	if(confirm('Etes-vous sûr de vouloir quitter l\'espace des professionnels ?\nVotre sélection sera alors perdue.\n    Choisissez le bouton Annuler pour valider votre sélection.\n    Sinon cliquez sur le bouton OK.'))
	{
		window.location.href = 'index.asp';
	}
	else
	{
		window.location.href = 'VoirSelectionPro.asp';
	}
}*/


/* ***************************************** Gestion du sous-menu des catégories de produits ***************************************** */
// Pour arrêter ou activer la fonction de masquage de la zone
var timeoutID;

function ShowProdSousMenu()
{
	//document.getElementById('prodssmenu').style.display='';
	if(MM_findObj('prodssmenu')){MM_findObj('prodssmenu').style.display='';}
//	if(MM_findObj('puce_produits')){MM_findObj('puce_produits').src="../image/puce_produits.gif";}
	if(MM_findObj('menu_produits')){MM_findObj('menu_produits').style.background="#000000";}
	if(MM_findObj('menu_produits')){MM_findObj('menu_produits').style.color="#ffffff";}
	if(MM_findObj('menu_produits_noir')){MM_findObj('menu_produits_noir').style.background="#ffffff";}
	if(MM_findObj('menu_produits_noir')){MM_findObj('menu_produits_noir').style.color="#000000";}
}

function HideProdSousMenu()
{
	//document.getElementById('prodssmenu').style.display='none';
	if(MM_findObj('prodssmenu')){MM_findObj('prodssmenu').style.display='none';}
//	if(MM_findObj('puce_produits')){MM_findObj('puce_produits').src="../image/trans.gif";}
	if(MM_findObj('menu_produits')){MM_findObj('menu_produits').style.background="none";}//="inherit";//
	if(MM_findObj('menu_produits')){MM_findObj('menu_produits').style.color="#000000";}//="inherit";//
	if(MM_findObj('menu_produits_noir')){MM_findObj('menu_produits_noir').style.background="none";}//="inherit";//
	if(MM_findObj('menu_produits_noir')){MM_findObj('menu_produits_noir').style.color="#bfbfbf";}//="inherit";//
}

// Execute la fonction HideProdSousMenu() au bout de 100 millisecondes
function TimeoutHideProdSousMenu()
{
	timeoutID = window.setTimeout("HideProdSousMenu()",100);
}

document.onclick = HideProdSousMenu;
/* ***************************************** Gestion du sous-menu des catégories de produits ***************************************** */


