Index: trunk/admin/modules/Elezioni/ele_voti.php
===================================================================
--- trunk/admin/modules/Elezioni/ele_voti.php	(revision 253)
+++ trunk/admin/modules/Elezioni/ele_voti.php	(revision 254)
@@ -43,5 +43,5 @@
 include("modules/Elezioni/funzionidata.php");
 include("modules/Elezioni/ele.php");
-global $votolista, $limite, $dettnulli;
+global $votolista, $limite, $dettnulli,$disgiunto;
 if(!isset($votolista)) $votolista=0;
 $res = mysql_query("SELECT tipo_cons FROM ".$prefix."_ele_consultazione where id_cons_gen='$id_cons_gen'" , $dbi);
@@ -50,6 +50,6 @@
 $res = mysql_query("SELECT count(id_circ) FROM ".$prefix."_ele_circoscrizione where id_cons='$id_cons' ", $dbi);
 list($num_circ)=mysql_fetch_row($res);
-$res = mysql_query("SELECT solo_gruppo FROM ".$prefix."_ele_cons_comune where id_cons='$id_cons' ", $dbi);
-list($dettnulli)=mysql_fetch_row($res);
+$res = mysql_query("SELECT solo_gruppo,disgiunto FROM ".$prefix."_ele_cons_comune where id_cons='$id_cons' ", $dbi);
+list($dettnulli,$disgiunto)=mysql_fetch_row($res);
 if ($conscirc){  // or $num_circ==1
 	if (!$id_circ){
@@ -80,5 +80,5 @@
 
 function stato_rilevazione($id_sez,$solosede){
-global $id_cons, $prefix, $dbi, $id_cons_gen,$status,$genere,$votol, $votog, $votoc,$idrefgruppo,$num_ril,$circo;
+global $id_cons, $prefix, $dbi, $id_cons_gen,$status,$genere,$votol, $votog, $votoc,$idrefgruppo,$num_ril,$circo,$dettnulli,$tipo_cons;
 
 if($idrefgruppo and $genere==0) $perref= "and id_gruppo='$idrefgruppo'";
@@ -142,6 +142,6 @@
 		#controllo congruenza voti espressi
 			#per referendum
+		$resref = mysql_query("SELECT id_gruppo FROM ".$prefix."_ele_gruppo where id_cons='$id_cons'", $dbi);
 		if($genere==0){ 
-			$resref = mysql_query("SELECT id_gruppo FROM ".$prefix."_ele_gruppo where id_cons='$id_cons'", $dbi);
 			$numscru=mysql_num_rows($resref); $rifscru=0;
 			while(list($idrefgruppo)=mysql_fetch_row($resref)) {
@@ -178,7 +178,7 @@
 		#controllo congruenza voti di gruppo
 		if($genere!=4){
-		$res3= mysql_query("SELECT sum(voti) FROM ".$prefix."_ele_voti_gruppo where id_sez='$id_sez' and id_cons='$id_cons'", $dbi);
+		$res3= mysql_query("SELECT sum(voti),sum(solo_gruppo) FROM ".$prefix."_ele_voti_gruppo where id_sez='$id_sez' and id_cons='$id_cons'", $dbi);
 		if($res3 and !$votog){#$status=0;$ops=-4;
-			list($votigs) = mysql_fetch_row($res3);
+			list($votigs,$votisolog) = mysql_fetch_row($res3);
 			if($votigs  and $genere!=2) {  
 				#	$status=0;
@@ -186,6 +186,6 @@
 #					$res4 = mysql_query("$query", $dbi);
 #					list($votigs)=mysql_fetch_row($res4);
-					if($votigs>0) {
-						if (($votigs+$sololista)==$validi)
+					if($votigs>0||$sololista==$validi) {
+						if (($votigs+$sololista)==$validi && (!$sologruppo || $votisolog==($sologruppo*$dettnulli) || ($sologruppo<$validi and $validilista+$contestatilista+$votinullilista==0)))
 							{$status=3;$ops=-3;$gru=1;}
 						else {$gru=-1; $stret=4;}
@@ -195,20 +195,37 @@
 		}#else {$gru=1;echo "--$votigs -- $votog";}
 		if(($genere>1 and !$votol)){#$status=0;
-		$res4= mysql_query("SELECT t1.preferenze,t1.id_fascia,t2.limite FROM ".$prefix."_ele_cons_comune as t1 left join ".$prefix."_ele_conf as t2 on t1.id_conf=t2.id_conf where t1.id_cons='$id_cons'", $dbi);
-		if($res4) list($testpref,$fascia,$limite)=mysql_fetch_row($res4); else {$testpref=0;$fascia=0;$limite=0;}
+		$res4= mysql_query("SELECT t1.preferenze,t1.id_fascia,t2.limite,t1.disgiunto FROM ".$prefix."_ele_cons_comune as t1 left join ".$prefix."_ele_conf as t2 on t1.id_conf=t2.id_conf where t1.id_cons='$id_cons'", $dbi);
+		if($res4) list($testpref,$fascia,$limite,$disgiunto)=mysql_fetch_row($res4); else {$testpref=0;$fascia=0;$limite=0;}
 
 		#controllo congruenza voti di lista
 #		$res3= mysql_query("SELECT sum(voti) FROM ".$prefix."_ele_voti_lista where id_cons='$id_cons'", $dbi);
 #			list($votil) = mysql_fetch_row($res3);
-					$tablg=$fascia<=$limite ? "gruppo":"lista";
-					$query="SELECT sum(voti) FROM ".$prefix."_ele_voti_$tablg where id_sez='$id_sez' and  id_cons='$id_cons'";	
+					$tablg=($fascia<=$limite && !$disgiunto) ? "gruppo":"lista";
+					$query="SELECT sum(voti),sum(solo_".$tablg.") FROM ".$prefix."_ele_voti_$tablg where id_sez='$id_sez' and  id_cons='$id_cons'";	
 					$res4 = mysql_query($query, $dbi);
-					list($votils)=mysql_fetch_row($res4);
+					list($votils,$votisolols)=mysql_fetch_row($res4);
 					$query="SELECT voti FROM ".$prefix."_ele_voti_$tablg where id_sez='$id_sez' and  id_cons='$id_cons'";	
 					$res4 = mysql_query($query, $dbi);
 					$sezscru=mysql_num_rows($res4);
 			if($sezscru) {
-					if($genere==4 or $votog) $contrlis= ($validilista+$sologruppo==$validi) ? 1:0;
-					else $contrlis=($sologruppo+$validilista+$contestatilista+$votinullilista-$sololista)==$validi ? 1:0;
+					if($genere==4 or $votog) {$contrlis= ($votisolols==$sololista || $votisolols==0) ? 1:0; }
+#################					
+				    else {
+					$contrlis=($sologruppo+$validilista+$contestatilista+$votinullilista)==$validi  ? 1:0;
+					if($contrlis and $disgiunto and ($sologruppo+$validilista+$contestatilista+$votinullilista)==0)
+						$contrlis=($votisolols==$sololista  || $votisolols==0) ? 1:0;
+						if($contrlis  and $tipo_cons==18 or $tipo_cons==19)
+							while ( list($id_gruppo)=mysql_fetch_row($resref))
+								{
+								$res3= mysql_query("SELECT sum(voti-solo_gruppo) FROM ".$prefix."_ele_voti_gruppo where id_sez='$id_sez' and id_gruppo='$id_gruppo'", $dbi);
+								$res4= mysql_query("SELECT sum(voti+nulli_lista) FROM ".$prefix."_ele_voti_lista where id_sez='$id_sez' and  id_lista in (select id_lista from ".$prefix."_ele_lista where id_gruppo='$id_gruppo')", $dbi);
+								list($vgruppo)=mysql_fetch_row($res3);
+								list($vliste)=mysql_fetch_row($res4);
+								if($vliste>$vgruppo) {$contrlis=0 ;} 
+								if($vliste<$vgruppo) {$contrlis=0 ;} 
+						}
+					}
+#################	
+					
 					if((($contrlis) and $validilista==$votils) or ($fascia<=$limite and $fascia)) {$status=4;$lis=1;$ops=-4;}
 					elseif($sezscru) {$stret=3;$lis=-1;}
@@ -226,5 +243,5 @@
 							if($res4) list($testpref)=mysql_fetch_row($res4); else $testpref=0;
 							while(list($testlista)=mysql_fetch_row($res3)){
-								if($fascia<=$limite)
+								if($fascia<=$limite and !$disgiunto and !$dettnulli)
 								{
 									$res4= mysql_query("SELECT id_gruppo FROM ".$prefix."_ele_lista where id_cons='$id_cons' and id_lista='$testlista'", $dbi);
@@ -535,11 +552,12 @@
 function preferenze($id_cons,$do,$id_circ,$id_sede,$id_sez,$ops){
  	global $aid, $prefix, $dbi, $id_lista,$genere,$id_cons_gen,$id_gruppo,$sezi,$circo,$votog,$votol,$votoc,$conscirc;
-global $tipo_cons,$limite,$dettnulli;
+global $tipo_cons,$limite,$dettnulli,$disgiunto;
 
 $bgcolor1="#7777ff";
 $bgcolor2=$_SESSION['bgcolor2'];
     //controlla se sono stati inseriti i votanti
-$result = mysql_query("SELECT preferenze, id_fascia, id_conf from ".$prefix."_ele_cons_comune where id_cons='$id_cons'",$dbi);
-list($numprefs,$fascia,$id_conf)=mysql_fetch_row($result);
+$result = mysql_query("SELECT preferenze, id_fascia, id_conf,solo_gruppo, disgiunto from ".$prefix."_ele_cons_comune where id_cons='$id_cons'",$dbi);
+list($numprefs,$fascia,$id_conf,$flagsg,$disgiunto)=mysql_fetch_row($result);
+
 ####### 06-11-2014 - circoscrizionali - nello spostamento ad altra sezione resta sullo stesso numero di lista anche se sono sezioni di diverse circoscrizioni
 if ($circo and $id_lista){
@@ -560,5 +578,5 @@
 		$ele_lista='';
 		if (($genere==4 or $genere==5) and !$votoc) { //liste a piu' candidati
-			if(($genere==5 and $id_conf and $fascia<=$limite and !isdisgiunto()) and !$id_lista) { //esclude il voto di lista per le comunali nei comuni sotto fascia limite
+			if(($genere==5 and $id_conf and $fascia<=$limite and !$disgiunto) and !$id_lista) { //esclude il voto di lista per le comunali nei comuni sotto fascia limite
 				$result = mysql_query("SELECT id_lista from ".$prefix."_ele_lista where id_cons=$id_cons limit 0,1",$dbi);
 				list($id_lista)=mysql_fetch_row($result);
@@ -583,13 +601,13 @@
 			$result = mysql_query("SELECT sum(t1.voti),0,0 from ".$prefix."_ele_voti_candidati as t1 left join ".$prefix."_ele_candidati as t2 on (t1.id_cand=t2.id_cand) where t1.id_sez=$id_sez and t2.id_lista=$id_rif",$dbi);
 			list($votisezcand)=mysql_fetch_row($result);
-			if((($fascia>$limite or isdisgiunto()) or !$id_conf) or $genere==4)
-                $result = mysql_query("SELECT voti,nulli_lista from ".$prefix."_ele_voti_lista where id_sez='$id_sez' and id_lista='$id_rif'", $dbi);
+			if((($fascia>$limite or $disgiunto) or !$id_conf) or $genere==4)
+                $result = mysql_query("SELECT voti,solo_lista from ".$prefix."_ele_voti_lista where id_sez='$id_sez' and id_lista='$id_rif'", $dbi);
             else{
 
 				$result = mysql_query("SELECT id_gruppo from ".$prefix."_ele_lista where id_lista='$id_rif'", $dbi);
 				list($id_gruppo)=mysql_fetch_row($result);
-				$result = mysql_query("SELECT sum(voti),0,0 from ".$prefix."_ele_voti_gruppo where id_sez='$id_sez' and id_gruppo='$id_gruppo'", $dbi);
+				$result = mysql_query("SELECT sum(voti),0 from ".$prefix."_ele_voti_gruppo where id_sez='$id_sez' and id_gruppo='$id_gruppo'", $dbi);
             }
-			list($votisezlis,$sgpl,$vnpl)=mysql_fetch_row($result);
+			list($votisezlis,$sgpl)=mysql_fetch_row($result);
 			if($votisezcand>($votisezlis*$numprefs))
 				{$segna="style=\"background-color: #dd0000;\"";}
@@ -614,13 +632,15 @@
 		if ((!$id_lista)){$tab="_ele_voti_lista";} else {$tab="_ele_voti_candidati";}
 if(($genere==4 or ($genere==5 and $votog)) and !$id_lista)	
-		$result = mysql_query("SELECT sum(t1.voti),t2.validi, t2.solo_gruppo,t2.contestati_lista,t2.voti_nulli,t2.bianchi,t2.nulli,0,0,0,0 from ".$prefix."_ele_sezioni as t2 left join ".$prefix.$tab." as t1 on (t1.id_sez=t2.id_sez) where t2.id_sez=$id_sez group by t1.id_sez",$dbi);
+		$result = mysql_query("SELECT sum(t1.voti),t2.validi, t2.solo_gruppo,t2.contestati_lista,t2.voti_nulli,t2.bianchi,t2.nulli,0,0,0 from ".$prefix."_ele_sezioni as t2 left join ".$prefix.$tab." as t1 on (t1.id_sez=t2.id_sez) where t2.id_sez=$id_sez group by t1.id_sez",$dbi);
 else
-	if($tab=="_ele_voti_lista")
-		$result = mysql_query("SELECT sum(t1.voti),t2.validi_lista, t2.solo_gruppo,t2.contestati_lista,t2.voti_nulli_lista,t2.bianchi,t2.nulli,t2.contestati,t2.voti_nulli,0,t1.nulli_lista from ".$prefix."_ele_sezioni as t2 left join ".$prefix.$tab." as t1 on (t1.id_sez=t2.id_sez) where t2.id_sez='$id_sez' group by t1.id_sez",$dbi);
-	else
-		$result = mysql_query("SELECT sum(t1.voti),t2.validi_lista, t2.solo_gruppo,t2.contestati_lista,t2.voti_nulli_lista,t2.bianchi,t2.nulli,t2.contestati,t2.voti_nulli,solo_lista,0 from ".$prefix."_ele_sezioni as t2 left join ".$prefix.$tab." as t1 on (t1.id_sez=t2.id_sez) where t2.id_sez='$id_sez' group by t1.id_sez",$dbi);
-
-// aggiunte le variabili $sgpl e $vnpl per la gestione dei voti 1) al solo presidente per singola lista - 2) al solo presidente per singola lista perché nullo o contestato quello di lista		
-		list( $voti_sez, $validi2, $sg,$cont2,$vnulli2,$bia2,$nul2,$con2,$vnul2,$sgpl,$vnpl) = mysql_fetch_row($result);
+		$result = mysql_query("SELECT sum(t1.voti),t2.validi_lista, t2.solo_gruppo,t2.contestati_lista,t2.voti_nulli_lista,t2.bianchi,t2.nulli,t2.contestati,t2.voti_nulli,t2.solo_gruppo from ".$prefix."_ele_sezioni as t2 left join ".$prefix.$tab." as t1 on (t1.id_sez=t2.id_sez) where t2.id_sez='$id_sez' group by t1.id_sez",$dbi);
+// aggiunte le variabili $sgpl e $vnulli2 per la gestione dei voti 1) al solo presidente per singola lista - 2) al solo presidente per singola lista perchÃ© nullo o contestato quello di lista		
+		$isscr= mysql_num_rows($result);
+		list( $voti_sez, $validi2, $sg,$cont2,$vnulli2,$bia2,$nul2,$con2,$vnul2,$sgpl) = mysql_fetch_row($result);
+		if(($genere==5 and !$disgiunto and $voti_sez and $flagsg and ($tipo_cons==18 or $tipo_cons==19))){ 
+			$resg = mysql_query("SELECT sum(solo_gruppo) from ".$prefix."_ele_voti_gruppo where id_cons=$id_cons and id_sez=$id_sez",$dbi);
+			list($sgpl)=mysql_fetch_row($resg);
+			if ($sg != $sgpl) echo "<table class=\"table-menu\" style=\"width: 50%;\"><tr><td style=\"background-color: rgb(255, 0, 0); color: black; text-align: center\"><img src=\"modules/Elezioni/images/alert.gif\" align=\"middle\" alt=\"\"><br><b> "._ATT_UNI." ".$sgpl." "._ATT_TOT_UNI." ".$sg."</b><br></td></table>";
+		}
 		$valista=$validi2;
 		if(!$id_lista or $genere==3){	//controllo di congruenza
@@ -637,5 +657,5 @@
 			$result = mysql_query("SELECT sum(t1.voti) from ".$prefix."_ele_voti_candidati as t1 left join ".$prefix."_ele_candidati as t2 on (t1.id_cand=t2.id_cand) where t1.id_sez=$id_sez and t2.id_lista=$id_lista",$dbi);
 			list($votisezcand)=mysql_fetch_row($result);
-			if(($fascia>$limite or isdisgiunto()) or !$id_conf)
+			if(($fascia>$limite or $disgiunto) or !$id_conf)
                  $result = mysql_query("SELECT sum(voti) from ".$prefix."_ele_voti_lista where id_sez='$id_sez' and id_lista='$id_lista'", $dbi);
             else{
@@ -647,6 +667,37 @@
 			list($votisezlis)=mysql_fetch_row($result);
 			if($votisezcand>($votisezlis*$numprefs))
+				{
 				echo "<table class=\"table-menu\" style=\"width: 50%;\"><tr><td style=\"background-color: rgb(255, 0, 0); color: black; text-align: center\"><img src=\"modules/Elezioni/images/alert.gif\" align=\"middle\" alt=\"\"><br/><b> ATTENZIONE!<BR/>I voti di preferenza $votisezcand <br/>superano i voti di lista $votisezlis</b><br></td></tr></table>";
-			
+				}
+		}
+#controllo voti a liste collegate <= voto di gruppo per voto non disgiunto
+	$errgrulis=array();
+	if($genere==5 and !$disgiunto  and ($tipo_cons==18 or $tipo_cons==19)){
+		$resref = mysql_query("SELECT id_gruppo FROM ".$prefix."_ele_gruppo where id_cons='$id_cons'", $dbi);
+		$res4= mysql_query("SELECT count(0) FROM ".$prefix."_ele_voti_lista where id_sez='$id_sez'", $dbi);
+		list($sezscrl)=mysql_fetch_row($res4); 
+		if ($sezscrl)
+				
+		while ( list($id_gruppo)=mysql_fetch_row($resref))
+                    {
+                    $res3= mysql_query("SELECT sum(voti-solo_gruppo) FROM ".$prefix."_ele_voti_gruppo where id_sez='$id_sez' and id_gruppo='$id_gruppo'", $dbi);
+                    $res4= mysql_query("SELECT sum(voti+nulli_lista) FROM ".$prefix."_ele_voti_lista where id_sez='$id_sez' and  id_lista in (select id_lista from ".$prefix."_ele_lista where id_gruppo='$id_gruppo')", $dbi);
+                    list($vgruppo)=mysql_fetch_row($res3);
+                    list($vliste)=mysql_fetch_row($res4);
+                    if($vliste>$vgruppo)
+                    	{
+                    	 $result = mysql_query("SELECT descrizione FROM ".$prefix."_ele_gruppo where id_gruppo='$id_gruppo'", $dbi);
+                    	 list($dgruppo)=mysql_fetch_row($result);
+                    	echo "<table class=\"table-menu\" style=\"width: 50%;\"><tr><td style=\"background-color: rgb(255, 0, 0); color: black; text-align: center\"><img src=\"modules/Elezioni/images/alert.gif\" align=\"middle\" alt=\"\"><br/><b> ATTENZIONE!<BR/>I voti delle liste collegate<br/> superano i voti assegnati al gruppo $dgruppo </b><br></td></tr></table>";
+                    	$errgrulis[$id_gruppo]=1;
+                    	}
+                    elseif($vliste<$vgruppo)
+                    	{
+                    	 $result = mysql_query("SELECT descrizione FROM ".$prefix."_ele_gruppo where id_gruppo='$id_gruppo'", $dbi);
+                    	 list($dgruppo)=mysql_fetch_row($result);
+                    	echo "<table class=\"table-menu\" style=\"width: 50%;\"><tr><td style=\"background-color: rgb(255, 0, 0); color: black; text-align: center\"><img src=\"modules/Elezioni/images/alert.gif\" align=\"middle\" alt=\"\"><br/><b> ATTENZIONE!<BR/>I voti assegnati al gruppo $dgruppo<br/> superano i voti delle liste collegate </b><br></td></tr></table>";
+                    	$errgrulis[$id_gruppo]=1;
+                    	}
+                    }
 		}
 
@@ -674,6 +725,8 @@
 			echo "<td bgcolor=\"$bgcolor1\" align=\"left\"><b>"._DESCR."</b></td>"
 			."<td bgcolor=\"$bgcolor1\" align=\"center\"><b>"._VOTI."</b></td>";
-			if($dettnulli){
+			if($dettnulli && !$disgiunto  && $tipo_cons!=18 && $tipo_cons!=19)
 			echo "<td bgcolor=\"$bgcolor1\" align=\"center\"><b>"._NULLI_LISTE."</b></td>";
+			if($disgiunto){
+			echo "<td bgcolor=\"$bgcolor1\" align=\"center\"><b>"._SOLOLIS."</b></td>";
 			}
 		}
@@ -714,5 +767,5 @@
 			} 
 		}else {
-			$result1 = mysql_query("select t2.voti,t1.id_lista, descrizione,simbolo,num_lista,t2.nulli_lista 
+			$result1 = mysql_query("select t2.voti,t1.id_lista, descrizione,simbolo,num_lista,t2.nulli_lista,t2.solo_lista,t1.id_gruppo 
 			from ".$prefix."_ele_lista as t1, ".$prefix."_ele_voti_lista as t2
 			where t1.id_cons='$id_cons' 
@@ -722,20 +775,21 @@
 			$num_lista=mysql_num_rows($result1);
 			if (!$num_lista){
-				$result1 = mysql_query("select '',t1.id_lista, descrizione,simbolo,num_lista
-				from ".$prefix."_ele_lista as t1 where t1.id_cons='$id_cons' $circo
-				order by t1.num_lista", $dbi);
-			}
-			while (list($pro['voti'],$id_lista3,$descr_lista,$simb_lista,$num_lista,$vnpl)=mysql_fetch_row($result1)){
+				$result1 = mysql_query("select '',id_lista, descrizione,simbolo,num_lista,'','',id_gruppo
+				from ".$prefix."_ele_lista where id_cons='$id_cons' $circo
+				order by num_lista", $dbi);
+			}
+			while (list($pro['voti'],$id_lista3,$descr_lista,$simb_lista,$num_lista,$vnpl,$slpl,$rifgruppo)=mysql_fetch_row($result1)){
 				echo "<tr bgcolor=\"$bgcolor2\">";
 //				if ($genere<4 or $votoc){
 //				}
-
+				$errcolor='';
+				if(isset($errgrulis[$rifgruppo])) $errcolor="style=\"background-color: rgb(255, 0, 0);\"";
 				echo "<td align=\"center\"><b> $num_lista </b></td>"
 				."<td align=\"left\"><b> $descr_lista</b></td>";
 				$cond_sele="and id_lista=$id_lista3";
-				echo "<td align=\"right\"><input  name=\"voti$i\" value=\"".$pro['voti']."\" size=\"7\"  style=\"text-align:right\">";
-
-				if($dettnulli) echo "</td><td align=\"right\"><input  name=\"vnpl$i\" value=\"".$vnpl."\" size=\"7\"  style=\"text-align:right\"><input type=\"hidden\" name=\"id_lista$i\" value=\"$id_lista3\"></td>";
-				else echo "<input type=\"hidden\" name=\"id_lista$i\" value=\"$id_lista3\"></td>";
+				echo "<td align=\"right\" $errcolor><input  name=\"voti$i\" value=\"".$pro['voti']."\" size=\"7\"  style=\"text-align:right\">";
+				if($dettnulli && !$disgiunto  && $tipo_cons!=18 && $tipo_cons!=19) echo "</td><td align=\"right\"><input  name=\"vnpl$i\" value=\"".$vnpl."\" size=\"7\"  style=\"text-align:right\">";
+				if($disgiunto) echo "</td><td align=\"right\"><input  name=\"slpl$i\" value=\"".$slpl."\" size=\"7\"  style=\"text-align:right\">";
+				echo "<input type=\"hidden\" name=\"id_lista$i\" value=\"$id_lista3\"></td>";
 //				echo "<td align=\"right\">$sgpl";
 				echo "</tr>\n";
@@ -748,5 +802,5 @@
 		// toglie ai candidati la visual... del solo_gruppo 
 		if(!$votog) {
-		   if (($genere==3 OR $genere==5) and (!$id_lista) and ((isdisgiunto() or $fascia>$limite) or !$id_conf)) { //gruppo e liste
+		   if (($genere==3 OR $genere==5) and (!$id_lista) and (($disgiunto or $fascia>$limite) or !$id_conf)) { //gruppo e liste
 			echo "<tr bgcolor=\"$bgcolor2\"><td></td><td><b>"._VALIDI_LISTA."</b></td><td align=\"center\"><input type=\"hidden\" name=\"id_sez\" value=\"$id_sez\"><input name=\"valista\" value=\"$valista\" size=\"5\" style=\"text-align:right\"></td></tr>";
 			echo "<tr bgcolor=\"$bgcolor2\"><td></td><td><b>"._SOLO_GRUPPO."</b></td><td align=\"center\"><input name=\"sg\" value=\"$sg\" size=\"5\" style=\"text-align:right\"></td></tr>";
@@ -754,5 +808,5 @@
 	."</td></tr><tr bgcolor=\"$bgcolor2\"><td></td><td><b>"._CONTESTATI_LISTE."</b></td><td align=\"center\"><input  name=\"contestati\" value=\"$contestati\" size=\"5\" style=\"text-align:right\"></td></tr>";
 			
-		   }elseif (($genere==3 OR $genere==5) and !$votoc and ((isdisgiunto() or $fascia>$limite) or !$id_conf)){ //}elseif ($tipo_cons!=10 and $tipo_cons!=11){
+		   }elseif (($genere==3 OR $genere==5) and !$votoc and (($disgiunto or $fascia>$limite) or !$id_conf)){ //}elseif ($tipo_cons!=10 and $tipo_cons!=11){
 			echo "<tr bgcolor=\"$bgcolor1\"><td></td><td><b>"._SOLO_GRUPPO."</b></td><td align=\"center\">$sg</td></tr>";
 		   }
@@ -795,5 +849,5 @@
 
 function rec_voti() {
-	global $prefix, $dbi,$aid,$id_cons,$ops,$genere,$votog,$fileout,$id_comune,$limite,$update,$dettnulli;
+	global $prefix, $dbi,$aid,$id_cons,$ops,$genere,$votog,$fileout,$id_comune,$limite,$update,$dettnulli,$disgiunto,$tipo_cons;
 	
 	$sqlcomu="select id_fascia,id_conf from ".$prefix."_ele_cons_comune where id_cons='$id_cons'";
@@ -819,7 +873,7 @@
 		$condizione="id_cand";
 	}else{
-		$condizione="id_lista";
-	}
-	if ((($genere==3) OR ($genere==5)) and !$id_lista and !$votog and ((isdisgiunto() or $fascia>$limite) or !$id_conf)) $y = (count($arg)-4);
+		$condizione="id_lista"; 
+	}
+	if ((($genere==3) OR ($genere==5)) and !$id_lista and !$votog and (($disgiunto or $fascia>$limite) or !$id_conf)) $y = (count($arg)-4);
 	else $y=count($arg);#die ("delete from ".$prefix."_ele_controllosez where id_cons='$id_cons' and id_sez='$id_sez'");
 	mysql_query("delete from ".$prefix."_ele_controllosez where id_cons='$id_cons' and id_sez='$id_sez'", $dbi);
@@ -833,5 +887,8 @@
 	for($i=8,$y--;$i< $y;$i++) {		
 		$voti = intval($arg[$i++]);
-		if($dettnulli and $condizione!="id_cand") {$vnpl = intval($arg[$i++]); $vnriga=",nulli_lista='$vnpl'"; $vnrigains=",'".$vnpl."'";} else {$vnriga=''; if ($condizione=="id_lista") $vnrigains=",''"; else $vnrigains="";}
+		$vnrigains=",'0'";
+		$vnriga='';
+		if($dettnulli && !$disgiunto && $tipo_cons!=18 && $tipo_cons!=19 and $condizione!="id_cand") {$vnpl = intval($arg[$i++]); $vnriga=",nulli_lista='$vnpl'"; $vnrigains=",'".$vnpl."'";} else {if (!($condizione=="id_lista")) $vnrigains="";}
+		if($disgiunto and $condizione!="id_cand") {$slpl = intval($arg[$i++]); $vnriga.=",solo_lista='$slpl'"; $vnrigains.=",'".$slpl."'";} else {$vnriga.=''; if ($condizione=="id_lista") $vnrigains.=",'0'"; else $vnrigains="";}
 		$id_cand = intval($arg[$i]); 
 		$result = mysql_query("select * from ".$prefix."$tab where id_cons='$id_cons' and id_sez='$id_sez' and $condizione='$id_cand'", $dbi);
@@ -839,5 +896,6 @@
 
 		if ($ar){
-			if ($ar['voti']!=$voti or (isset($vnpl) and $ar['nulli_lista']!=$vnpl)) {
+#die("T1:$dettnulli -- T2:$disgiunto -- update  ".$prefix."$tab set voti='$voti'$vnriga where id_cons='$id_cons' and id_sez='$id_sez' and $condizione='$id_cand'");
+			if ($ar['voti']!=$voti or (isset($vnpl) and $ar['nulli_lista']!=$vnpl) or (isset($slpl) and $ar['solo_lista']!=$slpl)) {
 				mysql_query("update  ".$prefix."$tab set voti='$voti'$vnriga where id_cons='$id_cons' and id_sez='$id_sez' and $condizione='$id_cand'", $dbi);
 				if ($fileout) fwrite($fp,"update  ".$prefix."$tab set voti='$voti' where id_cons='$id_cons' and id_sez='$id_sez' and $condizione='$id_cand';\n");
@@ -855,5 +913,5 @@
 
 	if(!$votog) {
-	   if ((($genere==3) OR ($genere==5)) and !$id_lista and ((isdisgiunto() or $fascia>$limite) or !$id_conf)) {
+	   if ((($genere==3) OR ($genere==5)) and !$id_lista and (($disgiunto or $fascia>$limite) or !$id_conf)) {
 			$valista=$arg[$i++]; 
 			$result = mysql_query("update ".$prefix."_ele_sezioni set solo_gruppo='".$arg[$i]."' where id_sez='$id_sez'",$dbi);
@@ -1176,8 +1234,10 @@
    $tot_voti=$validi+$nulli+$bianchi+$contestati+$votinulli;
 $sololista=$voti_t-$tot_voti;
+	$result= mysql_query("select solo_gruppo,disgiunto from ".$prefix."_ele_cons_comune where id_cons='$id_cons' ", $dbi);
+	list($flagsg,$disgiunto)=mysql_fetch_row($result);
 	$result= mysql_query("select * from ".$prefix."_ele_sezioni where id_cons='$id_cons' and id_sez='$id_sez' ", $dbi);
 	$ar=mysql_fetch_array($result);
 	$validilista=$validi-$ar['solo_gruppo'];
-	if ($ar['solo_lista'] or !isdisgiunto()) $rigasl=''; else $rigasl=", solo_lista='$sololista'";
+	if ($ar['solo_lista'] or !$disgiunto) $rigasl=''; else $rigasl=", solo_lista='$sololista'";
 #die("qui: if($ops==3 and ($genere==3 or $genere==4 or $genere==5) and $votog){");
 	if($ops==3 and ($genere==3 or $genere==4 or $genere==5) and ($votog or $genere==4)){
@@ -1235,4 +1295,5 @@
 	."</script>\n";
 // tabella votanti
+	echo "<center>";
     if ($genere!=0){
 	$result = mysql_query("SELECT voti_uomini,voti_donne, voti_complessivi FROM ".$prefix."_ele_voti_parziale where id_sez='$id_sez' and id_cons='$id_cons' order by data desc,orario desc limit 0,1", $dbi);
@@ -1243,5 +1304,5 @@
    	echo "</table>";
     }
-	echo "<table  class=\"table-menu\" style=\"width: 50%; color: black\"><tr>";
+	echo "<table  class=\"table-menu\" style=\"width: 50%; color: black\">";
     if ($genere==0){
     	$res = mysql_query("SELECT id_gruppo,si+no,validi,nulli,bianchi,contestati FROM ".$prefix."_ele_voti_ref where id_cons='$id_cons' and id_sez='$id_sez'  ", $dbi);
@@ -1250,5 +1311,5 @@
 				$res2 = mysql_query("SELECT num_gruppo FROM ".$prefix."_ele_gruppo where id_cons='$id_cons' and id_gruppo='$id_gruppo'  ", $dbi);
 				list($num_gruppo) = mysql_fetch_row($res2);
-				echo "<td style=\"background-color: rgb(255, 0, 0); text-align:center\"><img src=\"modules/Elezioni/images/alert.gif\" align=\"middle\" alt=\"\"><br><b> "._ATT_VOTI_REF." $num_gruppo: ".$voti_parz." "._NO_VAL_VOTI.": ".$validi."</b><br></td>";
+				echo "<tr><td style=\"background-color: rgb(255, 0, 0); text-align:center\"><img src=\"modules/Elezioni/images/alert.gif\" align=\"middle\" alt=\"\"><br><b> "._ATT_VOTI_REF." $num_gruppo: ".$voti_parz." "._NO_VAL_VOTI.": ".$validi."</b><br></td></tr>";
 			}
 			$res2 = mysql_query("SELECT max(voti_complessivi) FROM ".$prefix."_ele_voti_parziale where id_cons='$id_cons' and id_sez='$id_sez' and id_gruppo='$id_gruppo' ", $dbi);
@@ -1257,8 +1318,10 @@
 				$res2 = mysql_query("SELECT num_gruppo FROM ".$prefix."_ele_gruppo where id_cons='$id_cons' and id_gruppo='$id_gruppo'", $dbi);
 				list($num_gruppo) = mysql_fetch_row($res2);
-				echo "<td style=\"background-color: rgb(255, 0, 0); text-align:center\"><img src=\"modules/Elezioni/images/alert.gif\" align=\"middle\" alt=\"\"><br><b> "._ATT_VOTANTI_REF." $num_gruppo: ".$tot." "._NO_SOMMA." ".($validi+$nulli+$bianchi+$contestati)."</b><br></td>";
+				echo "<tr><td style=\"background-color: rgb(255, 0, 0); text-align:center\"><img src=\"modules/Elezioni/images/alert.gif\" align=\"middle\" alt=\"\"><br><b> "._ATT_VOTANTI_REF." $num_gruppo: ".$tot." "._NO_SOMMA." ".($validi+$nulli+$bianchi+$contestati)."</b><br></td></tr>";
 			}
 		}
     }else{
+	$result= mysql_query("select solo_gruppo,disgiunto from ".$prefix."_ele_cons_comune where id_cons='$id_cons' ", $dbi);
+	list($flagsg,$disgiunto)=mysql_fetch_row($result);
     	$res = mysql_query("SELECT sum(voti) FROM ".$prefix."_ele_voti_gruppo where id_cons='$id_cons' and id_sez='$id_sez'", $dbi);
        	list($voti_parz) = mysql_fetch_row($res);
@@ -1266,16 +1329,56 @@
     	list($validi,$nulli,$bianchi,$contestati,$solo_lista,$votinulli) = mysql_fetch_row($res);
 		if ($voti_parz!=($validi-$solo_lista) and $voti_parz>0){
-			echo "<td style=\"background-color: rgb(255, 0, 0); text-align:center\"><img src=\"modules/Elezioni/images/alert.gif\" align=\"middle\" alt=\"\"><br><b> "._ATT_VOTI." ".$voti_parz." "._NO_VAL_VOTI." ".($validi-$solo_lista)."</b><br></td>";
+			echo "<tr><td style=\"background-color: rgb(255, 0, 0); text-align:center\"><img src=\"modules/Elezioni/images/alert.gif\" align=\"middle\" alt=\"\"><br><b> "._ATT_VOTI." ".$voti_parz." "._NO_VAL_VOTI." ".($validi-$solo_lista)."</b><br></td><tr>";
     	}
 		$res2 = mysql_query("SELECT max(voti_complessivi) FROM ".$prefix."_ele_voti_parziale where id_cons='$id_cons' and id_sez='$id_sez'", $dbi);
 		list($tot) = mysql_fetch_row($res2);
 		if ($validi+$nulli+$bianchi+$contestati+$votinulli!=$tot and $validi+$nulli+$bianchi+$contestati+$votinulli>0){
-			echo "<td style=\"background-color: rgb(255, 0, 0); text-align:center\"><img src=\"modules/Elezioni/images/alert.gif\" align=\"middle\" alt=\"\"><br><b> "._ATT_VOTANTI." ".$tot." "._NO_TOT_VOTI." ".($validi+$nulli+$bianchi+$contestati+$votinulli)."</b><br></td>";
+			echo "<tr><td style=\"background-color: rgb(255, 0, 0); text-align:center\"><img src=\"modules/Elezioni/images/alert.gif\" align=\"middle\" alt=\"\"><br><b> "._ATT_VOTANTI." ".$tot." "._NO_TOT_VOTI." ".($validi+$nulli+$bianchi+$contestati+$votinulli)."</b><br></td></tr>";
     	}
+		$resg=mysql_query("SELECT sum(voti) from ".$prefix."_ele_voti_lista where id_cons=$id_cons and id_sez=$id_sez",$dbi);
+		list($voti_sez)=mysql_fetch_row($resg);
+		if(($genere==5 and !$disgiunto and $voti_sez and $flagsg and ($tipo_cons==18 or $tipo_cons==19))){
+
+			$resg = mysql_query("SELECT sum(solo_gruppo) from ".$prefix."_ele_voti_gruppo where id_cons=$id_cons and id_sez=$id_sez",$dbi);
+			list($sgpl)=mysql_fetch_row($resg);
+			$resg = mysql_query("SELECT solo_gruppo from ".$prefix."_ele_sezioni where id_cons=$id_cons and id_sez=$id_sez",$dbi);
+			list($sg)=mysql_fetch_row($resg);
+			if ($sg != $sgpl) echo "<tr><td style=\"background-color: rgb(255, 0, 0); color: black; text-align: center\"><img src=\"modules/Elezioni/images/alert.gif\" align=\"middle\" alt=\"\"><br><b> "._ATT_UNI." ".$sgpl." "._ATT_TOT_UNI." ".$sg."</b><br></td></tr>";
+		}
+#controllo voti a liste collegate <= voto di gruppo per voto non disgiunto
+if($genere==5 and !$disgiunto and $flagsg  and ($tipo_cons==18 or $tipo_cons==19)){
+                $resref = mysql_query("SELECT id_gruppo FROM ".$prefix."_ele_gruppo where id_cons='$id_cons'", $dbi);
+		  $errgrulis=array();
+		$res4= mysql_query("SELECT count(0) FROM ".$prefix."_ele_voti_lista where id_sez='$id_sez'", $dbi);
+		list($sezscrl)=mysql_fetch_row($res4); 
+		if ($sezscrl)
+                while ( list($id_gruppo)=mysql_fetch_row($resref))
+                    {
+                    $res3= mysql_query("SELECT sum(voti-solo_gruppo) FROM ".$prefix."_ele_voti_gruppo where id_sez='$id_sez' and id_gruppo='$id_gruppo'", $dbi);
+                    $res4= mysql_query("SELECT sum(voti+nulli_lista) FROM ".$prefix."_ele_voti_lista where id_sez='$id_sez' and  id_lista in (select id_lista from ".$prefix."_ele_lista where id_gruppo='$id_gruppo')", $dbi);
+                    list($vgruppo)=mysql_fetch_row($res3);
+                    list($vliste)=mysql_fetch_row($res4); 
+                    if($vliste>$vgruppo  and ($tipo_cons=18 or $tipo_cons=19))
+                        {
+			    $errgrulis[$id_gruppo]=1;
+                         $result = mysql_query("SELECT descrizione FROM ".$prefix."_ele_gruppo where id_gruppo='$id_gruppo'", $dbi);
+                         list($dgruppo)=mysql_fetch_row($result);
+                        echo "<tr><td style=\"background-color: rgb(255, 0, 0); color: black; text-align: center\"><img src=\"modules/Elezioni/images/alert.gif\" align=\"middle\" alt=\"\"><br/><b> ATTENZIONE!<BR/>I voti delle liste collegate<br/> superano i voti assegnati al gruppo $dgruppo </b><br></td></tr>";
+                        }
+                    elseif($vliste<$vgruppo  and ($tipo_cons=18 or $tipo_cons=19))
+                        {
+			    $errgrulis[$id_gruppo]=1;
+                         $result = mysql_query("SELECT descrizione FROM ".$prefix."_ele_gruppo where id_gruppo='$id_gruppo'", $dbi);
+                         list($dgruppo)=mysql_fetch_row($result);
+                        echo "<tr><td style=\"background-color: rgb(255, 0, 0); color: black; text-align: center\"><img src=\"modules/Elezioni/images/alert.gif\" align=\"middle\" alt=\"\"><br/><b> ATTENZIONE!<BR/>I voti assegnati al gruppo $dgruppo <br/> superano i voti delle liste collegate</b><br></td></tr>";
+                        }
+                    }
+}
+
     }
     if(!isset($votinulli)) $votinulli=0;
-	echo "<td></td></tr></table>";
+	echo "<tr><td></td></tr></table>";
 	if ($validi+$nulli+$bianchi+$contestati+$votinulli>0 or $genere==0) {
-    echo "<table class=\"table-menu\" style=\"width: 60%; color: black\"><tr><td colspan=\"3\"><form name=\"sezioni\" action=\"admin.php\">";
+    echo "<table class=\"table-menu\" style=\" width: 60%; color: black\"><tr><td colspan=\"3\"><form name=\"sezioni\" action=\"admin.php\">";
    	echo "<input type=\"hidden\" name=\"op\" value=\"rec_voti_gruppi\">"
     ."<input type=\"hidden\" name=\"id_cons_gen\" value=\"$id_cons_gen\">"
@@ -1308,5 +1411,5 @@
     $i=1;
 	$tot_pref=0;
-       
+       $totsg=0;
     while(list($id_cons2,$id_gruppo,$num_gruppo, $descr_gruppo, $simbolo) = mysql_fetch_row($result)){
   
@@ -1351,7 +1454,13 @@
 		$res = mysql_query("SELECT * FROM ".$prefix."_ele_voti_gruppo where id_cons='$id_cons' and id_sez='$id_sez' and id_gruppo='$id_gruppo' ", $dbi);
 		$pro= mysql_fetch_array($res, 3);
-		echo "</td><td align=\"right\"><input  name=\"voti$i\" value=\"".$pro['voti']."\" size=\"7\"  style=\"text-align:right\"></td>";
-		if($dettnulli) echo "</td><td align=\"right\"><input  name=\"solog$i\" value=\"".$pro['solo_gruppo']."\" size=\"7\"  style=\"text-align:right\"></td>";
+		$errcolor='';
+		if(isset($errgrulis[$id_gruppo])) $errcolor="style=\"background-color: rgb(255, 0, 0);\"";
+		echo "</td><td align=\"right\" $errcolor><input  name=\"voti$i\" value=\"".$pro['voti']."\" size=\"7\"  style=\"text-align:right\"></td>";
+#		$lisgrures = mysql_query("SELECT count(id_lista) FROM ".$prefix."_ele_lista where id_cons='$id_cons' and id_gruppo='$id_gruppo'", $dbi);
+#		list($totlis) = mysql_fetch_row($lisgrures);
+#		if($totlis>1) $insinp=""; else $insinp= "type =\"hidden\" ";		
+		if($dettnulli) {echo "<td align=\"right\"><input name=\"solog$i\" value=\"".$pro['solo_gruppo']."\" size=\"7\"  style=\"text-align:right\"></td>"; $totsg+=$pro['solo_gruppo'];} 
 		$tot_pref += $pro['voti'];
+		echo "</tr>";
 	}
 	
@@ -1361,8 +1470,12 @@
    }
 	if ($genere!=0) {
+		$res = mysql_query("SELECT disgiunto FROM ".$prefix."_ele_cons_comune where id_cons='$id_cons' ", $dbi);
+		list($disgiunto)=mysql_fetch_row($res);
 		$res = mysql_query("SELECT solo_lista FROM ".$prefix."_ele_sezioni where id_sez='$id_sez' ", $dbi);
 		list($sololis)=mysql_fetch_row($res);
-		echo "<tr style=\"background-color: $bgcolor1; text-align:center\"><td></td><td>"._TOTPREF."</td><td>$tot_pref</td></tr>";
-		if(isdisgiunto())
+		echo "<tr style=\"background-color: $bgcolor1; text-align:center\"><td></td><td>"._TOTPREF."</td><td>$tot_pref</td>";
+		if($dettnulli) echo "<td>$totsg</td>";
+		echo "</tr>";
+		if($disgiunto)
 			echo "<tr style=\"background-color: $bgcolor1; text-align:center\"><td></td><td>"._SOLOLIS."</td><td><input  name=\"sololista\" value=\"".$sololis."\" size=\"7\"  style=\"text-align:right\"></td></tr>";
 	}
@@ -1375,5 +1488,5 @@
 		}
 
-	echo "</td></tr></table>";
+	echo "</td></tr></table></center>";
 	}
     if ($genere!=0){
@@ -1421,5 +1534,7 @@
 	$tab="_ele_voti_gruppo";
 	$y--;
-	if(isdisgiunto())
+	$res = mysql_query("SELECT disgiunto FROM ".$prefix."_ele_cons_comune where id_cons='$id_cons' ", $dbi);
+	list($disgiunto)=mysql_fetch_row($res);
+	if($disgiunto)
 		$res=mysql_query("update  ".$prefix."_ele_sezioni set solo_lista='".$arg[$y--]."' where id_sez='$id_sez'", $dbi);
 
@@ -1515,4 +1630,5 @@
   }
 echo"</td></tr></table>";
+	include_once("modules/Elezioni/language/lang-$currentlang.php");
    include ("footer.php");
 ?>
