Con apenas 24 años, Ian Williams, vecino de Quilmes, se convirtió en uno de los referentes de la calistenia en Argentina. Su camino comenzó de manera sencilla, pero con mucha pasión.
'Siempre hice deportes y me gustó el entrenamiento. Poco a poco empecé a entrenar en mi casa con lo más básico y sin muchos conocimientos, hace ya 7 u 8 años', cuenta en diálogo con El Bonaerense.
LEER MÁS Kicillof evalúa desdoblar las elecciones legislativas mientras crece la tensión interna en el peronismo
1800 ? ' warning' : '');
});
}
function cargarComentarios() {
var xhr = new XMLHttpRequest();
xhr.open('GET', baseUrl + 'ajax-comentarios.php?accion=listar&id_noticia=' + idNoticia, true);
xhr.onload = function () {
document.getElementById('comments-loading').style.display = 'none';
try {
var data = JSON.parse(xhr.responseText);
if (data.ok) {
document.getElementById('comments-count').textContent = data.total;
if (data.comentarios.length === 0) {
document.getElementById('comments-empty').style.display = 'block';
document.getElementById('comments-list').style.display = 'none';
} else {
document.getElementById('comments-empty').style.display = 'none';
document.getElementById('comments-list').style.display = 'block';
renderComentarios(data.comentarios);
}
}
} catch (e) { console.error('Error parsing comments', e); }
};
xhr.send();
}
function renderComentarios(comentarios) {
var html = '';
for (var i = 0; i < comentarios.length; i++) {
html += renderComentario(comentarios[i]);
}
document.getElementById('comments-list').innerHTML = html;
}
function renderComentario(c) {
var html = '
';
return html;
}
// Publicar comentario principal
window.publicarComentario = function (idPadre) {
var textarea = idPadre ? document.querySelector('#reply-form-' + idPadre + ' textarea') : document.getElementById('comentario-texto');
var texto = textarea ? textarea.value.trim() : '';
if (!texto) { mostrarToast('Escribí un comentario', 'error'); return; }
var btn = idPadre ? document.querySelector('#reply-form-' + idPadre + ' .btn-publicar-reply') : document.getElementById('btn-publicar');
btn.disabled = true;
btn.textContent = 'Publicando...';
var formData = new FormData();
formData.append('accion', 'publicar');
formData.append('id_noticia', idNoticia);
formData.append('comentario', texto);
if (idPadre) formData.append('id_padre', idPadre);
var xhr = new XMLHttpRequest();
xhr.open('POST', baseUrl + 'ajax-comentarios.php', true);
xhr.onload = function () {
btn.disabled = false;
btn.textContent = idPadre ? 'Responder' : 'Publicar';
try {
var data = JSON.parse(xhr.responseText);
if (data.ok) {
mostrarToast('Comentario publicado', 'success');
if (!idPadre && textarea) textarea.value = '';
var counter = document.getElementById('char-count');
if (counter) counter.textContent = '0 / 2000';
cargarComentarios();
} else {
mostrarToast(data.error || 'Error al publicar', 'error');
}
} catch (e) { mostrarToast('Error de conexión', 'error'); }
};
xhr.onerror = function () {
btn.disabled = false;
btn.textContent = idPadre ? 'Responder' : 'Publicar';
mostrarToast('Error de conexión', 'error');
};
xhr.send(formData);
};
// Responder
window.responderA = function (idComentario) {
// Cerrar otros reply forms
var existentes = document.querySelectorAll('.reply-form-inline');
for (var k = 0; k < existentes.length; k++) existentes[k].remove();
var container = document.getElementById('reply-form-' + idComentario);
if (!container) return;
container.innerHTML = '
';
container.querySelector('textarea').focus();
};
// Like / Dislike
var reaccionando = false;
window.reaccionar = function (idComentario, tipo) {
if (reaccionando) return;
var btn = event.currentTarget;
reaccionando = true;
var formData = new FormData();
formData.append('accion', tipo);
formData.append('id_comentario', idComentario);
var xhr = new XMLHttpRequest();
xhr.open('POST', baseUrl + 'ajax-comentarios.php', true);
xhr.onload = function () {
reaccionando = false;
try {
var data = JSON.parse(xhr.responseText);
if (data.ok) {
var elLikes = document.getElementById('likes-' + idComentario);
var elDislikes = document.getElementById('dislikes-' + idComentario);
if (elLikes) elLikes.textContent = data.likes;
if (elDislikes) elDislikes.textContent = data.dislikes;
// Cambiar color
var container = btn.closest('.comment-actions');
var btnLike = container.querySelector('button[onclick*="\'like\'"]');
var btnDislike = container.querySelector('button[onclick*="\'dislike\'"]');
if (data.revertido) {
btnLike.classList.remove('active-like');
btnDislike.classList.remove('active-dislike');
} else {
if (tipo === 'like') {
btnLike.classList.add('active-like');
btnDislike.classList.remove('active-dislike');
} else {
btnDislike.classList.add('active-dislike');
btnLike.classList.remove('active-like');
}
}
} else {
mostrarToast(data.error || 'Error', 'error');
}
} catch (e) { }
};
xhr.onerror = function () {
reaccionando = false;
};
xhr.send(formData);
};
// Denunciar
var idDenunciaPendiente = null;
window.denunciar = function (idComentario) {
idDenunciaPendiente = idComentario;
document.getElementById('modal-denunciar').classList.add('active');
};
window.cerrarModalDenuncia = function () {
document.getElementById('modal-denunciar').classList.remove('active');
idDenunciaPendiente = null;
};
document.getElementById('btn-confirmar-denuncia').onclick = function () {
if (!idDenunciaPendiente) return;
var idComentario = idDenunciaPendiente;
cerrarModalDenuncia();
var formData = new FormData();
formData.append('accion', 'denunciar');
formData.append('id_comentario', idComentario);
var xhr = new XMLHttpRequest();
xhr.open('POST', baseUrl + 'ajax-comentarios.php', true);
xhr.onload = function () {
try {
var data = JSON.parse(xhr.responseText);
mostrarToast(data.ok ? (data.mensaje || 'Denunciado') : (data.error || 'Error'), data.ok ? 'success' : 'error');
} catch (e) { }
};
xhr.send(formData);
};
document.getElementById('modal-denunciar').onclick = function (e) {
if (e.target === this) cerrarModalDenuncia();
};
// Toast
function mostrarToast(msg, tipo) {
var existing = document.querySelector('.comment-toast');
if (existing) existing.remove();
var toast = document.createElement('div');
toast.className = 'comment-toast ' + (tipo || '');
toast.textContent = msg;
document.body.appendChild(toast);
setTimeout(function () { toast.remove(); }, 3500);
}
function escapeHtml(text) {
if (!text) return '';
var d = document.createElement('div');
d.textContent = text;
return d.innerHTML;
}
})();