
var PF = 
{
	//-----------------------------------------------------
	//                                       creer requette 
	creerRequete : function()
	{
		var requette = null; 
		
		if(window.XMLHttpRequest) // Firefox et autres
		requette = new XMLHttpRequest(); 
		else if(window.ActiveXObject){ // Internet Explorer 
		try 
		{
			requette = new ActiveXObject("Msxml2.XMLHTTP");
		} 
			catch (e) 
			{
				requette = new ActiveXObject("Microsoft.XMLHTTP");
			}
		}
		else { // XMLHttpRequest non support&eacute; par le navigateur 
			alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
			requette = false; 
		} 
		return requette
	},
	
	//-----------------------------------------------------
	//                                        requetteAjax
	 requetteAjax : function(url, id, fonction, methode, param, aLaSuite)
	{
		
	
		var requette = this.creerRequete();
		//alert('entre : ' + requette);
		if(id != null)
		{	
			var cible = document.getElementById(id);
			//alert(id);
			//alert(cible)
			// On d&eacute;fini ce qu'on va faire quand on aura la r&eacute;ponse
			requette.onreadystatechange = function()
			{
				// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
				//alert(requette.readyState +"  " +requette.status + ' cible : ' +id );
				if(requette.readyState == 4 && requette.status == 200)
				{
					//BOGUE : le systeme ne trouve plus la cible...
					//donc on refait un ciblage. (à chercher pourquoi...)
					cible = PF.$(id);
					cible.innerHTML =  requette.responseText;
					requette = null;
					//alert( "apres : " + 'id : ' + cible.id +  cible.innerHTML);
					if(fonction != null)
					{
						total = fonction.length;
						
						for(i=0; i < total; i++)
						{
							eval(fonction[i]);
						}
					}
					
					var allscript = cible.getElementsByTagName('script');
					
					for(var i=0;i< allscript.length;i++)
					{
					 // alert(allscript[i]);
					  eval(allscript[i].text);
					}
					
					
				//	alert('ok');
					//document.write(listeTableJS.toSource());
				}
				else
				{
					
					if(url != 'script/php/recupListe.php' && aLaSuite != true)
					{
					// alert(cible);
						if(PF.$('animationDeChargement') == null)
						{
							var image = new Image();
							image.src = 'images/skin/defaut/chargement.gif';
							var posX = ((cible.offsetWidth - image.width)/2);
							var posY = ((cible.offsetHeight - image.height)/2);
			
							cible.innerHTML =  '<img id="animationDeChargement" src="'+image.src+'" alt="traitement en cours..." />';
							
							PF.$('animationDeChargement').style.display = 'block';
							PF.$('animationDeChargement').style.position = 'relative';
							
							PF.$('animationDeChargement').style.left  = posX+"px";
							PF.$('animationDeChargement').style.top = posY+"px";
						}
					}
				}
			}
		}
		methode = (methode == null) ? 'GET' : methode ;
		requette.open(methode,url,true);	
		
		if(methode == 'post')
		{
			// si POST envoi du header et des paramètres
			requette.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
			requette.send(param);
			//alert("param2 : " + param);
		}
		else
		{
			requette.send(null);
		}
		
		
	},
	
	//-----------------------------------------------------
	//                                        requetteDeGroupe
	 requetteDeGroupe : function(url, id, fonction, methode, param, aLaSuite)
	{
		
		
		var requette = this.creerRequete();
		if(id != null)
		{	
			var cible = document.getElementById(id);
			//alert("cible " + cible);
			// On d&eacute;fini ce qu'on va faire quand on aura la r&eacute;ponse
			requette.onreadystatechange = function()
			{
				// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
				if(requette.readyState == 4 && requette.status == 200)
				{
					
					cible.innerHTML +=  requette.responseText;
					//alert('requette : ' + requette.responseText);
					
					if(fonction != null)
					{
						total = fonction.length;
						
						for(i=0; i < total; i++)
						{
							eval(fonction[i]);
						}
					}
					
					var allscript = cible.getElementsByTagName('script');
					
					for(var i=0;i< allscript.length;i++)
					{
					  eval(allscript[i].text);
					}
					//alert(listeTableJS);
					//document.write(listeTableJS.toSource());
				}
				else
				{
					
				}
			}
		}
	
		methode = (methode == null) ? 'GET' : methode ;
		requette.open(methode,url,true);	
		
		if(methode == 'post')
		{
			// si POST envoi du header et des paramètres
			requette.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
			requette.send(param);
			//alert("param2 : " + param);
		}
		else
		{
			requette.send(null);
		}
		
		
	},//requetteDeGroupe


	//-----------------------------------------------------
	//                                        creer element 
	creerElement : function(element, valeur, attribut, valeurAttribut,attribut2, valeurAttribut2,attribut3, valeurAttribut3, attribut4, valeurAttribut4,sortie, scriptFin )
	{
	
		//on creer l'element souhaiter
		var creationFenetre = document.createElement(element);
		
		if(attribut != '')
		{
			//on insere l'attribut dans l'element creer
			var fenetreAttribut = document.createAttribute(attribut);
			fenetreAttribut.nodeValue = valeurAttribut;
			creationFenetre.setAttributeNode(fenetreAttribut);
		}
		
		if(attribut2 != '')
		{
			//on insere l'attribut dans l'element creer
			var fenetreAttribut2 = document.createAttribute(attribut2);
			fenetreAttribut2.nodeValue = valeurAttribut2;
			creationFenetre.setAttributeNode(fenetreAttribut2);
		}
		
		if(attribut3 != '')
		{
			//on insere l'attribut dans l'element creer
			var fenetreAttribut3 = document.createAttribute(attribut3);
			fenetreAttribut3.nodeValue = valeurAttribut3;
			creationFenetre.setAttributeNode(fenetreAttribut3);
		}
		
		if(attribut4 != '')
		{
			//on insere l'attribut dans l'element creer
			var fenetreAttribut4 = document.createAttribute(attribut4);
			fenetreAttribut4.nodeValue = valeurAttribut4;
			creationFenetre.setAttributeNode(fenetreAttribut4);
		}
		
		if(valeur != '')
		{
			var montexte = document.createTextNode(valeur);
			//fenetre.appendChild(montexte);
		}
		//on genere la div dans la div bureau
		var bureau = document.getElementById(sortie);

		bureau.appendChild(creationFenetre);
		
		creationFenetre.innerHTML = valeur;

		
	},
	
	//-------------------------------------------------------------------------
	//                                                         ajouterEcouteur
	ajouterEcouteur : function(id, evenement, fonction)
	{
	  
	   var cible = this.$(a[0].id);

	 
	  // Internet Explorer a ses propres method d'ecouteur
	  //pour cela on doit tester sur le navigateur utiliser
	  //prend en charge la method standard qu'est addEventListener
	  //si ce n'est pas le cas on est sur Internet Explorer
	  //alors on utilise sa method qui est attachEvent
	   if (cible.addEventListener) 
	   {
		  cible.addEventListener(evenement,fonction, false);
		  
		} 
		else if (cible.attachEvent) 
		{
		  cible.attachEvent("on"+evenement, fonction);
		}//if (cible.addEventListener) 

	},
	
	//-------------------------------------------------------------------------
	//                                                       			     $
	$ : function(id)
	{
		return document.getElementById(id);
	},
	
	
	
	
	//-------------------------------------------------------------------------
	//															  search_array
	search_array : function(array, recherche, dossier)
	{
	
		recherche = this.trim(recherche);
		var total = array.length ;
		var cible = this.$(dossier);
		var li = cible.getElementsByTagName('li');
		//alert(li[0]);s
		for(i = 0; i < total; i++)
		{
			
			var text = array[i]['valeur'].toString() ;
			var maReg = new RegExp( recherche, "gi") ;
			
			if ( text.search( maReg ) == -1 )
			{
				
				//alert('efface -- text: ' + text + 'recherche : ' + recherche )
				li[i].style.display="none";
				
			}
			else
			{
				li[i].style.display="block";
			}
			
		}
	}, 
	
	//-------------------------------------------------------------------------
	//													     chercherRemplacer
	
	chercherRemplacer : function ( text, stringToFind, stringRemplacement )
	{
		var text = text.toString() ;
		var maReg = new RegExp( stringToFind, "gi") ;
		var resultat = text.replace( maReg, stringRemplacement ) ;
		 
		
		return resultat ;
	},
	
	//-------------------------------------------------------------------------
	//													          rechercheAJAX
	
	rechercheAJAX : function ( text, id)
	{
		this.requetteAjax ('http://fr.phenixcreation.com/include/recherche.php?recherche='+text, id)
	},//rechercheAJAX
	
	//-------------------------------------------------------------------------
	//													surlignerLeMotRechercher
	
	surlignerLeMotRechercher : function ( recherche, idCible, classe )
	{
		var cible = this.$(idCible);
		var contenu = cible.innerHTML;
		var nouveauContenu = this.chercherRemplacer(contenu, recherche, '<span class="'+classe+'">'+recherche+'</span>');

		cible.innerHTML = nouveauContenu;
	},//surlignerLeMotRechercher
	
	//-------------------------------------------------------------------------
	//															       filtrer
	
	filtrer : function (chaine)
	{
		chaine = (chaine == 'Phénix Store') ? 'PhénixStore' : chaine ;
	
		var caracteres = new Array ('[éèêëÉÈÊË]+','[àâäÂÄ]+','[îïÎÏ]+','@[ûùüÛÜ]+','[ôöÔÖ]+','[ç]+','[ ]+','[^a-zA-Z0-9_-]+');
		var remplacer = new Array ('e','a','i','u','o','c','_','');
		var text = chaine;
		total = caracteres.length;
		for(i = 0 ; i < total; i++)
		{
			text = this.chercherRemplacer(text, caracteres[i], remplacer[i]);
		}
			//alert(text.toLowerCase())
		return text.toLowerCase();
	},
	
	//-------------------------------------------------------------------------
	//															         trim
	
	trim : function( str, charlist ) 
	{
		// http://kevin.vanzonneveld.net
		// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
		// +   improved by: mdsjack (http://www.mdsjack.bo.it)
		// +   improved by: Alexander Ermolaev (http://snippets.dzone.com/user/AlexanderErmolaev)
		// +      input by: Erkekjetter
		// +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
		// +      input by: DxGx
		// +   improved by: Steven Levithan (http://blog.stevenlevithan.com)
		// *     example 1: trim('    Kevin van Zonneveld    ');
		// *     returns 1: 'Kevin van Zonneveld'
		// *     example 2: trim('Hello World', 'Hdle');
		// *     returns 2: 'o Wor'
	 
		var whitespace;
		
		if (!charlist) {
			whitespace = ' \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000';
		} else {
			whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '\$1');
		}
	  
		for (var i = 0; i < str.length; i++) {
			if (whitespace.indexOf(str.charAt(i)) === -1) {
				str = str.substring(i);
				break;
			}
		}
		for (i = str.length - 1; i >= 0; i--) {
			if (whitespace.indexOf(str.charAt(i)) === -1) {
				str = str.substring(0, i + 1);
				break;
			}
		}
		return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
	},
	
	//-----------------------------------------------------
	//									 		 strrpos
	strrpos : function( haystack, needle, offset)
	{
		// http://kevin.vanzonneveld.net
		// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
		// +   bugfixed by: Onno Marsman
		// *     example 1: strrpos('Kevin van Zonneveld', 'e');
		// *     returns 1: 16
		
		var i = (haystack+'').lastIndexOf( needle, offset ); // returns -1
		return i >= 0 ? i : false;
	},
	
	//-----------------------------------------------------
	//									 		 strpos
	
	strpos : function ( haystack, needle, offset)
	{
		// http://kevin.vanzonneveld.net
		// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
		// +   improved by: Onno Marsman    
		// *     example 1: strpos('Kevin van Zonneveld', 'e', 5);
		// *     returns 1: 14
	 
		var i = (haystack+'').indexOf( needle, offset ); 
		return i===-1 ? false : i;
	},
	
	
	//-----------------------------------------------------
	//									 		 creerNoeud
	creerNoeud : function(element, idParent, attribue)
	{
		 var parent = document.getElementById(idParent);
		 var noeud = document.createElement(element);
		 parent.appendChild(noeud);
		 
		 var total = attribue.length;
		 
		 
		 for(i = 0; i < total; i++)
		 {
         	noeud.setAttribute(attribue[i]['attribue'],attribue[i]['valeur']);
		 }
		 return noeud;
	},
	
	//-----------------------------------------------------
	//									 	changerLaTaille
	changerLaTaille : function(id, width, height)
	{
		 var cible = this.$(id);
		 cible.style.position="absolute";
		 cible.style.width = width+'px';
		 cible.style.height = height+'px';
		 //alert(width);
	},//changerLaTaille
	
	//-----------------------------------------------------
	//									 		 positionner
	positionner : function(id, top, left, position)
	{
		
		 var cible = this.$(id);
		 cible.style.position=position;
		 cible.style.top = top+'px';
		 cible.style.left = left+'px';
	},//positionner
	
	//-----------------------------------------------------
	//									 		 obtenirCentre
	obtenirCentre : function(cible, conteneur)
	{
	
		var largeurCible = cible.offsetWidth;
		var hauteurCible = cible.offsetHeight;
		var largeurConteneur =(conteneur.clientWidth);
		var hauteurConteneur = (conteneur.clientHeight);
		var top = (hauteurConteneur / 2 ) - ( hauteurCible / 2);
		var left = (largeurConteneur / 2) - (largeurCible / 2);
		
		var tab = new Array(top, left);
		return tab;
	},//obtenirCentre
	
	//-----------------------------------------------------
	//									 		 					 class
	tourverLaClass : function(idParent, name)
	{
		var parent = this.$(idParent);
		var li =  parent.getElementsByTagName('li');
		var totale = li.length;
		
		//alert(li[0] + ' -- ' + totale)
		
		for(i = 0; i < totale; i++)
		{
			cible = li[i].getAttribute("class" )
			//pour ie : .className
			
			if(cible == name)
			{
				return li[i];
				 			
			}
		}
	},
	
	//-----------------------------------------------------
	//                                    modifierLeContenu 
    modifierLeContenu : function(cible, contenu)
	{
	  	var conteneur = this.$(cible);
		conteneur.innerHTML =contenu;		
	},//ajouterALaSuite
	
	//-----------------------------------------------------
	//                                	     supprimerNoeud 
    supprimerNoeud : function(enfant)
	{
	  	var enfant = this.$(enfant);
		var parent = enfant.parentNode;
		var disparu = parent.removeChild(enfant);
		return disparu;
	},//supprimerNoeud
	
	//-----------------------------------------------------
	//                                   ajouterALaSuite 
    ajouterALaSuite : function(cible, contenu)
	{
	  	var conteneur = this.$(cible);
		conteneur.innerHTML +=contenu;		
	}//ajouterALaSuite
	
	
	

	
}

function verifier(cible)
{
	var txt = cible.value;
	if(txt == 'Votre courriel')
	{
		cible.value='';	
	}
}
