<?php
/*
Variables passed by the Plugin:
$field_value .- Field what show screen
$DataValue  .- Valor del campoque se utiliza en el plugin
$javascript  .- File of Javascript of Anychart
$theme .- File of Theme of Anychart
$language  .- File Javscript of language
$decimalsCount .-  Parameter
$zeroFillDecimals .-  Parameter
$decimalPoint .-  Parameter
$groupsSeparator .-  Parameter
$license .- License of ANYCHART  for PHPRunner
$id_field .-  Field occurrence identification number used to identify the "container".
*/
global $conn;

// Control  of dependencies de record master "
// $Convocatoria=$DataValue;
$Convocatoria = $_SESSION['idConvocatoria'];

$strSQLExists = "SELECT  Titulo, Descripcion FROM convocatoria where idConvocatoria = $Convocatoria ";
$rsExists = db_query($strSQLExists,$conn);
$Row = db_fetch_array($rsExists);
$DescConvocatoria = $Row['Descripcion']; // Datos de la Convocatoria seleccionada
$TitcConvocatoria = $Row['Titulo']; // Datos de la Convocatoria seleccionada

$strSQLExists = "
SELECT
v.Convocatoria_idConvocatoria,
lpad(v.Municipio,3,'0') Municipio,
m.NombreMunicipio,
v.idCandidatura,
v.Codigo,
v.Titulo,
v.Color,
v.Votos,
v.PorcVotos,
e.censo,
e.Validos,
e.Blanco,
e.Nulo
FROM v_municipio_voto v
join
(select Convocatoria_idConvocatoria,
Municipio,
max(Votos) votos
from v_municipio_voto m
group by Convocatoria_idConvocatoria,Municipio ) as ma
on (
v.Convocatoria_idConvocatoria = ma.Convocatoria_idConvocatoria and
v.Municipio =ma.Municipio and
v.Votos = ma.Votos)
left join municipio m on m.NumeroMunicipio = v.Municipio
left join elecmunitotal e on v.Municipio= e.Municipio and v.Convocatoria_idConvocatoria = e.Convocatoria_idConvocatoria
where v.Convocatoria_idConvocatoria=$Convocatoria
";

$rsExists = db_query($strSQLExists,$conn);

$chartData = 'var dataSet = [';
$paleta=[];

while ($PETICION = db_fetch_array($rsExists)) {
	$paleta[$PETICION["idCandidatura"]]=$PETICION['Color'];

	$chartData.="{'id':'".$PETICION["Municipio"]."', 'value':".$PETICION["idCandidatura"].", 'Titulo':'".$PETICION['Titulo']."', 'name':'".$PETICION["NombreMunicipio"].
		"', 'voto':".$PETICION["Votos"].", 'PorcVotos':".$PETICION['PorcVotos'].", 'censo':".$PETICION["censo"].", 'valido':".$PETICION["Validos"].", 'blanco':".$PETICION["Blanco"].", 'nulo':".$PETICION["Nulo"]."}\n ,";
  }
$chartData = substr($chartData, 0, -1);
$chartData.="];";

$colors=[]; // Colors the Candidaturas
foreach ($paleta as $key=>$value){
	$colors[]="{from:".$key.", to:".$key.",color:'".$value."'}";
}
$colorScale ="series.colorScale(anychart.scales.ordinalColor([".implode(",\n",$colors)."]));chart.colorRange(false);";


$graphicDefinition= <<<EOT
// set map Geo data
var chart = anychart.map();
var geojson = JSON.parse(MunicipiosMadrid); 
chart.geoData(geojson);		

$chartData
     
// License, out logo
$license
        

chart.padding([0, 0, 0, 0]);

// set map title settings using html
chart.title()
		.enabled(true)
		.useHtml(true)
		.padding(10, 0)
		.hAlign('center')
		.fontFamily("'Verdana', Helvetica, Arial, sans-serif")
		.text(
		  '<span style="color:#7c868e; font-size: 18px">$DescConvocatoria</span>'
		);



// set the series
var series = chart.choropleth(dataSet);

// líneas de division
series.stroke('0.5 #FFF');
series.hovered()
				.fill('#EAFE5F')
				.stroke(anychart.color.darken('#EAFE5F'));
series.selected()
				.fill('#EAFE5F')
				.stroke(anychart.color.darken('#EAFE5F'));
series.labels()
				.enabled(true)
				.fontSize(10)
				.fontColor('#212121')
				.format('{%value}');

// set tooltip settings
series
        .tooltip()
        .position('left-center')
        .anchor('left-center')
        .offsetX(5)
        .offsetY(0)
        .titleFormat('{%name}')
        .format('Partido más votado: {%Titulo}\\n'+
						'Votos recibidos: {%voto}{type:number}\\n'+
						'% Votos: {%PorcVotos}{type:number,decimalsCount:2}%\\n'+
						'Censo: {%censo}{type:number}\\n'+
						'Votos válidos: {%valido}{type:number}\\n'+
						'Votos en Blancos: {%blanco}{type:number}\\n'+
						'Votos Nulos: {%nulo}{type:number}'
					);

	
// disable labels
series.labels(false);

$colorScale
      
chart.container('container_$id_field');

chart.listen("pointClick", function(e){

	var index = e.iterator.getIndex();
	console.log('Click en Item (index): '+ index);

	// var row = data.row(index);

	console.log('Click en Item : '+ e.iterator.get("id"));
	console.debug(e.iterator);
})

// initiate chart drawing
chart.draw();
});
</script>
EOT;
$field_value .= $graphicDefinition;
?>
