<?php
  //DEFINE('TEXT_FOLDER','text_files' . DIRECTORY_SEPARATOR);
  DEFINE('TEXT_FOLDER','');
  DEFINE('PASSW','32a249s'); // change to change the password
  DEFINE('LIMITE_PUNTOS', 80000);
  DEFINE('LIMITE_CUENTA1', 2);
  $pass = filter_input(INPUT_GET,'s',FILTER_SANITIZE_STRING);
  if(!$pass || $pass<>PASSW)
    die('nothing here');
  session_start();
  include_once "funciones.php";

  if(!$_POST){
    unset($_SESSION['a']);
    /*session_unset();
    session_destroy();*/
    $tablae = "<table>";
    $tablae .= "<tr>";
    $tablae .= "<th>Correo</th>";

    $a_codigo = array();
    $a_cuenta2 = array();
    $total = 0;
    $a_registros = array();
    foreach (glob(TEXT_FOLDER . "*.txt") as $file) {
      $fp = fopen($file, 'r');
      $contenido = fread($fp,filesize($file));
      list($correo, $tarjeta, $valor, $puntos, $g1, $g2, $g3, $codigo, $g3, $cuenta1,$g4, $rc) = explode("_", $contenido);
      $correo = str_replace("Data:", "", $correo);
      list($n, $cuenta2) = explode(":", $rc);
      $cuenta2 = trim($cuenta2);
      $puntos = (int)$puntos;
      $cuenta1 = (int)$cuenta1;
      $cuenta2 = (int)$cuenta2;
      array_push($a_registros, array(
        'codigo' => $codigo,
        'correo' => $correo,
        'tarjeta' => $tarjeta,
        'valor' => $valor,
        'puntos' => $puntos,
        'cuenta1' => $cuenta1,
        'cuenta2' => $cuenta2
        )
      );
      $total++;
    }
    //nhancoikt20@gmail.com
    //echo "<pre>";print_r($a_registros);
    //echo '<pre>';
    //echo "Registros limpios\n";
    //print_r($a_registros);
    //echo "Despues de eliminar puntos\n";
    //print_r($a_registros);
    //echo "Despues de eliminar Cuenta1\n";
    //print_r($a_registros);
    //echo "Despues de eliminar Duplicados\n";
    //print_r($a_registros);
    //die();
    $a_registros = ordenarIndice($a_registros);
    $tabla = build_table($a_registros);
    $_SESSION['a'] = $a_registros;
  }else{
    //ya hicieron post
    $a_registros = $_SESSION['a'];
    $a_eliminar = $_POST['Aeliminar'];
    //eliminamos los que se hallan marcado con los checkboxes
    if(count($a_eliminar)>0){
      foreach($a_eliminar as $posEliminar){
        unset($a_registros[$posEliminar]);
      }
    }
    $tabla = build_table($a_registros, false);
    // creamos el array para la tabla a exportar (solo emails)
    $a_export = array();
    foreach($a_registros as $rec){
      array_push($a_export, array(
        'correo' => $rec['correo']
        )
      );
    }
    $tablae = build_table($a_export, false);
  }
?>
<!DOCTYPE>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Exportar contenido a CSV</title>
        <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
        <style type="text/css">
            #dvData{
              display: none;
            }
        </style>
    </head>

<body>
  <div class='container'> 
    <div class="row" id="showData">
      <form method="post">
        <? if(!$_POST){ ?>
            <legend>Marque las filas que quiera eliminar</legend>
        <? } ?>
        <?=$tabla;?>
        <br/>
        <? if(!$_POST){ ?>
          <input type="hidden" name='h' value='1'>
          <button class="btn btn-success" type="submit">Continuar</button>
        <? }else{ ?>
          
        <? } ?>
      </form>
    </div>
    <br/>
    <? if($_POST){ ?>
    <div class="row" id="dvData">
      <?=$tablae;?>
    </div>
      <a href="#" id ="export" role='button' class="btn btn-success">Click aqui para exportar los datos</a>
      <a href="?s=<?=$pass;?>" class="btn btn-danger">Empezar de nuevo</a>
    <hr/>
    <? } ?>
  </div>

        <script type='text/javascript' src='https://code.jquery.com/jquery-1.11.0.min.js'></script>
        <!-- If you want to use jquery 2+: https://code.jquery.com/jquery-2.1.0.min.js -->
        <script type='text/javascript'>
        $(document).ready(function () {
            function exportTableToCSV($table, filename) {
                var $headers = $table.find('tr:has(th)')
                    ,$rows = $table.find('tr:has(td)')

                    // Temporary delimiter characters unlikely to be typed by keyboard
                    // This is to avoid accidentally splitting the actual contents
                    ,tmpColDelim = String.fromCharCode(11) // vertical tab character
                    ,tmpRowDelim = String.fromCharCode(0) // null character

                    // actual delimiter characters for CSV format
                    ,colDelim = '","'
                    ,rowDelim = '"\r\n"';

                    // Grab text from table into CSV formatted string
                    var csv = '"';
                    csv += formatRows($headers.map(grabRow));
                    csv += rowDelim;
                    csv += formatRows($rows.map(grabRow)) + '"';

                    // Data URI
                    var csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csv);

                // For IE (tested 10+)
                if (window.navigator.msSaveOrOpenBlob) {
                    var blob = new Blob([decodeURIComponent(encodeURI(csv))], {
                        type: "text/csv;charset=utf-8;"
                    });
                    navigator.msSaveBlob(blob, filename);
                } else {
                    $(this)
                        .attr({
                            'download': filename
                            ,'href': csvData
                            //,'target' : '_blank' //if you want it to open in a new window
                    });
                }

                //------------------------------------------------------------
                // Helper Functions 
                //------------------------------------------------------------
                // Format the output so it has the appropriate delimiters
                function formatRows(rows){
                    return rows.get().join(tmpRowDelim)
                        .split(tmpRowDelim).join(rowDelim)
                        .split(tmpColDelim).join(colDelim);
                }
                // Grab and format a row from the table
                function grabRow(i,row){
                     
                    var $row = $(row);
                    //for some reason $cols = $row.find('td') || $row.find('th') won't work...
                    var $cols = $row.find('td'); 
                    if(!$cols.length) $cols = $row.find('th');  

                    return $cols.map(grabCol)
                                .get().join(tmpColDelim);
                }
                // Grab and format a column from the table 
                function grabCol(j,col){
                    var $col = $(col),
                        $text = $col.text();

                    return $text.replace('"', '""'); // escape double quotes

                }
            }


            // This must be a hyperlink
            $("#export").click(function (event) {
                // var outputFile = 'export'
                var outputFile = window.prompt("Nombre para el archivo? (Nota: en Safari no hace ningun efecto)") || 'export';
                outputFile = outputFile.replace('.csv','') + '.csv'
                 
                // CSV
                exportTableToCSV.apply(this, [$('#dvData > table'), outputFile]);
                
                // IF CSV, don't do event.preventDefault() or return false
                // We actually need this to be a typical hyperlink
            });
        });
    </script>
    </body>
</html>
