/*Contenu de la bibliotheque

	operations sur champs : 
		Rechercherchamp 	: fonction qui recherche un champs dans un formulaire et qui lui affecte une valeur
		RechercherChampACocher  : fonction qui recherche un champs a cocher dans un formulaire 
		RechercherChampValeur	: fonction qui recherche un champs dans un formulaire et qui retourne sa valeur
		banInit			: affichage d'une valeur en dynamique
		Majuscule		: convertit un champ en majuscule 
		FirstMajuscule(champ)   : convertit un champs avec seulement la premiere lettre en majuscule
		Nombreformate		: convertir un nombre formaté (séparateur de milliers)
		NombreNonFormate	: convertit un nombre utilisable ds des calcul(formaté sans virgule, sans espace)
		Testerlongueur(champs,longueur,message,mode) : teste si un champs est d'une longueur donnée et retourne false si ce n'est pas le cas 
		InitialisationChamps(champs,valeur)	     : fonction qui initialise un champs a une valeur donnée et lui donne le focus
	
	operations sur fenetre :
		OuvrirFenetre 	  	: ouvre un fenetre de largeur et hauteur données	
	
	operations sur Navigateur :
		RechercheNavigateur 	: recherche le type de navigateur
		VersionControl		: recherche la version du navigateur 
	
	operation sur date
		isValidDate		: verifie le format d'une date jj/mm/aaaa
	
	operation sur Nombre		
		IsEntier		: verifie le format des entiers en passant la valeur
		IsEntierC		: verifie le format des entiers en passant le contrôle
		IsReel 			: verifie le format des réels en passant la valeur
		IsReelC			: verifie le format des réels en passant le contrôle
		
	
	gestion des cookies             : Assure la gestion des cookies
		SetCookie (name, value) : Ecriture du cookie
		GetCookie (name)	: lecture du cookie
	divers
		Imprimer		: Impression de la page
		Verifiernumcompte	: verifie la validité d'un numéro de compte
		VerifierTelephone	: verifie si un téléphone a bien une longueur de 10
		mouseOut 		: chargement de classe css au passage de souris 
		mouseOver		: chargement de classe css au passage de souris		
		
*/


//changement d'image
function changeImage(imgName,imgObj)
{
	document.images[imgName].src = eval(imgObj+".src");	
}



/*
	NombreFormate(champs)
		but : formate un nombre en séparant par milier
 		parametre
 			-->champs : le champs sous form d'objet
 		exemple : NombreFormate(this) : 130000 => 130 000
*/
function NombreFormate(champs)
{
	valeurnombre=champs.value
	var data2 = "";
	var jsArray = new Array() ;
	var i=0;
	var str;
	var pos;
	var strBefore = "";
	var strAfter = "";
	var Formated_Str;
	var v_length = 0;

	data2 = ""+valeurnombre;
	v_length = data2.length;

	// Find the point 
	var found = false;
	var car = "";
	for(i = 0; i < v_length; i++)
	{
		car = data2.substring(i,i+1);
		if(car == '.' || car== ',')
		{
			strBefore = data2.substring(0,i);
			strAfter = data2.substring(i+1,v_length);
			found = true;
			break;
		}
	}
	i = 0;
	// parses the sring 
	if(found==true && strBefore != "")
	{
		data2 = strBefore;
	}
	Nb_Car = data2.length;	
	if(Nb_Car > 3)
	{
		while(Nb_Car > 0)
		{
			if(Nb_Car < 3) 
			{
				str = data2.substring(0, Nb_Car)
			}
			else
			{
				str = data2.substring((Nb_Car - 3), Nb_Car)
			}
			jsArray[i] = str;
			i++;
			Nb_Car = Nb_Car - str.length;
		}
		Formated_Str = "";
		for(j = i-1; j>= 0 ; j--) 
		{
			if(jsArray[j] != "")
			{
				if(Formated_Str == "")
				{
					Formated_Str = jsArray[j]
				}
				else
				{
					Formated_Str = Formated_Str + ' ' + jsArray[j];
				}
			}
		}
		if(found)
		{
			Formated_Str = Formated_Str + '.' + strAfter;
		}
	}
	else
	{
		Formated_Str = valeurnombre;
	}
			
	champs.value=Formated_Str		
	
}
	
/*
	NombreNonFormate(champs)
		but : formate un nombre utilisable en calcul (avec des points , sans espaces)
 		parametre
 			-->champs : le champs sous form d'objet
 		exemple : NombreNonFormate(this) : 130 000 => 130000
*/	
	function NombreNonFormate(champs)
	{
		valeurchamps=champs.value
		//remplace les "," par des "." --> en js...les decimaux sont avec des virgules	 	
	 	valeurchamps=valeurchamps.replace(",",".")
	 	
	 	//transform la chaine en tableau	 	
	 	capitalTab =valeurchamps.split("");
	 	//init de res
	 	NonFormated_Str=""; 	 
	 	longueur=capitalTab.length
	 	sortie=0
	 	i=0;
	 	while (sortie !=1)
		 	{
				//si le champs est a une longueur=0, on sort
				if (longueur==0)
				{
					sortie=1
				}
				// si le premier caractere n'est pas un nombre et que la longueur est non vide
				//==> on a saisi une chaine : sortir + message erreur
				if (isNaN(capitalTab[0]) == true  && longueur !=0)
				{
					sortie=1
					return(false); 
				}
				//quand on est arrivé a la fin...condition de sortie levée
				if (i==longueur)
				{
					sortie=1
				}
				//on teste le caractere en cours
				aj=capitalTab[i];
				//quand on a un point...on le garde
				
	 			//on ne garde que le caractre de type nombre : de 0 à 9
	 			if (aj=="0" || aj=="1" ||aj=="2" || aj=="3" || aj=="4" || aj=="5" || aj=="6" || aj=="7" ||aj=="8" || aj=="9" || aj == "." )
	 			{
	 				//on concatene le nombre courant au nombre resultat
	 				
	 				NonFormated_Str=NonFormated_Str.concat(aj);
	 			}
					
			i++;
			}
		
		//on convertit la chaine en nombre
		NonFormated_Str=Number(NonFormated_Str);	 	
 		// si le nombre = 0 ==> on avait rien saisie...on laisse le champs a vide
 		if (NonFormated_Str !=0)
 		{
 			champs.value=NonFormated_Str
 		}
 		return(true);
		
	}
/*
	fonction qui initialise un champs a une valeur donnée et lui donne le focus
*/
	function InitialisationChamps(champs,valeur)
	{
		
		champs.value=valeur
		champs.focus()
	}
	
/*
	RechercherChampACocher
		but : fonction qui coche un champs passer en parametre 
			parametre1 : nom  du formulaire
			parametre2 : nom  du champs à chercher
			parametre3 : on coche ou on decoche la case
		retour: aucun
*/
	
	function RechercherChampACocher(nomformulaire,nomchamps,valeur)
	{
		var formName = nomformulaire;
		var lform = document.forms[formName];
		for (i=0;i<lform.elements.length;i++) 
		{
			if (lform.elements[i].name == nomchamps) 
			{
				if (valeur ==1)
					lform.elements[i].checked = true
				else
					lform.elements[i].checked = false
			}
		}
	}
	
/*
	RechercherChampValeur
		but : fonction qui recherche un champs dans un formulaire et qui lui retourne la  valeur qu'il contient 
			parametre1 : nom  du formulaire
			parametre2 : nom  du champs à chercher
		retour: aucun
*/
	
	function RechercherChampValeur(nomformulaire,nomchamps)
	{
		var formName = nomformulaire;
		var lform = document.forms[formName];
		for (i=0;i<lform.elements.length;i++) 
		{
			if (lform.elements[i].name == nomchamps) 
			{
				return (lform.elements[i].value)
			}
		}
	}
	
/*
	RechercherChamp
		but : fonction qui recherche un champs dans un formulaire et qui lui affecte une valeur 
			parametre1 : nom  du formulaire
			parametre2 : nom  du champs à chercher
			parametre3 : valeur affecté au champs
		retour: aucun
*/
	
	function RechercherChamp(nomformulaire,nomchamps,valeur)
	{
		var formName = nomformulaire;
		var lform = document.forms[formName];
		for (i=0;i<lform.elements.length;i++) 
		{
			if (lform.elements[i].name == nomchamps) 
			{
				lform.elements[i].value = valeur;																					
			}
		}
	}

/*
	teste si un champs est d'une longueur donnée et retourne false si ce n'est pas le cas
	parametre1 : champs a tester
	parametre2 : longueur du champs
	parametre3 : message a afficher en cas d'erreur
	parametre4 : on teste la longeur par égalité (mode 0 ou null), par différence(1),par superiorité(2),par infériorité(3)
	exemple : TesterLongueur(document.form.S_NOMUSU,0,"Le champs [Nom] ne peut être vide",0)
			=> on va tester si la longueur du champs est egal a 0 , si oui ==> message
	exemple : TesterLongueur(document.form.S_CODEPOSTAL,5,"La longueur du  champs [Code postal] ne peut être différent de 5",1)
			=> on va tester si la longueur du champs est différente de 5, si oui ==erreur
*/
function TesterLongueur(champs,longueur,message,mode)
{
	// on teste une égalité : la longueur du champs donné etre égale a longueur
	if ((mode == null) || (mode == 0))
	{
		if (champs.value.length == longueur)
		{
			alert(message)
			champs.focus()
			return false
		}
	}
	//on teste une difference : la longueur du champs donné doit etre différente de longueur
	if (mode ==1)
	{
		if (champs.value.length != longueur)
		{
			alert(message)			
			champs.focus()
			champs.value=""
			return false
		}
	}
	//on teste une supériorité : la longueur du champs donné doit etre superieure a longueur
	if (mode ==2)
	{
		if (champs.value.length > longueur)
		{
			alert(message)			
			champs.focus()
			champs.value=""
			return false
		}
	}
	//on teste une infériorité : la longueur du champs donné doit etre inferieure a longueur
	if (mode ==3)
	{
		if (champs.value.length < longueur)
		{
			alert(message)			
			champs.focus()
			champs.value=""
			return false
		}
	}
	return true
}	
	
	

/*
	OPERATION SUR FENETRE
*/
/*
	OuvrirFenetre
		but : ouvre un fenetre des hauteur et de largeur données
			parametre1 : adresse de la fenetre
			parametre2 : hauteur de la fenetre
			parametre3 : largeur de la fenetre
			parametre4 : positionnement fenêtre (top)
			parametre5 : positionnement fenêtre (left)
			parametre6 : positionnement du scrollbar 0=no ou 1=yes
		retour : aucun	
*/

var Fenetre = null;

function OuvrirFenetre(adresse,nom,hauteur,largeur, top, left, scroll,menubar)	
{
	FermerFenetre();
	//si top et left sont non spécifiés: affichage en haut a droite
	if (top == "" ) 
		var top=0;
	if (left == "") 
		var left=screen.width-largeur-10;
	if (scroll == "" ) scroll = 0;		
	Fenetre=open(adresse,nom,"top="+top+",left="+left+",width="+largeur+",height="+hauteur+",toolbar=0,directories=0,menubar="+ menubar +",resizable=0,status=0,resizable=1,scrollbars="+scroll);
	Fenetre.focus();
}


function FermerFenetre()
{
	if (Fenetre != null)
	{
		if(!Fenetre.closed)
			Fenetre.close();
	}
}


/*
	OPERATION SUR LAYER
*/

/*
	Majuscule
		but : Permet de convertir un champ en majuscule
			
*/

function Majuscule(champ)
{
   champ.value=champ.value.toUpperCase();
   return true;
}

/*
	FirstMajuscule(champ)
		but : Permet de convertir un champ en avec la premiere lettre en majuscule
		paremetre : le champs sous forme d'objet	
*/


function CocherDecocher(nomformulaire,nomchamps) 
{
	if(RechercherChampValeur(nomformulaire,nomchamps)=="1")
		RechercherChamp(nomformulaire,nomchamps,0);
	else
		RechercherChamp(nomformulaire,nomchamps,1);
}

function CocherDecocherAffecter(NomFormulaire,ChampsTeste,ChampsTeste2,NomChampsCocher,NomChamps) 
{
	if((RechercherChampValeur(NomFormulaire,ChampsTeste)=="") && (RechercherChampValeur(NomFormulaire,ChampsTeste2)==""))
		$Valeur=0;
	else
		$Valeur=1;
	RechercherChampACocher(NomFormulaire,NomChampsCocher,$Valeur);
	RechercherChamp(NomFormulaire,NomChamps,$Valeur);
	
}
	
function FirstMajuscule(champ)
{
	PremiereLettre=champ.value.substring(0, 1);
	PremiereLettre=PremiereLettre.toUpperCase();
	LongueurMot = champ.value.length;
	FinMot = champ.value.substring(1, LongueurMot);
	MotFormate= PremiereLettre.concat(FinMot)		  
	champ.value=MotFormate	   
	return true;
}


/*
	OPERATION SUR DATE
*/
/*
	isValidDate
		but : Vérifier le bon format d'une date (jj/mm/aaaa)
		retour: true ou false	
*/
function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function isValidDate(candiDate) 
{
	if (candiDate.length !=0 ) {
		if (candiDate.length == 10) 
		{
			if (candiDate.substring(2,3) == "-" && candiDate.substring(5,6) == "-")
			{
				var date  = candiDate.substring(0,2);
				var month = candiDate.substring(3,5);
				var year  = candiDate.substring(6,10);
		
				var test = new Date(year,month-1,date);
		
				if (year == y2k(test.getYear()) && (month-1 == test.getMonth()) && (date == test.getDate())) 
				{
					return true;
				}	
				else 
				{
					alert( "Le format de date est valide, mais la date ne l'est pas" );
					return false;
				}
			}
			else 
			{
				alert( "Le séparateur utilisé est invalide" );
				return false;
			}
		}
		else 
		{
			alert( "Le format de date est invalide." );
			return false;
		}
	}
	return false;
}

function IsEntier(variable) 
{

        if (variable != "") {
        	if (variable.indexOf(",") != -1 || variable.indexOf(".")!= -1) {
        		alert(variable + " n'est pas un entier valide");
	        	return false;
        	}
        	
        	else {
        		if (isNaN(variable)) {	
	                	alert(variable + " n'est pas un entier valide");
         	       		return false;
        		}
        	}
        }
    return true;
}

function IsEntierC(field) {

	var valeur = field.value;       
        if (valeur != "") {
        	if (valeur.indexOf(",") != -1 || valeur.indexOf(".")!= -1) {
        		alert('Valeur entière non valide');
        		field.value="";
        		field.focus();
	        	return false;
        	} else {
        		if (isNaN(valeur)) {	
	        		alert('Valeur entière non valide');
				field.value="";
				field.focus();
         	       		return false;
        		}
        	}
        }
    	return true;
}

function IsReel(nombre) 
{
        if (nombre != '' && nombre != 0)
        {
          	if (isNaN(nombre)) {	
              		alert(nombre + " n'est pas un nombre valide");
              		return false;
           	}
        }
    	return true;
}

function IsReelC(field) {
	var valeur = field.value;
       	if (valeur != '' && valeur != 0) {
          	if (isNaN(valeur)) {	
              		alert(valeur + " n'est pas un nombre valide");
              		field.value="";
              		field.focus();
              		return false;
           	}
        }
    	return true;
}

function IsValidMail(ChampMail) 
{ 
	var Mail = ChampMail.value;
	if ((Mail.indexOf("@")>=0)&&(Mail.indexOf(".")>=0))  
		return true 
	else 
	{ 
		alert("Adresse mail invalide"); 
		return false 
	} 
} 



//impression du document et repassage en mode normal
function Imprimer()
{
	if (window.print)
	{ 
	        window.focus()
		window.print()   
	}
  	
}

/*fonction qui vérifie la validée d'un numéro de compte*/
/*
	parametre :numéro de compte
	retour true ou false
*/
function VerifierNumCompte(numeroCompte) 
{
	/*vérification du numéro de compte*/
		LongueurCompte = numeroCompte.value.length
		if (LongueurCompte != 11 )
      		{
			alert("Le numéro de compte n'est pas renseigné complètement");
		 	numeroCompte.focus();
		 	return false;
      		} 
      		else
      		{
        		numCompte = numeroCompte.value.substr(0,9);  
	 		reste = numCompte - (parseInt(numCompte/97)*97);
	 		if (reste != numeroCompte.value.substr(9,2))
	 		{
		  		alert(" Incohérence entre le numéro de compte et la clé ");
		  		numeroCompte.focus();
		  		return false;
         		}
      		}
}

/*fonction qui vérifie la longueur d'un numéro de téléphone*/
/*
	parametre :téléphone
	retour true ou false
*/
function VerifierTelephone(Telephone)
{
	longueur= Telephone.value.length
	
	if ((longueur != 10) && (longueur !=0))
	{
		alert ("Un numéro de téléphone doit comporter 10 caractères exactement");
		Telephone.focus()
		return false
	}
}




//chargement des classe au passage de souris
//parametre1 : objet
//parametre2 : nom de la classe dans la feuille de style
function MouseOut (obj,classe) {
	
	obj.className = classe;
}


function MouseOver (obj,classe){
     
         obj.className = classe;
}


//gestion du menu
function Chargement() 
{
  cache();  
}




//fonctions d'affichage d'un menu
function montre(id) 
{
	//cache();	
	document.getElementById(id).style.display="block";
	    	
}

//fonctions d'effacement d'un menu
function cache() 
{
	for(i=1;i<=5;i++) 
	{
		with(document.getElementById("smenu"+i).style) 
		{
			display="none";
		}
	}
}


//affichage d'un couche dont on a passer comme valeur de display : STYLE=display:"none"
//si la couche est affichée on la cache sinon on l'affiche
function AfficheCouche($Id,$Numero,$NombreTotal)
{
	for($i=1;$i<=$NombreTotal;$i++) 
	{	
		var Couche = document.getElementById($Id+$i);
		Couche.style.display = 'none'; 			
	}
	var Couche = document.getElementById($Id+$Numero);
	if (Couche.style.display == 'none')
    		Couche.style.display = ''; 
	else
		Couche.style.display = 'none'; 
	
	//document.getElementById($Id+$Numero).style.display="block";
}


/*function montre(id) 
{
	var d = document.getElementById(id);
	for (var i = 1; i<=10; i++) {
		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
	}
	
	if (d) {d.style.display='block';}
}*/

//fonctions de validation d'une page
function Valider (formulaire, nomChamp, valeur, nomChamp1, valeur1,nomChamp2, valeur2,nomChamp3, valeur3,nomChamp4, valeur4)
{    
       	RechercherChamp (formulaire.name, nomChamp, valeur); 	
   	RechercherChamp (formulaire.name, nomChamp1, valeur1);  
   	RechercherChamp (formulaire.name, nomChamp2, valeur2);
   	RechercherChamp (formulaire.name, nomChamp3, valeur3);
   	RechercherChamp (formulaire.name, nomChamp4, valeur4);     
   	formulaire.submit();
	return true;
}

//fonction pour inserer un text dans un textarea
function AddText(startTag,defaultText,endTag,NomTextArea) 
{
   with(document.form)
   {
      if (NomTextArea.createTextRange) 
      {
         var text;
         NomTextArea.focus(NomTextArea.caretPos);
         NomTextArea.caretPos = document.selection.createRange().duplicate();
         if(NomTextArea.caretPos.text.length>0)
         {
            //gère les espace de fin de sélection. Un double-click sélectionne le mot
            //+ un espace qu'on ne souhaite pas forcément...
            var sel = NomTextArea.caretPos.text;
            var fin = '';
            while(sel.substring(sel.length-1, sel.length)==' ')
            {
               sel = sel.substring(0, sel.length-1)
               fin += ' ';
            }
            NomTextArea.caretPos.text = startTag + sel + endTag + fin;
         }
         else
            NomTextArea.caretPos.text = startTag+defaultText+endTag;
      }
      else NomTextArea.value += startTag+defaultText+endTag;
   }
}
	
//fonction de gestion d'un diaporama
var ImageCourante=1;
var ImageBoutique 	= 0;
var ImagePartenaire 	= 0;
var ImageSemaine 	= 1;
var ImageSponsor 	= 1;
var ImagePhotothequeMini = 0;


 // Rotation des images
function rotate(NomDiaporama,NomImage,NombreImage) 
{
	switch(NomImage)
	{
		case "ImagePartenaire":
			ImagePartenaire = (ImagePartenaire == NombreImage) ? 1 : ImagePartenaire+1;
			NomDiaporama.src = document.getElementById(NomImage+ImagePartenaire).value;
			break;
		case "ImageBoutique":
			ImageBoutique = (ImageBoutique == NombreImage) ? 1 : ImageBoutique+1;
			NomDiaporama.src = document.getElementById(NomImage+ImageBoutique).value;
			break;
		default:
			break;
	}
	
	setTimeout(function() { rotate(NomDiaporama,NomImage,NombreImage) }, 2000);
}


//Défilement pour un diaporama: on avance d'une photo avec plusieurs photos affichées en même temps
//Argument1	: Nom du diaporama : exemple  : document.images.Semaine
//Argument2	: Nom des images du diaporama
//Argument3	: Nom de l'image miniature 	: pour faire défiler les images miniatures
//Argument4	: Nom de l'image réelle		: pour stocker le nom de la photo ( et son adresse)pour l'ouvrir ensuite
//Argument5	: Nombre totale d'image
//Argument6	: Nombre d'images affichées en même temps
function DiaporamaPhotothequeNext(NomDiaporama,NomMiniature,NomImageReelle,NomAffiche,NombreImage,NombreImageVisible)
{
	if( parseInt(ImagePhotothequeMini) + parseInt(NombreImageVisible) < NombreImage)
	{
		
		ImagePhotothequeMini = ImagePhotothequeMini+1;	
		for ( i=0; i< NombreImageVisible ; i++)
		{				
			
			Courant = ImagePhotothequeMini+i;
			document.images[NomDiaporama+i].src = document.getElementById(NomMiniature+Courant).value; //Compatible Mozilla
			//document.getElementById(NomDiaporama+i).src = document.getElementById(NomMiniature+Courant).value; //non Compatible mozilla
			document.getElementById(NomAffiche+i).value = document.getElementById(NomImageReelle+Courant).value;
				 
		}
	}
}

//Défilement pour un diaporama: on recule d'une photo avec plusieurs photos affichées en même temps
//Argument1	: Nom du diaporama : exemple  : document.images.Semaine
//Argument2	: Nom des images du diaporama
//Argument3	: Nom de l'image miniature 	: pour faire défiler les images miniatures
//Argument4	: Nom de l'image réelle		: pour stocker le nom de la photo ( et son adresse)pour l'ouvrir ensuite
//Argument5	: Nombre totale d'image
//Argument6	: Nombre d'images affichées en même temps
function DiaporamaPhotothequePrevious(NomDiaporama,NomMiniature,NomImageReelle,NomAffiche,NombreImage,NombreImageVisible)
{	
	
	if( ImagePhotothequeMini > 0)
	{
		ImagePhotothequeMini = ImagePhotothequeMini-1;		
		for ( i=0; i< NombreImageVisible ; i++)
		{			
			Courant = ImagePhotothequeMini+i;
			//document.getElementById(NomDiaporama+i).src=document.getElementById(NomMiniature+Courant).value;
			document.images[NomDiaporama+i].src	    = document.getElementById(NomMiniature+Courant).value;	
			document.getElementById(NomAffiche+i).value = document.getElementById(NomImageReelle+Courant).value;
		}
	}
}	

//Défilement pour un diaporama: on revient à la premiere photo avec plusieurs photos affichées en même temps
//Argument1	: Nom du diaporama : exemple  : document.images.Semaine
//Argument2	: Nom des images du diaporama
//Argument3	: Nom de l'image miniature 	: pour faire défiler les images miniatures
//Argument4	: Nom de l'image réelle		: pour stocker le nom de la photo ( et son adresse)pour l'ouvrir ensuite
//Argument5	: Nombre totale d'image
//Argument6	: Nombre d'images affichées en même temps
function DiaporamaPhotothequeFirst(NomDiaporama,NomMiniature,NomImageReelle,NomAffiche,NombreImage,NombreImageVisible)
{ 
	ImagePhotothequeMini=1;
	DiaporamaPhotothequePrevious(NomDiaporama,NomMiniature,NomImageReelle,NomAffiche,NombreImage,NombreImageVisible);	
}

//Défilement pour un diaporama: on va à la dernière photo avec plusieurs photos affichées en même temps
//Argument1	: Nom du diaporama : exemple  : document.images.Semaine
//Argument2	: Nom des images du diaporama
//Argument3	: Nom de l'image miniature 	: pour faire défiler les images miniatures
//Argument4	: Nom de l'image réelle		: pour stocker le nom de la photo ( et son adresse)pour l'ouvrir ensuite
//Argument5	: Nombre totale d'image
//Argument6	: Nombre d'images affichées en même temps
function DiaporamaPhotothequeLast(NomDiaporama,NomMiniature,NomImageReelle,NomAffiche,NombreImage,NombreImageVisible)
{ 
	ImagePhotothequeMini=NombreImage-NombreImageVisible-1;
	DiaporamaPhotothequeNext(NomDiaporama,NomMiniature,NomImageReelle,NomAffiche,NombreImage,NombreImageVisible);		
}

//Défilement pour un diaporama: on avance d'une photo
//Argument1	: Nom du diaporama : exemple  : document.images.Semaine
//Argument2	: Nom des images du diaporama
//Argument3	: Nombre d'images dans le diaporama
function next(NomDiaporama,NomImage,NombreImage)
{	
	
	switch(NomImage)
	{
		case "ImageSponsor":
			ImageCourante = ImageSponsor;
			break;
		case "ImageSemaine":
			ImageCourante = ImageSemaine;
			break;
		default:
			break;
	}
	
			
	if(ImageCourante < NombreImage)
	{	
		ImageCourante = (ImageCourante == NombreImage) ? 1 : ImageCourante+1;
		NomDiaporama.src = document.getElementById(NomImage+ImageCourante).value;
		switch(NomImage)
		{
			case "ImageSponsor":
				ImageSponsor = ImageCourante;
				break;
			case "ImageSemaine":
				ImageSemaine = ImageCourante;
				break;
			default:
				break;
		}
				
	}
	else
	{		
		first(NomDiaporama,NomImage,NombreImage);
	}	
}

//Défilement pour un diaporama: on recule d'une photo
//Argument1	: Nom du diaporama : exemple  : document.images.Semaine
//Argument2	: Nom des images du diaporama
//Argument3	: Nombre d'images dans le diaporama
function previous(NomDiaporama,NomImage,NombreImage)
{ 
	
	switch(NomImage)
	{
		case "ImageSponsor":
			ImageCourante = ImageSponsor;
			break;
		case "ImageSemaine":
			ImageCourante = ImageSemaine;
			break;
		default:
			break;
	}	
	if((ImageCourante-1) > 0)
	{
		NomDiaporama.src = document.getElementById(NomImage+(ImageCourante-1)).value;
		ImageCourante= --ImageCourante;
		switch(NomImage)
		{
			case "ImageSponsor":
				ImageSponsor = ImageCourante;
				break;
			case "ImageSemaine":
				ImageSemaine = ImageCourante;
				break;
			default:
				break;
		}	
	}
	else
	{
		last(NomDiaporama,NomImage,NombreImage);
	}
}


	


//Défilement pour un diaporama: premiere photo
//Argument1	: Nom du diaporama : exemple  : document.images.Semaine
//Argument2	: Nom des images du diaporama
//Argument3	: Nombre d'images dans le diaporama
function first(NomDiaporama,NomImage,NombreImage)
{ 
	switch(NomImage)
	{
		case "ImageSponsor":
			ImageSponsor = 1;
			break;
		case "ImageSemaine":
			ImageSemaine = 1;
			break;
		default:
			break;
	}	
	ImageCourante=1;
	NomDiaporama.src = document.getElementById(NomImage+ImageCourante).value;	
}
//Défilement pour un diaporama: dernière photo
//Argument1	: Nom du diaporama : exemple  : document.images.Semaine
//Argument2	: Nom des images du diaporama
//Argument3	: Nombre d'images dans le diaporama
function last(NomDiaporama,NomImage,NombreImage)
{	
	switch(NomImage)
	{
		case "ImageSponsor":
			ImageCourante = NombreImage;
			break;
		case "ImageSemaine":
			ImageCourante = NombreImage;
			break;
		default:
			break;
	}	
	ImageCourante=NombreImage;
	NomDiaporama.src = document.getElementById(NomImage+NombreImage).value;
}


function AfficherImage(NomImage,NomChampsCache,Indice)
{
	NomImage.src = document.getElementById(NomChampsCache+Indice).value;	
}


function BoiteValidation($Chaine)
{
	if (confirm($Chaine)) 
		return true;  
  	else 
    		return false;
}

/*
	SetCookie (nom du cookie, valeur)
		but : Ecriture d'un cookie sur le disque 
		parametre : nom , valeur, date_expiration, domaine, secure
		ex : SetCookie("URL",httpServeur,date_exp,myDomain);	
*/
var pathname	= location.pathname;
var myDomain	= pathname.substring(0,pathname.lastIndexOf('/')) +'/';
var secure	= true;
	
function SetCookie (name, value,date_exp,pathname,myDomain,secure) 
{
	var argv=SetCookie.arguments;
	var argc=SetCookie.arguments.length;
	var expires=(argc > 2) ? argv[2] : null;
	var path=(argc > 3) ? argv[3] : null;
	var domain=(argc > 4) ? argv[4] : null;
	var secure=(argc > 5) ? argv[5] : false;
	document.cookie=name+"="+escape(value)+
		((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
		((path==null) ? "" : ("; path="+path))+
		((domain==null) ? "" : ("; domain="+domain))+
		((secure==true) ? "; secure" : "");

		
	
}


function GetCookieVal(offset) 
{
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1)
      		endstr=document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name) 
{
	var arg		= name+"=";
	var alen	= arg.length;
	var clen	= document.cookie.length;
	var i=0;
	while (i<clen) 
	{
		var j=i+alen;
		if (document.cookie.substring(i, j)==arg)
		{
                       return GetCookieVal (j);
                }
                i=document.cookie.indexOf(" ",i)+1;
                if (i==0) 
                	break;
        }
	return null;
}

//Gestion du rafraichissement du live
var Intervalle=20;
var Debut;
var Maintenant; 
var SecondesRestantes=0; 
var SecondesPassees=0; 
function Timer()
{ 
	Debut=new Date(); 
	Debut=Debut.getTime(); 
	Decompte();
} 
function Decompte() 
{ 
	Maintenant		= new Date(); 
	Maintenant		= Maintenant.getTime(); 
	SecondesPassees		= (Maintenant-Debut)/1000; 
	SecondesRestantes		= Math.round(Intervalle-SecondesPassees); 
	if (Intervalle>=SecondesPassees) 
	{ 
		var timer = setTimeout("Decompte()",1000); 
		window.status="Page rafraichie dans " + SecondesRestantes + " secondes" 
	} 
	else 
	{ 
		clearTimeout(timer) 
		window.location.reload(true) 
	} 
}

function EchangeListe(ListeSource,ListeDestination,NombreListe,SupprimerDansSource) 
{
	var Source 	= document.getElementById(ListeSource);
	var Destination = document.getElementById(ListeDestination);
	LongueurSource = Source.length ;
	//Création de l'Item dans la liste destination
	for ( i=0; i<LongueurSource ; i++)
	{
        	if (Source.options[i].selected == true ) 
        	{
	            LongueurDestination = Destination.length;
	            Destination.options[LongueurDestination]= new Option(Source.options[i].text,Source.options[i].value);
	        }
    	}
    	if(SupprimerDansSource==true)
    	{
	    	//Suppression des items sélectionnés dans la liste sources
		for ( i = (LongueurSource -1); i>=0; i--)
		{
			if (Source.options[i].selected == true )
			{
			    Source.options[i] = null;
			}
		}
	}
	//Sélection des items dans les listes(sinon non reconnu dans les variables postées)
    	SelectionElement(NombreListe,'Destination',1);
    	SelectionElement(1,'Source',0)  
	
}
	
function SelectionElement(NombreListe,ListeDestination,IsNumero)
{
	//Selection de tous les items(sinon par reconnu dans la variables Postée)
    	for (var i = 1; i<=NombreListe; i++) 
    	{
		
		var Destination;
		if(IsNumero==1)
			Destination = document.getElementById(ListeDestination+i+'[]');
		else
			Destination = document.getElementById(ListeDestination+'[]');
		LongueurDestination = Destination.length;
		for ( j=0; j<LongueurDestination ; j++)
		{
			 Destination.options[j].selected = true;
		}
	}
}

