////////////////////////////////////////////////////////////////////////////////////////////////////
// Fonction pour l'ouverture de l"espace pro" avec effet déroulant
////////////////////////////////////////////////////////////////////////////////////////////////////
function OpenProNews()
{
	// Si l'espace pro N'était PAS visible...
	if($('#EspacePro_News').is(":hidden"))
	{
		// On doit donc l'ouvrir
		$('#EspacePro_News').slideDown(250);
//		$('#EspacePro_News').show();//>> DIRECT !
		
		// Focus sur le champ de saisie !
		if(MM_findObj('pro_log')){MM_findObj('pro_log').focus();}
	}
	// Sinon, l'espace pro était visible...
	else
	{
		// On doit donc le fermer
		$('#EspacePro_News').slideUp(250);
//		$('#EspacePro_News').hide();//>> DIRECT !
	}
//>> VOIR plus simple : $('#EspacePro_News').slideToggle(250);
}
////////////////////////////////////////////////////////////////////////////////////////////////////
// Fonction d'ouverture des sous-menus
////////////////////////////////////////////////////////////////////////////////////////////////////
openedSsMenu = null;
openinSsMenu = null;
openedMenuImg = null;
openinMenuImg = null;

function OpenSsMenu(mnu)
{
	openinSsMenu = $('#ssmenu_'+mnu);
	openinMenuImg = document.getElementById('MenuImg_'+mnu);
	
	// Si le sous-menu N'était PAS visible...
	if(openinSsMenu.is(":hidden"))
	{
		// Avant on ferme l'éventuel menu ouvert
		if(openedSsMenu != null)
		{
			openedSsMenu.slideUp(500,function(){
				// Image du menu version "off"
				openedMenuImg.src = openedMenuImg_srcOFF;//'img/menu/'+mnu+'.png';//
				
				// Image du menu version "off"
				openedMenuImg_srcOFF = openinMenuImg.src;
				
				// Image du menu version "on"
				openinMenuImg.src = 'img/menu/'+mnu+'_on.png';
				
				// On doit donc l'ouvrir
				openinSsMenu.slideDown(500);
				
				// Mémo des infos sur le menu ouvert
				setCookie('menuopen',mnu,365);
				openedSsMenu = openinSsMenu;
				openedMenuImg = openinMenuImg;
			//	openedMenuImg_srcOFF = 'img/menu/'+mnu+'.png';
			});
		}
		else
		{
			// Image du menu version "off"
			openedMenuImg_srcOFF = openinMenuImg.src;
			
			// Image du menu version "on"
			openinMenuImg.src = 'img/menu/'+mnu+'_on.png';
			
			// On doit donc l'ouvrir
			openinSsMenu.slideDown(500);
			
			// Mémo des infos sur le menu ouvert
			setCookie('menuopen',mnu,365);
			openedSsMenu = openinSsMenu;
			openedMenuImg = openinMenuImg;
		//	openedMenuImg_srcOFF = 'img/menu/'+mnu+'.png';
		}
	}
	// Sinon, le sous-menu était visible...
	else
	{
		// On doit donc le fermer
		openinSsMenu.slideUp(500,function(){
			// Image du menu version "off"
			openinMenuImg.src = openedMenuImg_srcOFF;//'img/menu/'+mnu+'.png';//
			
			// RESET : Mémo des infos sur le menu ouvert
			setCookie('menuopen',"",365);
			openedSsMenu = null;
			openedMenuImg = null;
		//	openedMenuImg_srcOFF = '';
		});
	}
}

function SetOpenSsMenu(mnu)
{
	openinSsMenu = $('#ssmenu_'+mnu);
	openinMenuImg = document.getElementById('MenuImg_'+mnu);
	
	// Image du menu version "on"
	openinMenuImg.src = 'img/menu/'+mnu+'_on.png';
	
	// On doit donc l'ouvrir DIRECTEMENT
//	openinSsMenu.slideDown(500);
	openinSsMenu.show();
	
	// Mémo des infos sur le menu ouvert
	setCookie('menuopen',mnu,365);
	openedSsMenu = openinSsMenu;
	openedMenuImg = openinMenuImg;
	openedMenuImg_srcOFF = 'img/menu/'+mnu+'.png';
}
////////////////////////////////////////////////////////////////////////////////////////////////////
function getCookie(c_name)
{
	if(document.cookie.length > 0)
	{
		c_start = document.cookie.indexOf(c_name + "=");
		
		if(c_start!=-1)
		{
			c_start = c_start + c_name.length + 1;
			c_end = document.cookie.indexOf(";",c_start);
			if(c_end == -1){c_end = document.cookie.length;}
			return(unescape(document.cookie.substring(c_start,c_end)));
		}
	}
	return("");
}
function setCookie(c_name,value,expiredays)
{
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + expiredays);
	document.cookie = c_name + "=" + escape(value) + ((expiredays==null) ? "" : "; expires="+exdate.toGMTString());
}
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
// Module de défilement automatique des actualités (effet "fade") :
//   >> Cf. : http://www.eclaireur.net/technique/3-scripts-de-defilement-de-news-newsticker/
//   >> J'essaie plutôt le module "Bartelme Design - Accessible JavaScript Newsticker" :
//     (car il semble plus fiable : compatibilité et "mode échec/par défaut" géré)
//			http://www.bartelme.at/journal/archive/accessible_javascript_newsticker/
//>>> Conflit entre les 2 bibliothèques jquery-1.5.1.min.js et prototype.js !!!
//   >> J'essaie donc l'autre solution (basée sur jQuery) :
//		http://www.texotela.co.uk/code/jquery/newsticker/
//>>> ça marche mieux ! (pas de conflit entre bibliothèques)
////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////
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 isInteger(val)
{
	return /^\d+$/.test(val);
}

function isDecimal(val)
{
	//return /^\d*[,\.]?\d*$/.test(val);
	return( (/^\d*[,\.]?\d+$/.test(val)) || (/^\d+[,\.]?\d*$/.test(val)) );
}

// Vérifie la validité d'une date au format jj/mm/aaaa
function isDate(val)
{
	return( (/^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$/.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';}
					//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 PopupCentrer(page,largeur,hauteur,options)
{
	var top=(135);
	var left=(screen.width-largeur)/2;
	var tmp = window.open(page,"dunepop","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
	tmp.focus();
}
////////////////////////////////////////////////////////////////////////////////////////////////////


