/* ***************************************** 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)) );
}

// 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';}
				}
				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 == '');
}

function AjouterAuxfavoris(url, title)
{
	if(url == '')
		{url = window.location;}
	if(title == '')
		{title = document.title;}
	
	if(navigator.appName != 'Microsoft Internet Explorer')
	{
		window.sidebar.addPanel(title,url,"");
	}
	else//if(window.sidebar)
	{
		window.external.AddFavorite(url,title);
	}
}

/* ***************************************** Fonctions spécifiques ***************************************** */

function valDel()
{
	return(confirm('Etes vous sur de vouloir supprimer ?'));
}

// 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 scroll
//------------------------------------------------------------------------------------
function getScrollXY() {
	var scrOfX = 0, scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
	}
	return [scrOfX, scrOfY];
}
function getScrollX() {var xy = getScrollXY();	return xy[0];}
function getScrollY() {var xy = getScrollXY();	return xy[1];}

var interval;
function ascenceur(){
	var ypos = getScrollY();
	if (ypos > (ypos / 10)) {
		ypos -= (ypos / 10);
		if (ypos < 1) {ypos = 0;}
		window.scroll(0, ypos);
	}
	else {window.clearInterval(interval);}
}
function startAscenceur(){interval = window.setInterval("ascenceur()", 10);}


/* ***************************************** Anciennes fonctions d'actions Flash ***************************************** */
function setvar(variable, valeur){
	var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
	if (isInternetExplorer) {
		document.getElementById("menuprinc").SetVariable(variable, valeur);
	}
	else {
		var embeded = "<embed src='/image/localconnexion.swf";
		if (variable != "") {embeded += "?variable=" + variable + "&valeur=" + valeur;}
		embeded += "' width='0' height='0' type='application/x-shockwave-flash'/>";
		document.getElementById("divswf").innerHTML = embeded;
		return true;
	}
}
function codemenu(L1, L2, L3){
	var cmenu = "9";
	cmenu  += ((L1 < 10) ? "0" : "") + L1;
	cmenu  += ((L2 < 10) ? "0" : "") + L2;
	cmenu  += ((L3 < 10) ? "0" : "") + L3;
	return cmenu;
}
// A garder quand même !!!
function menu(curLST, curBT, curDETAIL, curLG) {
	// reçoit   : la liste (1), le menu (2), le sous menu (2), la langue (GB)
	// retourne : la liste (1), le menu (2), le détail : langue + edito 
	//			  ex : vLG=GB@vBT=9010202 ou @ est remplacé par & (voir ci-dessous)
	
	// liste et menu
//	var detail = curLST + "@" + curBT;
	
	// langue
//	detail += ( (curLG=="GB") ? "@vLG="+curLG : "");
	
	// edito : le mettre en dernier pour le récupérer (soit les deux derniers caractères de la chaine)
	// @ = séparateur de champ http -> converti en & à reception dans flash
//	detail += "@vBT=" + codemenu(curLST, curBT, curDETAIL);
	
	// mise à jour de la variable flash
//	setvar("/:mcedito.menucallExt", detail);
	window.location = "edito.asp?h=1&curLST="+curLST+"&curBT="+curBT+"&curDETAIL="+curDETAIL+"&curLG="+curLG;
}
function rub(curLST, curBT, curDETAIL, curLG){
	// Fonction de redirection dans le Flash à la rubrique désirée
//	setvar("/:rubcallext", curLST+"@"+curBT+"@"+curDETAIL+"@"+curLG);
	window.location = "edito.asp?h=1&curLST="+curLST+"&curBT="+curBT+"&curDETAIL="+curDETAIL+"&curLG="+curLG;
}
function typeagenda(id, t){
//	setvar("/:mcagenda.annucall", "agenda.asp?v=" + id + "&t=" + t);
	// EX : agenda.asp?f=1599
	window.location = "agenda.asp?f="+id+"&t="+t;
}
function ficheagenda(id){
	//history.asp?h=1&curLST=1&curBT=2&curDETAIL=1&curLG=
//	setvar("/:mcagenda.detailcall", "ficheagenda.asp?f=" + id);
//	setvar("/:mcdossier.detailcall", "ficheagenda.asp?f=" + id);
	window.location = "?f="+id;
}
function ficheagenda(id,type){
	//history.asp?h=1&curLST=1&curBT=2&curDETAIL=1&curLG=
//	setvar("/:mcagenda.detailcall", "ficheagenda.asp?f=" + id);
//	setvar("/:mcdossier.detailcall", "ficheagenda.asp?f=" + id);
	window.location = "?f="+id;
}
function ficheannu(id){
//	setvar("/:mcannuaire.detailcall", "ficheannu.asp?f=" + id);
	window.location = "?f="+id;
}
//javascript:fichelink('C101', 0)
function fichelink(id, lvl){
//	startAscenceur();
////	setvar("/:mcedito.annupersolevel", lvl);
////	setvar("/:mcedito.linkcall", id);
//	setvar("/:annupersolevel", lvl);
//	setvar("/:linkcall", id);
	window.location = "annuaire.asp?f="+id+"&l="+lvl;
}
function espagenda(id){
//	startAscenceur();
//	setvar("/:mcedito.agendacall", id);
//	setvar("/:agendacall", id);
	// EX : javascript:espagenda(1512); => agenda.asp?f=1512
	window.location = "agenda.asp?f="+id;
}
function espdossier(id){
//	startAscenceur();
//	setvar("/:dossiercall", id);
	// EX : dossiers.asp?f=1605
	window.location = "dossiers.asp?f="+id;
}
function espactumairie(id){
//	startAscenceur();
//	setvar("/:actumairiecall", id);
	window.location = "actu_mairie.asp?f="+id;
}
function esplien(id){
//	startAscenceur();
//	setvar("/:mcedito.liencall", id);
//	setvar("/:liencall", id);
	// EX : javascript:esplien(42); => On ne peut pas diriger vers une transversale précise car l'affichage est prévu pour en afficher plusieurs !
	window.location = "publications_et_liens.asp";//?f="+id;
}
function esppub(id, tf){
//	startAscenceur();
//	setvar("/:mcedito.pubcall", id);
//	setvar("/:pubcall", id);
	// EX : javascript:esppub(1040); => On ne peut pas diriger vers une transversale précise car l'affichage est prévu pour en afficher plusieurs !
	window.location = "publications_et_liens.asp";//?f="+id;
}
function publication(id){
	var winstyle = "location=no";
	winstyle += ", toolbar=no";
	winstyle += ", scrollbars=yes";
	winstyle += ", menubar=no";
	winstyle += ", width=500";
	winstyle += ", height=500";
	window.open("publication.asp?id=" + id, "pub" + id, winstyle);
}
function portail(){
	window.open("http://www.sarlat.fr", "_self");
}

