/* -------------------------------------------------------------------------------------------
	File : jscript/include_general.js
	Abstract : ensemble de fonctions générales

	Fonctions définies :
	Author : Emmanuel PODVIN
	Modifications :
		- 30/09/04 - Emmanuel PODVIN - 
   ------------------------------------------------------------------------------------------- */

/* //--------------------------------------------------------------------
//	Function name :
//	Description		: 
//	input 			:
//  return value 	: 
//  global variables:
//--------------------------------------------------------------------
*/

//--DEBUT CODE INTERDIRE SELECTION TEXTE-->
function disableselect(e){
return false
}
function reEnable(){
return true
}        
// Désactivation de la sélection du texte
//if IE4+
//document.onselectstart=new Function ("return false")
//if NS6
if (window.sidebar){
document.onmousedown=disableselect
document.onclick=reEnable
}
//-- Fin CODE Interdire Selection texte                                                      
 
// Affichage d'un texte sur la barre de statut
function DisplayStatusTitle(aTitle)
{
	window.status=aTitle;
    return true;
}

// 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 : TrouveElement
//	Description		:  permet de retrouver un objet depuis son ID
//		La syntaxe d'appel de cette fonction est
//   var element = trouveelement(idf);
//	input 			:  idf est l'identificateur (ID) d'un élément. 
//  return value 	:
//  global variables:
//--------------------------------------------------------------------
*/
 function TrouveElement(idf) 
 { 
    if (document.getElementById) 
	{
      return document.getElementById(idf);
    } 
	else if (document.all) 
	{
      return document.all[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) { 			 
 	if (TrouveElement(idf))
	{
	    if (document.getElementById) {
	      return document.getElementById(idf).style;
	    } else if (document.all) {
	      return document.all[idf].style;
	    } else if (document.layers) {
	      return document.layers[idf];
	    } else { return null; }
	}
	else			
	{
		return null;
	}
  }
/* //--------------------------------------------------------------------
//	Function name : getstyle
//	Description		:  permet de récupérer le contenu de style d'un élément
//		La syntaxe d'appel de cette fonction est
//   var astyle = getstyle(idf,prop);
//	input 			:  idf est l'identificateur (ID) d'un élément. 
//  return value 	:
//  global variables:
//--------------------------------------------------------------------
*/
 function GetStyle(idf,prop) 
 { 			 
	var objet_style= TrouveStyle(idf);
	if(objet_style) 
	    return(eval('objet_style.'+prop)); 
	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 : BlinkItem
//	Description		: Permet de faire clignoter un item nb_blink fois
//	input 			:
//		idf : Id d'un objet
//		blink_time : durée en ms du clignotement
//		activate_blink: à mettre à true pour activation (false pour stopper le clignotement)
//		blink_color : couleur de highlight lors du clignotement (on touche rien si == null)
//		
//  return value 	:
//		aucune
//  global variables:       
//	exemple :
//		BlinkItem("ObjectId",3); // clignote 3 fois
//--------------------------------------------------------------------
*/
  var aBlinkItem=null;		// item à faire clignoter	
  var aBlinkTimer=null;		// timer de BlinkByInterval
  var aBlinkInterval=1000; // temps entre deux clignotements				   
  var aBlinkIsHidden=true; //statut on/off du clignotement
  var aBlinkColorProperty=null; // valeur de aBlinkItem avant clignotement
//  var aBlinkHighLightColor="#EEA730"; // 
  
  function BlinkItem(idf, blink_time, activate_blink, blink_color)
  {					
//  		alert(idf+";"+blink_time+";"+activate_blink);
		
  		if (idf != null) //Initialisation
		{
			aBlinkItem=idf;	  
			aBlinkIsHidden=true;
			aBlinkHighLightColor=blink_color;
		}
		if (activate_blink)
		{								
			// On active le clignotement
			aBlinkInterval=setInterval("BlinkByInterval()",aBlinkInterval/2); 
			// On active le temps de clignotement...
			setTimeout("BlinkItem(null,0,false)",blink_time); 				  
			
			// si la couleur de clignotement n'est pas nulle, on la positionne
			if (aBlinkHighLightColor != null)
			{
			    aBlinkColorProperty = GetStyle(aBlinkItem,"color");
				ChangeStyle(aBlinkItem,"color",aBlinkHighLightColor);
			}
		}												   
		else
		{
			// On stoppe le clignotement
			clearInterval(aBlinkInterval);
			// on remet l'item à visible
			ChangeStyle(aBlinkItem,"visibility","visible") ;
			if (aBlinkColorProperty != null)
			{
				ChangeStyle(aBlinkItem,"color",aBlinkColorProperty) ;
			}
		}
  }		   
  
/* //--------------------------------------------------------------------
//	Function name : BlinkByInterval
//	Description		: Gère le clignotement activé par timer...
//	input 			:
//  return value 	:
//		aucune
//  global variables:       								  
//		- aBlinkIsHidden
//		- aBlinkItem
//	exemple :
//--------------------------------------------------------------------
*/
  function BlinkByInterval()
  {								
  	if (aBlinkIsHidden) 
		ChangeStyle(aBlinkItem,"visibility","hidden") ;
	else
		ChangeStyle(aBlinkItem,"visibility","visible") ;
	aBlinkIsHidden = !aBlinkIsHidden;
  }
  
/* //--------------------------------------------------------------------
//	Function name : OpenNewWindow
//	Description		: Permet d'ouvrir une page dans une nouvelle fenêtre 
//	input 			:
//  return value 	:
//		aucune
//  global variables:       
//	exemple :
//--------------------------------------------------------------------
*/
function OpenNewWindow(HRef,WindowName)
{					
	window.open(HRef,WindowName, "");
}

