<?
function inviaEmailAttivazione($idu){
	
	global $mydb, $lang, $language,  $urlbase, $mydbG, $tbl_utenti, $_emailwm;
	
	extract($mydb->vtables);
	
	 $sql = "SELECT * FROM $tbl_utenti WHERE id_utenti = '$idu'";
		$mydb->DoSelect($sql);
		$r = $mydb->GetRow();
                
          $res = 0;
          
          $email = $r['email'];
          $password = $r['password'];
          $user = $r['username'];
          
          if($password=="") 
          {
              $password = generate_password(8);
              
              $sql = "UPDATE $tbl_utenti SET password = '$password' WHERE idutente=$idu";
              $mydb->ExecSql($sql);
          }
          if(!isset($r['email']) || $r['email']!=$email)
          {
              $res = -9;
              
          } else {


                     $Subject = $lang['soggetto_email_attivazione'];
              
                     $urlbase = trim($urlbase,"\/");
        
			  
			  $a_emailto = array();
			  $a_emailtoBCC = array();
			  
			  array_push($a_emailto, $r['email']);
			  
			  $key = md5($email);
			  
			  $Body =  Get_TXTArea('email_attivazione',$language);
                          
			  $Body = str_replace("|email|",$email, $Body);
                          $Body = str_replace("|password|",$password, $Body);
                          $Body = str_replace("|username|",$user, $Body);

			  
			 # echo $Body;
		 	 include ("./mail/mailmanager.php");
		 	 
		 	 if($result) $res = 1; else $res = -1;
		 	 
		 	
          }
          
          return $res;
}
function inviaEmailRegistrazione($email){
	
	global $mydb, $lang, $language,  $urlbase, $mydbG, $tbl_utenti, $_emailwm, $_urlname;
	
	extract($mydb->vtables);
	
	    $sql = "SELECT * FROM $tbl_utenti WHERE username = '$email'";
		$mydb->DoSelect($sql);
		$r = $mydb->GetRow();
                
          $res = 0;
          
          
          
          if(!isset($r['email']) || $r['email']!=$email)
          {
              $res = -9;
              
          } else {


                     $Subject = $lang['soggetto_email_registrazione'];
              
                     $urlbase = trim($urlbase,"\/");
                     
                     $nominativo = $r['cognome']." ".$r['nome'];
        
			  
			  $a_emailto = array();
			  $a_emailtoBCC = array();
			  
			  array_push($a_emailto, $r['email']);
			  
			  $key = md5($email);
			  
			  $Body =  Get_TXTArea('email_registrazione',$language);
                          
			  $Body = str_replace("|link_conferma|","<a href=\"$urlbase/conferma.php?key=$key\">conferma il tuo indirizzo email</a>", $Body);
              $Body = str_replace("|link_attiva|","<a href=\"$urlbase/attiva.php?key=$key\">attiva il tuo account</a>", $Body);

			  
			 # echo $Body;
		 	 include ("./mail/mailmanager.php");
		 	 
		 	 if($result) $res = 1; else $res = -1;

			 #echo $result;
                /*         
                         $Subject = "Nuovo utente registrato - $_urlname";
                         $Body =  "Registrazione nuovo utente:<br/><br/>\n";
                         $Body .= $nominativo." - ".$email."<br><br>\n\n";
                         
                         unset($a_emailto);
		 	  $a_emailto = array();
                         array_push($a_emailto, $_emailwm);
                         include ("./mail/mailmanager.php");
                */          
		 	
          }
}

function inviaEmailRecuperoPsw($email){
	
	global $mydb, $lang, $language,  $urlbase, $mydbG, $tbl_utenti;
	
	extract($mydb->vtables);
	
	 $sql = "SELECT * FROM $tbl_utenti WHERE email = '$email'";
		$mydb->DoSelect($sql);
		$r = $mydb->GetRow();
                
          $res = 0;
          
          if(!isset($r['email']) || $r['email']!=$email)
          {
              $res = -9;
              
          } else {


                     $Subject = $lang['soggetto_email_recupero_passw'];
              
                     $urlbase = trim($urlbase,"\/");
        
			  
			  $a_emailto = array();
			  $a_emailtoBCC = array();
			  
			  array_push($a_emailto, $r['email']);
			  
			  $key = md5($email.time());
			  
			  $Body =  Get_TXTArea('email_recuperopassword',$language);
                          
			  $Body = str_replace("|link_recupero_password|","<a href=\"$urlbase?sz=recuperopassword&key=$key\">imposta nuova password</a>", $Body);

			  
			 # echo $Body;
		 	 include ("./mail/mailmanager.php");
		 	 
		 	 if($result) $res = 1; else $res = -1;
		 	 
		 	  $sql = "UPDATE $tbl_utenti SET data_ukey = NOW(), ukey='$key' WHERE email = '$email'";
		 	 $mydb->ExecSql($sql);
          }
}

	//generazione password casuale
	function generate_password($password_length = 10)
	{
            $mypass = "";
		// Creo un ciclo for che si ripete per il valore di $password_length
		for ($x=1; $x <= $password_length; $x++)
		{
			if ($x % 2) //Se $x � multiplo di 2...
			{
				// Aggiungo una lettera casuale usando chr() in combinazione
				// con rand() che genera un valore numerico compreso tra 97
				// e 122, numeri che corrispondono alle lettere dell'alfabeto
				// nella tabella dei caratteri ASCII
				$mypass .= chr(rand(97,122));

			
			}
			else //Se $x non � multiplo di 2...
			{
				// Aggiungo alla password un numero compreso tra 0 e 9
				$mypass .= rand(0,9);
			}
		}

		return $mypass;
	}
	function inviaPassword($idu){
	
		global $mydb, $lang, $language,  $urlbase, $mydbG, $tbl_utenti, $_emailwm;
		
		extract($mydb->vtables);
		
		$sql = "SELECT * FROM $tbl_utenti WHERE id_utenti = '$idu'";
		$mydb->DoSelect($sql);
		$r = $mydb->GetRow();

		$res = 0;

		$email = $r['email'];
		$password = $r['password'];
		$user = $r['username'];

		if(!isset($r['email']) || $r['email']!=$email)
		{
			$res = -9;

		} else {
	
	
			$Subject = $lang['soggetto_email_password'];

			$urlbase = trim($urlbase,"\/");
			

			$a_emailto = array();
			$a_emailtoBCC = array();

			array_push($a_emailto, $r['email']);

			$key = md5($email);

			$Body =  Get_TXTArea('email_inviopassword',$language);

			$Body = str_replace("|email|",$email, $Body);
			$Body = str_replace("|password|",$password, $Body);
			$Body = str_replace("|username|",$user, $Body);
			$Body = str_replace("|urlbase|",$urlbase, $Body);

                    # echo $Body;
                     include ("./mail/mailmanager.php");

                     if($result) $res = 1; else $res = -1;
			  
				 
		}
			  
			return $res;
}


function getFattoriale($n)
{
    if ($n == 0) {
        return 1;
    } else {
        return $n * getFattoriale($n - 1);
    }
}

function generaCombinazioni($array, $k) {
    $combinazioni = [];
    $n = count($array);

    // Funzione interna per generare combinazioni
    function _generaCombinazioni($prefix, $array, $k, &$combinazioni) {
        if ($k == 0) {
            // Aggiungi la combinazione corrente all'array delle combinazioni
            $combinazioni[] = $prefix;
            return;
        }

        for ($i = 0; $i <= count($array) - $k; $i++) {
            _generaCombinazioni(array_merge($prefix, [$array[$i]]), array_slice($array, $i + 1), $k - 1, $combinazioni);
        }
    }

    // Inizia la generazione delle combinazioni
    _generaCombinazioni([], $array, $k, $combinazioni);

    // Per avere un array associativo con le combinazioni come array singoli
    $arrayAssociativo = [];
    foreach ($combinazioni as $index => $combinazione) {
        $arrayAssociativo["combinazione_$index"] = $combinazione;
    }

    return $arrayAssociativo;
}

function formatta_label($stringa) {
    return ucfirst(str_replace('_', ' ', strtolower($stringa)));
}

function generaPdfSurvey($id_survey_user)
{
    global $mydb, $extincpath_hdd,  $urlbase, $mydbG, $tbl_utenti, $_emailwm;
    
    extract($mydb->vtables);

    $sql = "SELECT * FROM survey_users WHERE id= '$id_survey_user'";
    $mydb->DoSelect($sql);
    $r = $mydb->GetRow();

    $id_utente = $r['id_utente'];
    $id_survey = $r['id_survey'];
    
    $sql = "SELECT * FROM $tbl_utenti WHERE id_utenti = '$id_utente'";
    $mydb->DoSelect($sql);
    $ru = $mydb->GetRow();

    $sql = "SELECT * FROM surveys WHERE id = '$id_survey'";
    $mydb->DoSelect($sql);
    $rs = $mydb->GetRow();
    $survey_name = $rs['descrizione'];
        
        include_once($extincpath_hdd."dompdf/autoload.inc.php");

        ##use Dompdf\Dompdf;
        ##use Dompdf\Options;
        // Inizializza Dompdf senza usare "use"
        $dompdf = new \Dompdf\Dompdf();

        
        $dati = json_decode($r['dati'], true);

        if (!is_array($dati)) {
            return -1;
        }


        // Costruisci HTML del PDF
        $html = '<style>
            body {
                font-family: Arial, sans-serif;
            }
            h2 {
                font-family: Verdana, sans-serif;
            }
            table {
                font-family: Arial, sans-serif;
            }
        </style>';
        $html .= '<h2>' . $survey_name . '</h2>';
        $html .= '<table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse; width: 100%;">';
        $html .= '<thead><tr><th style="background-color:#eee;">Domanda</th><th style="background-color:#eee;">Risposta</th></tr></thead><tbody>';

        foreach ($dati as $chiave => $valore) {
            if ($chiave === 'submit_token') continue;
            $html .= '<tr>';
            $html .= '<td>' . formatta_label($chiave) . '</td>';
            $html .= '<td>' . (is_array($valore) ? implode(', ', $valore) : htmlspecialchars($valore)) . '</td>';
            $html .= '</tr>';
        }

        $html .= '</tbody></table>';

        // Genera PDF
        ##$dompdf = new Dompdf();
        $dompdf->loadHtml($html);
        $dompdf->setPaper('A4', 'portrait');
        $dompdf->render();
        #$dompdf->stream("riepilogo_survey_{$id_survey}.pdf", ["Attachment" => true]);

        // Salva il PDF in un file temporaneo
        $output = $dompdf->output();
        file_put_contents("usersdata/survey_$id_survey_user.pdf", $output);

        return "survey_$id_survey_user.pdf";
    
}



