POLITICA
Con Espert en el público, Milei presenta en la cárcel de Ezeiza un nuevo Código Penal que endurece penas

El presidente Javier Milei presenta esta tarde junto a la ministra de Seguridad, Patricia Bullrich, en la cárcel de Ezeiza, el envío al Congreso de un proyecto de reforma del Código Penal que incluye castigos más severos al accionar delictivo.
El candidato bonaerense José Luis Espert, que se encuentra en medio de la polémica por los supuestos aportes de campaña en 2019 por parte de un empresario acusado de narco, se ubica en la segunda fila del público, en una nueva muestra de respaldo presidencial.
La iniciativa introduce cambios en la libertad condicional, los delitos patrimoniales, el crimen organizado y las manifestaciones. La presentación está a cargo del presidente Milei y de Bullrich, mientras que también lo acompaña el ministros de Justicia, Mariano Cúneo Libarona, pero debajo del palco central.
El nuevo proyecto de Código Penal viene a reemplazar el actual texto vigente desde 1921, -más de 100 años- que tuvo cientos de parches, por lo que se pretende con la norma depurar las viejas conductas ya no penadas, penar nuevas y hacer congruentes las penas.
Milei fue el que eligió el lugar para presentar el nuevo Código Penal, la cárcel de Ezeiza, como mensaje simbólico de que “el que las hace las paga”, uno de las consignas del Gobierno, que suele repetir la ministra Bullrich.
A un lado del escenario donde se sentaron Milei y Bullrich se desplegaron unos 100 efectivos de la Policía de Seguridad Aeroportuaria y del Servicio Penitenciario Federal, algunos de ellos con los cascos y escudos antimotines.
Noticia en desarrollo
Hernán Cappiello,Conforme a
POLITICA
Javier Milei volverá a reunirse mañana con Mauricio Macri en la Quinta de Olivos

El presidente Javier Milei volverá a reunirse este viernes con su antecesor, Mauricio Macri, en la Quinta de Olivos para continuar acercando posiciones en búsqueda de una mayor gobernabilidad que le permita avanzar con las reformas que el oficialismo tiene en carpeta,
Tal como había anticipado Infobae, luego de un primer encuentro en el que ambos rompieron el hielo luego de un año sin contacto, el mandatario nacional ya estaba organizando la agenda para recibirlo nuevamente.
Como en aquella oportunidad, del cónclave participará también el jefe de Gabinete, Guillermo Francos, que tiene una buena relación con el referente del PRO y fue uno de los principales nexos para que retomaran el diálogo.
El vínculo entre los dos líderes políticos comenzó a recomponerse el miércoles pasado, cuando el libertario, desde Nueva York, le agradeció al jefe del partido amarillo las palabras de apoyo en medio de la situación de fragilidad política del Gobierno.
Unos días más tarde, el domingo, Milei invitó a Macri a la residencia oficial y estuvieron conversando sobre la realidad del país durante aproximadamente tres horas, acompañados únicamente por Francos.
En esa charla, que se dio por la mañana y sin comida de por medio -solo infusiones- el ex presidente le transmitió a su sucesor su visión de la realidad argentina y consideró que las últimas derrotas de La Libertad Avanza en el Congreso se debe a la falta de diálogo con el resto de los sectores políticos.
En este sentido, hizo hincapié en la necesidad de que el oficialismo construya mayor gobernabilidad, que fue una de las recomendaciones que hizo también la administración de Donald Trump después de anunciar una importante ayuda financiera para la Argentina, aunque en ese encuentro no se habló de cargos.
Recientemente, Milei reconoció que tiene en mente hacer cambios en el Gabinete en los próximos meses y no descarta abrir la administración para permitir la llegada de dirigentes de otros espacios políticos, principalmente del PRO.
“A ver, en principio, va a haber recambios porque (el ministro de Defensa, Luis) Petri va a ganar en la provincia de Mendoza, y lo va a hacer con amplitud, y (su par de Seguridad, Patricia) Bullrich va a hacer lo mismo en la ciudad de Buenos Aires”, señaló.
Durante una entrevista televisiva, el actual mandatario explicó que, teniendo en cuenta las modificaciones que deberá hacer “por motivos forzados”, se da un contexto en el que tendrá que “recalibrar el Gabinete para que mantenga el equilibrio”.
“O sea, lo que sucede ahora es que es muy compacto y todos trabajan muy bien juntos. Entonces, lo que yo tengo que volver a hacer es crear otro equipo que tenga esta compacidad”, indicó.
Por su parte, Macri contó algunos detalles del encuentro del último fin de semana en un mensaje que publicó en su cuenta de X, luego de que ya se conociera que ambos se habían visto.
“El domingo tuvimos una larga reunión con el presidente Milei y Guillermo Francos en la Quinta de Olivos. Es bueno haber retomado el diálogo después de más un año, siempre con la misma vocación: decirle la verdad al Presidente sobre lo que pienso de la situación del país y encontrar las oportunidades para trabajar para que la Argentina salga adelante”, escribió.
La confirmación de esta nueva reunión llegó luego de que el Senado rechazara los dos vetos a las leyes que declara la emergencia pediátrica -con el hospital Garrahan como emblema-, y que mejora y blinda los presupuestos de universidades públicas.
De esta manera, ambas normas recuperan vigor y se aguarda, de cara al corto plazo, los próximos movimientos del Poder Ejecutivo, que en el caso de la emergencia en discapacidad, con la que el Congreso también insistió, decidió promulgarla, pero no reglamentarla hasta que los legisladores no especifiquen de dónde se sacarán los fondos para su financiación.
De cara al futuro, en la Casa Rosada quieren evitar que el oficialismo siga sufriendo estas derrotas, por lo que las autoridades nacionales comenzaron a trabajar en recuperar la gobernabilidad.
Este no fue un pedido que hizo solamente Estados Unidos, sino que también el Fondo Monetario Internacional (FMI) se sumó recientemente al reclamo de que la gestión de Milei acuerde una agenda común con una parte de la oposición para preservar el curso del plan económico.
“Con respecto al programa en curso, también seguimos enfatizando la necesidad de generar un amplio apoyo político para asegurar la implementación de la ambiciosa agenda de reformas de la autoridad y fortalecer la confianza”, sostuvo la vocera del organismo, Julie Kozack, durante una conferencia de prensa que ofreció este jueves en Washington.
POLITICA
Una transferencia destinada a Espert figura en una contabilidad oficial elaborada por el Bank of America

Un libro contable elaborado por el Bank of America registra una transferencia internacional de 200.000 dólares destinada al actual diputado y candidato José Luis Espert (La Libertad Avanza) que partió de la estructura empresarial vinculada a Federico “Fred” Machado, acusado en Estados Unidos de fraude, conspiración para traficar drogas ilícitas y lavado de dinero.
La documentación, que obtuvo en bases de datos oficiales de Estados Unidos, fue incorporada como evidencia en el juicio celebrado en Texas en el que resultó condenada Debra Mercer-Erwin, socia de Machado, en 2023. Coincide con el dato revelado durante el fin de semana, sobre la base de otros documentos incorporados a ese proceso, que usó el dirigente peronista y también candidato Juan Grabois para denunciar a Espert en la justicia federal de San Isidro.
cotejó los archivos judiciales del Estado de Texas en los que figura la transferencia a Espert, entre miles de registros contables. Corresponde al 22 de enero de 2020, antes de que se revelara que Machado era buscado por la justicia norteamericana.
La contabilidad del Bank of America (BoA) añade precisiones hasta ahora desconocidas sobre los bancos por los que pasó el dinero hasta llegar a una última instancia en la que se consigna que debe girarse el dinero a José Luis Espert. Junto al nombre del diputado, figura el código N28FM, que se corresponde con la matrícula del avión privado que Machado le prestó a Espert para su campaña presidencial de 2019.
Espert admitió haber volado en un avión y circulado en una camioneta blindada propiedad de Machado, pero ayer se negó una y otra vez a confirmar o desmentir si había recibido una transferencia por 200.000 dólares que, de ser así, no declaró ante la justicia electoral ni ante la Administración Federal de Ingresos Públicos (AFIP). volvió a consultar a Espert para esta nota, pero no obtuvo respuesta.
La documentación que obtuvo consta en el expediente criminal 4:20-cr-00212-ALM-BD, que se conoce como “USA v. Mercer-Erwin et al.”, y se tramitó desde 12 de agosto de 2020 ante el juez federal Amos Mazzant, quien ascendió luego a magistrado principal del Distrito Este de Texas.
El material del BoA fue evaluado por las partes, admitido en juicio, defendido por un experto de la entidad bancaria y evaluado ante el jurado, que condenó a la socia de Machado en mayo de 2023. La halló culpable de cuatro de los siete cargos que afrontó: conspiración para facilitar el narcotráfico, importación de cocaína, lavado de activos y conspiración para infringir las registraciones de aeronaves en Estados Unidos.
La hija de Mercer-Erwin, Kayleigh Moffet, también afrontó problemas judiciales y terminó contra las cuerdas. Pero evitó el juicio oral. Se declaró culpable de conspirar para lavar activos y de conspirar para infringir las leyes de exportación de Estados Unidos, por lo que afrontó una sentencia a cinco años bajo “probation”.
De acuerdo a los documentos y planillas del BoA, el 22 de enero de 2020, Mercer Erwin emitió por orden de Machado una transferencia saliente por 200.000 dólares que se procesó a través de una “cash payment order”.
En el camino de los fondos, según el documento, aparecen una plataforma de operaciones con criptomonedas (OKX), Cash Pro (plataforma de banca digital del Bank of America) y los bancos Citibank y Morgan Stanley. El giro figura como realizado por Wright Brothers Aircraft Title Inc, empresa que pertenecía a Mercer-Erwin y cuya contabilidad llevaba el Bank of America.
, el narcotraficante al que relacionan con José Luis Espert. Cumple una condena en prisión domiciliaria en Viedma desde 2021, a la espera de la extradición a Estados Unidos si es que la justicia argentina la autoriza
La constancia de la transferencia destinada a Espert integra la llamada “Evidencia 45a”. La Fiscalía logró incorporarla al expediente el 9 de septiembre de 2023, en el “docket 495”, como material de prueba que quería utilizar durante el juicio oral. A pesar de la objeción de la defensa, la aceptó la Corte, que subió el documento completo a la página oficial de Internet (“Pacer”) el 26 de febrero de 2025, como adjunto del “docket 554”.
Pacer (Public Access to Court Electronic Records) es el sistema de acceso público a los registros electrónicos de los tribunales federales de Estados Unidos. De acceso libre, aunque con registración previa, permite encontrar expedientes de la Justicia federal de aquel país por su número o por las partes intervinientes y acceder a su contenido –previo pago de 10 centavos de dólar por carilla a leer-, siempre que no se encuentre bajo secreto de sumario o se haya dispuesto su reserva por motivos puntuales.
De acuerdo a la planilla que integra la evidencia “45a”, cuya autenticidad y solidez explicó ante la Corte un experto del Bank of America llamado Jeffrey Jackson, los 200.000 dólares que Machado envió a una cuenta intermediaria debían acreditarse, en última instancia, a Espert. En el registro, antes de su nombre, aparece el número 852017501, que podría ser la identificación de una cuenta.
Citado a testificar, Jackson explicó que el Bank of America crea ese tipo de planillas por protocolo, en el momento o cerca del momento en que se registra cada movimiento, que lo hace alguien con conocimiento de lo que debía quedar documentado, y que es “práctica regular” de la entidad hacer y mantener este tipo de registros.
El esquema que revelaron los fiscales estadounidenses liderados por Ernest González combinaba la compra y venta de jets y helicópteros mediante empresas de fachada, contratos fiduciarios y cuentas “escrow”, a través de las cuales se movieron millones de dólares. Machado, junto con Mercer-Erwin y otros, fue acusado de haber utilizado este entramado no sólo para desarrollar negocios legítimos de aviación, sino también para blanquear dinero vinculado al narcotráfico.
En ese contexto, las transferencias que recabó la fiscalía con el apoyo de BoA y de la consultora Deloitte adquirieron un valor probatorio central para condenar a Mercer-Erwin y requerir a la Argentina la extradición de Machado: cada instrucción de “further credit to” permite rastrear quiénes fueron los destinatarios finales de los fondos. Allí es donde consta el nombre de Espert, no como comprador o vendedor de aviones, sino como receptor de un giro.
Según surge del registro contable y bancario, la transferencia emitida a nombre de Espert no fue anulada. La orden de pago quedó registrada como válida y efectiva. Es decir, el giro de 200.000 dólares cumplió con todos los pasos bancarios y terminó su recorrido en la cuenta dispuesta por quien ordenó la transferencia.
Mercer-Erwin, su hija, Machado y otras cinco personas fueron acusadas por un gran jurado en 2020. Pero según las pruebas del juicio, siguieron operando hasta septiembre de ese año, ocho meses después de la transferencia destinada a Espert.
La causa de la justicia federal estadounidense comenzó en 2019 a raíz de un trabajo periodístico del canal de televisión WFAA, de Dallas, Texas, que abrió una investigación para averiguar qué había detrás de un dato insólito: en Onalaska, un pueblo tejano de menos de 3000 habitantes, estaban registrados ese año 1042 aviones. Más que en Seattle (1012) o New York City (590), y Onalaska no tiene siquiera aeropuerto.
Los aviones de Onalaska habían sido registrados por un fideicomiso que controlaban Mercer-Erwin y Machado. Así se podía mantener ocultos a los verdaderos dueños de las aeronaves. La justicia estadounidense corroboró que toneladas de cocaína entraron en aviones de Aircraft Guaranty, tal era el nombre con el que se presentaba la firma, a los Estados Unidos.
Pero además, según la justicia norteamericana, Mercer-Erwin y Machado montaron un esquema Ponzi con el que estafaron a inversores que creían estar comprando aviones que en realidad no existían o no estaban operativos.
Según la fiscalía de Estados Unidos, los registros del Bank of America y la contabilidad paralela llevada por Machado y Mercer-Erwin permitieron reconstruir que ella se hizo de 4,9 millones de dólares con estas maniobras y Machado, con 75 millones.
La abogada del Estado dijo en el juicio, cuando sostuvo la acusación de conspiración para el narcotráfico contra Mercer-Erwin: “¿Tocó ella alguna vez un kilo de cocaína? No, no lo hizo, pero violó la confianza de la FAA [Administración Federal de Aviación] cuando era propietaria fiduciaria de estos aviones e hizo la vista gorda y no fue confiable; y los aviones cayeron en manos de personas que abusaron de ellos e importaban cocaína al país”.
Machado, como su exsocia, está acusado también de haber integrado “asociaciones delictuosas” destinadas al narcotráfico, lavado de dinero y fraude.
Fue detenido el 16 de abril de 2021 por la Policía de Seguridad Aeroportuaria en la ciudad de Neuquén y un día después, el juez federal Gustavo Villanueva dispuso su arresto preventivo. Desde entonces, está preso a la espera de que se defina si lo extraditan a los Estados Unidos.
El 12 de abril de 2022, Villanueva, titular del juzgado federal 2 de Neuquén, declaró “procedente la extradición” de Machado, que recurrió ese fallo. El 4 de abril de 2023, el procurador general de la Nación, Eduardo Casal, dictaminó en favor de la extradición y el caso quedó en condiciones de ser resuelto por la Corte Suprema, que dos años y cuatro meses después -el 21 de agosto pasado- volvió a remitir el caso al juez de Neuquén porque la defensa de Machado había presentado un escrito, el 29 de noviembre pasado, en el que había alegado que una sentencia en favor de la hija de Mercer-Erwin en los Estados Unidos podría hacer caer las acusaciones de “conspirancy” en su contra. El abogado de Machado es Francisco Oneto, el abogado personal del presidente Javier Milei.
La Corte le indicó al juez de Neuquén que, vía la Cancillería, le pida a la justicia estadounidense que le informe sobre el fallo que supuestamente pondría en jaque los argumentos para la extradición. Machado se garantizó así que logrará resistir un buen tiempo más su traslado a los Estados Unidos.
actual diputado y candidato José Luis Espert,Federico “Fred” Machado,Hugo Alconada Mon,Paz Rodríguez Niell,José Luis Espert,La Libertad Avanza,Elecciones 2025,Conforme a,José Luis Espert,,Estuvo en Casa Rosada. Espert pierde apoyo en el Gobierno y solo lo sostiene Milei,,Campaña accidentada. Qué se sabe del vínculo de Espert con Fred Machado y la reacción del Gobierno, este jueves 2 de octubre,,Campaña 2019. Qué dijo la exjefa de prensa de José Luis Espert sobre el vínculo con Fred Machado
POLITICA
Así votaron los senadores el veto de Milei a la ley de financiamiento universitario

`
: `
`
}
${bloque}
`;
targetContainer.appendChild(card);
}
function createHemicicleSmall(nAfirmativo, nNegativo, nAbstencion, nAusente) {
const hemicycle = document.querySelector(‘.votos-senadores__hemiciclo.small’);
hemicycle.innerHTML = »; // Clear previous content.
const centerX = 300;
const baseY = 450;
const numberOfRows = 5;
// Array of seats per row (from outer to inner)
const seatsPerRow = [21, 18, 16, 12, 7];
const verticalOffset = 0;
const totalSeats = seatsPerRow.reduce((a, b) => a + b, 0);
const totalVotes = nAfirmativo + nNegativo + nAbstencion + nAusente;
// Instead of percentage-based rounding, we’ll compute a per-row distribution
// using floor() and then distribute any remaining seats based on the remainders.
let rowSeatCounts = seatsPerRow.map((seatsInRow) => {
// Compute the exact (floating point) allocation for each category.
const exactAfirmativo = (nAfirmativo * seatsInRow) / totalSeats;
const exactNegativo = (nNegativo * seatsInRow) / totalSeats;
const exactAbstencion = (nAbstencion * seatsInRow) / totalSeats;
const exactAusente = (nAusente * seatsInRow) / totalSeats;
// Take floor values.
let rowAfirmativo = Math.floor(exactAfirmativo);
let rowNegativo = Math.floor(exactNegativo);
let rowAbstencion = Math.floor(exactAbstencion);
let rowAusente = Math.floor(exactAusente);
let assigned = rowAfirmativo + rowNegativo + rowAbstencion + rowAusente;
let diff = seatsInRow – assigned;
// Create an array of remainders along with category identifiers.
let remainders = [{
cat: «afirmativo»,
remainder: exactAfirmativo – rowAfirmativo
},
{
cat: «negativo»,
remainder: exactNegativo – rowNegativo
},
{
cat: «abstencion»,
remainder: exactAbstencion – rowAbstencion
},
{
cat: «ausente»,
remainder: exactAusente – rowAusente
}
];
// Sort descending by remainder.
remainders.sort((a, b) => b.remainder – a.remainder);
// Distribute the remaining seats one by one to the categories with the highest remainders.
while (diff > 0) {
for (let r of remainders) {
if (diff <= 0) break;
switch (r.cat) {
case «afirmativo»:
rowAfirmativo++;
break;
case «negativo»:
rowNegativo++;
break;
case «abstencion»:
rowAbstencion++;
break;
case «ausente»:
rowAusente++;
break;
}
diff–;
}
}
return {
afirmativo: rowAfirmativo,
negativo: rowNegativo,
abstencion: rowAbstencion,
ausente: rowAusente
};
});
// Now, using your inverted loop order (columns first, then rows)
const maxSeatsInRow = seatsPerRow[0]; // maximum seats in the outer row
// For each seat position (by column, then row), assign the color based on that row’s distribution.
for (let col = 0; col < maxSeatsInRow; col++) {
for (let row = 0; row < numberOfRows; row++) {
if (col < seatsPerRow[row]) { // only if this row has a seat at this column
const seatsInThisRow = seatsPerRow[row];
const radius = 170 – row * (30 – verticalOffset);
const angleRange = Math.PI; // semicircle
const angleStep = (seatsInThisRow > 1) ? angleRange / (seatsInThisRow – 1) : 0;
const angle = (Math.PI – angleRange) / 2 + col * angleStep;
const x = centerX + radius * Math.cos(angle);
const y = baseY – radius * Math.sin(angle);
// For this row, assign colors in order:
// First use available «afirmativo», then «negativo», then «abstencion», then «ausente»
let colorClass=»color-empty»;
if (rowSeatCounts[row].afirmativo > 0) {
colorClass=»color-afirmativo»;
rowSeatCounts[row].afirmativo–;
} else if (rowSeatCounts[row].negativo > 0) {
colorClass=»color-negativo»;
rowSeatCounts[row].negativo–;
} else if (rowSeatCounts[row].abstencion > 0) {
colorClass=»color-abstencion»;
rowSeatCounts[row].abstencion–;
} else if (rowSeatCounts[row].ausente > 0) {
colorClass=»color-ausente»;
rowSeatCounts[row].ausente–;
}
const seat = document.createElement(‘div’);
seat.classList.add(‘seat’, colorClass);
seat.style.left = `${x}px`;
seat.style.top = `${y}px`;
hemicycle.appendChild(seat);
}
}
}
/* // Set the legend text (sin mostrar Ley Aprobada o no aprobada)
document.querySelector(‘#voto-summary’).innerHTML = `
Afirmativo: ${nAfirmativo} |
Negativo: ${nNegativo}
Abstención: ${nAbstencion} |
Ausente: ${nAusente}
`; */
/* // — Update Legend —
const leyText = nAfirmativo > nNegativo ? «Ley Aprobada» : «Ley no aprobada»;
const resultsText=»shshs»;
document.querySelector(«#voto-summary»).innerHTML = leyText + resultsText; */
/*
// Set the legend text. Mayoría simple
const leyText = nAfirmativo > nNegativo ? ‘Ley Aprobada’ : ‘Ley no aprobada’;
document.querySelector(‘#voto-summary’).innerHTML = `
Afirmativo: ${nAfirmativo} |
Negativo: ${nNegativo}
Abstención: ${nAbstencion} |
Ausente: ${nAusente}
` + ‘
‘ + leyText + ‘
‘; */
// Set the legend text. Dos tercios de los presentes (******EDITAR LEYENDA*****)
function votosNecesarios(presentes) {
return Math.ceil((2 / 3) * presentes);
}
const leyText = nAfirmativo >= (votosNecesarios(72 – nAusente)) ? ‘Aprobada’ : ‘Rechazada’;
document.querySelector(‘#voto-summary’).innerHTML = `
Afirmativo: ${nAfirmativo} |
Negativo: ${nNegativo}
Abstención: ${nAbstencion} |
Ausente: ${nAusente}
` + ‘
‘ + leyText + ‘
‘;
}
// Creates the big hemiciclo visualization.
function createHemicicleBig(nAfirmativo, nNegativo, nAbstencion, nAusente) {
const hemicycle = document.querySelector(‘.votos-senadores__hemiciclo.big’);
hemicycle.innerHTML = »; // Clear previous content.
const centerX = 300;
const baseY = 450;
const numberOfRows = 5;
// Array of seats per row (outer to inner; total should be 257)
const seatsPerRow = [21, 18, 16, 11, 6];
const verticalOffset = 2;
const totalSeats = seatsPerRow.reduce((a, b) => a + b, 0);
// Raw vote counts must sum to totalSeats (257)
const totalVotes = nAfirmativo + nNegativo + nAbstencion + nAusente;
if (totalVotes !== totalSeats) {
console.warn(«Total votes (» + totalVotes + «) do not equal total seats (» + totalSeats + «).»);
}
console.log(nAfirmativo, nNegativo, nAbstencion, nAusente, totalSeats, totalVotes);
// — Per-Row Distribution Using Absolute Counts —
// For each row, compute the exact allocation for each vote category based on its fraction of the total seats.
let rowSeatCounts = seatsPerRow.map(seatsInRow => {
const exactA = (nAfirmativo / totalSeats) * seatsInRow;
const exactN = (nNegativo / totalSeats) * seatsInRow;
const exactAb = (nAbstencion / totalSeats) * seatsInRow;
const exactAu = (nAusente / totalSeats) * seatsInRow;
let rowA = Math.floor(exactA);
let rowN = Math.floor(exactN);
let rowAb = Math.floor(exactAb);
let rowAu = Math.floor(exactAu);
let assigned = rowA + rowN + rowAb + rowAu;
let diff = seatsInRow – assigned;
// Create an array of remainders for each category.
let remainders = [{
cat: «afirmativo»,
rem: exactA – rowA
},
{
cat: «negativo»,
rem: exactN – rowN
},
{
cat: «abstencion»,
rem: exactAb – rowAb
},
{
cat: «ausente»,
rem: exactAu – rowAu
}
];
// Sort the remainders in descending order.
remainders.sort((a, b) => b.rem – a.rem);
// Distribute any leftover seats one by one.
while (diff > 0) {
for (let r of remainders) {
if (diff <= 0) break;
switch (r.cat) {
case «afirmativo»:
rowA++;
break;
case «negativo»:
rowN++;
break;
case «abstencion»:
rowAb++;
break;
case «ausente»:
rowAu++;
break;
}
diff–;
}
}
return {
afirmativo: rowA,
negativo: rowN,
abstencion: rowAb,
ausente: rowAu
};
});
// — Global Correction —
// Sum the allocated seats for each category across all rows.
let globalA = rowSeatCounts.reduce((sum, row) => sum + row.afirmativo, 0);
let globalN = rowSeatCounts.reduce((sum, row) => sum + row.negativo, 0);
let globalAb = rowSeatCounts.reduce((sum, row) => sum + row.abstencion, 0);
let globalAu = rowSeatCounts.reduce((sum, row) => sum + row.ausente, 0);
// For each category, if the global total is less than the raw count, add the missing seats to the outer row (row 0).
if (globalA < nAfirmativo) {
rowSeatCounts[0].afirmativo += (nAfirmativo – globalA);
}
if (globalN < nNegativo) {
rowSeatCounts[0].negativo += (nNegativo – globalN);
}
if (globalAb < nAbstencion) {
rowSeatCounts[0].abstencion += (nAbstencion – globalAb);
}
if (globalAu < nAusente) {
rowSeatCounts[0].ausente += (nAusente – globalAu);
}
// — Seat Placement Using Inverted Loop Order —
const maxSeatsInRow = seatsPerRow[0];
for (let col = 0; col < maxSeatsInRow; col++) {
for (let row = 0; row < numberOfRows; row++) {
if (col < seatsPerRow[row]) { // Only process if this row has a seat at the current column.
const seatsInThisRow = seatsPerRow[row];
const radius = 300 – row * (55 – verticalOffset);
const angleRange = Math.PI; // semicircle
const angleStep = (seatsInThisRow > 1) ? angleRange / (seatsInThisRow – 1) : 0;
const angle = (Math.PI – angleRange) / 2 + col * angleStep;
const x = centerX + radius * Math.cos(angle);
const y = baseY – radius * Math.sin(angle);
// For the current row, assign the color in order: afirmativo, then negativo, then abstencion, then ausente.
let colorClass=»color-empty»;
if (rowSeatCounts[row].afirmativo > 0) {
colorClass=»color-afirmativo»;
rowSeatCounts[row].afirmativo–;
} else if (rowSeatCounts[row].negativo > 0) {
colorClass=»color-negativo»;
rowSeatCounts[row].negativo–;
} else if (rowSeatCounts[row].abstencion > 0) {
colorClass=»color-abstencion»;
rowSeatCounts[row].abstencion–;
} else if (rowSeatCounts[row].ausente > 0) {
colorClass=»color-ausente»;
rowSeatCounts[row].ausente–;
}
const seat = document.createElement(‘div’);
seat.classList.add(‘seat’, colorClass);
seat.style.left = `${x}px`;
seat.style.top = `${y}px`;
hemicycle.appendChild(seat);
}
}
}
}
// Go-to-top button functionality.
document.addEventListener(‘DOMContentLoaded’, function() {
const goToTopButton = document.querySelector(‘.votos-senadores__go-to-top’);
const targetElement = document.querySelector(‘.votos-senadores’);
goToTopButton.addEventListener(‘click’, function() {
targetElement.scrollIntoView({
behavior: ‘smooth’
});
});
const observer = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
goToTopButton.style.display = entry.isIntersecting ? ‘block’ : ‘none’;
});
}, {
root: null,
rootMargin: ‘0px’,
threshold: 0.1
});
observer.observe(targetElement);
// Attach the toggle listener to each vote button.
const toggleBtns = document.getElementsByClassName(‘votos-senadores__voto-btn’);
for (let i = 0; i < toggleBtns.length; i++) {
toggleBtns[i].addEventListener(‘click’, function() {
this.classList.toggle(‘active’);
const panel = this.nextElementSibling;
panel.style.maxHeight = panel.style.maxHeight ? null : ‘14000px’;
});
}
// Now simulate a click on each button from within DOMContentLoaded.
// This will trigger the listener and expand each panel on load.
for (let i = 0; i < toggleBtns.length; i++) {
toggleBtns[i].click();
}
});
- POLITICA1 día ago
Cristina Kirchner chicaneó a Javier Milei: “La Recesión Avanza y los dólares se te siguen yendo”
- CHIMENTOS3 días ago
El desolador llanto de Thiago Medina por sus hijas tras despertar del coma, a 17 días del accidente: “Se largó a llorar cuando le hablaron de las nenas”
- CHIMENTOS2 días ago
Mario Massaccesi casó a Manu Jove y su colega de TN: los desconocidos detalles de la boda