﻿var IDListe = '';
var IDDivListe = '';
var IDDescription = '';
var IDPanneauMessageErreur = '';
var IDPanneauMessageErreurACA = '';
var IDChampRecherche = '';
var IDBoutonOK = '';
var secs;
var IdCompteur = null;
var compteurEnMarche = false;
var delai = 1000;
var valeurRecherche = '';

if (typeof(Sys) !== "undefined"){ Sys.Application.notifyScriptLoaded();}

//Fonction appelee afin de declencher l appel du service web mais a rebours
function InitialisationCompteur(){
    ArreterCompteur();
    
    //Configuration de la duree du compteur en secondes
    secs = 1,5;
    DecalerRecherche();
}

//Fonction appelee pour arreter le compteur
function ArreterCompteur()
{
    if(compteurEnMarche){
        clearTimeout(IdCompteur);
    }
    compteurEnMarche = false;
}

//Fonction recursive appelee pour gerer le delai avant l'appel du service web
function DecalerRecherche(){
    if (secs==0)
    {
        //comme le delai a expire, nous arretons le compteur et appelons le service web AJAX
        ArreterCompteur();
        DeclencherAppelRecherche(valeurRecherche); 
    }
    else
    {
        secs = secs - 1;
        compteurEnMarche = true;
        //la methode sera ici rappelee dans 1 seconde
        IdCompteur = self.setTimeout("DecalerRecherche()", delai);
    }
}

//Methode appelee afin de rechercher un groupe via un service web en AJAX
//Methode principale appelee dans le code sur un evenement
function Recherche(valeurTb , idAutreControleMemeNiveau){
    valeurRecherche = valeurTb;
    IDChampRecherche = idAutreControleMemeNiveau;
    IDListe = RetournerIdentifiantCompletAvecUSRCTRL(idAutreControleMemeNiveau,'mLstGroupeEtDescription_lstGroupes');
    IDDivListe = RetournerIdentifiantCompletAvecUSRCTRL(idAutreControleMemeNiveau,'mLstGroupeEtDescription_pnlListeBox');
    IDDescription = RetournerIdentifiantCompletAvecUSRCTRL(idAutreControleMemeNiveau,'mLstGroupeEtDescription_lblDescriptionGroupe'); 
    IDPanneauMessageErreur = RetournerIdentifiantCompletAvecUSRCTRL(idAutreControleMemeNiveau,'usrMessages_pnErreur');
    IDPanneauMessageErreurACA = 'ctl00_PlaceHolderMain_usrMessages_pnMessage';
    IDBoutonOK = RetournerIdentifiantCompletAvecUSRCTRL(idAutreControleMemeNiveau,'mLstGroupeEtDescription_mBtnOk');
           
    //cacher les messages d erreur si present
    var objetMessageErreur = document.getElementById(IDPanneauMessageErreur);
    gererAffichageControle(objetMessageErreur,false,true);    
    var objetMessageErreurACA = document.getElementById(IDPanneauMessageErreurACA);
    gererAffichageControle(objetMessageErreurACA,false,true);    
        
    if(valeurTb.length >= 3)
        InitialisationCompteur(); 
        //DeclencherAppelRecherche(valeurRecherche); //appeler cette ligne au lieu de la precedente si on veut rechercher directement    
    else if(valeurTb.length == 0){
       var RsltElem = document.getElementById(IDListe);
       viderLaListe(RsltElem);
    }
}

//Methode appelant le service web pour la recherche de groupe
function DeclencherAppelRecherche(valeur)
{
    appcICLITransactionnel.RechercheGroupe.RechercherGroupe(valeur, GererRetourGroupe);
}

//Methode permettant d ajouter a un listbox un element
function AddItem(objListBox, strId, strText){
    var newOption = document.createElement('option');
    newOption.appendChild(document.createTextNode(strText));
    newOption.setAttribute('value', strId);
    //alert(newOption.text);
    objListBox.appendChild(newOption);
    }

//Methode permettant de vider un listbox
function viderLaListe(lb){
  for (var i=lb.options.length-1; i>=0; i--){
    lb.options[i] = null;
  }
  lb.selectedIndex = -1;
}

//methode permettant de reinitialiser le champ description
function viderLaDescription(idChampd){
    if(idChampd.firstChild != null){
        idChampd.firstChild.nodeValue=''
    }
}

//Methode gerant le retour de la recherche de groupe
function GererRetourGroupe(result, eventArgs)
{
    var objetListeResultats = ObtenirControleParID(IDListe);
    var objetDivListeResultats = ObtenirControleParID(IDDivListe);
    var objetDescription = ObtenirControleParID(IDDescription);
    var objetBoutonOk = ObtenirControleParID(IDBoutonOK)
    // les elements a afficher ont le format suivant "nogroupe|nom groupe|description groupe;nogroupe|nomgroupe...."
    viderLaListe(objetListeResultats);
    viderLaDescription(objetDescription);
    var lignes = result.split(';');
    
    if(lignes != null && lignes[0] != ''){
        gererAffichageControle(objetDivListeResultats,true);
        gererAffichageControle(objetBoutonOk,true);
        objetBoutonOk.classname = 'BoutonOkInactif';
        
        for(var i = 0 ; i< lignes.length ; i++){
            var lesElements = lignes[i].split('|');
            if(lesElements[0].length != 0){
                AddItem(objetListeResultats,lesElements[0] + "||" + lesElements[3] + "%%" + lesElements[2],lesElements[1]);      
            }  
        }    
    }
    else{
        if(IDChampRecherche.length != 0){
            //afficher l erreur ER003505 pas de groupes retournes
            var objetMessageErreur = document.getElementById(IDPanneauMessageErreur);
            gererAffichageControle(objetMessageErreur,true,true);  
            gererAffichageControle(objetDivListeResultats,false);
            gererAffichageControle(objetBoutonOk,false);
        }         
    } 
}

//Section pour la recherche avec le ListBox

function creerCookiePersistant(nom,valeur,nbJoursAvantExpiration)
{ 
 if (nbJoursAvantExpiration) {
    var date = new Date(); 
   date.setTime(date.getTime()+(nbJoursAvantExpiration*24*60*60*1000));
  var expires = "; expires="+date.toGMTString();
 }
 else var expires = "";
 document.cookie = nom+"="+escape(valeur)+expires+"; path=/";
  } 

function btnOk_Click()
{
  var numeroDuGroupeValeur = "";
  var nomDuGroupeValeur = "";
  var nomDuTypeGroupeValeur = "";
  var groupeTrouve = 0;
    
  if (IDListe == '')
  {
    return false;
  }
  var listbox = new Object();
  listbox = document.getElementById(IDListe);
  if (listbox == null)
  {
    return false;
  }
  for (var i=0; i<listbox.options.length; i++) 
  {
       var groupe = listbox.options[i];
       if (groupe.selected) 
       {
           numeroDuGroupeValeur = groupe.value.substring(0, groupe.value.indexOf("%%"));
           nomDuGroupeValeur = groupe.text;
           if(groupe.value.indexOf("@@") == -1)
           {
              nomDuTypeGroupeValeur = "";
           }
           else
           {
            nomDuTypeGroupeValeur = groupe.value.substring(groupe.value.indexOf("@@") + 2, groupe.value.length);
           }
           creerCookiePersistant("RechercheGroupe","NumeroDuGroupe="+numeroDuGroupeValeur+"&NomDuGroupe="+nomDuGroupeValeur+"&TypeDeGroupe="+nomDuTypeGroupeValeur,365);
           groupeTrouve = 1;
       }
   }
   if(groupeTrouve == 0)
   {
    return false;
   }
   AjouterCookieOuRemplacer('Recherche','TypeRecherche','4');
   return true;
}

function lstGroupes_SelectedIndexChange(ControleAppelant)
{
   var listbox = new Object();
   var btnOK = new Object();
   var txtDescription = new Object();
   IDListe = RetournerIdentifiantCompletAvecUSRCTRL(ControleAppelant,'lstGroupes');
   listbox = document.getElementById(IDListe);
   btnOK = document.getElementById(RetournerIdentifiantCompletAvecUSRCTRL(ControleAppelant,'mBtnOk'));
   labelDescGroupe = document.getElementById(RetournerIdentifiantCompletAvecUSRCTRL(ControleAppelant,'lblDescriptionGroupe'));
   var descriptionGroupe = "";
   gererAffichageControle(labelDescGroupe, true); //afficher la description des que la recherche aboutie
   btnOK.disabled = false; //rendre disponible le bouton OK
   btnOK.className = 'BoutonOKActif';
   for (var i=0; i<listbox.options.length; i++) 
   {
       var o = listbox.options[i];
       o.className = "groupesNonChoisis";
   }
   for (var i=0; i<listbox.options.length; i++) 
   {
       var o = listbox.options[i];
       if (o.selected) 
       {
           if(o.value.indexOf("@@") == -1){
              descriptionGroupe = o.value.substring(o.value.indexOf("%%") + 2, o.value.length);
           }
           else{descriptionGroupe = o.value.substring(o.value.indexOf("%%") + 2, o.value.indexOf("@@"));
           }
           o.className = "groupeChoisi";
       }
   }
   if(descriptionGroupe.length == 0){
       labelDescGroupe.style.display = "none";
   }
   else{labelDescGroupe.innerHTML = descriptionGroupe;
   labelDescGroupe.style.display = "block"}
    //cacher les messages d erreur si present
    var objetMessageErreurACA = document.getElementById(IDPanneauMessageErreurACA);
    gererAffichageControle(objetMessageErreurACA,false,true);  
}



