Index: trunk/admin/aggiornadb.php
===================================================================
--- trunk/admin/aggiornadb.php	(revision 361)
+++ trunk/admin/aggiornadb.php	(revision 362)
@@ -1,15 +1,19 @@
 <?php
 
-#implementare controllo con: SHOW INDEX FROM tua_tabella WHERE tua_tabella.tua_colonna='nome_colonna';
+#imposta il charset su utf8, qualsiasi altro valore per cambiarlo in latin1;
+$newcs='utf8'; 
+
 @require_once("config.php"); 
 	try{
-	$dbi = new PDO("mysql:host=$dbhost;charset=latin1", $dbuname, $dbpass, array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION)); 
-     	$sql = "use $dbname";
-    	$dbi->exec($sql);
-        }
+		$dbi = new PDO("mysql:host=$dbhost", $dbuname, $dbpass, array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION)); 
+    	$sql = "use $dbname";
+    	$dbi->exec($sql);	
+    }
 	catch(PDOException $e)
 	{
 	    die( $sql . "<br>" . $e->getMessage());
 	} 
+
+
 ###############
 function aggiorna($sql,$dbi,$sql2,$num){
@@ -95,7 +99,28 @@
 $num=0;		
 
+if(controllo($prefix.'_authors','admincomune',++$num))
+{
+	$sql="update `".$prefix."_authors` set admincomune='1' where aid='admin'";
+	$ret=aggiorna($sql,$dbi,'',$num);
+	$sql="update `".$prefix."_authors` set admincomune='0' where aid!='admin'";
+	$ret=aggiorna($sql,$dbi,'',$num);
+	echo "Aggiornata la tabella dei permessi<br>";
+}	
+
 if(!controllo($prefix.'_config','versione',++$num))
 {
 	$sql="alter table `".$prefix."_config` change column `Versione` `versione` int(3)";
+	$ret=aggiorna($sql,$dbi,'',$num);
+}	
+
+if(!controllo($prefix.'_config','versione',++$num))
+{
+	$sql="alter table `".$prefix."_config` change column `Versione` `versione` int(3)";
+	$ret=aggiorna($sql,$dbi,'',$num);
+}	
+
+if(!controllo($prefix.'_config','secret',++$num))
+{
+	$sql="alter table `".$prefix."_config` DROP `secret`";
 	$ret=aggiorna($sql,$dbi,'',$num);
 }	
@@ -374,15 +399,26 @@
 
 echo "<br>Modifica Charset del database<br>";
-#$sql="ALTER DATABASE $dbname CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'";
+if($newcs=='utf8') {
+	$cset='utf8';
+	$ccollate='utf8_general_ci';
+	$preset='latin1';
+}else{
+	$cset='latin1';
+	$ccollate='latin1_swedish_ci';
+	$preset='utf8';
+}
+#$sql="ALTER DATABASE $dbname CHARACTER SET '$cset' COLLATE '$ccollate'";
 #$res = $dbi->prepare("$sql");
 #$res->execute();
-# alter table $table DEFAULT CHARSET=utf8 COLLATE utf8_general_ci
-$sql="SELECT table_name,column_name,column_default,column_type,is_nullable FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$dbname' and (character_set_name='latin1' or collation_name like 'latin%')";
+
+$sql="SELECT table_name,column_name,column_default,column_type,is_nullable FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$dbname' and (character_set_name='$preset' or collation_name like '$preset%')";
 $res = $dbi->prepare("$sql");
 $res->execute();
 $tab='';
+
+
 while(list($nometab,$campo,$def,$tipo,$nul)=$res->fetch(PDO::FETCH_NUM)) {
 	if($tab!=$nometab){
-		$sql="alter table $nometab DEFAULT CHARSET=utf8 COLLATE utf8_general_ci";
+		$sql="alter table $nometab DEFAULT CHARSET=$cset COLLATE $ccollate";
 		try{
 			$res2 = $dbi->prepare("$sql");
@@ -397,5 +433,5 @@
 	if($def!='') $default="DEFAULT '$def'"; else $default='';
 	if($nul=='NO') $nullable='NOT NULL'; else $nullable='NULL';
-	$sql="ALTER TABLE $nometab CHANGE $campo $campo $tipo CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' $nullable $default;"; 	
+	$sql="ALTER TABLE $nometab CHANGE $campo $campo $tipo CHARACTER SET '$cset' COLLATE '$ccollate' $nullable $default;"; 	
 	echo "-- $campo<br>";
 	try{
@@ -406,5 +442,5 @@
 		{
 			$default="DEFAULT $def";
-			$sql="ALTER TABLE $nometab CHANGE $campo $campo $tipo CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' $nullable $default;"; 	
+			$sql="ALTER TABLE $nometab CHANGE $campo $campo $tipo CHARACTER SET '$cset' COLLATE '$ccollate' $nullable $default;"; 	
 			try{
 					$res2 = $dbi->prepare("$sql");
@@ -417,10 +453,10 @@
 		}
 }
- $sql="SELECT table_name FROM INFORMATION_SCHEMA.tables WHERE TABLE_SCHEMA = '$dbname' and table_collation like 'latin%'";
+ $sql="SELECT table_name FROM INFORMATION_SCHEMA.tables WHERE TABLE_SCHEMA = '$dbname' and table_collation like '$preset%'";
  $res = $dbi->prepare("$sql");
  $res->execute();
 $tab='';
 while(list($nometab)=$res->fetch(PDO::FETCH_NUM)) {
-		$sql="alter table $nometab DEFAULT CHARSET=utf8 COLLATE utf8_general_ci";
+		$sql="alter table $nometab DEFAULT CHARSET=$cset COLLATE $ccollate";
 		try{
 	echo "Tabella: $nometab <br>";
Index: trunk/admin/modules/Elezioni/ele.php
===================================================================
--- trunk/admin/modules/Elezioni/ele.php	(revision 361)
+++ trunk/admin/modules/Elezioni/ele.php	(revision 362)
@@ -66,5 +66,5 @@
 function ele() {
 
-	global $espandi, $aid, $bgcolor1, $bgcolor2,$bgcolor5, $prefix, $dbi, $offset, $min,$descr_cons, $id_cons_gen,$tipo_cons,$genere,$op,$id_comune,$perms,$id_cons,$votog,$votol,$votoc,$votocirc,$tema,$fascia;
+	global $espandi, $aid, $bgcolor1, $bgcolor2,$bgcolor5, $prefix, $dbi, $offset, $min,$descr_cons, $id_cons_gen,$tipo_cons,$genere,$op,$id_comune,$perms,$id_cons,$votog,$votol,$votoc,$votocirc,$tema,$fascia,$limite;
 	
 	include ("header.php");
@@ -77,5 +77,5 @@
 
 	$row=daticonscom();
-	if (isset($row['fascia'])) $fascia=$row['fascia'];
+	if (isset($row['id_fascia'])) $fascia=$row['id_fascia'];
 	else
 	$fascia=0;
@@ -277,6 +277,8 @@
 		}
 		echo "<a href=\"admin.php?op=riepilogo&amp;id_cons_gen=$id_cons_gen\">$bullet "._RIEPILOGO."</a><br>";
-		if($tipo_cons==18 or $tipo_cons==19)
-			echo "<a href=\"admin.php?op=riepilogovoti&amp;id_cons_gen=$id_cons_gen\">$bullet Tabella dei Totali </a><br>";
+#		if($tipo_cons==18 or $tipo_cons==19)
+	
+		if($genere==5 and ($fascia>$limite or $limite==0))
+			echo "<a href=\"admin.php?op=riepilogovoti&amp;id_cons_gen=$id_cons_gen\">$bullet Tabella dei Totali</a><br>";
 	}
 
Index: trunk/admin/modules/Elezioni/ele_riepilogovoti.php
===================================================================
--- trunk/admin/modules/Elezioni/ele_riepilogovoti.php	(revision 361)
+++ trunk/admin/modules/Elezioni/ele_riepilogovoti.php	(revision 362)
@@ -67,19 +67,19 @@
 
 ################# calcolo voti di lista espressi
-	$sql="select sum(validi_lista),sum(nulli+bianchi+voti_nulli+contestati+contestati_lista+solo_gruppo+voti_nulli_lista) from ".$prefix."_ele_sezioni where id_cons='$id_cons'";
+	$sql="select sum(validi_lista),sum(nulli+bianchi+voti_nulli+contestati+solo_gruppo),sum(voti_nulli_lista),sum(contestati_lista) from ".$prefix."_ele_sezioni where id_cons='$id_cons'";
 	$resperc = $dbi->prepare("$sql");
 	$resperc->execute();	
-	list($scruvalidi,$scrunulli)=$resperc->fetch(PDO::FETCH_NUM);
+	list($scruvalidi,$scrunulli,$nullista,$contlista)=$resperc->fetch(PDO::FETCH_NUM);
 
 	if($totschede)
-		$listpercscru=number_format(($scruvalidi+$scrunulli)*100/$totschede,2);
+		$listpercscru=number_format(($scruvalidi+$scrunulli+$nullista+$contlista)*100/$totschede,2);
 	else $listpercscru=0;
 	$listtotschede=$totschede;
-	$listtotvoti=($scruvalidi+$scrunulli);
+	$listtotvoti=($scruvalidi+$scrunulli+$nullista+$contlista);
 
 #################
-	echo "<table border=\"1\" cellpadding=\"5\"><tr align=\"middle\"><th colspan=\"5\">Riepilogo dei voti per gruppo e liste collegate</th></tr>";
+	echo "<table border=\"1\" cellpadding=\"5\"  style=\"border-collapse: collapse; outline: thin solid;\"><tr align=\"middle\"><th colspan=\"5\">Riepilogo dei voti per gruppo e liste collegate</th></tr>";
 	echo "<tr align=\"middle\"><td colspan=\"3\"><b>Scrutinate $listtotvoti schede su $listtotschede ($listpercscru %)</b></td><td colspan=\"2\"><b>Scrutinate $listtotvoti schede su $listtotschede ($listpercscru %)</b></td></tr>";
-	echo "<tr align=\"middle\"><td><b>Candidato Uninominale</b></td><td><b>Voti</b></td><td><b>Al solo</br>Candidato Uninominale</b></td><td><b>Lista</br>Collegata</b></td><td><b>Voti alla lista</b></td></tr>";
+	echo "<tr align=\"middle\"><td><b>"._GRUPPO."</b></td><td><b>Voti</b></td><td><b>Al solo</br>"._GRUPPO."</b></td><td><b>Lista</br>Collegata</b></td><td><b>Voti alla lista</b></td></tr>";
 	$totl=0;$totg=0;$totsg=0;
 	while(list($id_gruppo,$votigruppo,$sologruppo)=$res->fetch(PDO::FETCH_NUM))
@@ -90,4 +90,5 @@
 		$resl->execute();	
 		$numliste=$resl->rowCount();
+		if(!$numliste) $numliste=1;
 		$sql="SELECT num_gruppo,descrizione FROM ".$prefix."_ele_gruppo where id_gruppo='$id_gruppo'";
 		$resg2 = $dbi->prepare("$sql");
@@ -95,5 +96,5 @@
 		list($num_gruppo,$descrg)=$resg2->fetch(PDO::FETCH_NUM);
 
-		echo "<tr><td rowspan=\"$numliste\">$descrg</td><td rowspan=\"$numliste\" align=\"right\"><h2>".number_format($votigruppo,0,',','.')."</h2></td><td rowspan=\"$numliste\" align=\"right\"><h2>".number_format($sologruppo,0,',','.')."</h2></td>";
+		echo "<tr style=\"border-top: 2px solid;\"><td rowspan=\"$numliste\">$descrg</td><td rowspan=\"$numliste\" align=\"right\"><h2>".number_format($votigruppo,0,',','.')."</h2></td><td rowspan=\"$numliste\" align=\"right\"><h2>".number_format($sologruppo,0,',','.')."</h2></td>";
 		$currlst=0;
 		while (list($id_lista,$num_lista,$descrl)=$resl->fetch(PDO::FETCH_NUM))
@@ -107,6 +108,7 @@
 			echo "<td>$num_lista) $descrl</td><td align=\"right\"><h2>".number_format($votilista,0,',','.')."</h2></td></tr>";
 		}
+		if(!$currlst) echo "<td></td><td></td></tr>";
 	}
-	echo "<tr><td><b>Totale</b></td><td align=\"right\"><h1>".number_format($totg,0,',','.')."</h1></td><td align=\"right\"><h1>".number_format($totsg,0,',','.')."</h1></td><td></td><td align=\"right\"><h1>".number_format($totl,0,',','.')."</h1></td></tr>";
+	echo "<tr style=\"border-top: 2px solid;\"><td rowspan=\"3\"><b>Totale</b></td><td  rowspan=\"3\" align=\"right\"><h1>".number_format($totg,0,',','.')."</h1></td><td  rowspan=\"3\" align=\"right\"><h1>".number_format($totsg,0,',','.')."</h1></td><td align=\"right\"><b>Validi di lista</b></td><td align=\"right\"><h1>".number_format($totl,0,',','.')."</h1></td></tr><tr><td align=\"right\"><b>Nulli di lista</b></td><td align=\"right\"><h1>".number_format($nullista,0,',','.')."</h1></td></tr><tr><td align=\"right\"><b>Contestati di lista</b></td><td align=\"right\"><h1>".number_format($contlista,0,',','.')."</h1></td></tr>";
 	echo "</table></br>";
 	
Index: trunk/admin/modules/Elezioni/ele_spoglio.php
===================================================================
--- trunk/admin/modules/Elezioni/ele_spoglio.php	(revision 361)
+++ trunk/admin/modules/Elezioni/ele_spoglio.php	(revision 362)
@@ -590,7 +590,8 @@
 					$errcolor="style=\"background-color: rgb(255, 0, 0);\""; 
 					$bordcolor="border-color:red;";
-				}elseif(!$errcolor && $numrec) $errcolor="style=\"background-color: #99CC33;\""; 
+				}elseif(!$errcolor && $numrec) $errcolor="style=\"background-color: #99CC33;\"";
+				if($genere>=4 and !$votoc) $stilcur="style=\"cursor: pointer;\""; else $stilcur='';
 				echo "<td align=\"center\" $errcolor><b> $num_lista </b></td>"
-				."<td align=\"left\" style=\"cursor: pointer;\" onClick=\"vai_lista('id_rif$i');\"><b>$descr_lista</b></td>";
+				."<td align=\"left\" $stilcur onClick=\"vai_lista('id_rif$i');\"><b>$descr_lista</b></td>";
 ##				$cond_sele="and id_lista=$id_lista3";
 				echo "<td align=\"right\"><input  name=\"voti$i\" value=\"".$voti."\" size=\"7\" onfocus=\"select();\" style=\"text-align:right; $bordcolor;\"><input id=\"id_rif$i\" type=\"hidden\" name=\"id_lista$i\" value=\"$id_lista3\">";
@@ -979,7 +980,7 @@
 					else 
 						echo "<tr style=\"background-color:$bgcolor2; text-align:center\">";
-					$descr = explode('.',$descr_gruppo, 100);
+#					$descr = explode('.',$descr_gruppo, 100);
 					echo "<td colspan=\"6\" align=\"center\"><input type=\"hidden\" name=\"id_gruppo$i\" value=\"$id_gruppo\"><b>$num_gruppo) </b>"
-					."<b> $descr[0] </b></td></tr>";
+					."<b> $descr_gruppo </b></td></tr>";
 					$pro['si']=(isset($pro['si']) and $pro['si']>=0) ? $pro['si']:'';
 					$pro['no']=(isset($pro['no']) and $pro['no']>=0) ? $pro['no']:'';
Index: trunk/admin/modules/Elezioni/ele_voti.php
===================================================================
--- trunk/admin/modules/Elezioni/ele_voti.php	(revision 361)
+++ trunk/admin/modules/Elezioni/ele_voti.php	(revision 362)
@@ -336,4 +336,6 @@
 if($genere==2 and $votog)
 	echo "<td bgcolor=\"$bgcolorg\" align=\"center\" $bordog onClick=\"vai_scelta('admin.php?op=voti&amp;id_comune=$id_comune&amp;id_sez=$id_sez&amp;id_cons_gen=$id_cons_gen&amp;do=spoglio&amp;ops=4');\"><p style=\"margin-left:10px;margin-right:10px;\"><b><font color=\"$tcolorg\">"._GRUPPO."</font></b></p></td>\n";
+elseif($genere>=4 and !$votoc)
+	echo "<td bgcolor=\"$bgcolorl\" align=\"center\"$bordol onClick=\"vai_scelta('admin.php?op=voti&amp;id_comune=$id_comune&amp;id_sez=$id_sez&amp;id_cons_gen=$id_cons_gen&amp;do=spoglio&amp;ops=3');\"><p style=\"margin-left:10px;margin-right:10px;\"><b><font color=\"$tcolorl\">"._LISTAPREF."</font></b></p></td>\n";
 elseif(($genere>2 or $votog)){ //if(($genere>2 or $tipo_cons==10 or $tipo_cons==11)){
 	echo "<td bgcolor=\"$bgcolorl\" align=\"center\"$bordol onClick=\"vai_scelta('admin.php?op=voti&amp;id_comune=$id_comune&amp;id_sez=$id_sez&amp;id_cons_gen=$id_cons_gen&amp;do=spoglio&amp;ops=3');\"><p style=\"margin-left:10px;margin-right:10px;\"><b><font color=\"$tcolorl\">"._LISTA."</font></b></p></td>\n";
Index: trunk/admin/modules/Elezioni/ele_widget.php
===================================================================
--- trunk/admin/modules/Elezioni/ele_widget.php	(revision 361)
+++ trunk/admin/modules/Elezioni/ele_widget.php	(revision 362)
@@ -192,5 +192,5 @@
 //Funzione crea db se non esiste
 //**********************************************************************
-
+/*
 function make_db_widget(){
 global $dbi,$prefix;
@@ -209,5 +209,5 @@
 
 }
-
+*/
 
 ?>
Index: trunk/admin/modules/Elezioni/importa.php
===================================================================
--- trunk/admin/modules/Elezioni/importa.php	(revision 361)
+++ trunk/admin/modules/Elezioni/importa.php	(revision 362)
@@ -21,49 +21,48 @@
 include("modules/Elezioni/ele.php");
 
-
 function insgruppo()
 {
-global $prefix, $dbi;
-global $ar_gruppo,$ar_lista,$ar_candi,$idcns;
-
-foreach ($ar_gruppo as $rigagruppo){
-	$newidg=0;
-	$oldidg=0;
-	$isnew=0;
-	foreach($rigagruppo as $key=>$campo){
-		if ($key==0) $valori="'$idcns',";
-		elseif ($key==1) {$valori.= "null"; $oldidg=$campo;}
-		elseif ($key==6) $valori.= ",0";
-		elseif($key==4 || $key==8) $valori.=",'".utf8_encode($campo)."'";
-		elseif($key==9) $valori.=",''";
-		else $valori.= ",'".$campo."'";
-		if ($key==2) $numgruppo= $campo;
-		if ($key==8) $isnew=1;
-	}
-	if (!$isnew and isset($valori)) $valori.=",null,null"; 
-	if(isset($valori)){
-
-		$sql="insert into ".$prefix."_ele_gruppo values($valori)";
-	try {
-		$res_gruppo = $dbi->prepare("$sql");
-		$res_gruppo->execute();	
-	}
-	catch(PDOException $e)
-	{
-		echo $sql . "<br>" . $e->getMessage();
-	}                  
-		$sql="select id_gruppo from ".$prefix."_ele_gruppo where num_gruppo='$numgruppo' and id_cons='$idcns'";
-		$resnew = $dbi->prepare("$sql");
-		$resnew->execute();	
-		list ($newidg) = $resnew->fetch(PDO::FETCH_NUM);
-		unset($valori);
-		if($oldidg)
-			$_SESSION['gruppi']['idg_'.$oldidg]=$newidg; 
-#		inslista($oldidg,$newidg);
-	}
-}
-}
-
-function inslista()#$oldidg,$newidg
+	global $prefix, $dbi;
+	global $ar_gruppo,$ar_lista,$ar_candi,$idcns;
+
+	foreach ($ar_gruppo as $rigagruppo){
+		$newidg=0;
+		$oldidg=0;
+		$isnew=0;
+		$numcampi=count($rigagruppo);
+		foreach($rigagruppo as $key=>$campo){
+			if ($key==0) $valori="'$idcns',";
+			elseif ($key==1) {$valori.= "null"; $oldidg=$campo;}
+			elseif ($key==6) $valori.= ",0";
+			elseif($key==4) $valori.=",'".utf8_encode($campo)."'";
+			elseif($key==7) {if($numcampi==9) $valori.=",0"; $valori.= ",'".$campo."'";}
+			elseif($key==8)  {$valori.=",'".utf8_encode($campo)."'";$isnew=1;}
+			elseif($key==9) {$valori.=",''";} 
+			else $valori.= ",'".$campo."'";
+			if ($key==2) $numgruppo= $campo;
+		}
+		if (!$isnew and isset($valori)) $valori.=",null,null"; 
+			if(isset($valori)){
+				$sql="insert into ".$prefix."_ele_gruppo values($valori)";
+				try {
+					$res_gruppo = $dbi->prepare("$sql");
+					$res_gruppo->execute();	
+				}
+				catch(PDOException $e)
+				{
+					echo $sql . "<br>" . $e->getMessage();
+				}                  
+				$sql="select id_gruppo from ".$prefix."_ele_gruppo where num_gruppo='$numgruppo' and id_cons='$idcns'";
+				$resnew = $dbi->prepare("$sql");
+				$resnew->execute();	
+				list ($newidg) = $resnew->fetch(PDO::FETCH_NUM);
+				unset($valori);
+				if($oldidg)
+					$_SESSION['gruppi']['idg_'.$oldidg]=$newidg; 
+		}
+	}
+}
+
+function inslista()
 {
 global $prefix, $dbi;
@@ -78,12 +77,4 @@
 		foreach($rigalista as $key=>$campo){
 			if ($key==0) $valori=$idcns.",";
-/*			elseif ($key==1) {$oldidl=$campo;} 
-			elseif ($key==2) {$num_lista=$campo;$numlista=$campo;}
-			elseif ($key==3) {$id_gruppo=$newidg; if ($campo!=$oldidg) $okl=1;}
-			elseif ($key==5) $id_circ=$campo;			
-			elseif ($key==7) $descr_lista=$campo;			
-			elseif ($key==8) $stemmanome=$campo;			
-			elseif ($key==9) $stemmablob=$campo;			
-*/			
 			elseif ($key==1) {$valori.= "null,";$oldidl=$campo;}
 			elseif ($key==2) {$valori.="'$campo',";$numlista= $campo;}
@@ -91,70 +82,60 @@
 			elseif ($key==4) $valori.= "0,"; 
 			elseif ($key==9 ) $valori.= "'$campo'"; 
-#			else $valori.= "'$campo',"; # htmlentities(stripslashes(utf8_decode($_POST['parola'])));
 			else $valori.="'".utf8_encode($campo)."',";
-#			else $valori.= "'".htmlentities($campo, ENT_QUOTES, "UTF-8")."',";  htmlspecialchars($str, ENT_QUOTES)
 		}
 		if($key==9){
-		if ($okl) {$okl=0;continue;}
-#		$valori2=htmlentities($valori);
-#			$sql="insert into ".$prefix."_ele_lista (id_cons,num_lista,id_gruppo,id_circ,descrizione,simbolo,stemma) values ('$id_cons','$num_lista','$id_gruppo','$id_circ','$descr_lista','$stemmanome','$stemmablob')";
-		$sql="insert into ".$prefix."_ele_lista values($valori)";
-	try {
-		$res_lista = $dbi->prepare("$sql");
-		$res_lista->execute();
-	}
-	catch(PDOException $e)
-	{
-		echo $sql . "<br>" . $e->getMessage();
-	}                  
-			
-		$sql="select id_lista from ".$prefix."_ele_lista where num_lista='$numlista' and id_cons='$idcns'";
-		$reslnew = $dbi->prepare("$sql");
-		$reslnew->execute();	
-		list ($newidl) = $reslnew->fetch(PDO::FETCH_NUM);
-		unset($valori);
-		if($oldidl){
-			$_SESSION['liste']['idl_'.$oldidl]=$newidl; 
-echo "id_lista:$oldidl:$newidl<br>";
-		}
-#		inscandi($oldidl,$newidl);
-		}
-	}
-}
-
-function inscandi()#$oldidl,$newidl
-{
-global $prefix, $dbi;
-global $ar_candi,$idcns;
-
-		foreach ($ar_candi as $rigacandi){
-			if(!isset($rigacandi[2])) continue;
-			$okc=0;
-			$oldidl=$rigacandi[2];
-			$newidl=$_SESSION['liste']['idl_'.$oldidl];
-			foreach($rigacandi as $key=>$campo){#echo "$key -- $campo<br>";
-				if (count($rigacandi)!=9) {unset($valori);continue;}
-				if ($key==0) $valori= "null,";
-				elseif ($key==1) $valori.="'$idcns',";
-				elseif ($key==2) {$valori.= "'$newidl'"; if ($campo!=$oldidl) $okc=1;}
-				else $valori.= ",'".utf8_encode($campo)."'";
-			}
-			if(isset($valori) and $valori!=''){
-				if ($okc) {$okc=0;continue;}
-#				$valori2=addslashes($valori);
-				$sql="insert into ".$prefix."_ele_candidati values($valori)";
-#				$res_lista = $dbi->prepare("$sql");
-#				$res_lista->execute();	
-				try {
-					$res_lista = $dbi->prepare("$sql");
-					$res_lista->execute();
-				}
-				catch(PDOException $e)
-				{
-					echo "<br>key:$key sql:".$sql . "<br>" . $e->getMessage();
-				}                  
-			}
-		}
-#foreach($_SESSION['liste'] as $key=>$val) echo "$key -- $val<br>"; 
+			if ($okl) {$okl=0;continue;}
+			$sql="insert into ".$prefix."_ele_lista values($valori)";
+			try {
+				$res_lista = $dbi->prepare("$sql");
+				$res_lista->execute();
+			}
+			catch(PDOException $e)
+			{
+				echo $sql . "<br>" . $e->getMessage();
+			}                  
+				
+			$sql="select id_lista from ".$prefix."_ele_lista where num_lista='$numlista' and id_cons='$idcns'";
+			$reslnew = $dbi->prepare("$sql");
+			$reslnew->execute();	
+			list ($newidl) = $reslnew->fetch(PDO::FETCH_NUM);
+			unset($valori);
+			if($oldidl){
+				$_SESSION['liste']['idl_'.$oldidl]=$newidl; 
+			}
+		}
+	}
+}
+
+function inscandi()
+{
+	global $prefix, $dbi;
+	global $ar_candi,$idcns;
+
+	foreach ($ar_candi as $rigacandi){
+		if(!isset($rigacandi[2])) continue;
+		$okc=0;
+		$oldidl=$rigacandi[2];
+		$newidl=$_SESSION['liste']['idl_'.$oldidl];
+		foreach($rigacandi as $key=>$campo){
+			if (count($rigacandi)!=9) {unset($valori);continue;}
+			if ($key==0) $valori= "null,";
+			elseif ($key==1) $valori.="'$idcns',";
+			elseif ($key==2) {$valori.= "'$newidl'"; if ($campo!=$oldidl) $okc=1;}
+			else $valori.= ",'".utf8_encode($campo)."'";
+		}
+		if(isset($valori) and $valori!=''){
+			if ($okc) {$okc=0;continue;}
+			$sql="insert into ".$prefix."_ele_candidati values($valori)";
+			try {
+				$res_lista = $dbi->prepare("$sql");
+				$res_lista->execute();
+			}
+			catch(PDOException $e)
+			{
+				echo "<br>key:$key sql:".$sql . "<br>" . $e->getMessage();
+			}                  
+		}
+	}
 }
 
@@ -167,8 +148,8 @@
 $res->execute();	
 list($id_cons,$descrizione) = $res->fetch(PDO::FETCH_NUM);
- if (!isset($_FILES['datafile']['tmp_name']) or !is_uploaded_file($_FILES['datafile']['tmp_name'])) 
-	{
+if (!isset($_FILES['datafile']['tmp_name']) or !is_uploaded_file($_FILES['datafile']['tmp_name'])) 
+{
 	ele();
-if (isset($_GET['help'])) $help=intval($_GET['help']);
+	if (isset($_GET['help'])) $help=intval($_GET['help']);
    	global $help,$language;
 	if (isset($help)) include("language/$language/ele_importa.html");
@@ -179,142 +160,135 @@
 	echo "<table cellspacing=\"0\" cellpadding=\"2\" border=\"1\"><tr class=\"bggray\"><td colspan=\"2\" align=\"center\">"._SEL_DATA_FILE2."</td></tr><tr><td><input name=\"datafile\" type=\"file\"></td>";
 	echo "<td align=\"center\"><input type=\"submit\" name=\"add\" value=\""._OK."\"></td></tr></table></form>";
-////////////////////////////
 }else{
-$idcns=$id_cons; 
-$sql="delete from ".$prefix."_ele_voti_ref where id_cons=$idcns";
-$res_del = $dbi->prepare("$sql");
-$res_del->execute();	
-$sql="delete from ".$prefix."_ele_voti_candidati where id_cons=$idcns";
-$res_del = $dbi->prepare("$sql");
-$res_del->execute();	
-$sql="delete from ".$prefix."_ele_voti_lista where id_cons=$idcns";
-$res_del = $dbi->prepare("$sql");
-$res_del->execute();	
-$sql="delete from ".$prefix."_ele_voti_gruppo where id_cons=$idcns";
-$res_del = $dbi->prepare("$sql");
-$res_del->execute();	
-$sql="update ".$prefix."_ele_sezioni set validi='0', contestati='0', validi_lista='0', nulli='0',bianchi='0',contestati_lista='0', voti_nulli_lista='0'  where id_cons=$idcns";
-$res_del = $dbi->prepare("$sql");
-$res_del->execute();	
-$sql="delete from ".$prefix."_ele_voti_parziale where id_cons=$idcns";
-$res_del = $dbi->prepare("$sql");
-$res_del->execute();	
-$sql="delete from ".$prefix."_ele_candidati where id_cons=$idcns";
-$res_del = $dbi->prepare("$sql");
-$res_del->execute();	
-$sql="delete from ".$prefix."_ele_lista where id_cons=$idcns";
-$res_del = $dbi->prepare("$sql");
-$res_del->execute();	
-$sql="delete from ".$prefix."_ele_gruppo where id_cons=$idcns";
-$res_del = $dbi->prepare("$sql");
-$res_del->execute();	
-$datafile=$_FILES['datafile']['tmp_name'];
-$arrFile = file($datafile);
-$handle = fopen($datafile, "r");
-$test=array();
-$errore=0;
-$fine=0;
-$numgruppo=0;
-$numlista=0;
+	$idcns=$id_cons; 
+	$sql="delete from ".$prefix."_ele_voti_ref where id_cons=$idcns";
+	$res_del = $dbi->prepare("$sql");
+	$res_del->execute();	
+	$sql="delete from ".$prefix."_ele_voti_candidati where id_cons=$idcns";
+	$res_del = $dbi->prepare("$sql");
+	$res_del->execute();	
+	$sql="delete from ".$prefix."_ele_voti_lista where id_cons=$idcns";
+	$res_del = $dbi->prepare("$sql");
+	$res_del->execute();	
+	$sql="delete from ".$prefix."_ele_voti_gruppo where id_cons=$idcns";
+	$res_del = $dbi->prepare("$sql");
+	$res_del->execute();	
+	$sql="update ".$prefix."_ele_sezioni set validi='0', contestati='0', validi_lista='0', nulli='0',bianchi='0',contestati_lista='0', voti_nulli_lista='0'  where id_cons=$idcns";
+	$res_del = $dbi->prepare("$sql");
+	$res_del->execute();	
+	$sql="delete from ".$prefix."_ele_voti_parziale where id_cons=$idcns";
+	$res_del = $dbi->prepare("$sql");
+	$res_del->execute();	
+	$sql="delete from ".$prefix."_ele_candidati where id_cons=$idcns";
+	$res_del = $dbi->prepare("$sql");
+	$res_del->execute();	
+	$sql="delete from ".$prefix."_ele_lista where id_cons=$idcns";
+	$res_del = $dbi->prepare("$sql");
+	$res_del->execute();	
+	$sql="delete from ".$prefix."_ele_gruppo where id_cons=$idcns";
+	$res_del = $dbi->prepare("$sql");
+	$res_del->execute();	
+	$datafile=$_FILES['datafile']['tmp_name'];
+	$arrFile = file($datafile);
+	$handle = fopen($datafile, "r");
+	$test=array();
+	$errore=0;
+	$fine=0;
+	$numgruppo=0;
+	$numlista=0;
 // Set counters
     $currentLine = 0;
     $cntFile = count($arrFile);
-$tabs=array($prefix."_ele_gruppo",$prefix."_ele_lista",$prefix."_ele_candidati",$prefix."_ele_circoscrizione");
-$x=0;$k=0;
-$scarto=0;
-$primog=0;
-$primol=0;
-$conta=array();
-   $currentLine = 0;
+	$tabs=array($prefix."_ele_gruppo",$prefix."_ele_lista",$prefix."_ele_candidati",$prefix."_ele_circoscrizione");
+	$x=0;$k=0;
+	$scarto=0;
+	$primog=0;
+	$primol=0;
+	$conta=array();
+	$currentLine = 0;
 	$x=0;$k=0;
 	$y=0;
-$ar_gruppo=array(array());
-$ar_lista=array(array());
-$ar_candi=array(array());
-		$z=0;
-		$tab=substr($arrFile[$currentLine],1,-2);
-		$conf=$tabs[$x];
-if($k==0) {while (substr($arrFile[$currentLine],1,-2)!=$conf and $currentLine <= $cntFile) $currentLine++; $k++;}
+	$ar_gruppo=array(array());
+	$ar_lista=array(array());
+	$ar_candi=array(array());
+	$z=0;
+	$tab=substr($arrFile[$currentLine],1,-2);
+	$conf=$tabs[$x];
+	if($k==0) {while (substr($arrFile[$currentLine],1,-2)!=$conf and $currentLine <= $cntFile) $currentLine++; $k++;}
+	$currentLine++;
+	while($currentLine <= $cntFile and $fine==0){
+		if(isset($arrFile[$currentLine])) 
+			$appo=substr($arrFile[$currentLine],1,-2);
+		else $appo='';
+		if (isset($tabs[($x+1)]) and $appo==$tabs[($x+1)]){ $x++;$conf=$tabs[$x];$currentLine++; continue;}
+		$test=explode(':',$appo); 
+		if(!is_array($test)) {die("errore di import<br>");}
+		foreach($test as $key=>$val) 
+			if ($conf==$prefix."_ele_gruppo"){
+				$ar_gruppo[$z][$key]=addslashes(base64_decode($val));
+			}
+			elseif ($conf==$prefix."_ele_lista"){
+				if($primog==0){
+					$gruppofil= array_filter($ar_gruppo);
+					$numgruppo=count($gruppofil);
+					insgruppo();
+					$primog=1;
+					unset($ar_gruppo);
+				}
+				$ar_lista[$z][$key]=addslashes(base64_decode($val));
+			}
+			elseif ($conf==$prefix."_ele_candidati"){
+				if($primog==0){
+					$gruppofil= array_filter($ar_gruppo);
+					$numgruppo=count($gruppofil);
+					insgruppo();
+					$primog=1;
+					unset($ar_gruppo);
+				}
+				elseif($primol==0){
+					$listafil= array_filter($ar_lista);
+					$numlista=count($listafil);
+					inslista();
+					$primol=1;
+					unset($ar_lista);
+				}
+				$ar_candi[$z][$key]=addslashes(base64_decode($val));
+			}
+			elseif ($conf==$prefix."_ele_circoscrizione"){
+				if($primog==0){
+					$gruppofil= array_filter($ar_gruppo);
+					$numgruppo=count($gruppofil);
+					insgruppo();
+					$primog=1;
+					unset($ar_gruppo);
+				}
+				elseif($primol==0){
+					$listafil= array_filter($ar_lista);
+					$numlista=count($listafil);
+					inslista();
+					$primol=1;
+					unset($ar_lista);
+				}else{
+					inscandi();
+					unset($ar_candi);
+					$fine=1;
+					break;
+				}
+			}
 			$currentLine++;
-			while($currentLine <= $cntFile and $fine==0){
-#				$appo=substr($arrFile[$currentLine],1,-2);
-				if(isset($arrFile[$currentLine])) 
-					$appo=substr($arrFile[$currentLine],1,-2);
-				else $appo='';
-				if (isset($tabs[($x+1)]) and $appo==$tabs[($x+1)]){ $x++;$conf=$tabs[$x];$currentLine++; continue;}
-				$test=explode(':',$appo); if(!is_array($test)) {die("errore di import<br>");}
-				foreach($test as $key=>$val) 
-						if ($conf==$prefix."_ele_gruppo"){
-							$ar_gruppo[$z][$key]=addslashes(base64_decode($val));}
-						elseif ($conf==$prefix."_ele_lista"){
-							if($primog==0){
-								$gruppofil= array_filter($ar_gruppo);
-								$numgruppo=count($gruppofil);
-								insgruppo();
-								$primog=1;
-								unset($ar_gruppo);
-							}
-							$ar_lista[$z][$key]=addslashes(base64_decode($val));}
-						elseif ($conf==$prefix."_ele_candidati"){
-							if($primog==0){
-								$gruppofil= array_filter($ar_gruppo);
-								$numgruppo=count($gruppofil);
-								insgruppo();
-								$primog=1;
-								unset($ar_gruppo);
-							}
-							elseif($primol==0){
-								$listafil= array_filter($ar_lista);
-								$numlista=count($listafil);
-								inslista();
-								$primol=1;
-								unset($ar_lista);
-							}
-							$ar_candi[$z][$key]=addslashes(base64_decode($val));
-						}
-						elseif ($conf==$prefix."_ele_circoscrizione"){
-							if($primog==0){
-								$gruppofil= array_filter($ar_gruppo);
-								$numgruppo=count($gruppofil);
-								insgruppo();
-								$primog=1;
-								unset($ar_gruppo);
-							}
-							elseif($primol==0){
-								$listafil= array_filter($ar_lista);
-								$numlista=count($listafil);
-								inslista();
-								$primol=1;
-								unset($ar_lista);
-							}else{
-								inscandi();
-								unset($ar_candi);
-								$fine=1;
-								break;
-							}
-						}
-				$currentLine++;
-				$z++;
-			}
-fclose($handle);
-
-
-
-if ($numgruppo){
-#	insgruppo();
-	Header("Location: admin.php?op=gruppo&id_cons_gen=$id_cons_gen");
-	}
-elseif ($numlista) {
-#	inslista();
-	Header("Location: admin.php?op=lista&id_cons_gen=$id_cons_gen");
-	}
-else Header("Location: admin.php?op=lista&id_cons_gen=$id_cons_gen");
-
-}
-
+			$z++;
+	}
+	fclose($handle);
+	if ($numgruppo){
+		Header("Location: admin.php?op=gruppo&id_cons_gen=$id_cons_gen");
+	}
+	elseif ($numlista) {
+		Header("Location: admin.php?op=lista&id_cons_gen=$id_cons_gen");
+	}
+	else Header("Location: admin.php?op=lista&id_cons_gen=$id_cons_gen");
+
+}
 echo"</td></tr></table>";
 include("footer.php");
 
- 
-
 ?>
Index: trunk/admin/modules/Elezioni/language/lang-en.php
===================================================================
--- trunk/admin/modules/Elezioni/language/lang-en.php	(revision 361)
+++ trunk/admin/modules/Elezioni/language/lang-en.php	(revision 362)
@@ -35,7 +35,12 @@
 		define("_SOLO_GRUPPO","Ballots for candidate Mayor only");
 		define("_VOTI_LISTA","Ballots for the list");
+		define("_LISTA","List");
+		define("_LISTAPREF","List and Candidate");
+		
 		break;
 	case 4:
 		define("_GRUPPO","Candidate President");
+		define("_LISTA","List");
+		define("_LISTAPREF","List and Candidate");
 		break;
 	case 5: 
@@ -60,4 +65,5 @@
 		define("_GRUPPO","List");
 		define("_LISTA","List");
+		define("_LISTAPREF","List and Candidate");
 		define("_GRUPPOLOGO","List Logo");
 		define("_CONSI","List Candidate");
@@ -67,4 +73,6 @@
 		define("_GRUPPO","Candidate for President");
 		define("_CONSI","List Candidate");
+		define("_LISTA","List");
+		define("_LISTAPREF","List and Candidate");
 		break;
 	case 10: //dal 2006 per senato e camera si ha un raggruppamento delle liste ma senza possibilità di voto per il gruppo (solo in italia!)
@@ -96,4 +104,6 @@
 		define("_GRUPPOLOGO","List Logo");
 		define("_CONSI","List Candidate");
+		define("_LISTA","List");
+		define("_LISTAPREF","List and Candidate");
 		break;
 	case 15:
@@ -108,4 +118,6 @@
 		define("_CONSULTAZIONE","Regional Parliament Election"); 
 		define("_GRUPPO","Candidate for President");
+		define("_LISTA","List");
+		define("_LISTAPREF","List and Candidate");
 		break;
 	case 18: 
@@ -114,4 +126,5 @@
 		define("_SOLO_GRUPPO","Ballots for Group Candidate only");
 		define("_LISTA","Linked List");
+		define("_LISTAPREF","List and Candidate");
 		define("_CANDIDATO","Blocked List");
 
@@ -123,4 +136,5 @@
 		define("_SOLO_GRUPPO","Ballots for Group Candidate only");
 		define("_LISTA","Linked List");
+		define("_LISTAPREF","List and Candidate");
 		define("_CANDIDATO","Blocked List");
 
Index: trunk/admin/modules/Elezioni/language/lang-it.php
===================================================================
--- trunk/admin/modules/Elezioni/language/lang-it.php	(revision 361)
+++ trunk/admin/modules/Elezioni/language/lang-it.php	(revision 362)
@@ -38,4 +38,5 @@
 		define("_CONSI","Consigliere");
 		define("_LISTA","Lista");
+		define("_LISTAPREF","Lista e Preferenza");
 		define("_CANDIDATO","Candidato");
 		define("_SOLO_GRUPPO","Voti al solo candidato Sindaco");
@@ -48,4 +49,5 @@
 		define("_CANDIDATO","Candidato");
 		define("_LISTA","Lista");
+		define("_LISTAPREF","Lista e Preferenza");
 		break;
 	case 5: 
@@ -77,4 +79,5 @@
 		define("_CANDIDATO","Candidato");
 		define("_LISTA","Lista");
+		define("_LISTAPREF","Lista e Preferenza");
 		define("_GRUPPOLOGO","Logo della Lista");
 		define("_CONSI","Candidato Lista");
@@ -86,4 +89,5 @@
 		define("_CONSI","Candidato Lista");
 		define("_LISTA","Lista");
+		define("_LISTAPREF","Lista e Preferenza");
 		define("_CANDIDATO","Candidato");
 		define("_SOLO_GRUPPO","Voti al solo candidato Presidente");
@@ -125,5 +129,4 @@
 		break;
 	case 14:
-		define("_SOLO_GRUPPO","Voti al solo candidato Sindaco");
 		define("_CONSULTAZIONE","Consultazione Parlamentare Europea"); //genere 4
 		define("_GRUPPO","Lista");
@@ -131,9 +134,9 @@
 		define("_CONSI","Candidato Lista");
 		define("_LISTA","Lista");
+		define("_LISTAPREF","Lista e Preferenza");
 		define("_CANDIDATO","Candidato");
 		define("_DESCRCONS","EUROPEE");
 		break;
 	case 15:
-		define("_SOLO_GRUPPO","Voti al solo candidato Sindaco");
 		define("_CONSULTAZIONE","Consultazione Camera"); //genere 2 
 		define("_GRUPPO","Coalizione");
@@ -151,16 +154,17 @@
 		break;
 	case 17:
-		define("_SOLO_GRUPPO","Voti al solo candidato Sindaco");
 		define("_CONSULTAZIONE","Consultazione Elezioni Regionali"); //genere 5
 		define("_GRUPPO","Candidato Presidente");
 		define("_LISTA","Lista");
+		define("_LISTAPREF","Lista e Preferenza");
 		define("_CANDIDATO","Candidato");
 		define("_DESCRCONS","REGIONALI");
 		break;
-        case 18:
+    case 18:
 		define("_CONSULTAZIONE","Consultazione Camera dei deputati"); //genere 5
 		define("_GRUPPO","Candidato Uninominale");
 		define("_SOLO_GRUPPO","Voti al solo Candidato Uninominale");
 		define("_LISTA","Lista collegata");
+		define("_LISTAPREF","Lista e Preferenza");
 		define("_CANDIDATO","Listino bloccato");
 		define("_ATT_UNI","Attenzione! Il dettaglio dei voti");
@@ -169,9 +173,10 @@
 		define("_NULLISTA",0);
 		break;
-        case 19:
+    case 19:
 		define("_CONSULTAZIONE","Consultazione Senato della Repubblica"); //genere 5
 		define("_GRUPPO","Candidato Uninominale");
 		define("_SOLO_GRUPPO","Voti al solo Candidato Uninominale");
 		define("_LISTA","Lista collegata");
+		define("_LISTAPREF","Lista e Preferenza");
 		define("_CANDIDATO","Listino bloccato");
 		define("_ATT_UNI","Attenzione! Il dettaglio dei voti");
Index: trunk/admin/modules/Elezioni/restore.php
===================================================================
--- trunk/admin/modules/Elezioni/restore.php	(revision 361)
+++ trunk/admin/modules/Elezioni/restore.php	(revision 362)
@@ -18,4 +18,5 @@
 $param=strtolower($_SERVER['REQUEST_METHOD']) == 'get' ? $_GET : $_POST;
 if (isset($param['datafile'])) $datafile=addslashes($param['datafile']); else $datafile='';
+$id_cons_gen=intval($param['id_cons_gen']);
 include("modules/Elezioni/ele.php");
 ele();
@@ -46,5 +47,5 @@
 $scarto=0;
 $conta=array();
-    while( $currentLine <= $cntFile ){
+while( $currentLine <= $cntFile ){
 	$appo=substr($arrFile[$currentLine],1,-2);
 	$conta[$x]=0; 
@@ -63,5 +64,5 @@
 		}
 	}else {$scarto++;$currentLine++;}
-	}
+}
 if ($scarto==0){
    $currentLine = 0;
@@ -83,7 +84,8 @@
 					$appo=substr($arrFile[$currentLine],1,-2);
 				else $appo='';
-				if(isset($tabs[($x+1)]))
-					if ($appo==$tabs[($x+1)]){ $x++; break;}
-				elseif($appo=='') { $x++; break;}
+				if(isset($tabs[($x+1)])){
+					if ($appo==$tabs[($x+1)]){ $x++; break;}}
+					elseif($appo=='') { $x++; break;}
+				
 				if(isset($arrFile[$currentLine]))				
 					$test=explode(':',$arrFile[$currentLine]); if(!is_array($test)) {die("errore di import<br>");}
@@ -99,9 +101,18 @@
 							} 
 						}
-						if(!$res_del->rowCount()) die ("delete $tbs where id_cons=$idcns--- errore di cancellazione");
+					#	if(!$res_del->rowCount()) die ("delete $tbs where id_cons=$idcns--- errore di cancellazione");
 					}else $valori.= ",'".addslashes(base64_decode($val))."'";
-				$sql="insert into $tab values($valori)";	
+					if($tab=='soraldo_ele_cons_comune') $valori.=",'0'";
+				$sql="insert into $tab values($valori)";
+			try {				
 				$res_comune = $dbi->prepare("$sql");
 				$res_comune->execute();	
+        }
+	catch(PDOException $e)
+	{
+	    echo $sql . "<br>" . $e->getMessage();
+	}                                                                                       	
+
+#echo "TAB: $tbs -- $sql<br>";
 				$currentLine++;
 			}
@@ -111,8 +122,9 @@
 } else $errore=1;
 fclose($handle);
+die("finito");
 }
 if (isset($errore))
 	if ($errore) die( _MEX_RESTORE_FAILED);
-	else echo _MEX_RESTORE_OK;
+	else die( _MEX_RESTORE_OK );
 echo"</td></tr></table>";
 include("footer.php");
Index: trunk/admin/versione.php
===================================================================
--- trunk/admin/versione.php	(revision 361)
+++ trunk/admin/versione.php	(revision 362)
@@ -1,7 +1,7 @@
 <?php
 
-$versione = "3.0 rev 361";
+$versione = "3.0 rev 362";
 $version_number = $versione;
-$datarel = "17 marzo 2022";
+$datarel = "27 marzo 2022";
 $version = "Eleonline $version_number (<i>Data Release: $datarel</i>)";
 
