/* -------------------------------------------------------------------------------------------

	File : scripts.js

	Abstract : ensemble de fonctions générales



	Fonctions définies :

	Author : Emmanuel PODVIN 

	Modifications :

		- 30/09/04 - Emmanuel PODVIN - emmanuel.podvin@intersel.org	

		- 07/06/05 - EPO - evol de TrouveStyle qui ne protégeait pas lorsque les input étaient vides



Commentaires à l'usage des RECOPIEURS ET/OU CURIEUX :

----------------------------------

	Ce code peut être réutilisé comme bon vous semble et à vos risques et périls...

    En vous remerciant de me faire éventuellement bénéficier de vos améliorations.

   ------------------------------------------------------------------------------------------- */



/* //--------------------------------------------------------------------

//	Function name :

//	Description		: 

//	input 			:

//  return value 	: 

//  global variables:

//--------------------------------------------------------------------

*/

// décryptage simple d'une adresse mail (anti-spam)

var a, s, n;

function Decrypt(s) 

{

	r='';

    for(i=0;i<s.length;i++)

    {

    	n=s.charCodeAt(i); 

        if (n>=8364) 

        {

    	    n = 128;

	    } 

	    r += String.fromCharCode( n - 3 ); 

    }

    return r;

}           

// affichage d'une adresse mail perturbante pour les moteurs spamm

// input:

//	- name : partie login d'une adresse mail

//	- domain : partie domaine d'une adresse mail (name@domain)

//	- args : argument de mailto (permet d'ajouter un CC, etc...

//	- Text : texte à afficher pour le lien

// Output :

//		sortie html : <a href='mailto:name@domain args> Text </a>

// où name, domain args Text sont les variables d'input

function print_mail(name,domain,args,Text)

{

	a ="pdlowr=";

	m='@';d=unescape(m);

	var nom = name;

	var domaine = domain;

	var aro = nom + d + domaine;

	document.write('<a href="');

    document.write(Decrypt(a));

    document.write(aro);

    document.write(args);

    document.write('">');  

	document.write(Text + '</a>');    

}



/* //--------------------------------------------------------------------

//	Function name : TrouveObjet

//	Description		:  permet de retrouver un objet depuis son ID

//		La syntaxe d'appel de cette fonction est

//   var objet = trouveobjet(idf);

//	input 			:  idf est l'identificateur (ID) d'un élément. 

//  return value 	:  objet associé à idf

//  global variables:

//--------------------------------------------------------------------

*/

 function TrouveObjet(idf) { 

 

 doc=document;

 

    if (doc.getElementById && doc.getElementById(idf)) 	//IE

	{

	  	return doc.getElementById(idf);

    } 

	else if (doc.all && doc.all[idf]) //Mozilla

	{

      return doc.all[idf];

    } 

	else if (doc.layers) 

	{

      return doc.layers[idf];

    } 

	else 

	{ 

		return null; 

	}

  }

  

/* //--------------------------------------------------------------------

//	Function name : TrouveStyle

//	Description		:  permet de retrouver un objet depuis son ID

//		La syntaxe d'appel de cette fonction est

//   var objet_style = trouvestyle(idf);

//	input 			:  idf est l'identificateur (ID) d'un élément. 

//  return value 	:

//  global variables:

//--------------------------------------------------------------------

*/

 function TrouveStyle(idf) 

 { 

  	doc=document;

 

    if (doc.getElementById && doc.getElementById(idf)) 	//IE

	{

	  	return doc.getElementById(idf).style;

    } 

	else if (doc.all && doc.all[idf]) //Mozilla

	{

      return doc.all[idf].style;

    } 

	else if (doc.layers) 

	{

      return doc.layers[idf];

    } 

	else 

	{ 

		return null; 

	}



  }

		

  

  

/* //--------------------------------------------------------------------

//	Function name : ChangeStyle

//	Description		: Permet de modifier le style d'un objet

//	input 			:

//		idf : Id d'un objet

//		prop : nom d'une propriété

//	Dans le cas des noms composés comme background-image, la règle est de

     — mettre en majuscule la lettre après un tiret,

     — et de supprimer le(s) tiret(s).

//  return value 	:

//		aucune

//  global variables:       

//	exemple :

//		ChangeStyle("aaa","visibility","hidden");

//		ChangeStyle("aaa","border","5px ridge green"); 

//      ChangeStyle("aaa","backgroundImage","url(image_bis.jpg)") 

//--------------------------------------------------------------------

*/

  function ChangeStyle(idf,prop,value) 

  {

     var objet_style= TrouveStyle(idf);

     if(objet_style) 

        eval( 'objet_style.' + prop + '="' + value+ '"' );

  }



/* //--------------------------------------------------------------------

//	Function name : ChangeInnerHtml

//	Description		: Permet de remplacer le texte html intérieur d'un objet

//	input 			:

//		idf : Id d'un objet

//		text : texte à remplacer

//  return value 	:

//		aucune

//  global variables:       

//	exemple :

//      ChangeInnerHtml("aaa","<a href='#'>coucou</a>") 

//--------------------------------------------------------------------

*/

  function ChangeInnerHtml(idf,text) 

  {

     var objet= TrouveObjet(idf);

     if(objet) 

        eval( 'objet.innerHTML="' + text+ '"' );

  }



  /* //--------------------------------------------------------------------

//	Function name : ChangeClass

//	Description		: Permet de modifier la classe d'un objet

//	input 			:

//		idf : Id d'un objet

//		aclass : nom d'une classe

//  return value 	:

//		aucune

//  global variables:       

//	exemple :

//		ChangeClass("aaa","mynewclass");

//--------------------------------------------------------------------

*/

  function ChangeClass(idf,aclass) 

  {

     var objet= TrouveObjet(idf);

     if(objet)

	 	objet.className = aclass;

  }



  

var Tableau_Images = new Array();	

  

function CreateImage(imageid,imageoff,imageon)

{

	Tableau_Images[imageid+'on']=new Image();

	Tableau_Images[imageid+'off']=new Image();

	Tableau_Images[imageid+'on'].src=imageon;

	Tableau_Images[imageid+'off'].src=imageoff;	  

}



function  SetImageOn(imageid)

{	

	img=TrouveObjet(imageid);

	img.src=Tableau_Images[imageid+'on'].src;

} 

function  SetImageOff(imageid)

{

	img=TrouveObjet(imageid);

	img.src=Tableau_Images[imageid+'off'].src;

}

/* //--------------------------------------------------------------------

//	Function name : Replace

//	Description		: effectue le remplacement des occurences d'une chaine de caractères par une autre

//	input 			: 										  

//		-str : une string

//		- find : une chaine à rechercher

//		- rep : la chaine de remplacement

//  return value 	: 					 

//		la chaine résultante après remplacement

//  global variables:						   

//	exemple : myString = Replace("coucou les amis et coucou les copains", "coucou", "Salut");

//		myString == "Salut les amis et Salut les copains"

//--------------------------------------------------------------------

*/							

function Replace(str, find, rep)

{

    var res = str;

    var i = 0;	   

    while(true)

    {

        i = res.indexOf(find, i);

        if (i == -1) break;

        res = res.substr(0, i) + rep + res.substr(i + find.length);

        i += rep.length;

    }		   

    return res;

}	



  function DoLoginSubmit(aObj)

  {							 

  	aObj.submit();

  }

//verification avant envoi pour authentification
function verif_auth()
{
	var msg="";
	var verif=true;
	var login=document.loginform.mylogin.value;
	var mdp=document.loginform.mypass.value;

	if ( (mdp==null) || (mdp=="") )
	{
		msg=msg +('Votre mot de passe est manquant\n');	 
		document.loginform.mypass.focus();
		verif=false;
	}
	else 
	{
		document.loginform.mypass.value='';
		document.loginform.mdphidden.value=hex_md5(mdp);// on encode le password avant envoi...
	}
		

	
	if (verif==false)
	{
		alert(msg);
	}
	if (verif==true) return true; else return false;
}

