// ---------------------------------------------------------------------------------------
// ---- Fonction pour charger des lignes identiques dans le tableau
// ---------------------------------------------------------------------------------------
function datagridLignesIdentiques(nblignes, valeur) {
  let element = document.querySelector('#datagrid');
  let contenu='';
  
  contenu += '<table>';
  contenu += ' <thead>';
  contenu += '   <tr>';
  contenu += '    <th>&nbsp;</th>';
  contenu += '   </tr>';
  contenu += '  </thead>';

  contenu += ' <tbody>'; 
  for(let i=0; i<nblignes; i++)
  {
    contenu += '   <tr>';
    contenu += '    <td align="center">'+valeur+'</td>';
    contenu += '   </tr>';
  }
  
  contenu += ' <tfoot>';
  contenu += '   <tr>';
  contenu += '    <th>&nbsp;</th>';
  contenu += '   </tr>';
  contenu += '  </foot>';
  contenu += '</table>';

  element.innerHTML = contenu;
}
// ---------------------------------------------------------------------------------------
// ---- Fonction pour charger des lignes vides
// ---------------------------------------------------------------------------------------
function datagridEmptyLines(nblignes) {
  return datagridLignesIdentiques(nblignes,'&nbsp;');
}

// ---------------------------------------------------------------------------------------
// ---- Fonction utilitaires
// ---------------------------------------------------------------------------------------
function datagridLoading() {
  let nblignes = 25 + Math.floor(Math.random() * 475); // Nbre entre ntre 25 et 500
  return datagridLignesIdentiques(nblignes, 'Loading data ..');
}

// ---------------------------------------------------------------------------------------
// ---- Fonction pour charger des données au hasard dans le datagrid
// ---------------------------------------------------------------------------------------

var nbCols = 5;

function setDatagridRandomValues(element, nbcols, nblignes)
{
  let contenu='';
  
  contenu += '<table>';
  contenu += ' <thead>';
  contenu += '   <tr>';
  contenu += '    <th>ID HEAD</th>';
  for(let i= 0; i<nbcols; i++)
  {
      contenu += '    <th>HEAD'+i+'</th>';
  }
  contenu += '   </tr>';
  contenu += '  </thead>';

  
  contenu += ' <tbody>';
  for(let i=0; i<nblignes; i++)
  {
    contenu += '   <tr class="js-open-modal-trigger" data-modal-info="random:idligne='+i+'">';
    contenu += '    <td>ID</td>';
    for(let ii= 0; ii<nbcols; ii++)
    {
        contenu += '    <td> VALUE '+i+' '+ii+'</td>';
    }
    contenu += '   </tr>';
  }
  // Rejouter 2 lignes vides
  for(let i=0; i<2; i++)
  {
    contenu += '   <tr>';
    contenu += '    <td>&nbsp;</td>';
    for(let ii= 0; ii<nbcols; ii++)
    {
        contenu += '    <td>&nbsp;</td>';
    }
    contenu += '   </tr>';
  }
  contenu += '  </body>';

  contenu += ' <tfoot>';
  contenu += '   <tr>';
  contenu += '    <th>ID FOOT</th>';
  for(let i= 0; i<nbcols; i++)
  {
      contenu += '    <th>FOOT'+i+'</th>';
  }
  contenu += '   </tr>';
  contenu += '  </foot>';
  contenu += '</table>';

  element.innerHTML = contenu;

  init_modal();
  nbCols = nbcols;
}

modal_hooks['random'] = function(parametres){
  let paramSplit = parametres.split(',');
  paramSplit.forEach(element => {
    let elemSplit=element.split('=');
    if (elemSplit[0] === 'idligne') {
      let ligne = elemSplit[1];
      let modal_header='Détail de la ligne '+ligne;
      let modal_body='';
      let modal_footer='<button>Enregistrer</button';
  

      modal_body += '<table class="modal_table">';
      for(i=0;i<nbCols; i++)
      {
        modal_body += '<tr>';
        modal_body += '<td> PARAM '+i+'</td>';
        modal_body += '<td> VALUE '+ligne+' '+i+'</td>';
        modal_body += '</tr>';
      }
      modal_body += '</table>';

      modalSetHeader(modal_header);
      modalSetBody(modal_body);
      modalSetFooter(modal_footer);   
    }
  });
};

// --------------------------------------------------------------------------------------------
// ---- Tableau de hooks pour alimenter le datagrid 
// --------------------------------------------------------------------------------------------
var datagrid_hooks = [];

datagrid_hooks['random'] = function(){
  let element = document.querySelector('#datagrid');
  let nblignes = 25 + Math.floor(Math.random() * 475); // Nbre entre ntre 25 et 500
  setDatagridRandomValues(element, nbCols, nblignes)
};

