var delai=5;
var offre_en_cours=0;
var lst_offres = new Array();
// local
//var urlA="http://localhost/internet/xml/flux.php";
// cds
//var urlA="http://cds.groupehelice.fr/refonte/xml/flux.php";
//prod
var urlA="http://www.groupehelice.fr/xml/flux.php"
//var urlA="http://srv029:81/xml/flux.php";

function mainLecture(filtre){
	$('loader-recrutement').show();
    if($("lists")) $("lists").update('');
	else if($("offres-emploi-accueil")) $("offres-emploi-accueil").update('');
	
	new Ajax.Request(urlA,{ method: 'post',
			onSuccess: function(transport) {
				var ListeAnnonces = LireXMLAnnonces(transport.responseXML)
				if($("lstRegion")) RemplirListe(ListeAnnonces, filtre);
				metsEnPlaceAnnonces(ListeAnnonces, filtre);
				$('loader-recrutement').hide();
			}}
			);
							
	if($("lstRegion")) $("lstRegion").value = filtre;
}

function Recherche(filtre, mots_cles){
	$('loader-recrutement').show();
	if (mots_cles.indexOf("&lancer",0) >=0 ) mots_cles = mots_cles.substring(0, mots_cles.indexOf("&lancer",0));

	new Ajax.Request(urlA,{ method: 'post', 	
									onSuccess: function(transport) {
										var ListeAnnonces = LireXMLAnnonces(transport.responseXML,mots_cles)
										metsEnPlaceAnnonces(ListeAnnonces, filtre, mots_cles);
										$('loader-recrutement').hide();
									}}
								 	);
}



function UneAnnonce(un_titre,une_date,un_lieu, une_description,un_demandeur,une_reference, une_agence, un_contrat, une_competence, une_mission, un_niveau, une_renumeration, un_id, une_region) {
	this.titre=un_titre;
	this.deb=une_date;
	this.lieu=un_lieu;
	this.description = une_description;
	this.demandeur=un_demandeur;
	this.ref=une_reference;
	this.agence=une_agence;
	this.contrat = un_contrat;
	this.competence=une_competence;
	this.mission=une_mission;
	this.niveau = un_niveau;
	this.remuneration=une_renumeration; 
	this.id = un_id;
	this.region=une_region;
}
 
 // Transformation XML en tableau
function LireXMLAnnonces(xmlDoc, mots_cles) {
  var ListeAnnon = xmlDoc.getElementsByTagName('ListeAnnonces');
  var annonces = new Array();
  for (var j=0; j < ListeAnnon.length; ++j) {
      var Liste = ListeAnnon[j].getElementsByTagName('annonce');
      for (var i=0; i < Liste.length; ++i) {
         if ( Liste[i].getElementsByTagName('recurrent')[0].firstChild != null && Liste[i].getElementsByTagName('recurrent')[0].firstChild.data == "non" ){
              //traitement d'une annonce
              var descComplet="";
							var desc="";
              var comp ="";
              var rem ="";
              var titre ="";
              var dte = "";
              var lieu ="";
              var dem = "";
              var ref = "";
              var age = "";
              var con = "";
              var mis ="";
              var niv ="";
              var id = "";
              
              if (Liste[i].getElementsByTagName('intitule')[0].firstChild!= null)   
                titre = Liste[i].getElementsByTagName('intitule')[0].firstChild.data;
              if (Liste[i].getElementsByTagName('date_debut')[0].firstChild!= null)  
                dte = Liste[i].getElementsByTagName('date_debut')[0].firstChild.data;
              if (Liste[i].getElementsByTagName('region')[0].firstChild!= null)  
                region = Liste[i].getElementsByTagName('region')[0].firstChild.data;
              if (Liste[i].getElementsByTagName('lieu')[0].firstChild!= null)  
                lieu = Liste[i].getElementsByTagName('lieu')[0].firstChild.data;				
              if (Liste[i].getElementsByTagName('contexte')[0].firstChild != null) {
                  descComplet = Liste[i].getElementsByTagName('contexte')[0].firstChild.nodeValue;
                  desc = descComplet.substring(0,180)+" ..." ;
                 }
               
              if (Liste[i].getElementsByTagName('demandeur')[0].firstChild!= null)  
                dem = Liste[i].getElementsByTagName('demandeur')[0].firstChild.data;
              if (Liste[i].getElementsByTagName('reference')[0].firstChild!= null)   
                ref = Liste[i].getElementsByTagName('reference')[0].firstChild.data;
              if (Liste[i].getElementsByTagName('agence')[0].firstChild != null)  
                age = Liste[i].getElementsByTagName('agence')[0].firstChild.data;
              if (Liste[i].getElementsByTagName('type_contrat')[0].firstChild!= null)   
                con = Liste[i].getElementsByTagName('type_contrat')[0].firstChild.data;
              if ( Liste[i].getElementsByTagName('competences')[0].firstChild != null) {
                   comp = Liste[i].getElementsByTagName('competences')[0].firstChild.data;
                }
              if (Liste[i].getElementsByTagName('mission')[0].firstChild!= null)   
                mis = Liste[i].getElementsByTagName('mission')[0].firstChild.data;
              if (Liste[i].getElementsByTagName('niveau_etudes')[0].firstChild!= null) 
                niv = Liste[i].getElementsByTagName('niveau_etudes')[0].firstChild.data;
              if (Liste[i].getElementsByTagName('salaire')[0].firstChild != null )
                    rem = Liste[i].getElementsByTagName('salaire')[0].firstChild.data;
              if (Liste[i].getElementsByTagName('id')[0].firstChild != null )
                    id = Liste[i].getElementsByTagName('id')[0].firstChild.data;
              
              if(mots_cles==null)
              {
              	//liste complète
	              annonces.push(new UneAnnonce(titre, dte,lieu,desc, dem, ref, age,con,comp,mis,niv,rem, id, region ));
							}
							else
							{
								//Liste filtrée par mots cles 
								var j=-1;
								var k=0;
								var mot="";
								var trouve  ;
								var offre;
								k= mots_cles.indexOf(" ",j+1);
								if (k==-1) k = mots_cles.length;
								do {
								  trouve = false;
								  mot = mots_cles.substring(j+1,k);
								  trouve = Comparer(descComplet, mot);
							    if (trouve == false ) trouve = Comparer(comp, mot);  
							    if (trouve == false ) trouve = Comparer(mis, mot);  
							    if (trouve == false ) trouve = Comparer(titre, mot); 
							    if (trouve == false ) trouve = Comparer(lieu, mot);
							    if (trouve == false ) trouve = Comparer(age, mot);
							    if (trouve == false ) trouve = Comparer(ref, mot);
							    if (trouve == false ) trouve = Comparer(dem, mot);
							    if (trouve == false ) trouve = Comparer(dte, mot);
							    if (trouve == false ) trouve = Comparer(rem, mot);
							    if (trouve == false ) trouve = Comparer(niv, mot);
								  if (trouve    == true )
										annonces.push(new UneAnnonce(titre, dte,lieu,desc, dem, ref, age,con,comp,mis,niv,rem, id )); 
	
								  j=k;
								  k= mots_cles.indexOf(" ",j+1);
								  if (k==-1) k = mots_cles.length;
								  if (j == mots_cles.length) trouve = true;														  
								} while (!trouve)
							}
          }
      }
    }
  return annonces;
}

function RemplirListe(ListeAnnonces ,filtre){
	var select = $("lstRegion");
	var element = $("lstRegion");
	element.update('');
	var option = document.createElement("option");
  var texte = document.createTextNode("Toutes");
  option.setAttribute('value',"Toutes");
  option.setAttribute('id',"Toutes");
	if (filtre =="Toutes") option.setAttribute('Selected',true);
  option.appendChild(texte);
	select.appendChild(option);
		
	var nouveau = true;
	for(var f=0; f<ListeAnnonces.length; ++f){		
	   // test si déja présent ou pas !
	   nouveau = true;
	   for (var i=0; i<f; ++i){
		if (ListeAnnonces[f].region == ListeAnnonces[i].region)  
				nouveau =  false ;
	   }
	   if (nouveau ){
        var option = document.createElement("option");
        var texte = document.createTextNode(ListeAnnonces[f].region);
        option.setAttribute('value',ListeAnnonces[f].region);
		if (filtre == ListeAnnonces[f].region) option.setAttribute('Selected',true);
        option.appendChild(texte);
	    select.appendChild(option);
		}
	}	
}		

function metsEnPlaceAnnonces(ListeAnnonces, filtre, mots_cles){
	// retire tous les enfants d'un élément
	if($("lists"))
	{
		var element = $("lists");
		element.update('');
		// mise en place des annonces
		var nouveauDl=document.createElement("DL");
		
		if (ListeAnnonces.length==0 ){
			$("lists").update("Aucune annonce trouvée !");
		}
		else
		{

		  for(var f=0; f<ListeAnnonces.length; ++f){
		   if  ( filtre == "Toutes" || filtre == ListeAnnonces[f].region ) {

				var nouveauDt=document.createElement("DT");
				nouveauDt.innerHTML=   ListeAnnonces[f].ref  +" - " + ListeAnnonces[f].lieu;   
				nouveauDl.appendChild(nouveauDt)
				
				nouveauDt=document.createElement("DT");
				var chain="";
				
				if(mots_cles!=null) chain+="offres-emploi/"; /* on vient de la recherche */
				// chain += "detail-offre.asp?typeAnnonce=Offre_urgente&Num="+ EnleverCarTotal(EnleverBlanc(ListeAnnonces[f].ref))+"&Id="+EnleverCar(EnleverBlanc(ListeAnnonces[f].id)+"&intitule="+EnleverCar(EnleverBlanc(ListeAnnonces[f].titre))  );
				chain += "detail-offre.php?id="+(ListeAnnonces[f].id)+"&idpartenaire=1&intitule="+(ListeAnnonces[f].titre).replace("'","&#146;");
				nouveauDt.innerHTML="<a href='"+chain+"'  title='Cliquez ici pour agrandir' >" + ListeAnnonces[f].titre +" </a>";      
				nouveauDl.appendChild(nouveauDt)
				
				var nouveauDd=document.createElement("DD");
				nouveauDd.innerHTML="<a href='"+chain+"'  title='Cliquez ici pour agrandir' >" +  EnleverCar(ListeAnnonces[f].mission).substring(0,200) +"... </a>";       
				nouveauDl.appendChild(nouveauDd)
			  }
		  }
		  $("lists").appendChild(nouveauDl);
	  }
  }
  else if($("detail-offre"))
  {
	/* page de détail d'une offre */
		var element = $("detail-offre");

		for(var f=0; f<ListeAnnonces.length; ++f){
			if(ListeAnnonces[f].ref == filtre) 
			{
				document.title=(ListeAnnonces[f].titre +" - GROUPE HELICE - emploi" );
				$("h1").innerHTML="Détail de l'offre <br>" + ListeAnnonces[f].titre;
				$("ariane").innerHTML+="Détail de l'offre " + ListeAnnonces[f].titre;
				$("region").innerHTML=ListeAnnonces[f].region;
				$("titre").innerHTML=ListeAnnonces[f].titre;
				$("ref").innerHTML=ListeAnnonces[f].ref;	
				$("date_offre").innerHTML=ListeAnnonces[f].deb;
				$("type_contrat").innerHTML=ListeAnnonces[f].contrat;
				$("remuneration").innerHTML="A définir selon expérience";
				$("avantages").innerHTML="Intéressement, Participation, PEE";				
				$("description").innerHTML=Retour_ligne(Mettre_en_liste(ListeAnnonces[f].mission));				
				$("competence").innerHTML=Retour_ligne(Mettre_en_liste(ListeAnnonces[f].competence));
				$("niveau").innerHTML=Retour_ligne(Mettre_en_liste2(ListeAnnonces[f].niveau));
				//$("infos_complementaires").value="";
				$("lieu").innerHTML=ListeAnnonces[f].lieu;
				
				var texte="";

				if (ListeAnnonces[f].anglais != null && ListeAnnonces[f].anglais.length >0 )
					texte += "Anglais "  + ListeAnnonces[f].anglais +" souhaité <br>";  
				  
				if (ListeAnnonces[f].description != null && ListeAnnonces[f].description.length >0 )
					texte += Retour_ligne(ListeAnnonces[f].description)  ;  
				$("infos_complementaires").innerHTML=texte;		
			}
		}
  }
  else if($("offres-emploi-accueil"))
  {
	// page d'accueil, le nombre max d'offres est affiché dans le filtre
		var element = $("offres-emploi-accueil");
		element.update('');
	
		
		if (ListeAnnonces.length==0 ){
			$("offres-emploi-accueil").update("Aucune annonce trouvée !");
		}
		else
		{

			var contenu	="";
			var fMax = filtre;
			if(filtre>ListeAnnonces.length) fMax = ListeAnnonces.length;
			
			var divid;
			var nouvellediv;
			var myhref;
			var nouveaulien;
			var contenulien;
			for(var f=0; f<fMax; ++f) {
				divid="offre-urgente-" + f;
				nouvellediv = Builder.node('div', {id: divid, className: 'offre-urgente'});

				$("offres-emploi-accueil").insert(nouvellediv);
				//myhref= "recrutement/offres-emploi/detail-offre.asp?typeAnnonce=Offre_urgente&Num="+ListeAnnonces[f].ref+"&Id="+ListeAnnonces[f].id+"&intitule='"+EnleverCarTotal(ListeAnnonces[f].titre) +"'";
				myhref= "recrutement/offres-emploi/detail-offre.php?id="+ListeAnnonces[f].id+"&idpartenaire=1&intitule='"+(ListeAnnonces[f].titre) +"'";
				//nouveaulien = Builder.node('a', {id: "a-" + divid, href: myhref, className:'annonce', title: EnleverCarTotal(ListeAnnonces[f].titre)});
				nouveaulien = Builder.node('a', {id: "a-" + divid, href: myhref, className:'annonce', title: (ListeAnnonces[f].titre)});
				$(divid).insert(nouveaulien);
				
				//contenulien = Builder.node('h3', RemettreCarTotal(ListeAnnonces[f].titre));
				contenulien = Builder.node('h3', RemettreCarTotal(ListeAnnonces[f].titre));
				$("a-" + divid).insert(contenulien);
				contenulien = Builder.node('span', ListeAnnonces[f].lieu);
				$("a-" + divid).insert(contenulien);
			}
			lst_offres = $$(".offre-urgente").toArray();
			$$(".offre-urgente").invoke("hide");
			$(lst_offres.first()).show();	
			offre_en_cours = 0;
			 
			new PeriodicalExecuter(nextoffres, delai);	
		}
		
		$('offres-emploi-accueil').show();
  }
}


function nextoffres()
{
	$(lst_offres[offre_en_cours]).hide();	
	offre_en_cours +=1;
	if(offre_en_cours >= lst_offres.length) offre_en_cours = 0;
	$(lst_offres[offre_en_cours]).show();
}

function Comparer(chaine, mot)
{
	var comparer= false;
	var chaine2= chaine;
	chaine2 = chaine2.replace(/é/g, "e");	
	chaine2 = chaine2.replace(/è/g, "e");
	chaine2 = chaine2.replace(/ê/g, "e");
	chaine2 = chaine2.replace(/à/g, "a");
	chaine2 = chaine2.replace(/ô/g, "o");
	chaine2 = chaine2.replace(/ï/g, "i");
	chaine2 = chaine2.replace(/î/g, "i");
	var mot2= mot;
	mot2 = mot2.replace(/é/g, "e");	
	mot2 = mot2.replace(/è/g, "e");
	mot2 = mot2.replace(/ê/g, "e");
	mot2 = mot2.replace(/à/g, "a");
	mot2 = mot2.replace(/ô/g, "o");
	mot2 = mot2.replace(/ï/g, "i");
	mot2 = mot2.replace(/î/g, "i");
	
	chaine= chaine.toUpperCase();
	mot= mot.toUpperCase();
	chaine2= chaine2.toUpperCase();
	mot2= mot2.toUpperCase();	
	
	// on enlève les mots trop courants
	if(mot=="DE" || mot =="D") comparer=false;
	else if(chaine.indexOf(mot,0) != -1 || chaine2.indexOf(mot2,0) != -1) comparer=true;	
	
	return comparer;
}

function EnleverBlanc(txt) {
  var aRemplacer = / /g;
  return txt.replace(aRemplacer, '_');  
}

function EnleverCarTotal(txt) {
	var aRemplacer = /'/g;
	return txt.replace (aRemplacer ,"6666666");
}

function EnleverCar(txt) {
var aRemplacer = /é/g;
txt = txt.replace (aRemplacer ,"&eacute;");
var aRemplacer = /\?/g;
txt = txt.replace (aRemplacer ,"&eacute;");
aRemplacer = /è/g;
txt = txt.replace (aRemplacer ,"&egrave;");
aRemplacer = /#233;/g;
txt = txt.replace (aRemplacer ,"eacute;"); 
aRemplacer = /--/g;
txt = txt.replace (aRemplacer ," ");
aRemplacer = /_ _/g;
txt = txt.replace (aRemplacer ," "); 
aRemplacer = /__/g;
txt = txt.replace (aRemplacer ," "); 
aRemplacer = /_ -/g;
txt = txt.replace (aRemplacer ," "); 
return txt;
}

function Retour_ligne (txt) { 
aRemplacer = / _ /g;
txt = txt.replace (aRemplacer ,"<br>"); 
 return txt;
}
function Mettre_en_liste (txt) {
var aRemplacer = /--/ ;
txt = txt.replace (aRemplacer ,"<li>");
aRemplacer = /--/g;
txt = txt.replace (aRemplacer ,"</li><li>");
if(txt.indexOf("<li>")  > -1) txt = "<ul>" + txt + "</li></ul>";
 return txt;
}

function Mettre_en_liste2 (txt) {
txt = "<ul><li>"+txt; 
aRemplacer = /,/g;
txt = txt.replace (aRemplacer ,"</li><li>");
txt = "</li>"+txt+"</ul>";
 return txt;
}

function RemettreCarTotal(txt) {
var aRemplacer = /\?/g;
txt = txt.replace (aRemplacer ,"&eacute;");
aRemplacer = /è/g;
txt = txt.replace (aRemplacer ,"&egrave;");
aRemplacer = /#233;/g;
txt = txt.replace (aRemplacer ,"eacute;"); 
aRemplacer = /44444444/g;
txt = txt.replace (aRemplacer ,"/"); 
aRemplacer = /55555555/g;
txt = txt.replace (aRemplacer ,"-");
aRemplacer = /6666666/g;
txt = txt.replace (aRemplacer ,"'");
aRemplacer = /_/g;
txt = txt.replace (aRemplacer ," ");
return txt;

}
